summaryrefslogtreecommitdiffstats
path: root/build_tools/bin
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2009-10-01 03:03:34 (GMT)
committerJames Meyer <james.meyer@operamail.com>2009-10-01 03:03:34 (GMT)
commitd965ca16468975fc34e040f022bc7382a6ded78a (patch)
treea843b9367e880426e4b407e8e82e3efb2427cfea /build_tools/bin
parent378e705b235949d7e09f640c5f72bc0ccd8ffb9c (diff)
downloadlinhes_dev-d965ca16468975fc34e040f022bc7382a6ded78a.zip
bld: first checkin. Mostly functional, still need to work out bugs with kmsync.
Diffstat (limited to 'build_tools/bin')
-rwxr-xr-xbuild_tools/bin/bld.py76
-rwxr-xr-xbuild_tools/bin/bld_resource.py2740
2 files changed, 2816 insertions, 0 deletions
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))
+