[Pymoul-svn] SF.net SVN: pymoul: [120] pymoul/trunk/src/moul
Status: Alpha
Brought to you by:
tiran
|
From: <ti...@us...> - 2007-02-02 17:19:05
|
Revision: 120
http://pymoul.svn.sourceforge.net/pymoul/?rev=120&view=rev
Author: tiran
Date: 2007-02-02 09:13:40 -0800 (Fri, 02 Feb 2007)
Log Message:
-----------
Disabled non functional UI elements
Added fix KI image code with cool progress bar
Modified Paths:
--------------
pymoul/trunk/src/moul/file/chatlog.py
pymoul/trunk/src/moul/file/kiimage.py
pymoul/trunk/src/moul/file/plasmalog.py
pymoul/trunk/src/moul/file/wdysini.py
pymoul/trunk/src/moul/metadata.py
pymoul/trunk/src/moul/qt/mainwindow.py
pymoul/trunk/src/moul/qt/simpleprogressbar.py
pymoul/trunk/src/moul/qt/threadlet.py
pymoul/trunk/src/moul/qt/ui/mainwindow.py
pymoul/trunk/src/moul/qt/ui/mainwindow.ui
Modified: pymoul/trunk/src/moul/file/chatlog.py
===================================================================
--- pymoul/trunk/src/moul/file/chatlog.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/file/chatlog.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -93,6 +93,7 @@
self._path = srcdir
self._dest = destdir
self._logs = []
+ LOG.debug("ChatlogMover: %s -> %s" % (srcdir, destdir))
if not os.path.isdir(srcdir):
LOG.warning("%s is not a directory" % srcdir)
if not os.path.isdir(destdir):
Modified: pymoul/trunk/src/moul/file/kiimage.py
===================================================================
--- pymoul/trunk/src/moul/file/kiimage.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/file/kiimage.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -222,16 +222,20 @@
self._found = [] # all found files
self._tocheck = [] # found files to check
self._fixed = [] # fixed files
+ LOG.debug("KIImageFixer: %s -> %s" % (srcdir, destdir))
if not os.path.isdir(srcdir):
LOG.warning("%s is not a directory" % srcdir)
if not os.path.isdir(destdir):
- LOG.info("Creating chatlog directory %s" % destdir)
+ LOG.info("Creating fixed images directory %s" % destdir)
os.mkdir(destdir)
def findFiles(self):
- """Find filess
+ """Find files
"""
+ if not os.path.isdir(self._srcdir):
+ return False
+
for root, dirs, files in os.walk(self._srcdir):
for name in files:
matches = [pat for pat in self._pat
@@ -248,23 +252,41 @@
LOG.debug("File %s exists and is fixed." % name)
else:
self._tocheck.append((ki, fixed))
- def checkAndCopyFiles(self):
- """Check files if they are KI images
+ return self._tocheck
+ def checkAndCopyFile(self, kiname, fixedname):
+ """Check and copy file
+
If the file is a KI image than copy the file to the new location
"""
+ ki = KIImage(kiname)
+ if ki.isMoulImage():
+ tmp = ki.removeMoulHeader()
+ fixed = open(fixedname, 'wb')
+ while True:
+ buf = tmp.read(4096)
+ if not buf:
+ break
+ fixed.write(buf)
+ LOG.info("Created fixed image %s" % fixedname)
+ self._fixed.append((kiname, fixedname))
+ fixed.close()
+ tmp.close()
+ ki.close()
+
+ def __len__(self):
+ """len() support - returns number of images to check
+ """
+ return len(self._tocheck)
+
+ def __iter__(self):
+ """Iterate over the files to check
+
+ Calls checkAndCopyFiles() for each element. This method is used to
+ update a progress bar in the UI.
+
+ Yields a NULL seperated string containing "kiname\x00fixedname"
+ """
for kiname, fixedname in self._tocheck:
- ki = KIImage(kiname)
- if ki.isMoulImage():
- tmp = ki.removeMoulHeader()
- fixed = open(fixedname, 'wb')
- while True:
- buf = tmp.read(4096)
- if not buf:
- break
- fixed.write(buf)
- LOG.info("Created fixed image %s" % fixedname)
- self._fixed.append((kiname, fixedname))
- fixed.close()
- tmp.close()
- ki.close()
+ yield fixedname # "%s"x00%s" % (kiname, fixedname)
+ self.checkAndCopyFile(kiname, fixedname)
Modified: pymoul/trunk/src/moul/file/plasmalog.py
===================================================================
--- pymoul/trunk/src/moul/file/plasmalog.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/file/plasmalog.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -43,6 +43,7 @@
def __init__(self, srcdir, destdir):
self._srcdir = srcdir
self._destdir = destdir
+ LOG.debug("PlasmalogZipper: %s -> %s" % (srcdir, destdir))
self._zipped_dirs = {} # dirname -> zipfile
self._not_removed = [] # files with full path
Modified: pymoul/trunk/src/moul/file/wdysini.py
===================================================================
--- pymoul/trunk/src/moul/file/wdysini.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/file/wdysini.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -314,6 +314,7 @@
if not os.path.isdir(path):
LOG.warning("Directory not found %s" % path)
self._fpath = os.path.join(path, self._filename)
+ LOG.debug("ConfFile: %s - %s" % (path, self._filename))
self._filedata = {}
self._newdata = {}
self._order = []
Modified: pymoul/trunk/src/moul/metadata.py
===================================================================
--- pymoul/trunk/src/moul/metadata.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/metadata.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -15,8 +15,27 @@
'''
name = '''pyMoul'''
-README = ''''''
+README = '''=========================================
+Python library for Myst Online : Uru Live
+=========================================
+About
+=====
+
+pyMoul is a set of Python libraries around MOUL (Myst Online : Uru Live). At
+the moment the main focus is on the Qt4 based graphical tool.
+
+Donate
+======
+
+If you like the tool and find it usful please donate some money. You can
+use the link below to send me money over PayPal. You don't need a PayPal
+account. A credit card or bank account is sufficient.
+
+https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=christian%40cheimes%2ede&item_name=Donate%20for%20Tiran%27s%20open%20source%20activities&page_style=PayPal&no_shipping=2&cn=Your%20note%20for%20me&tax=0¤cy_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
+
+'''
+
LICENSE = ''' GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Modified: pymoul/trunk/src/moul/qt/mainwindow.py
===================================================================
--- pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -36,16 +36,22 @@
from moul.qt.localization import LocalizationMixin
from moul.osdependent import isMoulRunning
from moul.config import lookupDir
-from moul.file.wdysini import AudioIni
-from moul.file.wdysini import GraphicsIni
+from moul.file.directory import UruGameDataDirectory
+from moul.file.directory import UruPersonalDataDirectory
from moul.file.wdysini import videoModes
from moul.log import getLogger
from moul.log import signalLogDecorator
from moul.server.ping import ServerList
from moul.server.ping import isSocketError
from moul.time.cavern import CavernTime
+from moul.qt.threadlet import YieldingThreadlet
+from moul.qt.simpleprogressbar import SimpleProgressbar
from moul import metadata
+# TBR
+from moul.file.wdysini import AudioIni
+from moul.file.wdysini import GraphicsIni
+
LOG = getLogger('moul.qt')
class MainWindow(QtGui.QMainWindow, Ui_MainWindow, LocalizationMixin):
@@ -63,6 +69,12 @@
# dirty flag: unsaved changes
self._dirty = False
self.setDirty(False)
+
+ # set directory handlers
+ self.urugamedir = UruGameDataDirectory(lookupDir('install'))
+ self.urudatadir = UruPersonalDataDirectory(lookupDir('userdata'))
+ # TODO: checks
+ self.urudatadir.initializeFactories()
# init handlers
self._timezone_init()
@@ -110,11 +122,11 @@
QtGui.QMessageBox.information(self,
self.trUtf8("Not Implemented"),
self.trUtf8("""Sorry, this feature is not implemented yet!"""))
-
+
def closeEvent(self, event):
"""
Close event handler
-
+
@qtslot closeEvent(event QCloseEvent): notify on close
@param event: close event
@type event: QCloseEvent instance
@@ -125,7 +137,7 @@
self._systray_close()
event.accept()
-
+
def keyPressEvent(self, event):
"""
Key event handler
@@ -136,11 +148,12 @@
Has to ignore unknown events
"""
- #if event.key() == Qt.Key_Escape:
- # self.emit(SIGNAL("close()"))
- # event.accept()
+ if event.key() == Qt.Key_Escape:
+ # FIXME: signal doesn't do anything
+ self.emit(SIGNAL("close()"))
+ event.accept()
event.ignore()
-
+
def setDirty(self, boolean):
"""
Sets the save state
@@ -150,7 +163,7 @@
#self.main_buttonbox_save.setEnabled(boolean)
self.main_buttonbox_save.setEnabled(True)
self.main_buttonbox_reset.setEnabled(True)
-
+
# ************************************************************************
# system tray
def _systray_init(self):
@@ -163,6 +176,49 @@
self.systemtray.setVisible(False)
# ************************************************************************
+ # tasks
+
+ @pyqtSignature("")
+ @signalLogDecorator(LOG)
+ def on_pb_kiimage_repair_clicked(self):
+ """
+ Clicked repair button
+ """
+ kimover = self.urudatadir.kiimages
+ if not kimover.findFiles():
+ # TODO: msg
+ return
+
+ self.pb_kiimage_repair.setEnabled(False)
+ self._kiimage_progressbar = SimpleProgressbar(self)
+ self._kiimage_progressbar.setWindowTitle(
+ self.trUtf8("Repairing KI images"))
+ self._kiimage_threadlet = YieldingThreadlet(self)
+
+ self._kiimage_progressbar.setProgressbar(0, len(kimover), 0)
+ self.connect(self._kiimage_threadlet, SIGNAL("yield(const QString&)"),
+ self._kiimage_progressbar.increase)
+ self.connect(self._kiimage_threadlet, SIGNAL("finished()"),
+ self.on_pb_kiimage_repair_done)
+ self._kiimage_progressbar.show()
+ self._kiimage_threadlet.detach(kimover)
+
+ @signalLogDecorator(LOG)
+ def on_pb_kiimage_repair_done(self):
+ """
+ Repair threadlet done
+ """
+ self._kiimage_progressbar.close()
+ self.disconnect(self._kiimage_threadlet, SIGNAL("yield(result)"),
+ self._kiimage_progressbar.increase)
+ self.disconnect(self._kiimage_threadlet, SIGNAL("finished()"),
+ self.on_pb_kiimage_repair_done)
+ del self._kiimage_threadlet
+ del self._kiimage_progressbar
+ self.pb_kiimage_repair.setEnabled(True)
+ # TODO: msg
+
+ # ************************************************************************
# graphics settings
def _about_init(self):
self.te_license.setPlainText(metadata.LICENSE)
Modified: pymoul/trunk/src/moul/qt/simpleprogressbar.py
===================================================================
--- pymoul/trunk/src/moul/qt/simpleprogressbar.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/qt/simpleprogressbar.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -58,6 +58,26 @@
self.progressbar.setMaximum(maxval)
self.progressbar.setValue(value)
+ def increase(self, *args):
+ """Increase value by one
+
+ Additional arguments are ignored. You can use the method as a
+ destination for a signal w/o worrying about the signature.
+
+ @qtslot increase(): increase value by one
+ """
+ self.progressbar.setValue(self.progressbar.value()+1)
+
+ def decrease(self, *args):
+ """Decrease value by one
+
+ Additional arguments are ignored. You can use the method as a
+ destination for a signal w/o worrying about the signature.
+
+ @qtslot decrease(): decrease value by one
+ """
+ self.progressbar.setValue(self.progressbar.value()-1)
+
@pyqtSignature("int")
def setValue(self, value):
"""Set value of progress bar
Modified: pymoul/trunk/src/moul/qt/threadlet.py
===================================================================
--- pymoul/trunk/src/moul/qt/threadlet.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/qt/threadlet.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -55,7 +55,6 @@
@qtsignal started(): Signal is emitted when the thread starts executing.
@qtsignal finished(): Signal is emitted when the thread has finished.
@qtsignal terminated(): Signal is emitted when the thread is terminated.
- @qtsignal done(result): Signal is emitted when the function has returned.
@warning: The function and all applied arguments must be thread safe!
"""
@@ -79,16 +78,16 @@
self._args = None
self._kwargs = None
- def detach(self, func, *args, **kwargs):
+ def detach(self, obj, *args, **kwargs):
"""
Detach a function call
- @param func: a callable
+ @param obj: a callable (or iterable for YieldingThreadlet)
@param *args: additional arguments for the function
@param **kwargs: additional keyword arguments for the function
"""
self.mutex.lock()
- self._func = func
+ self._obj = obj
self._args = args
self._kwargs = kwargs
self.mutex.unlock()
@@ -97,14 +96,30 @@
def run(self):
"""
- Payload - runs the script and emits done(result)
+ Payload - runs the callable and emits done(result)
The function and its args/kwargs are cleared after the function has
run to avoid cyclic references.
+
+ @qtsignal done(result): Signal is emitted when the function has returned.
"""
self.mutex.lock()
- result = self._func(*self._args, **self._kwargs)
+ result = self._obj(*self._args, **self._kwargs)
self.emit(SIGNAL("done(result)"), result)
self.clear()
self.mutex.unlock()
+class YieldingThreadlet(Threadlet):
+ """
+ Similar to Threadlet by iters over the object and yields each value
+ """
+ def run(self):
+ """
+ Paylad - iters over the object and yields each value
+
+ @qtsignal yield(const QString&): yield
+ """
+ self.mutex.lock()
+ for result in iter(self._obj):
+ self.emit(SIGNAL("yield(const QString&)"), result)
+ self.mutex.unlock()
Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.py
===================================================================
--- pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-02 17:13:40 UTC (rev 120)
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'src/moul/qt/ui/mainwindow.ui'
#
-# Created: Tue Jan 30 21:05:11 2007
+# Created: Fri Feb 2 17:26:46 2007
# by: PyQt4 UI code generator 4.1.1
#
# WARNING! All changes made in this file will be lost!
@@ -13,6 +13,7 @@
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(QtCore.QSize(QtCore.QRect(0,0,472,595).size()).expandedTo(MainWindow.minimumSizeHint()))
MainWindow.setMinimumSize(QtCore.QSize(472,595))
MainWindow.setMaximumSize(QtCore.QSize(472,595))
MainWindow.setWindowIcon(QtGui.QIcon(":/resources/uru_icon_32x32.png"))
@@ -75,7 +76,33 @@
self.tab_tasks = QtGui.QWidget()
self.tab_tasks.setObjectName("tab_tasks")
+ self.groupBox_2 = QtGui.QGroupBox(self.tab_tasks)
+ self.groupBox_2.setGeometry(QtCore.QRect(10,120,451,61))
+ self.groupBox_2.setObjectName("groupBox_2")
+
+ self.layoutWidget = QtGui.QWidget(self.groupBox_2)
+ self.layoutWidget.setGeometry(QtCore.QRect(10,20,431,30))
+ self.layoutWidget.setObjectName("layoutWidget")
+
+ self.hboxlayout2 = QtGui.QHBoxLayout(self.layoutWidget)
+ self.hboxlayout2.setMargin(0)
+ self.hboxlayout2.setSpacing(6)
+ self.hboxlayout2.setObjectName("hboxlayout2")
+
+ self.pb_kiimage_repair = QtGui.QPushButton(self.layoutWidget)
+ self.pb_kiimage_repair.setMinimumSize(QtCore.QSize(60,0))
+ self.pb_kiimage_repair.setObjectName("pb_kiimage_repair")
+ self.hboxlayout2.addWidget(self.pb_kiimage_repair)
+
+ self.pb_kiimage_repair1 = QtGui.QLabel(self.layoutWidget)
+ self.pb_kiimage_repair1.setObjectName("pb_kiimage_repair1")
+ self.hboxlayout2.addWidget(self.pb_kiimage_repair1)
+
+ spacerItem2 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
+ self.hboxlayout2.addItem(spacerItem2)
+
self.groupBox = QtGui.QGroupBox(self.tab_tasks)
+ self.groupBox.setEnabled(False)
self.groupBox.setGeometry(QtCore.QRect(10,0,451,121))
self.groupBox.setObjectName("groupBox")
@@ -85,16 +112,16 @@
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.NoButton)
self.buttonBox.setObjectName("buttonBox")
- self.widget = QtGui.QWidget(self.groupBox)
- self.widget.setGeometry(QtCore.QRect(11,21,431,86))
- self.widget.setObjectName("widget")
+ self.layoutWidget1 = QtGui.QWidget(self.groupBox)
+ self.layoutWidget1.setGeometry(QtCore.QRect(11,21,431,89))
+ self.layoutWidget1.setObjectName("layoutWidget1")
- self.gridlayout = QtGui.QGridLayout(self.widget)
+ self.gridlayout = QtGui.QGridLayout(self.layoutWidget1)
self.gridlayout.setMargin(0)
self.gridlayout.setSpacing(6)
self.gridlayout.setObjectName("gridlayout")
- self.lb_log_archive = QtGui.QLabel(self.widget)
+ self.lb_log_archive = QtGui.QLabel(self.layoutWidget1)
self.lb_log_archive.setTextFormat(QtCore.Qt.PlainText)
self.lb_log_archive.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.lb_log_archive.setWordWrap(True)
@@ -102,62 +129,41 @@
self.lb_log_archive.setObjectName("lb_log_archive")
self.gridlayout.addWidget(self.lb_log_archive,0,1,1,1)
- self.lb_log_remove = QtGui.QLabel(self.widget)
+ self.lb_log_remove = QtGui.QLabel(self.layoutWidget1)
self.lb_log_remove.setObjectName("lb_log_remove")
self.gridlayout.addWidget(self.lb_log_remove,1,1,1,1)
- self.pb_log_remove = QtGui.QPushButton(self.widget)
+ self.pb_log_remove = QtGui.QPushButton(self.layoutWidget1)
+ self.pb_log_remove.setEnabled(False)
self.pb_log_remove.setMinimumSize(QtCore.QSize(60,0))
self.pb_log_remove.setObjectName("pb_log_remove")
self.gridlayout.addWidget(self.pb_log_remove,1,0,1,1)
- self.pb_log_archive = QtGui.QPushButton(self.widget)
+ self.pb_log_archive = QtGui.QPushButton(self.layoutWidget1)
+ self.pb_log_archive.setEnabled(False)
self.pb_log_archive.setMinimumSize(QtCore.QSize(60,0))
self.pb_log_archive.setObjectName("pb_log_archive")
self.gridlayout.addWidget(self.pb_log_archive,0,0,1,1)
- spacerItem2 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
- self.gridlayout.addItem(spacerItem2,0,2,1,1)
+ spacerItem3 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
+ self.gridlayout.addItem(spacerItem3,0,2,1,1)
self.vboxlayout = QtGui.QVBoxLayout()
self.vboxlayout.setMargin(0)
self.vboxlayout.setSpacing(6)
self.vboxlayout.setObjectName("vboxlayout")
- self.radio_ziplogs = QtGui.QRadioButton(self.widget)
+ self.radio_ziplogs = QtGui.QRadioButton(self.layoutWidget1)
+ self.radio_ziplogs.setEnabled(False)
self.radio_ziplogs.setChecked(True)
self.radio_ziplogs.setObjectName("radio_ziplogs")
self.vboxlayout.addWidget(self.radio_ziplogs)
- self.radio_deletelogs = QtGui.QRadioButton(self.widget)
+ self.radio_deletelogs = QtGui.QRadioButton(self.layoutWidget1)
+ self.radio_deletelogs.setEnabled(False)
self.radio_deletelogs.setObjectName("radio_deletelogs")
self.vboxlayout.addWidget(self.radio_deletelogs)
self.gridlayout.addLayout(self.vboxlayout,0,3,1,1)
-
- self.groupBox_2 = QtGui.QGroupBox(self.tab_tasks)
- self.groupBox_2.setGeometry(QtCore.QRect(10,120,451,61))
- self.groupBox_2.setObjectName("groupBox_2")
-
- self.widget1 = QtGui.QWidget(self.groupBox_2)
- self.widget1.setGeometry(QtCore.QRect(10,20,431,30))
- self.widget1.setObjectName("widget1")
-
- self.hboxlayout2 = QtGui.QHBoxLayout(self.widget1)
- self.hboxlayout2.setMargin(0)
- self.hboxlayout2.setSpacing(6)
- self.hboxlayout2.setObjectName("hboxlayout2")
-
- self.pb_kiimage_repair = QtGui.QPushButton(self.widget1)
- self.pb_kiimage_repair.setMinimumSize(QtCore.QSize(60,0))
- self.pb_kiimage_repair.setObjectName("pb_kiimage_repair")
- self.hboxlayout2.addWidget(self.pb_kiimage_repair)
-
- self.pb_kiimage_repair1 = QtGui.QLabel(self.widget1)
- self.pb_kiimage_repair1.setObjectName("pb_kiimage_repair1")
- self.hboxlayout2.addWidget(self.pb_kiimage_repair1)
-
- spacerItem3 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
- self.hboxlayout2.addItem(spacerItem3)
self.tabwidget.addTab(self.tab_tasks,"")
self.tab_settings = QtGui.QWidget()
@@ -484,16 +490,16 @@
self.groupBox_aud_level.setGeometry(QtCore.QRect(10,0,451,171))
self.groupBox_aud_level.setObjectName("groupBox_aud_level")
- self.layoutWidget = QtGui.QWidget(self.groupBox_aud_level)
- self.layoutWidget.setGeometry(QtCore.QRect(20,20,191,112))
- self.layoutWidget.setObjectName("layoutWidget")
+ self.layoutWidget2 = QtGui.QWidget(self.groupBox_aud_level)
+ self.layoutWidget2.setGeometry(QtCore.QRect(20,20,191,112))
+ self.layoutWidget2.setObjectName("layoutWidget2")
- self.vboxlayout10 = QtGui.QVBoxLayout(self.layoutWidget)
+ self.vboxlayout10 = QtGui.QVBoxLayout(self.layoutWidget2)
self.vboxlayout10.setMargin(0)
self.vboxlayout10.setSpacing(6)
self.vboxlayout10.setObjectName("vboxlayout10")
- self.verticalLayout_57 = QtGui.QWidget(self.layoutWidget)
+ self.verticalLayout_57 = QtGui.QWidget(self.layoutWidget2)
self.verticalLayout_57.setObjectName("verticalLayout_57")
self.vboxlayout11 = QtGui.QVBoxLayout(self.verticalLayout_57)
@@ -520,7 +526,7 @@
self.vboxlayout11.addWidget(self.sl_aud_fx)
self.vboxlayout10.addWidget(self.verticalLayout_57)
- self.verticalLayout_59 = QtGui.QWidget(self.layoutWidget)
+ self.verticalLayout_59 = QtGui.QWidget(self.layoutWidget2)
self.verticalLayout_59.setObjectName("verticalLayout_59")
self.vboxlayout12 = QtGui.QVBoxLayout(self.verticalLayout_59)
@@ -547,16 +553,16 @@
self.vboxlayout12.addWidget(self.sl_aud_music)
self.vboxlayout10.addWidget(self.verticalLayout_59)
- self.layoutWidget1 = QtGui.QWidget(self.groupBox_aud_level)
- self.layoutWidget1.setGeometry(QtCore.QRect(240,20,191,139))
- self.layoutWidget1.setObjectName("layoutWidget1")
+ self.layoutWidget3 = QtGui.QWidget(self.groupBox_aud_level)
+ self.layoutWidget3.setGeometry(QtCore.QRect(240,20,191,139))
+ self.layoutWidget3.setObjectName("layoutWidget3")
- self.vboxlayout13 = QtGui.QVBoxLayout(self.layoutWidget1)
+ self.vboxlayout13 = QtGui.QVBoxLayout(self.layoutWidget3)
self.vboxlayout13.setMargin(0)
self.vboxlayout13.setSpacing(6)
self.vboxlayout13.setObjectName("vboxlayout13")
- self.verticalLayout_58 = QtGui.QWidget(self.layoutWidget1)
+ self.verticalLayout_58 = QtGui.QWidget(self.layoutWidget3)
self.verticalLayout_58.setObjectName("verticalLayout_58")
self.vboxlayout14 = QtGui.QVBoxLayout(self.verticalLayout_58)
@@ -583,7 +589,7 @@
self.vboxlayout14.addWidget(self.sl_aud_ambience)
self.vboxlayout13.addWidget(self.verticalLayout_58)
- self.verticalLayout_56 = QtGui.QWidget(self.layoutWidget1)
+ self.verticalLayout_56 = QtGui.QWidget(self.layoutWidget3)
self.verticalLayout_56.setObjectName("verticalLayout_56")
self.vboxlayout15 = QtGui.QVBoxLayout(self.verticalLayout_56)
@@ -610,7 +616,7 @@
self.vboxlayout15.addWidget(self.sl_aud_npc)
self.vboxlayout13.addWidget(self.verticalLayout_56)
- self.cb_aud_mute = QtGui.QCheckBox(self.layoutWidget1)
+ self.cb_aud_mute = QtGui.QCheckBox(self.layoutWidget3)
self.cb_aud_mute.setObjectName("cb_aud_mute")
self.vboxlayout13.addWidget(self.cb_aud_mute)
@@ -722,6 +728,7 @@
self.tab_pymoul.setObjectName("tab_pymoul")
self.groupBox_4 = QtGui.QGroupBox(self.tab_pymoul)
+ self.groupBox_4.setEnabled(False)
self.groupBox_4.setGeometry(QtCore.QRect(10,0,451,371))
self.groupBox_4.setObjectName("groupBox_4")
self.tab_sub_settings.addTab(self.tab_pymoul,"")
@@ -824,6 +831,7 @@
self.tab_sub_chatlogs.setObjectName("tab_sub_chatlogs")
self.groupBox_5 = QtGui.QGroupBox(self.tab_sub_chatlogs)
+ self.groupBox_5.setEnabled(False)
self.groupBox_5.setGeometry(QtCore.QRect(10,0,451,371))
self.groupBox_5.setObjectName("groupBox_5")
@@ -914,6 +922,12 @@
self.tab_sub_about = QtGui.QWidget()
self.tab_sub_about.setObjectName("tab_sub_about")
+
+ self.label_6 = QtGui.QLabel(self.tab_sub_about)
+ self.label_6.setGeometry(QtCore.QRect(20,10,431,351))
+ self.label_6.setTextFormat(QtCore.Qt.PlainText)
+ self.label_6.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_6.setObjectName("label_6")
self.tabwidget_about.addTab(self.tab_sub_about,"")
self.tab_sub_license = QtGui.QWidget()
@@ -947,6 +961,9 @@
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "KI Image repair", None, QtGui.QApplication.UnicodeUTF8))
+ self.pb_kiimage_repair.setText(QtGui.QApplication.translate("MainWindow", "Repair", None, QtGui.QApplication.UnicodeUTF8))
+ self.pb_kiimage_repair1.setText(QtGui.QApplication.translate("MainWindow", "Fix KI and avatar images", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox.setTitle(QtGui.QApplication.translate("MainWindow", "Chat and debug logs", None, QtGui.QApplication.UnicodeUTF8))
self.lb_log_archive.setText(QtGui.QApplication.translate("MainWindow", "Archive chatlogs and zip log files", None, QtGui.QApplication.UnicodeUTF8))
self.lb_log_remove.setText(QtGui.QApplication.translate("MainWindow", "Remove zipped logs", None, QtGui.QApplication.UnicodeUTF8))
@@ -954,9 +971,6 @@
self.pb_log_archive.setText(QtGui.QApplication.translate("MainWindow", "Archive", None, QtGui.QApplication.UnicodeUTF8))
self.radio_ziplogs.setText(QtGui.QApplication.translate("MainWindow", "Zip debug logs", None, QtGui.QApplication.UnicodeUTF8))
self.radio_deletelogs.setText(QtGui.QApplication.translate("MainWindow", "Delete debug logs", None, QtGui.QApplication.UnicodeUTF8))
- self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "KI Image repair", None, QtGui.QApplication.UnicodeUTF8))
- self.pb_kiimage_repair.setText(QtGui.QApplication.translate("MainWindow", "Repair", None, QtGui.QApplication.UnicodeUTF8))
- self.pb_kiimage_repair1.setText(QtGui.QApplication.translate("MainWindow", "Fix KI and avatar images", None, QtGui.QApplication.UnicodeUTF8))
self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_tasks), QtGui.QApplication.translate("MainWindow", "Tasks", None, QtGui.QApplication.UnicodeUTF8))
self.groupBox_screenres.setTitle(QtGui.QApplication.translate("MainWindow", "Screen Resolution", None, QtGui.QApplication.UnicodeUTF8))
self.lb_screenres.setText(QtGui.QApplication.translate("MainWindow", "800x600 (4:3)", None, QtGui.QApplication.UnicodeUTF8))
@@ -1024,6 +1038,11 @@
self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Set", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_sub_journals), QtGui.QApplication.translate("MainWindow", "Journals", None, QtGui.QApplication.UnicodeUTF8))
self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_browse), QtGui.QApplication.translate("MainWindow", "Browse", None, QtGui.QApplication.UnicodeUTF8))
+ self.label_6.setText(QtGui.QApplication.translate("MainWindow", "Tool for Myst Online : Uru Live\n"
+ "\n"
+ "(c) 2007 by Christian Heimes\n"
+ "\n"
+ "http://pymoul.sourceforge.net/", None, QtGui.QApplication.UnicodeUTF8))
self.tabwidget_about.setTabText(self.tabwidget_about.indexOf(self.tab_sub_about), QtGui.QApplication.translate("MainWindow", "About pyMoul", None, QtGui.QApplication.UnicodeUTF8))
self.tabwidget_about.setTabText(self.tabwidget_about.indexOf(self.tab_sub_license), QtGui.QApplication.translate("MainWindow", "License", None, QtGui.QApplication.UnicodeUTF8))
self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_about), QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.ui
===================================================================
--- pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-02-02 14:38:56 UTC (rev 119)
+++ pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-02-02 17:13:40 UTC (rev 120)
@@ -1,6 +1,14 @@
<ui version="4.0" >
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>472</width>
+ <height>595</height>
+ </rect>
+ </property>
<property name="minimumSize" >
<size>
<width>472</width>
@@ -154,7 +162,74 @@
<attribute name="title" >
<string>Tasks</string>
</attribute>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>120</y>
+ <width>451</width>
+ <height>61</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>KI Image repair</string>
+ </property>
+ <widget class="QWidget" name="layoutWidget" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>431</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="pb_kiimage_repair" >
+ <property name="minimumSize" >
+ <size>
+ <width>60</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Repair</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="pb_kiimage_repair" >
+ <property name="text" >
+ <string>Fix KI and avatar images</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
<widget class="QGroupBox" name="groupBox" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="geometry" >
<rect>
<x>10</x>
@@ -182,13 +257,13 @@
<set>QDialogButtonBox::NoButton</set>
</property>
</widget>
- <widget class="QWidget" name="" >
+ <widget class="QWidget" name="layoutWidget" >
<property name="geometry" >
<rect>
<x>11</x>
<y>21</y>
<width>431</width>
- <height>86</height>
+ <height>89</height>
</rect>
</property>
<layout class="QGridLayout" >
@@ -226,6 +301,9 @@
</item>
<item row="1" column="0" >
<widget class="QPushButton" name="pb_log_remove" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="minimumSize" >
<size>
<width>60</width>
@@ -239,6 +317,9 @@
</item>
<item row="0" column="0" >
<widget class="QPushButton" name="pb_log_archive" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="minimumSize" >
<size>
<width>60</width>
@@ -273,6 +354,9 @@
</property>
<item>
<widget class="QRadioButton" name="radio_ziplogs" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="text" >
<string>Zip debug logs</string>
</property>
@@ -283,6 +367,9 @@
</item>
<item>
<widget class="QRadioButton" name="radio_deletelogs" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="text" >
<string>Delete debug logs</string>
</property>
@@ -293,70 +380,6 @@
</layout>
</widget>
</widget>
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>120</y>
- <width>451</width>
- <height>61</height>
- </rect>
- </property>
- <property name="title" >
- <string>KI Image repair</string>
- </property>
- <widget class="QWidget" name="" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>20</y>
- <width>431</width>
- <height>30</height>
- </rect>
- </property>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QPushButton" name="pb_kiimage_repair" >
- <property name="minimumSize" >
- <size>
- <width>60</width>
- <height>0</height>
- </size>
- </property>
- <property name="text" >
- <string>Repair</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="pb_kiimage_repair" >
- <property name="text" >
- <string>Fix KI and avatar images</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </widget>
</widget>
<widget class="QWidget" name="tab_settings" >
<attribute name="title" >
@@ -1509,6 +1532,9 @@
<string>pyMoul</string>
</attribute>
<widget class="QGroupBox" name="groupBox_4" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="geometry" >
<rect>
<x>10</x>
@@ -1732,6 +1758,9 @@
<string>Chat logs</string>
</attribute>
<widget class="QGroupBox" name="groupBox_5" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="geometry" >
<rect>
<x>10</x>
@@ -1902,6 +1931,29 @@
<attribute name="title" >
<string>About pyMoul</string>
</attribute>
+ <widget class="QLabel" name="label_6" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>431</width>
+ <height>351</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Tool for Myst Online : Uru Live
+
+(c) 2007 by Christian Heimes
+
+http://pymoul.sourceforge.net/</string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
</widget>
<widget class="QWidget" name="tab_sub_license" >
<attribute name="title" >
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|