-rw-r--r-- | microkde/kdecore/kstandarddirs.cpp | 146 |
1 files changed, 73 insertions, 73 deletions
diff --git a/microkde/kdecore/kstandarddirs.cpp b/microkde/kdecore/kstandarddirs.cpp index e1c78f6..75205d6 100644 --- a/microkde/kdecore/kstandarddirs.cpp +++ b/microkde/kdecore/kstandarddirs.cpp @@ -59,16 +59,16 @@ QString KStandardDirs::mAppDir = QString::null; template class QDict<QStringList>; #if 0 #include <qtextedit.h> -void ddd( QString op ) +void ddd( QString op ) { static QTextEdit * dot = 0; - if ( ! dot ) + if ( ! dot ) dot = new QTextEdit(); dot->show(); dot->append( op ); @@ -88,15 +88,15 @@ public: QStringList xdgdata_prefixes; QStringList xdgconf_prefixes; }; static const char* const types[] = {"html", "icon", "apps", "sound", "data", "locale", "services", "mime", - "servicetypes", "config", "exe", - "wallpaper", "lib", "pixmap", "templates", - "module", "qtplugins", + "servicetypes", "config", "exe", "tmp", + "wallpaper", "lib", "pixmap", "templates", + "module", "qtplugins", "xdgdata-apps", "xdgdata-dirs", "xdgconf-menu", 0 }; static int tokenize( QStringList& token, const QString& str, const QString& delim ); KStandardDirs::KStandardDirs( ) : addedCustoms(false) @@ -355,44 +355,44 @@ QString KStandardDirs::findResourceDir( const char *type, #ifdef _WIN32_ candidates.prepend( qApp->applicationDirPath () +"\\"); #else candidates.prepend( qApp->applicationDirPath () +"/"); #endif #endif - for (QStringList::ConstIterator it = candidates.begin(); it != candidates.end(); it++) + for (QStringList::ConstIterator it = candidates.begin(); it != candidates.end(); it++) { //qDebug("looking for dir %s - file %s", (*it).latin1(), filename.latin1()); if (exists(*it + filename)) return *it; } #ifndef NDEBUG if(false && type != "locale") qDebug("KStdDirs::findResDir(): can't find %s ", filename.latin1()); - + #endif return QString::null; } bool KStandardDirs::exists(const QString &fullPath) { //US struct stat buff; QFileInfo fullPathInfo(QFile::encodeName(fullPath)); //US if (access(QFile::encodeName(fullPath), R_OK) == 0 && fullPathInfo.isReadable()) if (fullPathInfo.isReadable()) - { + { if (fullPath.at(fullPath.length() - 1) != '/') { //US if (S_ISREG( buff.st_mode )) if (fullPathInfo.isFile()) return true; - } + } else { -//US if (S_ISDIR( buff.st_mode )) - if (fullPathInfo.isDir()) +//US if (S_ISDIR( buff.st_mode )) + if (fullPathInfo.isDir()) return true; } } return false; } @@ -405,13 +405,13 @@ static void lookupDirectory(const QString& path, const QString &relPart, QString pattern = regexp.pattern(); if (recursive || pattern.contains('?') || pattern.contains('*')) { // We look for a set of files. //US DIR *dp = opendir( QFile::encodeName(path)); QDir dp(QFile::encodeName(path)); - + if (!dp.exists()) return; static int iii = 0; ++iii; if ( iii == 5 ) abort(); @@ -423,22 +423,22 @@ static void lookupDirectory(const QString& path, const QString &relPart, QString _dot("."); QString _dotdot(".."); //US while( ( ep = readdir( dp ) ) != 0L ) QStringList direntries = dp.entryList(); QStringList::Iterator it = direntries.begin(); - + while ( it != list.end() ) // for each file... { - + //US QString fn( QFile::decodeName(ep->d_name)); QString fn = (*it); // dp.entryList already decodes it++; if ( fn.isNull() ) break; - + if (fn == _dot || fn == _dotdot || fn.at(fn.length() - 1).latin1() == '~' ) continue; /*US if (!recursive && !regexp.exactMatch(fn)) continue; // No match @@ -446,40 +446,40 @@ static void lookupDirectory(const QString& path, const QString &relPart, //US this should do the same: int pos = regexp.match(fn); if (!recursive && !pos == 0) continue; // No match QString pathfn = path + fn; -/*US +/*US if ( stat( QFile::encodeName(pathfn), &buff ) != 0 ) { kdDebug() << "Error stat'ing " << pathfn << " : " << perror << endl; continue; // Couldn't stat (e.g. no read permissions) } - - if ( recursive ) + + if ( recursive ) { if ( S_ISDIR( buff.st_mode )) { lookupDirectory(pathfn + '/', relPart + fn + '/', regexp, list, relList, recursive, uniq); } */ //US replacement: QFileInfo pathfnInfo(QFile::encodeName(pathfn)); if ( pathfnInfo.isReadable() == false ) { //US kdDebug() << "Error stat'ing " << pathfn << " : " << perror << endl; continue; // Couldn't stat (e.g. no read permissions) } - - if ( recursive ) + + if ( recursive ) { if ( pathfnInfo.isDir()) { lookupDirectory(pathfn + '/', relPart + fn + '/', regexp, list, relList, recursive, uniq); } - - -/*US + + +/*US if (!regexp.exactMatch(fn)) continue; // No match */ //US this should do the same: pos = regexp.match(fn); if (!pos == 0) @@ -507,13 +507,13 @@ static void lookupDirectory(const QString& path, const QString &relPart, QFileInfo pathfnInfo(QFile::encodeName(pathfn)); //US if ( stat( QFile::encodeName(pathfn), &buff ) != 0 ) if ( pathfnInfo.isReadable() == false ) return; // File not found - + //US if ( S_ISREG( buff.st_mode)) if ( pathfnInfo.isFile()) { if (!uniq || !relList.contains(relPart + fn)) { list.append( pathfn ); @@ -553,14 +553,14 @@ static void lookupPrefix(const QString& prefix, const QString& relpath, //US struct stat buff; if (path.contains('*') || path.contains('?')) { QRegExp pathExp(path, true, true); //US DIR *dp = opendir( QFile::encodeName(prefix) ); QDir dp(QFile::encodeName(prefix)); - -//US if (!dp) + +//US if (!dp) if (!dp.exists()) { return; } //US struct dirent *ep; @@ -568,19 +568,19 @@ static void lookupPrefix(const QString& prefix, const QString& relpath, QString _dot("."); QString _dotdot(".."); //US while( ( ep = readdir( dp ) ) != 0L ) QStringList direntries = dp.entryList(); QStringList::Iterator it = direntries.begin(); - + while ( it != list.end() ) // for each file... { //US QString fn( QFile::decodeName(ep->d_name)); QString fn = (*it); // dp.entryList() already encodes the strings it++; - + if (fn == _dot || fn == _dotdot || fn.at(fn.length() - 1) == '~') continue; #ifdef DESKTOP_VERSION if (pathExp.search(fn) == -1) @@ -599,13 +599,13 @@ static void lookupPrefix(const QString& prefix, const QString& relpath, { //US kdDebug() << "Error statting " << fn << " : " << perror << endl; continue; // Couldn't stat (e.g. no permissions) } //US if ( S_ISDIR( buff.st_mode )) if ( fnInfo.isDir() ) - + lookupPrefix(fn + '/', rest, rfn + '/', regexp, list, relList, recursive, uniq); } //US closedir( dp ); } else { // Don't stat, if the dir doesn't exist we will find out @@ -668,13 +668,13 @@ KStandardDirs::findAllResources( const char *type, bool uniq) const { QStringList relList; return findAllResources(type, filter, recursive, uniq, relList); } -QString +QString KStandardDirs::realPath(const QString &dirname) { #ifdef _WIN32_ return dirname; #else //US char realpath_buffer[MAXPATHLEN + 1]; @@ -729,13 +729,13 @@ void KStandardDirs::createSpecialResource(const char *type) QStringList KStandardDirs::resourceDirs(const char *type) const { QStringList *candidates = dircache.find(type); if (!candidates) { // filling cache -/*US +/*US if (strcmp(type, "socket") == 0) const_cast<KStandardDirs *>(this)->createSpecialResource(type); else if (strcmp(type, "tmp") == 0) const_cast<KStandardDirs *>(this)->createSpecialResource(type); else if (strcmp(type, "cache") == 0) const_cast<KStandardDirs *>(this)->createSpecialResource(type); @@ -765,13 +765,13 @@ QStringList KStandardDirs::resourceDirs(const char *type) const if (strncmp(type, "xdgdata-", 8) == 0) prefixList = &(d->xdgdata_prefixes); else if (strncmp(type, "xdgconf-", 8) == 0) prefixList = &(d->xdgconf_prefixes); else prefixList = &prefixes; - + for (QStringList::ConstIterator pit = prefixList->begin(); pit != prefixList->end(); pit++) { for (QStringList::ConstIterator it = dirs->begin(); it != dirs->end(); ++it) { @@ -832,13 +832,13 @@ QString KStandardDirs::findExe( const QString& appname, return QString::null; } //US QString p = QString("%1/%2").arg(__KDE_BINDIR).arg(appname); QString p = QString("%1/%2").arg(appname).arg(appname); qDebug("KStandardDirs::findExe this is probably wrong"); - + info.setFile( p ); if( info.exists() && ( ignore || info.isExecutable() ) && ( info.isFile() || info.isSymLink() ) ) { return p; } @@ -1004,13 +1004,13 @@ QString KStandardDirs::saveLocation(const char *type, QString *pPath = savelocations.find(type); if (!pPath) { QStringList *dirs = relatives.find(type); if (!dirs && ( - (strcmp(type, "socket") == 0) || + (strcmp(type, "socket") == 0) || (strcmp(type, "tmp") == 0) || (strcmp(type, "cache") == 0) )) { (void) resourceDirs(type); // Generate socket|tmp|cache resource. dirs = relatives.find(type); // Search again. } @@ -1027,23 +1027,23 @@ QString KStandardDirs::saveLocation(const char *type, else { dirs = absolutes.find(type); if (!dirs) qFatal("KStandardDirs: The resource type %s is not registered", type); pPath = new QString(realPath(dirs->last())); } - + savelocations.insert(type, pPath); } - + QString fullPath = *pPath + suffix; //US struct stat st; -//US if (stat(QFile::encodeName(fullPath), &st) != 0 || !(S_ISDIR(st.st_mode))) +//US if (stat(QFile::encodeName(fullPath), &st) != 0 || !(S_ISDIR(st.st_mode))) QFileInfo fullPathInfo(QFile::encodeName(fullPath)); - if (fullPathInfo.isReadable() || !fullPathInfo.isDir()) - - + if (fullPathInfo.isReadable() || !fullPathInfo.isDir()) + + { if(!create) { #ifndef NDEBUG qDebug("save location %s doesn't exist", fullPath.latin1()); #endif return fullPath; @@ -1132,19 +1132,19 @@ bool KStandardDirs::makeDir(const QString& dir2, int mode) #endif // ******************************************** // new code for WIN32 QDir dirObj; - + // we want an absolute path #ifndef _WIN32_ if (dir.at(0) != '/') return false; #endif - + QString target = dir; uint len = target.length(); #ifndef _WIN32_ // append trailing slash if missing if (dir.at(len - 1) != '/') target += '/'; @@ -1162,30 +1162,30 @@ bool KStandardDirs::makeDir(const QString& dir2, int mode) int pos = target.find('\\', i); #endif if ( pos < 0 ) return true; base += target.mid(i - 1, pos - i + 1); //QMessageBox::information( 0,"cap111", base, 1 ); -/*US +/*US QCString baseEncoded = QFile::encodeName(base); // bail out if we encountered a problem if (stat(baseEncoded, &st) != 0) { // Directory does not exist.... // Or maybe a dangling symlink ? if (lstat(baseEncoded, &st) == 0) (void)unlink(baseEncoded); // try removing - + if ( mkdir(baseEncoded, (mode_t) mode) != 0) { perror("trying to create local folder"); return false; // Couldn't create it :-( } } -*/ - +*/ + if (dirObj.exists(base) == false) { //qDebug("KStandardDirs::makeDir try to create : %s" , base.latin1()); if (dirObj.mkdir(base) != true) { qDebug("KStandardDirs::makeDir could not create: %s" , base.latin1()); @@ -1230,26 +1230,26 @@ void KStandardDirs::addKDEDefaults() { kdedir = KShell::tildeExpand(kdedir); kdedirList.append(kdedir); } } //US kdedirList.append(KDEDIR); -//US for embedded, add qtopia dir as kdedir +//US for embedded, add qtopia dir as kdedir #ifndef DESKTOP_VERSION kdedirList.append(readEnvPath("QPEDIR" )); #endif #ifdef __KDE_EXECPREFIX QString execPrefix(__KDE_EXECPREFIX); if (execPrefix!="NONE") kdedirList.append(execPrefix); #endif QString localKdeDir; - + //US if (getuid()) if (true) { localKdeDir = readEnvPath("MICROKDEHOME"); if (!localKdeDir.isEmpty()) { @@ -1272,21 +1272,21 @@ void KStandardDirs::addKDEDefaults() localKdeDir += '/'; } else { //US struct passwd *pw = getpwuid(0); //US localKdeDir = QFile::decodeName((pw && pw->pw_dir) ? pw->pw_dir : "/root") + "/.microkde/"; - qDebug("KStandardDirs::addKDEDefaults: 1 has to be fixed"); + qDebug("KStandardDirs::addKDEDefaults: 1 has to be fixed"); } } //US localKdeDir = appDir(); //US -// qDebug("KStandardDirs::addKDEDefaults: localKdeDir=%s", localKdeDir.latin1()); +// qDebug("KStandardDirs::addKDEDefaults: localKdeDir=%s", localKdeDir.latin1()); if (localKdeDir != "-/") { localKdeDir = KShell::tildeExpand(localKdeDir); addPrefix(localKdeDir); } @@ -1325,13 +1325,13 @@ void KStandardDirs::addKDEDefaults() localXdgDir = QDir::homeDirPath() + "/.config/"; } else { //US struct passwd *pw = getpwuid(0); //US localXdgDir = QFile::decodeName((pw && pw->pw_dir) ? pw->pw_dir : "/root") + "/.config/"; - qDebug("KStandardDirs::addKDEDefaults: 2 has to be fixed"); + qDebug("KStandardDirs::addKDEDefaults: 2 has to be fixed"); } } localXdgDir = KShell::tildeExpand(localXdgDir); addXdgConfigPrefix(localXdgDir); @@ -1357,13 +1357,13 @@ void KStandardDirs::addKDEDefaults() { QString dir = *it; if (dir.at(dir.length()-1) != '/') dir += '/'; xdgdirList.append(dir+"share/"); } - + xdgdirList.append("/usr/local/share/"); xdgdirList.append("/usr/share/"); } localXdgDir = readEnvPath("XDG_DATA_HOME"); if (!localXdgDir.isEmpty()) @@ -1379,24 +1379,24 @@ void KStandardDirs::addKDEDefaults() localXdgDir = QDir::homeDirPath() + "/.local/share/"; } else { //US struct passwd *pw = getpwuid(0); //US localXdgDir = QFile::decodeName((pw && pw->pw_dir) ? pw->pw_dir : "/root") + "/.local/share/"; - qDebug("KStandardDirs::addKDEDefaults: 3 has to be fixed"); + qDebug("KStandardDirs::addKDEDefaults: 3 has to be fixed"); } } localXdgDir = KShell::tildeExpand(localXdgDir); addXdgDataPrefix(localXdgDir); for (QStringList::ConstIterator it = xdgdirList.begin(); it != xdgdirList.end(); it++) { QString dir = KShell::tildeExpand(*it); - + addXdgDataPrefix(dir); } // end XDG_DATA_XXX uint index = 0; @@ -1407,13 +1407,13 @@ void KStandardDirs::addKDEDefaults() addResourceDir("home", QDir::homeDirPath()); } void KStandardDirs::checkConfig() const { -/*US +/*US if (!addedCustoms && KGlobal::_instance && KGlobal::_instance->_config) const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::_instance->_config); */ if (!addedCustoms && KGlobal::config()) const_cast<KStandardDirs*>(this)->addCustomized(KGlobal::config()); } @@ -1436,13 +1436,13 @@ bool KStandardDirs::addCustomized(KConfig *config) list = config->readListEntry("prefixes"); for (it = list.begin(); it != list.end(); it++) addPrefix(*it); // iterating over all entries in the group Directories // to find entries that start with dir_$type -/*US +/*US QMap<QString, QString> entries = config->entryMap("Directories"); QMap<QString, QString>::ConstIterator it2; for (it2 = entries.begin(); it2 != entries.end(); it2++) { QString key = it2.key(); @@ -1498,19 +1498,19 @@ QString KStandardDirs::localxdgconfdir() const } void KStandardDirs::setAppDir( const QString &appDir ) { mAppDir = appDir; - if ( mAppDir.right( 1 ) != "/" ) + if ( mAppDir.right( 1 ) != "/" ) mAppDir += "/"; } QString KStandardDirs::appDir() -{ - return mAppDir; +{ + return mAppDir; } // just to make code more readable without macros QString locate( const char *type, const QString& filename/*US , const KInstance* inst*/ ) { @@ -1520,13 +1520,13 @@ QString locate( const char *type, QString locateLocal( const char *type, const QString& filename/*US , const KInstance* inst*/ ) { QString path = locateLocal(type, filename, true /*US, inst*/); - + /* static int ccc = 0; ++ccc; if ( ccc > 13 ) abort(); @@ -1534,51 +1534,51 @@ QString locateLocal( const char *type, qDebug("locatelocal: %s" , path.latin1()); return path; /*US why do we put all files into one directory. It is quit complicated. why not staying with the original directorystructure ? - + QString escapedFilename = filename; escapedFilename.replace( QRegExp( "/" ), "_" ); QString path = KStandardDirs::appDir() + type + "_" + escapedFilename; kdDebug() << "locate: '" << path << "'" << endl; qDebug("locate: %s" , path.latin1()); return path; */ -//US so my proposal is this: +//US so my proposal is this: // QString escapedFilename = filename; // escapedFilename.replace( QRegExp( "/" ), "_" ); #if 0 #ifdef _WIN32_ QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename); #else QString path = KStandardDirs::appDir() + type + "/" + filename; #endif - + //US Create the containing dir if needed QFileInfo fi ( path ); - + // QString dir=pathurl.directory(); // QMessageBox::information( 0,"path", path, 1 ); - + #ifdef _WIN32_ KStandardDirs::makeDir(path); #else KStandardDirs::makeDir(fi.dirPath( true )); -#endif - +#endif + qDebug("locate22: %s" , path.latin1()); return path; #endif - + } QString locateLocal( const char *type, const QString& filename, bool createDir/*US , const KInstance* inst*/ ) { // try to find slashes. If there are some, we have to @@ -1597,41 +1597,41 @@ QString locateLocal( const char *type, // *************************************************************** #if 0 /*US why do we put all files into one directory. It is quit complicated. why not staying with the original directorystructure ? - + QString escapedFilename = filename; escapedFilename.replace( QRegExp( "/" ), "_" ); QString path = KStandardDirs::appDir() + type + "_" + escapedFilename; kdDebug() << "locate: '" << path << "'" << endl; qDebug("locate: %s" , path.latin1()); return path; */ -//US so my proposal is this: +//US so my proposal is this: // QString escapedFilename = filename; // escapedFilename.replace( QRegExp( "/" ), "_" ); #ifdef _WIN32_ QString path = QDir::convertSeparators(KStandardDirs::appDir() + type + "/" + filename); #else QString path = KStandardDirs::appDir() + type + "/" + filename; #endif - + //US Create the containing dir if needed KURL pathurl; pathurl.setPath(path); QString dir=pathurl.directory(); // QMessageBox::information( 0,"path", path, 1 ); #ifdef _WIN32_ KStandardDirs::makeDir(path); #else KStandardDirs::makeDir(dir); -#endif - +#endif + return path; #endif } |