| 1809 | } |
| 1810 | |
| 1811 | void MainWindow::slotSystemTrayIconTypeChanged() |
| 1812 | { |
| 1813 | //qDebug(log) << "MainWindow::slotSystemTrayIconTypeChanged:" << m_Parameter.GetEnableSystemTrayIcon(); |
| 1814 | if(!QSystemTrayIcon::isSystemTrayAvailable()) |
| 1815 | { |
| 1816 | qWarning(log) << "System tray is not available"; |
| 1817 | return; |
| 1818 | } |
| 1819 | |
| 1820 | if(!m_Parameter.GetEnableSystemTrayIcon()) |
| 1821 | { |
| 1822 | qDebug(log) << "Disable system tray icon"; |
| 1823 | return; |
| 1824 | } |
| 1825 | |
| 1826 | if(m_TrayIcon) |
| 1827 | m_TrayIcon.reset(); |
| 1828 | |
| 1829 | m_TrayIcon = QSharedPointer<QSystemTrayIcon>(new QSystemTrayIcon(this)); |
| 1830 | if(QSystemTrayIcon::isSystemTrayAvailable()) |
| 1831 | { |
| 1832 | bool check = connect( |
| 1833 | m_TrayIcon.data(), |
| 1834 | SIGNAL(activated(QSystemTrayIcon::ActivationReason)), |
| 1835 | this, |
| 1836 | SLOT(slotSystemTrayIconActivated(QSystemTrayIcon::ActivationReason))); |
| 1837 | Q_ASSERT(check); |
| 1838 | m_TrayIcon->setIcon(this->windowIcon()); |
| 1839 | m_TrayIcon->setToolTip(windowTitle()); |
| 1840 | m_TrayIcon->show(); |
| 1841 | } else |
| 1842 | qWarning(log) << "System tray is not available"; |
| 1843 | |
| 1844 | switch (m_Parameter.GetSystemTrayIconMenuType()) |
| 1845 | { |
| 1846 | case CParameterApp::SystemTrayIconMenuType::MenuBar: |
| 1847 | { |
| 1848 | QMenu* pMenu = new QMenu(this); |
| 1849 | pMenu->addMenu(ui->menuOperate); |
| 1850 | pMenu->addMenu(ui->menuView); |
| 1851 | pMenu->addMenu(ui->menuTools); |
| 1852 | m_TrayIcon->setContextMenu(pMenu); |
| 1853 | break; |
| 1854 | } |
| 1855 | case CParameterApp::SystemTrayIconMenuType::Operate: |
| 1856 | m_TrayIcon->setContextMenu(ui->menuOperate); |
| 1857 | break; |
| 1858 | case CParameterApp::SystemTrayIconMenuType::RecentOpen: |
| 1859 | m_TrayIcon->setContextMenu(m_pRecentMenu); |
| 1860 | break; |
| 1861 | case CParameterApp::SystemTrayIconMenuType::View: |
| 1862 | m_TrayIcon->setContextMenu(ui->menuView); |
| 1863 | break; |
| 1864 | case CParameterApp::SystemTrayIconMenuType::Tools: |
| 1865 | m_TrayIcon->setContextMenu(ui->menuTools); |
| 1866 | break; |
| 1867 | case CParameterApp::SystemTrayIconMenuType::No: |
| 1868 | m_TrayIcon->setContextMenu(nullptr); |
nothing calls this directly
no test coverage detected