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