|
@@ -1,4 +1,4 @@
|
|
-#include "nddsetting.h"
|
|
|
|
|
|
+锘�#include "nddsetting.h"
|
|
#include <QObject>
|
|
#include <QObject>
|
|
#include <QtDebug>
|
|
#include <QtDebug>
|
|
#include <QCoreApplication>
|
|
#include <QCoreApplication>
|
|
@@ -7,8 +7,8 @@
|
|
#include <QStorageInfo>
|
|
#include <QStorageInfo>
|
|
#include <QSettings>
|
|
#include <QSettings>
|
|
|
|
|
|
-static short version_num = 29; //1.22.0 是29
|
|
|
|
-//配置文件是否存在。如果初始化失败,则不存在
|
|
|
|
|
|
+static short version_num = 29; //1.22.0 鏄�29
|
|
|
|
+//閰嶇疆鏂囦欢鏄�惁瀛樺湪銆傚�鏋滃垵濮嬪寲澶辫触锛屽垯涓嶅瓨鍦�
|
|
bool NddSetting::s_isExistDb = false;
|
|
bool NddSetting::s_isExistDb = false;
|
|
int NddSetting::s_reference = 0;
|
|
int NddSetting::s_reference = 0;
|
|
bool NddSetting::s_isContentChanged = false;
|
|
bool NddSetting::s_isContentChanged = false;
|
|
@@ -17,10 +17,10 @@ QSettings* NddSetting::s_nddSet = nullptr;
|
|
|
|
|
|
QSettings* NddSetting::s_winPosSet = nullptr;
|
|
QSettings* NddSetting::s_winPosSet = nullptr;
|
|
|
|
|
|
-//如果key不存在,则新增key-value。存在:返回true
|
|
|
|
|
|
+//濡傛灉key涓嶅瓨鍦�紝鍒欐柊澧瀔ey-value銆傚瓨鍦�細杩斿洖true
|
|
bool NddSetting::checkNoExistAdd(QString key, QVariant& value)
|
|
bool NddSetting::checkNoExistAdd(QString key, QVariant& value)
|
|
{
|
|
{
|
|
- //每次新加字段后,这里要检查一下,不存在则新增
|
|
|
|
|
|
+ //姣忔�鏂板姞瀛楁�鍚庯紝杩欓噷瑕佹�鏌ヤ竴涓嬶紝涓嶅瓨鍦ㄥ垯鏂板�
|
|
if (!s_nddSet->contains(key))
|
|
if (!s_nddSet->contains(key))
|
|
{
|
|
{
|
|
s_nddSet->setValue(key, value);
|
|
s_nddSet->setValue(key, value);
|
|
@@ -34,13 +34,13 @@ bool NddSetting::checkNoExistAdd(QString key, QVariant& value)
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-//20220402这里隐含了一个前置条件:数据库句柄是在主线程创建的,最好不要在子线程中调用。
|
|
|
|
-//避免因为跨线程访问和多线程冲突访问引发的闪退问题。所以最好配置文件的读写都在主线程中进行
|
|
|
|
|
|
+//20220402杩欓噷闅愬惈浜嗕竴涓�墠缃�潯浠讹細鏁版嵁搴撳彞鏌勬槸鍦ㄤ富绾跨▼鍒涘缓鐨勶紝鏈€濂戒笉瑕佸湪瀛愮嚎绋嬩腑璋冪敤銆�
|
|
|
|
+//閬垮厤鍥犱负璺ㄧ嚎绋嬭�闂�拰澶氱嚎绋嬪啿绐佽�闂�紩鍙戠殑闂�€€闂��銆傛墍浠ユ渶濂介厤缃�枃浠剁殑璇诲啓閮藉湪涓荤嚎绋嬩腑杩涜�
|
|
void NddSetting::init()
|
|
void NddSetting::init()
|
|
{
|
|
{
|
|
++s_reference;
|
|
++s_reference;
|
|
|
|
|
|
- //如果已经初始化过了,则直接返回
|
|
|
|
|
|
+ //濡傛灉宸茬粡鍒濆�鍖栬繃浜嗭紝鍒欑洿鎺ヨ繑鍥�
|
|
if (s_isExistDb)
|
|
if (s_isExistDb)
|
|
{
|
|
{
|
|
return;
|
|
return;
|
|
@@ -56,42 +56,42 @@ void NddSetting::init()
|
|
auto initNddSet = []() {
|
|
auto initNddSet = []() {
|
|
QString key = "signdate";
|
|
QString key = "signdate";
|
|
//QString date = QDate::currentDate().toString(QString("yyyy/M/d"));
|
|
//QString date = QDate::currentDate().toString(QString("yyyy/M/d"));
|
|
- //不写今天的时间,否则第一次运行,无条件不会发送心跳。
|
|
|
|
- //直接写一个过去的时间,让第一次运行,总是要签到
|
|
|
|
|
|
+ //涓嶅啓浠婂ぉ鐨勬椂闂达紝鍚﹀垯绗�竴娆¤繍琛岋紝鏃犳潯浠朵笉浼氬彂閫佸績璺炽€�
|
|
|
|
+ //鐩存帴鍐欎竴涓�繃鍘荤殑鏃堕棿锛岃�绗�竴娆¤繍琛岋紝鎬绘槸瑕佺�鍒�
|
|
addKeyValueToSets(key, "2022/2/20");
|
|
addKeyValueToSets(key, "2022/2/20");
|
|
|
|
|
|
QString str;
|
|
QString str;
|
|
|
|
|
|
- //tab的长度,默认为4
|
|
|
|
|
|
+ //tab鐨勯暱搴︼紝榛樿�涓�4
|
|
addKeyValueToNumSets("tablens", 4);
|
|
addKeyValueToNumSets("tablens", 4);
|
|
- //space replace tab空格替换tab,默认0, 1为true,0为false
|
|
|
|
|
|
+ //space replace tab绌烘牸鏇挎崲tab锛岄粯璁�0, 1涓簍rue,0涓篺alse
|
|
addKeyValueToNumSets("tabnouse", 0);
|
|
addKeyValueToNumSets("tabnouse", 0);
|
|
|
|
|
|
addKeyValueToSets("mac", "0");
|
|
addKeyValueToSets("mac", "0");
|
|
addKeyValueToNumSets("padtimes", 0);
|
|
addKeyValueToNumSets("padtimes", 0);
|
|
addKeyValueToNumSets("serverip", 0);
|
|
addKeyValueToNumSets("serverip", 0);
|
|
|
|
|
|
- //是否高亮不同处背景
|
|
|
|
|
|
+ //鏄�惁楂樹寒涓嶅悓澶勮儗鏅�
|
|
addKeyValueToNumSets("hexhigh", 1);
|
|
addKeyValueToNumSets("hexhigh", 1);
|
|
|
|
|
|
addKeyValueToNumSets(VERSION, version_num);
|
|
addKeyValueToNumSets(VERSION, version_num);
|
|
|
|
|
|
- //皮肤id
|
|
|
|
|
|
+ //鐨�偆id
|
|
addKeyValueToNumSets(SKIN_KEY, 0);
|
|
addKeyValueToNumSets(SKIN_KEY, 0);
|
|
|
|
|
|
- //语言index 0:自动选择 1:中文 2 英文
|
|
|
|
|
|
+ //璇�█index 0:鑷�姩閫夋嫨 1:涓�枃 2 鑻辨枃
|
|
addKeyValueToNumSets(LANGS_KEY, 0);
|
|
addKeyValueToNumSets(LANGS_KEY, 0);
|
|
|
|
|
|
- //开启自动换行
|
|
|
|
|
|
+ //寮€鍚�嚜鍔ㄦ崲琛�
|
|
addKeyValueToNumSets(AUTOWARP_KEY, 0);
|
|
addKeyValueToNumSets(AUTOWARP_KEY, 0);
|
|
|
|
|
|
- //开启自动缩进
|
|
|
|
|
|
+ //寮€鍚�嚜鍔ㄧ缉杩�
|
|
addKeyValueToNumSets(INDENT_KEY, 0);
|
|
addKeyValueToNumSets(INDENT_KEY, 0);
|
|
|
|
|
|
- //显示空白
|
|
|
|
|
|
+ //鏄剧ず绌虹櫧
|
|
addKeyValueToNumSets(SHOWSPACE_KEY, 0);
|
|
addKeyValueToNumSets(SHOWSPACE_KEY, 0);
|
|
|
|
|
|
- //最大文本文件的门限。默认100M.(50-300)
|
|
|
|
|
|
+ //鏈€澶ф枃鏈�枃浠剁殑闂ㄩ檺銆傞粯璁�100M.(50-300)
|
|
addKeyValueToNumSets(MAX_BIG_TEXT, 100);
|
|
addKeyValueToNumSets(MAX_BIG_TEXT, 100);
|
|
|
|
|
|
addKeyValueToSets(SOFT_KEY, "0");
|
|
addKeyValueToSets(SOFT_KEY, "0");
|
|
@@ -107,22 +107,22 @@ void NddSetting::init()
|
|
|
|
|
|
addKeyValueToNumSets(FILELISTPOS, Qt::LeftDockWidgetArea);
|
|
addKeyValueToNumSets(FILELISTPOS, Qt::LeftDockWidgetArea);
|
|
|
|
|
|
- //默认0不显示
|
|
|
|
|
|
+ //榛樿�0涓嶆樉绀�
|
|
addKeyValueToNumSets(FILELISTSHOW, 0);
|
|
addKeyValueToNumSets(FILELISTSHOW, 0);
|
|
|
|
|
|
- //默认显示工具栏
|
|
|
|
|
|
+ //榛樿�鏄剧ず宸ュ叿鏍�
|
|
addKeyValueToNumSets(TOOLBARSHOW, 1);
|
|
addKeyValueToNumSets(TOOLBARSHOW, 1);
|
|
|
|
|
|
- //打开网页,默认不勾选,资源耗费多
|
|
|
|
|
|
+ //鎵撳紑缃戦〉锛岄粯璁や笉鍕鹃€夛紝璧勬簮鑰楄垂澶�
|
|
addKeyValueToNumSets(SHOWWEBADDR, 0);
|
|
addKeyValueToNumSets(SHOWWEBADDR, 0);
|
|
|
|
|
|
- //查找结果框的默认字体大小
|
|
|
|
|
|
+ //鏌ユ壘缁撴灉妗嗙殑榛樿�瀛椾綋澶у皬
|
|
addKeyValueToNumSets(FIND_RESULT_FONT_SIZE, 14);
|
|
addKeyValueToNumSets(FIND_RESULT_FONT_SIZE, 14);
|
|
};
|
|
};
|
|
|
|
|
|
if (!s_nddSet->contains(VERSION))
|
|
if (!s_nddSet->contains(VERSION))
|
|
{
|
|
{
|
|
- //不存在走初始化流程
|
|
|
|
|
|
+ //涓嶅瓨鍦ㄨ蛋鍒濆�鍖栨祦绋�
|
|
initNddSet();
|
|
initNddSet();
|
|
s_isContentChanged = true;
|
|
s_isContentChanged = true;
|
|
}
|
|
}
|
|
@@ -133,7 +133,7 @@ void NddSetting::init()
|
|
QVariant v(VERSION);
|
|
QVariant v(VERSION);
|
|
if (checkNoExistAdd(VERSION, v))
|
|
if (checkNoExistAdd(VERSION, v))
|
|
{
|
|
{
|
|
- //如果存在,而且版本是最新,不需要走后面自动检查流程了
|
|
|
|
|
|
+ //濡傛灉瀛樺湪锛岃€屼笖鐗堟湰鏄�渶鏂�,涓嶉渶瑕佽蛋鍚庨潰鑷�姩妫€鏌ユ祦绋嬩簡
|
|
int curVersion = s_nddSet->value(VERSION).toInt();
|
|
int curVersion = s_nddSet->value(VERSION).toInt();
|
|
if (curVersion == version_num)
|
|
if (curVersion == version_num)
|
|
{
|
|
{
|
|
@@ -141,12 +141,12 @@ void NddSetting::init()
|
|
}
|
|
}
|
|
else if (curVersion < version_num)
|
|
else if (curVersion < version_num)
|
|
{
|
|
{
|
|
- //更新版本到最新
|
|
|
|
|
|
+ //鏇存柊鐗堟湰鍒版渶鏂�
|
|
updataKeyValueFromNumSets(VERSION, version_num);
|
|
updataKeyValueFromNumSets(VERSION, version_num);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //每次新加字段后,这里要检查一下,不存在则新增
|
|
|
|
|
|
+ //姣忔�鏂板姞瀛楁�鍚庯紝杩欓噷瑕佹�鏌ヤ竴涓嬶紝涓嶅瓨鍦ㄥ垯鏂板�
|
|
{
|
|
{
|
|
QVariant v(1);
|
|
QVariant v(1);
|
|
checkNoExistAdd(SKIN_KEY, v);
|
|
checkNoExistAdd(SKIN_KEY, v);
|
|
@@ -237,7 +237,7 @@ void NddSetting::init()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-//写一个总的获取配置的接口,避免以后每个字段都需要写一个读写接口
|
|
|
|
|
|
+//鍐欎竴涓�€荤殑鑾峰彇閰嶇疆鐨勬帴鍙o紝閬垮厤浠ュ悗姣忎釜瀛楁�閮介渶瑕佸啓涓€涓��鍐欐帴鍙�
|
|
QString NddSetting::getKeyValueFromSets(QString key)
|
|
QString NddSetting::getKeyValueFromSets(QString key)
|
|
{
|
|
{
|
|
return s_nddSet->value(key,"").toString();
|
|
return s_nddSet->value(key,"").toString();
|
|
@@ -250,7 +250,7 @@ bool NddSetting::updataKeyValueFromSets(QString key, QString value)
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-//写一个总的获取配置的接口,避免以后每个字段都需要写一个读写接口
|
|
|
|
|
|
+//鍐欎竴涓�€荤殑鑾峰彇閰嶇疆鐨勬帴鍙o紝閬垮厤浠ュ悗姣忎釜瀛楁�閮介渶瑕佸啓涓€涓��鍐欐帴鍙�
|
|
QByteArray NddSetting::getKeyByteArrayValue(QString key)
|
|
QByteArray NddSetting::getKeyByteArrayValue(QString key)
|
|
{
|
|
{
|
|
return s_nddSet->value(key, "").toByteArray();
|
|
return s_nddSet->value(key, "").toByteArray();
|
|
@@ -262,14 +262,14 @@ void NddSetting::updataKeyByteArrayValue(QString key, QByteArray& value)
|
|
s_isContentChanged = true;
|
|
s_isContentChanged = true;
|
|
}
|
|
}
|
|
|
|
|
|
-//第一次加一条记录,用于初始化
|
|
|
|
|
|
+//绗�竴娆″姞涓€鏉¤�褰曪紝鐢ㄤ簬鍒濆�鍖�
|
|
void NddSetting::addKeyValueToSets(QString key, QString value)
|
|
void NddSetting::addKeyValueToSets(QString key, QString value)
|
|
{
|
|
{
|
|
s_nddSet->setValue(key, QVariant(value));
|
|
s_nddSet->setValue(key, QVariant(value));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-//写一个总的获取配置的接口,避免以后每个字段都需要写一个读写接口.0做默认值,外部最好不用0做初始化值
|
|
|
|
|
|
+//鍐欎竴涓�€荤殑鑾峰彇閰嶇疆鐨勬帴鍙o紝閬垮厤浠ュ悗姣忎釜瀛楁�閮介渶瑕佸啓涓€涓��鍐欐帴鍙�.0鍋氶粯璁ゅ€硷紝澶栭儴鏈€濂戒笉鐢�0鍋氬垵濮嬪寲鍊�
|
|
int NddSetting::getKeyValueFromNumSets(const QString key)
|
|
int NddSetting::getKeyValueFromNumSets(const QString key)
|
|
{
|
|
{
|
|
QVariant v = s_nddSet->value(key, QVariant(0));
|
|
QVariant v = s_nddSet->value(key, QVariant(0));
|
|
@@ -283,7 +283,7 @@ bool NddSetting::updataKeyValueFromNumSets(const QString key, int value)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-//第一次加一条记录,用于初始化
|
|
|
|
|
|
+//绗�竴娆″姞涓€鏉¤�褰曪紝鐢ㄤ簬鍒濆�鍖�
|
|
void NddSetting::addKeyValueToNumSets(QString key, int value)
|
|
void NddSetting::addKeyValueToNumSets(QString key, int value)
|
|
{
|
|
{
|
|
s_nddSet->setValue(key, QVariant(value));
|
|
s_nddSet->setValue(key, QVariant(value));
|
|
@@ -300,7 +300,7 @@ void NddSetting::close()
|
|
{
|
|
{
|
|
s_isExistDb = false;
|
|
s_isExistDb = false;
|
|
|
|
|
|
- //做一次真正的保存
|
|
|
|
|
|
+ //鍋氫竴娆$湡姝g殑淇濆瓨
|
|
if (s_isContentChanged)
|
|
if (s_isContentChanged)
|
|
{
|
|
{
|
|
s_nddSet->sync();
|
|
s_nddSet->sync();
|
|
@@ -309,7 +309,7 @@ void NddSetting::close()
|
|
s_isContentChanged = false;
|
|
s_isContentChanged = false;
|
|
}
|
|
}
|
|
|
|
|
|
- //在这里保存一下子窗口的位置。不排除有可能子窗口还在,主窗口已经退出的情况,不过问题不大。
|
|
|
|
|
|
+ //鍦ㄨ繖閲屼繚瀛樹竴涓嬪瓙绐楀彛鐨勪綅缃�€備笉鎺掗櫎鏈夊彲鑳藉瓙绐楀彛杩樺湪锛屼富绐楀彛宸茬粡閫€鍑虹殑鎯呭喌锛屼笉杩囬棶棰樹笉澶с€�
|
|
if (s_winPosSet != nullptr)
|
|
if (s_winPosSet != nullptr)
|
|
{
|
|
{
|
|
s_winPosSet->sync();
|
|
s_winPosSet->sync();
|
|
@@ -319,7 +319,7 @@ void NddSetting::close()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-//子窗口的位置,单独放在一个winpos.ini文件中,而且启动程序时,不需要读取,可避免启动时拖慢速度
|
|
|
|
|
|
+//瀛愮獥鍙g殑浣嶇疆锛屽崟鐙�斁鍦ㄤ竴涓獁inpos.ini鏂囦欢涓�紝鑰屼笖鍚�姩绋嬪簭鏃讹紝涓嶉渶瑕佽�鍙栵紝鍙�伩鍏嶅惎鍔ㄦ椂鎷栨參閫熷害
|
|
QByteArray NddSetting::getWinPos(QString key)
|
|
QByteArray NddSetting::getWinPos(QString key)
|
|
{
|
|
{
|
|
winPosInit();
|
|
winPosInit();
|