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

description = "A KDE Application"
version = "0.1";

class Prefs(KConfigSkeleton):
    def __init__(self, configFileName = QString.null):
        self.template = None
        self.sourceDirBase = None
        #self.setCurrentGroup("General")
        #self.addItemString("template", template, "test")
        
class KdeApp(KMainWindow):
    def __init__(self):
        KMainWindow.__init__(self,None,"KdeApp")
        self.prefs = Prefs()
        self.configDialog = KConfigDialog(self, "name", self.prefs)
        self.configPage = QDialog()
        self.configDialog.addPage(self.configPage, "test", "history", "")

options = [ ("+[URL]", "Document to open", "") ]

def main():
    global kapp,version,description,options

    aboutdata = KAboutData("test", "test", version, description, \
        KAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com")
    aboutdata.addAuthor("AUTHOR", None, "your@email.com")
    KCmdLineArgs.init(sys.argv,aboutdata)
    KCmdLineArgs.addCmdLineOptions(options)
    kapp = KApplication()
    
    # register ourselves as a dcop client
    kapp.dcopClient().registerAs(kapp.name(), False)

    # see if we are starting with session management
    if kapp.isRestored():
        n = 1
        while KMainWindow.canBeRestored(n):
            KdeApp().restore(n)
            n += 1
    else:
        # no session.. just start up normally
        args = KCmdLineArgs.parsedArgs()
        if args.count() == 0:
            widget = KdeApp()
            widget.show()
        else:
            i = 0
            for i in range(args.count()):
                widget = KdeApp()
                widget.show()
                widget.load(args.url(i))

        args.clear()

    return kapp.exec_loop()

if __name__ == '__main__':
    main()
