#!/bin/python # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'bldtest.ui' # # Created: Wed Sep 30 18:21:55 2009 # by: PyQt4 UI code generator 4.5.4 # # WARNING! All changes made in this file will be lost! try: from PyQt4 import QtCore, QtGui except: print "pyqt4 needs to be installed" sys.exit(0) from PyQt4.QtCore import * from PyQt4.QtGui import * #from PyQt4.QtCore import SIGNAL, SLOT #from PyQt4.QtGui import * import os, sys, time, subprocess, shutil import shelve, thread, tarfile, tempfile import distutils.dir_util import pprint import operator import itertools import pprint, commands pp = pprint.PrettyPrinter(indent=4) try: import pexpect except: print "the pexpect module is not installed" sys.exit(1) #try: #import parched #except: #print "the parched module is not installed" #print "http://github.com/sebnow/parched/" #sys.exit(1) global sepLine sepLine="\n-------------------------------------------------" global bld_data homedir = os.path.expanduser("~") bld_data="%s/.bld_session_data" %homedir global masterPkgList global masterListPopulated masterPkgList=[] masterListPopulated=False class OutLog: def __init__(self, edit, out=None, color=None): """(edit, out=None, color=None) -> can write stdout, stderr to a QTextEdit. edit = QTextEdit out = alternate stream ( can be the original sys.stdout ) color = alternate color (i.e. color stderr a different color) """ self.edit = edit self.out = out self.color = color def write(self, m): if self.color: tc = self.edit.textColor() self.edit.setTextColor(self.color) self.edit.moveCursor(QtGui.QTextCursor.End) self.edit.append(m) if self.color: self.edit.setTextColor(tc) if self.out: self.out.write(m) class TableWidget(QTableWidget): def __init__(self, parent = None): QTableWidget.__init__(self, parent) def contextMenuEvent(self, event): menu = QMenu(self) # quitAction = menu.addAction("Quit") editAction = menu.addAction("Edit PKGBUILD") backupAction = menu.addAction("Backup PKGBUILD") emptyActon = menu.addAction("==================") makepkgAction = menu.addAction("Make packages") emptyActon = menu.addAction("==================") menu.addSeparator() xtermAction = menu.addAction("Open terminal here") exploreAction = menu.addAction("Open File browser here") menu.addSeparator() changeLogAction = menu.addAction("View changelog") buildLogAction = menu.addAction("View buildlog") emptyActon = menu.addAction("==================") adHocAction = menu.addAction("Add to adhoc group") emptyActon = menu.addAction("==================") addgroupAction = menu.addAction("Add to group") menu.addSeparator() promoteAction = menu.addAction("Promote package") updateAction = menu.addAction("Update pkg from ABS") md5Action = menu.addAction("Generate MD5 sums") menu.addSeparator() removeAction = menu.addAction("Remove package") menu.addSeparator() resetStatus = menu.addAction("Reset status") resetBuildOrder = menu.addAction("Reset build order") resetSize = menu.addAction("Resize to width") action = menu.exec_(self.mapToGlobal(event.pos())) #if action == quitAction: # qApp.quit() if action == editAction: self.emit(QtCore.SIGNAL('edit()')) if action == backupAction: self.emit(QtCore.SIGNAL('backupAction()')) if action == makepkgAction: self.emit(QtCore.SIGNAL("makepkg()")) if action == xtermAction: self.emit(QtCore.SIGNAL('launchxterm()')) if action == exploreAction: self.emit(QtCore.SIGNAL('exploreAction()')) if action == changeLogAction: self.emit(QtCore.SIGNAL('changeLogAction()')) if action == buildLogAction: self.emit(QtCore.SIGNAL('buildLogAction()')) if action == adHocAction: self.emit(QtCore.SIGNAL('adHocAction()')) if action ==addgroupAction : self.emit(QtCore.SIGNAL('addgroupAction()')) if action == promoteAction: self.emit(QtCore.SIGNAL('promoteAction()')) if action == updateAction: self.emit(QtCore.SIGNAL('updateAction()')) if action == md5Action: self.emit(QtCore.SIGNAL('MD5Action()')) if action == removeAction: self.emit(QtCore.SIGNAL('removeAction()')) if action == resetStatus: self.resetstatus() if action == resetBuildOrder: self.resetBuildOrder() if action == resetSize: self.resetSize() def resetstatus(self): for row in range(self.rowCount()): self.item(row, 3).setText("-") return def resetBuildOrder(self): for row in range(self.rowCount()): self.item(row, 0).setText("") return def resetSize(self): columnlist=[1,2,4,6,7] for i in columnlist: self.resizeColumnToContents(i) return def keep_col_in_list(self,itemList,col): new_itemList=[] for item in itemList: if item.column() == col : new_itemList.append(item) else: self.setItemSelected (item, False) return new_itemList def pkglocation(self,item): row = item.row() locitem = self.item(row,5) loc = str(locitem.text()) return loc def search_for_item(self,itemText,orig_itemrow): item = self.item(orig_itemrow, 0) return_row = -1 if str(item.text()) == itemText: #print "found a match at the orig cell" self.scrollToItem(item) return_row = orig_itemrow else: row_count=int(self.rowCount()) for r in range(row_count): row = r item = self.item(row, 0) if str(item.text()) == itemText: return_row = row self.scrollToItem(item,3) break return return_row def get_num_selected(self): itemlist=self.selectedItems() itemlist=self.keep_col_in_list(itemlist,1) return len(itemlist) class TableWidget_ABS(TableWidget): def __init__(self, parent = None): TableWidget.__init__(self, parent) def contextMenuEvent(self, event): menu = QMenu(self) viewAction = menu.addAction("View PKGBUILD") menu.addSeparator() xtermAction = menu.addAction("Open terminal here") exploreAction = menu.addAction("Open File browser here") menu.addSeparator() menu.addSeparator() copyABSaction = menu.addAction("Copy package to selected repository") action = menu.exec_(self.mapToGlobal(event.pos())) if action == viewAction: self.emit(QtCore.SIGNAL('viewActionABS()')) if action == xtermAction: self.emit(QtCore.SIGNAL('launchxtermABS()')) if action == exploreAction: self.emit(QtCore.SIGNAL('exploreActionABS()')) if action == copyABSaction: self.emit(QtCore.SIGNAL('CopyABSAction()')) class MyThread(QtCore.QThread): def __init__(self, parent = None): QtCore.QThread.__init__(self, parent) self.alive = 1 self.running = 0 self.n = 0 def finish(self): outmsg="\n Finished" self.emit(SIGNAL("update(QString)"),outmsg) self.running = 0 def runcmd(self,cmd_in,itemText,itemrow,builddir): arglist = " ".join(self.mparglist) cwd=os.getcwd() os.chdir(builddir) cmd="%s %s %s" %(cmd_in, arglist, itemText) retcode = -1 try: logfile = "%s/%s.build.log" %(builddir.strip(),itemText.strip()) f = open(logfile, 'w') child = pexpect.spawn(cmd,cwd=builddir,timeout=self.TIMEOUT) for line in child: f.write(line) self.emit(SIGNAL("update_build(QString)"),line) self.msleep(20) child.close() retcode=child.exitstatus f.write(str(retcode)) f.close() except: line = "****Exception happened during build for %s" %itemText self.emit(SIGNAL("update(QString)"),line) pass return retcode def render(self,cmd_in,itemlist,mparglist): self.itemlist = itemlist self.mparglist = mparglist self.cmd_in = cmd_in self.running = 0 self.TIMEOUT=300 self.start() def run(self): self.emit(SIGNAL("update(QString)"),sepLine) self.emit(SIGNAL("update(QString)"),"Starting thread for package process") itemlistlen=len(self.itemlist) for itemitr in range(0,itemlistlen): if self.running == 0: outmsg="Stopping, waiting for current job to finish" self.emit(SIGNAL("update(QString)"),outmsg) break item = self.itemlist[itemitr][0] itemlocation = self.itemlist[itemitr][1] ##item = self.itemlist.pop() itemrow = item.row() itemText = str(item.text()) #self.msleep(100) outmsg="-------------Starting workon: %s-------------" %itemText self.emit(SIGNAL("update(QString)"),outmsg) status = "Processing!" self.emit(SIGNAL("update_StatusCell(int,QString,QString,int)"),itemrow,itemText,status,item.column()) rc = self.runcmd(self.cmd_in,itemText,itemrow,itemlocation) if rc == 0: status = "Built!" elif rc == -1: status = "Skipped" else: status = "Failed" self.emit(SIGNAL("update(QString)"),status) self.emit(SIGNAL("update_StatusCell(int,QString,QString,int)"),itemrow,itemText,status,item.column()) #self.emit(SIGNAL("update(QString)"),"########################################\n") # print self.itemlist progress = ((float(itemitr+1) / float(itemlistlen)) * 100) self.emit(SIGNAL("update_progress_bar(int)"),progress) outline = "%s built / %s selected" %(itemitr+1,itemlistlen) self.emit(SIGNAL("update(QString)"),outline) outline="%s complete" %progress self.emit(SIGNAL("update(QString)"),outline) self.msleep(1000) self.finish() def toggle(self): if self.running: self.running = 0 else: self.running = 1 def stop(self): self.alive class create_pkglist_thread(QtCore.QThread): def __init__(self, parent = None ): QtCore.QThread.__init__(self, parent ) self.alive = 1 self.running = 0 self.n = 0 def value_init(self,filename,repo_location,repo_type,group_location): self.group_filename_list = filename self.repo_location = repo_location self.repo_type = repo_type self.group_location=group_location global masterPkgList masterPkgList = [] global masterListPopulated masterListPopulated=False self.start() def run(self): total_packages=0 for group_filename in self.group_filename_list: group_file="%s/%s.group" %(self.group_location,group_filename) try: f = open(group_file,"r") file_contents = f.readlines() total_packages_temp=len(file_contents) f.close() except: print "couldn't open file: %s" %group_file #outText = "couldn't open file to populate pkg list: %s " %filename #self.update_ouputwindow(outText) #self.comboBox.setEnabled(True) total_packages+=total_packages_temp process_pkg_num = 0 pkggroup_list=[] for group_filename in self.group_filename_list: group_file="%s/%s.group" %(self.group_location,group_filename) try: f = open(group_file,"r") file_contents = f.readlines() f.close() except: print "couldn't open file: %s" %group_file #outText = "couldn't open file to populate pkg list: %s " %filename #self.update_ouputwindow(outText) #self.comboBox.setEnabled(True) skipped=[] for index, line in enumerate(file_contents): process_pkg_num+=1 progress = ((float(index+1) / float(total_packages)) * 100) currentfile = "%s/%s/PKGBUILD" %(self.repo_location,line.strip()) pkglocation = "%s/%s" %(self.repo_location,line.strip()) if os.path.isfile(currentfile): pkgname="unknown" pkgversion="unknown" pkgdescription="unknown" pkggroup=[] try: f= open(currentfile,"r") file_contents= f.readlines() f.close() for line in file_contents: if line.strip().startswith("pkgname"): pkgname=line.partition("=")[2] elif line.strip().startswith("pkgver"): pkgversion=line.partition("=")[2] elif line.strip().startswith("pkgdesc"): pkgdescription=line.partition("=")[2] elif line.strip().startswith("groups"): l=line.partition("=")[2].strip() for c in ['(',')',"'"]: l = l.replace( c, '' ) pkggroup=l.split() except Exception, e: print "Couldn't parse file: %s\n \treason: %s" %(currentfile,e) skipped.append(currentfile) continue for i in pkggroup: tmp_pkggroup = group_filename + " " + i pkggroup_list.append(tmp_pkggroup) #pkggroup_list.append(i) itemTextList=[pkgname,pkgversion,"-",pkglocation,pkgdescription,pkggroup] itemDict={"pkgname" : pkgname, "pkgversion" : pkgversion, "pkglocation" : pkglocation, "pkgdescription" : pkgdescription, "pkggroup" : pkggroup, "pkggroupfile": group_filename } masterPkgList.append(itemDict) time.sleep(0.005) progress = ((float(process_pkg_num) / float(total_packages)) * 100) self.emit(SIGNAL("update_progress_bar(float)"),progress) self.emit(SIGNAL("pkg_load_list_finished(bool)"),True) if len(skipped) > 0: self.emit(SIGNAL("pkg_load_skipped(PyQt_PyObject)"),skipped) grpset = set(pkggroup_list) for i in grpset: groupname="*%s" %i self.emit(SIGNAL("insert_group(QString)"),groupname) def toggle(self): if self.running: self.running = 0 else: self.running = 1 def stop(self): self.alive = 0 class load_pkg_thread(QtCore.QThread): def __init__(self, parent = None ): QtCore.QThread.__init__(self, parent ) self.alive = 1 self.running = 0 self.n = 0 def value_init(self,filename,repo_location,repo_type): self.group_filename = filename self.repo_location = repo_location self.repo_type = repo_type self.start() def run(self): skipped=[] selected_pkggroup='' selected_groupfilename=[] size = 0 if masterListPopulated and self.repo_type != "ABS": if self.group_filename == "All-testing": selected_groupfilename=["core-testing","extra-testing"] elif self.group_filename == "All-stable": selected_groupfilename=["core","extra"] elif str(self.group_filename).startswith("*"): selected_groupfilename=[ str(self.group_filename.replace("*",'')).split()[0] ] selected_pkggroup=str(self.group_filename.replace("*",'')).partition(" ")[2] else: selected_groupfilename=[str(self.group_filename)] list1 = [] add_pkglist=[] for key, items in itertools.groupby(masterPkgList, operator.itemgetter('pkggroupfile')): list1.append(list(items)) #find total size for item in list1: use_len = False group_file = item[0]['pkggroupfile'] if group_file in selected_groupfilename : if selected_pkggroup: for index,pkg in enumerate(item): #loop over list to see if pkggroup matches #if found increase size pkggroup = pkg['pkggroup'] if selected_pkggroup in pkggroup: size = size + 1 add_pkglist.append(pkg) else: use_len = True if use_len: size += len(item) totalprocessed=0 #print size templist=[] if add_pkglist: templist = add_pkglist else: for item in list1: group_file = item[0]['pkggroupfile'] if group_file in selected_groupfilename: for a in item: templist.append(a) for index,pkg in enumerate(templist): totalprocessed+=1 progress = ((float(totalprocessed) / float(size)) * 100) itemTextList=[pkg["pkgname"],pkg["pkgversion"],"-",pkg["pkglocation"],pkg["pkgdescription"],pkg["pkggroup"]] self.emit(SIGNAL("insertItem(PyQt_PyObject)"),itemTextList) self.emit(SIGNAL("update_progress_bar(float)"),progress) #loading from ABS else: try: f = open(self.group_filename,"r") file_contents = f.readlines() total_packages=len(file_contents) f.close() except: print "couldn't open file: %s" %self.group_filename #outText = "couldn't open file to populate pkg list: %s " %filename #self.update_ouputwindow(outText) #self.comboBox.setEnabled(True) for index, line in enumerate(file_contents): progress = ((float(index+1) / float(total_packages)) * 100) currentfile = "%s/%s/PKGBUILD" %(self.repo_location,line.strip()) pkglocation = "%s/%s" %(self.repo_location,line.strip()) if os.path.isfile(currentfile): pkgname="unknown" pkgversion="unknown" pkgdescription="unknown" pkggroup=[] try: f= open(currentfile,"r") file_contents= f.readlines() f.close() for line in file_contents: if line.strip().startswith("pkgname"): pkgname=line.partition("=")[2] elif line.strip().startswith("pkgver"): pkgversion=line.partition("=")[2] elif line.strip().startswith("pkgdesc"): pkgdescription=line.partition("=")[2] elif line.strip().startswith("groups"): l=line.partition("=")[2].strip() for c in ['(',')',"'"]: l = l.replace( c, '' ) pkggroup=l.split() except Exception, e: print "Couldn't parse file: %s\n \treason: %s" %(currentfile,e) skipped.append(currentfile) continue itemTextList=[pkgname,pkgversion,"-",pkglocation,pkgdescription,pkggroup] if self.repo_type == "ABS": self.emit(SIGNAL("insertItem_ABS(PyQt_PyObject)"),itemTextList) self.emit(SIGNAL("update_progress_bar_ABS(float)"),progress) else: self.emit(SIGNAL("insertItem(PyQt_PyObject)"),itemTextList) self.emit(SIGNAL("update_progress_bar(float)"),progress) time.sleep(0.005) self.emit(SIGNAL("pkg_load_finished(bool)"),True) if len(skipped) > 0: self.emit(SIGNAL("pkg_load_skipped(PyQt_PyObject)"),skipped) def toggle(self): if self.running: self.running = 0 else: self.running = 1 def stop(self): self.alive = 0 class run_cmd_thread(QtCore.QThread): def __init__(self, parent = None ): QtCore.QThread.__init__(self, parent ) self.alive = 1 self.running = 0 self.n = 0 def value_init(self,runcmd,args): self.runcmd = runcmd self.args = args self.TIMEOUT=300 self.start() def run(self): self.emit(SIGNAL("enable_tab2(bool)"),False) retcode = -1 self.emit(SIGNAL("update(QString)"),sepLine) outText="Starting to run: %s" %self.runcmd self.emit(SIGNAL("update(QString)"),outText) #try: logfile=tempfile.mkstemp(suffix=".cmd.log",dir="/tmp")[1] try: f = open(logfile, 'w') outText="log files is: %s" %logfile self.emit(SIGNAL("update(QString)"),outText) child = pexpect.spawn(str(self.runcmd),self.args,timeout=self.TIMEOUT) for line in child: f.write(line) self.emit(SIGNAL("update_build(QString)"),line) self.msleep(50) child.close() retcode=child.exitstatus f.write(str(retcode)) f.close() except Exception, reason: line = "****Exception happened: %s" %self.runcmd self.emit(SIGNAL("update(QString)"),line) self.emit(SIGNAL("update(QString)"),str(reason)) pass self.emit(SIGNAL("enable_tab2(bool)"),True) def toggle(self): if self.running: self.running = 0 else: self.running = 1 def stop(self): self.alive = 0 class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setEnabled(True) MainWindow.resize(982, 870) MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout_9 = QtGui.QHBoxLayout(self.centralwidget) self.horizontalLayout_9.setObjectName("horizontalLayout_9") self.tabWidget = QtGui.QTabWidget(self.centralwidget) self.tabWidget.setEnabled(True) self.tabWidget.setLayoutDirection(QtCore.Qt.LeftToRight) self.tabWidget.setAutoFillBackground(True) self.tabWidget.setTabPosition(QtGui.QTabWidget.South) self.tabWidget.setTabShape(QtGui.QTabWidget.Triangular) self.tabWidget.setElideMode(QtCore.Qt.ElideNone) self.tabWidget.setUsesScrollButtons(False) self.tabWidget.setDocumentMode(False) self.tabWidget.setTabsClosable(False) self.tabWidget.setMovable(True) self.tabWidget.setObjectName("tabWidget") self.tab = QtGui.QWidget() self.tab.setObjectName("tab") self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab) self.verticalLayout_2.setObjectName("verticalLayout_2") self.groupBox_15 = QtGui.QGroupBox(self.tab) self.groupBox_15.setFlat(True) self.groupBox_15.setObjectName("groupBox_15") self.horizontalLayout_10 = QtGui.QHBoxLayout(self.groupBox_15) self.horizontalLayout_10.setContentsMargins(-1, -1, 0, 0) self.horizontalLayout_10.setObjectName("horizontalLayout_10") self.label_22 = QtGui.QLabel(self.groupBox_15) self.label_22.setObjectName("label_22") self.horizontalLayout_10.addWidget(self.label_22) self.lineEdit_21 = QtGui.QLineEdit(self.groupBox_15) self.lineEdit_21.setObjectName("lineEdit_21") self.horizontalLayout_10.addWidget(self.lineEdit_21) self.pushButton = QtGui.QPushButton(self.groupBox_15) self.pushButton.setObjectName("pushButton") self.horizontalLayout_10.addWidget(self.pushButton) self.pushButton_5 = QtGui.QPushButton(self.groupBox_15) self.pushButton_5.setObjectName("pushButton_5") self.horizontalLayout_10.addWidget(self.pushButton_5) self.checkBox_3 = QtGui.QCheckBox(self.groupBox_15) self.checkBox_3.setObjectName("checkBox_3") self.horizontalLayout_10.addWidget(self.checkBox_3) self.verticalLayout_2.addWidget(self.groupBox_15) self.groupBox_2 = QtGui.QGroupBox(self.tab) self.groupBox_2.setMinimumSize(QtCore.QSize(0, 50)) self.groupBox_2.setFlat(False) self.groupBox_2.setObjectName("groupBox_2") self.horizontalLayout = QtGui.QHBoxLayout(self.groupBox_2) self.horizontalLayout.setObjectName("horizontalLayout") self.lcdNumber_2 = QtGui.QLCDNumber(self.groupBox_2) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.lcdNumber_2.setFont(font) self.lcdNumber_2.setFrameShape(QtGui.QFrame.Box) self.lcdNumber_2.setFrameShadow(QtGui.QFrame.Raised) self.lcdNumber_2.setLineWidth(1) self.lcdNumber_2.setSmallDecimalPoint(False) self.lcdNumber_2.setNumDigits(4) self.lcdNumber_2.setSegmentStyle(QtGui.QLCDNumber.Flat) self.lcdNumber_2.setObjectName("lcdNumber_2") self.horizontalLayout.addWidget(self.lcdNumber_2) self.lcdNumber = QtGui.QLCDNumber(self.groupBox_2) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.lcdNumber.setFont(font) self.lcdNumber.setNumDigits(4) self.lcdNumber.setSegmentStyle(QtGui.QLCDNumber.Flat) self.lcdNumber.setObjectName("lcdNumber") self.horizontalLayout.addWidget(self.lcdNumber) self.progressBar = QtGui.QProgressBar(self.groupBox_2) self.progressBar.setMaximumSize(QtCore.QSize(16777215, 16777215)) self.progressBar.setProperty("value", QtCore.QVariant(0)) self.progressBar.setOrientation(QtCore.Qt.Horizontal) self.progressBar.setTextDirection(QtGui.QProgressBar.TopToBottom) self.progressBar.setObjectName("progressBar") self.horizontalLayout.addWidget(self.progressBar) self.comboBox = QtGui.QComboBox(self.groupBox_2) self.comboBox.setEnabled(True) self.comboBox.setMinimumSize(QtCore.QSize(250, 0)) self.comboBox.setObjectName("comboBox") self.horizontalLayout.addWidget(self.comboBox) self.pushButton_8 = QtGui.QPushButton(self.groupBox_2) self.pushButton_8.setObjectName("pushButton_8") self.horizontalLayout.addWidget(self.pushButton_8) self.pushButton_9 = QtGui.QPushButton(self.groupBox_2) self.pushButton_9.setObjectName("pushButton_9") self.horizontalLayout.addWidget(self.pushButton_9) self.verticalLayout_2.addWidget(self.groupBox_2) self.groupBox_6 = QtGui.QGroupBox(self.tab) self.groupBox_6.setAutoFillBackground(True) self.groupBox_6.setFlat(True) self.groupBox_6.setCheckable(False) self.groupBox_6.setObjectName("groupBox_6") self.horizontalLayout_5 = QtGui.QHBoxLayout(self.groupBox_6) self.horizontalLayout_5.setSpacing(0) self.horizontalLayout_5.setMargin(0) self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.tableWidget = TableWidget(self.groupBox_6) self.tableWidget.setAutoFillBackground(True) self.tableWidget.setFrameShape(QtGui.QFrame.StyledPanel) self.tableWidget.setFrameShadow(QtGui.QFrame.Sunken) self.tableWidget.setLineWidth(3) self.tableWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.tableWidget.setEditTriggers(QtGui.QAbstractItemView.DoubleClicked) self.tableWidget.setProperty("showDropIndicator", QtCore.QVariant(False)) self.tableWidget.setDragEnabled(False) self.tableWidget.setDragDropOverwriteMode(False) self.tableWidget.setDragDropMode(QtGui.QAbstractItemView.NoDragDrop) self.tableWidget.setAlternatingRowColors(True) self.tableWidget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.tableWidget.setGridStyle(QtCore.Qt.SolidLine) self.tableWidget.setCornerButtonEnabled(False) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setColumnCount(7) self.tableWidget.setRowCount(0) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(3, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(4, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(5, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(6, item) self.tableWidget.horizontalHeader().setCascadingSectionResizes(True) self.tableWidget.horizontalHeader().setStretchLastSection(True) self.horizontalLayout_5.addWidget(self.tableWidget) self.verticalLayout_2.addWidget(self.groupBox_6) self.tabWidget.addTab(self.tab, "") self.tab_3 = QtGui.QWidget() self.tab_3.setObjectName("tab_3") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.tab_3) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.tabWidget_2 = QtGui.QTabWidget(self.tab_3) self.tabWidget_2.setObjectName("tabWidget_2") self.tab_7 = QtGui.QWidget() self.tab_7.setObjectName("tab_7") self.verticalLayout_12 = QtGui.QVBoxLayout(self.tab_7) self.verticalLayout_12.setObjectName("verticalLayout_12") self.groupBox_4 = QtGui.QGroupBox(self.tab_7) self.groupBox_4.setFlat(True) self.groupBox_4.setCheckable(False) self.groupBox_4.setObjectName("groupBox_4") self.verticalLayout_5 = QtGui.QVBoxLayout(self.groupBox_4) self.verticalLayout_5.setObjectName("verticalLayout_5") self.groupBox_14 = QtGui.QGroupBox(self.groupBox_4) self.groupBox_14.setObjectName("groupBox_14") self.verticalLayout_14 = QtGui.QVBoxLayout(self.groupBox_14) self.verticalLayout_14.setObjectName("verticalLayout_14") self.verticalLayout_5.addWidget(self.groupBox_14) self.create_cd = QtGui.QPushButton(self.groupBox_4) self.create_cd.setObjectName("create_cd") self.verticalLayout_5.addWidget(self.create_cd) self.verticalLayout_12.addWidget(self.groupBox_4) self.tabWidget_2.addTab(self.tab_7, "") self.tab_8 = QtGui.QWidget() self.tab_8.setObjectName("tab_8") self.verticalLayout_10 = QtGui.QVBoxLayout(self.tab_8) self.verticalLayout_10.setObjectName("verticalLayout_10") self.groupBox_3 = QtGui.QGroupBox(self.tab_8) self.groupBox_3.setObjectName("groupBox_3") self.verticalLayout_7 = QtGui.QVBoxLayout(self.groupBox_3) self.verticalLayout_7.setObjectName("verticalLayout_7") self.groupBox_13 = QtGui.QGroupBox(self.groupBox_3) self.groupBox_13.setObjectName("groupBox_13") self.verticalLayout_13 = QtGui.QVBoxLayout(self.groupBox_13) self.verticalLayout_13.setObjectName("verticalLayout_13") self.radioButton_release = QtGui.QRadioButton(self.groupBox_13) self.radioButton_release.setObjectName("radioButton_release") self.verticalLayout_13.addWidget(self.radioButton_release) self.radioButton_testing = QtGui.QRadioButton(self.groupBox_13) self.radioButton_testing.setChecked(True) self.radioButton_testing.setObjectName("radioButton_testing") self.verticalLayout_13.addWidget(self.radioButton_testing) self.radioButton_mythvantage = QtGui.QRadioButton(self.groupBox_13) self.radioButton_mythvantage.setObjectName("radioButton_mythvantage") self.verticalLayout_13.addWidget(self.radioButton_mythvantage) self.radioButton_source = QtGui.QRadioButton(self.groupBox_13) self.radioButton_source.setObjectName("radioButton_source") self.verticalLayout_13.addWidget(self.radioButton_source) self.verticalLayout_7.addWidget(self.groupBox_13) self.pushButton_sync = QtGui.QPushButton(self.groupBox_3) self.pushButton_sync.setObjectName("pushButton_sync") self.verticalLayout_7.addWidget(self.pushButton_sync) self.verticalLayout_10.addWidget(self.groupBox_3) self.tabWidget_2.addTab(self.tab_8, "") self.tab_9 = QtGui.QWidget() self.tab_9.setObjectName("tab_9") self.horizontalLayout_6 = QtGui.QHBoxLayout(self.tab_9) self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.groupBox_8 = QtGui.QGroupBox(self.tab_9) self.groupBox_8.setObjectName("groupBox_8") self.verticalLayout_8 = QtGui.QVBoxLayout(self.groupBox_8) self.verticalLayout_8.setObjectName("verticalLayout_8") self.groupBox_11 = QtGui.QGroupBox(self.groupBox_8) self.groupBox_11.setFlat(True) self.groupBox_11.setObjectName("groupBox_11") self.horizontalLayout_7 = QtGui.QHBoxLayout(self.groupBox_11) self.horizontalLayout_7.setObjectName("horizontalLayout_7") self.label_19 = QtGui.QLabel(self.groupBox_11) self.label_19.setObjectName("label_19") self.horizontalLayout_7.addWidget(self.label_19) self.lineEdit_upload_cd_dest = QtGui.QLineEdit(self.groupBox_11) self.lineEdit_upload_cd_dest.setObjectName("lineEdit_upload_cd_dest") self.horizontalLayout_7.addWidget(self.lineEdit_upload_cd_dest) self.toolButton_6 = QtGui.QToolButton(self.groupBox_11) self.toolButton_6.setObjectName("toolButton_6") self.horizontalLayout_7.addWidget(self.toolButton_6) self.verticalLayout_8.addWidget(self.groupBox_11) self.groupBox_12 = QtGui.QGroupBox(self.groupBox_8) self.groupBox_12.setFlat(True) self.groupBox_12.setObjectName("groupBox_12") self.horizontalLayout_8 = QtGui.QHBoxLayout(self.groupBox_12) self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.label_20 = QtGui.QLabel(self.groupBox_12) self.label_20.setObjectName("label_20") self.horizontalLayout_8.addWidget(self.label_20) self.lineEdit_18 = QtGui.QLineEdit(self.groupBox_12) self.lineEdit_18.setObjectName("lineEdit_18") self.horizontalLayout_8.addWidget(self.lineEdit_18) self.verticalLayout_8.addWidget(self.groupBox_12) self.pushbutton_upload = QtGui.QPushButton(self.groupBox_8) self.pushbutton_upload.setObjectName("pushbutton_upload") self.verticalLayout_8.addWidget(self.pushbutton_upload) self.horizontalLayout_6.addWidget(self.groupBox_8) self.tabWidget_2.addTab(self.tab_9, "") self.horizontalLayout_2.addWidget(self.tabWidget_2) self.tabWidget.addTab(self.tab_3, "") self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName("tab_2") self.verticalLayout_4 = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout_4.setObjectName("verticalLayout_4") self.textEdit = QtGui.QTextEdit(self.tab_2) self.textEdit.setObjectName("textEdit") self.verticalLayout_4.addWidget(self.textEdit) self.tabWidget.addTab(self.tab_2, "") self.tab_4 = QtGui.QWidget() self.tab_4.setObjectName("tab_4") self.gridLayout = QtGui.QGridLayout(self.tab_4) self.gridLayout.setObjectName("gridLayout") self.label = QtGui.QLabel(self.tab_4) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.lineEdit = QtGui.QLineEdit(self.tab_4) self.lineEdit.setObjectName("lineEdit") self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1) self.label_3 = QtGui.QLabel(self.tab_4) self.label_3.setObjectName("label_3") self.gridLayout.addWidget(self.label_3, 1, 0, 1, 1) self.lineEdit_2 = QtGui.QLineEdit(self.tab_4) self.lineEdit_2.setObjectName("lineEdit_2") self.gridLayout.addWidget(self.lineEdit_2, 1, 1, 1, 1) self.label_2 = QtGui.QLabel(self.tab_4) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1) self.lineEdit_3 = QtGui.QLineEdit(self.tab_4) self.lineEdit_3.setObjectName("lineEdit_3") self.gridLayout.addWidget(self.lineEdit_3, 2, 1, 1, 1) self.label_4 = QtGui.QLabel(self.tab_4) self.label_4.setObjectName("label_4") self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1) self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.tab_4) self.plainTextEdit_2.setMaximumSize(QtCore.QSize(16777215, 40)) self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.gridLayout.addWidget(self.plainTextEdit_2, 3, 1, 1, 1) self.label_15 = QtGui.QLabel(self.tab_4) self.label_15.setObjectName("label_15") self.gridLayout.addWidget(self.label_15, 4, 0, 1, 1) self.lineEdit_14 = QtGui.QLineEdit(self.tab_4) self.lineEdit_14.setObjectName("lineEdit_14") self.gridLayout.addWidget(self.lineEdit_14, 4, 1, 1, 1) self.checkBox = QtGui.QCheckBox(self.tab_4) self.checkBox.setObjectName("checkBox") self.gridLayout.addWidget(self.checkBox, 6, 1, 1, 1) self.buttonBox = QtGui.QDialogButtonBox(self.tab_4) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Reset) self.buttonBox.setCenterButtons(True) self.buttonBox.setObjectName("buttonBox") self.gridLayout.addWidget(self.buttonBox, 7, 1, 1, 1) self.toolButton_4 = QtGui.QToolButton(self.tab_4) self.toolButton_4.setObjectName("toolButton_4") self.gridLayout.addWidget(self.toolButton_4, 4, 2, 1, 1) self.tabWidget.addTab(self.tab_4, "") self.tab_5 = QtGui.QWidget() self.tab_5.setObjectName("tab_5") self.verticalLayout_9 = QtGui.QVBoxLayout(self.tab_5) self.verticalLayout_9.setObjectName("verticalLayout_9") self.groupBox = QtGui.QGroupBox(self.tab_5) self.groupBox.setObjectName("groupBox") self.verticalLayout_6 = QtGui.QVBoxLayout(self.groupBox) self.verticalLayout_6.setObjectName("verticalLayout_6") self.groupBox_9 = QtGui.QGroupBox(self.groupBox) self.groupBox_9.setObjectName("groupBox_9") self.horizontalLayout_3 = QtGui.QHBoxLayout(self.groupBox_9) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_16 = QtGui.QLabel(self.groupBox_9) self.label_16.setObjectName("label_16") self.horizontalLayout_3.addWidget(self.label_16) self.lineEdit_15 = QtGui.QLineEdit(self.groupBox_9) self.lineEdit_15.setObjectName("lineEdit_15") self.horizontalLayout_3.addWidget(self.lineEdit_15) self.toolButton_5 = QtGui.QToolButton(self.groupBox_9) self.toolButton_5.setObjectName("toolButton_5") self.horizontalLayout_3.addWidget(self.toolButton_5) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.toolButton_7 = QtGui.QToolButton(self.groupBox_9) self.toolButton_7.setObjectName("toolButton_7") self.horizontalLayout_3.addWidget(self.toolButton_7) self.verticalLayout_6.addWidget(self.groupBox_9) self.groupBox_16 = QtGui.QGroupBox(self.groupBox) self.groupBox_16.setFlat(True) self.groupBox_16.setObjectName("groupBox_16") self.horizontalLayout_11 = QtGui.QHBoxLayout(self.groupBox_16) self.horizontalLayout_11.setContentsMargins(-1, 0, -1, 0) self.horizontalLayout_11.setObjectName("horizontalLayout_11") self.label_23 = QtGui.QLabel(self.groupBox_16) self.label_23.setObjectName("label_23") self.horizontalLayout_11.addWidget(self.label_23) self.lineEdit_20 = QtGui.QLineEdit(self.groupBox_16) self.lineEdit_20.setObjectName("lineEdit_20") self.horizontalLayout_11.addWidget(self.lineEdit_20) self.pushButton_2 = QtGui.QPushButton(self.groupBox_16) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout_11.addWidget(self.pushButton_2) self.pushButton_3 = QtGui.QPushButton(self.groupBox_16) self.pushButton_3.setObjectName("pushButton_3") self.horizontalLayout_11.addWidget(self.pushButton_3) self.checkBox_4 = QtGui.QCheckBox(self.groupBox_16) self.checkBox_4.setObjectName("checkBox_4") self.horizontalLayout_11.addWidget(self.checkBox_4) self.verticalLayout_6.addWidget(self.groupBox_16) self.groupBox_10 = QtGui.QGroupBox(self.groupBox) self.groupBox_10.setObjectName("groupBox_10") self.horizontalLayout_4 = QtGui.QHBoxLayout(self.groupBox_10) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.lcdNumber_3 = QtGui.QLCDNumber(self.groupBox_10) self.lcdNumber_3.setMaximumSize(QtCore.QSize(100, 16777215)) self.lcdNumber_3.setNumDigits(4) self.lcdNumber_3.setSegmentStyle(QtGui.QLCDNumber.Flat) self.lcdNumber_3.setProperty("value", QtCore.QVariant(0.0)) self.lcdNumber_3.setObjectName("lcdNumber_3") self.horizontalLayout_4.addWidget(self.lcdNumber_3) self.lcdNumber_abs2 = QtGui.QLCDNumber(self.groupBox_10) self.lcdNumber_abs2.setMaximumSize(QtCore.QSize(100, 16777215)) self.lcdNumber_abs2.setFrameShadow(QtGui.QFrame.Raised) self.lcdNumber_abs2.setNumDigits(4) self.lcdNumber_abs2.setSegmentStyle(QtGui.QLCDNumber.Flat) self.lcdNumber_abs2.setObjectName("lcdNumber_abs2") self.horizontalLayout_4.addWidget(self.lcdNumber_abs2) self.progressBar_2 = QtGui.QProgressBar(self.groupBox_10) self.progressBar_2.setMaximumSize(QtCore.QSize(200, 100)) self.progressBar_2.setProperty("value", QtCore.QVariant(0)) self.progressBar_2.setObjectName("progressBar_2") self.horizontalLayout_4.addWidget(self.progressBar_2) self.comboBox_2 = QtGui.QComboBox(self.groupBox_10) self.comboBox_2.setMinimumSize(QtCore.QSize(200, 0)) self.comboBox_2.setObjectName("comboBox_2") self.horizontalLayout_4.addWidget(self.comboBox_2) self.verticalLayout_6.addWidget(self.groupBox_10) self.tableWidget_2 = TableWidget_ABS(self.groupBox) self.tableWidget_2.setAutoFillBackground(True) self.tableWidget_2.setFrameShape(QtGui.QFrame.StyledPanel) self.tableWidget_2.setFrameShadow(QtGui.QFrame.Raised) self.tableWidget_2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.tableWidget_2.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.tableWidget_2.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.tableWidget_2.setVerticalScrollMode(QtGui.QAbstractItemView.ScrollPerItem) self.tableWidget_2.setCornerButtonEnabled(False) self.tableWidget_2.setObjectName("tableWidget_2") self.tableWidget_2.setColumnCount(7) self.tableWidget_2.setRowCount(0) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(0, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(1, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(2, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(3, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(4, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(5, item) item = QtGui.QTableWidgetItem() self.tableWidget_2.setHorizontalHeaderItem(6, item) self.tableWidget_2.horizontalHeader().setStretchLastSection(True) self.verticalLayout_6.addWidget(self.tableWidget_2) self.verticalLayout_9.addWidget(self.groupBox) self.tabWidget.addTab(self.tab_5, "") self.tab_6 = QtGui.QWidget() self.tab_6.setObjectName("tab_6") self.verticalLayout_11 = QtGui.QVBoxLayout(self.tab_6) self.verticalLayout_11.setObjectName("verticalLayout_11") self.groupBox_5 = QtGui.QGroupBox(self.tab_6) self.groupBox_5.setObjectName("groupBox_5") self.gridLayout_2 = QtGui.QGridLayout(self.groupBox_5) self.gridLayout_2.setObjectName("gridLayout_2") self.lineEdit_4 = QtGui.QLineEdit(self.groupBox_5) self.lineEdit_4.setObjectName("lineEdit_4") self.gridLayout_2.addWidget(self.lineEdit_4, 0, 2, 1, 1) self.toolButton_3 = QtGui.QToolButton(self.groupBox_5) self.toolButton_3.setObjectName("toolButton_3") self.gridLayout_2.addWidget(self.toolButton_3, 0, 3, 1, 1) self.lineEdit_5 = QtGui.QLineEdit(self.groupBox_5) self.lineEdit_5.setObjectName("lineEdit_5") self.gridLayout_2.addWidget(self.lineEdit_5, 1, 2, 1, 1) self.toolButton_2 = QtGui.QToolButton(self.groupBox_5) self.toolButton_2.setObjectName("toolButton_2") self.gridLayout_2.addWidget(self.toolButton_2, 1, 3, 1, 1) self.label_7 = QtGui.QLabel(self.groupBox_5) self.label_7.setObjectName("label_7") self.gridLayout_2.addWidget(self.label_7, 2, 0, 2, 2) self.lineEdit_6 = QtGui.QLineEdit(self.groupBox_5) self.lineEdit_6.setObjectName("lineEdit_6") self.gridLayout_2.addWidget(self.lineEdit_6, 2, 2, 2, 1) self.toolButton = QtGui.QToolButton(self.groupBox_5) self.toolButton.setObjectName("toolButton") self.gridLayout_2.addWidget(self.toolButton, 2, 3, 2, 1) self.label_5 = QtGui.QLabel(self.groupBox_5) self.label_5.setObjectName("label_5") self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1) self.label_6 = QtGui.QLabel(self.groupBox_5) self.label_6.setObjectName("label_6") self.gridLayout_2.addWidget(self.label_6, 1, 0, 1, 1) self.label_21 = QtGui.QLabel(self.groupBox_5) self.label_21.setObjectName("label_21") self.gridLayout_2.addWidget(self.label_21, 4, 0, 1, 1) self.lineEdit_19 = QtGui.QLineEdit(self.groupBox_5) self.lineEdit_19.setObjectName("lineEdit_19") self.gridLayout_2.addWidget(self.lineEdit_19, 4, 2, 1, 1) self.toolButton_8 = QtGui.QToolButton(self.groupBox_5) self.toolButton_8.setObjectName("toolButton_8") self.gridLayout_2.addWidget(self.toolButton_8, 4, 3, 1, 1) self.verticalLayout_11.addWidget(self.groupBox_5) self.groupBox_7 = QtGui.QGroupBox(self.tab_6) self.groupBox_7.setObjectName("groupBox_7") self.formLayout_3 = QtGui.QFormLayout(self.groupBox_7) self.formLayout_3.setObjectName("formLayout_3") self.lineEdit_7 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_7.setObjectName("lineEdit_7") self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.lineEdit_7) self.lineEdit_9 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_9.setObjectName("lineEdit_9") self.formLayout_3.setWidget(4, QtGui.QFormLayout.FieldRole, self.lineEdit_9) self.lineEdit_10 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_10.setObjectName("lineEdit_10") self.formLayout_3.setWidget(7, QtGui.QFormLayout.FieldRole, self.lineEdit_10) self.lineEdit_11 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_11.setObjectName("lineEdit_11") self.formLayout_3.setWidget(9, QtGui.QFormLayout.FieldRole, self.lineEdit_11) self.label_13 = QtGui.QLabel(self.groupBox_7) self.label_13.setObjectName("label_13") self.formLayout_3.setWidget(11, QtGui.QFormLayout.LabelRole, self.label_13) self.lineEdit_12 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_12.setObjectName("lineEdit_12") self.formLayout_3.setWidget(11, QtGui.QFormLayout.FieldRole, self.lineEdit_12) self.label_10 = QtGui.QLabel(self.groupBox_7) self.label_10.setObjectName("label_10") self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.label_10) self.label_8 = QtGui.QLabel(self.groupBox_7) self.label_8.setObjectName("label_8") self.formLayout_3.setWidget(4, QtGui.QFormLayout.LabelRole, self.label_8) self.label_9 = QtGui.QLabel(self.groupBox_7) self.label_9.setObjectName("label_9") self.formLayout_3.setWidget(7, QtGui.QFormLayout.LabelRole, self.label_9) self.label_12 = QtGui.QLabel(self.groupBox_7) self.label_12.setObjectName("label_12") self.formLayout_3.setWidget(9, QtGui.QFormLayout.LabelRole, self.label_12) self.lineEdit_13 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_13.setObjectName("lineEdit_13") self.formLayout_3.setWidget(13, QtGui.QFormLayout.FieldRole, self.lineEdit_13) self.label_14 = QtGui.QLabel(self.groupBox_7) self.label_14.setObjectName("label_14") self.formLayout_3.setWidget(13, QtGui.QFormLayout.LabelRole, self.label_14) self.label_11 = QtGui.QLabel(self.groupBox_7) self.label_11.setObjectName("label_11") self.formLayout_3.setWidget(14, QtGui.QFormLayout.LabelRole, self.label_11) self.lineEdit_8 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_8.setObjectName("lineEdit_8") self.formLayout_3.setWidget(14, QtGui.QFormLayout.FieldRole, self.lineEdit_8) self.lineEdit_16 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_16.setObjectName("lineEdit_16") self.formLayout_3.setWidget(15, QtGui.QFormLayout.FieldRole, self.lineEdit_16) self.label_17 = QtGui.QLabel(self.groupBox_7) self.label_17.setObjectName("label_17") self.formLayout_3.setWidget(15, QtGui.QFormLayout.LabelRole, self.label_17) self.label_18 = QtGui.QLabel(self.groupBox_7) self.label_18.setObjectName("label_18") self.formLayout_3.setWidget(16, QtGui.QFormLayout.LabelRole, self.label_18) self.lineEdit_17 = QtGui.QLineEdit(self.groupBox_7) self.lineEdit_17.setObjectName("lineEdit_17") self.formLayout_3.setWidget(16, QtGui.QFormLayout.FieldRole, self.lineEdit_17) self.verticalLayout_11.addWidget(self.groupBox_7) self.pushButton_config_save = QtGui.QPushButton(self.tab_6) self.pushButton_config_save.setObjectName("pushButton_config_save") self.verticalLayout_11.addWidget(self.pushButton_config_save) self.tabWidget.addTab(self.tab_6, "") self.horizontalLayout_9.addWidget(self.tabWidget) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.dockWidget = QtGui.QDockWidget(MainWindow) self.dockWidget.setFeatures(QtGui.QDockWidget.DockWidgetFloatable|QtGui.QDockWidget.DockWidgetMovable) self.dockWidget.setObjectName("dockWidget") self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName("dockWidgetContents") self.formLayout = QtGui.QFormLayout(self.dockWidgetContents) self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout.setObjectName("formLayout") self.checkBox_chroot = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_chroot.setObjectName("checkBox_chroot") self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.checkBox_chroot) self.checkBox_download = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_download.setObjectName("checkBox_download") self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.checkBox_download) self.checkBox_force = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_force.setObjectName("checkBox_force") self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.checkBox_force) self.checkBox_syncinstall = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_syncinstall.setObjectName("checkBox_syncinstall") self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.checkBox_syncinstall) self.checkBox_clean = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_clean.setEnabled(True) self.checkBox_clean.setObjectName("checkBox_clean") self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.checkBox_clean) self.checkBox_remove = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_remove.setObjectName("checkBox_remove") self.formLayout.setWidget(6, QtGui.QFormLayout.LabelRole, self.checkBox_remove) self.checkBox_holdver = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_holdver.setObjectName("checkBox_holdver") self.formLayout.setWidget(7, QtGui.QFormLayout.LabelRole, self.checkBox_holdver) self.checkBox_install = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_install.setObjectName("checkBox_install") self.formLayout.setWidget(9, QtGui.QFormLayout.LabelRole, self.checkBox_install) self.checkBox_ignore = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_ignore.setObjectName("checkBox_ignore") self.formLayout.setWidget(10, QtGui.QFormLayout.LabelRole, self.checkBox_ignore) self.checkBox_bumpver = QtGui.QCheckBox(self.dockWidgetContents) self.checkBox_bumpver.setObjectName("checkBox_bumpver") self.formLayout.setWidget(8, QtGui.QFormLayout.LabelRole, self.checkBox_bumpver) self.dockWidget.setWidget(self.dockWidgetContents) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dockWidget) self.dockWidget_2 = QtGui.QDockWidget(MainWindow) self.dockWidget_2.setMinimumSize(QtCore.QSize(79, 99)) self.dockWidget_2.setFloating(False) self.dockWidget_2.setFeatures(QtGui.QDockWidget.DockWidgetFloatable|QtGui.QDockWidget.DockWidgetMovable) self.dockWidget_2.setObjectName("dockWidget_2") self.dockWidgetContents_3 = QtGui.QWidget() self.dockWidgetContents_3.setObjectName("dockWidgetContents_3") self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents_3) self.verticalLayout.setObjectName("verticalLayout") self.textEdit_dock = QtGui.QTextEdit(self.dockWidgetContents_3) self.textEdit_dock.setFrameShape(QtGui.QFrame.WinPanel) self.textEdit_dock.setFrameShadow(QtGui.QFrame.Plain) self.textEdit_dock.setObjectName("textEdit_dock") self.verticalLayout.addWidget(self.textEdit_dock) self.dockWidget_2.setWidget(self.dockWidgetContents_3) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(4), self.dockWidget_2) self.dockWidget_3 = QtGui.QDockWidget(MainWindow) self.dockWidget_3.setMinimumSize(QtCore.QSize(187, 150)) self.dockWidget_3.setFeatures(QtGui.QDockWidget.DockWidgetFloatable|QtGui.QDockWidget.DockWidgetMovable) self.dockWidget_3.setObjectName("dockWidget_3") self.dockWidgetContents_6 = QtGui.QWidget() self.dockWidgetContents_6.setObjectName("dockWidgetContents_6") self.verticalLayout_3 = QtGui.QVBoxLayout(self.dockWidgetContents_6) self.verticalLayout_3.setObjectName("verticalLayout_3") self.checkBox_2 = QtGui.QCheckBox(self.dockWidgetContents_6) self.checkBox_2.setChecked(False) self.checkBox_2.setTristate(True) self.checkBox_2.setObjectName("checkBox_2") self.verticalLayout_3.addWidget(self.checkBox_2) self.pushButton_4 = QtGui.QPushButton(self.dockWidgetContents_6) self.pushButton_4.setObjectName("pushButton_4") self.verticalLayout_3.addWidget(self.pushButton_4) self.pushButton_stop = QtGui.QPushButton(self.dockWidgetContents_6) self.pushButton_stop.setObjectName("pushButton_stop") self.verticalLayout_3.addWidget(self.pushButton_stop) self.pushButton_go = QtGui.QPushButton(self.dockWidgetContents_6) self.pushButton_go.setObjectName("pushButton_go") self.verticalLayout_3.addWidget(self.pushButton_go) self.dockWidget_3.setWidget(self.dockWidgetContents_6) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dockWidget_3) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 982, 24)) self.menubar.setObjectName("menubar") self.menuWelcome = QtGui.QMenu(self.menubar) self.menuWelcome.setEnabled(True) self.menuWelcome.setObjectName("menuWelcome") self.menuAbout = QtGui.QMenu(self.menubar) self.menuAbout.setObjectName("menuAbout") self.menuRepository_2 = QtGui.QMenu(self.menubar) self.menuRepository_2.setObjectName("menuRepository_2") self.menuSystem = QtGui.QMenu(self.menubar) self.menuSystem.setObjectName("menuSystem") MainWindow.setMenuBar(self.menubar) self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionToggle_options = QtGui.QAction(MainWindow) self.actionToggle_options.setObjectName("actionToggle_options") self.actionToggle_output_window = QtGui.QAction(MainWindow) self.actionToggle_output_window.setObjectName("actionToggle_output_window") self.actionUpdate = QtGui.QAction(MainWindow) self.actionUpdate.setObjectName("actionUpdate") self.actionUpdate_group_list = QtGui.QAction(MainWindow) self.actionUpdate_group_list.setObjectName("actionUpdate_group_list") self.actionCreate_new_PKG = QtGui.QAction(MainWindow) self.actionCreate_new_PKG.setObjectName("actionCreate_new_PKG") self.actionAbout = QtGui.QAction(MainWindow) self.actionAbout.setObjectName("actionAbout") self.actionHelp = QtGui.QAction(MainWindow) self.actionHelp.setObjectName("actionHelp") self.actionCheck_for_REPO_problems = QtGui.QAction(MainWindow) self.actionCheck_for_REPO_problems.setObjectName("actionCheck_for_REPO_problems") self.actionSave_output = QtGui.QAction(MainWindow) self.actionSave_output.setObjectName("actionSave_output") self.actionHelp_2 = QtGui.QAction(MainWindow) self.actionHelp_2.setObjectName("actionHelp_2") self.actionSave_output_window_to_file = QtGui.QAction(MainWindow) self.actionSave_output_window_to_file.setObjectName("actionSave_output_window_to_file") self.actionUpdate_packages_from_ABS = QtGui.QAction(MainWindow) self.actionUpdate_packages_from_ABS.setObjectName("actionUpdate_packages_from_ABS") self.actionCreate_new_package = QtGui.QAction(MainWindow) self.actionCreate_new_package.setObjectName("actionCreate_new_package") self.actionUpdate_group_list_2 = QtGui.QAction(MainWindow) self.actionUpdate_group_list_2.setObjectName("actionUpdate_group_list_2") self.actionCheck_for_problems = QtGui.QAction(MainWindow) self.actionCheck_for_problems.setObjectName("actionCheck_for_problems") self.actionAbout_2 = QtGui.QAction(MainWindow) self.actionAbout_2.setObjectName("actionAbout_2") self.actionHelp_3 = QtGui.QAction(MainWindow) self.actionHelp_3.setObjectName("actionHelp_3") self.actionQuit = QtGui.QAction(MainWindow) self.actionQuit.setObjectName("actionQuit") self.actionAbout_3 = QtGui.QAction(MainWindow) self.actionAbout_3.setObjectName("actionAbout_3") self.actionHelp_4 = QtGui.QAction(MainWindow) self.actionHelp_4.setObjectName("actionHelp_4") self.actionUpdate_group_list_abs = QtGui.QAction(MainWindow) self.actionUpdate_group_list_abs.setObjectName("actionUpdate_group_list_abs") self.actionLoad_configuration_file = QtGui.QAction(MainWindow) self.actionLoad_configuration_file.setObjectName("actionLoad_configuration_file") self.actionSave_All_options_including_make_package_option = QtGui.QAction(MainWindow) self.actionSave_All_options_including_make_package_option.setObjectName("actionSave_All_options_including_make_package_option") self.action_Save_make_package_options = QtGui.QAction(MainWindow) self.action_Save_make_package_options.setObjectName("action_Save_make_package_options") self.actionReset_UI = QtGui.QAction(MainWindow) self.actionReset_UI.setObjectName("actionReset_UI") self.actionReload_Group_packages = QtGui.QAction(MainWindow) self.actionReload_Group_packages.setObjectName("actionReload_Group_packages") self.actionReload_ABS_Group_packages = QtGui.QAction(MainWindow) self.actionReload_ABS_Group_packages.setObjectName("actionReload_ABS_Group_packages") self.actionSearch_current_Repository = QtGui.QAction(MainWindow) self.actionSearch_current_Repository.setObjectName("actionSearch_current_Repository") self.actionSearch_All_This_includes_ABS = QtGui.QAction(MainWindow) self.actionSearch_All_This_includes_ABS.setObjectName("actionSearch_All_This_includes_ABS") self.actionRemove_Group = QtGui.QAction(MainWindow) self.actionRemove_Group.setObjectName("actionRemove_Group") self.actionRefresh_database = QtGui.QAction(MainWindow) self.actionRefresh_database.setObjectName("actionRefresh_database") self.actionInstall_all_updates = QtGui.QAction(MainWindow) self.actionInstall_all_updates.setObjectName("actionInstall_all_updates") self.actionSwitch_to_local = QtGui.QAction(MainWindow) self.actionSwitch_to_local.setObjectName("actionSwitch_to_local") self.actionSwitch_to_remote = QtGui.QAction(MainWindow) self.actionSwitch_to_remote.setObjectName("actionSwitch_to_remote") self.actionClear_Adhoc_Group = QtGui.QAction(MainWindow) self.actionClear_Adhoc_Group.setObjectName("actionClear_Adhoc_Group") self.actionCreate_Group = QtGui.QAction(MainWindow) self.actionCreate_Group.setObjectName("actionCreate_Group") self.menuWelcome.addAction(self.action_Save_make_package_options) self.menuWelcome.addAction(self.actionSave_All_options_including_make_package_option) self.menuWelcome.addSeparator() self.menuWelcome.addAction(self.actionSave_output_window_to_file) self.menuWelcome.addSeparator() self.menuWelcome.addAction(self.actionLoad_configuration_file) self.menuWelcome.addSeparator() self.menuWelcome.addAction(self.actionExit) self.menuAbout.addAction(self.actionAbout_3) self.menuAbout.addAction(self.actionReset_UI) self.menuRepository_2.addAction(self.actionCheck_for_problems) self.menuRepository_2.addSeparator() self.menuRepository_2.addAction(self.actionUpdate_group_list_2) self.menuRepository_2.addAction(self.actionUpdate_group_list_abs) self.menuRepository_2.addSeparator() self.menuRepository_2.addAction(self.actionReload_Group_packages) self.menuRepository_2.addAction(self.actionReload_ABS_Group_packages) self.menuRepository_2.addSeparator() self.menuRepository_2.addSeparator() self.menuRepository_2.addSeparator() self.menuRepository_2.addAction(self.actionRemove_Group) self.menuRepository_2.addSeparator() self.menuRepository_2.addSeparator() self.menuRepository_2.addAction(self.actionCreate_Group) self.menuRepository_2.addSeparator() self.menuRepository_2.addSeparator() self.menuRepository_2.addSeparator() self.menuRepository_2.addAction(self.actionClear_Adhoc_Group) self.menuSystem.addAction(self.actionRefresh_database) self.menuSystem.addAction(self.actionInstall_all_updates) self.menuSystem.addSeparator() self.menuSystem.addAction(self.actionSwitch_to_local) self.menuSystem.addAction(self.actionSwitch_to_remote) self.menuSystem.addSeparator() self.menubar.addAction(self.menuWelcome.menuAction()) self.menubar.addAction(self.menuAbout.menuAction()) self.menubar.addAction(self.menuRepository_2.menuAction()) self.menubar.addAction(self.menuSystem.menuAction()) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(0) self.tabWidget_2.setCurrentIndex(0) QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL("triggered()"), MainWindow.close) QtCore.QMetaObject.connectSlotsByName(MainWindow) #------------- self.tabWidget.setCurrentIndex(0) #set location column to 5, this is enough to hide it but still accessiable. self.tableWidget.horizontalHeader().resizeSection(5,5) self.tableWidget_2.horizontalHeader().resizeSection(5,5) #set order column to 20 wide self.tableWidget.horizontalHeader().resizeSection(0,20) self.tableWidget_2.horizontalHeader().resizeSection(0,20) #self.tableWidget_2.horizontalHeader().resizeSection(2,1) self.all_settings={} self.thread = MyThread() self.thread_pkg_load = load_pkg_thread() self.run_cmd_thread = run_cmd_thread() self.upload_file_thread = run_cmd_thread() self.createPkgListThread = create_pkglist_thread() sys.stdout = OutLog(self.textEdit,out=sys.__stdout__) sys.stderr = OutLog(self.textEdit,out=sys.__stdout__) #enable/disable t QtCore.QObject.connect(self.run_cmd_thread, QtCore.SIGNAL("enable_tab2(bool)"), self.enable_tab2) QtCore.QObject.connect(self.upload_file_thread, QtCore.SIGNAL("enable_tab2(bool)"), self.enable_tab2) QtCore.QObject.connect(self.run_cmd_thread, SIGNAL("finished()"), self.run_cmd_thread_finished) QtCore.QObject.connect(self.upload_file_thread, SIGNAL("finished()"), self.upload_thread_finished) QtCore.QObject.connect(self.createPkgListThread,SIGNAL("pkg_load_list_finished(bool)"), self.pkg_load_finished) QtCore.QObject.connect(self.createPkgListThread,SIGNAL("insert_group(QString)"), self.insert_group) #connect pkgload thread to insert item QtCore.QObject.connect(self.thread_pkg_load, QtCore.SIGNAL("insertItem(PyQt_PyObject)"), self.insert_item) #thread to enable table after pkgload is finished QtCore.QObject.connect(self.thread_pkg_load, SIGNAL("pkg_load_finished(bool)"), self.set_repo_box) QtCore.QObject.connect(self.thread_pkg_load, SIGNAL("pkg_load_finished(bool)"), self.print_finished_msg) #connect up insert item for ABS table QtCore.QObject.connect(self.thread_pkg_load, QtCore.SIGNAL("insertItem_ABS(PyQt_PyObject)"), self.insert_item_ABS) #group box change to populate pkglist QtCore.QObject.connect(self.comboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.onIndexChanged) #group box change to populate ABS pkglist QtCore.QObject.connect(self.comboBox_2, QtCore.SIGNAL("currentIndexChanged(QString)"), self.onIndexChanged_ABS) # makepkg button QtCore.QObject.connect(self.pushButton_go, QtCore.SIGNAL("clicked()"), self.buttonpushed) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("makepkg()"), self.buttonpushed) #stop button QtCore.QObject.connect(self.pushButton_stop, QtCore.SIGNAL("clicked()"), self.thread.toggle) #thow text to output window QtCore.QObject.connect(self.thread, QtCore.SIGNAL("update(QString)"), self.update_ouputwindow) QtCore.QObject.connect(self.thread, QtCore.SIGNAL("update_build(QString)"), self.update_build) QtCore.QObject.connect(self.run_cmd_thread, QtCore.SIGNAL("update(QString)"), self.update_ouputwindow) QtCore.QObject.connect(self.run_cmd_thread, QtCore.SIGNAL("update_build(QString)"), self.update_build) QtCore.QObject.connect(self.upload_file_thread, QtCore.SIGNAL("update(QString)"), self.update_ouputwindow) QtCore.QObject.connect(self.upload_file_thread, QtCore.SIGNAL("update_build(QString)"), self.update_build) #update table with status QtCore.QObject.connect(self.thread, QtCore.SIGNAL("update_StatusCell(int,QString,QString,int)"),self.update_status_cell) #clear output list QtCore.QObject.connect(self.pushButton_4, QtCore.SIGNAL("clicked()"), self.clear_output) # select_all packages button QtCore.QObject.connect(self.pushButton_9, QtCore.SIGNAL("clicked()"), self.select_all) # select_none packages button QtCore.QObject.connect(self.pushButton_8, QtCore.SIGNAL("clicked()"), self.select_none) #enable makpkg button after thread finishs #do we need this QtCore.QObject.connect(self.thread, SIGNAL("finished()"), self.enable_table) #update lcd selected pkgs QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("itemSelectionChanged()"), self.updateLCDtotal) #update abs lcd QtCore.QObject.connect(self.tableWidget_2, QtCore.SIGNAL("itemSelectionChanged()"), self.updateLCDtotal_pkg_ABS) #update progress bar QtCore.QObject.connect(self.thread,QtCore.SIGNAL("update_progress_bar(int)"),self.update_progress_bar) QtCore.QObject.connect(self.thread_pkg_load, QtCore.SIGNAL("update_progress_bar_ABS(float)"),self.update_progress_bar_abs) QtCore.QObject.connect(self.thread_pkg_load, QtCore.SIGNAL("update_progress_bar(float)"),self.update_progress_bar) QtCore.QObject.connect(self.createPkgListThread, QtCore.SIGNAL("update_progress_bar(float)"),self.update_progress_bar) QtCore.QObject.connect(self.thread_pkg_load, QtCore.SIGNAL("pkg_load_skipped(PyQt_PyObject)"), self.print_skipped_pkg) #ALL the actions from the table widget #edit pkgbuild QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("edit()"), self.editPkgbuild) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('changeLogAction()'), self.actionChangeLog) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('buildLogAction()'), self.viewbuildLog) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('launchxterm()'), self.launchxterm ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('exploreAction()'), self.exploreAction ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('backupAction()'), self.backupAction) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('updateAction()'), self.updateAction ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('depAction()'), self.depAction ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('MD5Action()'), self.MD5Action ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('removeAction()'), self.removepkg ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('promoteAction()'), self.promoteAction ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('adHocAction()'), self.addPkgAdhoc ) QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('addgroupAction()'), self.addPkgGroup ) #ABS TABLE ACTIONS QtCore.QObject.connect(self.tableWidget_2 , QtCore.SIGNAL('viewActionABS()') , self.viewABSAction) QtCore.QObject.connect(self.tableWidget_2 ,QtCore.SIGNAL('launchxtermABS()'), self.launchxtermABSAction) QtCore.QObject.connect(self.tableWidget_2 ,QtCore.SIGNAL('exploreActionABS()'),self.exploreABSAction) QtCore.QObject.connect(self.tableWidget_2 ,QtCore.SIGNAL('CopyABSAction()'), self.copyABSAction) QtCore.QObject.connect(self.toolButton_5, QtCore.SIGNAL("clicked()"), self.select_newpkg_ABS_dir) QtCore.QObject.connect(self.toolButton_7, QtCore.SIGNAL("clicked()"), self.open_copy_location) QtCore.QObject.connect(self.toolButton_8, QtCore.SIGNAL("clicked()"), self.select_profile_dir) #Top menu actions QtCore.QObject.connect(self.actionSave_output_window_to_file, QtCore.SIGNAL("triggered()"), self.save_text_to_file) QtCore.QObject.connect(self.actionLoad_configuration_file, QtCore.SIGNAL("triggered()"), self.load_settings_from_file) QtCore.QObject.connect(self.actionRemove_Group, QtCore.SIGNAL("triggered()"), self.removeGroup) #reset_ui/about QtCore.QObject.connect(self.actionAbout_3, QtCore.SIGNAL("triggered()"), self.about) QtCore.QObject.connect(self.actionReset_UI, QtCore.SIGNAL("triggered()"), self.resetui) QtCore.QObject.connect(self.actionCheck_for_problems, QtCore.SIGNAL("triggered()"), self.repo_check_for_problems) QtCore.QObject.connect(self.actionSearch_current_Repository, QtCore.SIGNAL("triggered()"), self.show_search) QtCore.QObject.connect(self.actionRefresh_database, QtCore.SIGNAL("triggered()"), self.updatePacmanDB) QtCore.QObject.connect(self.actionInstall_all_updates, QtCore.SIGNAL("triggered()"), self.updateSystem) QtCore.QObject.connect(self.actionSwitch_to_local, QtCore.SIGNAL("triggered()"), self.switch_pacman_to_loca) QtCore.QObject.connect(self.actionSwitch_to_remote, QtCore.SIGNAL("triggered()"), self.switch_pacman_to_remote) QtCore.QObject.connect(self.actionClear_Adhoc_Group, QtCore.SIGNAL("triggered()"), self.clearAdhoc) QtCore.QObject.connect(self.actionCreate_Group, QtCore.SIGNAL("triggered()"), self.createGroup) #reload group boxes QtCore.QObject.connect(self.actionReload_Group_packages, QtCore.SIGNAL("triggered()"), self.populate_group_box) QtCore.QObject.connect(self.actionReload_ABS_Group_packages, QtCore.SIGNAL("triggered()"), self.populate_abs_group_box) #update group list QtCore.QObject.connect(self.actionUpdate_group_list_2, QtCore.SIGNAL("triggered()"), self.populate_repo) QtCore.QObject.connect(self.actionUpdate_group_list_abs, QtCore.SIGNAL("triggered()"), self.populate_abs_repo) #search box for repp QtCore.QObject.connect(self.lineEdit_21, QtCore.SIGNAL("textChanged (const QString&)"), self.searchRepoPkglist) QtCore.QObject.connect(self.lineEdit_20, QtCore.SIGNAL("textChanged (const QString&)"), self.searchRepoABSPkglist) QtCore.QObject.connect(self.pushButton_5, QtCore.SIGNAL("clicked()"), self.clear_searchbox) QtCore.QObject.connect(self.pushButton_3, QtCore.SIGNAL("clicked()"), self.clear_searchbox_ABS) #save options500 QtCore.QObject.connect(self.action_Save_make_package_options, QtCore.SIGNAL("triggered()"), self.save_package_options) QtCore.QObject.connect(self.actionSave_All_options_including_make_package_option, QtCore.SIGNAL("triggered()"), self.save_all_options) #configuration screen QtCore.QObject.connect(self.toolButton_3, QtCore.SIGNAL("clicked()"), self.select_group_dir) QtCore.QObject.connect(self.toolButton_2, QtCore.SIGNAL("clicked()"), self.select_abs_dir) QtCore.QObject.connect(self.toolButton, QtCore.SIGNAL("clicked()"), self.select_repo_dir) QtCore.QObject.connect(self.pushButton_config_save, QtCore.SIGNAL("clicked()"), self.save_config_settings) #QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.save_config_settings) #new package screen #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), self.create_new_pkg) #QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), self.reset_pkg_screen) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("clicked(QAbstractButton*)"), self.show_which_button) QtCore.QObject.connect(self.toolButton_4, QtCore.SIGNAL("clicked()"), self.select_newpkg_dir) #misc screen QtCore.QObject.connect(self.pushButton_sync, QtCore.SIGNAL("clicked()"), self.run_sync) QtCore.QObject.connect(self.create_cd, QtCore.SIGNAL("clicked()"), self.createcd) QtCore.QObject.connect(self.pushbutton_upload, QtCore.SIGNAL("clicked()"), self.upload_files) def insert_group(self,g): self.comboBox.addItem(g) def pkg_load_finished(self): global masterListPopulated masterListPopulated=True self.comboBox.addItem("All-stable") self.comboBox.addItem("All-testing") self.enable_table() def clear_searchbox(self): self.lineEdit_21.setText('') def clear_searchbox_ABS(self): self.lineEdit_20.setText('') def searchRepoPkglist(self,textValue): # print textValue if textValue=='': self.select_none() return if self.checkBox_3.isChecked(): return list=self.tableWidget.findItems(textValue,Qt.MatchStartsWith) self.select_none() self.tableWidget.setSortingEnabled(True) self.tableWidget.sortItems(1) for itr,item in enumerate(list): if itr == 1: self.tableWidget.scrollToItem(item,3) self.tableWidget.setItemSelected(item,True) if self.tableWidget.horizontalScrollBar().value > 5: self.tableWidget.horizontalScrollBar().setValue (0) def searchRepoABSPkglist(self,textValue): # print textValue if textValue=='': self.select_none_ABS() return if self.checkBox_4.isChecked(): return list=self.tableWidget_2.findItems(textValue,Qt.MatchStartsWith) self.select_none_ABS() self.tableWidget_2.setSortingEnabled(True) self.tableWidget_2.sortItems(1) for itr,item in enumerate(list): if itr <= 5 : self.tableWidget_2.scrollToItem(item,3) self.tableWidget_2.setItemSelected(item,True) if self.tableWidget_2.horizontalScrollBar().value > 5: self.tableWidget_2.horizontalScrollBar().setValue (0) def show_search(self): print "show" self.DLG.show() def about(self): msg="This is bld2\n An easy to use program to help in the development of LinHes and MythVantage.\n Written and maintained by James Meyer." self.showbox("About me",msg) def resetui(self): self.clear_output self.enable_tab2(True) self.enable_table() self.set_repo_box(True) self.enable_ABS_table() msg="Interface has been reset" self.update_ouputwindow(msg) self.showbox("Reset interface", msg,True) def repo_check_for_problems(self): cmd = "%s" %(self.all_settings['repocheck']) (status,msg) = commands.getstatusoutput(cmd) self.update_ouputwindow(msg) def show_which_button(self, clicked_button): role = QtGui.QDialogButtonBox.buttonRole(self.buttonBox, clicked_button) if role == 7: self.reset_pkg_screen() if role == 0: self.create_new_pkg() def update_progress_bar(self,new_value): self.progressBar.setValue(new_value) def update_progress_bar_abs(self,new_value): self.progressBar_2.setValue(new_value) def updateLCDtotal_pkg(self): # updates LCD display with the total selected num = self.tableWidget.rowCount() self.lcdNumber_2.display(num) def updateLCDtotal(self): # updates LCD display with the total selected num = self.tableWidget.get_num_selected() self.lcdNumber.display(num) def updateLCDtotal_pkg_ABS(self): # updates LCD display with the total selected num = self.tableWidget_2.get_num_selected() self.lcdNumber_abs2.display(num) def updateLCDtotal_ABS(self): # updates LCD display with the total selected num = self.tableWidget_2.rowCount() self.lcdNumber_3.display(num) def clear_output(self): self.textEdit.clear() self.textEdit_dock.clear() def update_build(self,line): boxState= self.checkBox_2.checkState() PrintBoth = False if boxState == 0: return elif boxState == 1: PrintBoth = False elif boxState == 2: PrintBoth = True self.update_ouputwindow(line,PrintBoth) def update_ouputwindow(self,line,PrintBoth=True): self.textEdit.append(line) if PrintBoth: self.textEdit_dock.append(line) #self.textEdit.moveCursor(QtGui.QTextCursor.End) #self.textEdit_dock.moveCursor(QtGui.QTextCursor.End) self.textEdit.verticalScrollBar().setValue(self.textEdit.verticalScrollBar().maximum()) self.textEdit_dock.verticalScrollBar().setValue(self.textEdit_dock.verticalScrollBar().maximum()) self.textEdit.moveCursor(QtGui.QTextCursor.End) self.textEdit_dock.moveCursor(QtGui.QTextCursor.End) def run_cmd_thread_finished(self): itemText="Finished with background job" self.update_ouputwindow(itemText) self.showbox("Command", "Finished!",True) def upload_thread_finished(self): itemText="File upload finished" self.update_ouputwindow(itemText) self.showbox("File upload", "Finished!",True) def print_finished_msg(self,Value): outText="Finished Loading Packages!!" self.update_ouputwindow(outText) self.tableWidget.setSortingEnabled(True) self.tableWidget_2.setSortingEnabled(True) columnlist=[1,2,3,6] for i in columnlist: self.tableWidget.resizeColumnToContents(i) self.tableWidget_2.resizeColumnToContents(i) self.enable_table_search(True) self.enable_table_search_ABS(True) def print_skipped_pkg(self,skipped): self.update_ouputwindow(sepLine) outText="These packages were skipped" self.update_ouputwindow(outText,False) for line in skipped: self.update_ouputwindow(line,False) #self.update_outputwindow(line,False) outText="Number of skipped packages: %s" %(len(skipped)) self.update_ouputwindow(outText,True) def enable_tab2(self,Value): self.tabWidget_2.setEnabled(Value) def disable_table(self): self.tableWidget.setEnabled(False) self.comboBox.setEnabled(False) self.pushButton_8.setEnabled(False) self.pushButton_9.setEnabled(False) self.disable_go_button() def enable_table(self): self.tableWidget.setEnabled(True) self.comboBox.setEnabled(True) self.pushButton_8.setEnabled(True) self.pushButton_9.setEnabled(True) self.enable_go_button() def enable_table_search(self,Value): self.lineEdit_21.setEnabled(Value) self.pushButton.setEnabled(Value) def enable_table_search_ABS(self,Value): self.lineEdit_20.setEnabled(Value) self.pushButton_2.setEnabled(Value) def set_repo_box(self,Value): self.comboBox.setEnabled(Value) self.comboBox_2.setEnabled(Value) if Value: self.enable_go_button() else: self.disable_go_button() def disable_ABS_table(self): self.tableWidget_2.setEnabled(False) self.comboBox_2.setEnabled(False) def enable_ABS_table(self): self.tableWidget_2.setEnabled(True) self.comboBox_2.setEnabled(True) def update_status_cell(self,itemrow,itemText,status,itemcol): item = self.tableWidget.item(itemrow,itemcol) self.tableWidget.setItemSelected (item, False) self.tableWidget.scrollToItem(item,3) self.tableWidget.item(itemrow, 3).setText(status,) def update_status_cell_ABS(self,itemrow,itemText,status,itemcol): item = self.tableWidget_2.item(itemrow,itemcol) self.tableWidget_2.setItemSelected (item, False) self.tableWidget_2.scrollToItem(item,3) self.tableWidget_2.item(itemrow, 3).setText(status,) def insert_item(self,itemTextList): pkgname=itemTextList[0] pkgversion=itemTextList[1] pkglocation = itemTextList[3] pkgdescription=itemTextList[4] pkggroup=itemTextList[5] pkgtooltip=pkgdescription if pkggroup: pkgtooltip+="Groups: " pkgloc=[] pkglist=[] pkgloc.append(pkgname.strip()) pkgloc.append(pkglocation) #print pkgloc #for i in pkggroup: #pkglist=[] #pkg_group_name="%s/pkg_group_%s.group" %(self.all_settings['group_file_location'],i) #pkgtuple=(pkgname.strip(),pkglocation) #pkglist.append(pkgtuple) ##pkglist.append(pkgname) #pkglist.append(pkgloc) #self.addPkgGroup(pkg_group_name,pkglist) #pkgtooltip+=" " #pkgtooltip+= i # print pkggroup itr = self.tableWidget.rowCount() self.tableWidget.insertRow(itr) for i in range(0,7): item = QtGui.QTableWidgetItem() item.setToolTip(pkgdescription) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled| Qt.ItemIsSelectable) if i == 0: item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled| Qt.ItemIsSelectable | Qt.ItemIsEditable) item.setTextAlignment(Qt.AlignRight) self.tableWidget.setItem(itr, i, item) self.tableWidget.item(itr,0).setText("zzz") self.tableWidget.item(itr,1).setText(pkgname) self.tableWidget.item(itr,2).setText(pkgversion) self.tableWidget.item(itr,3).setText("-") self.tableWidget.item(itr,4).setText(",".join(pkggroup)) self.tableWidget.item(itr,5).setText(pkglocation) self.tableWidget.item(itr,6).setText(pkgdescription) self.tableWidget.item(itr,6).setToolTip(pkgtooltip) self.updateLCDtotal_pkg() def insert_item_ABS(self,itemTextList): pkgname=itemTextList[0] pkgversion=itemTextList[1] pkglocation = itemTextList[3] pkgdescription=itemTextList[4] pkggroup=itemTextList[5] pkgtooltip=pkgdescription if pkggroup: pkgtooltip+="Groups: " pkgloc=[] pkglist=[] pkgloc.append(pkgname.strip()) pkgloc.append(pkglocation) itr = self.tableWidget_2.rowCount() self.tableWidget_2.insertRow(itr) for i in range(0,7): item = QtGui.QTableWidgetItem() item.setToolTip(pkgdescription) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled| Qt.ItemIsSelectable) if i == 0: item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled| Qt.ItemIsSelectable | Qt.ItemIsEditable) self.tableWidget_2.setItem(itr, i, item) self.tableWidget_2.item(itr,1).setText(pkgname) self.tableWidget_2.item(itr,2).setText(pkgversion) self.tableWidget_2.item(itr,3).setText("-") self.tableWidget_2.item(itr,4).setText(",".join(pkggroup)) self.tableWidget_2.item(itr,5).setText(pkglocation) self.tableWidget_2.item(itr,6).setText(pkgdescription) self.updateLCDtotal_ABS() def populate_pkg_list(self,repo_value): # Populate table on package tab # read in the group file, locate pkgbuild & parse out the items self.update_ouputwindow(sepLine) self.set_repo_box(False) self.enable_table_search(False) self.tableWidget.clear() self.tableWidget.clearContents() self.tableWidget.setSortingEnabled(False) self.tableWidget.setRowCount(0) if masterListPopulated: outtext="Loading package list from memory" self.update_ouputwindow(outtext) self.thread_pkg_load.value_init(repo_value,self.all_settings['repo_location'],"mainrepo") else: filename = self.all_settings['group_file_location'] + "/" + repo_value + ".group" outtext="Loading package list from %s" %filename self.update_ouputwindow(outtext) self.thread_pkg_load.value_init(filename,self.all_settings['repo_location'],"mainrepo") headers=[".","Name", "Version", "Status" ,"Group", "Location", "Description"] self.tableWidget.setHorizontalHeaderLabels(headers) def populate_abs_pkg_list(self,abs_repo_value): # Populate table on package tab # read in the group file, locate pkgbuild & parse out the items self.update_ouputwindow(sepLine) self.set_repo_box(False) self.enable_table_search_ABS(False) self.tableWidget_2.clear() self.tableWidget_2.clearContents() self.tableWidget_2.setSortingEnabled(False) self.tableWidget_2.setRowCount(0) filename = self.all_settings['group_file_location'] + "/" + abs_repo_value + ".group" outtext="Loading package list from %s" %filename self.update_ouputwindow(outtext) self.thread_pkg_load.value_init(filename,self.all_settings['abs_location'],"ABS") headers=[".","Name", "Version", "Status" ,"Group", "Location", "Description"] self.tableWidget_2.setHorizontalHeaderLabels(headers) def select_all(self): total_rows = self.tableWidget.rowCount() self.tableWidget.setRangeSelected(QtGui.QTableWidgetSelectionRange(0,1, total_rows-1, 1), True) def select_none(self): total_rows = self.tableWidget.rowCount() self.tableWidget.setRangeSelected(QtGui.QTableWidgetSelectionRange(0, 1, total_rows-1, 1), False) def select_none_ABS(self): total_rows = self.tableWidget_2.rowCount() self.tableWidget_2.setRangeSelected(QtGui.QTableWidgetSelectionRange(0, 1, total_rows-1, 1), False) def onIndexChanged(self, index): global repo_value repo_value = index self.tableWidget.clear() if repo_value: self.populate_pkg_list(repo_value) def onIndexChanged_ABS(self, index): global ABS_repo_value ABS_repo_value = index self.tableWidget_2.clear() if ABS_repo_value: self.populate_abs_pkg_list(ABS_repo_value) def showbox(self,title,message,Modal=True): self.Modal=Modal self.msgbox = QtGui.QMessageBox() self.msgbox.setWindowTitle(title) self.msgbox.setText(message) self.msgbox.setModal(Modal) self.msgbox.show() def show_yes_no_box(self,title,message,Modal=True): self.Modal=Modal self.msgyesbox = QtGui.QMessageBox() self.msgyesbox.setWindowTitle(title) self.msgyesbox.setText(message) self.msgyesbox.setModal(Modal) self.msgyesbox.setStandardButtons(QMessageBox.Yes | QMessageBox.No); self.msgyesbox.setDefaultButton(QMessageBox.Save); if self.msgyesbox.exec_() == 16384 : return True else: return False def buttonpushed(self): itemlist=self.tableWidget.selectedItems() makepkg_list=[] prunedlist = self.tableWidget.keep_col_in_list(itemlist,1) if prunedlist == [] : self.showbox("Error", "No packages selected") itemText="selected package list was empty" self.update_ouputwindow(itemText) else: #grab location from tableWidget for item in prunedlist: pkglocation=self.tableWidget.pkglocation(item) pkgtuple=(item,pkglocation) makepkg_list.append(pkgtuple) self.disable_go_button() self.disable_table() self.thread.render(self.all_settings['makepkg'], makepkg_list,self.get_checkbox_state()) self.thread.toggle() def populate_group_box(self): self.disable_table() postfix=".group" grouplist=[] dir_list = os.listdir(self.all_settings['group_file_location']) self.comboBox.clear() self.comboBox.setInsertPolicy(6) self.comboBox.setEnabled(False) for file in dir_list: if os.path.isfile(self.all_settings['group_file_location']+"/"+file): if file.endswith(postfix) and not file.startswith("ABS"): groupname = file[:-len(postfix)] grouplist.append(groupname) #self.comboBox.setCurrentIndex(1) grouplist.sort() for g in grouplist: self.comboBox.addItem(g) #self.comboBox.setEnabled(True) #kick of thread to create list of stuff self.disable_table() self.createPkgListThread.value_init(grouplist,self.all_settings['repo_location'],"mainrepo",self.all_settings['group_file_location']) def populate_abs_group_box(self): postfix=".group" dir_list = os.listdir(self.all_settings['group_file_location']) self.comboBox_2.clear() self.comboBox_2.setEnabled(False) for file in dir_list: if os.path.isfile(self.all_settings['group_file_location']+"/"+file): if file.endswith(postfix) and file.startswith("ABS"): groupname = file[:-len(postfix)] self.comboBox_2.addItem(groupname) self.comboBox_2.setEnabled(True) def populate_iso_profile(self): #populate profile dir for iso global isoProfile isoProfile=[] try: profileDir = self.all_settings['profile_iso'] os.chdir(str(profileDir)) except: return dir_list = os.listdir(".") for itr, dir in enumerate(dir_list): if os.path.isdir(dir): buttontxt_2="%s" %str(dir) buttonname="radioButton_iso_%s" %itr cmd=('''self.%s = QtGui.QRadioButton('%s',self.groupBox_14)''') %(buttonname,buttontxt_2) exec (cmd) cmd='''self.%s.setObjectName("self.%s")''' %(buttonname,buttonname) exec(cmd) if dir == "i686-testing-local-httpd": cmd='''self.%s.setChecked(True)''' %(buttonname) exec(cmd) cmd = 'self.verticalLayout_14.addWidget(self.%s)' %buttonname exec (cmd) blist=(buttontxt_2,buttonname) isoProfile.append(blist) def populate_repo(self): # regenerates all the group files repodir=self.all_settings['repo_location'] os.chdir(str(repodir)) dir_list = os.listdir(".") for dir in dir_list: if os.path.isdir(dir): print "found a dir:%s" %dir group_list=[] dir_walk = dir for root, dirs, files in os.walk(dir_walk): #print "walking %s,%s" %(root,dirs) for file in [f for f in files]: if file == "PKGBUILD" : group_list.append(root) group_name="%s/%s.group" %(self.all_settings['group_file_location'],dir) if group_list != [] : itemText = "Writing out group name: %s" %group_name self.update_ouputwindow(itemText) f = open(group_name,"w") for line in group_list: f.write(line) f.write("\n") f.close() os.chdir("..") self.populate_group_box() def populate_abs_repo(self): # regenerates all the abs group files repodir=self.all_settings['abs_location'] os.chdir(str(repodir)) dir_list = os.listdir(".") for dir in dir_list: if os.path.isdir(dir): print "found a dir:%s" %dir group_list=[] dir_walk = dir for root, dirs, files in os.walk(dir_walk): #print "walking %s,%s" %(root,dirs) for file in [f for f in files]: if file == "PKGBUILD" : group_list.append(root) group_name="%s/ABS-%s.group" %(self.all_settings['group_file_location'],dir) if group_list != [] : itemText = "Writing out group name: %s" %group_name self.update_ouputwindow(itemText) f = open(group_name,"w") for line in group_list: f.write(line) f.write("\n") f.close() os.chdir("..") self.populate_abs_group_box() def disable_go_button(self): self.pushButton_go.setEnabled(False) self.pushButton_stop.setEnabled(True) self.comboBox.setEnabled(False) def enable_go_button(self): self.pushButton_go.setEnabled(True) self.pushButton_stop.setEnabled(False) #self.comboBox.setEnabled(True) def find_pkgdir(self): #return list of selected pkg locations dirlist=[] itemlist=self.tableWidget.selectedItems() prunedlist = self.tableWidget.keep_col_in_list(itemlist,1) if prunedlist == [] : self.showbox("Error", "No packages selected") itemText="selected package list was empty" self.update_ouputwindow(itemText) else: for item in prunedlist: itemText= str(item.text()) pkglocation=self.tableWidget.pkglocation(item) pkgtuple=(item,pkglocation) dirlist.append(pkgtuple) return dirlist def find_pkgdir_ABS(self): #grab selected items from abs tab and return their location dirlist=[] itemlist=self.tableWidget_2.selectedItems() prunedlist = self.tableWidget_2.keep_col_in_list(itemlist,1) if prunedlist == [] : self.showbox("Error", "No packages selected") itemText="selected package list was empty" self.update_ouputwindow(itemText) else: for item in prunedlist: itemText= str(item.text()) pkglocation=self.tableWidget_2.pkglocation(item) pkgtuple=(item,pkglocation) dirlist.append(pkgtuple) return dirlist def findPKGdir(self,directory, spackage): #""" # Searches for PKGBUILDS with name recursively in directory. # Returns False if the file was not found. # This is used by promote and update #""" print "Searching for %s in %s" %(spackage,directory) for root, dirs, files in os.walk(directory): if "PKGBUILD" in files: try: currentfile=root+"/PKGBUILD" package = parched.PKGBUILD(currentfile) pkgname = str(package.name).strip() pkgversion = str(package.version) if pkgname == spackage: return root except Exception, reason: pass return False def runcmd_thread(self,cmd): os.system(cmd) #ABS ACTIONS def viewABSAction(self): dir_list = self.find_pkgdir_ABS() for item,dir in dir_list: itemText= str(item.text()) #grab location from tableWidget pkglocation=self.tableWidget_2.pkglocation(item) filename = "%s/PKGBUILD" %(pkglocation) self.update_ouputwindow(sepLine) outText ="Viewing: %s" %(filename) self.update_ouputwindow(outText) cmd = "%s %s" %(self.all_settings['editor'], filename) if os.path.exists(filename): cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) else: outtext="Couldn't open file:%s" %filename self.update_ouputwindow(outtext) def launchxtermABSAction(self): dir_list = self.find_pkgdir_ABS() for item,dir in dir_list: cmd = "%s" %(self.all_settings['konsole']) cmd += dir print cmd cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) def exploreABSAction(self): dir_list = self.find_pkgdir_ABS() for item,dir in dir_list: cmd = "%s" %(self.all_settings['explore']) cmd = cmd + " " + dir cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) def select_newpkg_ABS_dir(self): dir = self.getExistingDirectory("Location to copy packages into.",self.all_settings['repo_location']) if dir: self.lineEdit_15.setText(dir) def open_copy_location(self): dst = self.lineEdit_15.text() dst = str(dst) if dst == '': outText="Location is emptly, please select a location" self.update_ouputwindow(outText) self.showbox("Error",outText,True) return cmd = "%s" %(self.all_settings['explore']) cmd = cmd + " " + dst cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) def copyABSAction(self): self.update_ouputwindow(sepLine) itemlist = self.find_pkgdir_ABS() dst = self.lineEdit_15.text() dst = str(dst) if dst == '': outText="Location is emptly, please select a location" self.update_ouputwindow(outText) self.showbox("Error",outText) return if itemlist: for item,dir in itemlist: srcdir=dir itemText= str(item.text()) itemrow=item.row() itemcol=item.column() try: outtext="Copy start %s -> %s" %(srcdir,dst) self.update_ouputwindow(outtext) cmd="rsync -ar --exclude src --exclude pkg %s %s" %(str(srcdir),dst ) #print cmd retcode = subprocess.call(cmd, shell=True) if retcode == 0 : self.update_status_cell_ABS(itemrow,itemText,"Copy complete!",itemcol) outtext="Copying finished!" self.update_ouputwindow(outtext) else: outtext="Copying Failed" self.update_status_cell_ABS(itemrow,itemText,"Failed Copy",itemcol) self.update_ouputwindow(outtext) return False except OSError, e: outtext="Copying Failed: %s " %(e) self.update_status_cell_ABS(itemrow,itemText,"Failed Copy",itemcol) self.update_ouputwindow(outtext) return False #--------pkg table options def editPkgbuild(self): dir_list = self.find_pkgdir() for item,dir in dir_list: itemText= str(item.text()) #grab location from tableWidget pkglocation=self.tableWidget.pkglocation(item) filename = "%s/PKGBUILD" %(pkglocation) cmd = "%s %s" %(self.all_settings['editor'], filename) if os.path.exists(filename): cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) else: self.update_ouputwindow(sepLine) outtext="Couldn't open PKGBUILD: %s" %filename self.update_ouputwindow(outtext) def viewbuildLog(self): dir_list = self.find_pkgdir() for item,dir in dir_list: itemText= str(item.text()) filename = "%s/%s.build.log" %(dir,itemText) if os.path.exists(filename): cmd = "%s %s" %(self.all_settings['editor'], filename) cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) else: self.update_ouputwindow(sepLine) outtext="Couldn't open buildlog: %s" %filename self.update_ouputwindow(outtext) self.showbox("Error",outtext) def addPkgAdhoc(self): group = "%s/adHoc.group" %self.all_settings['group_file_location'] self.addPkgGroup(group) def addPkgGroup(self,group=None,dir_list=None): groupname = group if dir_list == None: dir_list = self.find_pkgdir() if groupname == None: options = QtGui.QFileDialog.Options() options |= QtGui.QFileDialog.DontUseNativeDialog selectedFilter = QtCore.QString() groupname = QtGui.QFileDialog.getOpenFileName(QtGui.QFileDialog(), "Select Group File", self.all_settings['group_file_location'], "Text Files (*.group);;All Files (*)", selectedFilter, options) if groupname.isEmpty(): outtext="No group file was selected" self.update_ouputwindow(outtext) return filename = groupname print filename try: f = open(filename,"a") except: outtext="Couldn't open file for writing: %s" %filename print outtext return False for item,dir in dir_list: if not type(item) == str: itemText= str(item.text()) else: itemText=item.strip() location = dir.replace(self.all_settings["repo_location"]+"/", "") outtext = "Adding %s to %s" %(location,group) self.update_ouputwindow(outtext) f.write(location) f.write("\n") f.close() def actionChangeLog(self): dir_list = self.find_pkgdir() for item,dir in dir_list: itemText= str(item.text()) filename = "%s/__changelog" %(dir) if not os.path.exists(filename): rc = self.show_yes_no_box("", "__changelog not found, create the file?") if rc: cmd="touch %s" %filename os.system(cmd) else: return if os.path.exists(filename): cmd = "%s %s" %(self.all_settings['editor'], filename) self.update_ouputwindow(cmd) cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) else: self.update_ouputwindow(sepLine) outtext="Couldn't open changelog: %s" %filename self.update_ouputwindow(outtext) self.showbox("Error",outtext) def launchxterm(self): dir_list = self.find_pkgdir() for item,dir in dir_list: cmd = "%s" %(self.all_settings['konsole']) cmd += dir cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) def exploreAction(self): dir_list = self.find_pkgdir() for item,dir in dir_list: cmd = "%s" %(self.all_settings['explore']) cmd = cmd + " " + dir cmd = cmd, thread.start_new_thread(self.runcmd_thread, cmd) def backupAction(self): current_time=time.strftime("%Y-%m-%d_%H-%M-%S") dir_list = self.find_pkgdir() self.update_ouputwindow(sepLine) for item,dir in dir_list: itemText = item.text() itemrow = item.row() itemcol = item.column() filename = "%s/PKGBUILD" %dir new_filename = "%s/PKGBUILD.backup.%s.old" %(dir,current_time) try: outText = "Creating backup file %s" %new_filename self.update_ouputwindow(outText) self.update_status_cell(itemrow,itemText,"Working..",itemcol) shutil.copy(filename.strip(), new_filename.strip()) except Exception, reason: self.update_ouputwindow(str(reason)) self.update_ouputwindow(outText) outText = "Backup Failed for: %s" %filename self.update_status_cell(itemrow,itemText,"FAILED, PKGBUILD backup",itemcol) self.showbox(outText,str(reason)) return outText="Backup of PKGBUILD was a success" self.update_ouputwindow(outText) self.update_status_cell(itemrow,itemText,"Successful backup",itemcol) def check_for_changelog(self, pkgdir): filename = "%s/__changelog" %pkgdir return os.path.exists(filename) def updateAction(self): #update package from abs_location #it will take the name and search abs self.disable_table() dir_list = self.find_pkgdir() for item,dir in dir_list: itemText= str(item.text()) self.updatepkg(item,dir) self.enable_table() def updatepkg(self,item,dir): #updates our pkg with the contents from abs self.update_ouputwindow(sepLine) pkgname = item.text() itemrow = item.row() itemcol = item.column() itemText = pkgname outText = "Start update: %s" %pkgname self.update_ouputwindow(outText) destdir = dir has_changelog = self.check_for_changelog(destdir) if has_changelog : outText = "Will not update, because changelog was detected: %s" %pkgname self.update_ouputwindow(outText) self.showbox("Update pkg",outText) return False #search /var/abs for pkg outText = "Searching %s for %s" %(str(self.all_settings['abs_location']), pkgname) self.update_ouputwindow(outText) self.update_status_cell(itemrow,itemText,"Searching...",itemcol) srcdir = self.findPKGdir(str(self.all_settings['abs_location']), pkgname) if srcdir: destdir=dir if os.path.exists(destdir): rc = self.backup(destdir,itemText) if not rc: self.update_status_cell(itemrow,itemText,"Failed update",itemcol) self.enable_table() outtext="*Backup Failed during update package" self.update_ouputwindow(outtext) return False try: cmd="rsync -ar --exclude src --exclude pkg %s/ %s" %(str(srcdir),dir ) # print cmd retcode = subprocess.call(cmd, shell=True) if retcode == 0 : self.update_status_cell(itemrow,itemText,"Updated!",itemcol) outtext="Update of %s finished" %pkgname self.update_ouputwindow(outtext) else: outtext="Copying Failed" self.update_status_cell(itemrow,itemText,"Failed update",itemcol) self.update_ouputwindow(outtext) return False except OSError, e: outtext="Copying Failed: %s " %(e) self.update_status_cell(itemrow,itemText,"Failed update",itemcol) self.update_ouputwindow(outtext) return False return True else: outtext="Search did not find a package in ABS" self.update_status_cell(itemrow,itemText,"Failed",itemcol) self.update_ouputwindow(outtext) self.showbox("Error",outtext) def depAction(self): print "depaction" def updateMD5(self,filename): file_contents=[] f = open(filename,"r") lineIter= iter(f) for aLine in lineIter: if aLine.strip().startswith("md5sum"): if aLine.strip().endswith(")"): continue else: for aModule in lineIter: if aModule.strip().endswith(")"): break else: file_contents.append(aLine) f.close() try: f = open(filename,"w") except: outtext="Couldn't open file for writing: %s" %filename print outtext #self.update_status_cell(itemrow,itemText,"Failed",itemcol) #self.update_ouputwindow(outtext) return False for line in file_contents: f.write(line) f.close() cmd = "makepkg --asroot -g %s >> %s" %(filename,filename) retcode = subprocess.call(cmd, shell=True) if not retcode == 0 : return False return True def MD5Action(self): self.update_ouputwindow(sepLine) dir_list = self.find_pkgdir() self.disable_table() for item,dir in dir_list: itemText= str(item.text()) itemrow=item.row() itemcol=item.column() filename = "PKGBUILD" try: os.chdir(dir) except: outtext="MD5 failed for %s, dir didn't exisit" %itemText self.update_status_cell(itemrow,itemText,"MD5 Failed!",itemcol) self.update_ouputwindow(outtext) continue if self.updateMD5(filename): outtext="MD5 update complete for %s" %itemText self.update_status_cell(itemrow,itemText,"MD5 Updated!",itemcol) self.update_ouputwindow(outtext) else: outtext="MD5 update failed for %s" %itemText self.update_status_cell(itemrow,itemText,"MD5 Failed!",itemcol) self.update_ouputwindow(outtext) self.enable_table() def removepkg(self): print "remove" #repo-remove /path/to/repo.db.tar.gz kernel26 def removeGroup(self): self.update_ouputwindow(sepLine) options = QtGui.QFileDialog.Options() #if not self.native.isChecked(): options |= QtGui.QFileDialog.DontUseNativeDialog selectedFilter = QtCore.QString() fd = QtGui.QFileDialog() fileName = QtGui.QFileDialog.getOpenFileName(QtGui.QFileDialog(), "Select Group File to remove.....", self.all_settings['group_file_location'], "Text Files (*.group);;All Files (*)", selectedFilter, options) if fileName.isEmpty(): outtext="No files were selected for removal" self.update_ouputwindow(outtext) # self.showbox("Error", outtext,True) return #do removal try: os.remove(fileName) outtext="Removed: %s\n *you should reload the group files or restart" %fileName except Exception, reason: outtext = "Couldn't remove %s\n \t Reason: %s" %(fileName,reason) self.update_ouputwindow(outtext) def backup(self,pkgdir,pkgname): #"makepkg --asroot -f --source" filename = "%s.bld.backup.tar" %pkgname outtext="*Start Backup of %s -> %s " %(pkgdir,filename) self.update_ouputwindow(outtext) try: os.chdir(pkgdir) except: outtext="Backup Failed" self.update_ouputwindow(outtext) return False files = os.listdir('.') try: backupfile = tarfile.open(filename,'w') except Exception, reason: outtext="Backup Failed: %s " %(reason) self.update_ouputwindow(outtext) return False for file in files: if ( file == "src" ) or (file == "pkg"): continue else: backupfile.add(file) backupfile.close() outtext="* Backup finished" self.update_ouputwindow(outtext) return True def promote(self,prunedlist,dir): for item in prunedlist: itemText= str(item.text()) itemrow = item.row() itemcol = item.column() self.update_status_cell(itemrow,itemText,"Working...",itemcol) outtext = "Promotion of %s -> %s" %(itemText,dir) self.update_ouputwindow(outtext) srcdir=self.findPKGdir(str(self.all_settings['repo_location']), itemText) destdir=dir+"/"+itemText if os.path.exists(destdir): rc = self.backup(destdir,itemText) if not rc: self.update_status_cell(itemrow,itemText,"Failed promotion",itemcol) self.enable_table() outtext="*Backup Failed during promotion " self.update_ouputwindow(outtext) return False outtext="Copying to %s" %(destdir) self.update_status_cell(itemrow,itemText,"Copying...",itemcol) self.update_ouputwindow(outtext) try: cmd="rsync -ar --exclude src --exclude pkg %s %s" %(str(srcdir),dir ) retcode = subprocess.call(cmd, shell=True) if retcode == 0 : self.update_status_cell(itemrow,itemText,"Promoted",itemcol) else: outtext="Copying Failed" self.update_status_cell(itemrow,itemText,"Failed promotion",itemcol) self.update_ouputwindow(outtext) return False except OSError, e: outtext="Copying Failed: %s " %(e) self.update_status_cell(itemrow,itemText,"Failed promotion",itemcol) self.update_ouputwindow(outtext) return False #self.update_status_cell(itemrow,itemText,"Promoted",itemcol) # except Exception, reason: # outtext="Copying Failed: %s " %(reason) # self.update_status_cell(itemrow,itemText,"Failed promotion",itemcol) # self.update_ouputwindow(outtext) outtext="**Complete: Promotion of %s" %itemText self.update_ouputwindow(outtext) outtext="You should regenerate the repo" self.update_ouputwindow(outtext) return True def promoteAction(self): self.update_ouputwindow(sepLine) self.disable_table() itemlist=self.tableWidget.selectedItems() prunedlist = self.tableWidget.keep_col_in_list(itemlist,1) if prunedlist == [] : self.showbox("Error", "No packages selected") itemText="selected package list was empty" self.update_ouputwindow(itemText) else: dir = self.getExistingDirectory("Select location",self.all_settings['repo_location']) if dir: args=(prunedlist,dir) thread.start_new_thread(self.promote, args) else: self.showbox("Error", "Dest dir was not selected") itemText="Directory was not selected" self.update_ouputwindow(itemText) self.enable_table() def save_text_to_file(self): self.update_ouputwindow(sepLine) contents= self.textEdit.toPlainText() filename = self.setSaveFileName() f = open(filename,"w") f.write(contents) #f.write("\n") f.close() outText="Text saved to file: %s " %filename self.update_ouputwindow(sepLine) def setSaveFileName(self): options = QtGui.QFileDialog.Options() #if not self.native.isChecked(): options |= QtGui.QFileDialog.DontUseNativeDialog selectedFilter = QtCore.QString() fd = QtGui.QFileDialog() fileName = QtGui.QFileDialog.getSaveFileName(QtGui.QFileDialog(), "QFileDialog.getSaveFileName()", "Save File", "All Files (*);;Text Files (*.txt)", selectedFilter, options) if fileName.isEmpty(): fileName="status_out.txt" return fileName def getExistingDirectory(self,title,startdir): options = QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly directory = QtGui.QFileDialog.getExistingDirectory(QtGui.QFileDialog(), title, startdir, options) #self.directoryLabel.text() if not directory.isEmpty(): return directory return False def select_group_dir(self): dir = self.getExistingDirectory("Location to store group files","/") if dir: self.lineEdit_4.setText(dir) def select_abs_dir(self): dir = self.getExistingDirectory("Location of ABS","/") if dir: self.lineEdit_5.setText(dir) def select_repo_dir(self): dir = self.getExistingDirectory("Location of PKGBUILD repository","/") if dir: self.lineEdit_6.setText(dir) def select_profile_dir(self): dir = self.getExistingDirectory("Location of iso profiles","/") if dir: self.lineEdit_19.setText(dir) def select_newpkg_dir(self): dir = self.getExistingDirectory("Location to create new packages.",self.all_settings['repo_location']) if dir: self.lineEdit_14.setText(dir) def create_new_pkg(self): self.update_ouputwindow(sepLine) pkgname = self.lineEdit.text() pkgversion = self.lineEdit_2.text() pkgurl = self.lineEdit_3.text() pkgdesc = self.plainTextEdit_2.toPlainText() useinstall = self.checkBox.isChecked() location = self.lineEdit_14.text() outtext = "Creating new package %s" %pkgname self.update_ouputwindow(outtext) if location == '' or not location : print "location is null, can't do anything" return filename = "%s/PKGBUILD.proto" %self.all_settings['repo_location'] try: f = open(filename,"r") file_contents = f.readlines() f.close() except: print "couldn't open template file" return new_contents=[] for line in file_contents: if line.startswith("pkgname="): new_line = 'pkgname="%s" \n' %pkgname new_contents.append(new_line) elif line.startswith("pkgver="): new_line = 'pkgver="%s" \n' %pkgversion new_contents.append(new_line) elif line.startswith("url="): new_line = 'url="%s" \n' %pkgurl new_contents.append(new_line) elif line.startswith("pkgdesc="): new_line = 'pkgdesc="%s" \n' %pkgdesc new_contents.append(new_line) elif useinstall: if line.startswith("install"): new_line = "install=%s.install \n" %pkgname new_contents.append(new_line) else: new_contents.append(line) else: new_contents.append(line) filename="%s/%s/PKGBUILD" %(location,pkgname) mydir = "%s/%s" %(location,pkgname) if not os.path.exists(mydir): os.mkdir(mydir) try: f = open(filename,"w") except: print "couldn't open pkgbuild file for writing" for line in new_contents: f.write(line) f.close() if useinstall: src = "%s/proto.install" %self.all_settings['repo_location'] dest="%s/%s/%s.install" %(location,pkgname,pkgname) shutil.copyfile(src, dest) def reset_pkg_screen(self): self.update_ouputwindow(sepLine) outtext="Reset new package screen" self.update_ouputwindow(outtext) self.lineEdit.setText('') self.lineEdit_2.setText('') self.lineEdit_3.setText('') self.plainTextEdit_2.setPlainText('') def run_sync(self): runcmd=self.all_settings['sync'] if self.radioButton_release.isChecked(): cmdargs=["release"] elif self.radioButton_testing.isChecked(): cmdargs=["testing"] elif self.radioButton_mythvantage.isChecked(): cmdargs=["mythvantage"] elif self.radioButton_source.isChecked(): cmdargs=["source"] #cmdargs=[str(self.comboBox_buildType.currentText())] self.run_cmd_thread.value_init(runcmd,cmdargs) def upload_files(self): srcfile=self.lineEdit_upload_cd_dest.text() if srcfile == '' : outText="Source file is empty" self.update_ouputwindow(outText) self.showbox("Error",outText,True) if not os.path.exists(srcfile): outText="Source file does not exist" self.showbox("Error",outText,True) dest=self.lineEdit_18.text() if dest=='': outText="Remote Dir is empty" self.update_ouputwindow(outText) self.showbox("Error",outText,True) runcmd=self.all_settings['upload_iso'] cmdargs=[srcfile,dest] self.upload_file_thread.value_init(runcmd,cmdargs) def createcd(self): for i in isoProfile: btext=i[0] bname=i[1] runcmd=self.all_settings['create_iso_cmd'] cmd="buttonChecked = self.%s.isChecked()" %bname exec(cmd) if buttonChecked: self.update_ouputwindow(sepLine) outText="Making ISO with profile: %s" %btext self.update_ouputwindow(outText) cmdargs = [btext] self.run_cmd_thread.value_init(runcmd,cmdargs) break def updatePacmanDB(self): runcmd="pacman" cmdargs=["-Sy"] self.run_cmd_thread.value_init(runcmd,cmdargs) def clearAdhoc(self): fileName = "%s/adHoc.group" %self.all_settings['group_file_location'] try: os.remove(fileName) outtext="Removed: %s\n Reloading group box" %fileName except Exception, reason: outtext = "Couldn't clear %s\n \t Reason: %s" %(fileName,reason) self.update_ouputwindow(outtext) self.populate_group_box() def createGroup(self): text, ok = QtGui.QInputDialog.getText(None, 'Input Dialog', 'Enter group name:') if ok: outtext = "Creating group: %s" %(text) self.update_ouputwindow(outtext) filename = ("%s/%s.group") %(self.all_settings['group_file_location'],text) cmd="touch %s" %filename try: os.system(cmd) except: outtext = "Could not create group: %s" %(text) self.update_ouputwindow(outtext) def updateSystem(self): runcmd="pacman" cmdargs=["-Su","--noconfirm"] self.run_cmd_thread.value_init(runcmd,cmdargs) def switch_pacman_to_loca(self): print "switch to local" cmd='''sed -i "s/Server = http\:.*knoppmyth.net.*$/ Server = file:\/\/data\/pkg_repo\/i686\/\$repo/g" /etc/pacman.conf''' os.system(cmd) self.updatePacmanDB() def switch_pacman_to_remote(self): print "switch to remote" cmd='''sed -i "s/Server = file.*$/ Server = http:\/\/knoppmyth.net\/repo\/i686\/\$repo/g" /etc/pacman.conf''' os.system(cmd) self.updatePacmanDB() def save_config_settings(self): from __main__ import settings_dict homedir = os.path.expanduser("~") self.update_ouputwindow("Saved configuration options") bld_settings = shelve.open(bld_data, writeback=True) for key,val in settings_dict.iteritems(): cmd= 'self.%s.text()' %val try: tempdata = eval(cmd) except: continue bld_settings[key] = tempdata bld_settings.close() def save_package_options(self): self.update_ouputwindow("Saved package options") from __main__ import options_dict bld_settings = shelve.open(bld_data, writeback=True) for key,val in options_dict.iteritems(): #cmd= 'self.%s.isChecked()' %val cmd= 'self.%s.checkState()' %val tempdata = eval(cmd) bld_settings[key] = tempdata bld_settings.close() def save_all_options(self): self.save_config_settings() self.save_package_options() def load_settings_from_file(self,Verbose=True): from __main__ import settings_dict from __main__ import options_dict bld_settings = shelve.open(bld_data, writeback=True) for key,val in settings_dict.iteritems(): if bld_settings.has_key(key): tempdata = bld_settings.get(key) cmd = 'self.%s.setText(tempdata)' %val eval(cmd) self.all_settings[key]=tempdata for key,val in options_dict.iteritems(): if bld_settings.has_key(key): tempdata = bld_settings.get(key) cmd = 'self.%s.setCheckState(tempdata)' %(val) try: eval(cmd) self.all_settings[key]=tempdata except: pass bld_settings.close() if Verbose: self.update_ouputwindow("Loaded settings from file") def get_checkbox_state(self): mp_arg_list=[] if self.checkBox_chroot.isChecked(): mp_arg_list.append("--chroot ") if self.checkBox_download.isChecked(): mp_arg_list.append("-o ") if self.checkBox_force.isChecked(): mp_arg_list.append("-f") if self.checkBox_syncinstall.isChecked(): mp_arg_list.append("-s") if self.checkBox_clean.isChecked(): mp_arg_list.append("-c") if self.checkBox_remove.isChecked(): mp_arg_list.append("-r") if self.checkBox_holdver.isChecked(): mp_arg_list.append("--holdver") if self.checkBox_bumpver.isChecked(): mp_arg_list.append("-b") if self.checkBox_install.isChecked(): mp_arg_list.append("-i") if self.checkBox_ignore.isChecked(): mp_arg_list.append("-d") return mp_arg_list #-------------------------------------------------------------- def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "BLD", None, QtGui.QApplication.UnicodeUTF8)) self.label_22.setText(QtGui.QApplication.translate("MainWindow", "Search Group", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Search", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_5.setText(QtGui.QApplication.translate("MainWindow", "clear", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_3.setText(QtGui.QApplication.translate("MainWindow", "Search All", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setToolTip(QtGui.QApplication.translate("MainWindow", "Select all packages", None, QtGui.QApplication.UnicodeUTF8)) self.lcdNumber_2.setToolTip(QtGui.QApplication.translate("MainWindow", "Total number of packages loaded", None, QtGui.QApplication.UnicodeUTF8)) self.lcdNumber.setToolTip(QtGui.QApplication.translate("MainWindow", "Total number of packages selected", None, QtGui.QApplication.UnicodeUTF8)) self.comboBox.setToolTip(QtGui.QApplication.translate("MainWindow", "Current group file.", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_8.setToolTip(QtGui.QApplication.translate("MainWindow", "Deselect all packages", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_8.setText(QtGui.QApplication.translate("MainWindow", "Select None", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_9.setText(QtGui.QApplication.translate("MainWindow", "Select All", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.setSortingEnabled(True) self.tableWidget.horizontalHeaderItem(0).setText(QtGui.QApplication.translate("MainWindow", ".", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(1).setText(QtGui.QApplication.translate("MainWindow", "Name", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(2).setText(QtGui.QApplication.translate("MainWindow", "Version", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(3).setText(QtGui.QApplication.translate("MainWindow", "Status", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(4).setText(QtGui.QApplication.translate("MainWindow", "Group", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(5).setText(QtGui.QApplication.translate("MainWindow", "Location", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget.horizontalHeaderItem(6).setText(QtGui.QApplication.translate("MainWindow", "Description", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("MainWindow", "Packages", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_14.setTitle(QtGui.QApplication.translate("MainWindow", "Profiles", None, QtGui.QApplication.UnicodeUTF8)) self.create_cd.setText(QtGui.QApplication.translate("MainWindow", "Create CD", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_7), QtGui.QApplication.translate("MainWindow", "Create ISO", None, QtGui.QApplication.UnicodeUTF8)) self.radioButton_release.setText(QtGui.QApplication.translate("MainWindow", "release", None, QtGui.QApplication.UnicodeUTF8)) self.radioButton_testing.setText(QtGui.QApplication.translate("MainWindow", "testing", None, QtGui.QApplication.UnicodeUTF8)) self.radioButton_mythvantage.setText(QtGui.QApplication.translate("MainWindow", "mythvantage", None, QtGui.QApplication.UnicodeUTF8)) self.radioButton_source.setText(QtGui.QApplication.translate("MainWindow", "source", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_sync.setText(QtGui.QApplication.translate("MainWindow", "Sync", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_8), QtGui.QApplication.translate("MainWindow", "Repo Sync", None, QtGui.QApplication.UnicodeUTF8)) self.label_19.setText(QtGui.QApplication.translate("MainWindow", "File to Upload:", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_upload_cd_dest.setText(QtGui.QApplication.translate("MainWindow", "/tmp/testcd-2.iso", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_6.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.label_20.setText(QtGui.QApplication.translate("MainWindow", "Remote Dir.", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_18.setText(QtGui.QApplication.translate("MainWindow", "/tmp", None, QtGui.QApplication.UnicodeUTF8)) self.pushbutton_upload.setText(QtGui.QApplication.translate("MainWindow", "upload", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_9), QtGui.QApplication.translate("MainWindow", "ISO upload", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), QtGui.QApplication.translate("MainWindow", "Misc", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QtGui.QApplication.translate("MainWindow", "Output", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "Package Name", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Package Version", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("MainWindow", "URL", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("MainWindow", "Description", None, QtGui.QApplication.UnicodeUTF8)) self.label_15.setText(QtGui.QApplication.translate("MainWindow", "Location", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox.setText(QtGui.QApplication.translate("MainWindow", "Use Install File", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_4.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), QtGui.QApplication.translate("MainWindow", "Create New Package", None, QtGui.QApplication.UnicodeUTF8)) self.label_16.setText(QtGui.QApplication.translate("MainWindow", "Copy ABS files to: ", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_15.setToolTip(QtGui.QApplication.translate("MainWindow", "Location the ABS packages will be copied into.", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_5.setToolTip(QtGui.QApplication.translate("MainWindow", "Select directory", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_5.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_7.setToolTip(QtGui.QApplication.translate("MainWindow", "Opens location of \"copy abs files\" in a file manager", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_7.setText(QtGui.QApplication.translate("MainWindow", "open location", None, QtGui.QApplication.UnicodeUTF8)) self.label_23.setText(QtGui.QApplication.translate("MainWindow", "Search ABS repo:", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_2.setText(QtGui.QApplication.translate("MainWindow", "Search", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_3.setText(QtGui.QApplication.translate("MainWindow", "Clear", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_4.setText(QtGui.QApplication.translate("MainWindow", "Search All", None, QtGui.QApplication.UnicodeUTF8)) self.lcdNumber_3.setToolTip(QtGui.QApplication.translate("MainWindow", "Total files in the group", None, QtGui.QApplication.UnicodeUTF8)) self.lcdNumber_abs2.setToolTip(QtGui.QApplication.translate("MainWindow", "Total files selected", None, QtGui.QApplication.UnicodeUTF8)) self.comboBox_2.setToolTip(QtGui.QApplication.translate("MainWindow", "Current ABS group file", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.setSortingEnabled(True) self.tableWidget_2.horizontalHeaderItem(0).setText(QtGui.QApplication.translate("MainWindow", ".", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(1).setText(QtGui.QApplication.translate("MainWindow", "Name", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(2).setText(QtGui.QApplication.translate("MainWindow", "Version", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(3).setText(QtGui.QApplication.translate("MainWindow", "Status", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(4).setText(QtGui.QApplication.translate("MainWindow", "Group", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(5).setText(QtGui.QApplication.translate("MainWindow", "Location", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidget_2.horizontalHeaderItem(6).setText(QtGui.QApplication.translate("MainWindow", "Description", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), QtGui.QApplication.translate("MainWindow", "Copy from ABS", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_3.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_2.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.label_7.setText(QtGui.QApplication.translate("MainWindow", "Repostory location", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText(QtGui.QApplication.translate("MainWindow", "Group file location", None, QtGui.QApplication.UnicodeUTF8)) self.label_6.setText(QtGui.QApplication.translate("MainWindow", "ABS location", None, QtGui.QApplication.UnicodeUTF8)) self.label_21.setText(QtGui.QApplication.translate("MainWindow", "ISO profile dir", None, QtGui.QApplication.UnicodeUTF8)) self.toolButton_8.setText(QtGui.QApplication.translate("MainWindow", "...", None, QtGui.QApplication.UnicodeUTF8)) self.label_13.setText(QtGui.QApplication.translate("MainWindow", "dependancy", None, QtGui.QApplication.UnicodeUTF8)) self.label_10.setText(QtGui.QApplication.translate("MainWindow", "editor", None, QtGui.QApplication.UnicodeUTF8)) self.label_8.setText(QtGui.QApplication.translate("MainWindow", "explore", None, QtGui.QApplication.UnicodeUTF8)) self.label_9.setText(QtGui.QApplication.translate("MainWindow", "konsole", None, QtGui.QApplication.UnicodeUTF8)) self.label_12.setText(QtGui.QApplication.translate("MainWindow", "makepkg command", None, QtGui.QApplication.UnicodeUTF8)) self.label_14.setText(QtGui.QApplication.translate("MainWindow", "repo check", None, QtGui.QApplication.UnicodeUTF8)) self.label_11.setText(QtGui.QApplication.translate("MainWindow", "Sync", None, QtGui.QApplication.UnicodeUTF8)) self.label_17.setText(QtGui.QApplication.translate("MainWindow", "create ISO", None, QtGui.QApplication.UnicodeUTF8)) self.label_18.setText(QtGui.QApplication.translate("MainWindow", "upload ISO", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_config_save.setText(QtGui.QApplication.translate("MainWindow", "Save", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), QtGui.QApplication.translate("MainWindow", "Configuration", None, QtGui.QApplication.UnicodeUTF8)) self.dockWidget.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Make package options", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_chroot.setToolTip(QtGui.QApplication.translate("MainWindow", "Check this to build the package in a chroot", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_chroot.setText(QtGui.QApplication.translate("MainWindow", "build in chroot", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_download.setToolTip(QtGui.QApplication.translate("MainWindow", " Download and extract files only, but do not build them. Useful with the --noextract option if you\n" " wish to tweak the files in src/ before building.", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_download.setText(QtGui.QApplication.translate("MainWindow", "Download only", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_force.setToolTip(QtGui.QApplication.translate("MainWindow", "makepkg will not build a package if a built package already exists in the PKGDEST (set in\n" " makepkg.conf(5)) directory, which may default to the current directory. This allows the built\n" " package to be overwritten.\n" "", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_force.setText(QtGui.QApplication.translate("MainWindow", "Force build", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_syncinstall.setToolTip(QtGui.QApplication.translate("MainWindow", "Install missing dependencies using pacman. When build-time or run-time dependencies are not found,\n" " pacman will try to resolve them. If successful, the missing packages will be downloaded and\n" " installed.\n" "", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_syncinstall.setText(QtGui.QApplication.translate("MainWindow", "Install dependencies", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_clean.setToolTip(QtGui.QApplication.translate("MainWindow", " Clean up leftover work files and directories after a successful build.", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_clean.setText(QtGui.QApplication.translate("MainWindow", " Clean after build", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_remove.setToolTip(QtGui.QApplication.translate("MainWindow", "Upon successful build, remove any dependencies installed by makepkg during dependency\n" " auto-resolution and installation when using -s (install dependencies)", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_remove.setText(QtGui.QApplication.translate("MainWindow", "Remove dependencies", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_holdver.setToolTip(QtGui.QApplication.translate("MainWindow", " Useful when building development versions of packages. Prevents makepkg from automatically bumping\n" " the pkgver to the latest revision number in the package’s development tree", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_holdver.setText(QtGui.QApplication.translate("MainWindow", "Hold Version", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_install.setToolTip(QtGui.QApplication.translate("MainWindow", "Install or upgrade the package after a successful build using pacman.", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_install.setText(QtGui.QApplication.translate("MainWindow", "Install after build", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_ignore.setToolTip(QtGui.QApplication.translate("MainWindow", "Do not perform any dependency checks. This will let you override and ignore any dependencies\n" " required. There is a good chance this option will break the build process if all of the\n" " dependencies are not installed.\n" "", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_ignore.setText(QtGui.QApplication.translate("MainWindow", "Ignore dependencies", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_bumpver.setToolTip(QtGui.QApplication.translate("MainWindow", "Increase the pkg release by one.", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_bumpver.setText(QtGui.QApplication.translate("MainWindow", "Bump pkg version", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_2.setToolTip(QtGui.QApplication.translate("MainWindow", "Toggles if the output from the build is shown in the output windows. \n" " A half check will enable the\"output\" tab.\n" " A full check will show output in both windows.", None, QtGui.QApplication.UnicodeUTF8)) self.checkBox_2.setText(QtGui.QApplication.translate("MainWindow", "View Log during build", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_4.setText(QtGui.QApplication.translate("MainWindow", "clear", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_stop.setText(QtGui.QApplication.translate("MainWindow", "Stop", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_go.setText(QtGui.QApplication.translate("MainWindow", "Make package", None, QtGui.QApplication.UnicodeUTF8)) self.menuWelcome.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuAbout.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.menuRepository_2.setTitle(QtGui.QApplication.translate("MainWindow", "Repository", None, QtGui.QApplication.UnicodeUTF8)) self.menuSystem.setTitle(QtGui.QApplication.translate("MainWindow", "System", None, QtGui.QApplication.UnicodeUTF8)) self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8)) self.actionExit.setShortcut(QtGui.QApplication.translate("MainWindow", "Alt+Q", None, QtGui.QApplication.UnicodeUTF8)) self.actionToggle_options.setText(QtGui.QApplication.translate("MainWindow", "Toggle options", None, QtGui.QApplication.UnicodeUTF8)) self.actionToggle_output_window.setText(QtGui.QApplication.translate("MainWindow", "Toggle output window", None, QtGui.QApplication.UnicodeUTF8)) self.actionUpdate.setText(QtGui.QApplication.translate("MainWindow", "Update ALL packages from ABS", None, QtGui.QApplication.UnicodeUTF8)) self.actionUpdate_group_list.setText(QtGui.QApplication.translate("MainWindow", "Update group list", None, QtGui.QApplication.UnicodeUTF8)) self.actionCreate_new_PKG.setText(QtGui.QApplication.translate("MainWindow", "New package", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) self.actionHelp.setText(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionCheck_for_REPO_problems.setText(QtGui.QApplication.translate("MainWindow", "Check for problems", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_output.setText(QtGui.QApplication.translate("MainWindow", "Save output", None, QtGui.QApplication.UnicodeUTF8)) self.actionHelp_2.setText(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_output_window_to_file.setText(QtGui.QApplication.translate("MainWindow", "Save output window to file", None, QtGui.QApplication.UnicodeUTF8)) self.actionUpdate_packages_from_ABS.setText(QtGui.QApplication.translate("MainWindow", "Update ALL packages from ABS", None, QtGui.QApplication.UnicodeUTF8)) self.actionCreate_new_package.setText(QtGui.QApplication.translate("MainWindow", "Create new package", None, QtGui.QApplication.UnicodeUTF8)) self.actionUpdate_group_list_2.setText(QtGui.QApplication.translate("MainWindow", "Regenerate package group list", None, QtGui.QApplication.UnicodeUTF8)) self.actionCheck_for_problems.setText(QtGui.QApplication.translate("MainWindow", "Check for problems", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout_2.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) self.actionHelp_3.setText(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionQuit.setText(QtGui.QApplication.translate("MainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout_3.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) self.actionHelp_4.setText(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionUpdate_group_list_abs.setText(QtGui.QApplication.translate("MainWindow", "Regenerate ABS package group list", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_configuration_file.setText(QtGui.QApplication.translate("MainWindow", "Load configuration file", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_All_options_including_make_package_option.setText(QtGui.QApplication.translate("MainWindow", "Save ALL options", None, QtGui.QApplication.UnicodeUTF8)) self.action_Save_make_package_options.setText(QtGui.QApplication.translate("MainWindow", "Save make package options", None, QtGui.QApplication.UnicodeUTF8)) self.actionReset_UI.setText(QtGui.QApplication.translate("MainWindow", "Reset UI", None, QtGui.QApplication.UnicodeUTF8)) self.actionReload_Group_packages.setText(QtGui.QApplication.translate("MainWindow", "Reload Group packages", None, QtGui.QApplication.UnicodeUTF8)) self.actionReload_ABS_Group_packages.setText(QtGui.QApplication.translate("MainWindow", "Reload ABS Group packages", None, QtGui.QApplication.UnicodeUTF8)) self.actionSearch_current_Repository.setText(QtGui.QApplication.translate("MainWindow", "Search repository", None, QtGui.QApplication.UnicodeUTF8)) self.actionSearch_current_Repository.setShortcut(QtGui.QApplication.translate("MainWindow", "Alt+S", None, QtGui.QApplication.UnicodeUTF8)) self.actionSearch_All_This_includes_ABS.setText(QtGui.QApplication.translate("MainWindow", "Search All (This includes ABS)", None, QtGui.QApplication.UnicodeUTF8)) self.actionRemove_Group.setText(QtGui.QApplication.translate("MainWindow", "Remove Group", None, QtGui.QApplication.UnicodeUTF8)) self.actionRefresh_database.setText(QtGui.QApplication.translate("MainWindow", "Refresh package database", None, QtGui.QApplication.UnicodeUTF8)) self.actionInstall_all_updates.setText(QtGui.QApplication.translate("MainWindow", "System update", None, QtGui.QApplication.UnicodeUTF8)) self.actionSwitch_to_local.setText(QtGui.QApplication.translate("MainWindow", "Switch to local", None, QtGui.QApplication.UnicodeUTF8)) self.actionSwitch_to_remote.setText(QtGui.QApplication.translate("MainWindow", "Switch to remote", None, QtGui.QApplication.UnicodeUTF8)) self.actionClear_Adhoc_Group.setText(QtGui.QApplication.translate("MainWindow", "Clear Adhoc Groupe", None, QtGui.QApplication.UnicodeUTF8)) self.actionCreate_Group.setText(QtGui.QApplication.translate("MainWindow", "Create Group", None, QtGui.QApplication.UnicodeUTF8))