玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
DlgSettings.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QFileDialog>
4#include <QLoggingCategory>
5
6#if QT_VERSION > QT_VERSION_CHECK(6, 10, 0)
7 #include "FrmExtensionManager.h"
8 #include "FrmExtensionStore.h"
9#endif
10#include "FrmWebBrowser.h"
11#include "DlgSettings.h"
12#include "ui_DlgSettings.h"
13
14static Q_LOGGING_CATEGORY(log, "WebBrowser.Parameter")
15CDlgSettings::CDlgSettings(QWebEngineProfile *pProfile,
17 QWidget *parent)
18 : QDialog(parent)
19 , ui(new Ui::CDlgSettings)
20 , m_pPara(para)
21 , m_pSearchModel(nullptr)
22{
23 ui->setupUi(this);
24 ui->leName->setText(m_pPara->GetName());
25 ui->leHomeUrl->setText(m_pPara->GetHomeUrl());
26 if(m_pPara->GetTabUrl().isEmpty() && !m_pPara->GetHomeUrl().isEmpty())
27 ui->leTabUrl->setText(m_pPara->GetHomeUrl());
28 else
29 ui->leTabUrl->setText(m_pPara->GetTabUrl());
30 ui->leDownloadFolder->setText(m_pPara->GetDownloadFolder());
31 ui->cbDownloadShowWindow->setChecked(m_pPara->GetShowDownloadManager());
32 ui->cbDownloadSave->setChecked(m_pPara->GetShowDownloadLocation());
33 ui->cbOpenPreious->setChecked(m_pPara->GetOpenPrevious());
34 ui->cbClearCookie->setChecked(m_pPara->GetClearCookie());
35 ui->cbClearHttpCache->setChecked(m_pPara->GetClearHttpCache());
36 ui->cbAutoFillUserPassword->setChecked(m_pPara->GetAutoFillUserAndPassword());
37 ui->cbPrintFinishedPrompt->setChecked(m_pPara->GetPromptPrintFinished());
38
39 m_pSearchModel = new QStandardItemModel(this);
40 auto searchList = m_pPara->GetSearchEngineList();
41 foreach(auto i, searchList)
42 {
43 QStandardItem* item = new QStandardItem(i);
44 m_pSearchModel->appendRow(item);
45 }
46 ui->lstSearchEngine->setModel(m_pSearchModel);
47 int index = searchList.indexOf(m_pPara->GetSearchEngine());
48 QModelIndex indexModel;
49 indexModel = m_pSearchModel->index(index, 0);
50 ui->lstSearchEngine->setCurrentIndex(indexModel);
51
52 m_pRecordUI = new CParameterRecordUI(ui->tabWidget);
53 m_pRecordUI->SetParameter(&m_pPara->m_Record);
54 ui->tabWidget->addTab(m_pRecordUI, m_pRecordUI->windowIcon(), m_pRecordUI->windowTitle());
55
56 m_pMediaDevices = new CFrmMediaDevices(true, this);
57 m_pMediaDevices->SetParameter(&m_pPara->m_MediaDevices.m_Para);
58 ui->tabWidget->addTab(m_pMediaDevices, m_pMediaDevices->windowIcon(), m_pMediaDevices->windowTitle());
59
60#if QT_VERSION > QT_VERSION_CHECK(6, 10, 0)
61 CFrmExtensionManager* pExtension = new CFrmExtensionManager(pProfile);
62 ui->tabWidget->addTab(pExtension, pExtension->windowIcon(), pExtension->windowTitle());
64 ui->tabWidget->addTab(pStore, pStore->windowIcon(), pStore->windowTitle());
65#endif
66}
67
68CDlgSettings::~CDlgSettings()
69{
70 delete ui;
71}
72
73void CDlgSettings::accept()
74{
75 m_pPara->SetName(ui->leName->text());
76 m_pPara->SetHomeUrl(ui->leHomeUrl->text());
77 m_pPara->SetTabUrl(ui->leTabUrl->text());
78 m_pPara->SetDownloadFolder(ui->leDownloadFolder->text());
79 m_pPara->SetShowDownloadManager(ui->cbDownloadShowWindow->isChecked());
80 m_pPara->SetShowDownloadLocation(ui->cbDownloadSave->isChecked());
81 m_pPara->SetOpenPrevious(ui->cbOpenPreious->isChecked());
82 m_pPara->SetClearHttpCache(ui->cbClearHttpCache->isChecked());
83 m_pPara->SetClearCookie(ui->cbClearCookie->isChecked());
84 m_pPara->SetAutoFillUserAndPassword(ui->cbAutoFillUserPassword->isChecked());
85 m_pPara->SetPromptPrintFinished(ui->cbPrintFinishedPrompt->isChecked());
86 auto index = ui->lstSearchEngine->currentIndex();
87 if(index.isValid()) {
88 auto search = m_pSearchModel->item(index.row())->text();
89 m_pPara->SetSearchEngine(search);
90 }
91
92 if(!m_pRecordUI->CheckValidity(true)) {
93 ui->tabWidget->setCurrentWidget(m_pRecordUI);
94 return;
95 }
96
97 int nRet = m_pRecordUI->Accept();
98 if(nRet)
99 return;
100
101 QDialog::accept();
102}
103
104void CDlgSettings::on_leHomeUrl_editingFinished()
105{
106 if(ui->leTabUrl->text().isEmpty())
107 ui->leTabUrl->setText(ui->leHomeUrl->text());
108}
109
110void CDlgSettings::on_pbDownloadFolder_clicked()
111{
112 QString szDir = ui->leDownloadFolder->text();
113 if(szDir.isEmpty())
114 szDir = m_pPara->GetDownloadFolder();
115 szDir = QFileDialog::getExistingDirectory(this, tr("Download folder"), szDir);
116 if(!szDir.isEmpty())
117 ui->leDownloadFolder->setText(szDir);
118}
扩展管理器界面
Chrome 扩展商城
virtual Q_INVOKABLE bool CheckValidity(bool validity=false)
检查参数的有效性