#!/usr/bin/env python

from qt import *
import sys
from DeviceManager import *
from kdeui import *
from kdecore import *

class DeviceManagerMain(KApplication):
	
	def __init__(self):
		"""constrict QApplication, add widgets, exec"""
		#mainWindow=KMainWindow(None, "Device Manager")

		KApplication.__init__(self)
		
		self.mainWindow = KMainWindow(None, "Device Manager")
		self.mainWidget = DeviceManagerWidget(self.mainWindow)
		self.mainWindow.setCentralWidget(self.mainWidget)
		self.setMainWidget(self.mainWindow)
		
		self.mainWindow.setIcon(QPixmap(Const.DATADIR + "/fdo-logo.png"))
		self.mainWindow.setCaption("Hal Device Manager")
		
		KStdAction.quit(self.quitSlot, self.mainWindow.actionCollection())
		
		virtualAction = KToggleAction("Show Virtual Devices", KShortcut(self.CTRL+self.Key_V), self.mainWindow.actionCollection(), "show_virtual")
		self.connect(virtualAction, SIGNAL("toggled(bool)"), self.toggledSlot)
		
		KAction("Reload Devices", "reload", KShortcut(self.CTRL+self.Key_R), self.reloadSlot, self.mainWindow.actionCollection(), "reload_devices")
		
		self.mainWindow.setupGUI(KMainWindow.Create | KMainWindow.Save)
		#self.mainWindow.setupGUI(KMainWindow.Create | KMainWindow.Save, "/media/hda4/jr/src/hal/kde-hal-device-manager-0.2/kde-hal-device-managerui.rc")
		
		self.mainWidget.show()
		self.mainWindow.show()
		self.exec_loop()
		
	def quitSlot(self):
		self.quit()
		
	def toggledSlot(self, on):
		self.mainWidget.setVirtual(on)
		
	def reloadSlot(self):
		self.mainWidget.update_device_list()
		
	def aboutSlot(self):
		QMessageBox.about(self.mainWindow, "About HAL Device Manager", "<b>" + Const.NAME_LONG + " " + Const.VERSION + "</b><br />" + Const.COPYRIGHT)

if __name__ == "__main__":
	about=KAboutData("kde-hal-device-manager","kde-hal-device-manager","0.2","HAL Device Manager for KDE",KAboutData.License_GPL,"(c) 2006 Jonathan Riddell")
	about.addAuthor("Jonathan Riddell", None,"jriddell@ubuntu.com")
	KCmdLineArgs.init(sys.argv,about)
	app=DeviceManagerMain()

#	app = DeviceManagerMain(sys.argv)
