diff options
| -rw-r--r-- | kcontrol/hwmanager/hwdevicetray.cpp | 80 | ||||
| -rw-r--r-- | kcontrol/hwmanager/hwdevicetray.h | 10 | 
2 files changed, 49 insertions, 41 deletions
| diff --git a/kcontrol/hwmanager/hwdevicetray.cpp b/kcontrol/hwmanager/hwdevicetray.cpp index 509fe2835..615030589 100644 --- a/kcontrol/hwmanager/hwdevicetray.cpp +++ b/kcontrol/hwmanager/hwdevicetray.cpp @@ -1,8 +1,8 @@  /*   * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net> - *  + *   * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application - *  + *   * hwdevicetray is free software: you can redistribute it and/or modify   * it under the terms of the GNU General Public License as   * published by the Free Software Foundation, either version 3 @@ -55,7 +55,7 @@  #include "hwdevicetray.h"  HwDeviceSystemTray::HwDeviceSystemTray(TQWidget* parent, const char *name) -	: KSystemTray(parent, name) +	: KSystemTray(parent, name), m_RMBMenu(contextMenu())  {  	// Create notifier  	m_hardwareNotifierContainer = new TDEPassivePopupStackContainer(); @@ -142,16 +142,27 @@ void HwDeviceSystemTray::showEvent (TQShowEvent *) {  	resizeTrayIcon();  } -void HwDeviceSystemTray::mousePressEvent(TQMouseEvent* e) { -	// Popup the context menu with left-click -	if (e->button() == Qt::LeftButton) { -		contextMenuAboutToShow(contextMenu()); -		contextMenu()->popup(e->globalPos()); -		e->accept(); -		return; -	} +void HwDeviceSystemTray::mousePressEvent(TQMouseEvent* e) +{ +	switch (e->button()) +	{ +		case Qt::LeftButton: -	KSystemTray::mousePressEvent(e); +			break; + +		case Qt::MidButton: +			TQTimer::singleShot(0, this, TQT_SLOT(slotHardwareConfig())); +			break; + +		case Qt::RightButton: +			contextMenuAboutToShow(m_RMBMenu); +			m_RMBMenu->popup(e->globalPos()); +			break; + +		default: +			// do nothing +			break; +	}  }  bool HwDeviceSystemTray::isMonitoredDevice(TDEStorageDevice* sdevice) @@ -195,33 +206,17 @@ bool HwDeviceSystemTray::isMonitoredDevice(TDEStorageDevice* sdevice)  	         sdevice->isDiskOfType(TDEDiskDeviceType::Camera)));  } -void HwDeviceSystemTray::contextMenuAboutToShow(TDEPopupMenu* menu) { -	menu->clear(); -	menu->setCheckable(true); - -	populateMenu(menu); - -	menu->insertTitle(SmallIcon("configure"), i18n("Global Configuration")); - -	TDEAction *actHardwareConfig = new TDEAction(i18n("Show Device Manager..."), SmallIconSet("kcmpci"), TDEShortcut(), TQT_TQOBJECT(this), TQT_SLOT(slotHardwareConfig()), actionCollection()); -	actHardwareConfig->plug(menu); - -	TDEAction *actShortcutKeys = new TDEAction(i18n("Configure Shortcut Keys..."), SmallIconSet("configure"), TDEShortcut(), TQT_TQOBJECT(this), TQT_SLOT(slotEditShortcutKeys()), actionCollection()); -	actShortcutKeys->plug(menu); - -	menu->insertItem(SmallIcon("help"), KStdGuiItem::help().text(), m_help->menu()); -	TDEAction *quitAction = actionCollection()->action(KStdAction::name(KStdAction::Quit)); -	quitAction->plug(menu); - -	m_menu = menu; -} -  void HwDeviceSystemTray::configChanged() {  	//  } -void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) { -	menu->insertTitle(SmallIcon("drive-harddisk-unmounted"), i18n("Storage Devices")); +void HwDeviceSystemTray::contextMenuAboutToShow(TDEPopupMenu *menu) +{ +	menu->clear(); +	menu->setCheckable(true); + +	// Device actions +	menu->insertTitle(SmallIcon("drive-harddisk-unmounted"), i18n("Storage Device Actions"));  	TDEActionMenu *openDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("open_menu"));  	TDEActionMenu *mountDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("mount_menu")); @@ -409,6 +404,21 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {  	{  		propertiesDeviceActionMenu->plug(menu);  	} + +	// Global Configuration +	menu->insertTitle(SmallIcon("configure"), i18n("Global Configuration")); + +	TDEAction *actHardwareConfig = new TDEAction(i18n("Show Device Manager..."), SmallIconSet("kcmpci"), TDEShortcut(), this, TQT_SLOT(slotHardwareConfig()), actionCollection()); +	actHardwareConfig->plug(menu); + +	TDEAction *actShortcutKeys = new TDEAction(i18n("Configure Shortcut Keys..."), SmallIconSet("configure"), TDEShortcut(), this, TQT_SLOT(slotEditShortcutKeys()), actionCollection()); +	actShortcutKeys->plug(menu); + +	// Help & Quit +	menu->insertSeparator(); +	menu->insertItem(SmallIcon("help"), KStdGuiItem::help().text(), m_help->menu()); +	TDEAction *quitAction = actionCollection()->action(KStdAction::name(KStdAction::Quit)); +	quitAction->plug(menu);  }  void HwDeviceSystemTray::slotOpenDevice(int parameter) diff --git a/kcontrol/hwmanager/hwdevicetray.h b/kcontrol/hwmanager/hwdevicetray.h index c0465f2bf..54382cb8c 100644 --- a/kcontrol/hwmanager/hwdevicetray.h +++ b/kcontrol/hwmanager/hwdevicetray.h @@ -1,8 +1,8 @@  /*   * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net> - *  + *   * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application - *  + *   * hwdevicetray is free software: you can redistribute it and/or modify   * it under the terms of the GNU General Public License as   * published by the Free Software Foundation, either version 3 @@ -45,7 +45,7 @@ public:  	~HwDeviceSystemTray();  	TDEGlobalAccel *globalKeys; -	virtual void contextMenuAboutToShow(TDEPopupMenu* menu); +	virtual void contextMenuAboutToShow(TDEPopupMenu *menu);  	void configChanged(); @@ -80,8 +80,6 @@ private slots:  private:  	static bool isMonitoredDevice(TDEStorageDevice *sdevice); -private: -	void populateMenu(TDEPopupMenu* menu);  	void resizeTrayIcon();  	bool m_popupUp; @@ -98,7 +96,7 @@ private:  	TQStringMap m_ejectMenuIndexMap;  	TQStringMap m_safeRemoveMenuIndexMap;  	TQStringMap m_propertiesMenuIndexMap; -	TDEPopupMenu* m_menu; +	TDEPopupMenu* m_RMBMenu;  	KSimpleConfig *r_config;  	struct KnownDiskDeviceInfo | 
