usersetting.cpp
来自「Qt开发的GRE背单词软件」· C++ 代码 · 共 128 行
CPP
128 行
#include "UserSetting.h"
#include <QDesktopWidget>
#include <QApplication>
#include <QFile>
UserSetting::UserSetting(const QString& name) : MySetting(name)
{
if(QFile(name + ".ini").size() == 0) // no setting
loadDefaults();
}
void UserSetting::loadDefaults()
{
if(getUserName() == "Global")
{
setValue("dbFileName", "word.db");
setValue("WavDir", "Sound");
setValue("Mp3Dir", "Mp3");
}
else
{
setFont("tableFont", QFont(tr("Arial"), 11));
setFont("wordFont", QFont(tr("Arial"), 72, QFont::Bold));
setFont("phoneticFont", QFont(tr("TOPhonetic"), 18, QFont::Normal));
setFont("chineseFont", QFont(tr("宋体"), 20, QFont::Bold));
setFont("noteFont", QFont(tr("Arial"), 16));
setFont("guiFont", QFont(tr("宋体"), 10));
setColor("newWordColor", QColor(Qt::red));
setColor("unFamiliarColor", QColor(Qt::gray));
setColor("familiarColor", QColor(Qt::darkGreen));
setColor("phoneticColor", QColor(Qt::darkBlue));
setShortcut("rightShortcut", QString("Right"));
setShortcut("wrongShortcut", QString("Left"));
setShortcut("chineseShortcut", QString("Ctrl+H"));
setShortcut("setNewShortcut", QString("Ctrl+N"));
setShortcut("setFamiliarShortcut", QString("Ctrl+F"));
beginGroup("Other");
setValue("filteredChar", tr(",。;、的"));
setValue("isDefault", false);
setValue("currentDict", QString());
setValue("autoBackup", true);
setValue("backupDays", 7);
endGroup();
beginGroup("LeftPanel");
setValue("autoHide", true);
setValue("hideDelay", 5);
setValue("showDelay", 1);
endGroup();
setSize("LeftSplitterLeft", 300);
setSize("LeftSplitterRight", 700);
setSize("VerticalSplitterUp", 350);
setSize("VerticalSplitterDown", 450);
setSize("DetailSplitterEnglish", 200);
setSize("DetailSplitterChinese", 100);
setSize("DetailSplitterNote", 150);
beginGroup("ButtonStatus");
setValue("Recite", false);
setValue("Upper", false);
setValue("HideControlBar", false);
endGroup();
}
}
QFont UserSetting::getFont(const QString& section) const
{
QFont font;
font.fromString(value("Font/" + section).toString());
return font;
}
QColor UserSetting::getColor(const QString& section) const {
return value("Color/" + section).toInt();
}
QKeySequence UserSetting::getShortcut(const QString& section) const {
return QKeySequence(value("Shortcut/" + section).toString());
}
int UserSetting::getSize(const QString& section) const {
return value("Sizes/" + section).toInt();
}
void UserSetting::setFont(const QString& section, const QFont& font) {
setValue("Font/" + section, font.toString());
}
void UserSetting::setColor(const QString& section, const QColor& color) {
setValue("Color/" + section, color.rgb());
}
void UserSetting::setShortcut(const QString& section, const QKeySequence& keySequence){
setValue("Shortcut/" + section, keySequence.toString());
}
void UserSetting::setSize(const QString& section, int size) {
setValue("Sizes/" + section, size);
}
DictSetting UserSetting::getDictSetting(const QString& dictName)
{
DictSetting result;
beginGroup(dictName);
result.unitSize = value("unitSize") .toInt();
result.currentUnit = value("currentUnit") .toInt();
result.threshold1 = value("threshold1") .toInt();
result.threshold2 = value("threshold2") .toInt();
result.showNew = value("showNew") .toBool();
result.showUnFamiliar = value("showUnFamiliar").toBool();
result.showFamiliar = value("showFamiliar") .toBool();
endGroup();
return result;
}
void UserSetting::setDictSetting(const QString& dictName, const DictSetting& setting)
{
beginGroup(dictName);
setValue("unitSize", setting.unitSize);
setValue("currentUnit", setting.currentUnit);
setValue("threshold1", setting.threshold1);
setValue("threshold2", setting.threshold2);
setValue("showNew", setting.showNew);
setValue("showUnFamiliar", setting.showUnFamiliar);
setValue("showFamiliar", setting.showFamiliar);
endGroup();
}
bool UserSetting::containsDictSetting(const QString& dictName) const {
return childGroups().contains(dictName);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?