| @@ -11,8 +11,6 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets | |||||
| TARGET = feiq | TARGET = feiq | ||||
| TEMPLATE = app | TEMPLATE = app | ||||
| LIBS += -liconv -lsqlite3 | LIBS += -liconv -lsqlite3 | ||||
| mac{ | mac{ | ||||
| @@ -58,7 +56,8 @@ SOURCES += main.cpp\ | |||||
| feiqwin.cpp \ | feiqwin.cpp \ | ||||
| plugin/unreadchecker.cpp \ | plugin/unreadchecker.cpp \ | ||||
| plugin/iplugin.cpp \ | plugin/iplugin.cpp \ | ||||
| plugin/rankuser.cpp | |||||
| plugin/rankuser.cpp \ | |||||
| settings.cpp | |||||
| HEADERS += mainwindow.h \ | HEADERS += mainwindow.h \ | ||||
| @@ -96,7 +95,8 @@ HEADERS += mainwindow.h \ | |||||
| plugin/iplugin.h \ | plugin/iplugin.h \ | ||||
| feiqwin.h \ | feiqwin.h \ | ||||
| plugin/unreadchecker.h \ | plugin/unreadchecker.h \ | ||||
| plugin/rankuser.h | |||||
| plugin/rankuser.h \ | |||||
| settings.h | |||||
| FORMS += mainwindow.ui \ | FORMS += mainwindow.ui \ | ||||
| searchfellowdlg.ui \ | searchfellowdlg.ui \ | ||||
| @@ -29,7 +29,7 @@ const FeiqModel *FeiqWin::feiqModel() | |||||
| return &(mMainWin->mFeiq.getModel()); | return &(mMainWin->mFeiq.getModel()); | ||||
| } | } | ||||
| QSettings *FeiqWin::settings() | |||||
| Settings *FeiqWin::settings() | |||||
| { | { | ||||
| return mMainWin->mSettings; | return mMainWin->mSettings; | ||||
| } | } | ||||
| @@ -6,6 +6,7 @@ | |||||
| #include "qsettings.h" | #include "qsettings.h" | ||||
| #include "fellowlistwidget.h" | #include "fellowlistwidget.h" | ||||
| #include "feiqlib/feiqmodel.h" | #include "feiqlib/feiqmodel.h" | ||||
| #include "settings.h" | |||||
| class MainWindow; | class MainWindow; | ||||
| class IPlugin; | class IPlugin; | ||||
| @@ -24,7 +25,7 @@ public: | |||||
| SendTextEdit* sendTextEdit(); | SendTextEdit* sendTextEdit(); | ||||
| FellowListWidget* fellowListWidget(); | FellowListWidget* fellowListWidget(); | ||||
| const FeiqModel* feiqModel(); | const FeiqModel* feiqModel(); | ||||
| QSettings* settings(); | |||||
| Settings* settings(); | |||||
| public: | public: | ||||
| int getUnreadCount(); | int getUnreadCount(); | ||||
| @@ -64,7 +64,7 @@ MainWindow::MainWindow(QWidget *parent) : | |||||
| //加载配置 | //加载配置 | ||||
| auto settingFilePath = QDir::home().filePath(".feiq_setting.ini"); | auto settingFilePath = QDir::home().filePath(".feiq_setting.ini"); | ||||
| mSettings = new QSettings(settingFilePath, QSettings::IniFormat); | |||||
| mSettings = new Settings(settingFilePath, QSettings::IniFormat); | |||||
| mSettings->setIniCodec(QTextCodec::codecForName("UTF-8")); | mSettings->setIniCodec(QTextCodec::codecForName("UTF-8")); | ||||
| mTitle = mSettings->value("app/title", "mac飞秋").toString(); | mTitle = mSettings->value("app/title", "mac飞秋").toString(); | ||||
| setWindowTitle(mTitle); | setWindowTitle(mTitle); | ||||
| @@ -80,6 +80,7 @@ MainWindow::MainWindow(QWidget *parent) : | |||||
| MainWindow::~MainWindow() | MainWindow::~MainWindow() | ||||
| { | { | ||||
| mFeiq.stop(); | mFeiq.stop(); | ||||
| mSettings->sync(); | |||||
| delete mSettings; | delete mSettings; | ||||
| delete mSearchFellowDlg; | delete mSearchFellowDlg; | ||||
| delete mDownloadFileDlg; | delete mDownloadFileDlg; | ||||
| @@ -7,7 +7,7 @@ | |||||
| #include "recvtextedit.h" | #include "recvtextedit.h" | ||||
| #include "feiqlib/feiqengine.h" | #include "feiqlib/feiqengine.h" | ||||
| #include "filemanagerdlg.h" | #include "filemanagerdlg.h" | ||||
| #include <QSettings> | |||||
| #include "settings.h" | |||||
| #include <unordered_map> | #include <unordered_map> | ||||
| #include "chooseemojidlg.h" | #include "chooseemojidlg.h" | ||||
| #include <QFileInfo> | #include <QFileInfo> | ||||
| @@ -90,7 +90,7 @@ private: | |||||
| SearchFellowDlg* mSearchFellowDlg; | SearchFellowDlg* mSearchFellowDlg; | ||||
| FileManagerDlg* mDownloadFileDlg; | FileManagerDlg* mDownloadFileDlg; | ||||
| ChooseEmojiDlg* mChooseEmojiDlg; | ChooseEmojiDlg* mChooseEmojiDlg; | ||||
| QSettings* mSettings; | |||||
| Settings* mSettings; | |||||
| FeiqEngine mFeiq; | FeiqEngine mFeiq; | ||||
| RecvTextEdit* mRecvTextEdit; | RecvTextEdit* mRecvTextEdit; | ||||
| SendTextEdit* mSendTextEdit; | SendTextEdit* mSendTextEdit; | ||||
| @@ -24,7 +24,7 @@ void UnreadChecker::init() | |||||
| IPlugin::init(); | IPlugin::init(); | ||||
| auto settings = mFeiq->settings(); | auto settings = mFeiq->settings(); | ||||
| mUnreadTimerInterval = settings->value(PLUGIN_NAME"/timer", "0").toInt(); | |||||
| mUnreadTimerInterval = settings->value(PLUGIN_NAME"/timer", "600").toInt(); | |||||
| if (mUnreadTimerInterval > 0) | if (mUnreadTimerInterval > 0) | ||||
| mUnreadTimerId = startTimer(mUnreadTimerInterval*1000, Qt::VeryCoarseTimer); | mUnreadTimerId = startTimer(mUnreadTimerInterval*1000, Qt::VeryCoarseTimer); | ||||
| } | } | ||||
| @@ -0,0 +1,22 @@ | |||||
| #include "settings.h" | |||||
| Settings::Settings(const QString &fileName, QSettings::Format format, QObject *parent) | |||||
| :QSettings(fileName, format, parent) | |||||
| { | |||||
| } | |||||
| QVariant Settings::value(const QString &key, const QVariant &defaultValue) | |||||
| { | |||||
| //如果配置中没有该项,则以默认值创建,方便用户知道有那些配置项可用 | |||||
| if (!contains(key)) | |||||
| { | |||||
| if (!defaultValue.isValid() || defaultValue.isNull()) | |||||
| setValue(key, "");//防止非法值 | |||||
| else | |||||
| setValue(key, defaultValue); | |||||
| sync(); | |||||
| } | |||||
| return QSettings::value(key, defaultValue); | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| #ifndef SETTINGS_H | |||||
| #define SETTINGS_H | |||||
| #include <QObject> | |||||
| #include <QSettings> | |||||
| class Settings : public QSettings | |||||
| { | |||||
| public: | |||||
| Settings(const QString &fileName, Format format, QObject *parent = Q_NULLPTR); | |||||
| public: | |||||
| //QSettings::value不是虚函数,这里并非多态重载,使用时需注意以Settings指针调用,而非QSettings调用 | |||||
| QVariant value(const QString &key, const QVariant &defaultValue = QVariant()); | |||||
| }; | |||||
| #endif // SETTINGS_H | |||||