class TestConfigTab(QWidget): def __init__(self, parent, name='TestConfigTab'): QWidget.__init__(self, parent, name) self.grid = QGridLayout(self, 2, 1, 0, 1, 'TestConfigTabLayout') self.textbrowser = KTextBrowser(self) self.grid.addWidget(self.textbrowser, 0, 0) self.button = KPushButton(self) self.button.setText('test get_config') self.grid.addWidget(self.button, 1, 0) def set_config(self, cfg): tfile = StringIO() cfg.write(tfile) tfile.seek(0) text = tfile.read() self.textbrowser.setText(text)
class BasketDialog(KDialog): def __init__(self, parent, basket): KDialog.__init__(self,parent,str(i18n("Basket")),True) self.parent = parent self.basket = basket self.totalSize = 0 self.setCaption(i18n("Basket")) layout = QGridLayout(self, 1, 1, 11, 6) self.pkgHBox = QHBox(self) layout.addMultiCellWidget(self.pkgHBox, 1, 1, 0, 2) if self.basket.state == Basket.remove_state: self.pkgLabel = QLabel(i18n("Selected package(s) for removal:"), self) self.extraLabel = QLabel(i18n("Reverse dependencies of the selected package(s) that are also going to be removed:"), self) elif self.basket.state == Basket.install_state: self.pkgLabel = QLabel(i18n("Selected package(s) for install:"), self) self.extraLabel = QLabel(i18n("Extra dependencies of the selected package(s) that are also going to be installed:"), self) elif self.basket.state == Basket.upgrade_state: self.pkgLabel = QLabel(i18n("Selected package(s) for upgrade:"), self) self.extraLabel = QLabel(i18n("Extra dependencies of the selected package(s) that are also going to be upgraded:"), self) layout.addWidget(self.pkgLabel, 0, 0) layout.addWidget(self.extraLabel, 2, 0) self.depHBox = QHBox(self) layout.addMultiCellWidget(self.depHBox, 3, 3, 0, 2) self.totalSizeLabel = QLabel(i18n("Total Size:"), self) layout.addWidget(self.totalSizeLabel, 4, 0) spacer = QSpacerItem(121, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) layout.addItem(spacer, 5, 0) self.updateBasketButton = KPushButton(self) self.updateBasketButton.setText(i18n("Update Basket")) self.updateBasketButton.setIconSet(loadIconSet("package")) layout.addWidget(self.updateBasketButton, 5, 1) self.applyButton = KPushButton(self) self.applyButton.setText(parent.operateAction.text()) icon = parent.operateAction.iconSet() #Fix 6893 if icon: self.applyButton.setIconSet(icon) layout.addWidget(self.applyButton, 5, 2) self.connect(self.updateBasketButton, SIGNAL('clicked()'), self.updateBasket) self.connect(self.applyButton, SIGNAL('clicked()'), self.applyOperation) self.resize(QSize(574,503).expandedTo(self.minimumSizeHint())) self.clearWState(Qt.WState_Polished) # Read Css cssFile = file(str(locate("data","package-manager/layout.css"))).read() self.css = cssFile self.javascript = file(str(locate("data","package-manager/animation.js"))).read() self.pkgHtmlPart = KHTMLPart(self.pkgHBox) self.depHtmlPart = KHTMLPart(self.depHBox) self.createSelectedPackagesList() self.createExtraPackagesList() self.connect(self.pkgHtmlPart,SIGNAL("completed()"), self.registerEventListener) def updateBasket(self): self.createSelectedPackagesList() self.createExtraPackagesList() self.parent.updateStatusBar() def closeEvent(self, event): self.pkgHtmlPart = None self.depHtmlPart = None self.accept() def applyOperation(self): self.pkgHtmlPart = None self.depHtmlPart = None self.hide() self.done(APPLY_OPERATION) def registerEventListener(self): self.eventListener = SelectEventListener(self) node = self.pkgHtmlPart.document().getElementsByTagName(DOM.DOMString("body")).item(0) node.addEventListener(DOM.DOMString("click"),self.eventListener,True) def updateTotals(self): Globals.setWaitCursor() try: self.createExtraPackagesList() finally: Globals.setNormalCursor() def createSelectedPackagesList(self): self.createHTML(self.basket.packages, self.pkgHtmlPart, True) def createExtraPackagesList(self): self.parent.basket.update() if self.basket.packages: self.applyButton.setEnabled(True) else: self.applyButton.setEnabled(False) if self.basket.extraPackages: self.extraLabel.show() self.depHBox.show() self.createHTML(self.basket.extraPackages, self.depHtmlPart, False) else: self.extraLabel.hide() self.depHBox.hide() size = Globals.humanReadableSize(self.basket.getBasketSize()) self.totalSizeLabel.setText(i18n("Total Size: <b>%1</b>").arg(size)) def createHTML(self, packages, part=None, checkBox=False): head = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ''' if not part: part = self.htmlPart part.begin() part.write(head) part.write("<style type=\"text/css\">%s</style>" % self.css) part.write("<script language=\"JavaScript\">%s</script>" % self.javascript) part.write("</head><body>") part.write(self.createHTMLForPackages(packages, checkBox)) part.write('''<body></html>''') part.end() def createHTMLForPackages(self, packages, checkBox): result = '' template =''' <!-- package start --> <div class="disabled"> ''' if checkBox: template += '''<div class="checkboks" style="%s"><input type="checkbox" checked name="%s"></div>''' template += ''' <div class="package_title_disabled" style="%s"> <img src="%s" style="float:left;" width="%dpx" height="%dpx"> <b>%s</b><br><span style="color:#303030">%s%s<br>%s</span><br> </div></div> <!-- package end --> ''' style = "background-color:%s" % KGlobalSettings.baseColor().name() packages.sort(key=string.lower) for app in packages: package = self.basket.getPackage(app) size = Globals.humanReadableSize(self.basket.getPackageSize(package)) iconPath = getIconPath(package.icon) summary = package.summary iconSize = getIconSize() if checkBox: result += template % (style,app,style,iconPath,iconSize,iconSize,app,i18n("Size: "),size,summary) else: result += template % (style,iconPath,iconSize,iconSize,app,i18n("Size: "),size,summary) return result