[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 109025] Kexi cannot be launched by kdeinit
From: Jaroslaw Staniek <js () iidea ! pl>
Date: 2005-07-15 18:39:25
Message-ID: 20050715183925.10017.qmail () ktown ! kde ! org
[Download RAW message or body]
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
http://bugs.kde.org/show_bug.cgi?id=109025
js iidea pl changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From js iidea pl 2005-07-15 20:39 -------
SVN commit 434891 by staniek:
CCMAIL: 109025-done bugs kde org
use KStaticDeleter
M +39 -35 utils.cpp
--- branches/koffice/1.4/koffice/kexi/kexidb/utils.cpp #434890:434891
@ -23,74 +23,78 @
#include <qmap.h>
#include <klocale.h>
+#include <kstaticdeleter.h>
using namespace KexiDB;
//! Cache
-QMap< uint, TypeGroupList > tlist;
-QMap< uint, QStringList > nlist;
-QMap< uint, QStringList > slist;
+struct TypeCache
+{
+ QMap< uint, TypeGroupList > tlist;
+ QMap< uint, QStringList > nlist;
+ QMap< uint, QStringList > slist;
+ QMap< uint, Field::Type > def_tlist;
+};
+static KStaticDeleter<TypeCache> KexiDB_typeCacheDeleter;
+TypeCache *KexiDB_typeCache = 0;
+
static void initList()
{
- if (!tlist.isEmpty())
- return;
+ KexiDB_typeCacheDeleter.setObject( KexiDB_typeCache, new TypeCache() );
for (uint t=0; t<=KexiDB::Field::LastType; t++) {
const uint tg = KexiDB::Field::typeGroup( t );
TypeGroupList list;
QStringList name_list, str_list;
- if (tlist.find( tg )!=tlist.end()) {
- list = tlist[ tg ];
- name_list = nlist[ tg ];
- str_list = slist[ tg ];
+ if (KexiDB_typeCache->tlist.find( tg )!=KexiDB_typeCache->tlist.end()) {
+ list = KexiDB_typeCache->tlist[ tg ];
+ name_list = KexiDB_typeCache->nlist[ tg ];
+ str_list = KexiDB_typeCache->slist[ tg ];
}
list+= t;
name_list += KexiDB::Field::typeName( t );
str_list += KexiDB::Field::typeString( t );
- tlist[ tg ] = list;
- nlist[ tg ] = name_list;
- slist[ tg ] = str_list;
+ KexiDB_typeCache->tlist[ tg ] = list;
+ KexiDB_typeCache->nlist[ tg ] = name_list;
+ KexiDB_typeCache->slist[ tg ] = str_list;
}
+
+ KexiDB_typeCache->def_tlist[ Field::InvalidGroup ] = Field::InvalidType;
+ KexiDB_typeCache->def_tlist[ Field::TextGroup ] = Field::Text;
+ KexiDB_typeCache->def_tlist[ Field::IntegerGroup ] = Field::Integer;
+ KexiDB_typeCache->def_tlist[ Field::FloatGroup ] = Field::Float;
+ KexiDB_typeCache->def_tlist[ Field::BooleanGroup ] = Field::Boolean;
+ KexiDB_typeCache->def_tlist[ Field::DateTimeGroup ] = Field::Date;
+ KexiDB_typeCache->def_tlist[ Field::BLOBGroup ] = Field::BLOB;
}
const TypeGroupList KexiDB::typesForGroup(KexiDB::Field::TypeGroup typeGroup)
{
- initList();
- return tlist[ typeGroup ];
+ if (!KexiDB_typeCache)
+ initList();
+ return KexiDB_typeCache->tlist[ typeGroup ];
}
QStringList KexiDB::typeNamesForGroup(KexiDB::Field::TypeGroup typeGroup)
{
- initList();
- return nlist[ typeGroup ];
+ if (!KexiDB_typeCache)
+ initList();
+ return KexiDB_typeCache->nlist[ typeGroup ];
}
QStringList KexiDB::typeStringsForGroup(KexiDB::Field::TypeGroup typeGroup)
{
- initList();
- return slist[ typeGroup ];
+ if (!KexiDB_typeCache)
+ initList();
+ return KexiDB_typeCache->slist[ typeGroup ];
}
-QMap< uint, Field::Type > def_tlist;
-
-static void initDefList()
-{
- if (!def_tlist.isEmpty())
- return;
- def_tlist[ Field::InvalidGroup ] = Field::InvalidType;
- def_tlist[ Field::TextGroup ] = Field::Text;
- def_tlist[ Field::IntegerGroup ] = Field::Integer;
- def_tlist[ Field::FloatGroup ] = Field::Float;
- def_tlist[ Field::BooleanGroup ] = Field::Boolean;
- def_tlist[ Field::DateTimeGroup ] = Field::Date;
- def_tlist[ Field::BLOBGroup ] = Field::BLOB;
-}
-
KexiDB::Field::Type KexiDB::defaultTypeForGroup(KexiDB::Field::TypeGroup typeGroup)
{
- initDefList();
- return (typeGroup <= Field::LastTypeGroup) ? def_tlist[ typeGroup ] : \
Field::InvalidType; + if (!KexiDB_typeCache)
+ initList();
+ return (typeGroup <= Field::LastTypeGroup) ? KexiDB_typeCache->def_tlist[ typeGroup \
] : Field::InvalidType; }
void KexiDB::getHTMLErrorMesage(Object* obj, QString& msg, QString &details)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic