From d965ca16468975fc34e040f022bc7382a6ded78a Mon Sep 17 00:00:00 2001 From: James Meyer Date: Wed, 30 Sep 2009 22:03:34 -0500 Subject: bld: first checkin. Mostly functional, still need to work out bugs with kmsync. --- .gitignore | 1 + build_tools/bin/bld.py | 76 ++ build_tools/bin/bld_resource.py | 2740 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 2817 insertions(+) create mode 100755 build_tools/bin/bld.py create mode 100755 build_tools/bin/bld_resource.py diff --git a/.gitignore b/.gitignore index 0561371..26f0c71 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ overlay.xpk .viminfo build_tools/clarch/profiles/local local +*.pyc diff --git a/build_tools/bin/bld.py b/build_tools/bin/bld.py new file mode 100755 index 0000000..c28e31d --- /dev/null +++ b/build_tools/bin/bld.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys +try: + from PyQt4 import QtCore, QtGui + from PyQt4.QtCore import * + from PyQt4.QtGui import * +except: + print "pyqt4 needs to be installed" + sys.exit(1) + +from bld_resource import * +import thread +import signal +signal.signal(signal.SIGINT, signal.SIG_DFL) + + +settings_dict={} +settings_dict['group_file_location']='lineEdit_4' +settings_dict['abs_location'] = 'lineEdit_5' +settings_dict['repo_location'] = 'lineEdit_6' +settings_dict['editor'] = 'lineEdit_7' +settings_dict['sync'] = 'lineEdit_8' +settings_dict['explore'] = 'lineEdit_9' +settings_dict['konsole'] = 'lineEdit_10' +settings_dict['makepkg'] = 'lineEdit_11' +settings_dict['depcheck'] = 'lineEdit_12' +settings_dict['repocheck'] = 'lineEdit_13' +settings_dict['create_iso_cmd'] = 'lineEdit_16' +settings_dict['upload_iso'] = 'lineEdit_17' +settings_dict['profile_iso'] = 'lineEdit_19' + + +options_dict={} +options_dict['chroot'] = 'checkBox_chroot' +options_dict['download_only'] = 'checkBox_download' +options_dict['force_install'] = 'checkBox_force' +options_dict['syncinstall'] = 'checkBox_syncinstall' +#options_dict['createmd5'] = 'checkBox_md5' +options_dict['cleardir'] = 'checkBox_clean' +options_dict['remove_sync'] = 'checkBox_remove' +options_dict['holdver'] ='checkBox_holdver' +options_dict['bumpver'] = 'checkBox_bumpver' +options_dict['install'] = 'checkBox_install' +options_dict['ignore_deps'] = 'checkBox_ignore' +options_dict['logview'] = 'checkBox_2' + + + + +class MyForm(QtGui.QMainWindow): + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + self.ui = Ui_MainWindow() + self.ui.setupUi(self) + #self.ui.populate_group_box() + self.ui.load_settings_from_file(False) + thread.start_new_thread(self.ui.populate_group_box, ()) + thread.start_new_thread(self.ui.populate_abs_group_box,()) + self.ui.populate_iso_profile() + self.ui.enable_go_button() + self.ui.tabWidget.setCurrentIndex(0) + self.ui.load_settings_from_file(False) + + + + +if __name__ == "__main__": + # sys.stdout=Unbuffered(sys.stdout) + app = QtGui.QApplication(sys.argv) + myapp = MyForm() + app.processEvents() + myapp.show() + + sys.exit(app.exec_()) diff --git a/build_tools/bin/bld_resource.py b/build_tools/bin/bld_resource.py new file mode 100755 index 0000000..30c5986 --- /dev/null +++ b/build_tools/bin/bld_resource.py @@ -0,0 +1,2740 @@ +# -*- 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 + +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 + +print bld_data + +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") + changeLogAction = menu.addAction("View changelog") + buildLogAction = menu.addAction("View buildlog") + menu.addSeparator() + xtermAction = menu.addAction("Open terminal here") + exploreAction = menu.addAction("Open File browser here") + menu.addSeparator() + promoteAction = menu.addAction("Promote package") + updateAction = menu.addAction("Update pkg from ABS") + #depAction = menu.addAction("Check package for dependencies") + md5Action = menu.addAction("Generate MD5 sums") + removeAction = menu.addAction("Remove package") + menu.addSeparator() + resetStatus = menu.addAction("Reset status") + resetBuildOrder = menu.addAction("Reset build order") + + action = menu.exec_(self.mapToGlobal(event.pos())) + #if action == quitAction: + # qApp.quit() + if action == editAction: + self.emit(QtCore.SIGNAL('edit()')) + if action == changeLogAction: + self.emit(QtCore.SIGNAL('changeLogAction()')) + if action == buildLogAction: + self.emit(QtCore.SIGNAL('buildLogAction()')) + if action == xtermAction: + self.emit(QtCore.SIGNAL('launchxterm()')) + if action == exploreAction: + self.emit(QtCore.SIGNAL('exploreAction()')) + if action == backupAction: + self.emit(QtCore.SIGNAL('backupAction()')) + if action == updateAction: + self.emit(QtCore.SIGNAL('updateAction()')) + #if action == depAction: + # self.emit(QtCore.SIGNAL('depAction()')) + if action == md5Action: + self.emit(QtCore.SIGNAL('MD5Action()')) + if action == removeAction: + self.emit(QtCore.SIGNAL('removeAction()')) + if action == promoteAction: + self.emit(QtCore.SIGNAL('promoteAction()')) + if action == resetStatus: + self.resetstatus() + if action == resetBuildOrder: + self.resetBuildOrder() + + 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 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,4) + 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 + + + # self.close() + + def runcmd(self,cmd_in,itemText,itemrow,builddir): + arglist = " ".join(self.mparglist) + cwd=os.getcwd() + os.chdir(builddir) + #print builddir + cmd="%s %s %s" %(cmd_in, arglist, itemText) + # print cmd + retcode = -1 + try: + logfile = "%s/%s.build.log" %(builddir,itemText) + f = open(logfile, 'w') + child = pexpect.spawn(cmd,cwd=builddir) + 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 + #os.chdir(cwd) + #process = subprocess.Popen( + #cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + #while True: + #outitemText = (process.stdout.readline()) + #if outitemText == '' and process.poll() != None: + #break + #if outitemText != '': + #self.emit(SIGNAL("update(QString)"),outitemText) + ## sys.stdout.write(itemText) + ##sys.stdout.flush() + #self.msleep(5) + + #retcode = process.poll() + + def render(self,cmd_in,itemlist,mparglist): + self.itemlist = itemlist + self.mparglist = mparglist + self.cmd_in = cmd_in + self.running = 0 + 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 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): + 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) + skipped=[] + 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" + 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] + + #package = parched.PKGBUILD(currentfile) + #pkgname = str(package.name) + #pkgversion = str(package.version) + #pkgdescription = str(package.description) + + except Exception, e: + print "Couldn't parse file: %s\n \treason: %s" %(currentfile,e) + skipped.append(currentfile) + continue + itemTextList=[pkgname,pkgversion,"-",pkglocation,pkgdescription] + 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.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) + 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: %s" %self.runcmd + self.emit(SIGNAL("update(QString)"),line) + pass + self.emit(SIGNAL("enable_tab2(bool)"),True) + + #return retcode + + 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(923, 757) + 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(200, 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(True) + self.tableWidget.setObjectName("tableWidget") + self.tableWidget.setColumnCount(6) + 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) + 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.setObjectName("tableWidget_2") + self.tableWidget_2.setColumnCount(6) + 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) + 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, 923, 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") + 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.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.addAction(self.actionRemove_Group) + self.menubar.addAction(self.menuWelcome.menuAction()) + self.menubar.addAction(self.menuRepository_2.menuAction()) + self.menubar.addAction(self.menuAbout.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(4,5) + self.tableWidget_2.horizontalHeader().resizeSection(4,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() + sys.stdout = OutLog(self.textEdit,out=sys.__stdout__) + sys.stderr = OutLog(self.textEdit,out=sys.__stdout__) + #self.DLG = search.BookmarksDlg(['uno', 'dos'], None) + #self.DLG.hide() + + + + + + + #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) + + + #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) + #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.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 ) + #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) + + + #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 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): + print "no problems to report, but I didn't run anything" + + 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,5] + for i in columnlist: + self.tableWidget.resizeColumnToContents(i) + self.tableWidget_2.resizeColumnToContents(i) + + 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 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, 2).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, 2).setText(status,) + + def insert_item(self,itemTextList): + pkgname=itemTextList[0] + pkgversion=itemTextList[1] + pkglocation = itemTextList[3] + pkgdescription=itemTextList[4] + itr = self.tableWidget.rowCount() + self.tableWidget.insertRow(itr) + for i in range(0,6): + 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(pkglocation) + self.tableWidget.item(itr,5).setText(pkgdescription) + self.tableWidget.item(itr,5).setToolTip(pkgdescription) + self.updateLCDtotal_pkg() + + def insert_item_ABS(self,itemTextList): + pkgname=itemTextList[0] + pkgversion=itemTextList[1] + pkglocation = itemTextList[3] + pkgdescription=itemTextList[4] + itr = self.tableWidget_2.rowCount() + self.tableWidget_2.insertRow(itr) + for i in range(0,6): + 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(pkglocation) + self.tableWidget_2.item(itr,5).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.tableWidget.clear() + self.tableWidget.clearContents() + self.tableWidget.setSortingEnabled(False) + self.tableWidget.setRowCount(0) + 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" , "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.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" , "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: + t=repo_value, + #thread.start_new_thread(self.populate_pkg_list, (t)) + 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: + t=ABS_repo_value, + #thread.start_new_thread(self.populate_abs_pkg_list, (t)) + 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() + #ialog.setModal (self, bool modal) + #QMessageBox.information(None,title,message) + #Dialog.setModal (self, bool modal) + #msgbox = QMessageBox + #msgBox.setText("The document has been modified.") + #msgBox.setInformativeText("Do you want to save your changes?") + #msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel) + ##msgBox.setDefaultButton(QMessageBox.Save); + #msgBox.exec + + + + 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): + postfix=".group" + dir_list = os.listdir(self.all_settings['group_file_location']) + self.comboBox.clear() + 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)] + self.comboBox.addItem(groupname) + #self.comboBox.setCurrentIndex(1) + self.comboBox.setEnabled(True) + + 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 search_group_file(self,groupfile,spackage): + ##""" + ## Searches group file for matching spackage name. + ## Returns False if the file was not found. + ##""" + #filename = bld_config.repo_location + "/" + groupfile + ".group" + #try: + #f = open(filename,"r") + #file_contents = f.readlines() + #f.close() + #except: + #outText = "couldn't open file to search: %s " %filename + #self.update_ouputwindow(outText) + #return False + #for line in file_contents: + #currentdir = "%s/%s" %(bld_config.repo_location,line.strip()) + #currentfile = "%s/PKGBUILD" %(currentdir) + #if os.path.isfile(currentfile): + #try: + #package = parched.PKGBUILD(currentfile) + #pkgname = str(package.name) + #pkgversion = str(package.version) + #pkgdescription = str(package.description) + #if pkgname == spackage: + #return currentdir + #except: + #continue + #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 = cmd + " " + " " + dir + 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 actionChangeLog(self): + dir_list = self.find_pkgdir() + for item,dir in dir_list: + itemText= str(item.text()) + filename = "%s/__changelog" %(dir) + 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 = 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 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 Repo", 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", "Location", None, QtGui.QApplication.UnicodeUTF8)) + self.tableWidget.horizontalHeaderItem(5).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", "Location", None, QtGui.QApplication.UnicodeUTF8)) + self.tableWidget_2.horizontalHeaderItem(5).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.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", "Update 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)) + -- cgit v0.12