RabbitCommon v2.3.3
Loading...
Searching...
No Matches
MainWindow.cpp
1// Copyright Copyright (c) Kang Lin studio, All Rights Reserved
2// Author Kang Lin <kl222@126.com>
3
4#include <QLoggingCategory>
5#include <QSettings>
6#include "RabbitCommonTools.h"
7#include "MainWindow.h"
8#include "./ui_MainWindow.h"
9#include "FileBrowser.h"
10#include "RabbitCommonDir.h"
11#include "FrmUpdater.h"
12#include "DlgAbout.h"
13
14static Q_LOGGING_CATEGORY(log, "FileBrowser.MainWindow")
15MainWindow::MainWindow(QWidget *parent)
16 : QMainWindow(parent)
17 , ui(new Ui::MainWindow)
18{
19 bool check = false;
20 ui->setupUi(this);
21
22#ifdef HAVE_RABBITCOMMON_GUI
23 RabbitCommon::CTools::InsertStyleMenu(ui->menuTools, ui->actionStatus_S);
24 ui->menuTools->insertMenu(ui->actionStatus_S, RabbitCommon::CTools::GetLogMenu(this));
25 ui->menuTools->insertSeparator(ui->actionStatus_S);
26#endif
27
28 CFileBrowser* pFB = new CFileBrowser(this);
29 setCentralWidget(pFB);
30 setWindowIcon(pFB->windowIcon());
31 setWindowTitle(pFB->windowTitle());
32 check = connect(pFB, SIGNAL(destroyed(QObject*)), this, SLOT(close()));
33 Q_ASSERT(check);
34 check = connect(pFB, &CFileBrowser::sigChanged, this,
35 [&](const QString& szDir, bool bDir){
36 //qDebug(log) << "CFileBrowser::sigChanged" << szDir << bDir;
37 });
38 Q_ASSERT(check);
39
40 QSettings set(RabbitCommon::CDir::Instance()->GetFileUserConfigure(),
41 QSettings::IniFormat);
42 QByteArray geometry
43 = set.value("MainWindow/Status/Geometry").toByteArray();
44 if(!geometry.isEmpty())
45 restoreGeometry(geometry);
46 QByteArray state = set.value("MainWindow/Status/State").toByteArray();
47 if(!state.isEmpty())
48 restoreState(state);
49
50 bool bStatusBar = set.value("MainWindow/Status/Bar",
51 !statusBar()->isHidden()).toBool();
52 ui->actionStatus_S->setChecked(bStatusBar);
53 statusBar()->setVisible(bStatusBar);
54}
55
56MainWindow::~MainWindow()
57{
58 QSettings set(RabbitCommon::CDir::Instance()->GetFileUserConfigure(),
59 QSettings::IniFormat);
60 set.setValue("MainWindow/Status/Geometry", saveGeometry());
61 set.setValue("MainWindow/Status/State", saveState());
62 set.setValue("MainWindow/Status/Bar", !statusBar()->isHidden());
63
64 delete ui;
65 qDebug(log) << "MainWindow::~MainWindow()";
66}
67
68void MainWindow::on_actionStatus_S_triggered(bool checked)
69{
70 statusBar()->setVisible(checked);
71}
72
73void MainWindow::on_actionAbout_A_triggered()
74{
75#ifdef HAVE_ABOUT
76 CDlgAbout* dlg = new CDlgAbout();
77 dlg->setAttribute(Qt::WA_QuitOnClose, true);
78 RC_SHOW_WINDOW(dlg);
79#endif
80}
81
82void MainWindow::on_actionUpdate_U_triggered()
83{
84#ifdef HAVE_UPDATE
85 // [Use CFrmUpdater]
86 CFrmUpdater* m_pfrmUpdater = new CFrmUpdater();
87 QIcon icon = windowIcon();
88 if(!icon.isNull()) {
89 auto sizeList = icon.availableSizes();
90 if(!sizeList.isEmpty()) {
91 QPixmap p = icon.pixmap(*sizeList.begin());
92 m_pfrmUpdater->SetTitle(p.toImage());
93 }
94 }
95 m_pfrmUpdater->SetInstallAutoStartup();
96 RC_SHOW_WINDOW(m_pfrmUpdater);
97 // [Use CFrmUpdater]
98#endif
99}
About dialog.
Definition DlgAbout.h:72
File browser.
Definition FileBrowser.h:26
Updater.
Definition FrmUpdater.h:75
int SetTitle(QImage icon=QImage(), const QString &szTitle=QString())
SetTitle.
int SetInstallAutoStartup(bool bAutoStart=true)
Set install and automation startup.