📄 qsettings_mac.cpp
字号:
QString fix_s = s.left(sep); qt_mac_unfix_key(fix_s); if(!fix_s.isEmpty() && ret.findIndex(fix_s) == -1) ret << fix_s; } } else if(!subkey) { QString fix_s = s; qt_mac_unfix_key(fix_s); ret << fix_s; } } } CFRelease(cfa); return ret; } } } return ret;}voidQSettingsPrivate::sysInit(){ sysd = new QSettingsSysPrivate; Q_CHECK_PTR(sysd); sysInsertSearchPath(QSettings::Mac, "");}voidQSettingsPrivate::sysClear(){ delete sysd; sysd = NULL;}bool QSettingsPrivate::sysSync(){ bool ret = TRUE; for(QStringList::Iterator it = sysd->syncKeys.begin(); it != sysd->syncKeys.end(); --it) { CFStringRef csr = CFStringCreateWithCharacters(NULL, (UniChar *)(*it).unicode(), (*it).length());#ifdef DEBUG_SETTINGS_KEYS qDebug("QSettingsPrivate::sysSync(%s)", (*it).latin1());#endif if(CFPreferencesAppSynchronize(csr)) ret = FALSE; CFRelease(csr); } sysd->syncKeys.clear(); return ret;}void QSettingsPrivate::sysInsertSearchPath(QSettings::System s, const QString &path){ if(s != QSettings::Mac) return; if ( !path.isEmpty() && !qt_verify_key( path ) ) {#if defined(QT_CHECK_STATE) qWarning( "QSettings::insertSearchPath: Invalid key: '%s'", path.isNull() ? "(null)" : path.latin1() );#endif return; } QString realpath = path; while(realpath.right(1) == "/") realpath.truncate(realpath.length() -1); sysd->searchPaths.append(realpath);}void QSettingsPrivate::sysRemoveSearchPath(QSettings::System s, const QString &path){ if(s != QSettings::Mac) return; QString realpath = path; while(realpath.right(1) == "/") realpath.truncate(realpath.length() -1); sysd->searchPaths.remove(realpath);}bool QSettingsPrivate::sysReadBoolEntry(const QString &key, bool def, bool *ok) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysReadBoolEntry: invalid null/empty key."); if(ok) *ok = FALSE; return def; }#endif // QT_CHECK_STATE if(CFPropertyListRef r = sysd->readEntry(key, globalScope)) { if(CFGetTypeID(r) == CFBooleanGetTypeID()) { bool ret = FALSE; if(CFEqual((CFBooleanRef)r, kCFBooleanTrue)) ret = TRUE; CFRelease(r); return ret; } else { CFRelease(r); } } if(ok) *ok = FALSE; return def;}double QSettingsPrivate::sysReadDoubleEntry(const QString &key, double def, bool *ok) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysReadDoubleEntry: invalid null/empty key."); if(ok) *ok = FALSE; return def; }#endif // QT_CHECK_STATE if(CFPropertyListRef r = sysd->readEntry(key, globalScope)) { if(CFGetTypeID(r) == CFNumberGetTypeID()) { double ret; if(!CFNumberGetValue((CFNumberRef)r, kCFNumberDoubleType, &ret)) { if(ok) *ok = FALSE; ret = def; } else if(ok) { *ok = TRUE; } CFRelease(r); return ret; } else { CFRelease(r); } } if(ok) *ok = FALSE; return def;} int QSettingsPrivate::sysReadNumEntry(const QString &key, int def, bool *ok) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysReadNumEntry: invalid null/empty key."); if(ok) *ok = FALSE; return def; }#endif // QT_CHECK_STATE if(CFPropertyListRef r = sysd->readEntry(key, globalScope)) { if(CFGetTypeID(r) == CFNumberGetTypeID()) { int ret; if(!CFNumberGetValue((CFNumberRef)r, kCFNumberIntType, &ret)) { if(ok) *ok = FALSE; ret = def; } else if(ok) { *ok = TRUE; } CFRelease(r); return ret; } else { CFRelease(r); } } if(ok) *ok = FALSE; return def;}QString QSettingsPrivate::sysReadEntry(const QString &key, const QString &def, bool *ok) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysReadEntry: invalid null/empty key."); if(ok) *ok = FALSE; return def; }#endif // QT_CHECK_STATE if(CFPropertyListRef r = sysd->readEntry(key, globalScope)) { if(CFGetTypeID(r) == CFStringGetTypeID()) { if(ok) *ok = TRUE; QString ret = cfstring2qstring((CFStringRef)r); CFRelease(r); return ret; } else { CFRelease(r); } } if(ok) *ok = FALSE; return def;}#if !defined(Q_NO_BOOL_TYPE)bool QSettingsPrivate::sysWriteEntry(const QString &key, bool value){#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysWriteEntry (bool): invalid null/empty key."); return FALSE; }#endif // QT_CHECK_STATE CFBooleanRef val = value ? kCFBooleanTrue : kCFBooleanFalse; bool ret = sysd->writeEntry(key, val, globalScope); return ret;}#endifbool QSettingsPrivate::sysWriteEntry(const QString &key, double value){#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysWriteEntry (double): invalid null/empty key."); return FALSE; }#endif // QT_CHECK_STATE CFNumberRef val = CFNumberCreate(NULL, kCFNumberDoubleType, &value); bool ret = sysd->writeEntry(key, val, globalScope); CFRelease(val); return ret;}bool QSettingsPrivate::sysWriteEntry(const QString &key, int value){#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysWriteEntry (int): invalid null/empty key."); return FALSE; }#endif // QT_CHECK_STATE CFNumberRef val = CFNumberCreate(NULL, kCFNumberIntType, &value); bool ret = sysd->writeEntry(key, val, globalScope); CFRelease(val); return ret;}bool QSettingsPrivate::sysWriteEntry(const QString &key, const QString &value){#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysWriteEntry (QString): invalid null/empty key."); return FALSE; }#endif // QT_CHECK_STATE CFStringRef val = CFStringCreateWithCharacters(NULL, (UniChar *)value.unicode(), value.length()); bool ret = sysd->writeEntry(key, val, globalScope); CFRelease(val); return ret;}bool QSettingsPrivate::sysRemoveEntry(const QString &key){#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysRemoveEntry: invalid null/empty key."); return FALSE; }#endif // QT_CHECK_STATE return sysd->writeEntry(key, NULL, globalScope);}QStringList QSettingsPrivate::sysEntryList(const QString &key) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysEntryList: invalid null/empty key."); return QStringList(); }#endif // QT_CHECK_STATE return sysd->entryList(key, FALSE, globalScope);}QStringList QSettingsPrivate::sysSubkeyList(const QString &key) const{#ifdef QT_CHECK_STATE if(key.isNull() || key.isEmpty()) { qWarning("QSettingsPrivate::sysSubkeyList: invalid null/empty key."); return QStringList(); }#endif // QT_CHECK_STATE return sysd->entryList(key, TRUE, globalScope);}#endif //QT_NO_SETTINGS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -