6#include "ui_MainWindow.h"
12#include "FrmUpdater.h"
15#include "QUIWidget/QUIWidget.h"
17#include "RabbitCommonTools.h"
18#include "RabbitCommonEncrypt.h"
19#ifdef HAVE_RABBITCOMMON_GUI
20#include "DockFolderBrowser.h"
21#include "FileBrowser.h"
23#include "RabbitCommonDir.h"
27#include <QDesktopServices>
30#include <QLoggingCategory>
42#define __FUN__ Q_FUNC_INFO
44#define __FUN__ __PRETTY_FUNCTION__
47Q_LOGGING_CATEGORY(log,
"RabbitCommon.MainWindow")
58 <<
"Q_FUNC_INFO " << Q_FUNC_INFO <<
"\n"
59 <<
"__func__ " << __func__ <<
"\n"
60 <<
"Q_FUNC_INFO " << Q_FUNC_INFO <<
"\n"
62 <<
"__FUNCDNAME__ " << __FUNCDNAME__ <<
"\n"
63 <<
"__FUNCSIG__ " << __FUNCSIG__ <<
"\n"
65 <<
"__PRETTY_FUNCTION__ " << __PRETTY_FUNCTION__ <<
"\n"
72#ifdef HAVE_RABBITCOMMON_GUI
73 RabbitCommon::CTools::AddStyleMenu(ui->menuTools);
74 ui->menuTools->addMenu(RabbitCommon::CTools::GetLogMenu(
this));
75 ui->tbLog->setMenu(RabbitCommon::CTools::GetLogMenu(
this));
79 pDock->
setRootPath(RabbitCommon::CDir::Instance()->GetDirIcons(
true));
81 addDockWidget(Qt::LeftDockWidgetArea, pDock);
83 ui->menuTools->addAction(pDock->toggleViewAction());
87#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
88 ui->leCommand->setText(
"mkdir");
89 ui->lePara->setText(
"-p /opt/RabbitCommonAdminAuthoriseTest");
92 ui->leCommand->setText(
"regedit");
96MainWindow::~MainWindow()
102void MainWindow::on_actionAbout_triggered()
106 dlg->setAttribute(Qt::WA_QuitOnClose,
true);
111void MainWindow::on_actionUpdate_triggered()
116 QIcon icon = windowIcon();
118 auto sizeList = icon.availableSizes();
119 if(!sizeList.isEmpty()) {
120 QPixmap p = icon.pixmap(*sizeList.begin());
121 m_pfrmUpdater->
SetTitle(p.toImage());
125 RC_SHOW_WINDOW(m_pfrmUpdater);
128#ifdef BUILD_QUIWidget
129 QUIWidget::setFormInCenter(m_pfrmUpdater);
133void MainWindow::on_pushButton_clicked()
137 if(!ui->lePara->text().isEmpty())
138 paras = ui->lePara->text().split(
' ');
139 qDebug(log) <<
"RabbitCommon::CTools::executeByRoot("
140 + ui->leCommand->text() +
"," + ui->lePara->text() +
");"
144void MainWindow::on_pbEncrypt_clicked()
147 e.SetPassword(ui->lePassword->text().toStdString().c_str());
149 int nRet = e.
Encode(ui->teInput->toPlainText(), out);
156 szOut = tr(
"Encrypt:") + QString(out) +
"\n" + tr(
"Source:") + szOut;
157 ui->teOutput->setPlainText(szOut);
162void MainWindow::on_pbAddFile_clicked()
164 ui->cmbDownloadFiles->addItem(ui->cmbDownloadFiles->currentText());
167void MainWindow::on_pbDownload_clicked()
170 m_pDownload->deleteLater();
172 for(
int i = 0; i < ui->cmbDownloadFiles->count(); i++)
174 urls.push_back(QUrl(ui->cmbDownloadFiles->itemText(i)));
177 bool check = connect(m_pDownload, SIGNAL(sigFinished(
const QString)),
178 this, SLOT(slotDownloadFile(
const QString)));
180 check = connect(m_pDownload, SIGNAL(sigError(
int,
const QString)),
181 this, SLOT(slotDownloadError(
int,
const QString)));
183 m_pDownload->
Start(urls);
186void MainWindow::slotDownloadFile(
const QString szFile)
188 qDebug(log) <<
"Download file:" << szFile;
189 QDesktopServices::openUrl(QUrl::fromLocalFile(szFile));
192void MainWindow::slotDownloadError(
int nErr,
const QString szErr)
194 qDebug(log) <<
"Download file error:" << nErr << szErr;
197void MainWindow::on_actionFolder_browser_triggered()
206 CCoreThread(QObject *parent =
nullptr) : QThread(parent)
208 connect(
this, SIGNAL(destroyed(QObject*)),
209 this, SLOT(deleteLater()));
213 qDebug(log) <<
"CCoreThread::~CCoreThread()";
218 virtual void run()
override;
221void CCoreThread::run()
230void MainWindow::on_pbThreadCore_clicked()
236void MainWindow::on_pbGenerateCoreFile_clicked()
245void MainWindow::on_pbExecuteUpdate_clicked()
250 bool bRet = QMetaObject::invokeMethod(
253 Qt::DirectConnection,
254 Q_RETURN_ARG(
int, nRet),
255 Q_ARG(QString, ui->leUpdateFIle->text()));
257 qCritical(log) <<
"Execute update fail." << nRet;
262void MainWindow::on_pbUpdateBrowse_clicked()
264 QString szFile = QFileDialog::getOpenFileName(
this);
267 ui->leUpdateFIle->setText(szFile);
void setRootPath(const QString dir)
Set root path.
QString rootPath() const
Get root path.
int SetTitle(QImage icon=QImage(), const QString &szTitle=QString())
SetTitle.
int SetInstallAutoStartup(bool bAutoStart=true)
Set install and automation startup.
Download the same file from multiple URLs.
int Start(QVector< QUrl > urls, QString szFileName=QString(), bool bSequence=false)
int Encode(const char *pIn, const int &inLen, char **pOut, int &outLen)
int Dencode(const char *pIn, const int &inLen, char **pOut, int &outLen)