diff options
Diffstat (limited to 'FusionIcon/interface_qt4/main.py')
-rw-r--r-- | FusionIcon/interface_qt4/main.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/FusionIcon/interface_qt4/main.py b/FusionIcon/interface_qt4/main.py new file mode 100644 index 0000000..91fb63f --- /dev/null +++ b/FusionIcon/interface_qt4/main.py @@ -0,0 +1,80 @@ +# This file is part of Fusion-icon. + +# Fusion-icon 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 2 of the License, or +# (at your option) any later version. +# +# Fusion-icon is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Author(s): xsacha + +import sys, os, time +from PyQt4 import QtGui, QtCore +from FusionIcon.start import wms, apps, options, decorators, init + +class Build(QtGui.QApplication): + def reload_wm(self): + wms.restart() + def toggleWM(self, wm): + if wms.active != wm: + wms.active = wm + wms.start() + def toggleOP(self, option): + options[option].enabled = not options[option].enabled + if wms.active == 'compiz': + wms.start() + def toggleWD(self, decorator): + decorators[decorator].kill_others() + time.sleep(0.5) + decorators.active = decorator + def __init__(self, parent=None): + QtCore.QObject.__init__(self, parent) + # Qt sucks (I'm aware this breaks if prefix != /usr...) + self.Tray = QtGui.QSystemTrayIcon(QtGui.QIcon('/usr/share/icons/hicolor/22x22/apps/fusion-icon.png')) + self.Tray.setToolTip('Compiz Fusion Icon') + self.Tray.managerMenu = QtGui.QMenu() + self.Tray.optionsMenu = QtGui.QMenu() + self.Tray.decoratorMenu = QtGui.QMenu() + self.groupManager = QtGui.QActionGroup(self.Tray.managerMenu) + self.groupDecorator = QtGui.QActionGroup(self.Tray.decoratorMenu) + for wm in wms.ordered_list: + actionWM = self.groupManager.addAction(self.Tray.managerMenu.addAction(wms[wm].label, lambda val=wm : self.toggleWM(val))) + actionWM.setCheckable(True) + if wms.active == wm: + actionWM.setChecked(True) + for option in options: + actionOP = self.Tray.optionsMenu.addAction(options[option].label, lambda val=option: self.toggleOP(val)) + actionOP.setCheckable(True) + if not options[option].sensitive: + actionOP.setEnabled(False) + actionOP.setChecked(options[option].enabled) + for decorator in decorators: + actionWD = self.groupDecorator.addAction(self.Tray.decoratorMenu.addAction(decorators[decorator].label, lambda val=decorator: self.toggleWD(val))) + actionWD.setCheckable(True) + if decorators.active == decorator: + actionWD.setChecked(True) + self.Tray.menu = QtGui.QMenu() + if 'ccsm' in apps: + self.Tray.menu.addAction(apps['ccsm'].label, lambda: run(['ccsm'])) + if 'emerald theme manager' in apps: + self.Tray.menu.addAction(apps['emerald theme manager'].label, lambda: run(apps['emerald theme manager'].command)) + if 'ccsm' in apps or 'emerald theme manager' in apps: + self.Tray.menu.addSeparator() + self.Tray.menu.addAction("Reload Window Manager", self.reload_wm) + self.Tray.menu.addAction("Select Window Manager").setMenu(self.Tray.managerMenu) + self.Tray.menu.addAction("Compiz Options").setMenu(self.Tray.optionsMenu) + self.Tray.menu.addAction("Select Window Decorator").setMenu(self.Tray.decoratorMenu) + self.Tray.menu.addSeparator() + self.Tray.menu.addAction("Quit", self.quit) + self.Tray.setContextMenu(self.Tray.menu) + self.Tray.show() + init() +Build(sys.argv).exec_() + |