Browse Source

如果配置文件不存在,生成默认配置文件

tags/v1.0
chenyong 8 years ago
parent
commit
df8a1f3ab8
8 changed files with 51 additions and 10 deletions
  1. +4
    -4
      feiq.pro
  2. +1
    -1
      feiqwin.cpp
  3. +2
    -1
      feiqwin.h
  4. +2
    -1
      mainwindow.cpp
  5. +2
    -2
      mainwindow.h
  6. +1
    -1
      plugin/unreadchecker.cpp
  7. +22
    -0
      settings.cpp
  8. +17
    -0
      settings.h

+ 4
- 4
feiq.pro View File

@@ -11,8 +11,6 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = feiq
TEMPLATE = app



LIBS += -liconv -lsqlite3

mac{
@@ -58,7 +56,8 @@ SOURCES += main.cpp\
feiqwin.cpp \
plugin/unreadchecker.cpp \
plugin/iplugin.cpp \
plugin/rankuser.cpp
plugin/rankuser.cpp \
settings.cpp


HEADERS += mainwindow.h \
@@ -96,7 +95,8 @@ HEADERS += mainwindow.h \
plugin/iplugin.h \
feiqwin.h \
plugin/unreadchecker.h \
plugin/rankuser.h
plugin/rankuser.h \
settings.h

FORMS += mainwindow.ui \
searchfellowdlg.ui \


+ 1
- 1
feiqwin.cpp View File

@@ -29,7 +29,7 @@ const FeiqModel *FeiqWin::feiqModel()
return &(mMainWin->mFeiq.getModel());
}

QSettings *FeiqWin::settings()
Settings *FeiqWin::settings()
{
return mMainWin->mSettings;
}


+ 2
- 1
feiqwin.h View File

@@ -6,6 +6,7 @@
#include "qsettings.h"
#include "fellowlistwidget.h"
#include "feiqlib/feiqmodel.h"
#include "settings.h"

class MainWindow;
class IPlugin;
@@ -24,7 +25,7 @@ public:
SendTextEdit* sendTextEdit();
FellowListWidget* fellowListWidget();
const FeiqModel* feiqModel();
QSettings* settings();
Settings* settings();

public:
int getUnreadCount();


+ 2
- 1
mainwindow.cpp View File

@@ -64,7 +64,7 @@ MainWindow::MainWindow(QWidget *parent) :

//加载配置
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"));
mTitle = mSettings->value("app/title", "mac飞秋").toString();
setWindowTitle(mTitle);
@@ -80,6 +80,7 @@ MainWindow::MainWindow(QWidget *parent) :
MainWindow::~MainWindow()
{
mFeiq.stop();
mSettings->sync();
delete mSettings;
delete mSearchFellowDlg;
delete mDownloadFileDlg;


+ 2
- 2
mainwindow.h View File

@@ -7,7 +7,7 @@
#include "recvtextedit.h"
#include "feiqlib/feiqengine.h"
#include "filemanagerdlg.h"
#include <QSettings>
#include "settings.h"
#include <unordered_map>
#include "chooseemojidlg.h"
#include <QFileInfo>
@@ -90,7 +90,7 @@ private:
SearchFellowDlg* mSearchFellowDlg;
FileManagerDlg* mDownloadFileDlg;
ChooseEmojiDlg* mChooseEmojiDlg;
QSettings* mSettings;
Settings* mSettings;
FeiqEngine mFeiq;
RecvTextEdit* mRecvTextEdit;
SendTextEdit* mSendTextEdit;


+ 1
- 1
plugin/unreadchecker.cpp View File

@@ -24,7 +24,7 @@ void UnreadChecker::init()
IPlugin::init();

auto settings = mFeiq->settings();
mUnreadTimerInterval = settings->value(PLUGIN_NAME"/timer", "0").toInt();
mUnreadTimerInterval = settings->value(PLUGIN_NAME"/timer", "600").toInt();
if (mUnreadTimerInterval > 0)
mUnreadTimerId = startTimer(mUnreadTimerInterval*1000, Qt::VeryCoarseTimer);
}


+ 22
- 0
settings.cpp View File

@@ -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);
}

+ 17
- 0
settings.h View File

@@ -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

Loading…
Cancel
Save