Feat:Add cloud sync interface.

This commit is contained in:
zhangjiaping 2021-03-20 15:37:54 +08:00
parent 8e9b51ea2b
commit 9b7bcf54c6
5 changed files with 102 additions and 4 deletions

View File

@ -141,6 +141,85 @@ QStringList GlobalSettings::getBlockDirs()
return m_block_dirs_settings->allKeys();
}
void GlobalSettings::appendCloudData(const QString &key, const QString &value)
{
QSettings * m_qSettings = new QSettings(CLOUD_FILE, QSettings::IniFormat);
m_qSettings->beginGroup(key);
QStringList values = m_qSettings->value(key).toStringList();
m_qSettings->endGroup();
if (values.contains(value)) {
values.removeOne(value);
}
values.insert(0,value);
m_qSettings->beginGroup(key);
m_qSettings->setValue(key, values);
m_qSettings->endGroup();
if (m_qSettings) {
delete m_qSettings;
m_qSettings = NULL;
}
}
void GlobalSettings::setCloudData(const QString &key, const QStringList &values)
{
QSettings * m_qSettings = new QSettings(CLOUD_FILE, QSettings::IniFormat);
m_qSettings->beginGroup(key);
m_qSettings->setValue(key, values);
m_qSettings->endGroup();
if (m_qSettings) {
delete m_qSettings;
m_qSettings = NULL;
}
}
bool GlobalSettings::removeOneCloudData(const QString &key, const QString &value)
{
if (!QFileInfo(CLOUD_FILE).isFile()) return false;
QSettings * m_qSettings = new QSettings(CLOUD_FILE, QSettings::IniFormat);
m_qSettings->beginGroup(key);
QStringList values = m_qSettings->value(key).toStringList();
m_qSettings->endGroup();
if (values.contains(value)) {
values.removeOne(value);
} else return false;
m_qSettings->beginGroup(key);
m_qSettings->setValue(key, values);
m_qSettings->endGroup();
if (m_qSettings) {
delete m_qSettings;
m_qSettings = NULL;
}
return true;
}
bool GlobalSettings::removeAllCloudData(const QString &key)
{
if (!QFileInfo(CLOUD_FILE).isFile()) return false;
QSettings * m_qSettings = new QSettings(CLOUD_FILE, QSettings::IniFormat);
m_qSettings->beginGroup(key);
m_qSettings->beginGroup(key);
m_qSettings->setValue(key, QStringList());
m_qSettings->endGroup();
if (m_qSettings) {
delete m_qSettings;
m_qSettings = NULL;
}
return true;
}
QStringList GlobalSettings::getCloudData(const QString &key)
{
if (!QFileInfo(CLOUD_FILE).isFile()) return QStringList();
QSettings * m_qSettings = new QSettings(CLOUD_FILE, QSettings::IniFormat);
m_qSettings->beginGroup(key);
QStringList values = m_qSettings->value(key).toStringList();
m_qSettings->endGroup();
if(m_qSettings)
delete m_qSettings;
return values;
}
//here should be override
//MouseZhangZh
void GlobalSettings::setValue(const QString &key, const QVariant &value)

View File

@ -25,6 +25,7 @@
#include <QSettings>
#include <QMutex>
#include <QVector>
#include <QDir>
//#include <QGSettings>
//If use pkg_config, it wont build succes,why?????????
//My demo can build access yet.
@ -43,6 +44,10 @@
#define PATH_NOT_IN_HOME 2;
#define PATH_PARENT_BLOCKED 3;
#define CLOUD_FILE QDir::homePath() + "/.config/org.ukui/ukui-search/ukui-search-cloud.conf"
#define CLOUD_HISTORY "history"
#define CLOUD_APPLICATIONS "applications"
class LIBSEARCH_EXPORT GlobalSettings : public QObject
{
Q_OBJECT
@ -69,6 +74,11 @@ public Q_SLOTS:
*/
bool setBlockDirs(const QString& path, int &returnCode,bool remove = false);
QStringList getBlockDirs();
void appendCloudData(const QString& key, const QString& value);
void setCloudData(const QString& key, const QStringList& values);
bool removeOneCloudData(const QString& key, const QString& value);
bool removeAllCloudData(const QString& key);
QStringList getCloudData(const QString& key);
void forceSync(const QString& = nullptr);

View File

@ -6016,7 +6016,7 @@ feng 仹
cang 仺
ren,lin 任
wang 仼
bin,fen 份
fen 份
di 仾
fang,pang 仿
zhong 伀
@ -6221,7 +6221,7 @@ xu,shu 俆
guang 俇
ku 俈
wu 俉
dun,jun,shun 俊
jun 俊
yi 俋
fu 俌
liang,lang 俍
@ -11420,7 +11420,7 @@ zhi 搘
nuo,nou,nu 搙
la,xie,xian 搚
lian,jian 搛
shao,xiao,sou 搜
sou 搜
qiu 搝
qiao,gao,kao 搞
xian 搟

View File

@ -137,7 +137,12 @@ void SearchDetailView::setWebWidget(const QString& keyword)
connect(m_webView,&QWebEngineView::loadFinished, this, [ = ](){
m_reload = true;
if (m_engineProfile) m_engineProfile->clearHttpCache();
if (m_engineProfile){
m_engineProfile->clearHttpCache(); // 清理缓存
m_engineProfile->clearAllVisitedLinks(); // 清理浏览记录
m_engineProfile->cookieStore()->deleteAllCookies(); // 清理cookie
m_engineProfile->cookieStore()->deleteSessionCookies(); // 清理会话cookie
}
});
connect(m_webView, &QWebEngineView::urlChanged, this, [ = ](const QUrl& url) {
if (m_reload) {

View File

@ -49,6 +49,10 @@ SearchListView::SearchListView(QWidget * parent, const QStringList& list, const
Q_EMIT this->currentRowChanged(getCurrentType(), m_item->m_pathlist.at(this->currentIndex().row()));
m_isSelected = true;
});
connect(this, &SearchListView::doubleClicked, this, [ = ](const QModelIndex& index) {
});
}
SearchListView::~SearchListView()