def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_recommendWidget()
        self.ui.setupUi(self)
        self.check_update = checkUpdateThread(self)
        self.check_update.start()

        self.catLang = KGlobal.locale().language()

#        self.ui.listRecommendApp.connect(self.ui.listRecommendApp, SIGNAL("itemSelectionChanged()"), self.setInstall)
        self.connect(self, SIGNAL("disable"), self.disableInstallButton)
#        it = threading.Thread(target=self.init, args=(self))
#        it.start()
        
#    def init(self):
        plugnum = "0"
	config = ConfigParser()

	userConf = os.path.expanduser("~/.config/profiler/recommend.cfg")
	if not os.path.exists(userConf):
	    print "System list found.."
	    config.read('recommend.cfg')
	else:
	    config.read(userConf)
	    print "User list found.."

	applist = config.sections()

	grouplist = []

	for app in applist:
	    try:
		group = config.get(app, "group")
		if group not in grouplist:
		    grouplist.append(group)
	    except:
		print "Not found for", app
        print "Csoport lista kész:",
        applist.sort()
        grouplist.sort()
        print grouplist

        self.install_time_thread = InstallTimeThread(self, applist)

        for group in grouplist:
          self.new_tab(group, group)

	for app in applist:
            group = config.get(app, "group")
	    try:
		Title = app
		Desc = config.get(app, "desc")
		Summary = config.get(app, "summary")
#		Thumb = app+".jpg"
		Size = config.get(app, "size")
		InstallTime = 1
		#config.get(app, "installtime")
		favor = eval(config.get(app, "favorite"))
	    except:
		print "Not found for", app
		continue

            thumbFolder = os.listdir(os.path.join("./module_gui/pics", "screenshots"))
            Thumb = os.path.join("./module_gui/pics/screenshots/" + app + ".png")
            
	    if group == "Plugins":
		Thumb = "./module_gui/pics/plugins.png"
		print "Plugins detected..."


	    if not os.path.exists(Thumb):
		print "Empty App Thumbnail detected..."
		Thumb = "./module_gui/pics/blackPanther_shield200.png"

            Tooltip = "<img src="+Thumb+"/><br /><br /><b>\nName:</b> "+app+"<br /><br /><b>\nDescription:</b> "+Desc+"<br />"

            item = QtGui.QListWidgetItem(self.ui.__dict__[group+"_listRecommendApp"])
            self.__dict__["RIW_"+group+"_"+app] = RecommendItemWidget(unicode(Title, "utf8", "replace"), unicode(Summary, "utf8", "replace"), Size, unicode(Tooltip, "utf8", "replace"), Thumb, self.ui.__dict__[group+"_listRecommendApp"])
            item.setSizeHint(QSize(38,110))
            self.ui.__dict__[group+"_listRecommendApp"].setItemWidget(item, self.__dict__["RIW_"+group+"_"+app])
            self.connect(self.__dict__["RIW_"+group+"_"+app].ui.installButton, SIGNAL("clicked()"), lambda x=app: self.setInstall(x))

            if favor:
              item = QtGui.QListWidgetItem(self.ui.listRecommendApp)
              self.__dict__["RIW_default_"+app] = RecommendItemWidget(unicode(Title, "utf8", "replace"), unicode(Summary, "utf8", "replace"), Size, unicode(Tooltip, "utf8", "replace"), Thumb, self.ui.listRecommendApp)
              item.setSizeHint(QSize(38,110))
              self.ui.listRecommendApp.setItemWidget(item, self.__dict__["RIW_default_"+app])
              self.connect(self.__dict__["RIW_default_"+app].ui.installButton, SIGNAL("clicked()"), lambda x=app: self.setInstall(x))

    	    self.ui.checkBox.connect(self.ui.checkBox, SIGNAL("stateChanged(int)"), self.disableWidgets)

        #self.ui.pushInstallButton.connect(self.ui.pushInstallButton, SIGNAL("clicked()"), self.goInstall)
        self.ui.pushUpdateButton.connect(self.ui.pushUpdateButton, SIGNAL("clicked()"), self.goUpdate)
        
        self.install_time_thread.start()
class Widget(QtGui.QWidget, ScreenWidget):
    title = ki18n("Insert some catchy title about apps..")
    desc = ki18n("Wonderful more apps! \m/")
    #tooltip = ki18n("Wonderful more apps! \m/")

    def __init__(self, *args):
        QtGui.QWidget.__init__(self,None)
        self.ui = Ui_recommendWidget()
        self.ui.setupUi(self)
        self.check_update = checkUpdateThread(self)
        self.check_update.start()

        self.catLang = KGlobal.locale().language()

#        self.ui.listRecommendApp.connect(self.ui.listRecommendApp, SIGNAL("itemSelectionChanged()"), self.setInstall)
        self.connect(self, SIGNAL("disable"), self.disableInstallButton)
#        it = threading.Thread(target=self.init, args=(self))
#        it.start()
        
#    def init(self):
        plugnum = "0"
	config = ConfigParser()

	userConf = os.path.expanduser("~/.config/profiler/recommend.cfg")
	if not os.path.exists(userConf):
	    print "System list found.."
	    config.read('recommend.cfg')
	else:
	    config.read(userConf)
	    print "User list found.."

	applist = config.sections()

	grouplist = []

	for app in applist:
	    try:
		group = config.get(app, "group")
		if group not in grouplist:
		    grouplist.append(group)
	    except:
		print "Not found for", app
        print "Csoport lista kész:",
        applist.sort()
        grouplist.sort()
        print grouplist

        self.install_time_thread = InstallTimeThread(self, applist)

        for group in grouplist:
          self.new_tab(group, group)

	for app in applist:
            group = config.get(app, "group")
	    try:
		Title = app
		Desc = config.get(app, "desc")
		Summary = config.get(app, "summary")
#		Thumb = app+".jpg"
		Size = config.get(app, "size")
		InstallTime = 1
		#config.get(app, "installtime")
		favor = eval(config.get(app, "favorite"))
	    except:
		print "Not found for", app
		continue

            thumbFolder = os.listdir(os.path.join("./module_gui/pics", "screenshots"))
            Thumb = os.path.join("./module_gui/pics/screenshots/" + app + ".png")
            
	    if group == "Plugins":
		Thumb = "./module_gui/pics/plugins.png"
		print "Plugins detected..."


	    if not os.path.exists(Thumb):
		print "Empty App Thumbnail detected..."
		Thumb = "./module_gui/pics/blackPanther_shield200.png"

            Tooltip = "<img src="+Thumb+"/><br /><br /><b>\nName:</b> "+app+"<br /><br /><b>\nDescription:</b> "+Desc+"<br />"

            item = QtGui.QListWidgetItem(self.ui.__dict__[group+"_listRecommendApp"])
            self.__dict__["RIW_"+group+"_"+app] = RecommendItemWidget(unicode(Title, "utf8", "replace"), unicode(Summary, "utf8", "replace"), Size, unicode(Tooltip, "utf8", "replace"), Thumb, self.ui.__dict__[group+"_listRecommendApp"])
            item.setSizeHint(QSize(38,110))
            self.ui.__dict__[group+"_listRecommendApp"].setItemWidget(item, self.__dict__["RIW_"+group+"_"+app])
            self.connect(self.__dict__["RIW_"+group+"_"+app].ui.installButton, SIGNAL("clicked()"), lambda x=app: self.setInstall(x))

            if favor:
              item = QtGui.QListWidgetItem(self.ui.listRecommendApp)
              self.__dict__["RIW_default_"+app] = RecommendItemWidget(unicode(Title, "utf8", "replace"), unicode(Summary, "utf8", "replace"), Size, unicode(Tooltip, "utf8", "replace"), Thumb, self.ui.listRecommendApp)
              item.setSizeHint(QSize(38,110))
              self.ui.listRecommendApp.setItemWidget(item, self.__dict__["RIW_default_"+app])
              self.connect(self.__dict__["RIW_default_"+app].ui.installButton, SIGNAL("clicked()"), lambda x=app: self.setInstall(x))

    	    self.ui.checkBox.connect(self.ui.checkBox, SIGNAL("stateChanged(int)"), self.disableWidgets)

        #self.ui.pushInstallButton.connect(self.ui.pushInstallButton, SIGNAL("clicked()"), self.goInstall)
        self.ui.pushUpdateButton.connect(self.ui.pushUpdateButton, SIGNAL("clicked()"), self.goUpdate)
        
        self.install_time_thread.start()
        
    def disableInstallButton(self, appname, status):
      keys = []
      for key in self.__dict__.keys():
        if key.find("RIW_") != -1:
          pos = key.find("_",4)+1
          if key[pos:] == appname:
            if status:
              self.__dict__[key].set_status("Installed", False)
              self.__dict__[key].setDisabled(True)
            else:
              self.__dict__[key].set_status("Not Installed", True)
              self.__dict__[key].setDisabled(False)

    def installState(self, pstate):
	print "Install state of ", app

    def new_listRecommendApp(self, section_name):
        name = section_name + "_listRecommendApp"
        self.ui.__dict__[name] = QtGui.QListWidget(self.ui.__dict__["tab_"+section_name])
        self.ui.__dict__[name].setGeometry(QRect(0, 0, 511, 411))
        self.ui.__dict__[name].setMinimumSize(QSize(0, 300))
        self.ui.__dict__[name].setStyleSheet("#"+name+"""{background-color: 
          qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 81),   
          stop:0.00537634 rgba(0, 0, 0, 80), stop:1 rgba(250, 250, 230, 80));\n\n
          border: 1px solid rgb(236, 236, 236, 80);}""")                            
        self.ui.__dict__[name].setFrameShape(QtGui.QFrame.NoFrame)
        self.ui.__dict__[name].setFrameShadow(QtGui.QFrame.Sunken)
        self.ui.__dict__[name].setAlternatingRowColors(False)
        self.ui.__dict__[name].setTextElideMode(Qt.ElideRight)
        self.ui.__dict__[name].setProperty("isWrapping", False)
        self.ui.__dict__[name].setResizeMode(QtGui.QListView.Fixed)
        self.ui.__dict__[name].setLayoutMode(QtGui.QListView.SinglePass)
        self.ui.__dict__[name].setSpacing(0)
        self.ui.__dict__[name].setGridSize(QSize(0, 110))
        self.ui.__dict__[name].setViewMode(QtGui.QListView.ListMode)
        self.ui.__dict__[name].setModelColumn(0)
        self.ui.__dict__[name].setUniformItemSizes(False)
        self.ui.__dict__[name].setBatchSize(100)
        self.ui.__dict__[name].setObjectName(name)
#        self.ui.__dict__[name].connect(self.ui.__dict__[name], SIGNAL("itemSelectionChanged()"), self.setInstall)
                                                                                                   
    def new_tab(self, section_name, tab_label):
      self.ui.__dict__["tab_"+section_name] = QtGui.QWidget()

      icon = QtGui.QIcon()
      icon.addPixmap(QtGui.QPixmap("/usr/share/icons/"+section_name+"_section.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
      self.ui.tabWidget.addTab(self.ui.__dict__["tab_"+section_name], icon, tab_label)
      self.new_listRecommendApp(section_name)

    def disableWidgets(self, state):
        keys = []
        for key in self.ui.__dict__.keys():
          if key.find("listRecommendApp") != -1:
            keys.append(key)
        if state:
	    #print "CHECKBOX ON"
            #self.ui.pushInstallButton.setDisabled(True)
            for key in keys:
              self.ui.__dict__[key].setDisabled(True)
        else:
    	    #print "CHECKBOX OFF"
            #self.__class__.screenSettings["hasChanged"] = True
            #self.ui.pushInstallButton.setDisabled(False)
            for key in keys:
              self.ui.__dict__[key].setDisabled(False)


    def setInstall(self, app):
	print "Select install to System", app
    	p = subprocess.Popen(['gurpmi2', '-p', app], stdout=subprocess.PIPE)
    	#p = subprocess.Popen(['apper', '--install-package-name', app], stdout=subprocess.PIPE)

    def goUpdate(self):
	print "GO UPDATE CFG from Internet"
    	#p = subprocess.Popen(['programtelepito', 'update.rpm'], stdout=subprocess.PIPE)
    	print moduleDir
    	#p = subprocess.Popen(['python '+moduleDir+'module_update/downloader.py'], stdout=subprocess.PIPE)
    	self.ui.pushUpdateButton.setDisabled(True)

    def shown(self):
        self.check_update.get_status()

    def execute(self):
        return True