config.cpp

来自「奇趣公司比较新的qt/emd版本」· C++ 代码 · 共 431 行 · 第 1/2 页

CPP
431
字号
        }    }    return false;}void Config::loadDefaultProfile(){    QSettings settings;    const QString profKey = QLatin1String(QT_VERSION_STR) + QLatin1String("/Profile/default/");    if (!defaultProfileExists())        return;    // Override the defaults with settings in registry.    profil->icons.clear();    profil->indexPages.clear();    profil->imageDirs.clear();    profil->docs.clear();    profil->dcfTitles.clear();    QStringList titles = settings.value( profKey + QLatin1String("Titles") ).toStringList();    QStringList iconLst = settings.value( profKey + QLatin1String("DocIcons") ).toStringList();    QStringList indexLst = settings.value( profKey + QLatin1String("IndexPages") ).toStringList();    QStringList imgDirLst = settings.value( profKey + QLatin1String("ImageDirs") ).toStringList();    QStringList dcfs = settings.value( profKey + QLatin1String("DocFiles") ).toStringList();    profil->props[QLatin1String("name")] = QLatin1String("default");    QString filePath;    QStringList::ConstIterator it = titles.constBegin();    QStringList::ConstIterator iconIt = iconLst.constBegin();    QStringList::ConstIterator indexIt = indexLst.constBegin();    QStringList::ConstIterator imageIt = imgDirLst.constBegin();    QStringList::ConstIterator dcfIt = dcfs.constBegin();    while((it != titles.constEnd())          && (iconIt != iconLst.constEnd())          && (indexIt != indexLst.constEnd())          && (imageIt != imgDirLst.constEnd())          && (dcfIt != dcfs.constEnd())) {        profil->addDCFIcon( *it, *iconIt );        profil->addDCFIndexPage(*it, Profile::loadableFilePath(*indexIt));        profil->addDCFImageDir( *it, *imageIt );        profil->addDCFTitle(Profile::loadableFilePath(*dcfIt), *it);        ++it, ++iconIt, ++indexIt, ++imageIt, ++dcfIt;    }#if ASSISTANT_DEBUG    dumpmap( profil->icons, QLatin1String("Icons") );    dumpmap( profil->indexPages, QLatin1String("IndexPages") );    dumpmap( profil->imageDirs, QLatin1String("ImageDirs") );    dumpmap( profil->dcfTitles, QLatin1String("dcfTitles") );    qDebug( "Docfiles: \n  " + profil->docs.join( "\n  " ) );#endif}void Config::saveProfile( Profile *profile ){    if (profil->profileType() == Profile::UserProfile)        return;    const QString key = (profile->props[QLatin1String("name")] == QLatin1String("default"))        ? QString::fromLatin1(QT_VERSION_STR)        : getVersionString();    const QString profKey = key + QLatin1String("/Profile/") + profile->props[QLatin1String("name")] + QLatin1String("/");    QString path = QLibraryInfo::location(QLibraryInfo::DocumentationPath).replace(QLatin1String("\\"), QLatin1String("/"));    QStringList indexes, icons, imgDirs, dcfs;    QStringList titles = profile->dcfTitles.keys();    QStringList::ConstIterator it = titles.constBegin();    QString filePath;    for ( ; it != titles.constEnd(); ++it ) {        indexes << Profile::storableFilePath(profile->indexPages[*it]);        icons << profile->icons[*it];        imgDirs << profile->imageDirs[*it];        dcfs << Profile::storableFilePath(profile->dcfTitles[*it]);    }    QSettings settings;    settings.setValue( profKey + QLatin1String("Titles"), titles );    settings.setValue( profKey + QLatin1String("DocFiles"), dcfs );    settings.setValue( profKey + QLatin1String("IndexPages"), indexes );    settings.setValue( profKey + QLatin1String("DocIcons"), icons );    settings.setValue( profKey + QLatin1String("ImageDirs"), imgDirs );#if ASSISTANT_DEBUG    qDebug() << "Titles:\n  - " << ((QStringList*)&titles)->join("\n  - ");    qDebug() << "Docfiles:\n  - " << dcfs.join("\n  - " );    qDebug() << "IndexPages:\n  - " << indexes.join("\n  - ");    qDebug() << "DocIcons:\n  - " << icons.join("\n  - " );    qDebug() << "ImageDirs:\n  - " << imgDirs.join("\n  - " );#endif}QStringList Config::mimePaths(){    static QStringList lst;    if( lst.count() > 0 )        return lst;    for (QMap<QString,QString>::ConstIterator it = profil->dcfTitles.constBegin();         it != profil->dcfTitles.constEnd(); ++it ) {        // Mime source for .dcf file path        QFileInfo info( *it );        QString dcfPath = info.absolutePath();        if (!lst.contains(dcfPath))            lst << dcfPath;        // Image dir for .dcf        QString imgDir = QDir::toNativeSeparators( dcfPath + QDir::separator()                                                  + profil->imageDirs[it.key()] );        if (!lst.contains(imgDir))            lst << imgDir;    }    return lst;}QStringList Config::profiles() const{    return profileNames;}QString Config::title() const{    QString s = profil->props[QLatin1String("title")];    if (s.isEmpty())        s = QObject::tr("Qt Assistant by Trolltech");    return s;}QString Config::aboutApplicationMenuText() const{    return profil->props[QLatin1String("aboutmenutext")];}QString Config::aboutURL() const{    return profil->props[QLatin1String("abouturl")];}QString Config::homePage() const{    return home.isEmpty() ? profil->props[QLatin1String("startpage")] : home;}QStringList Config::source() const{    return src.size() == 0 ? QStringList(profil->props[QLatin1String("startpage")]) : src;}QStringList Config::docFiles() const{    return profil->docs;}QPixmap Config::docIcon( const QString &title ) const{    // ### To allow qdoc generated dcf files to reference the doc icons from qmake_image_col    QString name = profil->icons[title];    QString resName = QLatin1String(":/trolltech/assistant/images/") + name;    if (QFile::exists(resName))        return QPixmap(resName);    if (name.startsWith(QLatin1String("file:")))        name = name.mid(5);    return QPixmap(name);}QPixmap Config::applicationIcon() const{    QString name = profil->props[QLatin1String("applicationicon")];    QString resName = QLatin1String(":/trolltech/assistant/images/") + name;    if (QFile::exists(resName))        return QPixmap(resName);    if (name.startsWith(QLatin1String("file:")))        name = name.mid(5);    return QPixmap(name);}QStringList Config::docTitles() const{    return QStringList(profil->indexPages.keys());}QString Config::docImageDir( const QString &docfile ) const{    return profil->imageDirs[docfile];}QString Config::indexPage( const QString &title ) const{    return profil->indexPages[title];}void Config::hideSideBar( bool b ){    hideSidebar = b;}bool Config::sideBarHidden() const{    return hideSidebar;}QString Config::assistantDocPath() const{    return profil->props[QLatin1String("assistantdocs")].isEmpty()        ? QLibraryInfo::location(QLibraryInfo::DocumentationPath) + QLatin1String("/html")        : profil->props[QLatin1String("assistantdocs")];}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?