78 lines
1.9 KiB
C++
78 lines
1.9 KiB
C++
#include "SystemTrayManager.h"
|
|
#include "MasterCtrl.h"
|
|
#include <QCursor>
|
|
|
|
CSystemTrayManager::CSystemTrayManager()
|
|
{
|
|
|
|
mProgramHandle = 0;
|
|
|
|
mTrayMenu = new QMenu();
|
|
|
|
connect(&mSystemTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(TrayIconActivated(QSystemTrayIcon::ActivationReason)));
|
|
connect(&mSystemTrayIcon,SIGNAL(messageClicked()),this,SLOT(TrayBaloonMessageClicked()));
|
|
connect(mTrayMenu,SIGNAL(triggered(QAction*)),this,SLOT(TrayMenuClicked(QAction*)));
|
|
|
|
mQuitAction = mTrayMenu->addAction("Quit MasterController");
|
|
mShowSettingsGUIAction = mTrayMenu->addAction("Settings");
|
|
mSystemTrayIcon.setIcon(QIcon("./Ico/icon.png"));
|
|
mSystemTrayIcon.setToolTip("MasterController :)");
|
|
mSystemTrayIcon.show();
|
|
mSystemTrayIcon.setContextMenu(mTrayMenu);
|
|
|
|
}
|
|
CSystemTrayManager::~CSystemTrayManager()
|
|
{
|
|
mSystemTrayIcon.hide();
|
|
delete mTrayMenu;
|
|
}
|
|
|
|
void CSystemTrayManager::TrayBaloonMessageClicked()
|
|
{
|
|
qDebug("Baloon message clicked");
|
|
}
|
|
|
|
void CSystemTrayManager::TrayIconActivated(QSystemTrayIcon::ActivationReason Reason)
|
|
{
|
|
qDebug("Tray icon activated %d",Reason);
|
|
// mSystemTrayIcon.showMessage("Icon Clicked","The icon has\nbeen clicked.");
|
|
switch(Reason)
|
|
{
|
|
case QSystemTrayIcon::Unknown:
|
|
{
|
|
break;
|
|
}
|
|
case QSystemTrayIcon::Context:
|
|
{
|
|
break;
|
|
}
|
|
case QSystemTrayIcon::DoubleClick:
|
|
{
|
|
break;
|
|
}
|
|
case QSystemTrayIcon::Trigger:
|
|
{
|
|
mTrayMenu->popup(QCursor::pos());
|
|
break;
|
|
}
|
|
case QSystemTrayIcon::MiddleClick:
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void CSystemTrayManager::TrayMenuClicked(QAction *Menu)
|
|
{
|
|
if(Menu == mQuitAction)
|
|
{
|
|
qDebug("Quit");
|
|
mProgramHandle->QuitApplicationRequest();
|
|
}
|
|
else if(Menu == mShowSettingsGUIAction)
|
|
{
|
|
qDebug("Settings");
|
|
}
|
|
|
|
}
|