QStringList ScPaths::getSystemCreateSwatchesDirs(void) { QStringList createDirs; #ifdef Q_OS_MAC createDirs.append(QDir::homePath()+"/create/swatches/"); createDirs.append(QDir::homePath()+"/.create/swatches/"); #elif defined(Q_WS_X11) createDirs.append(QDir::homePath()+"/create/swatches/"); createDirs.append(QDir::homePath()+"/.create/swatches/"); createDirs.append("/usr/share/create/swatches/"); createDirs.append("/usr/local/share/create/swatches/"); #elif defined(_WIN32) QString localAppData = getSpecialDir(CSIDL_LOCAL_APPDATA); QString commonAppData = getSpecialDir(CSIDL_COMMON_APPDATA); QString programFilesCommon = getSpecialDir(CSIDL_PROGRAM_FILES_COMMON); createDirs.append(getSpecialDir(CSIDL_APPDATA) + "create/swatches/"); if ( !localAppData.isEmpty() ) createDirs.append(localAppData + "create/swatches/"); if ( !commonAppData.isEmpty() ) createDirs.append(commonAppData + "create/swatches/"); if ( !programFilesCommon.isEmpty() ) createDirs.append(programFilesCommon + "create/swatches/"); #endif return createDirs; }
QString ScPaths::getUserDocumentDir(void) { #if defined(_WIN32) QString userDocs = getSpecialDir(CSIDL_PERSONAL); if (QDir(userDocs).exists()) return userDocs; #endif return (QDir::homePath() + "/"); }
QStringList ScPaths::getSystemFontDirs(void) { QStringList fontDirs; #ifdef Q_OS_MAC fontDirs.append(QDir::homePath() + "/Library/Fonts/"); fontDirs.append("/Library/Fonts/"); fontDirs.append("/Network/Library/Fonts/"); fontDirs.append("/System/Library/Fonts/"); #elif defined(_WIN32) fontDirs.append( getSpecialDir(CSIDL_FONTS) ); #endif return fontDirs; }
QString ScPaths::getTempFileDir(void) { #if defined(_WIN32) QString tempPath; WCHAR wTempPath[1024]; DWORD result = GetTempPathW(1024, wTempPath); if ( result ) { tempPath = QString::fromUtf16((const unsigned short*) wTempPath); tempPath.replace( '\\', '/' ); tempPath += "/"; // GetTempPath may return Windows directory, better not use this one // for temporary files if (QDir(tempPath).exists() && tempPath != getSpecialDir(CSIDL_WINDOWS)) return tempPath; } #endif return getApplicationDataDir(); }
QString ScPaths::getApplicationDataDir(void) { #if defined(_WIN32) QString appData = getSpecialDir(CSIDL_APPDATA); if (QDir(appData).exists()) #ifdef APPLICATION_DATA_DIR return (appData + "/" + APPLICATION_DATA_DIR + "/"); #else return (appData + "/Scribus/"); #endif #endif #ifdef APPLICATION_DATA_DIR return QDir::homePath() + "/" + APPLICATION_DATA_DIR + "/"; #else #ifdef Q_OS_MAC return (QDir::homePath() + "/Library/Preferences/Scribus/"); #else return (QDir::homePath() + "/.scribus/"); #endif #endif }
QStringList ScPaths::spellDirs() const { //dictionaryPaths QString macPortsPath("/opt/local/share/hunspell/"); QString finkPath("/sw/share/hunspell/"); QString osxLibreOfficePath("/Applications/LibreOffice.app/Contents/share/extensions"); QString osxUserLibreOfficePath(QDir::homePath()+"/Applications/LibreOffice.app/Contents/share/extensions"); QString linuxLocalPath("/usr/local/share/hunspell/"); QString linuxHunspellPath("/usr/share/hunspell/"); QString linuxMyspellPath("/usr/share/myspell/"); QString windowsLOPath("LibreOffice 3.5/share/extensions"); QDir d; QStringList spellDirs; spellDirs.append(getUserDictDir(false)); spellDirs.append(m_shareDir + "dicts/spelling/"); #ifdef Q_OS_MAC d.setPath(macPortsPath); if (d.exists()) spellDirs.append(macPortsPath); d.setPath(finkPath); if (d.exists()) spellDirs.append(finkPath); d.setPath(osxLibreOfficePath); if (d.exists()) { QStringList dictDirFilters("dict-*"); QStringList dictDirList(d.entryList(dictDirFilters, QDir::Dirs, QDir::Name)); QString dir; foreach (dir, dictDirList) spellDirs.append(osxLibreOfficePath + "/" + dir + "/"); } d.setPath(osxUserLibreOfficePath); if (d.exists()) { QStringList dictDirFilters("dict-*"); QStringList dictDirList(d.entryList(dictDirFilters, QDir::Dirs, QDir::Name)); QString dir; foreach (dir, dictDirList) spellDirs.append(osxUserLibreOfficePath + "/" + dir + "/"); } #elif defined(_WIN32) QString progFiles = getSpecialDir(CSIDL_PROGRAM_FILES); d.setPath(progFiles+windowsLOPath); if (d.exists()) { QStringList dictDirFilters("dict-*"); QStringList dictDirList(d.entryList(dictDirFilters, QDir::Dirs, QDir::Name)); QString dir; foreach (dir, dictDirList) spellDirs.append(progFiles+windowsLOPath + "/" + dir + "/"); } #elif defined(Q_WS_X11) d.setPath(linuxHunspellPath); if (d.exists()) spellDirs.append(linuxHunspellPath); d.setPath(linuxMyspellPath); if (d.exists()) spellDirs.append(linuxMyspellPath); d.setPath(linuxLocalPath); if (d.exists()) spellDirs.append(linuxLocalPath); #endif return spellDirs; }