def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         if action in (AppActions.INSTALL, AppActions.INSTALLDEBFILE):
             if (run.get_run_command(self.app.name) == ""):
                 self.app.status = PkgStates.NORUN
                 #self.ui.btn.setText("已安装")
                 self.ui.btn.setText(_("Aldy install"))
                 self.ui.btn.setEnabled(False)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}"
                 )
                 self.ui.btnDetail.setStyleSheet(
                     "QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}"
                 )
             else:
                 self.app.status = PkgStates.RUN
                 #self.ui.btn.setText("启动")
                 self.ui.btn.setText(_("Start"))
                 self.ui.btn.setEnabled(True)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{color:white;border:0px;background-image:url('res/ncard-run-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-run-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-run-btn-3.png');}"
                 )
                 self.ui.btnDetail.setStyleSheet(
                     "QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}"
                 )
         elif action == AppActions.REMOVE:
             self.app.status = PkgStates.INSTALL
             #self.ui.btn.setText("安装")
             self.ui.btn.setText(_("Install"))
             self.ui.btn.setEnabled(True)
             self.ui.btn.setStyleSheet(
                 "QPushButton{color:white;border:0px;background-image:url('res/ncard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-install-btn-3.png');}"
             )
             self.ui.btnDetail.setStyleSheet(
                 "QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}"
             )
         elif action == AppActions.UPGRADE:
             if (run.get_run_command(self.app.name) == ""):
                 self.app.status = PkgStates.NORUN
                 #self.ui.btn.setText("已安装")
                 self.ui.btn.setText(_("Aldy install"))
                 self.ui.btn.setEnabled(False)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}"
                 )
                 self.ui.btnDetail.setStyleSheet(
                     "QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}"
                 )
             else:
                 self.app.status = PkgStates.RUN
                 #self.ui.btn.setText("启动")
                 self.ui.btn.setText(_("Start"))
                 self.ui.btn.setEnabled(True)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{color:white;border:0px;background-image:url('res/ncard-run-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-run-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-run-btn-3.png');}"
                 )
                 self.ui.btnDetail.setStyleSheet(
                     "QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}"
                 )
 def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         if action in (AppActions.INSTALL, AppActions.INSTALLDEBFILE):
             # self.star.hide()
             # self.ui.isInstalled.setVisible(True)
             if (run.get_run_command(self.app.name) == ""):
                 self.app.status = PkgStates.NORUN
                 #self.ui.btn.setText("已安装")
                 self.ui.btn.setText(_("Aldy install"))
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}"
                 )
                 # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                 self.ui.btn.setEnabled(False)
             else:
                 self.app.status = PkgStates.RUN
                 #self.ui.btn.setText("启动")
                 self.ui.btn.setText(_("Start"))
                 self.ui.btn.setEnabled(True)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                 )
                 # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}")
         elif action == AppActions.REMOVE:
             self.app.status = PkgStates.INSTALL
             # self.star.show()
             # self.ui.isInstalled.setVisible(False)
             #self.ui.btn.setText("安装")
             self.ui.btn.setText(_("Install"))
             self.ui.btn.setEnabled(True)
             self.ui.btn.setStyleSheet(
                 "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
             )
             # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")
         elif action == AppActions.UPGRADE:
             # self.star.hide()
             # self.ui.isInstalled.setVisible(True)
             if (run.get_run_command(self.app.name) == ""):
                 self.app.status = PkgStates.NORUN
                 #self.ui.btn.setText("已安装")
                 self.ui.btn.setText(_("Aldy install"))
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}"
                 )
                 # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                 self.ui.btn.setEnabled(False)
             else:
                 self.app.status = PkgStates.RUN
                 #self.ui.btn.setText("启动")
                 self.ui.btn.setText(_("Start"))
                 self.ui.btn.setEnabled(True)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                 )
    def slot_work_cancel(self, pkgname, action):
        if self.app.name == pkgname:

            if action == AppActions.INSTALL:
                self.app.status = PkgStates.INSTALL
                # self.star.show()
                # self.ui.isInstalled.setVisible(False)
                self.ui.btn.setText("安装")
                self.ui.btn.setEnabled(True)
                self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")
            elif action in (AppActions.REMOVE, AppActions.UPGRADE):
                # self.star.hide()
                # self.ui.isInstalled.setVisible(True)
                if(run.get_run_command(self.app.name) == ""):
                    self.app.status = PkgStates.NORUN
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setEnabled(False)
                    self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}")
                    # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                else:
                    self.ui.btn.setText("启动")
                    self.app.status = PkgStates.RUN
                    self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
                    # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}")

            elif action == AppActions.INSTALLDEBFILE:
                if(self.app.is_installed):
                    # self.star.hide()
                    # self.ui.isInstalled.setVisible(True)

                    if(run.get_run_command(self.app.name) == ""):
                        self.app.status = PkgStates.NORUN
                        self.ui.btn.setText("已安装")
                        self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}")
                        # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                        self.ui.btn.setEnabled(False)
                    else:
                        self.app.status = PkgStates.RUN
                        self.ui.btn.setText("启动")
                        self.ui.btn.setEnabled(True)
                        self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
                        # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}")
                else:
                    # star = StarWidget("small", self.app.ratings_average, self.ui.baseWidget)
                    # star.move(75, 56)
                    # init app.status
                    self.app.status = PkgStates.INSTALL
                    # self.star.show()
                    # self.ui.isInstalled.setVisible(False)
                    self.ui.btn.setText("安装")
                    self.ui.btn.setEnabled(True)
                    self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
 def slot_work_cancel(self, pkgname, action):
     if self.app.name == pkgname:
         if action == AppActions.INSTALL:
             # self.ui.btn.setText("安装")
             self.ui.btn.setText(_("Installation"))
             self.ui.status.hide()
             self.ui.btn.setEnabled(True)
             self.ui.cbSelect.setEnabled(True)
         elif action == AppActions.REMOVE:
             if (run.get_run_command(self.app.name) == ""):
                 # self.ui.btn.setText("卸载")
                 self.ui.btn.setText(_("Uninstall"))
                 self.ui.status.show()
                 self.ui.btn.setEnabled(True)
             else:
                 #self.ui.btn.setText("启动")
                 self.ui.btn.setText(_("Start"))
                 self.ui.btn.setEnabled(True)
             self.ui.cbSelect.setEnabled(False)
         elif action == AppActions.UPGRADE:
             #self.ui.btn.setText("升级")
             self.ui.btn.setText(_("Upgrade"))
             self.ui.btn.setEnabled(True)
             self.ui.status.show()
             self.ui.cbSelect.setEnabled(True)
Exemple #5
0
 def slot_work_cancel(self, pkgname, action):
     if self.app is not None:
         if self.app.name == pkgname:
             if action == AppActions.INSTALL:
                 self.app.status = PkgStates.INSTALL
                 #self.ui.btn.setText("安装")
                 self.ui.btn.setText(_("Install"))
                 self.ui.btn.setEnabled(True)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                 )
                 # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")
             elif action in (
                     AppActions.REMOVE,
                     AppActions.UPGRADE):  #can not appear on win page
                 if (run.get_run_command(self.app.name) == ""):
                     self.app.status = PkgStates.NORUN
                     # self.ui.btn.setText("已安装")
                     self.ui.btn.setText(_("Aldy install"))
                     self.ui.btn.setEnabled(False)
                     self.ui.btn.setStyleSheet(
                         "QPushButton{font-size:12px;color:#000000;border:0px;background-color:#ffffff;}"
                     )
                     # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-un-border.png');}")
                 else:
                     self.app.status = PkgStates.RUN
                     #self.ui.btn.setText("启动")
                     self.ui.btn.setText(_("Start"))
                     self.ui.btn.setEnabled(True)
                     self.ui.btn.setStyleSheet(
                         "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                     )
    def __init__(self, appname, app, backend, parent=None):
        QWidget.__init__(self,parent)
        self.ui_init()
        self.appname = appname
        self.app = app
        self.backend = backend
        self.parent = parent
        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btn.setStyleSheet(LIST_BUTTON_STYLE % (UBUNTUKYLIN_RES_PATH+"btn-small2-1.png",UBUNTUKYLIN_RES_PATH+"btn-small2-2.png",UBUNTUKYLIN_RES_PATH+"btn-small2-3.png"))

        self.ui.btn.setVisible(True)
        if self.app is None:
            if (self.appname == 'wine-qq' or self.appname == 'ppstream'):
                self.ui.btn.setText("安装")
            else:
                self.ui.btn.setText("无效")
        else:
            if(app.is_installed):
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setEnabled(False)
                else:
                    self.ui.btn.setText("启动")
            else:
                self.ui.btn.setText("安装")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.connect(self.parent,Signals.apt_process_finish,self.slot_work_finished)
        self.connect(self.parent,Signals.apt_process_cancel,self.slot_work_cancel)
 def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         if action in (AppActions.INSTALL, AppActions.UPGRADE,
                       AppActions.INSTALLDEBFILE):
             self.ui.status.show()
             if (run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("卸载")
                 self.app.status = PkgStates.UNINSTALL
                 self.ui.btn.setEnabled(True)
                 self.workType = "un"
                 self.ui.cbSelect.setEnabled(False)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:14px;background:#b2bbc7;border:1px solid #97a5b9;color:white;}QPushButton:hover{background-color:#bac7d7;border:1px solid #97a5b9;color:white;}QPushButton:pressed{background-color:#97a5b9;border:1px solid #7e8da1;color:white;}"
                 )
             else:
                 self.ui.btn.setText("启动")
                 self.app.status = PkgStates.RUN
                 self.ui.btn.setEnabled(True)
                 self.workType = "run"
                 self.ui.cbSelect.setEnabled(False)
                 self.ui.btn.setStyleSheet(
                     "QPushButton{font-size:14px;background:#0FA2E8;border:1px solid #0F84BC;color:white;}QPushButton:hover{background-color:#14ACF5;border:1px solid #0F84BC;color:white;}QPushButton:pressed{background-color:#0B95D7;border:1px solid #0479B1;color:white;}"
                 )
         elif action == AppActions.REMOVE:
             self.ui.status.hide()
             self.ui.btn.setText("安装")
             self.app.status = PkgStates.INSTALL
             self.ui.btn.setEnabled(True)
             self.workType = "ins"
             self.ui.cbSelect.setEnabled(True)
             self.ui.btn.setStyleSheet(
                 "QPushButton{font-size:14px;background:#0bc406;border:1px solid #03a603;color:white;}QPushButton:hover{background-color:#16d911;border:1px solid #03a603;color:white;}QPushButton:pressed{background-color:#07b302;border:1px solid #037800;color:white;}"
             )
    def __init__(self, appname, app, backend, parent=None):
        QWidget.__init__(self,parent)
        self.ui_init()
        self.appname = appname
        self.app = app
        self.backend = backend
        self.parent = parent
        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btn.setStyleSheet(LIST_BUTTON_STYLE % (UBUNTUKYLIN_RES_PATH+"btn-small2-1.png",UBUNTUKYLIN_RES_PATH+"btn-small2-2.png",UBUNTUKYLIN_RES_PATH+"btn-small2-3.png"))

        self.ui.btn.setVisible(True)
        if self.app is None:
            if (self.appname == 'wine-qq' or self.appname == 'ppstream'):
                self.ui.btn.setText("安装")
            else:
                self.ui.btn.setText("无效")
        else:
            if(app.is_installed):
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setEnabled(False)
                else:
                    self.ui.btn.setText("启动")
            else:
                self.ui.btn.setText("安装")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.parent.apt_process_finish.connect(self.slot_work_finished)
        self.parent.apt_process_cancel.connect(self.slot_work_cancel)
    def slot_work_finished(self, pkgname, action):
        if self.app.name == pkgname:
            if action in (AppActions.INSTALL, AppActions.UPGRADE,
                          AppActions.INSTALLDEBFILE):
                self.ui.status.show()
                if (run.get_run_command(self.app.name) == ""):
                    #self.ui.btn.setText("卸载")
                    self.ui.btn.setText(_("Uninstall"))
                    self.ui.baseWidget.setStyleSheet(
                        ".QWidget{border:1px solid #e5e5e5;background-color:#ffffff;}.QWidget:hover{border:1px solid #2d8ae1}"
                    )
                    self.ui.progressBar.hide()
                    self.ui.progresslabel.hide()
                    #self.ui.progressBarsmall.hide()
                    self.ui.btn.show()
                    self.app.status = PkgStates.UNINSTALL
                    self.ui.btn.setEnabled(True)
                    self.workType = "un"
                    self.ui.cbSelect.setEnabled(False)
                    self.ui.btn.setStyleSheet(
                        "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}"
                    )
                else:
                    #self.ui.btn.setText("启动")
                    self.ui.btn.setText(_("Start"))
                    self.ui.baseWidget.setStyleSheet(
                        ".QWidget{border:1px solid #e5e5e5;background-color:#ffffff;}.QWidget:hover{border:1px solid #2d8ae1}"
                    )
                    self.ui.progressBar.hide()
                    self.ui.progresslabel.hide()
                    #self.ui.progressBarsmall.hide()
                    self.ui.btn.show()

                    self.app.status = PkgStates.RUN
                    self.ui.btn.setEnabled(True)
                    self.workType = "run"
                    self.ui.cbSelect.setEnabled(False)
                    self.ui.btn.setStyleSheet(
                        "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                    )
            elif action == AppActions.REMOVE:
                self.ui.status.hide()
                #self.ui.btn.setText("安装")
                self.ui.btn.setText(_("Install"))
                self.ui.baseWidget.setStyleSheet(
                    ".QWidget{border:1px solid #e5e5e5;background-color:#ffffff;}.QWidget:hover{border:1px solid #2d8ae1}"
                )
                self.ui.progressBar.hide()
                self.ui.progresslabel.hide()
                #self.ui.progressBarsmall.hide()
                self.ui.btn.show()

                self.app.status = PkgStates.INSTALL
                self.ui.btn.setEnabled(True)
                self.workType = "ins"
                self.ui.cbSelect.setEnabled(True)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                )
 def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         self.ui.btn.setEnabled(True)
         if action in (AppActions.INSTALL,AppActions.INSTALLDEBFILE):
             if(run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("已安装")
                 self.ui.btn.setEnabled(False)
             else:
                 self.ui.btn.setText("启动")
         elif action == AppActions.REMOVE:
             self.ui.btn.setText("安装")
         elif action == AppActions.UPGRADE:
             if(run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("已安装")
                 self.ui.btn.setEnabled(False)
             else:
                 self.ui.btn.setText("启动")
 def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         if action == AppActions.INSTALL:
             if(run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("已安装")
                 self.ui.btn.setEnabled(False)
             else:
                 self.ui.btn.setText("启动")
                 self.ui.btn.setEnabled(True)
         elif action == AppActions.REMOVE:
             self.ui.btn.setText("安装")
         elif action == AppActions.UPGRADE:
             if(run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("已安装")
                 self.ui.btn.setEnabled(False)
             else:
                 self.ui.btn.setText("启动")
 def slot_work_finished(self, pkgname, action):
     if self.app.name == pkgname:
         if(run.get_run_command(self.app.name) == ""):
             self.ui.btn.setText("已安装")
             self.ui.btn.setEnabled(False)
         else:
             self.ui.btn.setText("启动")
             self.ui.btn.setEnabled(True)
    def __init__(self,app, mainwin, parent=None):
        QWidget.__init__(self,parent)
        self.ui_init()
        self.app = app
        self.mainwin = mainwin
        self.parent = parent

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setText("详情")
        self.ui.btnDetail.hide()

        if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png")):
            self.ui.softIcon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg")):
            self.ui.softIcon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg"))
        else:
            self.ui.softIcon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + "default.png"))
        self.ui.softName.setStyleSheet("QLabel{font-family:'ubuntu';font-size:14px;font-weight:bold;}")
        self.ui.softDescr.setStyleSheet("QLabel{font-size:13px;color:#7E8B97;}")
        self.ui.btn.setStyleSheet(RECOMMEND_BUTTON_STYLE %(UBUNTUKYLIN_RES_PATH + "btn1-1.png",UBUNTUKYLIN_RES_PATH + "btn1-2.png",UBUNTUKYLIN_RES_PATH + "btn1-3.png"))
        self.ui.btnDetail.setStyleSheet(RECOMMEND_BUTTON_STYLE %(UBUNTUKYLIN_RES_PATH + "btn6-1.png",UBUNTUKYLIN_RES_PATH + "btn6-2.png",UBUNTUKYLIN_RES_PATH + "btn6-3.png"))

        # letter spacing
        font = QFont()
        font.setLetterSpacing(QFont.PercentageSpacing, 90.0)
        self.ui.softName.setFont(font)
        self.ui.softDescr.setFont(font)
        if(len(self.app.name) > 18):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.softName.setFont(font2)
            self.ui.softName.setStyleSheet("QLabel{font-size:13px;font-weight:bold;}")
        if(len(self.app.name) > 21):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.softName.setFont(font2)
            self.ui.softName.setStyleSheet("QLabel{font-size:12px;font-weight:bold;}")

        self.ui.softName.setText(self.app.name)
        self.ui.softDescr.setText(self.app.displayname)

        if(self.app.is_installed):
            if(run.get_run_command(self.app.name) == ""):
                self.ui.btn.setText("已安装")
                self.ui.btn.setEnabled(False)
            else:
                self.ui.btn.setText("启动")
        else:
            self.ui.btn.setText("安装")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
        self.connect(self.mainwin,Signals.apt_process_finish,self.slot_work_finished)
        self.connect(self.mainwin,Signals.apt_process_cancel,self.slot_work_cancel)
 def slot_work_cancel(self, pkgname, action):
     if self.app.name == pkgname:
         self.ui.btn.setEnabled(True)
         if action == AppActions.INSTALL:
             self.ui.btn.setText("安装")
         elif action == AppActions.REMOVE:
             if(run.get_run_command(self.app.name) == ""):
                 self.ui.btn.setText("已安装")
                 self.ui.btn.setEnabled(False)
             else:
                 self.ui.btn.setText("启动")
    def __init__(self, app, messageBox, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()
        self.app = app
        self.messageBox = messageBox
        self.parent = parent

        self.ui.bg.lower()

        self.ui.cbSelect.raise_()
        self.ui.btn.raise_()
        self.ui.btnDetail.stackUnder(self.ui.cbSelect)

        self.ui.installedsize.setAlignment(Qt.AlignCenter)
        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.cbSelect.setFocusPolicy(Qt.NoFocus)

        iconpath = commontools.get_icon_path(self.app.name)
        self.ui.icon.setStyleSheet("QLabel{background-image:url('" + iconpath +
                                   "');background-color:transparent;}")

        self.ui.status.setStyleSheet(
            "QLabel{background-image:url('res/installed.png')}")
        self.ui.name.setStyleSheet("QLabel{font-size:14px;font-weight:bold;}")
        self.ui.installedsize.setStyleSheet("QLabel{font-size:14px;}")
        self.ui.summary.setStyleSheet("QLabel{font-size:13px;color:#7E8B97;}")
        self.ui.bg.setStyleSheet(
            "QWidget#bg{background-color:#F3F2F5;border:1px solid #F8F7FA;}")
        self.ui.btnDetail.setStyleSheet(
            "QPushButton#btnDetail{border:0px;}QPushButton#btnDetail:hover{background-image:url('res/listwidgethover.png');}"
        )
        self.ui.cbSelect.setStyleSheet(
            "QCheckBox{font-size:13px;}QCheckBox:hover{background-color:#F3F2F5;}"
        )
        if self.app.displayname_cn != '' and self.app.displayname_cn is not None and self.app.displayname_cn != 'None':
            self.ui.name.setText(app.displayname_cn)
        else:
            self.ui.name.setText(app.displayname)
        if self.app.summary is not None and self.app.summary != 'None' and self.app.summary != '':
            self.ui.summary.setText(self.app.summary)
        else:
            self.ui.summary.setText(self.app.orig_summary)

        # installedsize = app.installedSize
        installedsize = app.packageSize
        installedsizek = installedsize / 1024
        if (installedsizek == 0):
            self.ui.installedsize.setText("未知")
        elif (installedsizek < 1024):
            self.ui.installedsize.setText(str('%.1f' % installedsizek) + " KB")
        else:
            self.ui.installedsize.setText(
                str('%.2f' % (installedsizek / 1024.0)) + " MB")

        installDate = app.install_date[:app.install_date.find('T')]
        self.ui.installedDate.setText(installDate + " 安装")
        if (self.app.status in (PkgStates.INSTALLING, PkgStates.REMOVING,
                                PkgStates.UPGRADING
                                )):  #zx11.28 keep btn status same in all page
            self.ui.status.hide()
            if self.app.status == PkgStates.INSTALLING:
                if self.app.percent > 0:
                    self.ui.btn.setText("正在安装")
                else:
                    self.ui.btn.setText("等待安装")
                self.ui.btn.setEnabled(False)
                self.ui.cbSelect.setEnabled(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:14px;background:#0bc406;border:1px solid #03a603;color:white;}QPushButton:hover{background-color:#16d911;border:1px solid #03a603;color:white;}QPushButton:pressed{background-color:#07b302;border:1px solid #037800;color:white;}"
                )

            elif self.app.status == PkgStates.REMOVING:
                self.ui.btn.setEnabled(False)
                if self.app.percent > 0:
                    self.ui.btn.setText("正在卸载")
                else:
                    self.ui.btn.setText("等待卸载")
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:14px;background:#b2bbc7;border:1px solid #97a5b9;color:white;}QPushButton:hover{background-color:#bac7d7;border:1px solid #97a5b9;color:white;}QPushButton:pressed{background-color:#97a5b9;border:1px solid #7e8da1;color:white;}"
                )

            elif self.app.status == PkgStates.UPGRADING:
                self.ui.btn.setEnabled(False)
                if self.app.percent > 0:
                    self.ui.btn.setText("正在升级")
                else:
                    self.ui.btn.setText("等待升级")
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:14px;background:#edac3a;border:1px solid #df9b23;color:white;}QPushButton:hover{background-color:#fdbf52;border:1px solid #df9b23;color:white;}QPushButton:pressed{background-color:#e29f29;border:1px solid #c07b04;color:white;}"
                )

        else:
            if (app.is_installed):
                self.ui.status.show()
                if (app.is_upgradable):
                    self.ui.btn.setText("升级")
                    self.ui.btn.setEnabled(True)
                    self.app.status = PkgStates.UPDATE
                    self.workType = "up"
                    self.ui.cbSelect.setEnabled(False)
                    self.ui.btn.setStyleSheet(
                        "QPushButton{font-size:14px;background:#edac3a;border:1px solid #df9b23;color:white;}QPushButton:hover{background-color:#fdbf52;border:1px solid #df9b23;color:white;}QPushButton:pressed{background-color:#e29f29;border:1px solid #c07b04;color:white;}"
                    )
                else:
                    if (run.get_run_command(self.app.name) != ""):
                        self.ui.btn.setText("启动")
                        self.ui.btn.setEnabled(True)
                        self.app.status = PkgStates.RUN
                        self.workType = "run"
                        self.ui.cbSelect.setEnabled(False)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:14px;background:#0FA2E8;border:1px solid #0F84BC;color:white;}QPushButton:hover{background-color:#14ACF5;border:1px solid #0F84BC;color:white;}QPushButton:pressed{background-color:#0B95D7;border:1px solid #0479B1;color:white;}"
                        )
                    else:
                        self.ui.btn.setText("卸载")
                        self.ui.btn.setEnabled(True)
                        self.app.status = PkgStates.UNINSTALL
                        self.workType = "un"
                        self.ui.cbSelect.setEnabled(False)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:14px;background:#b2bbc7;border:1px solid #97a5b9;color:white;}QPushButton:hover{background-color:#bac7d7;border:1px solid #97a5b9;color:white;}QPushButton:pressed{background-color:#97a5b9;border:1px solid #7e8da1;color:white;}"
                        )
            else:
                self.ui.status.hide()
                self.ui.btn.setText("安装")
                self.ui.btn.setEnabled(True)
                self.app.status = PkgStates.INSTALL
                self.workType = "ins"
                self.ui.cbSelect.setEnabled(True)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:14px;background:#0bc406;border:1px solid #03a603;color:white;}QPushButton:hover{background-color:#16d911;border:1px solid #03a603;color:white;}QPushButton:pressed{background-color:#07b302;border:1px solid #037800;color:white;}"
                )

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
    def __init__(self, app, messageBox, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()
        self.app = app
        self.messageBox = messageBox
        self.parent = parent

        # self.ui.bg.lower()

        # self.ui.baseWidget.setAutoFillBackground(True)
        self.ui.cbSelect.raise_()
        self.ui.btn.raise_()

        self.ui.progressBar.lower()

        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.installedsize.setAlignment(Qt.AlignCenter)
        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.cbSelect.setFocusPolicy(Qt.NoFocus)

        iconpath = commontools.get_icon_path(self.app.name)
        self.ui.icon.setStyleSheet(
            "QLabel{background-color: transparent;background-image:url('" +
            iconpath + "');background-color:transparent;}")

        self.ui.baseWidget.setStyleSheet(
            ".QWidget{border:1px solid #e5e5e5;background-color:transparent;}.QWidget:hover{border:1px solid #2d8ae1}"
        )
        self.ui.status.setStyleSheet(
            "QLabel{background-image:url('res/installed.png')}")
        self.ui.name.setStyleSheet(
            "QLabel{background-color: transparent;font-size:14px;color:#000000;}"
        )
        self.ui.installedsize.setStyleSheet(
            "QLabel{background-color: transparent;font-size:12px;color:#888888;}"
        )
        self.ui.summary.setStyleSheet(
            "QLabel{background-color: transparent;font-size:12px;color:#888888;}"
        )
        # self.ui.bg.setStyleSheet("QWidget#bg{background-color:#F3F2F5;border:1px solid #F8F7FA;}")
        self.ui.btnDetail.setStyleSheet(
            "QPushButton{border:0px;background-color:transparent;}")
        # self.ui.cbSelect.setStyleSheet("QCheckBox{outline: none;border:1px solid #d5d5d5;}QCheckBox:hover{border:1px solid #2d8ae1;}")
        self.ui.installedDate.setStyleSheet(
            "QLabel{background-color: transparent;font-size:12px;color:#888888;}"
        )
        if (Globals.MIPS64):
            self.ui.progressBar.setStyleSheet(
                "QProgressBar{background-color:#ffffff;border-radius:0px;color:#1E66A4;}"
            )
        else:
            self.ui.progressBar.setStyleSheet(
                "QProgressBar{background-color:#ffffff;border-radius:0px;color:#1E66A4;}"
                "QProgressBar:chunk{background-color:#5DC4FE;}")
        self.ui.progresslabel.setStyleSheet(
            "QLabel{font-size:12px;color:#2d8ae1;background-color:transparent;}"
        )

        if self.app.displayname_cn != '' and self.app.displayname_cn is not None and self.app.displayname_cn != 'None':
            self.ui.name.setText(app.displayname_cn)
        else:
            self.ui.name.setText(app.displayname)
        if self.app.summary is not None and self.app.summary != 'None' and self.app.summary != '':
            self.ui.summary.setText(self.app.summary)
        else:
            self.ui.summary.setText(self.app.orig_summary)

        # installedsize = app.installedSize
        installedsize = app.installedSize
        installedsizek = installedsize / 1024

        if (installedsizek == 0):
            #self.ui.installedsize.setText("未知")
            self.ui.installedsize.setText(_("unknown"))

        elif (installedsizek < 1024):
            self.ui.installedsize.setText(str('%.1f' % installedsizek) + " KB")
        else:
            self.ui.installedsize.setText(
                str('%.2f' % (installedsizek / 1024.0)) + " MB")

        installDate = app.install_date[:app.install_date.find('T')]
        #self.ui.installedDate.setText(installDate + " 安装")
        self.ui.installedDate.setText(installDate + _("Install"))
        if (self.app.status in (PkgStates.INSTALLING, PkgStates.REMOVING,
                                PkgStates.UPGRADING
                                )):  #zx11.28 keep btn status same in all page
            self.ui.status.hide()
            if self.app.status == PkgStates.INSTALLING:
                if self.app.percent > 0:
                    #self.ui.btn.setText("正在安装")
                    self.ui.btn.setText(_("Installing"))
                else:
                    #self.ui.btn.setText("等待安装")
                    self.ui.btn.setText(_("Waiting for installation"))
                self.ui.btn.setEnabled(False)
                self.ui.cbSelect.setEnabled(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                )

            elif self.app.status == PkgStates.REMOVING:
                self.ui.btn.setEnabled(False)
                if self.app.percent > 0:
                    #self.ui.btn.setText("正在卸载")
                    self.ui.btn.setText(_("Uninstalling"))
                else:
                    #self.ui.btn.setText("等待卸载")
                    self.ui.btn.setText(_("Waiting for uninstall"))
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}"
                )

            elif self.app.status == PkgStates.UPGRADING:
                self.ui.btn.setEnabled(False)
                if self.app.percent > 0:
                    #self.ui.btn.setText("正在升级")
                    self.ui.btn.setText(_("upgrading"))
                else:
                    #self.ui.btn.setText("等待升级")
                    self.ui.btn.setText(_("Waiting for upgrade"))
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}"
                )

        else:
            if (app.is_installed):
                self.ui.status.show()
                if (app.is_upgradable):
                    # self.ui.btn.setText("升级")
                    self.ui.btn.setText(_("Upgrade"))
                    self.ui.btn.setEnabled(True)
                    self.app.status = PkgStates.UPDATE
                    self.workType = "up"
                    self.ui.cbSelect.setEnabled(False)
                    self.ui.btn.setStyleSheet(
                        "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}"
                    )
                else:
                    if (run.get_run_command(self.app.name) != ""):
                        #self.ui.btn.setText("启动")
                        self.ui.btn.setText(_("Start"))
                        self.ui.btn.setEnabled(True)
                        self.app.status = PkgStates.RUN
                        self.workType = "run"
                        self.ui.cbSelect.setEnabled(False)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                        )
                    else:
                        #self.ui.btn.setText("卸载")
                        self.ui.btn.setText(_("Uninstall"))
                        self.ui.btn.setEnabled(True)
                        self.app.status = PkgStates.UNINSTALL
                        self.workType = "un"
                        self.ui.cbSelect.setEnabled(False)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}"
                        )
            else:
                self.ui.status.hide()
                #self.ui.btn.setText("安装")
                self.ui.btn.setText(_("Install"))
                self.ui.btn.setEnabled(True)
                self.app.status = PkgStates.INSTALL
                self.workType = "ins"
                self.ui.cbSelect.setEnabled(True)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                )

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
    def __init__(self, winstat, app, parent=None):
        QWidget.__init__(self,parent)
        self.ui_init()
        self.winstat = winstat
        self.app = app

        self.switchTimer = QTimer(self)
        self.switchTimer.timeout.connect(self.slot_switch_animation_step)

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)

        self.ui.btnDetail.setCursor(Qt.PointingHandCursor)

        self.ui.description.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

        # self.ui.baseWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.baseWidget.setPalette(palette)

        self.ui.baseWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/wincard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.baseWidget.setPalette(palette)

        # self.ui.detailWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.detailWidget.setPalette(palette)

        self.ui.detailWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/wincard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.detailWidget.setPalette(palette)

        palette = QPalette()
        palette.setBrush(QPalette.Base, QBrush(QColor(255,0,0,0)))
        self.ui.description.setPalette(palette)

        img = QPixmap("res/arrowhead.png")
        self.ui.arronicon.setPixmap(img)

        # win frame
        if(os.path.isfile(UBUNTUKYLIN_RES_WIN_PATH + str(self.winstat.windows_app_name) + ".png")):
            self.ui.winicon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_WIN_PATH + str(self.winstat.windows_app_name) + ".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_WIN_PATH + str(self.winstat.windows_app_name) + ".jpg")):
            self.ui.winicon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_WIN_PATH + str(self.winstat.windows_app_name) + ".jpg"))
        else:
            self.ui.winicon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_WIN_PATH + "default.png"))
        self.ui.winname.setText(self.winstat.windows_app_name)
        self.ui.wintext.setText(self.winstat.display_name_windows)
        self.ui.winbake.setText(self.winstat.category)

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq' or self.winstat.app_name == 'ppstream'):
                if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.winstat.app_name) + ".png")):
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.winstat.app_name) + ".png"))
                elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.winstat.app_name) + ".jpg")):
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.winstat.app_name) + ".jpg"))
                elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + str(self.winstat.app_name) + ".png")):
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + str(self.winstat.app_name) + ".png"))
                elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + str(self.winstat.app_name) + ".jpg")):
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + str(self.winstat.app_name) + ".jpg"))
                else:
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + "default.png"))
        else:
            if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png")):
                self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png"))
            elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg")):
                self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg"))
            elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + str(self.app.name) + ".png")):
                    self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + str(self.app.name) + ".png"))
            elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + str(self.app.name) + ".jpg")):
                self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + str(self.app.name) + ".jpg"))
            else:
                self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + "default.png"))

        # self.ui.baseWidget.setStyleSheet("QWidget{border:0px;}")
        self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.named.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.size.setStyleSheet("QLabel{font-size:13px;color:#888888;}")
        self.ui.description.setStyleSheet("QTextEdit{border:0px;font-size:13px;color:#888888;}")

        # letter spacing
        font = QFont()
        font.setLetterSpacing(QFont.PercentageSpacing, 90.0)
        self.ui.name.setFont(font)
        self.ui.description.setFont(font)
        if self.app is None:
            if (self.winstat.app_name == 'wine-qq' or self.winstat.app_name == 'ppstream'):
                if(len(self.winstat.app_name) > 20):
                    font2 = QFont()
                    font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
                    self.ui.name.setFont(font2)
                    self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;}")
                if(len(self.winstat.app_name) > 24):
                    font2 = QFont()
                    font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
                    self.ui.name.setFont(font2)
                    self.ui.name.setStyleSheet("QLabel{font-size:12px;font-weight:bold;}")
        else:
            if(len(self.app.displayname) > 20):
                font2 = QFont()
                font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
                self.ui.name.setFont(font2)
                self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;}")
            if(len(self.app.displayname) > 24):
                font2 = QFont()
                font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
                self.ui.name.setFont(font2)
                self.ui.name.setStyleSheet("QLabel{font-size:12px;font-weight:bold;}")

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq' or self.winstat.app_name == 'ppstream'):
                self.ui.size.setText("")
                self.ui.name.setText(self.winstat.app_name)
                self.ui.named.setText(self.winstat.app_name)
                self.ui.description.setText(self.winstat.app_name)
        else:
            # convert size
            installedsize = self.app.installedSize
            installedsizek = installedsize / 1024
            if(installedsizek < 1024):
                self.ui.size.setText(str(installedsizek) + " KB")
            else:
                self.ui.size.setText(str('%.2f'%(installedsizek/1024.0)) + " MB")
            self.ui.name.setText(self.app.displayname)
            self.ui.named.setText(self.app.displayname)
            self.ui.description.setText(self.app.description)

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq' or self.winstat.app_name == 'ppstream'):
                self.ui.btn.setText("安装")
                self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/wincard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/wincard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/wincard-install-btn-3.png');}")
                self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")
            else:
                self.ui.btn.setText("无效")
        else:
            if(self.app.is_installed):
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/wincard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/wincard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/wincard-un-btn-3.png');}")
                    self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-un-border.png');}")
                    self.ui.btn.setEnabled(False)
                else:
                    self.ui.btn.setText("启动")
                    self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/wincard-run-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/wincard-run-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/wincard-run-btn-3.png');}")
                    self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-run-border.png');}")
            else:
                self.ui.btn.setText("安装")
                self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/wincard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/wincard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/wincard-install-btn-3.png');}")
                self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
    def __init__(self, app, nowpage, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()

        self.app = app
        self.workType = nowpage

        self.switchTimer = QTimer(self)
        self.switchTimer.timeout.connect(self.slot_switch_animation_step)

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)

        self.ui.btnDetail.setCursor(Qt.PointingHandCursor)

        self.ui.description.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

        # self.ui.baseWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.baseWidget.setPalette(palette)

        self.ui.baseWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/ncard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.baseWidget.setPalette(palette)

        # self.ui.detailWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.detailWidget.setPalette(palette)

        self.ui.detailWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/ncard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.detailWidget.setPalette(palette)

        palette = QPalette()
        palette.setBrush(QPalette.Base, QBrush(QColor(255,0,0,0)))
        self.ui.description.setPalette(palette)

        # component shadow
        # shadowe = QGraphicsDropShadowEffect(self)
        # shadowe.setOffset(-2, 2)    # direction
        # shadowe.setColor(Qt.gray)
        # shadowe.setBlurRadius(4)
        # self.setGraphicsEffect(shadowe)

        if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + app.name+".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + app.name+".jpg"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".png")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".jpg")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".jpg"))
        else:
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + "default.png"))

        # self.ui.baseWidget.setStyleSheet("QWidget{border:0px;}")
        self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.named.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.size.setStyleSheet("QLabel{font-size:13px;color:#888888;}")
        self.ui.description.setStyleSheet("QTextEdit{border:0px;font-size:13px;color:#888888;}")

        # letter spacing
        font = QFont()
        font.setLetterSpacing(QFont.PercentageSpacing, 90.0)
        self.ui.name.setFont(font)
        self.ui.description.setFont(font)
        if(len(self.app.displayname) > 20):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.name.setFont(font2)
            self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;}")
        if(len(self.app.displayname) > 24):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.name.setFont(font2)
            self.ui.name.setStyleSheet("QLabel{font-size:12px;font-weight:bold;}")

        # convert size
        installedsize = self.app.installedSize
        installedsizek = installedsize / 1024
        if(installedsizek < 1024):
            self.ui.size.setText(str(installedsizek) + " KB")
        else:
            self.ui.size.setText(str('%.2f'%(installedsizek/1024.0)) + " MB")

        self.ui.name.setText(self.app.displayname)
        self.ui.named.setText(self.app.displayname)
        self.ui.description.setText(self.app.summary)

        # rating star
        star = StarWidget("small", self.app.ratings_average, self.ui.baseWidget)
        star.move(75, 56)

        # btn & border
        if(nowpage == 'allpage'):
            if(app.is_installed):
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setEnabled(False)
                    self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}")
                    self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                else:
                    self.ui.btn.setText("启动")
                    self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-run-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-run-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-run-btn-3.png');}")
                    self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}")
            else:
                self.ui.btn.setText("安装")
                self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-install-btn-3.png');}")
                self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")
        elif(nowpage == 'uppage'):
            self.ui.btn.setText("升级")
            self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-up-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-up-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-up-btn-3.png');}")
            self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-up-border.png');}")
        elif(nowpage == 'unpage'):
            self.ui.btn.setText("卸载")
            self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}")
            self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
        elif(nowpage == 'searchpage'):
            self.ui.btn.setText("查看详情")
            self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-install-btn-3.png');}")
            self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
Exemple #19
0
    def __init__(self, app, messageBox, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()

        self.app = app
        self.messageBox = messageBox

        self.switchTimer = QTimer(self)
        self.switchTimer.timeout.connect(self.slot_switch_animation_step)

        # add by kobe: delay show animation
        self.showDelay = False
        self.delayTimer = QTimer(self)
        self.delayTimer.timeout.connect(self.slot_show_delay_animation)

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)

        self.ui.btnDetail.setCursor(Qt.PointingHandCursor)

        self.ui.description.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.ui.description.setReadOnly(True)

        self.ui.baseWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/ncard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.baseWidget.setPalette(palette)

        self.ui.detailWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/ncard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        self.ui.detailWidget.setPalette(palette)

        palette = QPalette()
        palette.setBrush(QPalette.Base, QBrush(QColor(255, 0, 0, 0)))
        self.ui.description.setPalette(palette)

        iconpath = commontools.get_icon_path(self.app.name)
        self.ui.icon.setStyleSheet("QLabel{background-image:url('" + iconpath +
                                   "');background-color:transparent;}")

        # self.ui.baseWidget.setStyleSheet("QWidget{border:0px;}")
        self.ui.name.setStyleSheet(
            "QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.named.setStyleSheet(
            "QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.size.setStyleSheet("QLabel{font-size:13px;color:#888888;}")
        self.ui.description.setStyleSheet(
            "QTextEdit{border:0px;font-size:13px;color:#888888;}")

        # letter spacing
        font = QFont()
        font.setLetterSpacing(QFont.PercentageSpacing, 90.0)
        self.ui.name.setFont(font)
        self.ui.description.setFont(font)
        if (len(self.app.displayname) > 20):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.name.setFont(font2)
            self.ui.name.setStyleSheet(
                "QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        if (len(self.app.displayname) > 24):
            font2 = QFont()
            font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
            self.ui.name.setFont(font2)
            self.ui.name.setStyleSheet(
                "QLabel{font-size:12px;font-weight:bold;color:#666666;}")

        # convert size
        # installedsize = self.app.installedSize
        installedsize = self.app.packageSize
        installedsizek = installedsize / 1024
        if (installedsizek == 0):
            self.ui.size.setText("未知")
        elif (installedsizek < 1024):
            self.ui.size.setText(str('%.1f' % installedsizek) + " KB")
        else:
            self.ui.size.setText(
                str('%.2f' % (installedsizek / 1024.0)) + " MB")

        # self.ui.name.setText(self.app.displayname)
        # self.ui.named.setText(self.app.displayname)
        # add by kobe
        if self.app.displayname_cn != '' and self.app.displayname_cn is not None and self.app.displayname_cn != 'None':
            setLongTextToElideFormat(self.ui.name, self.app.displayname_cn)
            setLongTextToElideFormat(self.ui.named, self.app.displayname_cn)
        else:
            setLongTextToElideFormat(self.ui.name, self.app.displayname)
            setLongTextToElideFormat(self.ui.named, self.app.displayname)

        if self.app.summary is not None and self.app.summary != 'None' and self.app.summary != '':
            self.ui.description.setText(self.app.summary)
        else:
            self.ui.description.setText(self.app.orig_summary)

        # rating star
        star = StarWidget("small", self.app.ratings_average,
                          self.ui.baseWidget)
        star.move(75, 56)

        # btn & border
        if (app.is_installed):
            if (run.get_run_command(self.app.name) == ""):
                self.app.status = PkgStates.NORUN
                self.ui.btn.setText("已安装")
                self.ui.btn.setEnabled(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}"
                )
                self.ui.btnDetail.setStyleSheet(
                    "QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}"
                )
            else:
                self.app.status = PkgStates.RUN
                self.ui.btn.setText("启动")
                self.ui.btn.setEnabled(True)
                self.ui.btn.setStyleSheet(
                    "QPushButton{color:white;border:0px;background-image:url('res/ncard-run-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-run-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-run-btn-3.png');}"
                )
                self.ui.btnDetail.setStyleSheet(
                    "QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}"
                )
        else:
            self.app.status = PkgStates.INSTALL
            self.ui.btn.setText("安装")
            self.ui.btn.setEnabled(True)
            self.ui.btn.setStyleSheet(
                "QPushButton{color:white;border:0px;background-image:url('res/ncard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-install-btn-3.png');}"
            )
            self.ui.btnDetail.setStyleSheet(
                "QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}"
            )

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
    def __init__(self, app, messageBox, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()
        self.app = app
        self.messageBox = messageBox

        self.switchTimer = QTimer(self)
        # self.switchTimer.timeout.connect(self.slot_switch_animation_step)

        # add by kobe: delay show animation
        self.showDelay = False
        # self.delayTimer = QTimer(self)
        # self.delayTimer.timeout.connect(self.slot_show_delay_animation)

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-color:transparent;}")

        # self.ui.btnDetail.setCursor(Qt.PointingHandCursor)

        # self.ui.description.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        # self.ui.description.setReadOnly(True)

        # self.ui.baseWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.baseWidget.setPalette(palette)

        self.ui.baseWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # img = QPixmap("res/ncard-base.png")
        # palette.setBrush(QPalette.Window, QBrush(img))
        # self.ui.baseWidget.setPalette(palette)

        # self.ui.detailWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.detailWidget.setPalette(palette)

        # self.ui.detailWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # img = QPixmap("res/ncard-base.png")
        # palette.setBrush(QPalette.Window, QBrush(img))
        # self.ui.detailWidget.setPalette(palette)

        # palette = QPalette()
        # palette.setBrush(QPalette.Base, QBrush(QColor(255,0,0,0)))
        # self.ui.description.setPalette(palette)

        # component shadow
        # shadowe = QGraphicsDropShadowEffect(self)
        # shadowe.setOffset(-2, 2)    # direction
        # shadowe.setColor(Qt.gray)
        # shadowe.setBlurRadius(4)
        # self.setGraphicsEffect(shadowe)

        iconpath = commontools.get_icon_path(self.app.name)
        self.ui.icon.setStyleSheet("QLabel{background-image:url('" + iconpath + "');background-color:transparent;}")
        self.ui.progressBar_icon.setStyleSheet("QLabel{background-color:transparent;background-image:url('" + iconpath + "')}")
        self.ui.baseWidget.setStyleSheet(".QWidget{border:1px solid #e5e5e5;background-color:#ffffff;}.QWidget:hover{border:1px solid #2d8ae1}")

        # self.ui.baseWidget.setStyleSheet("QWidget{border:0px;}")
        self.ui.name.setStyleSheet("QLabel{font-size:14px;color:#000000;background-color:transparent;}")
        # self.ui.progressBarname.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;background:transparent;}")
        # self.ui.named.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.size.setStyleSheet("QLabel{font-size:13px;color:#888888;background-color:transparent;}")
        self.ui.progresslabel.setStyleSheet("QLabel{font-size:13px;color:#888888;background-color:transparent;}")
        # self.ui.isInstalled.setStyleSheet("QLabel{font-size:13px;color:#888888;}")
        # self.ui.description.setStyleSheet("QTextEdit{border:0px;font-size:13px;color:#888888;}")

        # letter spacing
        # font = QFont()
        # font.setLetterSpacing(QFont.PercentageSpacing, 90.0)
        # self.ui.name.setFont(font)
        # self.ui.description.setFont(font)
        # if(len(self.app.displayname) > 20):
        #     font2 = QFont()
        #     font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
        #     self.ui.name.setFont(font2)
        #     self.ui.name.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        # if(len(self.app.displayname) > 24):
        #     font2 = QFont()
        #     font2.setLetterSpacing(QFont.PercentageSpacing, 80.0)
        #     self.ui.name.setFont(font2)
        #     self.ui.name.setStyleSheet("QLabel{font-size:12px;font-weight:bold;color:#666666;}")

        # convert size
        # installedsize = self.app.installedSize
        installedsize = self.app.packageSize
        installedsizek = installedsize / 1024
        if(installedsizek == 0):
            self.ui.size.setText("未知")
        elif(installedsizek < 1024):
            self.ui.size.setText(str('%.1f'%installedsizek) + " KB")
        else:
            self.ui.size.setText(str('%.2f'%(installedsizek/1024.0)) + " MB")

        # self.ui.name.setText(self.app.displayname)
        # self.ui.named.setText(self.app.displayname)
        # add by kobe
        if self.app.displayname_cn != '' and self.app.displayname_cn is not None and self.app.displayname_cn != 'None':
            setLongTextToElideFormat(self.ui.name, self.app.displayname_cn)
            # setLongTextToElideFormat(self.ui.progressBarname, self.app.displayname_cn)
            # setLongTextToElideFormat(self.ui.named, self.app.displayname_cn)
        else:
            setLongTextToElideFormat(self.ui.name, self.app.displayname)
            # setLongTextToElideFormat(self.ui.progressBarname, self.app.displayname)
            # setLongTextToElideFormat(self.ui.named, self.app.displayname)
        # if self.app.summary is not None and self.app.summary != 'None' and self.app.summary != '':
            # self.ui.description.setText(self.app.summary)
        # else:
        #     self.ui.description.setText(self.app.orig_summary)

        # rating star
        # self.star = StarWidget("small", self.app.ratings_average, self.ui.baseWidget)
        # self.star.move(75, 56)

        # add by kobe
        # self.ui.isInstalled.setText("已安装")
        if self.app.status in (PkgStates.INSTALLING, PkgStates.REMOVING, PkgStates.UPGRADING):
            # self.star.hide()
            self.ui.progressBar.setVisible(True)
            self.ui.progresslabel.setVisible(True)
            self.ui.progressBar_icon.setVisible(True)
            self.ui.progressBar.setValue(self.app.percent)
            self.ui.progressBarsmall.setValue(self.app.percent)
            self.ui.progresslabel.setText(str('%.0f' % self.app.percent) + '%')

        if self.app.status == PkgStates.INSTALLING:
            self.ui.btn.setEnabled(False)
            # if self.app.percent > 0:
            #     self.ui.btn.setText("正在安装")
            # else:
            #     self.ui.btn.setText("等待安装")
            self.ui.progressBar.setQPushButtonStyleSheet("QProgressBar{background-color:#ffffff;border:0px;border-radius:0px;}"
                                             "QProgressBar:chunk{background-color:#d5e8f9;}")
            self.ui.progressBarsmall.setStyleSheet("QProgressBar{background-color:#e5e5e5;border:0px;border-radius:0px;}"
                                             "QProgressBar:chunk{background-color:#2d8ae1;}")
            self.ui.progresslabel.setStyleSheet("QLabel{font-size:12px;color:#2d8ae1;background-color:transparent;}")
            # self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-install-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-install-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-install-btn-3.png');}")
            # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")
        elif self.app.status == PkgStates.REMOVING:
            self.ui.btn.setEnabled(False)
            # if self.app.percent > 0:
            #     self.ui.btn.setText("正在卸载")
            # else:
            #     self.ui.btn.setText("等待卸载")
            self.ui.progressBar.setStyleSheet("QProgressBar{background-color:#ffffff;border:0px;border-radius:0px;}"
                                                  "QProgressBar:chunk{background-color:#ffe0d6;}")
            self.ui.progressBarsmall.setStyleSheet("QProgressBar{background-color:#e5e5e5;border:0px;border-radius:0px;}"
                                                  "QProgressBar:chunk{background-color:#e95421;}")
            self.ui.progresslabel.setStyleSheet("QLabel{font-size:12px;color:#e95421;background-color:transparent;}")
            # self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-un-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-un-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-un-btn-3.png');}")
            # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")

        elif self.app.status == PkgStates.UPGRADING:
            self.ui.btn.setEnabled(False)
            # if self.app.percent > 0:
            #     self.ui.btn.setText("正在升级")
            # else:
            #     self.ui.btn.setText("等待升级")
            self.ui.progressBar.setStyleSheet("QProgressBar{background-color:#ffffff;border:0px;border-radius:0px;}"
                                                  "QProgressBar:chunk{background-color:#d1f8d1;}")
            self.ui.progressBarsmall.setStyleSheet("QProgressBar{background-color:#e5e5e5;border:0px;border-radius:0px;}"
                                                  "QProgressBar:chunk{background-color:#07c30b;}")
            self.ui.progresslabel.setStyleSheet("QLabel{font-size:12px;color:#07c30b;background-color:transparent;}")
            # self.ui.btn.setStyleSheet("QPushButton{color:white;border:0px;background-image:url('res/ncard-up-btn-1.png');}QPushButton:hover{border:0px;background-image:url('res/ncard-up-btn-2.png');}QPushButton:pressed{border:0px;background-image:url('res/ncard-up-btn-3.png');}")
            # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-up-border.png');}")

        elif(self.app.is_installed):
            # add by kobe
            # self.star.hide()
            # self.ui.isInstalled.setVisible(True)

            if(run.get_run_command(self.app.name) == ""):
                self.app.status = PkgStates.NORUN
                self.ui.btn.setText("已安装")
                self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}")
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
                self.ui.btn.setEnabled(False)
            else:
                self.app.status = PkgStates.RUN
                self.ui.btn.setText("启动")
                self.ui.btn.setEnabled(True)
                self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-run-border.png');}")
        else:
            # star = StarWidget("small", self.app.ratings_average, self.ui.baseWidget)
            # star.move(75, 56)
            # init app.status
            self.app.status = PkgStates.INSTALL
            # self.star.show()
            # self.ui.isInstalled.setVisible(False)
            self.ui.btn.setText("安装")
            self.ui.btn.setEnabled(True)
            self.ui.btn.setStyleSheet("QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}")
            # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-install-border.png');}")

        if isinstance(self.app, ApkInfo):
            if not Globals.APK_EVNRUN:
                self.ui.btn.setText("启动安卓环境")
        self.connect = self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
Exemple #21
0
    def __init__(self, winstat, app, messageBox, parent=None):
        QWidget.__init__(self, parent)
        self.ui_init()
        self.winstat = winstat
        self.app = app
        self.messageBox = messageBox

        self.switchTimer = QTimer(self)
        # self.switchTimer.timeout.connect(self.slot_switch_animation_step)

        # add by kobe: delay show animation
        self.showDelay = False
        self.delayTimer = QTimer(self)
        # self.delayTimer.timeout.connect(self.slot_show_delay_animation)

        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setStyleSheet(
            "QPushButton{border:0px;background-color:transparent;}")

        # self.ui.btnDetail.setCursor(Qt.PointingHandCursor)

        # self.ui.description.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        # self.ui.description.setReadOnly(True)

        # self.ui.baseWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.baseWidget.setPalette(palette)

        self.ui.baseWidget.setAutoFillBackground(True)
        self.ui.baseWidget.setStyleSheet(
            ".QWidget{border:1px solid #e5e5e5;background-color:#ffffff;}.QWidget:hover{border:1px solid #2d8ae1}"
        )

        # self.ui.detailWidget.setAutoFillBackground(True)
        # palette = QPalette()
        # palette.setColor(QPalette.Background, QColor(245, 248, 250))
        # self.ui.detailWidget.setPalette(palette)

        # self.ui.detailWidget.setAutoFillBackground(True)
        palette = QPalette()
        img = QPixmap("res/wincard-base.png")
        palette.setBrush(QPalette.Window, QBrush(img))
        # self.ui.detailWidget.setPalette(palette)

        palette = QPalette()
        palette.setBrush(QPalette.Base, QBrush(QColor(255, 0, 0, 0)))
        # self.ui.description.setPalette(palette)

        img = QPixmap("res/arrowhead.png")
        self.ui.arronicon.setPixmap(img)
        self.ui.arronicon.setStyleSheet(
            "QLabel{background-color:transparent;}")
        self.ui.winname.setStyleSheet(
            "QLabel{font-size:13px;font-weight:bold;color:#666666;background-color:transparent;}"
        )
        # self.ui.wintext.setStyleSheet("QLabel{font-size:13px;color:#888888;}")
        self.ui.winbake.setStyleSheet(
            "QLabel{font-size:13px;color:#888888;background-color:transparent;}"
        )
        self.ui.name.setStyleSheet(
            "QLabel{font-size:13px;font-weight:bold;color:#666666;background-color:transparent;}"
        )
        # self.ui.named.setStyleSheet("QLabel{font-size:13px;font-weight:bold;color:#666666;}")
        self.ui.size.setStyleSheet(
            "QLabel{font-size:13px;color:#888888;background-color:transparent;}"
        )
        # self.ui.description.setStyleSheet("QTextEdit{border:0px;font-size:13px;color:#888888;}")

        # win frame
        if (os.path.isfile(UBUNTUKYLIN_HTTP_WIN_RES_PATH +
                           str(self.winstat.windows_app_name) + ".png")):
            self.ui.winicon.setStyleSheet(
                ITEM_LABEL_STYLE %
                (UBUNTUKYLIN_HTTP_WIN_RES_PATH +
                 str(self.winstat.windows_app_name) + ".png"))
        elif (os.path.isfile(UBUNTUKYLIN_HTTP_WIN_RES_PATH +
                             str(self.winstat.windows_app_name) + ".jpg")):
            self.ui.winicon.setStyleSheet(
                ITEM_LABEL_STYLE %
                (UBUNTUKYLIN_HTTP_WIN_RES_PATH +
                 str(self.winstat.windows_app_name) + ".jpg"))
        elif (os.path.isfile(UBUNTUKYLIN_RES_WIN_PATH +
                             str(self.winstat.windows_app_name) + ".png")):
            self.ui.winicon.setStyleSheet(
                ITEM_LABEL_STYLE %
                (UBUNTUKYLIN_RES_WIN_PATH +
                 str(self.winstat.windows_app_name) + ".png"))
        elif (os.path.isfile(UBUNTUKYLIN_RES_WIN_PATH +
                             str(self.winstat.windows_app_name) + ".jpg")):
            self.ui.winicon.setStyleSheet(
                ITEM_LABEL_STYLE %
                (UBUNTUKYLIN_RES_WIN_PATH +
                 str(self.winstat.windows_app_name) + ".jpg"))
        else:
            self.ui.winicon.setStyleSheet(
                ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_WIN_PATH + "default.png"))

        # add by kobe
        #setLongTextToElideFormat(self.ui.winname, self.winstat.windows_app_name)
        #setLongTextToElideFormat(self.ui.wintext, self.winstat.display_name_windows)
        setLongTextToElideFormat(self.ui.winname,
                                 self.winstat.display_name_windows)
        # setLongTextToElideFormat(self.ui.wintext, self.winstat.windows_app_name)
        setLongTextToElideFormat(self.ui.winbake, self.winstat.category)
        # metrics = QFontMetrics(self.ui.winname.font())
        # elidedText = metrics.elidedText(self.winstat.windows_app_name, Qt.ElideRight, self.ui.winname.width())
        # self.ui.winname.setText(elidedText)

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq'
                    or self.winstat.app_name == 'ppstream'):
                iconpath = commontools.get_icon_path(self.winstat.app_name)
                self.ui.icon.setStyleSheet("QLabel{background-image:url('" +
                                           iconpath +
                                           "');background-color:transparent;}")
        else:
            iconpath = commontools.get_icon_path(self.app.name)
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" +
                                       iconpath +
                                       "');background-color:transparent;}")

        # self.ui.baseWidget.setStyleSheet("QWidget{border:0px;}")
        # self.ui.homeline1.setStyleSheet("QLabel{background-color:#CCCCCC;}")

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq'
                    or self.winstat.app_name == 'ppstream'):
                self.ui.size.setText("")
                # self.ui.name.setText(self.winstat.app_name)
                # self.ui.named.setText(self.winstat.app_name)
                setLongTextToElideFormat(self.ui.name, self.winstat.app_name)
                # setLongTextToElideFormat(self.ui.named, self.winstat.app_name)
                # self.ui.description.setText(self.winstat.description)
        else:
            # convert size
            # installedsize = self.app.installedSize
            installedsize = self.app.installedSize
            if installedsize == 0:
                installedsize = app.packageSize
            installedsizek = installedsize / 1024
            if (installedsizek == 0):
                #self.ui.size.setText("未知")
                self.ui.size.setText(_("unknown"))
            elif (installedsizek < 1024):
                self.ui.size.setText(str('%.1f' % installedsizek) + " KB")
            else:
                self.ui.size.setText(
                    str('%.2f' % (installedsizek / 1024.0)) + " MB")

            # add by kobe
            if self.app.displayname_cn != '' and self.app.displayname_cn is not None and self.app.displayname_cn != 'None':
                setLongTextToElideFormat(self.ui.name, self.app.displayname_cn)
                # setLongTextToElideFormat(self.ui.named, self.app.displayname_cn)
            else:
                setLongTextToElideFormat(self.ui.name, self.app.displayname)
                # setLongTextToElideFormat(self.ui.named, self.app.displayname)
            # if self.app.summary is not None and self.app.summary != 'None' and self.app.summary != '':
            # self.ui.description.setText(self.app.summary)
            # else:
            #     self.ui.description.setText(self.app.orig_summary)

        if self.app is None:
            if (self.winstat.app_name == 'wine-qq'
                    or self.winstat.app_name == 'ppstream'):
                #self.ui.btn.setText("安装")
                self.ui.btn.setText(_("Install"))
                self.ui.btn.setEnabled(True)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                )
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")
            else:
                #self.ui.btn.setText("无效")
                self.ui.btn.setText(_("invalid"))
                self.ui.btn.setEnabled(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:0px;background-color:#ffffff;}"
                )
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/ncard-un-border.png');}")
        else:
            if app.status == PkgStates.INSTALLING:
                self.ui.btn.setEnabled(False)
                # self.ui.btn.setText("正在安装")
                self.ui.btn.setText(_("Installing"))
                # self.ui.isInstalled.setVisible(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                )
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")
            elif app.status == PkgStates.REMOVING:
                self.ui.btn.setEnabled(False)
                #self.ui.btn.setText("正在卸载")
                self.ui.btn.setText(_("Uninstalling"))
                # self.ui.isInstalled.setVisible(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#e95421;}"
                )
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-un-border.png');}")
            elif app.status == PkgStates.UPGRADING:
                self.ui.btn.setEnabled(False)
                #self.ui.btn.setText("正在升级")
                self.ui.btn.setText(_("upgrading"))
                # self.ui.isInstalled.setVisible(False)
                self.ui.btn.setStyleSheet(
                    "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#07c30b;}"
                )
                # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-up-border.png');}")
            else:
                if (self.app.is_installed):
                    if (run.get_run_command(self.app.name) == ""):
                        self.app.status = PkgStates.NORUN
                        #self.ui.btn.setText("已安装")
                        self.ui.btn.setText(_("Aldy install"))
                        self.ui.btn.setEnabled(False)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:12px;color:#000000;border:0px;background-color:#ffffff;}"
                        )
                        # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-un-border.png');}")
                    else:
                        self.app.status = PkgStates.RUN
                        #self.ui.btn.setText("启动")
                        self.ui.btn.setText(_("Start"))
                        self.ui.btn.setEnabled(True)
                        self.ui.btn.setStyleSheet(
                            "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                        )
                        # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-run-border.png');}")
                else:
                    self.app.status = PkgStates.INSTALL
                    #self.ui.btn.setText("安装")
                    self.ui.btn.setText(_("Install"))
                    self.ui.btn.setEnabled(True)
                    self.ui.btn.setStyleSheet(
                        "QPushButton{font-size:12px;color:#000000;border:1px solid #d5d5d5;background-color:#ffffff;}QPushButton:hover{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}QPushButton:pressed{font-size:12px;color:#ffffff;border:1px solid #d5d5d5;background-color:#2d8ae1;}"
                    )
                    # self.ui.btnDetail.setStyleSheet("QPushButton{border:0px;background-image:url('res/wincard-install-border.png');}")

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
    def __init__(self, app, nowpage, parent=None):
        QWidget.__init__(self,parent)
        self.ui_init()
        self.app = app
        self.workType = nowpage
        self.parent = parent

        self.ui.size.setAlignment(Qt.AlignRight)
        self.ui.installedsize.setAlignment(Qt.AlignRight)
        self.ui.size.setStyleSheet("QLabel{font-size:13px;}")
        self.ui.installedsize.setStyleSheet("QLabel{font-size:13px;}")
        self.ui.rating.setStyleSheet("QLabel{font-size:13px;color:#FF7D15;}")
        self.ui.ratingtext.setStyleSheet("QLabel{font-size:13px;}")
        self.ui.btn.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setFocusPolicy(Qt.NoFocus)
        self.ui.btnDetail.setText("详情")
        self.ui.btnDetail.hide()


        if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + app.name+".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_ICON_PATH + app.name+".jpg"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".png")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".png"))
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".jpg")):
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + app.name+".jpg"))
        else:
            self.ui.icon.setStyleSheet(ITEM_LABEL_STYLE % (UBUNTUKYLIN_RES_TMPICON_PATH + "default.png"))
        self.ui.btnDetail.setStyleSheet(RECOMMEND_BUTTON_STYLE %(UBUNTUKYLIN_RES_PATH+"btn6-1.png",UBUNTUKYLIN_RES_PATH+"btn6-2.png",UBUNTUKYLIN_RES_PATH+"btn6-3.png"))
        self.ui.name.setStyleSheet("QLabel{font-size:14px;font-weight:bold;}")
        self.ui.descr.setStyleSheet("QLabel{font-size:13px;color:#7E8B97;}")
        self.ui.installedVersion.setStyleSheet("QLabel{font-size:13px;}")
        self.ui.candidateVersion.setStyleSheet("QLabel{font-size:13px;color:#FF7D15;}")
        self.ui.btn.setStyleSheet(LIST_BUTTON_STYLE % (UBUNTUKYLIN_RES_PATH+"btn-small2-1.png",UBUNTUKYLIN_RES_PATH+"btn-small2-2.png",UBUNTUKYLIN_RES_PATH+"btn-small2-3.png") )

        self.ui.name.setText(app.name)
        summ = app.summary
        # if len(summ) > 31:
        #     summ = summ[:30]
        #     summ += "..."
        self.ui.descr.setText(summ)

        # size = app.packageSize
        # sizek = size / 1024
        # if(sizek < 1024):
        #     self.ui.size.setText(str(sizek) + " KB")
        # else:
        #     self.ui.size.setText(str('%.2f'%(sizek/1024.0)) + " MB")
        self.ui.size.setAlignment(Qt.AlignCenter)
        self.ui.size.setText("安装后:")

#        print "########item size:",app.name,app.packageSize,app.installedSize
        installedsize = app.installedSize
        installedsizek = installedsize / 1024
        if(installedsizek < 1024):
            self.ui.installedsize.setText(str(installedsizek) + " KB")
        else:
            self.ui.installedsize.setText(str('%.2f'%(installedsizek/1024.0)) + " MB")

        #????放置平均得分和评论人数
 #       print "ListItemWidget: ", self.app.name, self.app.rnrStat
 #        if app.rnrStat is not None:
 #            ratings_average = app.rnrStat.ratings_average
 #            ratings_total = app.rnrStat.ratings_total
 #            print "评分评论:",app.name, ratings_average, ratings_total

        self.ui.candidateVersion.setText("最新: " + app.candidate_version)
        # self.ui.candidateVersion.setText("<font color='#FF7D15'>最新: " + software.candidate_version + "</font>")

        self.star = StarWidget('small', app.ratings_average, self)
        self.star.move(508, 17)
        ratingstr = str(app.ratings_average)
        if(len(ratingstr) > 3):
            ratingstr = ratingstr[0:3]
        self.ui.rating.setText(ratingstr)
        self.ui.ratingtext.setText('分')

        if(nowpage == 'homepage'):
            self.ui.btn.setVisible(True)
            if(app.is_installed):
                self.ui.installedVersion.setText("已装: " + app.installed_version)
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btn.setText("已安装")
                    self.ui.btn.setEnabled(False)
                else:
                    self.ui.btn.setText("启动")
            else:
                self.ui.btn.setText("安装")
                self.ui.installedVersion.setText("未安装")
        elif(nowpage == 'uppage'):
            self.ui.btn.setVisible(True)
            self.ui.btn.setText("升级")
            self.ui.installedVersion.setText("已装: " + app.installed_version)
        elif(nowpage == 'unpage'):
            self.ui.btn.setVisible(True)
            self.ui.btn.setText("卸载")
            self.ui.installedVersion.setText("已装: " + app.installed_version)
        elif(nowpage == 'searchpage'):
            self.ui.btn.setVisible(False)

        self.ui.btn.clicked.connect(self.slot_btn_click)
        self.ui.btnDetail.clicked.connect(self.slot_emit_detail)
        self.connect(self.parent,Signals.apt_process_finish,self.slot_work_finished)
        self.connect(self.parent,Signals.apt_process_cancel,self.slot_work_cancel)
    def slot_work_cancel(self, pkgname, action):
        if self.app is None:
            return

        if self.app.name == pkgname:

            self.ui.status.show()

            if action == AppActions.INSTALL:
                if self.app.is_upgradable:
                    self.ui.btnUpdate.setText("升级")#可
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnUpdate.setEnabled(True)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(False)
                    self.ui.btnUpdate.setVisible(True)
                    self.ui.btnUninstall.setVisible(False)
                else:
                    self.ui.btnUpdate.setText("不可升级")
                    self.ui.btnInstall.setText("安装")
                    self.ui.btnInstall.setEnabled(True)
                    self.ui.btnUpdate.setEnabled(False)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(True)
                    self.ui.btnUpdate.setVisible(False)
                    self.ui.btnUninstall.setVisible(False)

            elif action == AppActions.REMOVE:
                self.ui.btnUninstall.setText("卸载")#可
                self.ui.btnInstall.setEnabled(False)
                self.ui.btnUpdate.setEnabled(False)
                self.ui.btnUninstall.setEnabled(True)
                self.ui.btnInstall.setVisible(False)
                self.ui.btnUpdate.setVisible(False)
                self.ui.btnUninstall.setVisible(True)

            elif action == AppActions.UPGRADE:
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btnInstall.setText("已安装")
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnUpdate.setEnabled(False)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(True)
                    self.ui.btnUpdate.setVisible(False)
                    self.ui.btnUninstall.setVisible(False)
                else:
                    if self.app.is_upgradable:
                        self.ui.btnUpdate.setText("升级")#可
                        self.ui.btnInstall.setEnabled(False)
                        self.ui.btnUpdate.setEnabled(True)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(False)
                        self.ui.btnUpdate.setVisible(True)
                        self.ui.btnUninstall.setVisible(False)
                    else:
                        self.ui.btnInstall.setText("启动")
                        self.ui.btnUpdate.setText("不可升级")
                        self.ui.btnInstall.setEnabled(True)
                        self.ui.btnUpdate.setEnabled(False)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(True)
                        self.ui.btnUpdate.setVisible(False)
                        self.ui.btnUninstall.setVisible(False)
    def slot_work_finished(self, pkgname, action):
        #add this to prevent slot received from other signal before show_detail is not called
        if self.app is None:
            return

        if self.app.name == pkgname:

            self.ui.status.show()

            if action == AppActions.INSTALLDEBFILE:
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnInstall.setText("已安装")
                else:
                    self.ui.btnInstall.setEnabled(True)
                    self.ui.btnInstall.setText("启动")
                self.ui.btnUpdate.setEnabled(False)
                self.ui.btnUninstall.setEnabled(False)
                self.ui.btnInstall.setVisible(True)
                self.ui.btnUpdate.setVisible(False)
                self.ui.btnUninstall.setVisible(False)

            elif action == AppActions.INSTALL:
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btnInstall.setText("已安装")
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnUpdate.setEnabled(False)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(True)
                    self.ui.btnUpdate.setVisible(False)
                    self.ui.btnUninstall.setVisible(False)
                else:
                    self.ui.btnInstall.setVisible(True)
                    if self.app.is_upgradable:
                        self.ui.btnUpdate.setText("升级")#可
                        self.ui.btnInstall.setEnabled(False)
                        self.ui.btnUpdate.setEnabled(True)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(False)
                        self.ui.btnUpdate.setVisible(True)
                        self.ui.btnUninstall.setVisible(False)
                    else:
                        self.ui.btnInstall.setText("启动")
                        self.ui.btnUpdate.setText("不可升级")
                        self.ui.btnInstall.setEnabled(True)
                        self.ui.btnUpdate.setEnabled(False)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(True)
                        self.ui.btnUpdate.setVisible(False)
                        self.ui.btnUninstall.setVisible(False)

            elif action == AppActions.REMOVE:
                self.ui.btnInstall.setText("安装")
                self.ui.btnUpdate.setText("不可升级")
                self.ui.btnUninstall.setText("卸载")#已
                self.ui.btnInstall.setEnabled(False)
                self.ui.btnUpdate.setEnabled(False)
                self.ui.btnUninstall.setEnabled(True)
                self.ui.btnInstall.setVisible(False)
                self.ui.btnUpdate.setVisible(False)
                self.ui.btnUninstall.setVisible(True)

            elif action == AppActions.UPGRADE:
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btnInstall.setText("已安装")
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnUpdate.setEnabled(False)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(True)
                    self.ui.btnUpdate.setVisible(False)
                    self.ui.btnUninstall.setVisible(False)
                else:
                    if self.app.is_upgradable:
                        self.ui.btnUpdate.setText("升级")#可
                        self.ui.btnInstall.setEnabled(False)
                        self.ui.btnUpdate.setEnabled(True)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(False)
                        self.ui.btnUpdate.setVisible(True)
                        self.ui.btnUninstall.setVisible(False)
                    else:
                        self.ui.btnInstall.setText("启动")
                        self.ui.btnUpdate.setText("不可升级")
                        self.ui.btnInstall.setEnabled(True)
                        self.ui.btnUpdate.setEnabled(False)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(True)
                        self.ui.btnUpdate.setVisible(False)
                        self.ui.btnUninstall.setVisible(False)
    def showSimple(self, app, nowpage):
        # clear reviews
        self.reviewpage = 1
        self.currentreviewready = False
        self.ui.reviewListWidget.clear()
        # self.detailWidget.resize(805, 790)
        # self.ui.reviewListWidget.resize(805, 0)
        self.detailWidget.resize(860, 790)
        self.ui.reviewListWidget.resize(860, 0)
        self.reviewload.move(self.ui.reviewListWidget.x(), self.ui.reviewListWidget.y())
        # clear sshot
        self.sshotcount = 0
        self.ui.thumbnail.hide()

        self.app = app
        self.ui.name.setText(app.name)
        self.ui.installedVersion.setText("当前版本: " + app.installed_version)
        self.ui.candidateVersion.setText("最新版本: " + app.candidate_version)
        self.ui.summary.setText(app.summary)
        self.ui.description.setText(app.description)

        if(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".png")):
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" + UBUNTUKYLIN_RES_ICON_PATH + str(app.name) + ".png')}")
        elif(os.path.isfile(UBUNTUKYLIN_RES_ICON_PATH + str(self.app.name) + ".jpg")):
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" + UBUNTUKYLIN_RES_ICON_PATH + str(app.name) + ".jpg')}")
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name + ".png")):
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" + UBUNTUKYLIN_RES_TMPICON_PATH + str(app.name) + ".png')}")
        elif(os.path.isfile(UBUNTUKYLIN_RES_TMPICON_PATH + app.name + ".jpg")):
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" + UBUNTUKYLIN_RES_TMPICON_PATH + str(app.name) + ".jpg')}")
        else:
            self.ui.icon.setStyleSheet("QLabel{background-image:url('" + UBUNTUKYLIN_RES_ICON_PATH + "default.png')}")

        size = app.packageSize
        sizek = size / 1024
        if(sizek < 1024):
            self.ui.size.setText("下载大小: " + str(sizek) + " KB")
        else:
            self.ui.size.setText("下载大小: " + str('%.2f'%(sizek/1024.0)) + " MB")

        installedsize = app.installedSize
        installedsizek = installedsize / 1024
        if(installedsizek < 1024):
            self.ui.size_install.setText("安装大小: " + str(installedsizek) + " KB")
        else:
            self.ui.size_install.setText("安装大小: " + str('%.2f'%(installedsizek/1024.0)) + " MB")

        self.ui.gradeText1.setText("我的评分: ")
        # self.ui.gradeText2.setStyleSheet("QLabel{text-align:center;}")
        self.ui.gradeText2.setText((str(app.ratings_total)) + "人参加评分")
        # self.ui.commentNumber.setText("共 " + str(app.ratings_total) + " 条评论")
        # self.ui.gradeText3.setText("满分5分")
        # self.ui.grade.setStyleSheet("QLabel{text-align:center;}")
        self.ui.grade.setText(str(app.ratings_average))
        self.star = StarWidget('big', app.ratings_average, self.detailWidget)
        self.star.move(65, 665)
        self.star2 = StarWidget('big', app.ratings_average, self.detailWidget)
        self.star2.move(710, 653)

        if nowpage == "homepage" or nowpage == "winpage":
            if(app.is_installed):
                self.ui.status.setStyleSheet("QLabel{background-image:url('res/installed.png')}")
                self.ui.status.show()
                if(run.get_run_command(self.app.name) == ""):
                    self.ui.btnInstall.setEnabled(False)
                    self.ui.btnUpdate.setEnabled(False)
                    self.ui.btnUninstall.setEnabled(False)
                    self.ui.btnInstall.setVisible(True)
                    self.ui.btnUpdate.setVisible(False)
                    self.ui.btnUninstall.setVisible(False)
                    self.ui.btnInstall.setText("已安装")
                else:
                    if self.app.is_upgradable:
                        self.ui.btnUpdate.setText("升级")
                        self.ui.btnInstall.setEnabled(False)
                        self.ui.btnUpdate.setEnabled(True)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(False)
                        self.ui.btnUpdate.setVisible(True)
                        self.ui.btnUninstall.setVisible(False)
                    else:
                        self.ui.btnInstall.setText("启动")
                        self.ui.btnUpdate.setText("升级")
                        self.ui.btnInstall.setEnabled(True)
                        self.ui.btnUpdate.setEnabled(False)
                        self.ui.btnUninstall.setEnabled(False)
                        self.ui.btnInstall.setVisible(True)
                        self.ui.btnUpdate.setVisible(False)
                        self.ui.btnUninstall.setVisible(False)
            else:
                self.ui.status.hide()
                self.ui.btnInstall.setText("安装")
                self.ui.btnUpdate.setText("升级")
                self.ui.btnUninstall.setText("卸载")
                self.ui.btnInstall.setEnabled(True)
                self.ui.btnUpdate.setEnabled(False)
                self.ui.btnUninstall.setEnabled(False)
                self.ui.btnInstall.setVisible(True)
                self.ui.btnUpdate.setVisible(False)
                self.ui.btnUninstall.setVisible(False)
        elif nowpage == "allpage":
            self.ui.status.hide()
            self.ui.btnInstall.setText("安装")
            self.ui.btnUpdate.setText("升级")
            self.ui.btnUninstall.setText("卸载")
            self.ui.btnInstall.setEnabled(True)
            self.ui.btnUpdate.setEnabled(False)
            self.ui.btnUninstall.setEnabled(False)
            self.ui.btnInstall.setVisible(True)
            self.ui.btnUpdate.setVisible(False)
            self.ui.btnUninstall.setVisible(False)
        elif nowpage == "uppage":
            self.ui.status.hide()
            self.ui.btnInstall.setText("安装")
            self.ui.btnUpdate.setText("升级")
            self.ui.btnUninstall.setText("卸载")
            self.ui.btnInstall.setEnabled(False)
            self.ui.btnUpdate.setEnabled(True)
            self.ui.btnUninstall.setEnabled(False)
            self.ui.btnInstall.setVisible(False)
            self.ui.btnUpdate.setVisible(True)
            self.ui.btnUninstall.setVisible(False)
        elif nowpage == "unpage":
            self.ui.status.hide()
            self.ui.btnInstall.setText("安装")
            self.ui.btnUpdate.setText("升级")
            self.ui.btnUninstall.setText("卸载")
            self.ui.btnInstall.setEnabled(False)
            self.ui.btnUpdate.setEnabled(False)
            self.ui.btnUninstall.setEnabled(True)
            self.ui.btnInstall.setVisible(False)
            self.ui.btnUpdate.setVisible(False)
            self.ui.btnUninstall.setVisible(True)
        self.show()

        # show loading
        self.reviewload.start_loading()
        self.sshotload.start_loading()
        # send request
        self.mainwindow.appmgr.get_application_screenshots(app.name,UBUNTUKYLIN_RES_SCREENSHOT_PATH)
        self.mainwindow.appmgr.get_application_reviews(app.name)
Exemple #26
0
 def is_runnable(self):
     if (run.get_run_command(self.name) != ""):
         return True
     else:
         return False
    def refresh_btns(self, app):
        self.app = app
        y = 0
        if isinstance(app, DebFile):#for local deb file
            if app.is_installable:
                self.setBtnEnabledPlus(self.ui.btnInstall, True)
                self.setBtnEnabledPlus(self.ui.btnRun, False)
                self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                self.ui.btnInstall.move(0, y)
                self.ui.btnRun.move(0, y + 41)
                self.ui.btnUpdate.move(0, y + 82)
                self.ui.btnUninstall.move(0, y + 123)
            else:
                self.setBtnEnabledPlus(self.ui.btnInstall, False)
                self.setBtnEnabledPlus(self.ui.btnRun, False)
                self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                self.ui.btnInstall.move(0, y)
                self.ui.btnRun.move(0, y + 41)
                self.ui.btnUpdate.move(0, y + 82)
                self.ui.btnUninstall.move(0, y + 123)

        else:# for apt deb file
            if(Globals.NOWPAGE in (PageStates.HOMEPAGE,PageStates.ALLPAGE,PageStates.WINPAGE,PageStates.TRANSPAGE,PageStates.SEARCHHOMEPAGE,PageStates.SEARCHALLPAGE,PageStates.SEARCHWINPAGE,PageStates.SEARCHUAPAGE,PageStates.SEARCHTRANSPAGE,PageStates.APKPAGE,PageStates.SEARCHAPKPAGE)):#zx11.27
                # if(type == PkgStates.NORUN):
                if app.is_instelled and run.get_run_command(self.app.name) == "":
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)

                    if (isinstance(app,DebFile)):#check is local debfile or not for after click install
                        self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                        self.ui.btnRun.move(0, y + 41)
                        self.ui.btnUninstall.move(0, y)
                        self.ui.btnUpdate.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                    else:
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnRun.move(0, 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y)
                            self.ui.btnUninstall.move(0, y + 41)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnRun.move(0, y + 41)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 82)
                            self.ui.btnUninstall.move(0, y)
                elif app.is_instelled and run.get_run_command(self.app.name) != "":
                    self.setBtnEnabledPlus(self.ui.btnRun, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)

                    if (isinstance(app,DebFile)):#check is local debfile or not for after click install
                        self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                        self.ui.btnRun.move(0, y)
                        self.ui.btnUninstall.move(0, y + 41)
                        self.ui.btnUpdate.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                    else:
                        if app.is_upgradable:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnRun.move(0, y)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 41)
                            self.ui.btnUninstall.move(0, y + 82)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnRun.move(0, y)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 82)
                            self.ui.btnUninstall.move(0, y + 41)

                elif app.is_installed is False:
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                    self.ui.btnInstall.move(0, y)
                    self.ui.btnRun.move(0, y + 41)
                    self.ui.btnUpdate.move(0, y + 82)
                    self.ui.btnUninstall.move(0, y + 123)
                elif app.is_upgradable:#zx12.03 for update cancel in other page or app.status in listitemwedgt
                    if run.get_run_command(app.name) == "":
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        self.ui.btnRun.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnUninstall.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        self.ui.btnRun.move(0, y)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y + 41)
                        self.ui.btnUninstall.move(0, y + 82)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)

                elif app.is_installed:#zx12.06 for app.status in listitemwdge(just for homepage)
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y)
                            self.ui.btnUninstall.move(0, y + 41)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y)
                            self.ui.btnUninstall.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnRun.move(0, y)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 41)
                            self.ui.btnUninstall.move(0, y + 82)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnRun.move(0, y)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 82)
                            self.ui.btnUninstall.move(0, y + 41)

                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)

            elif(Globals.NOWPAGE == PageStates.UPPAGE or Globals.NOWPAGE == PageStates.SEARCHUPPAGE):
                if app.is_upgradable:
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnRun.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUninstall.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnRun.move(0, y + 41)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUninstall.move(0, y + 82)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                elif app.is_installed is False:
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.ui.btnUpdate.move(0, y + 41)
                    self.ui.btnRun.move(0, y + 123)
                    self.ui.btnInstall.move(0, y)
                    self.ui.btnUninstall.move(0, y + 82)
                elif app.is_instelled and run.get_run_command(self.app.name) == "":
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.ui.btnUpdate.move(0, y + 82)
                    self.ui.btnRun.move(0, y + 41)
                    self.ui.btnInstall.move(0, y + 123)
                    self.ui.btnUninstall.move(0, y)
                elif app.is_instelled and run.get_run_command(self.app.name) != "":
                    self.setBtnEnabledPlus(self.ui.btnRun, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.ui.btnUpdate.move(0, y + 82)
                    self.ui.btnRun.move(0, y)
                    self.ui.btnInstall.move(0, y + 123)
                    self.ui.btnUninstall.move(0, y + 41)

            elif(Globals.NOWPAGE == PageStates.UNPAGE or Globals.NOWPAGE == PageStates.SEARCHUNPAGE):
                if self.app.is_installed:
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnUpdate.move(0, y + 41)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUninstall.move(0, y)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnUpdate.move(0, y + 41)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUninstall.move(0, y)

                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnUpdate.move(0, y + 41)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUninstall.move(0, y)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnUpdate.move(0, y + 82)
                            self.ui.btnRun.move(0, y + 41)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUninstall.move(0, y)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)

                elif app.is_instelled is False:
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.ui.btnUpdate.move(0, y + 41)
                    self.ui.btnRun.move(0, y + 82)
                    self.ui.btnInstall.move(0, y)
                    self.ui.btnUninstall.move(0, y + 123)

                elif app.is_instelled and run.get_run_command(self.app.name) == "":
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.ui.btnUpdate.move(0, y + 41)
                    self.ui.btnRun.move(0, y + 82)
                    self.ui.btnInstall.move(0, y + 123)
                    self.ui.btnUninstall.move(0, y)
                elif app.is_instelled and run.get_run_command(self.app.name) != "":
                    self.setBtnEnabledPlus(self.ui.btnRun, True)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.ui.btnUpdate.move(0, y + 82)
                    self.ui.btnRun.move(0, y + 41)
                    self.ui.btnInstall.move(0, y + 123)
                    self.ui.btnUninstall.move(0, y)
                elif app.is_upgradable:#zx12.03 for update cancel in other page (why there isn't uninstall ,because uninstall can't be canceled)
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        self.ui.btnUninstall.move(0, y)
                        self.ui.btnRun.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.ui.btnUninstall.move(0, y)
                    self.ui.btnRun.move(0, y + 41)
                    self.ui.btnInstall.move(0, y + 123)
                    self.ui.btnUpdate.move(0, y + 82)

            elif(Globals.NOWPAGE == PageStates.UAPAGE): #zx.28 To keep the btn status change normally in UAPAGE
                if app.is_instelled and run.get_run_command(self.app.name) == "":
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    if app.is_upgradable is True:
                        self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                        self.ui.btnRun.move(0, 82)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnUninstall.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                        self.ui.btnRun.move(0, y + 41)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y + 82)
                        self.ui.btnUninstall.move(0, y)
                elif app.is_instelled and run.get_run_command(self.app.name) != "":
                    self.setBtnEnabledPlus(self.ui.btnRun, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    if app.is_upgradable:
                        self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                        self.ui.btnRun.move(0, y)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y + 41)
                        self.ui.btnUninstall.move(0, y + 82)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                        self.ui.btnRun.move(0, y)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUpdate.move(0, y + 82)
                        self.ui.btnUninstall.move(0, y + 41)

                elif app.is_installed is False:
                    self.setBtnEnabledPlus(self.ui.btnRun, False)
                    self.setBtnEnabledPlus(self.ui.btnInstall, True)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, False)
                    self.ui.btnInstall.move(0, y)
                    self.ui.btnRun.move(0, y + 41)
                    self.ui.btnUpdate.move(0, y + 82)
                    self.ui.btnUninstall.move(0, y + 123)
                elif app.is_installed:
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnUninstall.move(0, y + 41)
                            self.ui.btnRun.move(0, y + 82)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnUninstall.move(0, y)
                            self.ui.btnRun.move(0, y + 41)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 82)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        if app.is_upgradable is True:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                            self.ui.btnUninstall.move(0, y +82)
                            self.ui.btnRun.move(0, y + 41)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y)
                        else:
                            self.setBtnEnabledPlus(self.ui.btnUpdate, False)
                            self.ui.btnUninstall.move(0, y)
                            self.ui.btnRun.move(0, y + 41)
                            self.ui.btnInstall.move(0, y + 123)
                            self.ui.btnUpdate.move(0, y + 82)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)

                if app.is_upgradable:
                    if(run.get_run_command(app.name) == ""):
                        self.setBtnEnabledPlus(self.ui.btnRun, False)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnRun.move(0, y + 82)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUninstall.move(0, y + 41)
                    else:
                        self.setBtnEnabledPlus(self.ui.btnRun, True)
                        self.ui.btnUpdate.move(0, y)
                        self.ui.btnRun.move(0, y + 41)
                        self.ui.btnInstall.move(0, y + 123)
                        self.ui.btnUninstall.move(0, y + 82)
                    self.setBtnEnabledPlus(self.ui.btnUpdate, True)
                    self.setBtnEnabledPlus(self.ui.btnUninstall, True)
                    self.setBtnEnabledPlus(self.ui.btnInstall, False)