feat: quit to system tray

This commit is contained in:
Barry 2021-06-27 14:27:10 +08:00
commit f904a8c284

View file

@ -87,8 +87,12 @@ Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog)
m_menu->addAction(m_showWindow); m_menu->addAction(m_showWindow);
m_menu->addAction(m_quit); m_menu->addAction(m_quit);
m_hideIcon->setContextMenu(m_menu); m_hideIcon->setContextMenu(m_menu);
m_hideIcon->show();
connect(m_showWindow, &QAction::triggered, this, &Dialog::slotShow); connect(m_showWindow, &QAction::triggered, this, &Dialog::slotShow);
connect(m_quit, SIGNAL(triggered()), this, SLOT(close())); connect(m_quit, &QAction::triggered, this, [this](){
m_hideIcon->hide();
qApp->quit();
});
connect(m_hideIcon, &QSystemTrayIcon::activated,this,&Dialog::slotActivated); connect(m_hideIcon, &QSystemTrayIcon::activated,this,&Dialog::slotActivated);
} }
@ -239,28 +243,14 @@ void Dialog::slotActivated(QSystemTrayIcon::ActivationReason reason)
} }
void Dialog::closeEvent(QCloseEvent *event) void Dialog::closeEvent(QCloseEvent *event)
{
int res = QMessageBox::question(this,tr("warning"),tr("Quit or set tray?"),tr("Quit"),tr("Set tray"),tr("Cancel"));
if(res == 0)
{
event->accept();
}
else if(res == 1)
{ {
this->hide(); this->hide();
m_hideIcon->show();
m_hideIcon->showMessage(tr("Notice"), m_hideIcon->showMessage(tr("Notice"),
tr("Hidden here!"), tr("Hidden here!"),
QSystemTrayIcon::Information, QSystemTrayIcon::Information,
3000); 3000);
event->ignore(); event->ignore();
} }
else
{
event->ignore();
}
}
void Dialog::on_updateDevice_clicked() void Dialog::on_updateDevice_clicked()
{ {