Thread: [Pymoul-svn] SF.net SVN: pymoul: [149] pymoul/trunk (Page 3)
Status: Alpha
Brought to you by:
tiran
From: <ti...@us...> - 2007-02-06 17:15:55
|
Revision: 149 http://pymoul.svn.sourceforge.net/pymoul/?rev=149&view=rev Author: tiran Date: 2007-02-06 09:15:50 -0800 (Tue, 06 Feb 2007) Log Message: ----------- Updated translations Modified Paths: -------------- pymoul/trunk/doc/XXXreport.html pymoul/trunk/src/moul/qt/i18n/pymoul_de.qm pymoul/trunk/src/moul/qt/i18n/pymoul_de.ts pymoul/trunk/src/moul/qt/i18n/pymoul_es.ts pymoul/trunk/src/moul/qt/i18n/pymoul_fr.ts pymoul/trunk/src/moul/qt/i18n/pymoul_it.ts pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts Modified: pymoul/trunk/doc/XXXreport.html =================================================================== --- pymoul/trunk/doc/XXXreport.html 2007-02-06 16:53:36 UTC (rev 148) +++ pymoul/trunk/doc/XXXreport.html 2007-02-06 17:15:50 UTC (rev 149) @@ -3,11 +3,11 @@ <body> <h1>pyMoul - Developer report tools: XXX/TODO/FIXME comments</h1> -<p>Generated on Mon, 05 Feb 2007 03:58:55 CET, based on Zope 3's XXX report</p> +<p>Generated on Tue, 06 Feb 2007 18:05:35 CET, based on Zope 3's XXX report</p> <hr> <h3>Summary</h3> <p> - There are currently 94 XXX/TODO/FIXME comments. + There are currently 88 XXX/TODO/FIXME comments. </p> <hr/> <h3>Listing</h3> @@ -27,8 +27,10 @@ base-691- from zope.tales.tales import TALESTracebackSupplement base-692- from zope.pagetemplate.pagetemplate \ base-693- import PageTemplateTracebackSupplement -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-281- return iter(self._fd) +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:208</b><br/><pre> # TODO: inefficient, compare list with directory content +base-209- if not os.path.isdir(self._logdir): +base-210- LOG.warning("%s is not a directory" % logdir) +base-211- return </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct base-113- if header is None: base-114- fd = self._fd @@ -38,21 +40,21 @@ base-129- size = self.getFileSize() base-130- leading = 4* [None] </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-268- if os.path.isfile(fixed): -base-269- if fixedNewer(ki, fixed): -base-270- LOG.debug("File %s exists but was changed." % name) +base-268- if not os.path.isfile(fixed): +base-269- self._tocheck.append((ki, fixed)) +base-270- continue </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me base-158- pass base-159- base-160-class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-542- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-543- # microphon missing -> OS mixer -base-544- } -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-630- -base-631-class GraphicsIni(ConfFile): -base-632- _filename = 'graphics.ini' +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +base-555- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui +base-556- # microphon missing -> OS mixer +base-557- } +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +base-643- +base-644-class GraphicsIni(ConfFile): +base-645- _filename = 'graphics.ini' </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch base-60- return len([name for name in os.listdir(path) base-61- if os.path.isfile(os.path.join(path, name))]) @@ -89,8 +91,10 @@ fd = open(os.path.join(path, fname), 'wb') fd.write('dummy') fd.close() -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file - return iter(self._fd) +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:208</b><br/><pre> # TODO: inefficient, compare list with directory content + if not os.path.isdir(self._logdir): + LOG.warning("%s is not a directory" % logdir) + return </pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct if header is None: fd = self._fd @@ -100,18 +104,18 @@ size = self.getFileSize() leading = 4* [None] </pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! - if os.path.isfile(fixed): - if fixedNewer(ki, fixed): - LOG.debug("File %s exists but was changed." % name) + if not os.path.isfile(fixed): + self._tocheck.append((ki, fixed)) + continue </pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me pass class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui # microphon missing -> OS mixer } -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. class GraphicsIni(ConfFile): _filename = 'graphics.ini' @@ -124,23 +128,25 @@ size = self.getFileSize() leading = 4* [None] </pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! - if os.path.isfile(fixed): - if fixedNewer(ki, fixed): - LOG.debug("File %s exists but was changed." % name) -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file - return iter(self._fd) -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:156</b><br/><pre> # TODO: write me + if not os.path.isfile(fixed): + self._tocheck.append((ki, fixed)) + else: +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me pass class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui # microphon missing -> OS mixer } -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. class GraphicsIni(ConfFile): _filename = 'graphics.ini' +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:208</b><br/><pre> # TODO: inefficient, compare list with directory content + if not os.path.isdir(logdir): + LOG.warning("%s is not a directory" % logdir) + return </pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch return len([name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name))]) @@ -173,103 +179,86 @@ raise NotImplementedError def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:151</b><br/><pre> # FIXME: signal doesn't do anything -base-152- self.emit(SIGNAL("close()")) -base-153- event.accept() -base-154- event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:222</b><br/><pre> # TODO: msg -base-223- return -base-224- -base-225- self.pb_kiimage_repair.setEnabled(False) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:248</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-249- del self._kiimage_progressbar -base-250- self.pb_kiimage_repair.setEnabled(True) -base:251: # TODO: msg -base-252- -base-253- # ************************************************************************ -base-254- # system tray -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:281</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-282- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-283- timer.start() -base-284- -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:375</b><br/><pre> # TODO: thread safety! -base-376- self.servers = servers -base-377- if not self.isRunning(): -base-378- self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:381</b><br/><pre> # TODO: thread safety! -base-382- # emit a list of names first -base-383- for server in self.servers: -base-384- self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:417</b><br/><pre> # TODO check this -base-418- self._running = False -base-419- self.condition.wakeAll() -base-420- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:149</b><br/><pre> # FIXME: signal doesn't do anything +base-150- self.emit(SIGNAL("close()")) +base-151- event.accept() +base-152- event.ignore() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-251- del self._kiimage_progressbar +base-252- self.pb_kiimage_repair.setEnabled(True) +base-253- mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:345</b><br/><pre> # TODO: change timer from every second to every minute +base-346- self._timezone_timer = timer = QtCore.QTimer(self) +base-347- timer.setInterval(1000) # 1 sec +base:348: # TODO: needs optimization? run only when timer tab is active +base-349- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) +base-350- timer.start() +base-351- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:442</b><br/><pre> # TODO: thread safety! +base-443- self.servers = servers +base-444- if not self.isRunning(): +base-445- self.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:448</b><br/><pre> # TODO: thread safety! +base-449- # emit a list of names first +base-450- for server in self.servers: +base-451- self.emit(SIGNAL("server(const QString&)"), server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO check this +base-485- self._running = False +base-486- self.condition.wakeAll() +base-487- </pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) base-48- if not getattr(sys, 'frozen', False): base-49- return -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/wdysini.py.svn-base:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base:68: self.context.emit(SIGNAL("graphicsini_load()")) # XXX: hard coded emit -base-69- -base-70- @pyqtSignature("bool") -base-71- def on_graphicsChanged(self, boolean): -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:143</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:149</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:214</b><br/><pre> # TODO: msg - return - - self.pb_kiimage_repair.setEnabled(False) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) - - @pyqtSignature("") - def on_pb_log_archive_clicked(self): -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active + mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:345</b><br/><pre> # TODO: change timer from every second to every minute + self._timezone_timer = timer = QtCore.QTimer(self) + timer.setInterval(1000) # 1 sec self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:382</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:442</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:388</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:448</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:424</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:484</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:143</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:149</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:214</b><br/><pre> # TODO: msg - return - - self.pb_kiimage_repair.setEnabled(False) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) - - @pyqtSignature("") - def on_pb_log_archive_clicked(self): -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active + mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:345</b><br/><pre> # TODO: change timer from every second to every minute + self._timezone_timer = timer = QtCore.QTimer(self) + timer.setInterval(1000) # 1 sec self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:382</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:442</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:388</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:448</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:424</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:484</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() @@ -277,143 +266,131 @@ LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) if not getattr(sys, 'frozen', False): return -</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py~:46</b><br/><pre> # TODO: translation aware - LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) - if not getattr(sys, 'frozen', False): - return -</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py~:68</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit - - @signalLogDecorator(LOG) - @pyqtSignature("bool") -</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit - - @pyqtSignature("bool") - def on_graphicsChanged(self, boolean): -</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:117</b><br/><pre># XXX: what about cygwin, bsd and others? +</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? _thismodule = sys.modules[__name__] if __WIN32__: from moul.osdependent import win32 as osdep_win32 -</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:117</b><br/><pre># XXX: what about cygwin, bsd and others? -base-118-_thismodule = sys.modules[__name__] -base-119-if __WIN32__: -base-120- from moul.osdependent import win32 as osdep_win32 -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/ez_setup.py.svn-base:92</b><br/><pre> # XXX could we install in a subprocess here? -base-15-base-93- print >>sys.stderr, ( -base-16-base-94- "The required version of setuptools (>=%s) is not available, and\n" -base-17-base-95- "can't be installed while this script is running. Please install\n" -base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-19-base-549- # separated by a horizontal dash line. Only the first one of -base-20-base-550- # them is now colorized properly. -base-21-base-551- header = lines[0] -base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-23-base-604- result.append(self.colorize('doctest_got', line)) -base-24-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-25-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-27-base-624- # A colorizer for the Python's doctest module would be nice too. -base-28-base-625- if doctest: -base-29-base-626- # If we have a doctest, we do not care about this header. All the -base:30:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable -base-31-base-691- from zope.tales.tales import TALESTracebackSupplement -base-32-base-692- from zope.pagetemplate.pagetemplate \ -base-33-base-693- import PageTemplateTracebackSupplement -base:34:</pre></li><li><b>File: utilities/../.svn/text-base/setup_win32.py.svn-base:84</b><br/><pre> pexe['innosetup'] = os.environ.get('INNOSETUP') # TODO: -base-35-base-85- pexe['inno_templates'] = "template.iss" -base-36-base-86- pexe['app_name'] = 'pyMoul' -base-37-base-87- pexe['includes'].extend(findPyTz()) -base:38:</pre></li><li><b>File: utilities/../.svn/text-base/distutils_upx.py.svn-base:117</b><br/><pre> sys.exit(retcode) # XXX -base-39-base-118- -base-40-base-119- def _upxAvailable(self): -base-41-base-120- """Search for UPX in search path -base:42:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-43-base-269- return iter(self._fd) -base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-45-base-113- if header is None: -base-46-base-114- fd = self._fd -base-47-base-115- fd.seek(0) -base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-49-base-128- if size is None: -base-50-base-129- size = self.getFileSize() -base-51-base-130- leading = 4* [None] -base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:156</b><br/><pre> # TODO: write me -base-53-base-157- pass -base-54-base-158- -base-55-base-159-class Constrain(object): -base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-57-base-541- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-58-base-542- # microphon missing -> OS mixer -base-59-base-543- } -base:60:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-61-base-629- -base-62-base-630-class GraphicsIni(ConfFile): -base-63-base-631- _filename = 'graphics.ini' -base:64:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:58</b><br/><pre> # TODO: fnmatch -base-65-base-59- return len([name for name in os.listdir(path) -base-66-base-60- if os.path.isfile(os.path.join(path, name))]) -base-67-base-61- -base:68:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:104</b><br/><pre> # TODO: more -base-69-base-105- -base-70-base-106- def test_publicapi_create(self): -base-71-base-107- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:72:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:115</b><br/><pre> # TODO: more -base-73-base-116- -base-74-base-117-class AudioIniTest(GenericIniTest): -base-75-base-118- enc = aud_enc -base:76:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:153</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-77-base-154- -base-78-base-155- p.screenres = 0 -base-79-base-156- eq(p._get('Graphics.Width'), 800) -base:80:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:79</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-81-base-80- fd = open(os.path.join(path, fname), 'wb') -base-82-base-81- fd.write('dummy') -base-83-base-82- fd.close() -base:84:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:104</b><br/><pre> # TODO: more -base-85- -base-86- def test_publicapi_create(self): -base-87- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:88:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:115</b><br/><pre> # TODO: more -base-89- -base-90-class AudioIniTest(GenericIniTest): -base-91- enc = aud_enc -base:92:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:153</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-93- -base-94- p.screenres = 0 -base-95- eq(p._get('Graphics.Width'), 800) -base:96:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:79</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-97- fd = open(os.path.join(path, fname), 'wb') -base-98- fd.write('dummy') -base-99- fd.close() -base:100:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-101- return iter(self._fd) -base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-103- if header is None: -base-104- fd = self._fd -base-105- fd.seek(0) -base:106:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-107- if size is None: -base-108- size = self.getFileSize() -base-109- leading = 4* [None] -base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:156</b><br/><pre> # TODO: write me -base-111- pass -base-112- -base-113-class Constrain(object): -base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-115- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-116- # microphon missing -> OS mixer -base-117- } -base:118:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-119- -base-120-class GraphicsIni(ConfFile): -base-121- _filename = 'graphics.ini' -base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-123- if header is None: -base-124- fd = self._fd -base-125- fd.seek(0) -base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-127- if size is None: -base-128- size = self.getFileSize() -base-129- leading = 4* [None] -base:130:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file +</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:120</b><br/><pre># XXX: what about cygwin, bsd and others? +base-121-_thismodule = sys.modules[__name__] +base-122-if __WIN32__: +base-123- from moul.osdependent import win32 as osdep_win32 +</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are +base-15-base-549- # separated by a horizontal dash line. Only the first one of +base-16-base-550- # them is now colorized properly. +base-17-base-551- header = lines[0] +base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. +base-19-base-604- result.append(self.colorize('doctest_got', line)) +base-20-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': +base-21-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: +base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. +base-23-base-624- # A colorizer for the Python's doctest module would be nice too. +base-24-base-625- if doctest: +base-25-base-626- # If we have a doctest, we do not care about this header. All the +base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable +base-27-base-691- from zope.tales.tales import TALESTracebackSupplement +base-28-base-692- from zope.pagetemplate.pagetemplate \ +base-29-base-693- import PageTemplateTracebackSupplement +base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file +base-31-base-281- return iter(self._fd) +base:32:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct +base-33-base-113- if header is None: +base-34-base-114- fd = self._fd +base-35-base-115- fd.seek(0) +base:36:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct +base-37-base-128- if size is None: +base-38-base-129- size = self.getFileSize() +base-39-base-130- leading = 4* [None] +base:40:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! +base-41-base-268- if os.path.isfile(fixed): +base-42-base-269- if fixedNewer(ki, fixed): +base-43-base-270- LOG.debug("File %s exists but was changed." % name) +base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me +base-45-base-158- pass +base-46-base-159- +base-47-base-160-class Constrain(object): +base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +base-49-base-542- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui +base-50-base-543- # microphon missing -> OS mixer +base-51-base-544- } +base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +base-53-base-630- +base-54-base-631-class GraphicsIni(ConfFile): +base-55-base-632- _filename = 'graphics.ini' +base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch +base-57-base-60- return len([name for name in os.listdir(path) +base-58-base-61- if os.path.isfile(os.path.join(path, name))]) +base-59-base-62- +base:60:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more +base-61-base-106- +base-62-base-107- def test_publicapi_create(self): +base-63-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) +base:64:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more +base-65-base-117- +base-66-base-118-class AudioIniTest(GenericIniTest): +base-67-base-119- enc = aud_enc +base:68:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) +base-69-base-155- +base-70-base-156- p.screenres = 0 +base-71-base-157- eq(p._get('Graphics.Width'), 800) +base:72:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 +base-73-base-81- fd = open(os.path.join(path, fname), 'wb') +base-74-base-82- fd.write('dummy') +base-75-base-83- fd.close() +base:76:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:105</b><br/><pre> # TODO: more +base-77- +base-78- def test_publicapi_create(self): +base-79- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) +base:80:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more +base-81- +base-82-class AudioIniTest(GenericIniTest): +base-83- enc = aud_enc +base:84:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) +base-85- +base-86- p.screenres = 0 +base-87- eq(p._get('Graphics.Width'), 800) +base:88:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 +base-89- fd = open(os.path.join(path, fname), 'wb') +base-90- fd.write('dummy') +base-91- fd.close() +base:92:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file +base-93- return iter(self._fd) +base:94:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct +base-95- if header is None: +base-96- fd = self._fd +base-97- fd.seek(0) +base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct +base-99- if size is None: +base-100- size = self.getFileSize() +base-101- leading = 4* [None] +base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! +base-103- if os.path.isfile(fixed): +base-104- if fixedNewer(ki, fixed): +base-105- LOG.debug("File %s exists but was changed." % name) +base:106:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me +base-107- pass +base-108- +base-109-class Constrain(object): +base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +base-111- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui +base-112- # microphon missing -> OS mixer +base-113- } +base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +base-115- +base-116-class GraphicsIni(ConfFile): +base-117- _filename = 'graphics.ini' +base:118:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct +base-119- if header is None: +base-120- fd = self._fd +base-121- fd.seek(0) +base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct +base-123- if size is None: +base-124- size = self.getFileSize() +base-125- leading = 4* [None] +base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! +base-127- if os.path.isfile(fixed): +base-128- if fixedNewer(ki, fixed): +base-129- LOG.debug("File %s exists but was changed." % name) +base:130:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file base-131- return iter(self._fd) base:132:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:156</b><br/><pre> # TODO: write me base-133- pass @@ -427,272 +404,638 @@ base-141- base-142-class GraphicsIni(ConfFile): base-143- _filename = 'graphics.ini' -base:144:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:58</b><br/><pre> # TODO: fnmatch +base:144:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch base-145- return len([name for name in os.listdir(path) base-146- if os.path.isfile(os.path.join(path, name))]) base-147- -base:148:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:76</b><br/><pre> # XXX: dos format -base-149-base-77- return data.replace("\r\n", "\n") -base-150-base-78- -base-151-base-79-def encryptWDYS(instr, fout): -base:152:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:86</b><br/><pre> # XXX: dos format -base-153-base-87- instr = instr.replace("\n", "\r\n") -base-154-base-88- fout.seek(0) -base-155-base-89- fout.write(HEADER) -base:156:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:70</b><br/><pre> # XXX NotImplemented -base-157-base-71- raise NotImplementedError -base-158-base-72- -base-159-base-73-def decipher(crypt, size, key): -base:160:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:76</b><br/><pre> # XXX: dos format -base-161- return data.replace("\r\n", "\n") -base-162- -base-163-def encryptWDYS(instr, fout): -base:164:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:86</b><br/><pre> # XXX: dos format -base-165- instr = instr.replace("\n", "\r\n") -base-166- fout.seek(0) -base-167- fout.write(HEADER) -base:168:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:70</b><br/><pre> # XXX NotImplemented -base-169- raise NotImplementedError -base-170- -base-171-def decipher(crypt, size, key): -base:172:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/localization.py.svn-base:78</b><br/><pre> # TODO: other message box -base-173-base-79- self._journal_progressbar = SimpleProgressbar(self) -base-174-base-80- self._journal_progressbar.setWindowTitle(self.trUtf8("Loading journals")) -base-175-base-81- self._journal_progressbar.setProgressbar(0, 1, 0) -base:176:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:76</b><br/><pre> # TODO: checks -base-177-base-77- self.urudatadir.initializeFactories() -base-178-base-78- -base-179-base-79- # init handlers -base:180:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything -base-181-base-153- self.emit(SIGNAL("close()")) -base-182-base-154- event.accept() -base-183-base-155- event.ignore() -base:184:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:189</b><br/><pre> # TODO: msg -base-185-base-190- return -base-186-base-191- -base-187-base-192- self.pb_kiimage_repair.setEnabled(False) -base:188:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:219</b><br/><pre> # TODO: msg -base-189-base-220- -base-190-base-221- # ************************************************************************ -base-191-base-222- # graphics settings -base:192:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:237</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-193-base-238- -base-194-base-239- @signalLogDecorator(LOG) -base-195-base-240- def on_graphicsini_loaded(self): -base:196:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:297</b><br/><pre> # XXX: fixme -base-197-base-298- txt = videoModes.getVidModeHuman(idx) -base-198-base-299- self.lb_screenres.setText(QtCore.QString(txt)) -base-199-base-300- self._graphics_ini.screenres = idx -base:200:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:387</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-201-base-388- -base-202-base-389- @signalLogDecorator(LOG) -base-203-base-390- def on_audioini_loaded(self): -base:204:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:506</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-205-base-507- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-206-base-508- timer.start() -base-207-base-509- -base:208:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:602</b><br/><pre> # TODO: thread safety! -base-209-base-603- self.servers = servers -base-210-base-604- if not self.isRunning(): -base-211-base-605- self.start() -base:212:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:608</b><br/><pre> # TODO: thread safety! -base-213-base-609- # emit a list of names first -base-214-base-610- for server in self.servers: -base-215-base-611- self.emit(SIGNAL("server(const QString&)"), server.name) -base:216:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:644</b><br/><pre> # TODO check this -base-217-base-645- self._running = False -base-218-base-646- self.condition.wakeAll() -base-219-base-647- -base:220:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-221-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base:222:base:48: return # XXX: remove -base-223-base-49- try: -base-224-base-50- title= QtGui.QApplication.translate("excepthook", -base-225-base-51- "An unhandled error has occured", -base:226:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:76</b><br/><pre> # TODO: checks -base-227- self.urudatadir.initializeFactories() -base-228- -base-229- # init handlers -base:230:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:152</b><br/><pre> # FIXME: signal doesn't do anything -base-231- self.emit(SIGNAL("close()")) -base-232- event.accept() -base-233- event.ignore() -base:234:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:189</b><br/><pre> # TODO: msg -base-235- return -base-236- -base-237- self.pb_kiimage_repair.setEnabled(False) -base:238:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:236</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-239- -base-240- @signalLogDecorator(LOG) -base-241- def on_graphicsini_loaded(self): -base:242:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:296</b><br/><pre> # XXX: fixme -base-243- txt = videoModes.getVidModeHuman(idx) -base-244- self.lb_screenres.setText(QtCore.QString(txt)) -base-245- self._graphics_ini.screenres = idx -base:246:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:386</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-247- -base-248- @signalLogDecorator(LOG) -base-249- def on_audioini_loaded(self): -base:250:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:505</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-251- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-252- timer.start() -base-253- -base:254:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:601</b><br/><pre> # TODO: thread safety! -base-255- self.servers = servers -base-256- if not self.isRunning(): -base-257- self.start() -base:258:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:607</b><br/><pre> # TODO: thread safety! -base-259- # emit a list of names first -base-260- for server in self.servers: -base-261- self.emit(SIGNAL("server(const QString&)"), server.name) -base:262:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:643</b><br/><pre> # TODO check this -base-263- self._running = False -base-264- self.condition.wakeAll() -base-265- -base:266:</pre></li><li><b>File: utilities/../src/moul/qt/localization.py:78</b><br/><pre> # TODO: other message box -base-267- self._journal_progressbar = SimpleProgressbar(self) -base-268- self._journal_progressbar.setWindowTitle(self.trUtf8("Loading journals")) -base-269- self._journal_progressbar.setProgressbar(0, 1, 0) -base:270:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:76</b><br/><pre> # TODO: checks -base-271- self.urudatadir.initializeFactories() -base-272- -base-273- # init handlers -base:274:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything -base-275- self.emit(SIGNAL("close()")) -base-276- event.accept() -base-277- event.ignore() -base:278:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:189</b><br/><pre> # TODO: msg -base-279- return -base-280- -base-281- self.pb_kiimage_repair.setEnabled(False) -base:282:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:219</b><br/><pre> # TODO: msg -base-283- -base-284- # ************************************************************************ -base-285- # graphics settings -base:286:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:237</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-287- -base-288- @signalLogDecorator(LOG) -base-289- def on_graphicsini_loaded(self): -base:290:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:297</b><br/><pre> # XXX: fixme -base-291- txt = videoModes.getVidModeHuman(idx) -base-292- self.lb_screenres.setText(QtCore.QString(txt)) -base-293- self._graphics_ini.screenres = idx -base:294:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:387</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-295- -base-296- @signalLogDecorator(LOG) -base-297- def on_audioini_loaded(self): -base:298:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:506</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-299- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-300- timer.start() -base-301- -base:302:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:602</b><br/><pre> # TODO: thread safety! -base-303- self.servers = servers -base-304- if not self.isRunning(): -base-305- self.start() -base:306:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:608</b><br/><pre> # TODO: thread safety! -base-307- # emit a list of names first -base-308- for server in self.servers: -base-309- self.emit(SIGNAL("server(const QString&)"), server.name) -base:310:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:644</b><br/><pre> # TODO check this -base-311- self._running = False -base-312- self.condition.wakeAll() -base-313- -base:314:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware -base-315- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-316- try: -base-317- title= QtGui.QApplication.translate("excepthook", -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:319</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:116</b><br/><pre># XXX: what about cygwin, bsd and others? -base-320-_thismodule = sys.modules[__name__] -base-321-if __WIN32__: -base-322- from moul.osdependent import win32 as osdep_win32 -base:323:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:116</b><br/><pre># XXX: what about cygwin, bsd and others? -base-324-base-117-_thismodule = sys.modules[__name__] -base-325-base-118-if __WIN32__: -base-326-base-119- from moul.osdependent import win32 as osdep_win32 -base:327:</pre></li><li><b>File: utilities/../test.py:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-328- # separated by a horizontal dash line. Only the first one of -base-329- # them is now colorized properly. -base-330- header = lines[0] -base:331:</pre></li><li><b>File: utilities/../test.py:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-332- result.append(self.colorize('doctest_got', line)) -base-333- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-334- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:335:</pre></li><li><b>File: utilities/../test.py:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-336- # A colorizer for the Python's doctest module would be nice too. -base-337- if doctest: -base-338- # If we have a doctest, we do not care about this header. All the -base:339:</pre></li><li><b>File: utilities/../test.py:690</b><br/><pre> # TODO these should be hookable -base-340- from zope.tales.tales import TALESTracebackSupplement -base-341- from zope.pagetemplate.pagetemplate \ -base-342- import PageTemplateTracebackSupplement -base:343:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:6</b><br/><pre># Todo: -base-344-base-7-# -base-345-base-8-# Make 'unbuffered' a per-target option -base-346-base-9- -base:347:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:357</b><br/><pre>## extra_path = ["."] # XXX -base-348-base-358- extra_path = [] -base-349-base-359- dlls, unfriendly_dlls, other_depends = \ -base-350-base-360- self.find_dependend_dlls(dlls, -base:351:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:403</b><br/><pre> # XXX all dlls are copied into the same directory - a flat name space. -base-352-base-404- # sooner or later that will give conflicts. -base-353-base-405- dst = os.path.join(self.lib_dir, os.path.basename(item.__file__)) -base-354-base-406- self.copy_file(src, dst, preserve_mode=0) -base:355:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:919</b><br/><pre> # XXX On Windows NT, the SYSTEM directory is also searched -base-356-base-920- exedir = os.path.dirname(sys.executable) -base-357-base-921- syspath = os.environ['PATH'] -base-358-base-922- loadpath = ';'.join([exedir, sysdir, windir, syspath]) -base:359:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:1329</b><br/><pre># XXX This list is NOT complete (it cannot be) -base-360-base-1330-# Note: ALL ENTRIES MUST BE IN LOWER CASE! -base-361-base-1331-EXCLUDED_DLLS = ( -base-362-base-1332- "advapi32.dll", -base:363:</pre></li><li><b>File: utilities/../contrib/.svn/text-base/build_exe.py.svn-base:1362</b><br/><pre># XXX Perhaps it would be better to assume dlls from the systemdir are system dlls, -base-364-base-1363-# and make some exceptions for known dlls, like msvcr71, pythonXY.dll, and so on? -base-365-base-1364-def isSystemDLL(pathname): -base-366-base-1365- if os.path.basename(pathname).lower() in ("msvcr71.dll", "msvcr71d.dll"): -base:367:</pre></li><li><b>File: utilities/../contrib/build_exe.py:6</b><br/><pre># Todo: -base-368-# -base-369-# Make 'unbuffered' a per-target option -base-370- -base:371:</pre></li><li><b>File: utilities/../contrib/build_exe.py:357</b><br/><pre>## extra_path = ["."] # XXX -base-372- extra_path = [] -base-373- dlls, unfriendly_dlls, other_depends = \ -base-374- self.find_dependend_dlls(dlls, -base:375:</pre></li><li><b>File: utilities/../contrib/build_exe.py:403</b><br/><pre> # XXX all dlls are copied into the same directory - a flat name space. -base-376- # sooner or later that will give conflicts. -base-377- dst = os.path.join(self.lib_dir, os.path.basename(item.__file__)) -base-378- self.copy_file(src, dst, preserve_mode=0) -base:379:</pre></li><li><b>File: utilities/../contrib/build_exe.py:919</b><br/><pre> # XXX On Windows NT, the SYSTEM directory is also searched -base-380- exedir = os.path.dirname(sys.executable) -base-381- syspath = os.environ['PATH'] -base-382- loadpath = ';'.join([exedir, sysdir, windir, syspath]) -base:383:</pre></li><li><b>File: utilities/../contrib/build_exe.py:1329</b><br/><pre># XXX This list is NOT complete (it cannot be) -base-384-# Note: ALL ENTRIES MUST BE IN LOWER CASE! -base-385-EXCLUDED_DLLS = ( -base-386- "advapi32.dll", -base:387:</pre></li><li><b>File: utilities/../contrib/build_exe.py:1362</b><br/><pre># XXX Perhaps it would be better to assume dlls from the systemdir are system dlls, -base-388-# and make some exceptions for known dlls, like msvcr71, pythonXY.dll, and so on? -base-389-def isSystemDLL(pathname): -base-390- if os.path.basename(pathname).lower() in ("msvcr71.dll", "msvcr71d.dll"): -base:391:</pre></li><li><b>File: utilities/../utilities/.svn/text-base/setup_win32.py.svn-base:84</b><br/><pre> pexe['innosetup'] = os.environ.get('INNOSETUP') # TODO: -base-392-base-85- pexe['inno_templates'] = "template.iss" -base-393-base-86- pexe['app_name'] = 'pyMoul' -base-394-base-87- pexe['includes'].extend(findPyTz()) -base:395:</pre></li><li><b>File: utilities/../utilities/.svn/text-base/distutils_upx.py.svn-base:117</b><br/><pre> sys.exit(retcode) # XXX -base-396-base-118- -base-397-base-119- def _upxAvailable(self): -base-398-base-120- """Search for UPX in search path -base:399:</pre></li><li><b>File: utilities/../utilities/.svn/text-base/ez_setup.py.svn-base:92</b><br/><pre> # XXX could we install in a subprocess here? -base-400-base-93- print >>sys.stderr, ( -base-401-base-94- "The required version of setuptools (>=%s) is not available, and\n" -base-402-base-95- "can't be installed while this script is running. Please install\n" -base:403:</pre></li><li><b>File: utilities/../utilities/setup_win32.py:84</b><br/><pre> pexe['innosetup'] = os.environ.get('INNOSETUP') # TODO: -base-404- pexe['inno_templates'] = "template.iss" -base-405- pexe['app_name'] = 'pyMoul' -base-406- pexe['includes'].extend(findPyTz()) -base:407:</pre></li><li><b>File: utilities/../utilities/distutils_upx.py:117</b><br/><pre> sys.exit(retcode) # XXX -base-408- -base-409- def _upxAvailable(self): -base-410- """Search for UPX in search path +base:148:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch +base-149- return len([name for name in os.listdir(path) +base-150- if os.path.isfile(os.path.join(path, name))]) +base-151- +base:152:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format +base-153-base-78- return data.replace("\r\n", "\n") +base-154-base-79- +base-155-base-80-def encryptWDYS(instr, fout): +base:156:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format +base-157-base-88- instr = instr.replace("\n", "\r\n") +base-158-base-89- fout.seek(0) +base-159-base-90- fout.write(HEADER) +base:160:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented +base-161-base-72- raise NotImplementedError +base-162-base-73- +base-163-base-74-def decipher(crypt, size, key): +base:164:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format +base-165- return data.replace("\r\n", "\n") +base-166- +base-167-def encryptWDYS(instr, fout): +base:168:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format +base-169- instr = instr.replace("\n", "\r\n") +base-170- fout.seek(0) +base-171- fout.write(HEADER) +base:172:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented +base-173- raise NotImplementedError +base-174- +base-175-def decipher(crypt, size, key): +base:176:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:151</b><br/><pre> # FIXME: signal doesn't do anything +base-177-base-152- self.emit(SIGNAL("close()")) +base-178-base-153- event.accept() +base-179-base-154- event.ignore() +base:180:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:222</b><br/><pre> # TODO: msg +base-181-base-223- return +base-182-base-224- +base-183-base-225- self.pb_kiimage_repair.setEnabled(False) +base:184:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:248</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-185-base-249- del self._kiimage_progressbar +base-186-base-250- self.pb_kiim... [truncated message content] |
From: <ti...@us...> - 2007-02-08 20:03:37
|
Revision: 156 http://pymoul.svn.sourceforge.net/pymoul/?rev=156&view=rev Author: tiran Date: 2007-02-08 12:02:58 -0800 (Thu, 08 Feb 2007) Log Message: ----------- Added binary file class Updated languages Updated XXX report and Readme Modified Paths: -------------- pymoul/trunk/README.txt pymoul/trunk/doc/TODO.txt pymoul/trunk/doc/XXXreport.html pymoul/trunk/src/moul/crypt/elf.py pymoul/trunk/src/moul/crypt/whatdoyousee.py pymoul/trunk/src/moul/metadata.py pymoul/trunk/src/moul/qt/i18n/pymoul_de.ts pymoul/trunk/src/moul/qt/i18n/pymoul_es.ts pymoul/trunk/src/moul/qt/i18n/pymoul_fr.ts pymoul/trunk/src/moul/qt/i18n/pymoul_it.ts pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts Added Paths: ----------- pymoul/trunk/src/moul/crypt/binary.py Modified: pymoul/trunk/README.txt =================================================================== --- pymoul/trunk/README.txt 2007-02-07 15:01:15 UTC (rev 155) +++ pymoul/trunk/README.txt 2007-02-08 20:02:58 UTC (rev 156) @@ -8,6 +8,29 @@ 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. +Bug reporting and feature requests +================================== + +Please do not mail me bug reports or feature requests. You should use the bug +and feature tracker at http://sourceforge.net/projects/pymoul instead. Do not +forget to include a log file! The location of the log file is stated in the +about tab of pyMoul. + +GnuPG / PGP +=========== + +Every released file is signed with my GPG key 0xAD16AB1B for security reasons. +You can grab my keys from http://cheimes.de/heimes.asc. + +Anti virus +========== + +The windows builds are scanned for viruses and trojaners with the personal +edition of Avira AntiVir (formally known as H+BEDV AntiVir) +http://www.freeav.de/. Although the files are scanned under Windows and Linux +and my Windows box is kept up to date I cannot gurantee that the files are +clean. + Donate ====== @@ -15,5 +38,4 @@ 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 - +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=0&cn=Your%20note%20for%20me&tax=0¤cy_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8 Modified: pymoul/trunk/doc/TODO.txt =================================================================== --- pymoul/trunk/doc/TODO.txt 2007-02-07 15:01:15 UTC (rev 155) +++ pymoul/trunk/doc/TODO.txt 2007-02-08 20:02:58 UTC (rev 156) @@ -6,13 +6,19 @@ ----------- * get official OK from Chogon - * API for create Uru Live directory with config files with default values. * integrate log zipper - * integrate chat archiver - * complete chatlog viewer * more checks and exceptions! Never fail silentely * update readme.txt * connect QThread.terminate() slots with its parents close/destroy signal handler * clean documents/journal/localization naming + * table model for PING tab +future +------ + + * better chatlog viewer + * ElementTree based generator chatlog xml and color coded html + * more unit tests + * more epydoc strings + * UI enhancements like whatisthis bubbles and accelerators Modified: pymoul/trunk/doc/XXXreport.html =================================================================== --- pymoul/trunk/doc/XXXreport.html 2007-02-07 15:01:15 UTC (rev 155) +++ pymoul/trunk/doc/XXXreport.html 2007-02-08 20:02:58 UTC (rev 156) @@ -3,7 +3,7 @@ <body> <h1>pyMoul - Developer report tools: XXX/TODO/FIXME comments</h1> -<p>Generated on Tue, 06 Feb 2007 18:05:35 CET, based on Zope 3's XXX report</p> +<p>Generated on Wed, 07 Feb 2007 16:03:30 CET, based on Zope 3's XXX report</p> <hr> <h3>Summary</h3> <p> @@ -27,10 +27,10 @@ base-691- from zope.tales.tales import TALESTracebackSupplement base-692- from zope.pagetemplate.pagetemplate \ base-693- import PageTemplateTracebackSupplement -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-209- if not os.path.isdir(self._logdir): -base-210- LOG.warning("%s is not a directory" % logdir) -base-211- return +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:216</b><br/><pre> # TODO: inefficient, compare list with directory content +base-217- if not os.path.isdir(self._archivedir): +base-218- LOG.warning("%s is not a directory" % self._archivedir) +base-219- return </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct base-113- if header is None: base-114- fd = self._fd @@ -91,10 +91,10 @@ fd = open(os.path.join(path, fname), 'wb') fd.write('dummy') fd.close() -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:208</b><br/><pre> # TODO: inefficient, compare list with directory content - if not os.path.isdir(self._logdir): - LOG.warning("%s is not a directory" % logdir) - return +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content + if not os.path.isdir(self._archivedir): + LOG.warning("%s is not a directory" % self._archivedir) + return </pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct if header is None: fd = self._fd @@ -143,10 +143,10 @@ class GraphicsIni(ConfFile): _filename = 'graphics.ini' -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:208</b><br/><pre> # TODO: inefficient, compare list with directory content - if not os.path.isdir(logdir): - LOG.warning("%s is not a directory" % logdir) - return +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content + if not os.path.isdir(self._archivedir): + LOG.warning("%s is not a directory" % self._archivedir) + return </pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch return len([name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name))]) @@ -179,93 +179,93 @@ raise NotImplementedError def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:149</b><br/><pre> # FIXME: signal doesn't do anything -base-150- self.emit(SIGNAL("close()")) -base-151- event.accept() -base-152- event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-251- del self._kiimage_progressbar -base-252- self.pb_kiimage_repair.setEnabled(True) -base-253- mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:345</b><br/><pre> # TODO: change timer from every second to every minute -base-346- self._timezone_timer = timer = QtCore.QTimer(self) -base-347- timer.setInterval(1000) # 1 sec -base:348: # TODO: needs optimization? run only when timer tab is active -base-349- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-350- timer.start() -base-351- -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:442</b><br/><pre> # TODO: thread safety! -base-443- self.servers = servers -base-444- if not self.isRunning(): -base-445- self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:448</b><br/><pre> # TODO: thread safety! -base-449- # emit a list of names first -base-450- for server in self.servers: -base-451- self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO check this -base-485- self._running = False -base-486- self.condition.wakeAll() -base-487- -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-48- if not getattr(sys, 'frozen', False): -base-49- return -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:149</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything +base-153- self.emit(SIGNAL("close()")) +base-154- event.accept() +base-155- event.ignore() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-292- del self._kiimage_progressbar +base-293- self.pb_kiimage_repair.setEnabled(True) +base-294- mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:390</b><br/><pre> # TODO: change timer from every second to every minute +base-391- self._timezone_timer = timer = QtCore.QTimer(self) +base-392- timer.setInterval(1000) # 1 sec +base:393: # TODO: needs optimization? run only when timer tab is active +base-394- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) +base-395- timer.start() +base-396- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:487</b><br/><pre> # TODO: thread safety! +base-488- self.servers = servers +base-489- if not self.isRunning(): +base-490- self.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:493</b><br/><pre> # TODO: thread safety! +base-494- # emit a list of names first +base-495- for server in self.servers: +base-496- self.emit(SIGNAL("server(const QString&)"), server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:531</b><br/><pre> # TODO check this +base-532- self._running = False +base-533- self.condition.wakeAll() +base-534- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware +base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) +base-47- if getattr(sys, 'frozen', False): +base-48- try: +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:151</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:290</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:345</b><br/><pre> # TODO: change timer from every second to every minute +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:389</b><br/><pre> # TODO: change timer from every second to every minute self._timezone_timer = timer = QtCore.QTimer(self) timer.setInterval(1000) # 1 sec self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:442</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:486</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:448</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:492</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:484</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:530</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:149</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:345</b><br/><pre> # TODO: change timer from every second to every minute +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:390</b><br/><pre> # TODO: change timer from every second to every minute self._timezone_timer = timer = QtCore.QTimer(self) timer.setInterval(1000) # 1 sec self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:442</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:487</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:448</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:493</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:484</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:531</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() -</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware +</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) - if not getattr(sys, 'frozen', False): - return + if getattr(sys, 'frozen', False): + try: </pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? _thismodule = sys.modules[__name__] if __WIN32__: @@ -290,752 +290,1095 @@ base-27-base-691- from zope.tales.tales import TALESTracebackSupplement base-28-base-692- from zope.pagetemplate.pagetemplate \ base-29-base-693- import PageTemplateTracebackSupplement -base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-31-base-281- return iter(self._fd) -base:32:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-33-base-113- if header is None: -base-34-base-114- fd = self._fd -base-35-base-115- fd.seek(0) -base:36:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-37-base-128- if size is None: -base-38-base-129- size = self.getFileSize() -base-39-base-130- leading = 4* [None] -base:40:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-41-base-268- if os.path.isfile(fixed): -base-42-base-269- if fixedNewer(ki, fixed): -base-43-base-270- LOG.debug("File %s exists but was changed." % name) -base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me -base-45-base-158- pass -base-46-base-159- -base-47-base-160-class Constrain(object): -base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-49-base-542- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-50-base-543- # microphon missing -> OS mixer -base-51-base-544- } -base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-53-base-630- -base-54-base-631-class GraphicsIni(ConfFile): -base-55-base-632- _filename = 'graphics.ini' -base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch -base-57-base-60- return len([name for name in os.listdir(path) -base-58-base-61- if os.path.isfile(os.path.join(path, name))]) -base-59-base-62- -base:60:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more -base-61-base-106- -base-62-base-107- def test_publicapi_create(self): -base-63-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:64:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-65-base-117- -base-66-base-118-class AudioIniTest(GenericIniTest): -base-67-base-119- enc = aud_enc -base:68:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-69-base-155- -base-70-base-156- p.screenres = 0 -base-71-base-157- eq(p._get('Graphics.Width'), 800) -base:72:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-73-base-81- fd = open(os.path.join(path, fname), 'wb') -base-74-base-82- fd.write('dummy') -base-75-base-83- fd.close() -base:76:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:105</b><br/><pre> # TODO: more -base-77- -base-78- def test_publicapi_create(self): -base-79- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:80:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more -base-81- -base-82-class AudioIniTest(GenericIniTest): -base-83- enc = aud_enc -base:84:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-85- -base-86- p.screenres = 0 -base-87- eq(p._get('Graphics.Width'), 800) -base:88:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-89- fd = open(os.path.join(path, fname), 'wb') -base-90- fd.write('dummy') -base-91- fd.close() -base:92:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-93- return iter(self._fd) -base:94:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-95- if header is None: -base-96- fd = self._fd -base-97- fd.seek(0) -base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-99- if size is None: -base-100- size = self.getFileSize() -base-101- leading = 4* [None] -base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-103- if os.path.isfile(fixed): -base-104- if fixedNewer(ki, fixed): -base-105- LOG.debug("File %s exists but was changed." % name) -base:106:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-107- pass -base-108- -base-109-class Constrain(object): -base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-111- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-112- # microphon missing -> OS mixer -base-113- } -base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-115- -base-116-class GraphicsIni(ConfFile): -base-117- _filename = 'graphics.ini' -base:118:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-119- if header is None: -base-120- fd = self._fd -base-121- fd.seek(0) -base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-123- if size is None: -base-124- size = self.getFileSize() -base-125- leading = 4* [None] -base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-127- if os.path.isfile(fixed): -base-128- if fixedNewer(ki, fixed): -base-129- LOG.debug("File %s exists but was changed." % name) -base:130:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-131- return iter(self._fd) -base:132:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:156</b><br/><pre> # TODO: write me -base-133- pass -base-134- -base-135-class Constrain(object): -base:136:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-137- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-138- # microphon missing -> OS mixer -base-139- } -base:140:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-141- -base-142-class GraphicsIni(ConfFile): -base-143- _filename = 'graphics.ini' -base:144:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-145- return len([name for name in os.listdir(path) -base-146- if os.path.isfile(os.path.join(path, name))]) -base-147- -base:148:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-149- return len([name for name in os.listdir(path) -base-150- if os.path.isfile(os.path.join(path, name))]) -base-151- -base:152:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-153-base-78- return data.replace("\r\n", "\n") -base-154-base-79- -base-155-base-80-def encryptWDYS(instr, fout): -base:156:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-157-base-88- instr = instr.replace("\n", "\r\n") -base-158-base-89- fout.seek(0) -base-159-base-90- fout.write(HEADER) -base:160:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-161-base-72- raise NotImplementedError -base-162-base-73- -base-163-base-74-def decipher(crypt, size, key): -base:164:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format -base-165- return data.replace("\r\n", "\n") -base-166- -base-167-def encryptWDYS(instr, fout): -base:168:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format -base-169- instr = instr.replace("\n", "\r\n") -base-170- fout.seek(0) -base-171- fout.write(HEADER) -base:172:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented -base-173- raise NotImplementedError -base-174- -base-175-def decipher(crypt, size, key): -base:176:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:151</b><br/><pre> # FIXME: signal doesn't do anything -base-177-base-152- self.emit(SIGNAL("close()")) -base-178-base-153- event.accept() -base-179-base-154- event.ignore() -base:180:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:222</b><br/><pre> # TODO: msg -base-181-base-223- return -base-182-base-224- -base-183-base-225- self.pb_kiimage_repair.setEnabled(False) -base:184:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:248</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-185-base-249- del self._kiimage_progressbar -base-186-base-250- self.pb_kiimage_repair.setEnabled(True) -base:187:base:251: # TODO: msg -base-188-base-252- -base-189-base-253- # ************************************************************************ -base-190-base-254- # system tray -base:191:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:281</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-192-base-282- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-193-base-283- timer.start() -base-194-base-284- -base:195:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:375</b><br/><pre> # TODO: thread safety! -base-196-base-376- self.servers = servers -base-197-base-377- if not self.isRunning(): -base-198-base-378- self.start() -base:199:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:381</b><br/><pre> # TODO: thread safety! -base-200-base-382- # emit a list of names first -base-201-base-383- for server in self.servers: -base-202-base-384- self.emit(SIGNAL("server(const QString&)"), server.name) -base:203:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:417</b><br/><pre> # TODO check this -base-204-base-418- self._running = False -base-205-base-419- self.condition.wakeAll() -base-206-base-420- -base:207:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-208-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-209-base-48- if not getattr(sys, 'frozen', False): -base-210-base-49- return -base:211:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/wdysini.py.svn-base:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base:212:base:68: self.context.emit(SIGNAL("graphicsini_load()")) # XXX: hard coded emit -base-213-base-69- -base-214-base-70- @pyqtSignature("bool") -base-215-base-71- def on_graphicsChanged(self, boolean): -base:216:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:143</b><br/><pre> # FIXME: signal doesn't do anything -base-217- self.emit(SIGNAL("close()")) -base-218- event.accept() -base-219- event.ignore() -base:220:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:214</b><br/><pre> # TODO: msg -base-221- return -base-222- -base-223- self.pb_kiimage_repair.setEnabled(False) -base:224:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-225- del self._kiimage_progressbar -base-226- self.pb_kiimage_repair.setEnabled(True) -base-227- -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:230</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-231- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-232- timer.start() -base-233- -base:234:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:382</b><br/><pre> # TODO: thread safety! -base-235- self.servers = servers -base-236- if not self.isRunning(): -base-237- self.start() -base:238:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:388</b><br/><pre> # TODO: thread safety! -base-239- # emit a list of names first -base-240- for server in self.servers: -base-241- self.emit(SIGNAL("server(const QString&)"), server.name) -base:242:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:424</b><br/><pre> # TODO check this -base-243- self._running = False -base-244- self.condition.wakeAll() -base-245- -base:246:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:143</b><br/><pre> # FIXME: signal doesn't do anything -base-247- self.emit(SIGNAL("close()")) -base-248- event.accept() -base-249- event.ignore() -base:250:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:214</b><br/><pre> # TODO: msg -base-251- return -base-252- -base-253- self.pb_kiimage_repair.setEnabled(False) -base:254:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-255- del self._kiimage_progressbar -base-256- self.pb_kiimage_repair.setEnabled(True) -base-257- -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:260</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-261- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-262- timer.start() -base-263- -base:264:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:382</b><br/><pre> # TODO: thread safety! -base-265- self.servers = servers -base-266- if not self.isRunning(): -base-267- self.start() -base:268:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:388</b><br/><pre> # TODO: thread safety! -base-269- # emit a list of names first -base-270- for server in self.servers: -base-271- self.emit(SIGNAL("server(const QString&)"), server.name) -base:272:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:424</b><br/><pre> # TODO check this -base-273- self._running = False -base-274- self.condition.wakeAll() -base-275- -base:276:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware -base-277- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-278- if not getattr(sys, 'frozen', False): -base-279- return -base:280:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py~:46</b><br/><pre> # TODO: translation aware -base-281- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-282- if not getattr(sys, 'frozen', False): -base-283- return -base:284:</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py~:68</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base-285- -base-286- @signalLogDecorator(LOG) -base-287- @pyqtSignature("bool") -base:288:</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base-289- -base-290- @pyqtSignature("bool") -base-291- def on_graphicsChanged(self, boolean): -base:292:</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:117</b><br/><pre># XXX: what about cygwin, bsd and others? -base-293-_thismodule = sys.modules[__name__] -base-294-if __WIN32__: -base-295- from moul.osdependent import win32 as osdep_win32 -base:296:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:117</b><br/><pre># XXX: what about cygwin, bsd and others? -base-297-base-118-_thismodule = sys.modules[__name__] -base-298-base-119-if __WIN32__: -base-299-base-120- from moul.osdependent import win32 as osdep_win32 -base:300:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/ez_setup.py.svn-base:92</b><br/><pre> # XXX could we install in a subprocess here? -base-301-base-15-base-93- print >>sys.stderr, ( -base-302-base-16-base-94- "The required version of setuptools (>=%s) is not available, and\n" -base-303-base-17-base-95- "can't be installed while this script is running. Please install\n" -base:304:base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-305-base-19-base-549- # separated by a horizontal dash line. Only the first one of -base-306-base-20-base-550- # them is now colorized properly. -base-307-base-21-base-551- header = lines[0] -base:308:base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-309-base-23-base-604- result.append(self.colorize('doctest_got', line)) -base-310-base-24-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-311-base-25-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:312:base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-313-base-27-base-624- # A colorizer for the Python's doctest module would be nice too. -base-314-base-28-base-625- if doctest: -base-315-base-29-base-626- # If we have a doctest, we do not care about this header. All the -base:316:base:30:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable -base-317-base-31-base-691- from zope.tales.tales import TALESTracebackSupplement -base-318-base-32-base-692- from zope.pagetemplate.pagetemplate \ -base-319-base-33-base-693- import PageTemplateTracebackSupplement -base:320:base:34:</pre></li><li><b>File: utilities/../.svn/text-base/setup_win32.py.svn-base:84</b><br/><pre> pexe['innosetup'] = os.environ.get('INNOSETUP') # TODO: -base-321-base-35-base-85- pexe['inno_templates'] = "template.iss" -base-322-base-36-base-86- pexe['app_name'] = 'pyMoul' -base-323-base-37-base-87- pexe['includes'].extend(findPyTz()) -base:324:base:38:</pre></li><li><b>File: utilities/../.svn/text-base/distutils_upx.py.svn-base:117</b><br/><pre> sys.exit(retcode) # XXX -base-325-base-39-base-118- -base-326-base-40-base-119- def _upxAvailable(self): -base-327-base-41-base-120- """Search for UPX in search path -base:328:base:42:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-329-base-43-base-269- return iter(self._fd) -base:330:base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-331-base-45-base-113- if header is None: -base-332-base-46-base-114- fd = self._fd -base-333-base-47-base-115- fd.seek(0) -base:334:base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-335-base-49-base-128- if size is None: -base-336-base-50-base-129- size = self.getFileSize() -base-337-base-51-base-130- leading = 4* [None] -base:338:base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:156</b><br/><pre> # TODO: write me -base-339-base-53-base-157- pass -base-340-base-54-base-158- -base-341-base-55-base-159-class Constrain(object): -base:342:base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-343-base-57-base-541- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-344-base-58-base-542- # microphon missing -> OS mixer -base-345-base-59-base-543- } -base:346:base:60:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-347-base-61-base-629- -base-348-base-62-base-630-class GraphicsIni(ConfFile): -base-349-base-63-base-631- _filename = 'graphics.ini' -base:350:base:64:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:58</b><br/><pre> # TODO: fnmatch -base-351-base-65-base-59- return len([name for name in os.listdir(path) -base-352-base-66-base-60- if os.path.isfile(os.path.join(path, name))]) -base-353-base-67-base-61- -base:354:base:68:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:104</b><br/><pre> # TODO: more -base-355-base-69-base-105- -base-356-base-70-base-106- def test_publicapi_create(self): -base-357-base-71-base-107- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:358:base:72:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:115</b><br/><pre> # TODO: more -base-359-base-73-base-116- -base-360-base-74-base-117-class AudioIniTest(GenericIniTest): -base-361-base-75-base-118- enc = aud_enc -base:362:base:76:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:153</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-363-base-77-base-154- -base-364-base-78-base-155- p.screenres = 0 -base-365-base-79-base-156- eq(p._get('Graphics.Width'), 800) -base:366:base:80:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:79</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-367-base-81-base-80- fd = open(os.path.join(path, fname), 'wb') -base-368-base-82-base-81- fd.write('dummy') -base-369-base-83-base-82- fd.close() -base:370:base:84:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:104</b><br/><pre> # TODO: more -base-371-base-85- -base-372-base-86- def test_publicapi_create(self): -base-373-base-87- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:374:base:88:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:115</b><br/><pre> # TODO: more -base-375-base-89- -base-376-base-90-class AudioIniTest(GenericIniTest): -base-377-base-91- enc = aud_enc -base:378:base:92:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:153</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-379-base-93- -base-380-base-94- p.screenres = 0 -base-381-base-95- eq(p._get('Graphics.Width'), 800) -base:382:base:96:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:79</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-383-base-97- fd = open(os.path.join(path, fname), 'wb') -base-384-base-98- fd.write('dummy') -base-385-base-99- fd.close() -base:386:base:100:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-387-base-101- return iter(self._fd) -base:388:base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-389-base-103- if header is None: -base-390-base-104- fd = self._fd -base-391-base-105- fd.seek(0) -base:392:base:106:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-393-base-107- if size is None: -base-394-base-108- size = self.getFileSize() -base-395-base-109- leading = 4* [None] -base:396:base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:156</b><br/><pre> # TODO: write me -base-397-base-111- pass -base-398-base-112- -base-399-base-113-class Constrain(object): -base:400:base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-401-base-115- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-402-base-116- # microphon missing -> OS mixer -base-403-base-117- } -base:404:base:118:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-405-base-119- -base-406-base-120-class GraphicsIni(ConfFile): -base-407-base-121- _filename = 'graphics.ini' -base:408:base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-409-base-123- if header is None: -base-410-base-124- fd = self._fd -base-411-base-125- fd.seek(0) -base:412:base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-413-base-127- if size is None: -base-414-base-128- size = self.getFileSize() -base-415-base-129- leading = 4* [None] -base:416:base:130:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-417-base-131- return iter(self._fd) -base:418:base:132:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:156</b><br/><pre> # TODO: write me -base-419-base-133- pass -base-420-base-134- -base-421-base-135-class Constrain(object): -base:422:base:136:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-423-base-137- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-424-base-138- # microphon missing -> OS mixer -base-425-base-139- } -base:426:base:140:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-427-base-141- -base-428-base-142-class GraphicsIni(ConfFile): -base-429-base-143- _filename = 'graphics.ini' -base:430:base:144:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:58</b><br/><pre> # TODO: fnmatch -base-431-base-145- return len([name for name in os.listdir(path) -base-432-base-146- if os.path.isfile(os.path.join(path, name))]) -base-433-base-147- -base:434:base:148:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:76</b><br/><pre> # XXX: dos format -base-435-base-149-base-77- return data.replace("\r\n", "\n") -base-436-base-150-base-78- -base-437-base-151-base-79-def encryptWDYS(instr, fout): -base:438:base:152:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:86</b><br/><pre> # XXX: dos format -base-439-base-153-base-87- instr = instr.replace("\n", "\r\n") -base-440-base-154-base-88- fout.seek(0) -base-441-base-155-base-89- fout.write(HEADER) -base:442:base:156:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:70</b><br/><pre> # XXX NotImplemented -base-443-base-157-base-71- raise NotImplementedError -base-444-base-158-base-72- -base-445-base-159-base-73-def decipher(crypt, size, key): -base:446:base:160:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:76</b><br/><pre> # XXX: dos format -base-447-base-161- return data.replace("\r\n", "\n") -base-448-base-162- -base-449-base-163-def encryptWDYS(instr, fout): -base:450:base:164:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:86</b><br/><pre> # XXX: dos format -base-451-base-165- instr = instr.replace("\n", "\r\n") -base-452-base-166- fout.seek(0) -base-453-base-167- fout.write(HEADER) -base:454:base:168:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:70</b><br/><pre> # XXX NotImplemented -base-455-base-169- raise NotImplementedError -base-456-base-170- -base-457-base-171-def decipher(crypt, size, key): -base:458:base:172:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/localization.py.svn-base:78</b><br/><pre> # TODO: other message box -base-459-base-173-base-79- self._journal_progressbar = SimpleProgressbar(self) -base-460-base-174-base-80- self._journal_progressbar.setWindowTitle(self.trUtf8("Loading journals")) -base-461-base-175-base-81- self._journal_progressbar.setProgressbar(0, 1, 0) -base:462:base:176:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:76</b><br/><pre> # TODO: checks -base-463-base-177-base-77- self.urudatadir.initializeFactories() -base-464-base-178-base-78- -base-465-base-179-base-79- # init handlers -base:466:base:180:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything -base-467-base-181-base-153- self.emit(SIGNAL("close()")) -base-468-base-182-base-154- event.accept() -base-469-base-183-base-155- event.ignore() -base:470:base:184:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:189</b><br/><pre> # TODO: msg -base-471-base-185-base-190- return -base-472-base-186-base-191- -base-473-base-187-base-192- self.pb_kiimage_repair.setEnabled(False) -base:474:base:188:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:219</b><br/><pre> # TODO: msg -base-475-base-189-base-220- -base-476-base-190-base-221- # ************************************************************************ -base-477-base-191-base-222- # graphics settings -base:478:base:192:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:237</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-479-base-193-base-238- -base-480-base-194-base-239- @signalLogDecorator(LOG) -base-481-base-195-base-240- def on_graphicsini_loaded(self): -base:482:base:196:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:297</b><br/><pre> # XXX: fixme -base-483-base-197-base-298- txt = videoModes.getVidModeHuman(idx) -base-484-base-198-base-299- self.lb_screenres.setText(QtCore.QString(txt)) -base-485-base-199-base-300- self._graphics_ini.screenres = idx -base:486:base:200:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:387</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-487-base-201-base-388- -base-488-base-202-base-389- @signalLogDecorator(LOG) -base-489-base-203-base-390- def on_audioini_loaded(self): -base:490:base:204:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:506</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-491-base-205-base-507- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-492-base-206-base-508- timer.start() -base-493-base-207-base-509- -base:494:base:208:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:602</b><br/><pre> # TODO: thread safety! -base-495-base-209-base-603- self.servers = servers -base-496-base-210-base-604- if not self.isRunning(): -base-497-base-211-base-605- self.start() -base:498:base:212:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:608</b><br/><pre> # TODO: thread safety! -base-499-base-213-base-609- # emit a list of names first -base-500-base-214-base-610- for server in self.servers: -base-501-base-215-base-611- self.emit(SIGNAL("server(const QString&)"), server.name) -base:502:base:216:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:644</b><br/><pre> # TODO check this -base-503-base-217-base-645- self._running = False -base-504-base-218-base-646- self.condition.wakeAll() -base-505-base-219-base-647- -base:506:base:220:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-507-base-221-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base:508:base:222:base:48: return # XXX: remove -base-509-base-223-base-49- try: -base-510-base-224-base-50- title= QtGui.QApplication.translate("excepthook", -base-511-base-225-base-51- "An unhandled error has occured", -base:512:base:226:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:76</b><br/><pre> # TODO: checks -base-513-base-227- self.urudatadir.initializeFactories() -base-514-base-228- -base-515-base-229- # init handlers -base:516:base:230:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:152</b><br/><pre> # FIXME: signal doesn't do anything -base-517-base-231- self.emit(SIGNAL("close()")) -base-518-base-232- event.accept() -base-519-base-233- event.ignore() -base:520:base:234:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:189</b><br/><pre> # TODO: msg -base-521-base-235- return -base-522-base-236- -base-523-base-237- self.pb_kiimage_repair.setEnabled(False) -base:524:base:238:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:236</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-525-base-239- -base-526-base-240- @signalLogDecorator(LOG) -base-527-base-241- def on_graphicsini_loaded(self): -base:528:base:242:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:296</b><br/><pre> # XXX: fixme -base-529-base-243- txt = videoModes.getVidModeHuman(idx) -base-530-base-244- self.lb_screenres.setText(QtCore.QString(txt)) -base-531-base-245- self._graphics_ini.screenres = idx -base:532:base:246:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:386</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-533-base-247- -base-534-base-248- @signalLogDecorator(LOG) -base-535-base-249- def on_audioini_loaded(self): -base:536:base:250:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:505</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-537-base-251- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-538-base-252- timer.start() -base-539-base-253- -base:540:base:254:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:601</b><br/><pre> # TODO: thread safety! -base-541-base-255- self.servers = servers -base-542-base-256- if not self.isRunning(): -base-543-base-257- self.start() -base:544:base:258:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:607</b><br/><pre> # TODO: thread safety! -base-545-base-259- # emit a list of names first -base-546-base-260- for server in self.servers: -base-547-base-261- self.emit(SIGNAL("server(const QString&)"), server.name) -base:548:base:262:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:643</b><br/><pre> # TODO check this -base-549-base-263- self._running = False -base-550-base-264- self.condition.wakeAll() -base-551-base-265- -base:552:base:266:</pre></li><li><b>File: utilities/../src/moul/qt/localization.py:78</b><br/><pre> # TODO: other message box -base-553-base-267- self._journal_progressbar = SimpleProgressbar(self) -base-554-base-268- self._journal_progressbar.setWindowTitle(self.trUtf8("Loading journals")) -base-555-base-269- self._journal_progressbar.setProgressbar(0, 1, 0) -base:556:base:270:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:76</b><br/><pre> # TODO: checks -base-557-base-271- self.urudatadir.initializeFactories() -base-558-base-272- -base-559-base-273- # init handlers -base:560:base:274:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything -base-561-base-275- self.emit(SIGNAL("close()")) -base-562-base-276- event.accept() -base-563-base-277- event.ignore() -base:564:base:278:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:189</b><br/><pre> # TODO: msg -base-565-base-279- return -base-566-base-280- -base-567-base-281- self.pb_kiimage_repair.setEnabled(False) -base:568:base:282:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:219</b><br/><pre> # TODO: msg -base-569-base-283- -base-570-base-284- # ************************************************************************ -base-571-base-285- # graphics settings -base:572:base:286:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:237</b><br/><pre> self.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit -base-573-base-287- -base-574-base-288- @signalLogDecorator(LOG) -base-575-base-289- def on_graphicsini_loaded(self): -base:576:base:290:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:297</b><br/><pre> # XXX: fixme -base-577-base-291- txt = videoModes.getVidModeHuman(idx) -base-578-base-292- self.lb_screenres.setText(QtCore.QString(txt)) -base-579-base-293- self._graphics_ini.screenres = idx -base:580:base:294:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:387</b><br/><pre> self.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit -base-581-base-295- -base-582-base-296- @signalLogDecorator(LOG) -base-583-base-297- def on_audioini_loaded(self): -base:584:base:298:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:506</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-585-base-299- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-586-base-300- timer.start() -base-587-base-301- -base:588:base:302:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:602</b><br/><pre> # TODO: thread safety! -base-589-base-303- self.servers = servers -base-590-base-304- if not self.isRunning(): -base-591-base-305- self.start() -base:592:base:306:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:608</b><br/><pre> # TODO: thread safety! -base-593-base-307- # emit a list of names first -base-594-base-308- for server in self.servers: -base-595-base-309- self.emit(SIGNAL("server(const QString&)"), server.name) -base:596:base:310:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:644</b><br/><pre> # TODO check this -base-597-base-311- self._running = False -base-598-base-312- self.condition.wakeAll() -base-599-base-313- -base:600:base:314:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware -base-601-base-315- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-602-base-316- try: -base-603-base-317- title= QtGui.QApplication.translate("excepthook", -base:604:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:319</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:116</b><br/><pre># XXX: what about cygwin, bsd and others? -base-605-base-320-_thismodule = sys.modules[__name__] -base-606-base-321-if __WIN32__: -base-607-base-322- from moul.osdependent import win32 as osdep_win32 -base:608:base:323:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:116</b><br/><pre># XXX: what about cygwin, bsd and others? -base-609-base-324-base-117-_thismodule = sys.modules[__name__] -base-610-base-325-base-118-if __WIN32__: -base-611-base-326-base-119- from moul.osdependent import win32 as osdep_win32 -base:612:base:327:</pre></li><li><b>File: utilities/../test.py:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-613-base-328- # separated by a horizontal dash line. Only the first one of -base-614-base-329- # them is now colorized properly. -base-615-base-330- header = lines[0] -base:616:base:331:</pre></li><li><b>File: utilities/../test.py:603</b... [truncated message content] |
From: <ti...@us...> - 2007-02-13 19:37:09
|
Revision: 165 http://pymoul.svn.sourceforge.net/pymoul/?rev=165&view=rev Author: tiran Date: 2007-02-13 11:37:02 -0800 (Tue, 13 Feb 2007) Log Message: ----------- Fixed broken unit tests Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/src/moul/file/chatlog.py pymoul/trunk/src/moul/file/plasmalog.py pymoul/trunk/src/moul/file/tests/test_wdysini.py Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-02-13 15:32:47 UTC (rev 164) +++ pymoul/trunk/Makefile.in 2007-02-13 19:37:02 UTC (rev 165) @@ -38,10 +38,10 @@ ui: $(PYTHON) utilities/compileui.py ./src/moul/ -test_build: build ui +test_build: build PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) -test_inplace: ui +test_inplace: PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) doc_html: Modified: pymoul/trunk/src/moul/file/chatlog.py =================================================================== --- pymoul/trunk/src/moul/file/chatlog.py 2007-02-13 15:32:47 UTC (rev 164) +++ pymoul/trunk/src/moul/file/chatlog.py 2007-02-13 19:37:02 UTC (rev 165) @@ -101,7 +101,7 @@ return False if not os.path.isdir(self._destdir): LOG.info("Creating chatlog directory %s" % self._destdir) - os.mkdir(destdir) + os.mkdir(self._destdir) return False return True @@ -232,6 +232,12 @@ self._chatlogs.append(chatlog) self._chatlogs.sort(key=lambda element:element.name) + @property + def names(self): + """list of names + """ + return [clv.name for clv in self._chatlogs] + def __len__(self): """len() support """ @@ -239,10 +245,10 @@ def __iter__(self): return iter(self._chatlogs) - + def __contains__(self, other): return other in self._chatlogs - + def __getitem__(self, idx): return self._chatlogs[idx] Modified: pymoul/trunk/src/moul/file/plasmalog.py =================================================================== --- pymoul/trunk/src/moul/file/plasmalog.py 2007-02-13 15:32:47 UTC (rev 164) +++ pymoul/trunk/src/moul/file/plasmalog.py 2007-02-13 19:37:02 UTC (rev 165) @@ -48,6 +48,7 @@ self._doremove = True self._dozip = True LOG.debug("PlasmalogZipper: %s -> %s" % (srcdir, destdir)) + self.clear() def clear(self): """Clear state @@ -56,15 +57,15 @@ self._not_removed = [] # files with full path if not os.path.isdir(self._srcdir): - LOG.warning("%s is not a directory" % srcdir) + LOG.warning("%s is not a directory" % self._srcdir) if not self.isPlasmaLogDir(): self._ispldir = False - LOG.warning("%s is not a plasma log directory" % srcdir) + LOG.warning("%s is not a plasma log directory" % self._srcdir) else: self._ispldir = True if not os.path.isdir(self._destdir): - LOG.info("Creating chatlog directory %s" % destdir) - os.mkdir(destdir) + LOG.info("Creating chatlog directory %s" % self._destdir) + os.mkdir(self._destdir) def setZip(self, boolean): """Set ZIP flag Modified: pymoul/trunk/src/moul/file/tests/test_wdysini.py =================================================================== --- pymoul/trunk/src/moul/file/tests/test_wdysini.py 2007-02-13 15:32:47 UTC (rev 164) +++ pymoul/trunk/src/moul/file/tests/test_wdysini.py 2007-02-13 19:37:02 UTC (rev 165) @@ -111,8 +111,6 @@ self.failIf(p.exists()) p.create() self.failUnless(p.exists()) - p.write() - self.failUnless(p.exists()) # TODO: more class AudioIniTest(GenericIniTest): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-02-14 22:47:48
|
Revision: 166 http://pymoul.svn.sourceforge.net/pymoul/?rev=166&view=rev Author: tiran Date: 2007-02-14 14:47:45 -0800 (Wed, 14 Feb 2007) Log Message: ----------- Updated XXX report and languages Modified Paths: -------------- pymoul/trunk/doc/XXXreport.html pymoul/trunk/src/moul/qt/i18n/pymoul_de.ts pymoul/trunk/src/moul/qt/i18n/pymoul_es.ts pymoul/trunk/src/moul/qt/i18n/pymoul_fr.ts pymoul/trunk/src/moul/qt/i18n/pymoul_it.ts pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts Modified: pymoul/trunk/doc/XXXreport.html =================================================================== --- pymoul/trunk/doc/XXXreport.html 2007-02-13 19:37:02 UTC (rev 165) +++ pymoul/trunk/doc/XXXreport.html 2007-02-14 22:47:45 UTC (rev 166) @@ -3,11 +3,11 @@ <body> <h1>pyMoul - Developer report tools: XXX/TODO/FIXME comments</h1> -<p>Generated on Wed, 07 Feb 2007 16:03:30 CET, based on Zope 3's XXX report</p> +<p>Generated on Tue, 13 Feb 2007 20:37:41 CET, based on Zope 3's XXX report</p> <hr> <h3>Summary</h3> <p> - There are currently 88 XXX/TODO/FIXME comments. + There are currently 133 XXX/TODO/FIXME comments. </p> <hr/> <h3>Listing</h3> @@ -63,14 +63,14 @@ base-106- base-107- def test_publicapi_create(self): base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-117- -base-118-class AudioIniTest(GenericIniTest): -base-119- enc = aud_enc -</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-155- -base-156- p.screenres = 0 -base-157- eq(p._get('Graphics.Width'), 800) +</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:114</b><br/><pre> # TODO: more +base-115- +base-116-class AudioIniTest(GenericIniTest): +base-117- enc = aud_enc +</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:152</b><br/><pre> #XXX self.failIf(p.isChanged()) +base-153- +base-154- p.screenres = 0 +base-155- eq(p._get('Graphics.Width'), 800) </pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 base-81- fd = open(os.path.join(path, fname), 'wb') base-82- fd.write('dummy') @@ -79,14 +79,26 @@ def test_publicapi_create(self): inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more +</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:114</b><br/><pre> # TODO: more class AudioIniTest(GenericIniTest): enc = aud_enc -</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) +</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:152</b><br/><pre> #XXX self.failIf(p.isChanged()) p.screenres = 0 eq(p._get('Graphics.Width'), 800) +</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:105</b><br/><pre> # TODO: more + + def test_publicapi_create(self): + inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) +</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:116</b><br/><pre> # TODO: more + +class AudioIniTest(GenericIniTest): + enc = aud_enc +</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:154</b><br/><pre> #XXX self.failIf(p.isChanged()) + + p.screenres = 0 + eq(p._get('Graphics.Width'), 800) </pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 fd = open(os.path.join(path, fname), 'wb') fd.write('dummy') @@ -155,110 +167,164 @@ return len([name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name))]) -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-78- return data.replace("\r\n", "\n") -base-79- -base-80-def encryptWDYS(instr, fout): -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-88- instr = instr.replace("\n", "\r\n") -base-89- fout.seek(0) -base-90- fout.write(HEADER) -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-72- raise NotImplementedError -base-73- -base-74-def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:76</b><br/><pre> # XXX: dos format +base-77- return data.replace("\r\n", "\n") +base-78- +base-79-def encryptWDYS(instr, fout): +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:86</b><br/><pre> # XXX: dos format +base-87- instr = instr.replace("\n", "\r\n") +base-88- fout.seek(0) +base-89- fout.write(HEADER) +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:28</b><br/><pre># TODO: use BinaryFile +base-29- +base-30-def list2int(lst): +base-31- return [ord(s) for s in lst] +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:72</b><br/><pre> # XXX NotImplemented +base-73- raise NotImplementedError +base-74- +base-75-def decipher(crypt, size, key): +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:293</b><br/><pre> if size > 1024: # XXX: ??? +base-294- raise ValueError("string is too long: %i" % size) +base-295- if self.version == 5: +base-296- size |= 0xF000 +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:315</b><br/><pre> if size > 1024: # XXX: ??? +base-316- raise ValueError("size '%i' > 1024 at position %s(%s)" % +base-317- (size, fd.tell(), repr(fd))) +base-318- if self.version == 5: +base:319: # XXX: testme +base-320- # read data as tuple of integeres +base-321- data = fd.readPacked("<%iI" % size) +base-322- # OR integers with 0xff and write their char equivalent to string +</pre></li><li><b>File: utilities/../src/moul/crypt/tests/.svn/text-base/test_binary.py.svn-base:98</b><br/><pre> # XXX: no test data +base-99- pass +base-100- +base-101- def test_string0(self): +</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py:98</b><br/><pre> # XXX: no test data + pass + + def test_string0(self): +</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py~:98</b><br/><pre> # XXX: no test data + pass + + def test_string0(self): +</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:76</b><br/><pre> # XXX: dos format return data.replace("\r\n", "\n") def encryptWDYS(instr, fout): -</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format +</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:86</b><br/><pre> # XXX: dos format instr = instr.replace("\n", "\r\n") fout.seek(0) fout.write(HEADER) -</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:293</b><br/><pre> if size > 1024: # XXX: ??? + raise ValueError("string is too long: %i" % size) + if self.version == 5: + size |= 0xF000 +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:315</b><br/><pre> if size > 1024: # XXX: ??? + raise ValueError("size '%i' > 1024 at position %s(%s)" % + (size, fd.tell(), repr(fd))) + if self.version == 5: + # read data as tuple of integeres + data = fd.readPacked("<%iI" % size) + # OR integers with 0xff and write their char equivalent to string +</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:28</b><br/><pre># TODO: use BinaryFile + +def list2int(lst): + return [ord(s) for s in lst] +</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:72</b><br/><pre> # XXX NotImplemented raise NotImplementedError def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything -base-153- self.emit(SIGNAL("close()")) -base-154- event.accept() -base-155- event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-292- del self._kiimage_progressbar -base-293- self.pb_kiimage_repair.setEnabled(True) -base-294- mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:390</b><br/><pre> # TODO: change timer from every second to every minute -base-391- self._timezone_timer = timer = QtCore.QTimer(self) -base-392- timer.setInterval(1000) # 1 sec -base:393: # TODO: needs optimization? run only when timer tab is active -base-394- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-395- timer.start() -base-396- -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:487</b><br/><pre> # TODO: thread safety! -base-488- self.servers = servers -base-489- if not self.isRunning(): -base-490- self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:493</b><br/><pre> # TODO: thread safety! -base-494- # emit a list of names first -base-495- for server in self.servers: -base-496- self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:531</b><br/><pre> # TODO check this -base-532- self._running = False -base-533- self.condition.wakeAll() -base-534- +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:293</b><br/><pre> if size > 1024: # XXX: ??? + raise ValueError("string is too long: %i" % size) + if self.version == 5: + size |= 0xF000 +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:315</b><br/><pre> if size > 1024: # XXX: ??? + raise ValueError("size '%i' > 1024 at position %s(%s)" % + (size, fd.tell(), repr(fd))) + if self.version == 5: + # read data as tuple of integeres + data = fd.readPacked("<%iI" % size) + # OR integers with 0xff and write their char equivalent to string +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:154</b><br/><pre> # FIXME: signal doesn't do anything +base-155- self.emit(SIGNAL("close()")) +base-156- event.accept() +base-157- event.ignore() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-294- del self._kiimage_progressbar +base-295- self.pb_kiimage_repair.setEnabled(True) +base-296- mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:392</b><br/><pre> # TODO: change timer from every second to every minute +base-393- self._timezone_timer = QtCore.QTimer(self) +base-394- self._timezone_timer.setInterval(1000) # 1 sec +base:395: # TODO: needs optimization? run only when timer tab is active +base-396- self.connect(self._timezone_timer, SIGNAL('timeout()'), +base-397- self.on_timezone_timer_timeout) +base-398- self._timezone_timer.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:507</b><br/><pre> # TODO: thread safety! +base-508- self.servers = servers +base-509- if not self.isRunning(): +base-510- self.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:513</b><br/><pre> # TODO: thread safety! +base-514- # emit a list of names first +base-515- for server in self.servers: +base-516- self.emit(SIGNAL("server(const QString&)"), server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:551</b><br/><pre> # TODO check this +base-552- self._running = False +base-553- self.condition.wakeAll() +base-554- </pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) base-47- if getattr(sys, 'frozen', False): base-48- try: -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:151</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:154</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:290</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:389</b><br/><pre> # TODO: change timer from every second to every minute - self._timezone_timer = timer = QtCore.QTimer(self) - timer.setInterval(1000) # 1 sec - self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) - timer.start() - -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:486</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:392</b><br/><pre> # TODO: change timer from every second to every minute + self._timezone_timer = QtCore.QTimer(self) + self._timezone_timer.setInterval(1000) # 1 sec + self.connect(self._timezone_timer, SIGNAL('timeout()'), + self.on_timezone_timer_timeout) + self._timezone_timer.start() +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:507</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:492</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:513</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:530</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:551</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:154</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:390</b><br/><pre> # TODO: change timer from every second to every minute - self._timezone_timer = timer = QtCore.QTimer(self) - timer.setInterval(1000) # 1 sec - self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) - timer.start() - -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:487</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:392</b><br/><pre> # TODO: change timer from every second to every minute + self._timezone_timer = QtCore.QTimer(self) + self._timezone_timer.setInterval(1000) # 1 sec + self.connect(self._timezone_timer, SIGNAL('timeout()'), + self.on_timezone_timer_timeout) + self._timezone_timer.start() +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:507</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:493</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:513</b><br/><pre> # TODO: thread safety! # emit a list of names first for server in self.servers: self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:531</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:551</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() @@ -270,6 +336,18 @@ _thismodule = sys.modules[__name__] if __WIN32__: from moul.osdependent import win32 as osdep_win32 +</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/__init__.py:37</b><br/><pre>EXEC_NAME = "???" # XXX +UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" +LOCATIONS = [ + "/Applications", +</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/.svn/text-base/__init__.py.svn-base:37</b><br/><pre>EXEC_NAME = "???" # XXX +base-38-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" +base-39-LOCATIONS = [ +base-40- "/Applications", +</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/__init__.py~:37</b><br/><pre>EXEC_NAME = "???" # XXX +UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" +LOCATIONS = [ + "/Applications", </pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:120</b><br/><pre># XXX: what about cygwin, bsd and others? base-121-_thismodule = sys.modules[__name__] base-122-if __WIN32__: @@ -290,10 +368,10 @@ base-27-base-691- from zope.tales.tales import TALESTracebackSupplement base-28-base-692- from zope.pagetemplate.pagetemplate \ base-29-base-693- import PageTemplateTracebackSupplement -base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-31-base-209- if not os.path.isdir(self._logdir): -base-32-base-210- LOG.warning("%s is not a directory" % logdir) -base-33-base-211- return +base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:216</b><br/><pre> # TODO: inefficient, compare list with directory content +base-31-base-217- if not os.path.isdir(self._archivedir): +base-32-base-218- LOG.warning("%s is not a directory" % self._archivedir) +base-33-base-219- return base:34:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct base-35-base-113- if header is None: base-36-base-114- fd = self._fd @@ -354,10 +432,10 @@ base-91- fd = open(os.path.join(path, fname), 'wb') base-92- fd.write('dummy') base-93- fd.close() -base:94:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-95- if not os.path.isdir(self._logdir): -base-96- LOG.warning("%s is not a directory" % logdir) -base-97- return +base:94:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content +base-95- if not os.path.isdir(self._archivedir): +base-96- LOG.warning("%s is not a directory" % self._archivedir) +base-97- return base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct base-99- if header is None: base-100- fd = self._fd @@ -406,10 +484,10 @@ base-143- base-144-class GraphicsIni(ConfFile): base-145- _filename = 'graphics.ini' -base:146:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-147- if not os.path.isdir(logdir): -base-148- LOG.warning("%s is not a directory" % logdir) -base-149- return +base:146:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content +base-147- if not os.path.isdir(self._archivedir): +base-148- LOG.warning("%s is not a directory" % self._archivedir) +base-149- return base:150:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch base-151- return len([name for name in os.listdir(path) base-152- if os.path.isfile(os.path.join(path, name))]) @@ -442,89 +520,89 @@ base-179- raise NotImplementedError base-180- base-181-def decipher(crypt, size, key): -base:182:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:149</b><br/><pre> # FIXME: signal doesn't do anything -base-183-base-150- self.emit(SIGNAL("close()")) -base-184-base-151- event.accept() -base-185-base-152- event.ignore() -base:186:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-187-base-251- del self._kiimage_progressbar -base-188-base-252- self.pb_kiimage_repair.setEnabled(True) -base-189-base-253- mb = qtutils.infoMB(self, -base:190:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:345</b><br/><pre> # TODO: change timer from every second to every minute -base-191-base-346- self._timezone_timer = timer = QtCore.QTimer(self) -base-192-base-347- timer.setInterval(1000) # 1 sec -base:193:base:348: # TODO: needs optimization? run only when timer tab is active -base-194-base-349- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-195-base-350- timer.start() -base-196-base-351- -base:197:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:442</b><br/><pre> # TODO: thread safety! -base-198-base-443- self.servers = servers -base-199-base-444- if not self.isRunning(): -base-200-base-445- self.start() -base:201:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:448</b><br/><pre> # TODO: thread safety! -base-202-base-449- # emit a list of names first -base-203-base-450- for server in self.servers: -base-204-base-451- self.emit(SIGNAL("server(const QString&)"), server.name) -base:205:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO check this -base-206-base-485- self._running = False -base-207-base-486- self.condition.wakeAll() -base-208-base-487- -base:209:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-210-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-211-base-48- if not getattr(sys, 'frozen', False): -base-212-base-49- return -base:213:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:149</b><br/><pre> # FIXME: signal doesn't do anything +base:182:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything +base-183-base-153- self.emit(SIGNAL("close()")) +base-184-base-154- event.accept() +base-185-base-155- event.ignore() +base:186:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-187-base-292- del self._kiimage_progressbar +base-188-base-293- self.pb_kiimage_repair.setEnabled(True) +base-189-base-294- mb = qtutils.infoMB(self, +base:190:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:390</b><br/><pre> # TODO: change timer from every second to every minute +base-191-base-391- self._timezone_timer = timer = QtCore.QTimer(self) +base-192-base-392- timer.setInterval(1000) # 1 sec +base:193:base:393: # TODO: needs optimization? run only when timer tab is active +base-194-base-394- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) +base-195-base-395- timer.start() +base-196-base-396- +base:197:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:487</b><br/><pre> # TODO: thread safety! +base-198-base-488- self.servers = servers +base-199-base-489- if not self.isRunning(): +base-200-base-490- self.start() +base:201:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:493</b><br/><pre> # TODO: thread safety! +base-202-base-494- # emit a list of names first +base-203-base-495- for server in self.servers: +base-204-base-496- self.emit(SIGNAL("server(const QString&)"), server.name) +base:205:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:531</b><br/><pre> # TODO check this +base-206-base-532- self._running = False +base-207-base-533- self.condition.wakeAll() +base-208-base-534- +base:209:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware +base-210-base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) +base-211-base-47- if getattr(sys, 'frozen', False): +base-212-base-48- try: +base:213:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:151</b><br/><pre> # FIXME: signal doesn't do anything base-214- self.emit(SIGNAL("close()")) base-215- event.accept() base-216- event.ignore() -base:217:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base:217:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:290</b><br/><pre> del self._kiimage_threadlet# TODO: other message box base-218- del self._kiimage_progressbar base-219- self.pb_kiimage_repair.setEnabled(True) base-220- mb = qtutils.infoMB(self, -base:221:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:345</b><br/><pre> # TODO: change timer from every second to every minute +base:221:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:389</b><br/><pre> # TODO: change timer from every second to every minute base-222- self._timezone_timer = timer = QtCore.QTimer(self) base-223- timer.setInterval(1000) # 1 sec base-224- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:227</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:442</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:227</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:486</b><br/><pre> # TODO: thread safety! base-228- self.servers = servers base-229- if not self.isRunning(): base-230- self.start() -base:231:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:448</b><br/><pre> # TODO: thread safety! +base:231:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:492</b><br/><pre> # TODO: thread safety! base-232- # emit a list of names first base-233- for server in self.servers: base-234- self.emit(SIGNAL("server(const QString&)"), server.name) -base:235:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:484</b><br/><pre> # TODO check this +base:235:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:530</b><br/><pre> # TODO check this base-236- self._running = False base-237- self.condition.wakeAll() base-238- -base:239:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:149</b><br/><pre> # FIXME: signal doesn't do anything +base:239:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything base-240- self.emit(SIGNAL("close()")) base-241- event.accept() base-242- event.ignore() -base:243:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base:243:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box base-244- del self._kiimage_progressbar base-245- self.pb_kiimage_repair.setEnabled(True) base-246- mb = qtutils.infoMB(self, -base:247:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:345</b><br/><pre> # TODO: change timer from every second to every minute +base:247:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:390</b><br/><pre> # TODO: change timer from every second to every minute base-248- self._timezone_timer = timer = QtCore.QTimer(self) base-249- timer.setInterval(1000) # 1 sec base-250- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:253</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:442</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:253</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:487</b><br/><pre> # TODO: thread safety! base-254- self.servers = servers base-255- if not self.isRunning(): base-256- self.start() -base:257:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:448</b><br/><pre> # TODO: thread safety! +base:257:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:493</b><br/><pre> # TODO: thread safety! base-258- # emit a list of names first base-259- for server in self.servers: base-260- self.emit(SIGNAL("server(const QString&)"), server.name) -base:261:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:484</b><br/><pre> # TODO check this +base:261:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:531</b><br/><pre> # TODO check this base-262- self._running = False base-263- self.condition.wakeAll() base-264- -base:265:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware +base:265:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware base-266- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-267- if not getattr(sys, 'frozen', False): -base-268- return +base-267- if getattr(sys, 'frozen', False): +base-268- try: base:269:</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? base-270-_thismodule = sys.modules[__name__] base-271-if __WIN32__: @@ -549,836 +627,1179 @@ base-290-base-27-base-691- from zope.tales.tales import TALESTracebackSupplement base-291-base-28-base-692- from zope.pagetemplate.pagetemplate \ base-292-base-29-base-693- import PageTemplateTracebackSupplement -base:293:base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-294-base-31-base-281- return iter(self._fd) -base:295:base:32:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-296-base-33-base-113- if header is None: -base-297-base-34-base-114- fd = self._fd -base-298-base-35-base-115- fd.seek(0) -base:299:base:36:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-300-base-37-base-128- if size is None: -base-301-base-38-base-129- size = self.getFileSize() -base-302-base-39-base-130- leading = 4* [None] -base:303:base:40:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-304-base-41-base-268- if os.path.isfile(fixed): -base-305-base-42-base-269- if fixedNewer(ki, fixed): -base-306-base-43-base-270- LOG.debug("File %s exists but was changed." % name) -base:307:base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me -base-308-base-45-base-158- pass -base-309-base-46-base-159- -base-310-base-47-base-160-class Constrain(object): -base:311:base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-312-base-49-base-542- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-313-base-50-base-543- # microphon missing -> OS mixer -base-314-base-51-base-544- } -base:315:base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-316-base-53-base-630- -base-317-base-54-base-631-class GraphicsIni(ConfFile): -base-318-base-55-base-632- _filename = 'graphics.ini' -base:319:base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch -base-320-base-57-base-60- return len([name for name in os.listdir(path) -base-321-base-58-base-61- if os.path.isfile(os.path.join(path, name))]) -base-322-base-59-base-62- -base:323:base:60:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more -base-324-base-61-base-106- -base-325-base-62-base-107- def test_publicapi_create(self): -base-326-base-63-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:327:base:64:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-328-base-65-base-117- -base-329-base-66-base-118-class AudioIniTest(GenericIniTest): -base-330-base-67-base-119- enc = aud_enc -base:331:base:68:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-332-base-69-base-155- -base-333-base-70-base-156- p.screenres = 0 -base-334-base-71-base-157- eq(p._get('Graphics.Width'), 800) -base:335:base:72:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-336-base-73-base-81- fd = open(os.path.join(path, fname), 'wb') -base-337-base-74-base-82- fd.write('dummy') -base-338-base-75-base-83- fd.close() -base:339:base:76:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:105</b><br/><pre> # TODO: more -base-340-base-77- -base-341-base-78- def test_publicapi_create(self): -base-342-base-79- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:343:base:80:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more -base-344-base-81- -base-345-base-82-class AudioIniTest(GenericIniTest): -base-346-base-83- enc = aud_enc -base:347:base:84:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-348-base-85- -base-349-base-86- p.screenres = 0 -base-350-base-87- eq(p._get('Graphics.Width'), 800) -base:351:base:88:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-352-base-89- fd = open(os.path.join(path, fname), 'wb') -base-353-base-90- fd.write('dummy') -base-354-base-91- fd.close() -base:355:base:92:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-356-base-93- return iter(self._fd) -base:357:base:94:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-358-base-95- if header is None: -base-359-base-96- fd = self._fd -base-360-base-97- fd.seek(0) -base:361:base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-362-base-99- if size is None: -base-363-base-100- size = self.getFileSize() -base-364-base-101- leading = 4* [None] -base:365:base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-366-base-103- if os.path.isfile(fixed): -base-367-base-104- if fixedNewer(ki, fixed): -base-368-base-105- LOG.debug("File %s exists but was changed." % name) -base:369:base:106:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-370-base-107- pass -base-371-base-108- -base-372-base-109-class Constrain(object): -base:373:base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:541</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-374-base-111- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-375-base-112- # microphon missing -> OS mixer -base-376-base-113- } -base:377:base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:629</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-378-base-115- -base-379-base-116-class GraphicsIni(ConfFile): -base-380-base-117- _filename = 'graphics.ini' -base:381:base:118:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-382-base-119- if header is None: -base-383-base-120- fd = self._fd -base-384-base-121- fd.seek(0) -base:385:base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-386-base-123- if size is None: -base-387-base-124- size = self.getFileSize() -base-388-base-125- leading = 4* [None] -base:389:base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-390-base-127- if os.path.isfile(fixed): -base-391-base-128- if fixedNewer(ki, fixed): -base-392-base-129- LOG.debug("File %s exists but was changed." % name) -base:393:base:130:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:280</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-394-base-131- return iter(self._fd) -base:395:base:132:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:156</b><br/><pre> # TODO: write me -base-396-base-133- pass -base-397-base-134- -base-398-base-135-class Constrain(object): -base:399:base:136:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-400-base-137- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-401-base-138- # microphon missing -> OS mixer -base-402-base-139- } -base:403:base:140:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-404-base-141- -base-405-base-142-class GraphicsIni(ConfFile): -base-406-base-143- _filename = 'graphics.ini' -base:407:base:144:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-408-base-145- return len([name for name in os.listdir(path) -base-409-base-146- if os.path.isfile(os.path.join(path, name))]) -base-410-base-147- -base:411:base:148:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-412-base-149- return len([name for name in os.listdir(path) -base-413-base-150- if os.path.isfile(os.path.join(path, name))]) -base-414-base-151- -base:415:base:152:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-416-base-153-base-78- return data.replace("\r\n", "\n") -base-417-base-154-base-79- -base-418-base-155-base-80-def encryptWDYS(instr, fout): -base:419:base:156:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-420-base-157-base-88- instr = instr.replace("\n", "\r\n") -base-421-base-158-base-89- fout.seek(0) -base-422-base-159-base-90- fout.write(HEADER) -base:423:base:160:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-424-base-161-base-72- raise NotImplementedError -base-425-base-162-base-73- -base-426-base-163-base-74-def decipher(crypt, size, key): -base:427:base:164:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format -base-428-base-165- return data.replace("\r\n", "\n") -base-429-base-166- -base-430-base-167-def encryptWDYS(instr, fout): -base:431:base:168:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format -base-432-base-169- instr = instr.replace("\n", "\r\n") -base-433-base-170- fout.seek(0) -base-434-base-171- fout.write(HEADER) -base:435:base:172:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented -base-436-base-173- raise NotImplementedError -base-437-base-174- -base-438-base-175-def decipher(crypt, size, key): -base:439:base:176:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:151</b><br/><pre> # FIXME: signal doesn't do anything -base-440-base-177-base-152- self.emit(SIGNAL("close()")) -base-441-base-178-base-153- event.accept() -base-442-base-179-base-154- event.ignore() -base:443:base:180:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:222</b><br/><pre> # TODO: msg -base-444-base-181-base-223- return -base-445-base-182-base-224- -base-446-base-183-base-225- self.pb_kiimage_repair.setEnabled(False) -base:447:base:184:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:248</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-448-base-185-base-249- del self._kiimage_progressbar -base-449-base-186-base-250- self.pb_kiimage_repair.setEnabled(True) -base:450:base:187:base:251: # TODO: msg -base-451-base-188-base-252- -base-452-base-189-base-253- # ************************************************************************ -base-453-base-190-base-254- # system tray -base:454:base:191:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:281</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-455-base-192-base-282- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-456-base-193-base-283- timer.start() -base-457-base-194-base-284- -base:458:base:195:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:375</b><br/><pre> # TODO: thread safety! -base-459-base-196-base-376- self.servers = servers -base-460-base-197-base-377- if not self.isRunning(): -base-461-base-198-base-378- self.start() -base:462:base:199:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:381</b><br/><pre> # TODO: thread safety! -base-463-base-200-base-382- # emit a list of names first -base-464-base-201-base-383- for server in self.servers: -base-465-base-202-base-384- self.emit(SIGNAL("server(const QString&)"), server.name) -base:466:base:203:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:417</b><br/><pre> # TODO check this -base-467-base-204-base-418- self._running = False -base-468-base-205-base-419- self.condition.wakeAll() -base-469-base-206-base-420- -base:470:base:207:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-471-base-208-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-472-base-209-base-48- if not getattr(sys, 'frozen', False): -base-473-base-210-base-49- return -base:474:base:211:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/wdysini.py.svn-base:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base:475:base:212:base:68: self.context.emit(SIGNAL("graphicsini_load()")) # XXX: hard coded emit -base-476-base-213-base-69- -base-477-base-214-base-70- @pyqtSignature("bool") -base-478-base-215-base-71- def on_graphicsChanged(self, boolean): -base:479:base:216:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:143</b><br/><pre> # FIXME: signal doesn't do anything -base-480-base-217- self.emit(SIGNAL("close()")) -base-481-base-218- event.accept() -base-482-base-219- event.ignore() -base:483:base:220:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:214</b><br/><pre> # TODO: msg -base-484-base-221- return -base-485-base-222- -base-486-base-223- self.pb_kiimage_repair.setEnabled(False) -base:487:base:224:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-488-base-225- del self._kiimage_progressbar -base-489-base-226- self.pb_kiimage_repair.setEnabled(True) -base-490-base-227- -base:491:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:230</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-492-base-231- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-493-base-232- timer.start() -base-494-base-233- -base:495:base:234:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:382</b><br/><pre> # TODO: thread safety! -base-496-base-235- self.servers = servers -base-497-base-236- if not self.isRunning(): -base-498-base-237- self.start() -base:499:base:238:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:388</b><br/><pre> # TODO: thread safety! -base-500-base-239- # emit a list of names first -base-501-base-240- for server in self.servers: -base-502-base-241- self.emit(SIGNAL("server(const QString&)"), server.name) -base:503:base:242:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:424</b><br/><pre> # TODO check this -base-504-base-243- self._running = False -base-505-base-244- self.condition.wakeAll() -base-506-base-245- -base:507:base:246:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:143</b><br/><pre> # FIXME: signal doesn't do anything -base-508-base-247- self.emit(SIGNAL("close()")) -base-509-base-248- event.accept() -base-510-base-249- event.ignore() -base:511:base:250:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:214</b><br/><pre> # TODO: msg -base-512-base-251- return -base-513-base-252- -base-514-base-253- self.pb_kiimage_repair.setEnabled(False) -base:515:base:254:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:241</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-516-base-255- del self._kiimage_progressbar -base-517-base-256- self.pb_kiimage_repair.setEnabled(True) -base-518-base-257- -base:519:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:260</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:288</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-520-base-261- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-521-base-262- timer.start() -base-522-base-263- -base:523:base:264:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:382</b><br/><pre> # TODO: thread safety! -base-524-base-265- self.servers = servers -base-525-base-266- if not self.isRunning(): -base-526-base-267- self.start() -base:527:base:268:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:388</b><br/><pre> # TODO: thread safety! -base-528-base-269- # emit a list of names first -base-529-base-270- for server in self.servers: -base-530-base-271- self.emit(SIGNAL("server(const QString&)"), server.name) -base:531:base:272:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:424</b><br/><pre> # TODO check this -base-532-base-273- self._running = False -base-533-base-274- self.condition.wakeAll() -base-534-base-275- -base:535:base:276:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:46</b><br/><pre> # TODO: translation aware -base-536-base-277- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-537-base-278- if not getattr(sys, 'frozen', False): -base-538-base-279- return -base:539:base:280:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py~:46</b><br/><pre> # TODO: translation aware -base-540-base-281- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-541-base-282- if not getattr(sys, 'frozen', False): -base-542-base-283- return -base:543:base:284:</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py~:68</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base-544-base-285- -base-545-base-286- @signalLogDecorator(LOG) -base-546-base-287- @pyqtSignature("bool") -base:547:base:288:</pre></li><li><b>File: utilities/../src/moul/qt/wdysini.py:67</b><br/><pre> self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit -base-548-base-289- -base-549-base-290- @pyqtSignature("bool") -base-550-base-291- def on_graphicsChanged(self, boolean): -base:551:base:292:</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:117</b><br/><pre># XXX: what about cygwin, bsd and others? -base-552-base-293-_thismodule = sys.modules[__name__] -base-553-base-294-if __WIN32__: -base-554-base-295- from moul.osdependent import win32 as osdep_win32 -base:555:base:296:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:117</b><br/><pre># XXX: what about cygwin, bsd and others? -base-556-base-297-base-118-_thismodule = sys.modules[__name__] -base-557-base-298-base-119-if __WIN32__: -base-558-base-299-base-120- from moul.osdependent import win32 as osdep_win32 -base:559:base:300:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/ez_setup.py.svn-base:92</b><br/><pre> # XXX could we install in a subprocess here? -base-560-base-301-base-15-base-93- print >>sys.stderr, ( -base-561-base-302-base-16-base-94- "The required version of setuptools (>=%s) is not available, and\n" -base-562-base-303-base-17-base-95- "can't be installed while this script is running. Please install\n" -base:563:base:304:base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-564-base-305-base-19-base-549- # separated by a horizontal dash line. Only the first one of -base-565-base-306-base-20-base-550- # them is now colorized properly. -base-566-base-307-base-21-base-551- header = lines[0] -base:567:base:308:base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-568-base-309-base-23-base-604- result.append(self.colorize('doctest_got', line)) -base-569-base-310-base-24-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-570-base-311-base-25-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:571:base:312:base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-572-base-313-base-27-base-624- # A colorizer for the Python's doctest module would be nice too. -base-573-base-314-base-28-base-625- if doctest: -base-574-base-315-base-29-base-626- # If we have a doctest, we do not care about this header. All the -base:575:base:316:base:30:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable -base-576-base-317-base-31-base-691- from zope.tales.tales import TALESTracebackSupplement -base-577-base-318-base-32-base-692- from zope.pagetemplate.pagetemplate \ -base-578-base-319-base-33-base-693- import PageTemplateTracebackSupplement -base:579:base:320:base:34:</pre></li><li><b>File: utilities/../.svn/text-base/setup_win32.py.svn-base:84</b><br/><pre> pexe['innosetup'] = os.environ.get('INNOSETUP') # TODO: -base-580-base-321-base-35-base-85- pexe['inno_templates'] = "template.iss" -base-581-base-322-base-36-base-86- pexe['app_name'] = 'pyMoul' -base-582-base-323-base-37-base-87- pexe['includes'].extend(findPyTz()) -base:583:base:324:base:38:</pre></li><li><b>File: utilities/../.svn/text-base/distutils_upx.py.svn-base:117</b><br/><pre> sys.exit(retcode) # XXX -base-584-base-325-base-39-base-118- -base-585-base-326-base-40-base-119- def _upxAvailable(self): -base-586-base-327-base-41-base-120- """Search for UPX in search path -base:587:base:328:base:42:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:268</b><br/><pre> # TODO: add parser, currently simply iterates over the file -base-588-base-329-base-43-base-269- return iter(self._fd) -base:589:base:330:base:44:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-590-base-331-base-45-base-113- if header is None: -base-591-base-332-base-46-base-114- fd = self._fd -base-592-base-333-base-47-base-115- fd.seek(0) -base:593:base:334:base:48:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-594-base-335-base-49-base-128- if size is None: -base-595-base-336-base-50-base-129- size = self.getFileSize() -base-596-base-337-base-51-base-130- leading = 4* [None] -base:597:base:338:base:52:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:156</b><br/><pre> # TODO: write me -base-598-base-339-base-53-base-157- pass -base-599-base-340-base-54-base-158- -base-600-base-341-base-55-base-159-class Constrain(object): -base:601:base:342:base:56:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:540</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-602-base-343-base-57-base-541- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-603-base-344-base-58-base-542- # microphon missing -> OS mixer -base-604-base-345-base-59-base-543- } -base:605:base:346:base:60:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:628</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-606-base-347-base-61-base-629- -base-607-base-348-base-62-base-630-class GraphicsIni(ConfFile): -base-608-base-349-base-63-base-631- _filename = 'graphics.ini' -base:609:base:350:base:64:</pre></li><li><b>File: utilities/../src/moul/file... [truncated message content] |
From: <ti...@us...> - 2007-02-15 03:14:41
|
Revision: 171 http://pymoul.svn.sourceforge.net/pymoul/?rev=171&view=rev Author: tiran Date: 2007-02-14 19:14:42 -0800 (Wed, 14 Feb 2007) Log Message: ----------- Property fixes Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py pymoul/trunk/src/moul/time/utils.py Property Changed: ---------------- pymoul/trunk/src/moul/crypt/binaryrecord.py pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py pymoul/trunk/src/moul/time/utils.py Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-02-15 03:13:10 UTC (rev 170) +++ pymoul/trunk/Makefile.in 2007-02-15 03:14:42 UTC (rev 171) @@ -75,7 +75,9 @@ propset: $(FINDPYTXT) | xargs svn propset svn:keywords "Id Revision" - $(FINDTEXT) | xargs svn propset svn:eol-style "native" + $(FINDTEXT) | xargs svn propset svn:eol-style "native" + find src/moul -name '*.png' $(NOTSVN) | xargs svn propset \ + svn:mimetype image/png fixlineendings: $(FINDPY) | xargs recode -f ibmpc..latin1 Property changes on: pymoul/trunk/src/moul/crypt/binaryrecord.py ___________________________________________________________________ Name: svn:keywords + Id Revision Name: svn:eol-style + native Modified: pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py =================================================================== --- pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py 2007-02-15 03:13:10 UTC (rev 170) +++ pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py 2007-02-15 03:14:42 UTC (rev 171) @@ -18,8 +18,8 @@ """moul.crypt.binaryrecord unit tests """ __author__ = "Christian Heimes" -__version__ = "$Id: test_elf.py 122 2007-02-02 17:34:06Z tiran $" -__revision__ = "$Revision: 122 $" +__version__ = "$Id$" +__revision__ = "$Revision$" import os import unittest Property changes on: pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py ___________________________________________________________________ Name: svn:keywords + Id Revision Name: svn:eol-style + native Modified: pymoul/trunk/src/moul/time/utils.py =================================================================== --- pymoul/trunk/src/moul/time/utils.py 2007-02-15 03:13:10 UTC (rev 170) +++ pymoul/trunk/src/moul/time/utils.py 2007-02-15 03:14:42 UTC (rev 171) @@ -18,8 +18,8 @@ """pyMoul cavern time tool """ __author__ = "Christian Heimes" -__version__ = "$Id: cavern.py 124 2007-02-02 17:45:42Z tiran $" -__revision__ = "$Revision: 124 $" +__version__ = "$Id$" +__revision__ = "$Revision$" from moul.osdependent import __FROZEN__ # pytz is an egg Property changes on: pymoul/trunk/src/moul/time/utils.py ___________________________________________________________________ Name: svn:keywords + Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-02-22 15:48:55
|
Revision: 183 http://pymoul.svn.sourceforge.net/pymoul/?rev=183&view=rev Author: tiran Date: 2007-02-22 07:48:55 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Changed UI a bit fixed a log error Modified Paths: -------------- pymoul/trunk/build.bat pymoul/trunk/installer.bat pymoul/trunk/run.bat pymoul/trunk/src/moul/log.py pymoul/trunk/src/moul/qt/ui/mainwindow.py pymoul/trunk/src/moul/qt/ui/mainwindow.ui Modified: pymoul/trunk/build.bat =================================================================== --- pymoul/trunk/build.bat 2007-02-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/build.bat 2007-02-22 15:48:55 UTC (rev 183) @@ -1,5 +1,6 @@ @echo off cls set PYTHONPATH=src +python utilities\compileui.py src\moul\qt python setup.py py2exe pause Modified: pymoul/trunk/installer.bat =================================================================== --- pymoul/trunk/installer.bat 2007-02-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/installer.bat 2007-02-22 15:48:55 UTC (rev 183) @@ -2,5 +2,6 @@ cls set PYTHONPATH=src set INNOSETUP=yes +python utilities\compileui.py src\moul\qt python setup.py py2exe pause Modified: pymoul/trunk/run.bat =================================================================== --- pymoul/trunk/run.bat 2007-02-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/run.bat 2007-02-22 15:48:55 UTC (rev 183) @@ -1,5 +1,5 @@ @echo off cls set PYTHONPATH=src +python utilities\compileui.py src\moul\qt python src\moul\qt\moulqt.py -pause Modified: pymoul/trunk/src/moul/log.py =================================================================== --- pymoul/trunk/src/moul/log.py 2007-02-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/src/moul/log.py 2007-02-22 15:48:55 UTC (rev 183) @@ -74,7 +74,7 @@ # MemoryHandler doesn't flush w/o a target self.mhdlr = handlers.MemoryHandler(capacity=4*1024) self.mhdlr.setFormatter(self.format) - self.root.addHandler(mhdlr) + self.root.addHandler(self.mhdlr) def _removeMemoryHdlr(self): """Remove memory handler Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-02-22 15:48:55 UTC (rev 183) @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file './src/moul/qt/ui/mainwindow.ui' +# Form implementation generated from reading ui file 'src\moul\qt\ui\mainwindow.ui' # -# Created: Tue Feb 20 15:52:22 2007 +# Created: Thu Feb 22 16:46:01 2007 # by: PyQt4 UI code generator 4.1.1 # # WARNING! All changes made in this file will be lost! @@ -44,6 +44,12 @@ spacerItem1 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) self.hboxlayout.addItem(spacerItem1) + self.main_buttonbox = QtGui.QDialogButtonBox(self.centralwidget) + self.main_buttonbox.setGeometry(QtCore.QRect(10,520,451,32)) + self.main_buttonbox.setOrientation(QtCore.Qt.Horizontal) + self.main_buttonbox.setStandardButtons(QtGui.QDialogButtonBox.Close|QtGui.QDialogButtonBox.NoButton|QtGui.QDialogButtonBox.Reset|QtGui.QDialogButtonBox.Save) + self.main_buttonbox.setObjectName("main_buttonbox") + self.tabwidget = QtGui.QTabWidget(self.centralwidget) self.tabwidget.setGeometry(QtCore.QRect(0,80,471,434)) self.tabwidget.setTabPosition(QtGui.QTabWidget.North) @@ -140,64 +146,6 @@ spacerItem3 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) self.hboxlayout1.addItem(spacerItem3) - - self.gb_caverntime = QtGui.QGroupBox(self.tab_tasks) - self.gb_caverntime.setGeometry(QtCore.QRect(10,180,451,91)) - self.gb_caverntime.setObjectName("gb_caverntime") - - self.gridLayout = QtGui.QWidget(self.gb_caverntime) - self.gridLayout.setGeometry(QtCore.QRect(20,20,292,56)) - self.gridLayout.setObjectName("gridLayout") - - self.gridlayout1 = QtGui.QGridLayout(self.gridLayout) - self.gridlayout1.setMargin(0) - self.gridlayout1.setSpacing(6) - self.gridlayout1.setObjectName("gridlayout1") - - self.label_5 = QtGui.QLabel(self.gridLayout) - - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(5)) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) - self.label_5.setSizePolicy(sizePolicy) - self.label_5.setObjectName("label_5") - self.gridlayout1.addWidget(self.label_5,0,0,1,1) - - self.lb_cavern_utc = QtGui.QLabel(self.gridLayout) - self.lb_cavern_utc.setObjectName("lb_cavern_utc") - self.gridlayout1.addWidget(self.lb_cavern_utc,0,2,1,1) - - self.dt_cavern = QtGui.QDateTimeEdit(self.gridLayout) - self.dt_cavern.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape(0))) - self.dt_cavern.setFocusPolicy(QtCore.Qt.NoFocus) - self.dt_cavern.setContextMenuPolicy(QtCore.Qt.NoContextMenu) - self.dt_cavern.setReadOnly(True) - self.dt_cavern.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.dt_cavern.setObjectName("dt_cavern") - self.gridlayout1.addWidget(self.dt_cavern,0,1,1,1) - - self.dt_pacific = QtGui.QDateTimeEdit(self.gridLayout) - self.dt_pacific.setFocusPolicy(QtCore.Qt.NoFocus) - self.dt_pacific.setContextMenuPolicy(QtCore.Qt.NoContextMenu) - self.dt_pacific.setReadOnly(True) - self.dt_pacific.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.dt_pacific.setObjectName("dt_pacific") - self.gridlayout1.addWidget(self.dt_pacific,1,1,1,1) - - self.label_8 = QtGui.QLabel(self.gridLayout) - - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(5)) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) - self.label_8.setSizePolicy(sizePolicy) - self.label_8.setObjectName("label_8") - self.gridlayout1.addWidget(self.label_8,1,0,1,1) - - self.lb_pacific_utc = QtGui.QLabel(self.gridLayout) - self.lb_pacific_utc.setObjectName("lb_pacific_utc") - self.gridlayout1.addWidget(self.lb_pacific_utc,1,2,1,1) self.tabwidget.addTab(self.tab_tasks,"") self.tab_settings = QtGui.QWidget() @@ -749,80 +697,161 @@ self.tab_time = QtGui.QWidget() self.tab_time.setObjectName("tab_time") - self.gb_dnitime = QtGui.QGroupBox(self.tab_time) - self.gb_dnitime.setGeometry(QtCore.QRect(10,220,451,181)) - self.gb_dnitime.setObjectName("gb_dnitime") - - self.gv_dniclock = QtGui.QGraphicsView(self.gb_dnitime) - self.gv_dniclock.setGeometry(QtCore.QRect(10,20,431,151)) - self.gv_dniclock.setFocusPolicy(QtCore.Qt.NoFocus) - self.gv_dniclock.setContextMenuPolicy(QtCore.Qt.NoContextMenu) - self.gv_dniclock.setAcceptDrops(False) - self.gv_dniclock.setFrameShadow(QtGui.QFrame.Plain) - self.gv_dniclock.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) - self.gv_dniclock.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) - self.gv_dniclock.setInteractive(False) - self.gv_dniclock.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) - self.gv_dniclock.setRenderHints(QtGui.QPainter.Antialiasing|QtGui.QPainter.SmoothPixmapTransform|QtGui.QPainter.TextAntialiasing) - self.gv_dniclock.setObjectName("gv_dniclock") - self.groupBox_3 = QtGui.QGroupBox(self.tab_time) - self.groupBox_3.setGeometry(QtCore.QRect(10,0,451,221)) + self.groupBox_3.setGeometry(QtCore.QRect(10,0,451,151)) self.groupBox_3.setObjectName("groupBox_3") self.gridLayout_5 = QtGui.QWidget(self.groupBox_3) - self.gridLayout_5.setGeometry(QtCore.QRect(10,20,431,184)) + self.gridLayout_5.setGeometry(QtCore.QRect(10,10,444,141)) self.gridLayout_5.setObjectName("gridLayout_5") - self.gridlayout2 = QtGui.QGridLayout(self.gridLayout_5) - self.gridlayout2.setMargin(0) - self.gridlayout2.setSpacing(6) - self.gridlayout2.setObjectName("gridlayout2") + self.gridlayout1 = QtGui.QGridLayout(self.gridLayout_5) + self.gridlayout1.setMargin(0) + self.gridlayout1.setSpacing(6) + self.gridlayout1.setObjectName("gridlayout1") - spacerItem4 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.gridlayout2.addItem(spacerItem4,0,1,1,1) + self.rb_earthtime = QtGui.QRadioButton(self.gridLayout_5) + self.rb_earthtime.setChecked(True) + self.rb_earthtime.setObjectName("rb_earthtime") + self.gridlayout1.addWidget(self.rb_earthtime,1,0,1,1) self.hboxlayout9 = QtGui.QHBoxLayout() self.hboxlayout9.setMargin(0) self.hboxlayout9.setSpacing(6) self.hboxlayout9.setObjectName("hboxlayout9") + self.cb_dniholidays = QtGui.QComboBox(self.gridLayout_5) + self.cb_dniholidays.setObjectName("cb_dniholidays") + self.hboxlayout9.addWidget(self.cb_dniholidays) + + spacerItem4 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout9.addItem(spacerItem4) + self.gridlayout1.addLayout(self.hboxlayout9,4,1,1,1) + + self.rb_curtime = QtGui.QRadioButton(self.gridLayout_5) + self.rb_curtime.setObjectName("rb_curtime") + self.gridlayout1.addWidget(self.rb_curtime,0,0,1,1) + + self.hboxlayout10 = QtGui.QHBoxLayout() + self.hboxlayout10.setMargin(0) + self.hboxlayout10.setSpacing(6) + self.hboxlayout10.setObjectName("hboxlayout10") + + self.sb_gahrtahvo = QtGui.QSpinBox(self.gridLayout_5) + self.sb_gahrtahvo.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.sb_gahrtahvo.setMaximum(4) + self.sb_gahrtahvo.setProperty("value",QtCore.QVariant(0)) + self.sb_gahrtahvo.setObjectName("sb_gahrtahvo") + self.hboxlayout10.addWidget(self.sb_gahrtahvo) + + self.label_9 = QtGui.QLabel(self.gridLayout_5) + self.label_9.setObjectName("label_9") + self.hboxlayout10.addWidget(self.label_9) + + self.sb_tahvo = QtGui.QSpinBox(self.gridLayout_5) + self.sb_tahvo.setMinimumSize(QtCore.QSize(0,0)) + self.sb_tahvo.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.sb_tahvo.setMaximum(24) + self.sb_tahvo.setProperty("value",QtCore.QVariant(0)) + self.sb_tahvo.setObjectName("sb_tahvo") + self.hboxlayout10.addWidget(self.sb_tahvo) + + self.label_10 = QtGui.QLabel(self.gridLayout_5) + self.label_10.setObjectName("label_10") + self.hboxlayout10.addWidget(self.label_10) + + self.sb_gorahn = QtGui.QSpinBox(self.gridLayout_5) + self.sb_gorahn.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.sb_gorahn.setMaximum(24) + self.sb_gorahn.setProperty("value",QtCore.QVariant(0)) + self.sb_gorahn.setObjectName("sb_gorahn") + self.hboxlayout10.addWidget(self.sb_gorahn) + + self.label_11 = QtGui.QLabel(self.gridLayout_5) + self.label_11.setObjectName("label_11") + self.hboxlayout10.addWidget(self.label_11) + + self.sb_prorahn = QtGui.QSpinBox(self.gridLayout_5) + self.sb_prorahn.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.sb_prorahn.setMaximum(24) + self.sb_prorahn.setProperty("value",QtCore.QVariant(0)) + self.sb_prorahn.setObjectName("sb_prorahn") + self.hboxlayout10.addWidget(self.sb_prorahn) + + spacerItem5 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout10.addItem(spacerItem5) + self.gridlayout1.addLayout(self.hboxlayout10,3,1,1,1) + + self.rb_dniholiday = QtGui.QRadioButton(self.gridLayout_5) + self.rb_dniholiday.setObjectName("rb_dniholiday") + self.gridlayout1.addWidget(self.rb_dniholiday,4,0,1,1) + + spacerItem6 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout1.addItem(spacerItem6,0,1,1,1) + + self.hboxlayout11 = QtGui.QHBoxLayout() + self.hboxlayout11.setMargin(0) + self.hboxlayout11.setSpacing(6) + self.hboxlayout11.setObjectName("hboxlayout11") + + self.sb_fahrah = QtGui.QSpinBox(self.gridLayout_5) + self.sb_fahrah.setMaximum(15) + self.sb_fahrah.setMinimum(1) + self.sb_fahrah.setProperty("value",QtCore.QVariant(15)) + self.sb_fahrah.setObjectName("sb_fahrah") + self.hboxlayout11.addWidget(self.sb_fahrah) + + self.sb_fahrah_hahr = QtGui.QSpinBox(self.gridLayout_5) + self.sb_fahrah_hahr.setMaximum(249) + self.sb_fahrah_hahr.setMinimum(0) + self.sb_fahrah_hahr.setProperty("value",QtCore.QVariant(87)) + self.sb_fahrah_hahr.setObjectName("sb_fahrah_hahr") + self.hboxlayout11.addWidget(self.sb_fahrah_hahr) + + self.label_12 = QtGui.QLabel(self.gridLayout_5) + self.label_12.setObjectName("label_12") + self.hboxlayout11.addWidget(self.label_12) + self.sb_hahr = QtGui.QSpinBox(self.gridLayout_5) self.sb_hahr.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) self.sb_hahr.setMaximum(9999) self.sb_hahr.setProperty("value",QtCore.QVariant(9662)) self.sb_hahr.setObjectName("sb_hahr") - self.hboxlayout9.addWidget(self.sb_hahr) + self.hboxlayout11.addWidget(self.sb_hahr) + self.label_4 = QtGui.QLabel(self.gridLayout_5) + self.label_4.setObjectName("label_4") + self.hboxlayout11.addWidget(self.label_4) + self.cb_vailee = QtGui.QComboBox(self.gridLayout_5) self.cb_vailee.setMinimumSize(QtCore.QSize(0,0)) self.cb_vailee.setObjectName("cb_vailee") - self.hboxlayout9.addWidget(self.cb_vailee) + self.hboxlayout11.addWidget(self.cb_vailee) + self.label_6 = QtGui.QLabel(self.gridLayout_5) + self.label_6.setObjectName("label_6") + self.hboxlayout11.addWidget(self.label_6) + self.sb_yahr = QtGui.QSpinBox(self.gridLayout_5) self.sb_yahr.setMaximum(29) self.sb_yahr.setMinimum(1) self.sb_yahr.setProperty("value",QtCore.QVariant(1)) self.sb_yahr.setObjectName("sb_yahr") - self.hboxlayout9.addWidget(self.sb_yahr) + self.hboxlayout11.addWidget(self.sb_yahr) - spacerItem5 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.hboxlayout9.addItem(spacerItem5) - self.gridlayout2.addLayout(self.hboxlayout9,2,1,1,1) + spacerItem7 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout11.addItem(spacerItem7) + self.gridlayout1.addLayout(self.hboxlayout11,2,1,1,1) - self.rb_dnitime = QtGui.QRadioButton(self.gridLayout_5) - self.rb_dnitime.setObjectName("rb_dnitime") - self.gridlayout2.addWidget(self.rb_dnitime,2,0,1,1) + self.hboxlayout12 = QtGui.QHBoxLayout() + self.hboxlayout12.setMargin(0) + self.hboxlayout12.setSpacing(6) + self.hboxlayout12.setObjectName("hboxlayout12") - self.hboxlayout10 = QtGui.QHBoxLayout() - self.hboxlayout10.setMargin(0) - self.hboxlayout10.setSpacing(6) - self.hboxlayout10.setObjectName("hboxlayout10") - self.dte_earthtime = QtGui.QDateTimeEdit(self.gridLayout_5) self.dte_earthtime.setCalendarPopup(True) self.dte_earthtime.setObjectName("dte_earthtime") - self.hboxlayout10.addWidget(self.dte_earthtime) + self.hboxlayout12.addWidget(self.dte_earthtime) self.cb_earthtime_tz = QtGui.QComboBox(self.gridLayout_5) self.cb_earthtime_tz.setEnabled(False) @@ -834,89 +863,90 @@ self.cb_earthtime_tz.setSizePolicy(sizePolicy) self.cb_earthtime_tz.setEditable(False) self.cb_earthtime_tz.setObjectName("cb_earthtime_tz") - self.hboxlayout10.addWidget(self.cb_earthtime_tz) + self.hboxlayout12.addWidget(self.cb_earthtime_tz) - spacerItem6 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.hboxlayout10.addItem(spacerItem6) - self.gridlayout2.addLayout(self.hboxlayout10,1,1,1,1) + spacerItem8 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout12.addItem(spacerItem8) + self.gridlayout1.addLayout(self.hboxlayout12,1,1,1,1) - self.hboxlayout11 = QtGui.QHBoxLayout() - self.hboxlayout11.setMargin(0) - self.hboxlayout11.setSpacing(6) - self.hboxlayout11.setObjectName("hboxlayout11") + self.rb_dnitime = QtGui.QRadioButton(self.gridLayout_5) + self.rb_dnitime.setObjectName("rb_dnitime") + self.gridlayout1.addWidget(self.rb_dnitime,2,0,1,1) - self.cb_dniholidays = QtGui.QComboBox(self.gridLayout_5) - self.cb_dniholidays.setObjectName("cb_dniholidays") - self.hboxlayout11.addWidget(self.cb_dniholidays) + self.gb_caverntime = QtGui.QGroupBox(self.tab_time) + self.gb_caverntime.setGeometry(QtCore.QRect(10,150,451,71)) + self.gb_caverntime.setObjectName("gb_caverntime") - spacerItem7 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.hboxlayout11.addItem(spacerItem7) - self.gridlayout2.addLayout(self.hboxlayout11,4,1,1,1) + self.gridLayout = QtGui.QWidget(self.gb_caverntime) + self.gridLayout.setGeometry(QtCore.QRect(10,10,292,56)) + self.gridLayout.setObjectName("gridLayout") - self.hboxlayout12 = QtGui.QHBoxLayout() - self.hboxlayout12.setMargin(0) - self.hboxlayout12.setSpacing(6) - self.hboxlayout12.setObjectName("hboxlayout12") + self.gridlayout2 = QtGui.QGridLayout(self.gridLayout) + self.gridlayout2.setMargin(0) + self.gridlayout2.setSpacing(6) + self.gridlayout2.setObjectName("gridlayout2") - self.sb_gahrtahvo = QtGui.QSpinBox(self.gridLayout_5) - self.sb_gahrtahvo.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.sb_gahrtahvo.setMaximum(4) - self.sb_gahrtahvo.setProperty("value",QtCore.QVariant(0)) - self.sb_gahrtahvo.setObjectName("sb_gahrtahvo") - self.hboxlayout12.addWidget(self.sb_gahrtahvo) + self.label_5 = QtGui.QLabel(self.gridLayout) - self.sb_tahvo = QtGui.QSpinBox(self.gridLayout_5) - self.sb_tahvo.setMinimumSize(QtCore.QSize(0,0)) - self.sb_tahvo.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.sb_tahvo.setMaximum(24) - self.sb_tahvo.setProperty("value",QtCore.QVariant(0)) - self.sb_tahvo.setObjectName("sb_tahvo") - self.hboxlayout12.addWidget(self.sb_tahvo) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) + self.label_5.setSizePolicy(sizePolicy) + self.label_5.setObjectName("label_5") + self.gridlayout2.addWidget(self.label_5,0,0,1,1) - self.sb_gorahn = QtGui.QSpinBox(self.gridLayout_5) - self.sb_gorahn.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.sb_gorahn.setMaximum(24) - self.sb_gorahn.setProperty("value",QtCore.QVariant(0)) - self.sb_gorahn.setObjectName("sb_gorahn") - self.hboxlayout12.addWidget(self.sb_gorahn) + self.lb_cavern_utc = QtGui.QLabel(self.gridLayout) + self.lb_cavern_utc.setObjectName("lb_cavern_utc") + self.gridlayout2.addWidget(self.lb_cavern_utc,0,2,1,1) - self.sb_prorahn = QtGui.QSpinBox(self.gridLayout_5) - self.sb_prorahn.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) - self.sb_prorahn.setMaximum(24) - self.sb_prorahn.setProperty("value",QtCore.QVariant(0)) - self.sb_prorahn.setObjectName("sb_prorahn") - self.hboxlayout12.addWidget(self.sb_prorahn) + self.dt_cavern = QtGui.QDateTimeEdit(self.gridLayout) + self.dt_cavern.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape(0))) + self.dt_cavern.setFocusPolicy(QtCore.Qt.NoFocus) + self.dt_cavern.setContextMenuPolicy(QtCore.Qt.NoContextMenu) + self.dt_cavern.setReadOnly(True) + self.dt_cavern.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.dt_cavern.setObjectName("dt_cavern") + self.gridlayout2.addWidget(self.dt_cavern,0,1,1,1) - spacerItem8 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.hboxlayout12.addItem(spacerItem8) - self.gridlayout2.addLayout(self.hboxlayout12,3,1,1,1) + self.dt_pacific = QtGui.QDateTimeEdit(self.gridLayout) + self.dt_pacific.setFocusPolicy(QtCore.Qt.NoFocus) + self.dt_pacific.setContextMenuPolicy(QtCore.Qt.NoContextMenu) + self.dt_pacific.setReadOnly(True) + self.dt_pacific.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.dt_pacific.setObjectName("dt_pacific") + self.gridlayout2.addWidget(self.dt_pacific,1,1,1,1) - self.rb_earthtime = QtGui.QRadioButton(self.gridLayout_5) - self.rb_earthtime.setChecked(True) - self.rb_earthtime.setObjectName("rb_earthtime") - self.gridlayout2.addWidget(self.rb_earthtime,1,0,1,1) + self.label_8 = QtGui.QLabel(self.gridLayout) - self.rb_curtime = QtGui.QRadioButton(self.gridLayout_5) - self.rb_curtime.setObjectName("rb_curtime") - self.gridlayout2.addWidget(self.rb_curtime,0,0,1,1) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) + self.label_8.setSizePolicy(sizePolicy) + self.label_8.setObjectName("label_8") + self.gridlayout2.addWidget(self.label_8,1,0,1,1) - self.rb_dniholiday = QtGui.QRadioButton(self.gridLayout_5) - self.rb_dniholiday.setObjectName("rb_dniholiday") - self.gridlayout2.addWidget(self.rb_dniholiday,4,0,1,1) + self.lb_pacific_utc = QtGui.QLabel(self.gridLayout) + self.lb_pacific_utc.setObjectName("lb_pacific_utc") + self.gridlayout2.addWidget(self.lb_pacific_utc,1,2,1,1) - self.hboxlayout13 = QtGui.QHBoxLayout() - self.hboxlayout13.setMargin(0) - self.hboxlayout13.setSpacing(6) - self.hboxlayout13.setObjectName("hboxlayout13") + self.gb_dnitime = QtGui.QGroupBox(self.tab_time) + self.gb_dnitime.setGeometry(QtCore.QRect(10,220,451,181)) + self.gb_dnitime.setObjectName("gb_dnitime") - spacerItem9 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) - self.hboxlayout13.addItem(spacerItem9) - - self.pb_time_update = QtGui.QPushButton(self.gridLayout_5) - self.pb_time_update.setMaximumSize(QtCore.QSize(16777215,22)) - self.pb_time_update.setObjectName("pb_time_update") - self.hboxlayout13.addWidget(self.pb_time_update) - self.gridlayout2.addLayout(self.hboxlayout13,5,1,1,1) + self.gv_dniclock = QtGui.QGraphicsView(self.gb_dnitime) + self.gv_dniclock.setGeometry(QtCore.QRect(10,20,431,151)) + self.gv_dniclock.setFocusPolicy(QtCore.Qt.NoFocus) + self.gv_dniclock.setContextMenuPolicy(QtCore.Qt.NoContextMenu) + self.gv_dniclock.setAcceptDrops(False) + self.gv_dniclock.setFrameShadow(QtGui.QFrame.Plain) + self.gv_dniclock.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.gv_dniclock.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.gv_dniclock.setInteractive(False) + self.gv_dniclock.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.gv_dniclock.setRenderHints(QtGui.QPainter.Antialiasing|QtGui.QPainter.SmoothPixmapTransform|QtGui.QPainter.TextAntialiasing) + self.gv_dniclock.setObjectName("gv_dniclock") self.tabwidget.addTab(self.tab_time,"") self.tab_browse = QtGui.QWidget() @@ -1073,12 +1103,6 @@ self.tb_license.setObjectName("tb_license") self.tabwidget_about.addTab(self.tab_sub_license,"") self.tabwidget.addTab(self.tab_about,"") - - self.main_buttonbox = QtGui.QDialogButtonBox(self.centralwidget) - self.main_buttonbox.setGeometry(QtCore.QRect(10,520,451,32)) - self.main_buttonbox.setOrientation(QtCore.Qt.Horizontal) - self.main_buttonbox.setStandardButtons(QtGui.QDialogButtonBox.Close|QtGui.QDialogButtonBox.NoButton|QtGui.QDialogButtonBox.Reset|QtGui.QDialogButtonBox.Save) - self.main_buttonbox.setObjectName("main_buttonbox") MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(MainWindow) @@ -1109,11 +1133,6 @@ 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.gb_caverntime.setTitle(QtGui.QApplication.translate("MainWindow", "Time zones", None, QtGui.QApplication.UnicodeUTF8)) - self.label_5.setText(QtGui.QApplication.translate("MainWindow", "Cavern time:", None, QtGui.QApplication.UnicodeUTF8)) - self.lb_cavern_utc.setText(QtGui.QApplication.translate("MainWindow", "UTC -0", None, QtGui.QApplication.UnicodeUTF8)) - self.label_8.setText(QtGui.QApplication.translate("MainWindow", "Cyan time:", None, QtGui.QApplication.UnicodeUTF8)) - self.lb_pacific_utc.setText(QtGui.QApplication.translate("MainWindow", "UTC -0", 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)) @@ -1157,22 +1176,32 @@ self.gb_servers.setTitle(QtGui.QApplication.translate("MainWindow", "Ping servers", None, QtGui.QApplication.UnicodeUTF8)) self.button_ping.setText(QtGui.QApplication.translate("MainWindow", "Ping", None, QtGui.QApplication.UnicodeUTF8)) self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_ping), QtGui.QApplication.translate("MainWindow", "Servers", None, QtGui.QApplication.UnicodeUTF8)) - self.gb_dnitime.setTitle(QtGui.QApplication.translate("MainWindow", "D\'ni time", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_3.setTitle(QtGui.QApplication.translate("MainWindow", "Choose Time", None, QtGui.QApplication.UnicodeUTF8)) - self.rb_dnitime.setText(QtGui.QApplication.translate("MainWindow", "D\'ni Time", None, QtGui.QApplication.UnicodeUTF8)) + self.rb_earthtime.setText(QtGui.QApplication.translate("MainWindow", "Earth Time", None, QtGui.QApplication.UnicodeUTF8)) + self.rb_curtime.setText(QtGui.QApplication.translate("MainWindow", "Current Time", None, QtGui.QApplication.UnicodeUTF8)) + self.label_9.setText(QtGui.QApplication.translate("MainWindow", ":", None, QtGui.QApplication.UnicodeUTF8)) + self.label_10.setText(QtGui.QApplication.translate("MainWindow", ":", None, QtGui.QApplication.UnicodeUTF8)) + self.label_11.setText(QtGui.QApplication.translate("MainWindow", ":", None, QtGui.QApplication.UnicodeUTF8)) + self.rb_dniholiday.setText(QtGui.QApplication.translate("MainWindow", "D\'ni Holiday", None, QtGui.QApplication.UnicodeUTF8)) + self.label_12.setText(QtGui.QApplication.translate("MainWindow", "/", None, QtGui.QApplication.UnicodeUTF8)) + self.label_4.setText(QtGui.QApplication.translate("MainWindow", ".", None, QtGui.QApplication.UnicodeUTF8)) + self.label_6.setText(QtGui.QApplication.translate("MainWindow", ".", None, QtGui.QApplication.UnicodeUTF8)) self.cb_earthtime_tz.addItem(QtGui.QApplication.translate("MainWindow", "local time", None, QtGui.QApplication.UnicodeUTF8)) self.cb_earthtime_tz.addItem(QtGui.QApplication.translate("MainWindow", "cavern time", None, QtGui.QApplication.UnicodeUTF8)) self.cb_earthtime_tz.addItem(QtGui.QApplication.translate("MainWindow", "UTC", None, QtGui.QApplication.UnicodeUTF8)) - self.rb_earthtime.setText(QtGui.QApplication.translate("MainWindow", "Earth Time", None, QtGui.QApplication.UnicodeUTF8)) - self.rb_curtime.setText(QtGui.QApplication.translate("MainWindow", "Current Time", None, QtGui.QApplication.UnicodeUTF8)) - self.rb_dniholiday.setText(QtGui.QApplication.translate("MainWindow", "D\'ni Holiday", None, QtGui.QApplication.UnicodeUTF8)) - self.pb_time_update.setText(QtGui.QApplication.translate("MainWindow", "Update", None, QtGui.QApplication.UnicodeUTF8)) + self.rb_dnitime.setText(QtGui.QApplication.translate("MainWindow", "D\'ni Time", None, QtGui.QApplication.UnicodeUTF8)) + self.gb_caverntime.setTitle(QtGui.QApplication.translate("MainWindow", "Time zones", None, QtGui.QApplication.UnicodeUTF8)) + self.label_5.setText(QtGui.QApplication.translate("MainWindow", "Cavern time:", None, QtGui.QApplication.UnicodeUTF8)) + self.lb_cavern_utc.setText(QtGui.QApplication.translate("MainWindow", "UTC -0", None, QtGui.QApplication.UnicodeUTF8)) + self.label_8.setText(QtGui.QApplication.translate("MainWindow", "Cyan time:", None, QtGui.QApplication.UnicodeUTF8)) + self.lb_pacific_utc.setText(QtGui.QApplication.translate("MainWindow", "UTC -0", None, QtGui.QApplication.UnicodeUTF8)) + self.gb_dnitime.setTitle(QtGui.QApplication.translate("MainWindow", "D\'ni time", None, QtGui.QApplication.UnicodeUTF8)) self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_time), QtGui.QApplication.translate("MainWindow", "Time", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_5.setTitle(QtGui.QApplication.translate("MainWindow", "Read chatlogs", None, QtGui.QApplication.UnicodeUTF8)) self.tb_chatlog_view.setHtml(QtGui.QApplication.translate("MainWindow", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" "p, li { white-space: pre-wrap; }\n" - "</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" - "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Not implemented</p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) + "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" + "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Sans Serif\'; font-size:9pt;\">Not implemented</p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) self.cb_chatlog.addItem(QtGui.QApplication.translate("MainWindow", "Not implemented", None, QtGui.QApplication.UnicodeUTF8)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_sub_chatlogs), QtGui.QApplication.translate("MainWindow", "Chat logs", None, QtGui.QApplication.UnicodeUTF8)) self.gb_documents.setTitle(QtGui.QApplication.translate("MainWindow", "Browse journals and notes", None, QtGui.QApplication.UnicodeUTF8)) @@ -1188,13 +1217,13 @@ self.tabwidget.setTabText(self.tabwidget.indexOf(self.tab_browse), QtGui.QApplication.translate("MainWindow", "Browse", None, QtGui.QApplication.UnicodeUTF8)) self.tb_abouttext.setHtml(QtGui.QApplication.translate("MainWindow", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" "p, li { white-space: pre-wrap; }\n" - "</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" - "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) + "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Sans Serif\'; font-size:9pt;\"></p></body></html>", 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.tb_license.setHtml(QtGui.QApplication.translate("MainWindow", "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" "p, li { white-space: pre-wrap; }\n" - "</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" - "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) + "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal; text-decoration:none;\">\n" + "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Sans Serif\'; font-size:9pt;\"></p></body></html>", 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-22 14:42:24 UTC (rev 182) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-02-22 15:48:55 UTC (rev 183) @@ -97,6 +97,22 @@ </item> </layout> </widget> + <widget class="QDialogButtonBox" name="main_buttonbox" > + <property name="geometry" > + <rect> + <x>10</x> + <y>520</y> + <width>451</width> + <height>32</height> + </rect> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons" > + <set>QDialogButtonBox::Close|QDialogButtonBox::NoButton|QDialogButtonBox::Reset|QDialogButtonBox::Save</set> + </property> + </widget> <widget class="QTabWidget" name="tabwidget" > <property name="geometry" > <rect> @@ -343,116 +359,6 @@ </layout> </widget> </widget> - <widget class="QGroupBox" name="gb_caverntime" > - <property name="geometry" > - <rect> - <x>10</x> - <y>180</y> - <width>451</width> - <height>91</height> - </rect> - </property> - <property name="title" > - <string>Time zones</string> - </property> - <widget class="QWidget" native="1" name="gridLayout" > - <property name="geometry" > - <rect> - <x>20</x> - <y>20</y> - <width>292</width> - <height>56</height> - </rect> - </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="0" > - <widget class="QLabel" name="label_5" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Cavern time:</string> - </property> - </widget> - </item> - <item row="0" column="2" > - <widget class="QLabel" name="lb_cavern_utc" > - <property name="text" > - <string>UTC -0</string> - </property> - </widget> - </item> - <item row="0" column="1" > - <widget class="QDateTimeEdit" name="dt_cavern" > - <property name="cursor" > - <cursor>0</cursor> - </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> - </property> - <property name="contextMenuPolicy" > - <enum>Qt::NoContextMenu</enum> - </property> - <property name="readOnly" > - <bool>true</bool> - </property> - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - </widget> - </item> - <item row="1" column="1" > - <widget class="QDateTimeEdit" name="dt_pacific" > - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> - </property> - <property name="contextMenuPolicy" > - <enum>Qt::NoContextMenu</enum> - </property> - <property name="readOnly" > - <bool>true</bool> - </property> - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_8" > - <property name="sizePolicy" > - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text" > - <string>Cyan time:</string> - </property> - </widget> - </item> - <item row="1" column="2" > - <widget class="QLabel" name="lb_pacific_utc" > - <property name="text" > - <string>UTC -0</string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> </widget> <widget class="QWidget" name="tab_settings" > <attribute name="title" > @@ -1596,63 +1502,13 @@ <attribute name="title" > <string>Time</string> </attribute> - <widget class="QGroupBox" name="gb_dnitime" > - <property name="geometry" > - <rect> - <x>10</x> - <y>220</y> - <width>451</width> - <height>181</height> - </rect> - </property> - <property name="title" > - <string>D'ni time</string> - </property> - <widget class="QGraphicsView" name="gv_dniclock" > - <property name="geometry" > - <rect> - <x>10</x> - <y>20</y> - <width>431</width> - <height>151</height> - </rect> - </property> - <property name="focusPolicy" > - <enum>Qt::NoFocus</enum> - </property> - <property name="contextMenuPolicy" > - <enum>Qt::NoContextMenu</enum> - </property> - <property name="acceptDrops" > - <bool>false</bool> - </property> - <property name="frameShadow" > - <enum>QFrame::Plain</enum> - </property> - <property name="verticalScrollBarPolicy" > - <enum>Qt::ScrollBarAlwaysOff</enum> - </property> - <property name="horizontalScrollBarPolicy" > - <enum>Qt::ScrollBarAlwaysOff</enum> - </property> - <property name="interactive" > - <bool>false</bool> - </property> - <property name="alignment" > - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> - </property> - <property name="renderHints" > - <set>QPainter::Antialiasing|QPainter::SmoothPixmapTransform|QPainter::TextAntialiasing</set> - </property> - </widget> - </widget> <widget class="QGroupBox" name="groupBox_3" > <property name="geometry" > <rect> <x>10</x> <y>0</y> <width>451</width> - <height>221</height> + <height>151</height> </rect> </property> <property name="title" > @@ -1662,9 +1518,9 @@ <property name="geometry" > <rect> <x>10</x> - <y>20</y> - <width>431</width> - <height>184</height> + <y>10</y> + <width>444</width> + <height>141</height> </rect> </property> <layout class="QGridLayout" > @@ -1674,6 +1530,158 @@ <property name="spacing" > <number>6</number> </property> + <item row="1" column="0" > + <widget class="QRadioButton" name="rb_earthtime" > + <property name="text" > + <string>Earth Time</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="4" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QComboBox" name="cb_dniholidays" /> + </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> + </item> + <item row="0" column="0" > + <widget class="QRadioButton" name="rb_curtime" > + <property name="text" > + <string>Current Time</string> + </property> + </widget> + </item> + <item row="3" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QSpinBox" name="sb_gahrtahvo" > + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> + <property name="maximum" > + <number>4</number> + </property> + <property name="value" > + <number>0</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_9" > + <property name="text" > + <string>:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="sb_tahvo" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> + <property name="maximum" > + <number>24</number> + </property> + <property name="value" > + <number>0</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_10" > + <property name="text" > + <string>:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="sb_gorahn" > + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> + <property name="maximum" > + <number>24</number> + </property> + <property name="value" > + <number>0</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_11" > + <property name="text" > + <string>:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="sb_prorahn" > + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> + <property name="maximum" > + <number>24</number> + </property> + <property name="value" > + <number>0</number> + </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> + </item> + <item row="4" column="0" > + <widget class="QRadioButton" name="rb_dniholiday" > + <property name="text" > + <string>D'ni Holiday</string> + </property> + </widget> + </item> <item row="0" column="1" > <spacer> <property name="orientation" > @@ -1696,6 +1704,39 @@ <number>6</number> </property> <item> + <widget class="QSpinBox" name="sb_fahrah" > + <property name="maximum" > + <number>15</number> + </property> + <property name="minimum" > + <number>1</number> + </property> + <property name="value" > + <number>15</number> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="sb_fahrah_hahr" > + <property name="maximum" > + <number>249</number> + </property> + <property name="minimum" > + <number>0</number> + </property> + <property name="value" > + <number>87</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_12" > + <property name="text" > + <string>/</string> + </property> + </widget> + </item> + <item> <widget class="QSpinBox" name="sb_hahr" > <property name="buttonSymbols" > <enum>QAbstractSpinBox::UpDownArrows</enum> @@ -1709,6 +1750,13 @@ </widget> </item> <item> + <widget class="QLabel" name="label_4" > + <property name="text" > + <string>.</string> + </property> + </widget> + </item> + <item> <widget class="QComboBox" name="cb_vailee" > <property name="minimumSize" > <size> @@ -1719,6 +1767,13 @@ </widget> </item> <item> + <widget class="QLabel" name="label_6" > + <property name="text" > + <string>.</string> + </property> + </widget> + </item> + <item> <widget class="QSpinBox" name="sb_yahr" > <property name="maximum" > <number>29</number> @@ -1746,13 +1801,6 @@ </item> </layout> </item> - <item row="2" column="0" > - <widget class="QRadioButton" name="rb_dnitime" > - <property name="text" > - <string>D'ni Time</string> - </property> - </widget> - </item> <item row="1" column="1" > <layout class="QHBoxLayout" > <property name="margin" > @@ -1816,176 +1864,176 @@ </item> </layout> </item> - <item row="4" column="1" > - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> + <item row="2" column="0" > + <widget class="QRadioButton" name="rb_dnitime" > + <property name="text" > + <string>D'ni Time</string> </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <widget class="QComboBox" name="cb_dniholidays" /> - </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> </item> - <item row="3" column="1" > - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> + </layout> + </widget> + </widget> + <widget class="QGroupBox" name="gb_caverntime" > + <property name="geometry" > + <rect> + <x>10</x> + <y>150</y> + <width>451</width> + <height>71</height> + </rect> + </property> + <property name="title" > + <string>Time zones</string> + </property> + <widget class="QWidget" native="1" name="gridLayout" > + <property name="geometry" > + <rect> + <x>10</x> + <y>10</y> + <width>292</width> + <height>56</height> + </rect> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <widget class="QLabel" name="label_5" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <property name="spacing" > - <number>6</number> + <property name="text" > + <string>Cavern time:</string> </property> - <item> - <widget class="QSpinBox" name="sb_gahrtahvo" > - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - <property name="maximum" > - <number>4</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sb_tahvo" > - <property name="minimumSize" > - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - <property name="maximum" > - <number>24</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sb_gorahn" > - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - <property name="maximum" > - <number>24</number> - </property> - <property name="value" > - <number>0</number> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="sb_prorahn" > - <property name="buttonSymbols" > - <enum>QAbstractSpinBox::UpDownArrows</enum> - </property> - <property name="maximum" > - <number>24</number> - </property> - <property name="value" > - <number>0</number> - </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> </item> - <item row="1" column="0" > - <widget class="QRadioButton" name="rb_earthtime" > + <item row="0" column="2" > + <widget class="QLabel" name="lb_cavern_utc" > <property name="text" > - <string>Earth Time</string> + <string>UTC -0</string> </property> - <property name="checked" > + </widget> + </item> + <item row="0" column="1" > + <widget class="QDateTimeEdit" name="dt_cavern" > + <property name="cursor" > + <cursor>0</cursor> + </property> + <property name="focusPolicy" > + <enum>Qt::NoFocus</enum> + </property> + <property name="contextMenuPolicy" > + <enum>Qt::NoContextMenu</enum> + </property> + <property name="readOnly" > <bool>true</bool> </property> + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> </widget> </item> - <item row="0" column="0" > - <widget class="QRadioButton" name="rb_curtime" > - <property name="text" > - <string>Current Time</string> + <item row="1" column="1" > + <widget class="QDateTimeEdit" name="dt_pacific" > + <property name="focusPolicy" > + <enum>Qt::NoFocus</enum> </property> + <property name="contextMenuPolicy" > + <enum>Qt::NoContextMenu</enum> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + <property name="buttonSymbols" > + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> </widget> </item> - <item row="4" column="0" > - <widget class="QRadioButton" name="rb_dniholiday" > + <item row="1" column="0" > + <widget class="QLabel" name="label_8" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text" > - <string>D'ni Holiday</string> + <string>Cyan time:</string> </property> </widget> </item> - <item row="5" column="1" > - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> + <item row="1" column="2" > + <widget class="QLabel" name="lb_pacific_utc" > + <property name="text" > + <string>UTC -0</string> </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" > - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="pb_time_update" > - <property name="maximumSize" > - <size> - <width>16777215</width> - <height>22</height> - </size> - </property> - <property name="text" > - <string>Update</string> - </property> - </widget> - </item> - </layout> + </widget> </item> </layout> </widget> </widget> + <widget class="QGroupBox" name="gb_dnitime" > + <property name="geometry" > + <rect> + <x>10</x> + <y>220</y> + <width>451</width> + <height>181</height> + </rect> + </property> + <property name="title" > + <string>D'ni time</string> + </property> + <widget class="QGraphicsView" name="gv_dniclock" > + <property name="geometry" > + <rect> + <x>10</x> + <y>20</y> + <width>431</width> + <height>151</height> + </rect> + </property> + <property name="focusPolicy" > + <enum>Qt::NoFocus</enum> + </property> + <property name="contextMenuPolicy" > + <enum>Qt::NoContextMenu</enum> + </property> + <property name="acceptDrops" > + <bool>false</bool> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + <property name="verticalScrollBarPolicy" > + <enum>Qt::ScrollBarAlwaysOff</enum> + </property> + <property name="horizontalScrollBarPolicy" > + <enum>Qt::ScrollBarAlwaysOff</enum> + </property> + <property name="interactive" > + <bool>false</bool> + </property> + <property name="alignment" > + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + <property name="renderHints" > + <set>QPainter::Antialiasing|QPainter::SmoothPixmapTransform|QPainter::TextAntialiasing</set> + </property> + </widget> + </widget> </widget> <widget class="QWidget" name="tab_browse" > <attribute name="title" > @@ -2034,8 +2082,8 @@ <property name="html" > <string><html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Not implemented</p></body></html></string> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400;... [truncated message content] |
From: <ti...@us...> - 2007-02-23 16:41:53
|
Revision: 187 http://pymoul.svn.sourceforge.net/pymoul/?rev=187&view=rev Author: tiran Date: 2007-02-23 08:41:50 -0800 (Fri, 23 Feb 2007) Log Message: ----------- Import order fixed Modified Paths: -------------- pymoul/trunk/src/moul/crypt/binary.py pymoul/trunk/src/moul/crypt/binaryrecord.py pymoul/trunk/src/moul/crypt/whatdoyousee.py pymoul/trunk/src/moul/crypt/xtea.py pymoul/trunk/src/moul/file/chatlog.py pymoul/trunk/src/moul/file/directory.py pymoul/trunk/src/moul/file/kiimage.py pymoul/trunk/src/moul/file/localization.py pymoul/trunk/src/moul/file/plasmalog.py pymoul/trunk/src/moul/file/utils.py pymoul/trunk/src/moul/file/wdysini.py pymoul/trunk/src/moul/log.py pymoul/trunk/src/moul/osdependent/processinfo.py pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py pymoul/trunk/src/moul/qt/dninumbers.py pymoul/trunk/src/moul/qt/errorhandler.py pymoul/trunk/src/moul/qt/i18n/__init__.py pymoul/trunk/src/moul/qt/localization.py pymoul/trunk/src/moul/qt/mainwindow.py pymoul/trunk/src/moul/qt/moulqt.py pymoul/trunk/src/moul/qt/utils.py pymoul/trunk/src/moul/qt/wdysini.py pymoul/trunk/src/moul/time/cavern.py pymoul/trunk/src/moul/time/dni.py pymoul/trunk/src/moul/time/utils.py pymoul/trunk/utilities/importorder.py Modified: pymoul/trunk/src/moul/crypt/binary.py =================================================================== --- pymoul/trunk/src/moul/crypt/binary.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/crypt/binary.py 2007-02-23 16:41:50 UTC (rev 187) @@ -21,9 +21,9 @@ __version__ = "$Id" __revision__ = "$Revision" +from struct import calcsize from struct import pack from struct import unpack -from struct import calcsize from moul.crypt.binaryrecord import parseRecord from moul.crypt.binaryrecord import registerRecord Modified: pymoul/trunk/src/moul/crypt/binaryrecord.py =================================================================== --- pymoul/trunk/src/moul/crypt/binaryrecord.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/crypt/binaryrecord.py 2007-02-23 16:41:50 UTC (rev 187) @@ -25,9 +25,9 @@ __version__ = "$Id" __revision__ = "$Revision" +from struct import calcsize from struct import pack from struct import unpack -from struct import calcsize _marker = object() Modified: pymoul/trunk/src/moul/crypt/whatdoyousee.py =================================================================== --- pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-02-23 16:41:50 UTC (rev 187) @@ -29,11 +29,11 @@ __revision__ = "$Revision$" import struct +from logging import getLogger +from moul.crypt.binary import BinaryFile from moul.crypt.xtea import xtea_decrypt from moul.crypt.xtea import xtea_encrypt -from moul.crypt.binary import BinaryFile -from logging import getLogger HEADER = "whatdoyousee" Modified: pymoul/trunk/src/moul/crypt/xtea.py =================================================================== --- pymoul/trunk/src/moul/crypt/xtea.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/crypt/xtea.py 2007-02-23 16:41:50 UTC (rev 187) @@ -36,10 +36,10 @@ >>> crypt('0123456789012345',z,iv) 'Hello There' -""" - +""" import struct + def crypt(key,data,iv='\00\00\00\00\00\00\00\00',n=32,endian="!"): """ Encrypt/decrypt variable length string using XTEA cypher as Modified: pymoul/trunk/src/moul/file/chatlog.py =================================================================== --- pymoul/trunk/src/moul/file/chatlog.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/chatlog.py 2007-02-23 16:41:50 UTC (rev 187) @@ -35,11 +35,11 @@ import os import re from fnmatch import fnmatch +from logging import getLogger from shutil import move from time import localtime from moul.file.utils import fileModTime -from logging import getLogger RE_FLAGS = re.LOCALE Modified: pymoul/trunk/src/moul/file/directory.py =================================================================== --- pymoul/trunk/src/moul/file/directory.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/directory.py 2007-02-23 16:41:50 UTC (rev 187) @@ -22,6 +22,7 @@ __revision__ = "$Revision$" import os +from logging import getLogger from moul.file.chatlog import ChatlogDirectoryView from moul.file.chatlog import ChatlogMover @@ -30,7 +31,6 @@ from moul.file.plasmalog import PlasmalogZipper from moul.file.wdysini import AudioIni from moul.file.wdysini import GraphicsIni -from logging import getLogger LOG = getLogger('moul.file.directory') Modified: pymoul/trunk/src/moul/file/kiimage.py =================================================================== --- pymoul/trunk/src/moul/file/kiimage.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/kiimage.py 2007-02-23 16:41:50 UTC (rev 187) @@ -26,11 +26,11 @@ import struct import tempfile from fnmatch import fnmatch +from logging import getLogger + from moul.file.utils import fileModTime from moul.file.utils import fileSize -from logging import getLogger - KINUMBER_RE = re.compile("(\d+)\.jpg$", re.IGNORECASE) JPEG_HEADER = "\377\330\377" Modified: pymoul/trunk/src/moul/file/localization.py =================================================================== --- pymoul/trunk/src/moul/file/localization.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/localization.py 2007-02-23 16:41:50 UTC (rev 187) @@ -20,14 +20,13 @@ from __future__ import with_statement import glob import os +from logging import getLogger from sgmllib import SGMLParser from xml.sax import ContentHandler from xml.sax import make_parser from xml.sax.handler import feature_namespaces from xml.sax.saxutils import unescape -from logging import getLogger - __author__ = "Christian Heimes" __version__ = "$Id$" __revision__ = "$Revision$" Modified: pymoul/trunk/src/moul/file/plasmalog.py =================================================================== --- pymoul/trunk/src/moul/file/plasmalog.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/plasmalog.py 2007-02-23 16:41:50 UTC (rev 187) @@ -25,11 +25,11 @@ import time import zipfile from fnmatch import fnmatch +from logging import getLogger from stat import ST_MTIME from moul.crypt.elf import decryptElf from moul.file.utils import fileModTime -from logging import getLogger PLASMA_LOG = "plasmalog.txt" Modified: pymoul/trunk/src/moul/file/utils.py =================================================================== --- pymoul/trunk/src/moul/file/utils.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/utils.py 2007-02-23 16:41:50 UTC (rev 187) @@ -28,6 +28,7 @@ from stat import ST_MTIME from stat import ST_SIZE + def fileModTime(path, format=None): """Get modification time of file Modified: pymoul/trunk/src/moul/file/wdysini.py =================================================================== --- pymoul/trunk/src/moul/file/wdysini.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/file/wdysini.py 2007-02-23 16:41:50 UTC (rev 187) @@ -23,10 +23,10 @@ import os import shutil +from logging import getLogger from moul.crypt.whatdoyousee import decryptWDYS from moul.crypt.whatdoyousee import encryptWDYS -from logging import getLogger LOG = getLogger('moul.file.wdysini') Modified: pymoul/trunk/src/moul/log.py =================================================================== --- pymoul/trunk/src/moul/log.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/log.py 2007-02-23 16:41:50 UTC (rev 187) @@ -23,8 +23,6 @@ __version__ = "$Id$" __revision__ = "$Revision$" -__all__ = ['LOG', 'getLogger', 'signalLogDecorator'] - import logging import os import platform @@ -35,6 +33,7 @@ from moul.metadata import __version__ as moul_version + LOG = logging.getLogger('pyMoul') class LoggingStdout(object): Modified: pymoul/trunk/src/moul/osdependent/processinfo.py =================================================================== --- pymoul/trunk/src/moul/osdependent/processinfo.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/osdependent/processinfo.py 2007-02-23 16:41:50 UTC (rev 187) @@ -53,7 +53,6 @@ import sys from logging import getLogger - LOG = getLogger("processinfo") _plat = sys.platform.startswith Modified: pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py =================================================================== --- pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py 2007-02-23 16:41:50 UTC (rev 187) @@ -24,7 +24,7 @@ import unittest from doctest import DocTestSuite -import moul.osdependent.processinfo +import moul.osdependent.processinfo def test_suite(): Modified: pymoul/trunk/src/moul/qt/dninumbers.py =================================================================== --- pymoul/trunk/src/moul/qt/dninumbers.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/dninumbers.py 2007-02-23 16:41:50 UTC (rev 187) @@ -34,18 +34,19 @@ from logging import getLogger from moul.time.cavern import CavernTime +from moul.time.dni import DNI_HOLIDAYS from moul.time.dni import DniTime from moul.time.dni import FACTOR_SP +from moul.time.dni import VAILEETEE from moul.time.dni import decimal2dni -from moul.time.dni import VAILEETEE -from moul.time.dni import DNI_HOLIDAYS from moul.time.utils import utcnow + from moul.qt.utils import QNamespaceContainer from moul.qt.utils import QSignalLoggerMetaclass -from moul.qt.utils import skipLogging from moul.qt.utils import QTimerThreadlet from moul.qt.utils import dt2qdt from moul.qt.utils import qdt2dt +from moul.qt.utils import skipLogging NUMBER_HEIGHT = 25 Modified: pymoul/trunk/src/moul/qt/errorhandler.py =================================================================== --- pymoul/trunk/src/moul/qt/errorhandler.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/errorhandler.py 2007-02-23 16:41:50 UTC (rev 187) @@ -29,9 +29,9 @@ import os import sys from PyQt4.QtGui import QApplication +from logging import getLogger from traceback import format_exception -from logging import getLogger from moul.qt.utils import criticalMB Modified: pymoul/trunk/src/moul/qt/i18n/__init__.py =================================================================== --- pymoul/trunk/src/moul/qt/i18n/__init__.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/i18n/__init__.py 2007-02-23 16:41:50 UTC (rev 187) @@ -89,7 +89,7 @@ if qm is None: qm = loadTranslationFile(shortname) if qm is None: - if lang != 'en': + if lang not in ('en', 'C'): LOG.warning("No translation found!") else: LOG.info("Loading translation %s" % shortname) @@ -97,6 +97,5 @@ LOG.info("Loading translation %s" % longname) if qm is not None: - LOG.debug("len(%i), type(%s)" % (len(qm), type(qm))) translator.load(qm, len(qm)) app.installTranslator(translator) Modified: pymoul/trunk/src/moul/qt/localization.py =================================================================== --- pymoul/trunk/src/moul/qt/localization.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/localization.py 2007-02-23 16:41:50 UTC (rev 187) @@ -29,14 +29,14 @@ from PyQt4.QtCore import Qt from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import pyqtSignature +from logging import getLogger from moul.file.localization import translationRegistry as tr -from logging import getLogger from moul.qt.simpleprogressbar import SimpleProgressbar -from moul.qt.utils import QYieldingThreadlet from moul.qt.utils import QNamespaceContainer from moul.qt.utils import QSignalLoggerMetaclass +from moul.qt.utils import QYieldingThreadlet LOG = getLogger('moul.loc') Modified: pymoul/trunk/src/moul/qt/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-23 16:41:50 UTC (rev 187) @@ -18,39 +18,38 @@ """Moul QT GUI main windows """ -from __future__ import with_statement - __author__ = "Christian Heimes" __version__ = "$Id$" __revision__ = "$Revision$" import os +import sys from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4.QtCore import Qt from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import pyqtSignature -import sys +from logging import getLogger from moul import metadata from moul.config import lookupDir from moul.file.directory import UruGameDataDirectory from moul.file.directory import UruPersonalDataDirectory -from logging import getLogger from moul.osdependent import isMoulRunning from moul.server.ping import ServerList -from moul.server.ping import isSocketError from moul.server.ping import fmtSocketError +from moul.server.ping import isSocketError +from moul.qt import utils as qtutils from moul.qt.dninumbers import DniTimeNumberContainer from moul.qt.localization import LocalizationContainer -from moul.qt.wdysini import IniFileContainer from moul.qt.simpleprogressbar import SimpleProgressbar -from moul.qt.utils import QYieldingThreadlet -from moul.qt.utils import QThreadlet from moul.qt.ui.mainwindow import Ui_MainWindow -from moul.qt import utils as qtutils +from moul.qt.utils import QThreadlet +from moul.qt.utils import QYieldingThreadlet +from moul.qt.wdysini import IniFileContainer + LOG = getLogger('moul.qt') class MainWindow(QtGui.QMainWindow, Ui_MainWindow): Modified: pymoul/trunk/src/moul/qt/moulqt.py =================================================================== --- pymoul/trunk/src/moul/qt/moulqt.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/moulqt.py 2007-02-23 16:41:50 UTC (rev 187) @@ -23,21 +23,22 @@ __version__ = "$Id$" __revision__ = "$Revision$" -from moul.log import createLogfile - import sys from PyQt4 import QtGui from logging import getLogger +import moul.log # initialize log handler + from moul.config import getPyMoulDataDir +from moul.log import createLogfile from moul.osdependent import isMoulRunning from moul.osdependent.singleapp import SimpleSingleApp from moul.qt.errorhandler import criticalMB from moul.qt.errorhandler import removeQtExceptHook from moul.qt.errorhandler import setupQtExceptHook +from moul.qt.i18n import installTranslator from moul.qt.mainwindow import MainWindow -from moul.qt.i18n import installTranslator LOG = getLogger('moul.qt') Modified: pymoul/trunk/src/moul/qt/utils.py =================================================================== --- pymoul/trunk/src/moul/qt/utils.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/utils.py 2007-02-23 16:41:50 UTC (rev 187) @@ -35,16 +35,16 @@ import re import sip import warnings +from PyQt4 import QtCore +from PyQt4 import QtGui from PyQt4.QtCore import SIGNAL -from PyQt4 import QtGui -from PyQt4 import QtCore from datetime import datetime +from types import FunctionType from types import UnboundMethodType -from types import FunctionType from moul.osdependent import __FROZEN__ +from moul.time.utils import UTC from moul.time.utils import normalizeTZ -from moul.time.utils import UTC LOG = logging.getLogger('moul.qt.utils') Modified: pymoul/trunk/src/moul/qt/wdysini.py =================================================================== --- pymoul/trunk/src/moul/qt/wdysini.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/qt/wdysini.py 2007-02-23 16:41:50 UTC (rev 187) @@ -18,8 +18,6 @@ """Moul QT GUI main windows """ -from __future__ import with_statement - __author__ = "Christian Heimes" __version__ = "$Id$" __revision__ = "$Revision$" @@ -30,18 +28,20 @@ from PyQt4.QtCore import Qt from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import pyqtSignature +from logging import getLogger from moul import metadata from moul.config import lookupDir from moul.file.directory import UruGameDataDirectory from moul.file.directory import UruPersonalDataDirectory from moul.file.wdysini import videoModes -from logging import getLogger + from moul.qt.utils import QNamespaceContainer from moul.qt.utils import QSignalLoggerMetaclass +from moul.qt.utils import criticalMB from moul.qt.utils import questionMB -from moul.qt.utils import criticalMB + LOG = getLogger('moul.qt') class IniFileContainer(QNamespaceContainer): Modified: pymoul/trunk/src/moul/time/cavern.py =================================================================== --- pymoul/trunk/src/moul/time/cavern.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/time/cavern.py 2007-02-23 16:41:50 UTC (rev 187) @@ -25,13 +25,13 @@ from datetime import datetime +from moul.time.utils import UNIX_0 +from moul.time.utils import UTC from moul.time.utils import diffTD from moul.time.utils import normalizeTZ from moul.time.utils import td2sec from moul.time.utils import timezone from moul.time.utils import utcnow -from moul.time.utils import UNIX_0 -from moul.time.utils import UTC ## not used in the current version #SUPPORTED_TZ = ('America', 'Canada', 'Etc', 'Europe', 'US') Modified: pymoul/trunk/src/moul/time/dni.py =================================================================== --- pymoul/trunk/src/moul/time/dni.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/time/dni.py 2007-02-23 16:41:50 UTC (rev 187) @@ -84,15 +84,15 @@ __version__ = "$Id$" __revision__ = "$Revision$" +import sys from datetime import datetime from time import mktime -import sys +from moul.time.utils import UNIX_0 +from moul.time.utils import UTC from moul.time.utils import td2sec from moul.time.utils import timezone from moul.time.utils import utcnow -from moul.time.utils import UNIX_0 -from moul.time.utils import UTC # list of month names with approx. dates VAILEETEE = ( Modified: pymoul/trunk/src/moul/time/utils.py =================================================================== --- pymoul/trunk/src/moul/time/utils.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/src/moul/time/utils.py 2007-02-23 16:41:50 UTC (rev 187) @@ -21,17 +21,19 @@ __version__ = "$Id$" __revision__ = "$Revision$" +from datetime import datetime +from logging import getLogger + from moul.osdependent import __FROZEN__ + # pytz is an egg if not __FROZEN__: import pkg_resources pkg_resources.require("pytz>=2006p") -from datetime import datetime -from logging import getLogger +from pytz import common_timezones +from pytz import timezone from pytz import utc as UTC -from pytz import timezone -from pytz import common_timezones LOG = getLogger('timeutils') Modified: pymoul/trunk/utilities/importorder.py =================================================================== --- pymoul/trunk/utilities/importorder.py 2007-02-23 15:19:19 UTC (rev 186) +++ pymoul/trunk/utilities/importorder.py 2007-02-23 16:41:50 UTC (rev 187) @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.4 +#!/usr/bin/env python2.5 ############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. @@ -119,9 +119,14 @@ imp_list = filterList(import_list, 'import ') from_list = filterList(import_list, 'from ') + #remove future statements from from_list + future_list = filterList(from_list, 'from __future__ import') + from_list = removeList(from_list, future_list) + #extracting non import content non_import_block = removeList(import_list, imp_list) non_import_block = removeList(non_import_block, from_list) + non_import_block = removeList(non_import_block, future_list) non_import_block_fmt = formateBlock(non_import_block) #comma separated imports into individual import statements @@ -145,7 +150,8 @@ global_from_list = removeList(rem_from_list1, zope_from_list) #formating the global, zope and zope.app package imports - format_import_content = mergeAllBlocks(global_imp_list, + format_import_content = mergeAllBlocks(future_list, + global_imp_list, zope_imp_list, zope_app_imp_list, global_from_list, @@ -158,6 +164,7 @@ non_import_block_fmt += '\n\n' fmt_content = format_import_content + non_import_block_fmt + fmt_content = fmt_content.strip() + '\n' return {'import_order':fmt_content, 'non_import_order':import_content} @@ -253,16 +260,20 @@ return [item for item in list if item not in rem_list] -def mergeAllBlocks(global_imp_list, zope_imp_list, zope_app_imp_list, - global_from_list, zope_from_list, zope_app_from_list): +def mergeAllBlocks(future_list, global_imp_list, zope_imp_list, + zope_app_imp_list, global_from_list, zope_from_list, + zope_app_from_list): """merges global, zope and zope.app imports """ import_block = '' + future_block = formateBlock(future_list) global_imp_block = formateBlock(global_imp_list) global_from_block = formateBlock(global_from_list) zope_imp_block = formateBlock(zope_imp_list) zope_from_block = formateBlock(zope_from_list) zope_app_imp_block = formateBlock(zope_app_imp_list) zope_app_from_block = formateBlock(zope_app_from_list) + + import_block = future_block import_block += formatsFromAndImportBlock(global_imp_block, global_from_block) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-02-27 14:46:02
|
Revision: 205 http://pymoul.svn.sourceforge.net/pymoul/?rev=205&view=rev Author: tiran Date: 2007-02-27 06:45:53 -0800 (Tue, 27 Feb 2007) Log Message: ----------- Moved processinfo to external module Modified Paths: -------------- pymoul/trunk/INSTALL.txt pymoul/trunk/setup.py pymoul/trunk/src/moul/osdependent/__init__.py pymoul/trunk/src/moul/osdependent/darwin/__init__.py pymoul/trunk/src/moul/osdependent/linux/__init__.py pymoul/trunk/src/moul/osdependent/win32/__init__.py Removed Paths: ------------- pymoul/trunk/src/moul/osdependent/processinfo.py Modified: pymoul/trunk/INSTALL.txt =================================================================== --- pymoul/trunk/INSTALL.txt 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/INSTALL.txt 2007-02-27 14:45:53 UTC (rev 205) @@ -4,9 +4,10 @@ * Python 2.5.x http://www.python.org/ * easy_install http://peak.telecommunity.com/DevCenter/EasyInstall - * setuptools (via easy install) - * PyTz (via $ easy_install-2.5 -Z pytz) - * Qt4 GPL 4.2+ http://www.trolltech.com/developer/downloads/qt/ + * setuptools (via easy_install) + * pytz (via $ easy_install-2.5 -Z pytz) + * enumprocess (via $ easy_install-2.5 -Z enumprocess) + * Qt4 GPL 4.2+ http://www.trolltech.com/developer/downloads/qt/ * PyQt4 4.1.1+ http://www.riverbankcomputing.co.uk/pyqt/ Windows Modified: pymoul/trunk/setup.py =================================================================== --- pymoul/trunk/setup.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/setup.py 2007-02-27 14:45:53 UTC (rev 205) @@ -57,7 +57,7 @@ setup_options = dict( setup_requires = ["setuptools>="+SETUPTOOLS_VERSION,], - install_requires = ["pytz>=2006p",], + install_requires = ["pytz>=2006p", "enumprocess>=0.1"], data_files = [ ('docs', list(glob('*.txt'))), ('i18n', list(glob('src/moul/qt/i18n/pymoul_*.qm'))), Modified: pymoul/trunk/src/moul/osdependent/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/__init__.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/src/moul/osdependent/__init__.py 2007-02-27 14:45:53 UTC (rev 205) @@ -38,14 +38,20 @@ import sys from types import ModuleType -from moul.osdependent.processinfo import getPidNames -from moul.osdependent.processinfo import getPids +# a program under py2exe is sys.frozen +__FROZEN__ = bool(getattr(sys, 'frozen', False)) +if not __FROZEN__: + import pkg_resources + pkg_resources.require("enumprocess>=0.1") +from enumprocess import getPidNames +from enumprocess import getPids + + LOG = getLogger('moul.osdependent') -# a program under py2exe is sys.frozen -__FROZEN__ = bool(getattr(sys, 'frozen', False)) + # OS stuff _plat = sys.platform.startswith __WIN32__ = _plat('win32') # win64, cygwin? Modified: pymoul/trunk/src/moul/osdependent/darwin/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/darwin/__init__.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/src/moul/osdependent/darwin/__init__.py 2007-02-27 14:45:53 UTC (rev 205) @@ -22,11 +22,11 @@ __revision__ = "$Revision$" import os +from logging import getLogger +from enumprocess import getPidNames from subprocess import Popen -from logging import getLogger - LOG = getLogger('moul.darwin') LOG.critical('Darwin/Mac support is not tested') Modified: pymoul/trunk/src/moul/osdependent/linux/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/linux/__init__.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/src/moul/osdependent/linux/__init__.py 2007-02-27 14:45:53 UTC (rev 205) @@ -22,12 +22,11 @@ __revision__ = "$Revision$" import os +from logging import getLogger +from enumprocess import getPidNames from subprocess import Popen -from moul.osdependent.processinfo import getPidNames -from logging import getLogger - LOG = getLogger('moul.linux') LOG.critical('Linux support is not tested') Deleted: pymoul/trunk/src/moul/osdependent/processinfo.py =================================================================== --- pymoul/trunk/src/moul/osdependent/processinfo.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/src/moul/osdependent/processinfo.py 2007-02-27 14:45:53 UTC (rev 205) @@ -1,465 +0,0 @@ -# pyMoul - Python interface to Myst Online URU Live -# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., 59 -# Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -"""Get process informations - -The module contains for implementations: - - - an Unsupported implementation that raises UnsupportedError - - a Linux implementation that read the data from /proc - - a Unix/POSIX implementation that parses the output of ps - - a Windows implementation that uses ctypes to get the infos from psapi.dll - -API -=== - getPids() - list of ints/longs - getPidNames() - mapping pid -> name - getPidDetails(pid) - detailed informations about a process - getPidDetails('self') - detailed informations about current process - ->>> cur = os.getpid() ->>> exe = sys.executable ->>> pids = getPids() ->>> pids > 1 -True ->>> isinstance(pids[0], (int, long)) -True ->>> cur in pids -True - ->>> mapping = getPidNames() ->>> cur in mapping -True ->>> mapping[cur].lower() in sys.executable -True - ->>> getPidDetails('self')['name'] == getPidDetails(cur)['name'] -True ->>> getPidDetails(cur)['name'] == mapping[cur] -True - ->>> for impl in (WinEnumProcesses(), LinuxProcReader(), PsParser()): -... if impl.supported(): -... isinstance(impl.getPids(), list) and None -... isinstance(impl.getPidNames(), dict) and None -""" -__author__ = "Christian Heimes" -__version__ = "$Id$" -__revision__ = "$Revision$" -__all__ = ['getPids', 'getPidNames', 'getPidDetails', 'supportedOS', - 'UnsupportedError'] - -import logging -import os -import os.path -import sys - - -LOG = logging.getLogger("processinfo") -NULL = "\x00" - -_plat = sys.platform.startswith -if _plat('win') or _plat('cygwin'): - from ctypes import windll, c_ulong, sizeof, c_buffer, byref - PSAPI = windll.psapi - KERNEL = windll.kernel32 - PROCESS_QUERY_INFORMATION = 0x0400 - PROCESS_VM_READ = 0x0010 - PROCESS_FLAGS = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ -else: - from subprocess import Popen - from subprocess import PIPE - -class UnsupportedError(OSError): - """OS or command not supported error - """ - pass - -class Unsupported(object): - """Unsupported OS implementation - - Raises L{UnsupportedError} - """ - __slots__ = () - - @classmethod - def supported(cls): - """Supported flag property""" - return False - - @classmethod - def log(cls): - """Log information about the implementation""" - LOG.warning("Unsupported OS. Neither proc filesystem nor 'ps' works.") - - @classmethod - def getPids(cls): - """Get a list of pids - - @return: a list of pid numbers - @rtype: list(int) - """ - raise UnsupportedError - - @classmethod - def getPidNames(cls): - """Get a mapping of pid -> name - - @return: mapping of pid -> name - @rtype: dict(int:str) - """ - raise UnsupportedError - - @classmethod - def getPidDetails(pid): - """Get detailed informations about a process - - @param pid: pid number or 'self' - @type pid: int or basestring - @return: detailed information about a process - @rtype: dict(str:data) - """ - raise UnsupportedError - -class PsParser(object): - """Parse the output of the ps command - """ - __slots__ = () - - CMD = "ps -e --no-header --cols=1024" - PIDNAMES = "%s --format=pid,ucmd" % CMD - PIDS = "%s --format=pid" % CMD - - @classmethod - def supported(cls): - """Supported flag property""" - try: - cls._exec(cls.PIDS) - except Exception: # catch all! - return False - else: - return True - - @classmethod - def log(cls): - """Log information about the implementation""" - LOG.debug("Using the 'ps' command on POSIX os") - - @classmethod - def getPids(cls): - """Get a list of pids - """ - stdout = cls._exec(cls.PIDS) - if stdout is None: - return None - pids = [] - for line in stdout: - try: - pid = int(line.strip()) - except ValueError: - pass - else: - pids.append(pid) - return pids - - @classmethod - def getPidNames(cls): - """Get a list of pid -> name - """ - stdout = cls._exec(cls.PIDNAMES) - if stdout is None: - return None - mapping = {} - for line in stdout: - line = line.strip() - idx = line.find(' ') - pid, name = line[:idx], line[idx+1:] - try: - pid = int(pid) - except ValueError: - pass - else: - mapping[pid] = name - return mapping - - @classmethod - def getPidDetails(cls, pid): - """Get detailed informations about a process - - TODO - """ - if pid == 'self': - pid = os.getpid() - raise UnsupportedError("not implemented yet") - - @staticmethod - def _exec(cmd): - """Execute command cmd - - The method waits until the command has finished. It returns None of - something went wrong. - - @param cmd: Command to execute - @type cmd: str - @return: None or stdin as file like object - """ - try: - popen = Popen(cmd, shell=True, bufsize=-1, stdout=PIPE, - env = {'LC_ALL' : 'C'}) - rc = popen.wait() - except (OSError, ValueError): - LOG.exception("Failed to execute '%s'" % cmd) - return None - else: - if rc != 0: - LOG.error("'%s' returned with error code %i" % (cmd, rc)) - return None - else: - return popen.stdout - -class LinuxProcReader(object): - """Get process informations under Linux by reading /proc - - Tested under Linux, may work on other POSIX os with /proc, too. - """ - __slots__ = () - - PROC = "/proc" - - @classmethod - def supported(cls): - return os.path.isfile("%s/self/status" % cls.PROC) - - @classmethod - def log(cls): - """Log information about the implementation""" - LOG.debug("Using the proc filesystem on Linux") - - @classmethod - def getPids(cls): - """Get a list of pids - """ - pids = [] - for name in os.listdir(cls.PROC): - if os.path.isdir(cls.PROC + '/' + name): - try: - pids.append(int(name)) - except ValueError: - pass - return pids - - @classmethod - def getPidNames(cls): - """Get a list of pid -> name - """ - mapping = {} - for pid in cls.getPids(): - name = cls._readProcStatus(pid, searchkey='name') - if name is not None: - mapping[pid] = name - return mapping - - def getPidDetails(cls, pid): - """Get detailed informations about a process - """ - details = cls._readProcStatus(pid) - if details is None: - return None - details.update(cls._readProcOther(pid)) - details['cmdline'] = cls._readProcCmdline(pid) - return details - - @classmethod - def _readProcStatus(cls, pid, searchkey=None): - """Read and parse status informations for PID pid - - pid - pid as long or int or 'self' - - If searchkey is None the method returns a mapping of lower keys - to values (stripped). - If searchkey is given than the method immediatly returns the value - or returns None if they key can't be found. - """ - mapping = {} - status = '%s/%s/status' % (cls.PROC, pid) - try: - # read entiry file to avoid race conditions - lines = open(status, 'r').readlines() - except IOError: - LOG.exception("%s not found" % status) - return None - for line in lines: - try: - key, value = line.split(':\t') - except ValueError: - continue - key = key.lower() - value = value.strip() - #if value.endswith(' kB'): - # value = value[:-3] - if key == searchkey: - return value - mapping[key.lower()] = value - if searchkey is not None: - return None - return mapping - - @classmethod - def _readProcCmdline(cls, pid): - """Read cmdline informations for pid and returns a list similar to sys.argv - """ - try: - # read entiry file to avoid race conditions - data = open('%s/%s/cmdline' % (cls.PROC, pid), 'r').read() - except IOError: - return None - return data.split(NULL) - - @classmethod - def _readProcOther(cls, pid): - """Read other possible useful things - - cwd -> current work directory (may not exist) - exe -> path to executable (may not exist) - """ - return { - 'cwd' : os.path.realpath('%s/%s/cwd' % (cls.PROC, pid)), - 'exe' : os.path.realpath('%s/%s/exe' % (cls.PROC, pid)), - } - -class WinEnumProcesses(object): - """""Get process informations under Win32 with psapi.dll - - Based on enumprocesses from Eric Koome - http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305279 - """ - __slots__ = () - - @classmethod - def supported(cls): - try: - cls.getPids() - except Exception: # catch all! - return False - else: - return True - - @classmethod - def log(cls): - """Log information about the implementation""" - LOG.debug("Using ctypes on Windows") - - @classmethod - def getPids(cls): - """Get a list of pids - """ - arr = c_ulong * 256 - lpidProcess = arr() - cb = sizeof(lpidProcess) - cbNeeded = c_ulong() - - # Call Enumprocesses to get hold of process id's - PSAPI.EnumProcesses(byref(lpidProcess), cb, byref(cbNeeded)) - nReturned = cbNeeded.value/sizeof(c_ulong()) # number of processes returned - return [pid for pid in lpidProcess][:nReturned] - - @classmethod - def getPidNames(cls): - """Get a list of pid -> name - """ - hModule = c_ulong() - count = c_ulong() - modname = c_buffer(51) - mapping = {} - for pid in cls.getPids(): - # Get handle to the process based on PID - hProcess = KERNEL.OpenProcess(PROCESS_FLAGS, False, pid) - if hProcess: - PSAPI.EnumProcessModules(hProcess, byref(hModule), - sizeof(hModule), byref(count)) - PSAPI.GetModuleBaseNameA(hProcess, hModule.value, modname, - sizeof(modname)) - try: - name = u"".join([c for c in modname if c != NULL]) - except UnicodeError, msg: - LOG.exception("Can't decode name of pid %s" % pid) - else: - mapping[pid] = name - modname[:] = sizeof(modname) * NULL - KERNEL.CloseHandle(hProcess) - - return mapping - - @classmethod - def getPidDetails(cls, pid): - """Get detailed informations about a process - """ - if pid == 'self': - pid = os.getpid() - - hModule = c_ulong() - count = c_ulong() - modname = c_buffer(51) - hProcess = KERNEL.OpenProcess(PROCESS_FLAGS, False, pid) - if not hProcess: - return None - - PSAPI.EnumProcessModules(hProcess, byref(hModule), - sizeof(hModule), byref(count)) - PSAPI.GetModuleBaseNameA(hProcess, hModule.value, modname, - sizeof(modname)) - try: - name = u"".join([c for c in modname if c != NULL]) - except UnicodeError, msg: - LOG.exception("Can't decode name of pid %s" % pid) - else: - name = None - - KERNEL.CloseHandle(hProcess) - return {'name' : name} - - -# Initialize global methods -_enumProcesses = None -for impl in (WinEnumProcesses(), LinuxProcReader(), PsParser()): - if impl.supported(): - impl.log() - _enumProcesses = impl - break - -if _enumProcesses is None: - LOG.error("System %s is not supported" % sys.platform) - _enumProcesses = Unsupported() - -getPids = _enumProcesses.getPids -getPidNames = _enumProcesses.getPidNames -getPidDetails = _enumProcesses.getPidDetails -supportedOS = _enumProcesses.supported() - -def test_suite(): - import unittest - from doctest import DocTestSuite - return unittest.TestSuite(( - DocTestSuite() - )) - -if __name__ == '__main__': - import unittest - logging.basicConfig() - unittest.main(defaultTest="test_suite") - print getPids() - print getPidNames() Modified: pymoul/trunk/src/moul/osdependent/win32/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/win32/__init__.py 2007-02-27 14:32:21 UTC (rev 204) +++ pymoul/trunk/src/moul/osdependent/win32/__init__.py 2007-02-27 14:45:53 UTC (rev 205) @@ -22,10 +22,10 @@ __revision__ = "$Revision$" import os +from enumprocess import getPidNames +from logging import getLogger from subprocess import Popen -from logging import getLogger -from moul.osdependent.processinfo import getPidNames from moul.osdependent.win32 import winpath This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-02-28 12:14:00
|
Revision: 218 http://pymoul.svn.sourceforge.net/pymoul/?rev=218&view=rev Author: tiran Date: 2007-02-28 04:13:59 -0800 (Wed, 28 Feb 2007) Log Message: ----------- Moved code to external packages included with svn:externals Modified Paths: -------------- pymoul/trunk/INSTALL.txt pymoul/trunk/src/moul/__init__.py pymoul/trunk/src/moul/crypt/binary.py pymoul/trunk/src/moul/crypt/tests/test_wdys.py pymoul/trunk/src/moul/crypt/whatdoyousee.py Added Paths: ----------- pymoul/trunk/src/EXTERNALS.txt Removed Paths: ------------- pymoul/trunk/src/moul/crypt/binaryrecord.py pymoul/trunk/src/moul/crypt/tests/test_binary.py pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py pymoul/trunk/src/moul/crypt/xtea.py pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py Property Changed: ---------------- pymoul/trunk/src/ Modified: pymoul/trunk/INSTALL.txt =================================================================== --- pymoul/trunk/INSTALL.txt 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/INSTALL.txt 2007-02-28 12:13:59 UTC (rev 218) @@ -6,10 +6,14 @@ * easy_install http://peak.telecommunity.com/DevCenter/EasyInstall * setuptools (via easy_install) * pytz (via $ easy_install-2.5 -Z pytz) - * enumprocess (via $ easy_install-2.5 -Z enumprocess) * Qt4 GPL 4.2+ http://www.trolltech.com/developer/downloads/qt/ * PyQt4 4.1.1+ http://www.riverbankcomputing.co.uk/pyqt/ + These external modules were created for pyMoul and are bundled with the tool. + * binaryfile + * enumprocess + * xtea + Windows ------- Property changes on: pymoul/trunk/src ___________________________________________________________________ Name: svn:externals + xtea https://pymoul.svn.sourceforge.net/svnroot/pymoul/xtea/trunk/src/xtea enumprocess https://pymoul.svn.sourceforge.net/svnroot/pymoul/enumprocess/trunk/src/enumprocess binaryfile https://pymoul.svn.sourceforge.net/svnroot/pymoul/binaryfile/trunk/src/binaryfile Added: pymoul/trunk/src/EXTERNALS.txt =================================================================== --- pymoul/trunk/src/EXTERNALS.txt (rev 0) +++ pymoul/trunk/src/EXTERNALS.txt 2007-02-28 12:13:59 UTC (rev 218) @@ -0,0 +1,3 @@ +xtea https://pymoul.svn.sourceforge.net/svnroot/pymoul/xtea/trunk/src/xtea +enumprocess https://pymoul.svn.sourceforge.net/svnroot/pymoul/enumprocess/trunk/src/enumprocess +binaryfile https://pymoul.svn.sourceforge.net/svnroot/pymoul/binaryfile/trunk/src/binaryfile Property changes on: pymoul/trunk/src/EXTERNALS.txt ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native Modified: pymoul/trunk/src/moul/__init__.py =================================================================== --- pymoul/trunk/src/moul/__init__.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/__init__.py 2007-02-28 12:13:59 UTC (rev 218) @@ -12,3 +12,4 @@ except ImportError: for p in __path__: modulefinder.AddPackagePath(__name__, p) + Modified: pymoul/trunk/src/moul/crypt/binary.py =================================================================== --- pymoul/trunk/src/moul/crypt/binary.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/binary.py 2007-02-28 12:13:59 UTC (rev 218) @@ -21,241 +21,30 @@ __version__ = "$Id" __revision__ = "$Revision" +from binaryfile import BinaryFile as BaseBinaryFile +from binaryfile.binary import AbstractString from struct import calcsize from struct import pack from struct import unpack -from moul.crypt.binaryrecord import parseRecord -from moul.crypt.binaryrecord import registerRecord -class BinaryFile(file): - """Binary file - - A file based class with additional methods to read and write binary data. - - The class supports reading and writing: - - char: readChar / writeChar - - byte: readByte / writeByte - - bool: readBool / writeBool - - signed int8: read8 / write8 - - unsigned int8: read8s / write8s - - unsigned int 16: read16 / write16 - - signed int 16: read16s / write16s - - unsigned int 32: read32 / write32 - - signed int 32: read32s / write32s - - unsigned int 64: read64 / write64 - - signed int 64: read64s / write64s - - float: readFloat / writeFloat - - double: readDouble / writeDouble - - packed data: readPacked(fmt) / writePacked(fmt, data) - - quad (two int16): readQuad / writeQuad) - - NULL: read0 / write0 - - null string: readString0 / writeString0 (size is string + NULL) - - uru string: readUruString(version), writeUruString - - string w/ 16bit size header: readString16(null terminated) / writeString16 - - string w/ 32bit size header: readString32(null terminated) / writeString32 +class BinaryFile(BaseBinaryFile): + """Binary file with suport for Uru String - For conveniance the class has a size() method - - The class is using some optimization tricks like binding functions to the - local namespace of a method. + - uru string: readUruString(version), writeUruString """ - def __new__(cls, fname, mode='rb'): - assert 'b' in mode - self = file.__new__(cls, fname, mode) - self.NULL = '\x00' - return self - - def size(self): - pos = self.tell() - try: - self.seek(0, 2) - return self.tell() - finally: - self.seek(pos) - - def readChar(self, _unpack=unpack): - return _unpack('<c', self.read(1))[0] - - def readByte(self, _unpack=unpack): - return _unpack('<B',self.read(1))[0] - - def readBool(self, _unpack=unpack): - return bool(_unpack('<B', self.read(1))[0]) - - def read8(self, _unpack=unpack): - return _unpack('<B', self.read(1))[0] - - def read8s(self, _unpack=unpack): - return _unpack('<b', self.read(1))[0] - - def read16(self, _unpack=unpack): - return _unpack('<H', self.read(2))[0] - - def read16s(self, _unpack=unpack): - return _unpack('<h', self.read(2))[0] - - def read32(self, _unpack=unpack): - return _unpack('<I', self.read(4))[0] - - def read32s(self, _unpack=unpack): - return _unpack('<i', self.read(4))[0] - - def read64(self, _unpack=unpack): - return _unpack('<Q', self.read(8))[0] - - def read64s(self, _unpack=unpack): - return _unpack('<q',self.read(8))[0] - - def readQuad(self, _unpack=unpack): - return _unpack('<2I', self.read(8)) - - def readFloat(self, _unpack=unpack): - return _unpack('<f', self.read(4))[0] - - def readDouble(self, _unpack=unpack): - return _unpack('<d', self.read(8))[0] - - def readPacked(self, fmt, _unpack=unpack): - return unpack(fmt, self.read(calcsize(fmt))) - - def read0(self): - null = self.read(1) - if null != self.NULL: - raise ValueError("%s != NULL at %i" % (null, self.tell()-1)) - return null - def readUruString(self, version=5): return UruString('', version=version).readfd(self) - def readString0(self, size): - s = self.read(size-1) - self.read0() - return s - - def readString16(self, terminate=False): - return String16('', terminate=terminate).readfd(self) - - def readString32(self, terminate=False): - return String32('', terminate=terminate).readfd(self) - - def readRecord(self, name): - return parseRecord(name, self) - - @staticmethod - def registerRecord(name, fmt): - return registerRecord(name, fmt) - - #write - def writeChar(self, data, _pack=pack): - self.write(_pack('<c', data)) - - def writeByte(self, data, _pack=pack): - self.write(_pack('<B', data)) - - def writeBool(self, data, _pack=pack): - self.write(_pack('<B', bool(data))) - - def write8(self, data, _pack=pack): - self.write(_pack('<B', data)) - - def write8s(self, data, _pack=pack): - self.write(_pack('<b', data)) - - def write16(self, data, _pack=pack): - self.write(_pack('<H', data)) - - def write16s(self, data, _pack=pack): - self.write(_pack('<h', data)) - - def write32(self, data, _pack=pack): - self.write(_pack('<I', data)) - - def write32s(self, data, _pack=pack): - self.write(_pack('<i', data)) - - def write64(self, data, _pack=pack): - self.write(_pack('<Q', data)) - - def write64s(self, data, _pack=pack): - self.write(_pack('<q', data)) - - def writeQuad(self, tupl, _pack=pack): - self.write(_pack('<2I', *tupl)) - - def writeFloat(self, data, _pack=pack): - self.write(_pack('<f', data)) - - def writeDouble(self, data, _pack=pack): - self.write(_pack('<d', data)) - - def write0(self): - self.write(self.NULL) - - def writeString0(self, s): - self.write(s) - self.write0() - - def writePacked(self, data, fmt): - self.write(pack(fmt, data)) - def writeUruString(self, data, version=5): UruString(data, version=version).writefd(self) - def writeString16(self, data, terminate=False): - String16(data, terminate=terminate).writefd(self) - - def writeString32(self, data, terminate=False): - String32(data, terminate=terminate).writefd(self) - - def writeRecord(self, rec): - self.write(rec.read()) - -class AbstractString(object): - """Abstract string class - """ - def __init__(self, s=''): - self._data = s - - def readfd(self, fd): - raise NotImplementedError - - def writefd(self, fd): - raise NotImplementedError - - def clear(self): - """Clear data - """ - self._data = '' - - def set(self, urustr): - """Replace current data with urustr - """ - self._data = urustr - - def __repr__(self): - """repr(self) - """ - return ("<%s at %x (%i)" % (self.__class__.__name__, id(self), - len(self))) - - def __len__(self): - """len(self) - """ - return len(self._data) - - def __cmp__(self, other): - if isinstance(other, AbstractString): - return cmp(self._data, other._data) - else: - return cmp(self._data, other) - class UruString(AbstractString): """Uru Safe String - + The algorithm is based on Alcug's Ustr. This version is optimized to copy and convert as less data as possible. - + version 0 - normal str version 1 - auto (normal/inverted) version 5 - inverted @@ -329,51 +118,3 @@ result = fd.read(size) self._data = result return result - -class String32(AbstractString): - """String with 32 bit size header - """ - def __init__(self, s='', terminate=False): - AbstractString.__init__(self, s) - self._terminate = bool(terminate) - - def readfd(self, fd): - size = fd.read32() - if self._terminate: - self._data = fd.readString0(size) - else: - self._data = fd.read(size) - return self._data - - def writefd(self, fd): - size = len(self) - if self._terminate: - fd.write32(size+1) - fd.writeString0(self._data) - else: - fd.write32(size) - fd.write(self._data) - -class String16(AbstractString): - """String with 16 bit size header - """ - def __init__(self, s='', terminate=False): - AbstractString.__init__(self, s) - self._terminate = bool(terminate) - - def readfd(self, fd): - size = fd.read16() - if self._terminate: - self._data = fd.readString0(size) - else: - self._data = fd.read(size) - return self._data - - def writefd(self, fd): - size = len(self) - if self._terminate: - fd.write16(size+1) - fd.writeString0(self._data) - else: - fd.write16(size) - fd.write(self._data) Deleted: pymoul/trunk/src/moul/crypt/binaryrecord.py =================================================================== --- pymoul/trunk/src/moul/crypt/binaryrecord.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/binaryrecord.py 2007-02-28 12:13:59 UTC (rev 218) @@ -1,170 +0,0 @@ -# pyMoul - Python interface to Myst Online URU Live -# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., 59 -# Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -"""Binary file helper: Records - -This module is roughly based on Maciej Obarski's recipe "parse and create -fixed size binary data" from -http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/465219 -""" -__author__ = "Christian Heimes" -__version__ = "$Id" -__revision__ = "$Revision" - -from struct import calcsize -from struct import pack -from struct import unpack - -_marker = object() - -class RecordRegistry(dict): - """Registry for record definitions - """ - __slots__ = () - def register(self, name, fmt): - """Register a format by name - - @param name: name of the format - @type name: str - @param fmt: a record format - @type fmt: str - - Example: - >>> reg = RecordRegistry() - >>> registerRecord = reg.register - >>> parseRecord = reg.parse - >>> obj = registerRecord("connection", "4B.ip >H.port >I.session_id") - >>> isinstance(obj, RecordDefinition) - True - >>> data = "\\xc0\\xa8\\x00\\x01" + "\\x00P" + "\\xFE\\xDC\\xBA\\x98" - - >>> rec = parseRecord("connection", data) - >>> rec.ip - (192, 168, 0, 1) - >>> rec.port - 80 - >>> rec.session_id - 4275878552L - >>> rec.read() == data or rec.read() - True - """ - if name in self: - raise NameError("%s already registered!" % name) - self[name] = RecordDefinition(name, fmt) - return self[name] - - def parse(self, name, fd_data): - """Parse data using the RecordDefinition 'name' - - @param name: name of the format - @type name: str - @param fd_data: data to parse: either a string or an open file - @type fd_data: str or file - """ - return self[name](fd_data) - -class RecordDefinition(object): - """A record definition - """ - __slots__ = ('_fields', '_recordsize', '_name') - - def __init__(self, name, recordfmt): - self._name = name - self._fields = [] - pos = 0 - for field in recordfmt.split(): - if field.startswith('#'): - continue - fmt, name = field.split('.') - if '#' in name: - name = name.split('#')[0] - name = name.strip() - size = calcsize(fmt) - self._fields.append((name, fmt, pos, pos+size)) - pos += size - - self._recordsize = pos - - @property - def name(self): - return self._name - - @property - def size(self): - return self._recordsize - - def __call__(self, fd_data): - """Parse data using the format string - - @param fd_data: data to parse: either a string or an open file - @type fd_data: str or file - """ - if isinstance(fd_data, basestring): - # handle string - data = fd_data - elif hasattr(fd_data, 'read'): - data = fd_data.read(self._recordsize) - else: - raise TypeError(type(fd_data)) - if len(data) != self._recordsize: - raise ValueError("Data has wrong size: %i, required: %i" % - (len(data), self._recordsize)) - return Record(self._fields, data) - -class Record(object): - __slots__ = ('_fields', '_data') - - def __init__(self, fields, data=None): - self._fields = fields - self._data = {} - if data is not None: - self.write(data) - - def write(self, data): - """Write data - - Creates the instance attributes defined in fmt - """ - for name, fmt, start, stop in self._fields: - value = unpack(fmt, data[start:stop]) - if len(value) == 1: - value = value[0] - self._data[name] = value - - def read(self): - """Convert data to binary string - """ - result = [] - for name, fmt, start, stop in self._fields: - value = self._data[name] - if not isinstance(value, (tuple, list)): - value = (value,) - result.append(pack(fmt, *value)) - return ''.join(result) - - def __getattr__(self, name, default=_marker): - value = self._data.get(name, default) - if value is _marker: - raise AttributeError(name) - return value - - def __str__(self): - return self.read() - -_recordRegistry = RecordRegistry() -registerRecord = _recordRegistry.register -parseRecord = _recordRegistry.parse Deleted: pymoul/trunk/src/moul/crypt/tests/test_binary.py =================================================================== --- pymoul/trunk/src/moul/crypt/tests/test_binary.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/tests/test_binary.py 2007-02-28 12:13:59 UTC (rev 218) @@ -1,148 +0,0 @@ -# pyMoul - Python interface to Myst Online URU Live -# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., 59 -# Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -"""moul.crypt.binary unit tests -""" -__author__ = "Christian Heimes" -__version__ = "$Id$" -__revision__ = "$Revision$" - -import os -import unittest -from doctest import DocTestSuite -from tempfile import mkstemp - -from moul.crypt.binary import BinaryFile - -class BinaryFileTest(unittest.TestCase): - def setUp(self): - self.tmpname = mkstemp()[1] - self.b = BinaryFile(self.tmpname, 'wb+') - - def tearDown(self): - self.b.close() - os.unlink(self.tmpname) - - def _testrw(self, name, data): - #import pdb; pdb.set_trace() - read = getattr(self.b, 'read%s' % name) - write = getattr(self.b, 'write%s' % name) - write(data) - self.b.seek(0) - fdata = read() - self.failUnlessEqual(data, fdata) - - def test_char(self): - self._testrw('Char', 'a') - - def test_byte(self): - self._testrw('Byte', 127) - - def test_bool(self): - self._testrw('Bool', True) - - def test_8(self): - self._testrw('8', 42) - - def test_8s(self): - self._testrw('8s', -42) - - def test_16(self): - self._testrw('16', 2**15) - - def test_16s(self): - self._testrw('16s', -2**15) - - def test_32(self): - self._testrw('32', 2*31) - - def test_32s(self): - self._testrw('32s', -2*31) - - def test_64(self): - self._testrw('64', 2*63) - - def test_64s(self): - self._testrw('64s', -2*63) - - def test_float(self): - data = -0.07 - self.b.writeFloat(data) - self.b.seek(0) - self.failUnlessAlmostEqual(data, self.b.readFloat()) - - def test_double(self): - self._testrw('Double', -23*10e200) - - def test_quad(self): - data = (23, 42) - self.b.writeQuad(data) - self.b.seek(0) - self.failUnlessEqual(data, self.b.readQuad()) - - def test_urustring(self): - # XXX: no test data - pass - - def test_string0(self): - s = "a test string" - l = len(s) - self.b.writeString0(s) - self.b.seek(0) - self.failUnlessEqual(self.b.size(), l+1) - self.failUnlessEqual(self.b.readString0(l+1), s) - self.b.seek(0) - self.failUnlessEqual(self.b.read(), s+'\x00') - - def test_string16(self): - s = "a test string" - l = len(s) - self.b.writeString16(s, terminate=False) - self.b.seek(0) - self.failUnlessEqual(self.b.size(), l+2) - self.failUnlessEqual(self.b.readString16(terminate=False), s) - - self.b.seek(0) - self.b.truncate(0) - self.b.writeString16(s, terminate=True) - self.b.seek(0) - self.failUnlessEqual(self.b.size(), l+3) - self.failUnlessEqual(self.b.readString16(terminate=True), s) - - def test_string32(self): - s = "a test string" - l = len(s) - self.b.writeString32(s, terminate=False) - self.b.seek(0) - self.failUnlessEqual(self.b.size(), l+4) - self.failUnlessEqual(self.b.readString32(terminate=False), s) - - self.b.seek(0) - self.b.truncate(0) - self.b.writeString32(s, terminate=True) - self.b.seek(0) - self.failUnlessEqual(self.b.size(), l+5) - self.failUnlessEqual(self.b.readString32(terminate=True), s) - - -def test_suite(): - return unittest.TestSuite(( - unittest.makeSuite(BinaryFileTest), - )) - -if __name__ == '__main__': - unittest.main(defaultTest="test_suite") Deleted: pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py =================================================================== --- pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/tests/test_binaryrecord.py 2007-02-28 12:13:59 UTC (rev 218) @@ -1,38 +0,0 @@ -# pyMoul - Python interface to Myst Online URU Live -# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., 59 -# Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -"""moul.crypt.binaryrecord unit tests -""" -__author__ = "Christian Heimes" -__version__ = "$Id$" -__revision__ = "$Revision$" - -import os -import unittest -from doctest import DocTestSuite - -import moul.crypt.binaryrecord - -def test_suite(): - return unittest.TestSuite(( - DocTestSuite('moul.crypt.binaryrecord'), - )) - -if __name__ == '__main__': - unittest.main(defaultTest="test_suite") - - Modified: pymoul/trunk/src/moul/crypt/tests/test_wdys.py =================================================================== --- pymoul/trunk/src/moul/crypt/tests/test_wdys.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/tests/test_wdys.py 2007-02-28 12:13:59 UTC (rev 218) @@ -64,7 +64,6 @@ return unittest.TestSuite(( unittest.makeSuite(WDYSTest), DocTestSuite('moul.crypt.whatdoyousee'), - DocTestSuite('moul.crypt.xtea'), )) if __name__ == '__main__': Modified: pymoul/trunk/src/moul/crypt/whatdoyousee.py =================================================================== --- pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-02-28 12:13:59 UTC (rev 218) @@ -32,8 +32,8 @@ from logging import getLogger from moul.crypt.binary import BinaryFile -from moul.crypt.xtea import xtea_decrypt -from moul.crypt.xtea import xtea_encrypt +from xtea import xtea_decrypt +from xtea import xtea_encrypt HEADER = "whatdoyousee" @@ -87,7 +87,7 @@ instr = instr.replace("\n", "\r\n") fout.seek(0) fout.write(HEADER) - + flen = len(instr) length = struct.pack(ENDIAN+"L", flen) fout.write(length) Deleted: pymoul/trunk/src/moul/crypt/xtea.py =================================================================== --- pymoul/trunk/src/moul/crypt/xtea.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/crypt/xtea.py 2007-02-28 12:13:59 UTC (rev 218) @@ -1,104 +0,0 @@ -"""XTEA Block Encryption Algorithm - -Author: Paul Chakravarti (paul_dot_chakravarti_at_mac_dot_com) -License: Public Domain - -Modified by Christian Heimes to add an endian switch. - -This module provides a Python implementation of the XTEA block encryption -algorithm (http://www.cix.co.uk/~klockstone/xtea.pdf). - -The module implements the basic XTEA block encryption algortithm -(`xtea_encrypt`/`xtea_decrypt`) and also provides a higher level `crypt` -function which symmetrically encrypts/decrypts a variable length string using -XTEA in OFB mode as a key generator. The `crypt` function does not use -`xtea_decrypt` which is provided for completeness only (but can be used -to support other stream modes - eg CBC/CFB). - -This module is intended to provide a simple 'privacy-grade' Python encryption -algorithm with no external dependencies. The implementation is relatively slow -and is best suited to small volumes of data. Note that the XTEA algorithm has -not been subjected to extensive analysis (though is believed to be relatively -secure - see http://en.wikipedia.org/wiki/XTEA). For applications requiring -'real' security please use a known and well tested algorithm/implementation. - -The security of the algorithm is entirely based on quality (entropy) and -secrecy of the key. You should generate the key from a known random source and -exchange using a trusted mechanism. In addition, you should always use a random -IV to seed the key generator (the IV is not sensitive and does not need to be -exchanged securely) - - >>> import os - >>> iv = 'ABCDEFGH' - >>> z = crypt('0123456789012345','Hello There',iv) - >>> z.encode('hex') - 'fe196d0a40d6c222b9eff3' - >>> crypt('0123456789012345',z,iv) - 'Hello There' - -""" -import struct - - -def crypt(key,data,iv='\00\00\00\00\00\00\00\00',n=32,endian="!"): - """ - Encrypt/decrypt variable length string using XTEA cypher as - key generator (OFB mode) - * key = 128 bit (16 char) / iv = 64 bit (8 char) - * data = string (any length) - - >>> import os - >>> key = os.urandom(16) - >>> iv = os.urandom(8) - >>> data = os.urandom(10000) - >>> z = crypt(key,data,iv) - >>> crypt(key,z,iv) == data - True - - """ - def keygen(key,iv,n): - while True: - iv = xtea_encrypt(key,iv,n,endian) - for k in iv: - yield ord(k) - xor = [ chr(x^y) for (x,y) in zip(map(ord,data),keygen(key,iv,n)) ] - return "".join(xor) - -def xtea_encrypt(key,block,n=32, endian="!"): - """ - Encrypt 64 bit data block using XTEA block cypher - * key = 128 bit (16 char) / block = 64 bit (8 char) - - >>> xtea_encrypt('0123456789012345','ABCDEFGH').encode('hex') - 'b67c01662ff6964a' - """ - v0,v1 = struct.unpack(endian+"2L",block) - k = struct.unpack(endian+"4L",key) - sum,delta,mask = 0L,0x9e3779b9L,0xffffffffL - for round in range(n): - v0 = (v0 + (((v1<<4 ^ v1>>5) + v1) ^ (sum + k[sum & 3]))) & mask - sum = (sum + delta) & mask - v1 = (v1 + (((v0<<4 ^ v0>>5) + v0) ^ (sum + k[sum>>11 & 3]))) & mask - return struct.pack(endian+"2L",v0,v1) - -def xtea_decrypt(key,block,n=32, endian="!"): - """ - Decrypt 64 bit data block using XTEA block cypher - * key = 128 bit (16 char) / block = 64 bit (8 char) - - >>> xtea_decrypt('0123456789012345','b67c01662ff6964a'.decode('hex')) - 'ABCDEFGH' - """ - v0,v1 = struct.unpack(endian+"2L",block) - k = struct.unpack(endian+"4L",key) - delta,mask = 0x9e3779b9L,0xffffffffL - sum = (delta * n) & mask - for round in range(n): - v1 = (v1 - (((v0<<4 ^ v0>>5) + v0) ^ (sum + k[sum>>11 & 3]))) & mask - sum = (sum - delta) & mask - v0 = (v0 - (((v1<<4 ^ v1>>5) + v1) ^ (sum + k[sum & 3]))) & mask - return struct.pack(endian+"2L",v0,v1) - -if __name__ == "__main__": - import doctest - doctest.testmod() \ No newline at end of file Deleted: pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py =================================================================== --- pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py 2007-02-28 12:10:44 UTC (rev 217) +++ pymoul/trunk/src/moul/osdependent/tests/test_processinfo.py 2007-02-28 12:13:59 UTC (rev 218) @@ -1,37 +0,0 @@ -# pyMoul - Python interface to Myst Online URU Live -# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., 59 -# Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -"""moul.osdependent.processinfo -""" -__author__ = "Christian Heimes" -__version__ = "$Id$" -__revision__ = "$Revision$" - -import unittest -from doctest import DocTestSuite - -import moul.osdependent.processinfo - - -def test_suite(): - return unittest.TestSuite(( - DocTestSuite('moul.osdependent.processinfo'), - )) - -if __name__ == '__main__': - unittest.main(defaultTest="test_suite") - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-05 14:21:07
|
Revision: 234 http://pymoul.svn.sourceforge.net/pymoul/?rev=234&view=rev Author: tiran Date: 2007-03-05 06:20:57 -0800 (Mon, 05 Mar 2007) Log Message: ----------- Updated Windows stuff to compile extensions with mingw32 Added test.bat Modified Paths: -------------- pymoul/trunk/INSTALL.txt pymoul/trunk/build.bat pymoul/trunk/installer.bat pymoul/trunk/run.bat pymoul/trunk/src/moul/qt/mainwindow.py Added Paths: ----------- pymoul/trunk/test.bat Modified: pymoul/trunk/INSTALL.txt =================================================================== --- pymoul/trunk/INSTALL.txt 2007-03-05 14:08:57 UTC (rev 233) +++ pymoul/trunk/INSTALL.txt 2007-03-05 14:20:57 UTC (rev 234) @@ -49,6 +49,13 @@ http://www.riverbankcomputing.com/Downloads/PyQt4/GPL/ http://wftp.tu-chemnitz.de/pub/Qt/qt/source/qt-win-opensource-4.2.2-mingw.exe +Extension module +---------------- + +The extension modules can be compiled and installed in place with + + python setup.py build_ext -i -c mingw32 + Adjust your environment for Qt/PyQt ----------------------------------- Modified: pymoul/trunk/build.bat =================================================================== --- pymoul/trunk/build.bat 2007-03-05 14:08:57 UTC (rev 233) +++ pymoul/trunk/build.bat 2007-03-05 14:20:57 UTC (rev 234) @@ -2,5 +2,5 @@ cls set PYTHONPATH=src python utilities\compileui.py src\moul\qt -python setup.py py2exe +python setup.py build_ext -c mingw32 py2exe pause Modified: pymoul/trunk/installer.bat =================================================================== --- pymoul/trunk/installer.bat 2007-03-05 14:08:57 UTC (rev 233) +++ pymoul/trunk/installer.bat 2007-03-05 14:20:57 UTC (rev 234) @@ -3,5 +3,5 @@ set PYTHONPATH=src set INNOSETUP=yes python utilities\compileui.py src\moul\qt -python setup.py py2exe +python setup.py build_ext -c mingw32 py2exe pause Modified: pymoul/trunk/run.bat =================================================================== --- pymoul/trunk/run.bat 2007-03-05 14:08:57 UTC (rev 233) +++ pymoul/trunk/run.bat 2007-03-05 14:20:57 UTC (rev 234) @@ -1,5 +1,6 @@ @echo off cls set PYTHONPATH=src +python setup.py build_ext -i -c mingw32 python utilities\compileui.py src\moul\qt python src\moul\qt\moulqt.py Modified: pymoul/trunk/src/moul/qt/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/mainwindow.py 2007-03-05 14:08:57 UTC (rev 233) +++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-03-05 14:20:57 UTC (rev 234) @@ -61,7 +61,7 @@ # Set up the user interface from Designer. self.setupUi(self) - #self.lb_top_image.setPixmap(QtGui.QPixmap(":/resources/moul_logo.png")) + self.lb_top_image.setPixmap(QtGui.QPixmap(":/resources/moul_logo.png")) self.tabWidget.setCurrentIndex(0) self.tab_sub_settings.setCurrentIndex(0) self.tabwidget_about.setCurrentIndex(0) Added: pymoul/trunk/test.bat =================================================================== --- pymoul/trunk/test.bat (rev 0) +++ pymoul/trunk/test.bat 2007-03-05 14:20:57 UTC (rev 234) @@ -0,0 +1,6 @@ +@echo off +cls +set PYTHONPATH=src +python setup.py build_ext -i -c mingw32 +python utilities\compileui.py src\moul\qt +python test.py \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-08 02:42:58
|
Revision: 242 http://pymoul.svn.sourceforge.net/pymoul/?rev=242&view=rev Author: tiran Date: 2007-03-07 18:42:59 -0800 (Wed, 07 Mar 2007) Log Message: ----------- Changed status to beta Added modules for pod age and eder gira Modified Paths: -------------- pymoul/trunk/setup.py Added Paths: ----------- pymoul/trunk/src/moul/time/edergira.py pymoul/trunk/src/moul/time/podage.py pymoul/trunk/src/moul/time/tests/test_podage.py Modified: pymoul/trunk/setup.py =================================================================== --- pymoul/trunk/setup.py 2007-03-08 02:28:11 UTC (rev 241) +++ pymoul/trunk/setup.py 2007-03-08 02:42:59 UTC (rev 242) @@ -49,8 +49,7 @@ license = "GPL", keywords = "myst online uru live moul cyan", classifiers = ( - 'Development Status :: 1 - Planning', - 'Environment :: Console', + 'Development Status :: 2 - Alpha', 'Environment :: Win32 (MS Windows)', 'Intended Audience :: End Users/Desktop', 'Intended Audience :: Developers', @@ -114,3 +113,4 @@ kwargs['packages'].append('moul.qt') setup(**kwargs) + Added: pymoul/trunk/src/moul/time/edergira.py =================================================================== --- pymoul/trunk/src/moul/time/edergira.py (rev 0) +++ pymoul/trunk/src/moul/time/edergira.py 2007-03-08 02:42:59 UTC (rev 242) @@ -0,0 +1,41 @@ +# pyMoul - Python interface to Myst Online URU Live +# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +"""pyMoul Ede Gira day cycle + +Based on BrettM's information +""" +__author__ = "Christian Heimes" +__version__ = "$Id" +__revision__ = "$Revision" + + +from datetime import datetime +from datetime import timedelta + +from moul.time.utils import UTC +from moul.time.utils import td2sec +from moul.time.utils import utcnow + +delta = timedelta(days=0, hours=10, minutes=0) # 10h +base_dt = datetime(2007, 3, 8, 9, 15, 0) # noon + +class EderGiraDay(object): + """Eder Gira day cycle class + """ + def __init__(self): + pass Property changes on: pymoul/trunk/src/moul/time/edergira.py ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native Added: pymoul/trunk/src/moul/time/podage.py =================================================================== --- pymoul/trunk/src/moul/time/podage.py (rev 0) +++ pymoul/trunk/src/moul/time/podage.py 2007-03-08 02:42:59 UTC (rev 242) @@ -0,0 +1,181 @@ +# pyMoul - Python interface to Myst Online URU Live +# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +"""pyMoul Pod age time + +>>> pod18.gatenumber +18 +>>> getPodAge('Negilahn') is pod18 +True +>>> getPodAgeByNumber(18) is pod18 +True + +>>> padneg = PodAgeTime('Negilahn') +>>> for n, dt in iter(padneg): +... if n > 20: +... break + +>>> isinstance(padneg.get(), datetime) +True + +""" +__author__ = "Christian Heimes" +__version__ = "$Id" +__revision__ = "$Revision" + + +import os +import sys +from datetime import datetime +from datetime import timedelta +from math import floor +from time import mktime + +from moul.time.utils import UTC +from moul.time.utils import td2sec +from moul.time.utils import utcnow + +class PodAgeRegistry(dict): + """Registry for pod ages + """ + __slots__ = ('_bynumber',) + + def __new__(cls, **kw): + self = dict.__new__(cls, **kw) + self._bynumber = {} + return self + + def __setitem__(self, key, item): + if not isinstance(item, PodAgeInformation): + raise TypeError(item) + self._bynumber[item.gatenumber] = item + return dict.__setitem__(self, key, item) + + def __delitem__(self, key): + item = self[key] + del self._bynumber[item.gatenumber] + return dict.__delitem__(self, key) + + def register(self, pod): + self[pod.name] = pod + + def listNumbers(self): + return self._bynumber.keys() + + def byNumber(self, nr): + return self._bynumber[nr] + +_podRegistry = PodAgeRegistry() +getPodAge = _podRegistry.get +getPodAgeByNumber = _podRegistry.byNumber +registerPodAge = _podRegistry.register + +def listPodAges(): + return [name for name in _podRegistry if name] + +class PodAgeInformation(dict): + """Information about a pod age + """ + __slots__ = () + + def __init__(self, __registry=_podRegistry, **kw): + super(PodAgeInformation, self).__init__(**kw) + self['daycycle'] = timedelta(days=0, hours=15, minutes=43) + self['daycycle_sec'] = td2sec(self['daycycle']) + for key in ('name', 'gatenumber'): + if key not in self: + raise KeyError(key) + __registry.register(self) + + def __getattribute__(self, name): + if name in self: + return self[name] + else: + dict.__getattribute__(self, name) + +class PodAgeTime(object): + """A pod age day cycle and gate event timer + """ + def __init__(self, name): + """ + @param name: Registered name of a pod age + @type name: str + """ + if isinstance(name, basestring): + age = getPodAge(name) + elif isinstance(name, int): + age = getPodAgeByNumber(name) + else: + raise TypeError(name) + if age is None: + raise ValueError("Unknown age: %s" % name) + self._age = age + self._name = age.name + self.setStart() + + def setStart(self, startdt=None): + """Set start date from when the calculations are started + + Internally the date of the last cycle is stored + + @param startdt: date to start counting (None: now) + @type startdt: datetime instance or None + @return: None + """ + if startdt is None: + startdt = utcnow() + # calculate completed cycles since base_dt + sec = td2sec(startdt - self._age.base_dt) + cycles = floor(sec / self._age.daycycle_sec) + delta = int(cycles) * self._age.daycycle + self._base = self._age.base_dt + delta + + def get(self, count=1): + """Get date by count + + @param count: number of cycles from start date + @type count: int + @return: date and time of next event + @rtype: datetime instance + """ + delta = count * self._age.daycycle + return self._base + delta + + def __iter__(self): + """Iterate through events + + @return: Iterator that yields (number, date) + @rtype: iterator (int, datetime) + """ + delta = self._age.daycycle + dt = self._base + delta + n = 0 + while True: + yield (n, dt) + dt += delta + n += 1 + +# pod ages +pod18 = PodAgeInformation(name = 'Negilahn', gatenumber = 18, + base_dt = datetime(2007, 3, 4, 10, 16, 0, tzinfo=UTC)) + +if __name__ == '__main__': + padneg = PodAgeTime('Negilahn') + for n, dt in iter(padneg): + print n, dt + if n > 20: + break Property changes on: pymoul/trunk/src/moul/time/podage.py ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native Added: pymoul/trunk/src/moul/time/tests/test_podage.py =================================================================== --- pymoul/trunk/src/moul/time/tests/test_podage.py (rev 0) +++ pymoul/trunk/src/moul/time/tests/test_podage.py 2007-03-08 02:42:59 UTC (rev 242) @@ -0,0 +1,37 @@ +# pyMoul - Python interface to Myst Online URU Live +# Copyright (C) 2007 Christian Heimes <christian (at) cheimes (dot) de> + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +"""moul.time.podage unit tests +""" +__author__ = "Christian Heimes" +__version__ = "$Id: test_dni.py 122 2007-02-02 17:34:06Z tiran $" +__revision__ = "$Revision: 122 $" + +import os +import unittest +from doctest import DocTestSuite + +import moul.time.podage + + +def test_suite(): + return unittest.TestSuite(( + DocTestSuite('moul.time.podage'), + )) + +if __name__ == '__main__': + unittest.main(defaultTest="test_suite") Property changes on: pymoul/trunk/src/moul/time/tests/test_podage.py ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-09 16:20:36
|
Revision: 245 http://pymoul.svn.sourceforge.net/pymoul/?rev=245&view=rev Author: tiran Date: 2007-03-09 08:20:35 -0800 (Fri, 09 Mar 2007) Log Message: ----------- Added tabs for eder gira and pod ages updated translations updated XXX report svn propset Modified Paths: -------------- pymoul/trunk/doc/XXXreport.html pymoul/trunk/src/moul/qt/i18n/pymoul_de.qm pymoul/trunk/src/moul/qt/i18n/pymoul_de.ts pymoul/trunk/src/moul/qt/i18n/pymoul_es.ts pymoul/trunk/src/moul/qt/i18n/pymoul_fr.ts pymoul/trunk/src/moul/qt/i18n/pymoul_it.ts pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts pymoul/trunk/src/moul/qt/ui/mainwindow.py pymoul/trunk/src/moul/qt/ui/mainwindow.ui pymoul/trunk/src/moul/time/edergira.py pymoul/trunk/src/moul/time/tests/test_edergira.py pymoul/trunk/src/moul/time/tests/test_podage.py Property Changed: ---------------- pymoul/trunk/src/moul/time/edergira.py pymoul/trunk/src/moul/time/podage.py pymoul/trunk/src/moul/time/tests/test_edergira.py pymoul/trunk/src/moul/time/tests/test_podage.py Modified: pymoul/trunk/doc/XXXreport.html =================================================================== --- pymoul/trunk/doc/XXXreport.html 2007-03-08 20:02:56 UTC (rev 244) +++ pymoul/trunk/doc/XXXreport.html 2007-03-09 16:20:35 UTC (rev 245) @@ -3,11 +3,11 @@ <body> <h1>pyMoul - Developer report tools: XXX/TODO/FIXME comments</h1> -<p>Generated on Tue, 13 Feb 2007 20:37:41 CET, based on Zope 3's XXX report</p> +<p>Generated on Fri, 09 Mar 2007 17:18:53 CET, based on Zope 3's XXX report</p> <hr> <h3>Summary</h3> <p> - There are currently 133 XXX/TODO/FIXME comments. + There are currently 92 XXX/TODO/FIXME comments. </p> <hr/> <h3>Listing</h3> @@ -47,14 +47,14 @@ base-158- pass base-159- base-160-class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-555- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-556- # microphon missing -> OS mixer -base-557- } -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-643- -base-644-class GraphicsIni(ConfFile): -base-645- _filename = 'graphics.ini' +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:556</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +base-557- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui +base-558- # microphon missing -> OS mixer +base-559- } +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:644</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +base-645- +base-646-class GraphicsIni(ConfFile): +base-647- _filename = 'graphics.ini' </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch base-60- return len([name for name in os.listdir(path) base-61- if os.path.isfile(os.path.join(path, name))]) @@ -68,7 +68,7 @@ base-116-class AudioIniTest(GenericIniTest): base-117- enc = aud_enc </pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:152</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-153- +base-153- base-154- p.screenres = 0 base-155- eq(p._get('Graphics.Width'), 800) </pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 @@ -84,19 +84,7 @@ class AudioIniTest(GenericIniTest): enc = aud_enc </pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:152</b><br/><pre> #XXX self.failIf(p.isChanged()) - - p.screenres = 0 - eq(p._get('Graphics.Width'), 800) -</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:105</b><br/><pre> # TODO: more - def test_publicapi_create(self): - inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:116</b><br/><pre> # TODO: more - -class AudioIniTest(GenericIniTest): - enc = aud_enc -</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:154</b><br/><pre> #XXX self.failIf(p.isChanged()) - p.screenres = 0 eq(p._get('Graphics.Width'), 800) </pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 @@ -123,58 +111,26 @@ pass class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:556</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui # microphon missing -> OS mixer } -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:644</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. class GraphicsIni(ConfFile): _filename = 'graphics.ini' -</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct - if header is None: - fd = self._fd - fd.seek(0) -</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct - if size is None: - size = self.getFileSize() - leading = 4* [None] -</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! - if not os.path.isfile(fixed): - self._tocheck.append((ki, fixed)) - else: -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me - pass - -class Constrain(object): -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check - 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui - # microphon missing -> OS mixer - } -</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. - -class GraphicsIni(ConfFile): - _filename = 'graphics.ini' -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content - if not os.path.isdir(self._archivedir): - LOG.warning("%s is not a directory" % self._archivedir) - return </pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch return len([name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name))]) -</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch - return len([name for name in os.listdir(path) - if os.path.isfile(os.path.join(path, name))]) - -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:76</b><br/><pre> # XXX: dos format -base-77- return data.replace("\r\n", "\n") -base-78- -base-79-def encryptWDYS(instr, fout): -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:86</b><br/><pre> # XXX: dos format -base-87- instr = instr.replace("\n", "\r\n") -base-88- fout.seek(0) -base-89- fout.write(HEADER) +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:74</b><br/><pre> # XXX: dos format +base-75- return data.replace("\r\n", "\n") +base-76- +base-77-def encryptWDYS(instr, fout): +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:84</b><br/><pre> # XXX: dos format +base-85- instr = instr.replace("\n", "\r\n") +base-86- fout.seek(0) +base-87- fout.write(HEADER) </pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:28</b><br/><pre># TODO: use BinaryFile base-29- base-30-def list2int(lst): @@ -183,49 +139,26 @@ base-73- raise NotImplementedError base-74- base-75-def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:293</b><br/><pre> if size > 1024: # XXX: ??? -base-294- raise ValueError("string is too long: %i" % size) -base-295- if self.version == 5: -base-296- size |= 0xF000 -</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:315</b><br/><pre> if size > 1024: # XXX: ??? -base-316- raise ValueError("size '%i' > 1024 at position %s(%s)" % -base-317- (size, fd.tell(), repr(fd))) -base-318- if self.version == 5: -base:319: # XXX: testme -base-320- # read data as tuple of integeres -base-321- data = fd.readPacked("<%iI" % size) -base-322- # OR integers with 0xff and write their char equivalent to string -</pre></li><li><b>File: utilities/../src/moul/crypt/tests/.svn/text-base/test_binary.py.svn-base:98</b><br/><pre> # XXX: no test data -base-99- pass -base-100- -base-101- def test_string0(self): -</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py:98</b><br/><pre> # XXX: no test data - pass - - def test_string0(self): -</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py~:98</b><br/><pre> # XXX: no test data - pass - - def test_string0(self): -</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:76</b><br/><pre> # XXX: dos format +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:82</b><br/><pre> if size > 1024: # XXX: ??? +base-83- raise ValueError("string is too long: %i" % size) +base-84- if self.version == 5: +base-85- size |= 0xF000 +</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:104</b><br/><pre> if size > 1024: # XXX: ??? +base-105- raise ValueError("size '%i' > 1024 at position %s(%s)" % +base-106- (size, fd.tell(), repr(fd))) +base-107- if self.version == 5: +base:108: # XXX: testme +base-109- # read data as tuple of integeres +base-110- data = fd.readPacked("<%iI" % size) +base-111- # OR integers with 0xff and write their char equivalent to string +</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:74</b><br/><pre> # XXX: dos format return data.replace("\r\n", "\n") def encryptWDYS(instr, fout): -</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:86</b><br/><pre> # XXX: dos format +</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:84</b><br/><pre> # XXX: dos format instr = instr.replace("\n", "\r\n") fout.seek(0) fout.write(HEADER) -</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:293</b><br/><pre> if size > 1024: # XXX: ??? - raise ValueError("string is too long: %i" % size) - if self.version == 5: - size |= 0xF000 -</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:315</b><br/><pre> if size > 1024: # XXX: ??? - raise ValueError("size '%i' > 1024 at position %s(%s)" % - (size, fd.tell(), repr(fd))) - if self.version == 5: - # read data as tuple of integeres - data = fd.readPacked("<%iI" % size) - # OR integers with 0xff and write their char equivalent to string </pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:28</b><br/><pre># TODO: use BinaryFile def list2int(lst): @@ -234,105 +167,97 @@ raise NotImplementedError def decipher(crypt, size, key): -</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:293</b><br/><pre> if size > 1024: # XXX: ??? +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:82</b><br/><pre> if size > 1024: # XXX: ??? raise ValueError("string is too long: %i" % size) if self.version == 5: size |= 0xF000 -</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:315</b><br/><pre> if size > 1024: # XXX: ??? +</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:104</b><br/><pre> if size > 1024: # XXX: ??? raise ValueError("size '%i' > 1024 at position %s(%s)" % (size, fd.tell(), repr(fd))) if self.version == 5: # read data as tuple of integeres data = fd.readPacked("<%iI" % size) # OR integers with 0xff and write their char equivalent to string -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:154</b><br/><pre> # FIXME: signal doesn't do anything -base-155- self.emit(SIGNAL("close()")) -base-156- event.accept() -base-157- event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-294- del self._kiimage_progressbar -base-295- self.pb_kiimage_repair.setEnabled(True) -base-296- mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:392</b><br/><pre> # TODO: change timer from every second to every minute -base-393- self._timezone_timer = QtCore.QTimer(self) -base-394- self._timezone_timer.setInterval(1000) # 1 sec -base:395: # TODO: needs optimization? run only when timer tab is active -base-396- self.connect(self._timezone_timer, SIGNAL('timeout()'), -base-397- self.on_timezone_timer_timeout) -base-398- self._timezone_timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:507</b><br/><pre> # TODO: thread safety! -base-508- self.servers = servers -base-509- if not self.isRunning(): -base-510- self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:513</b><br/><pre> # TODO: thread safety! -base-514- # emit a list of names first -base-515- for server in self.servers: -base-516- self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:551</b><br/><pre> # TODO check this -base-552- self._running = False -base-553- self.condition.wakeAll() -base-554- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:150</b><br/><pre> # FIXME: signal doesn't do anything +base-151- self.emit(SIGNAL("close()")) +base-152- event.accept() +base-153- event.ignore() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:289</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +base-290- del self._kiimage_progressbar +base-291- self.pb_kiimage_repair.setEnabled(True) +base-292- mb = qtutils.infoMB(self, +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:478</b><br/><pre> # TODO: thread safety! +base-479- self.servers = servers +base-480- if not self.isRunning(): +base-481- self.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO: thread safety! +base-485- # emit a list of names first +base-486- for i, server in enumerate(self.servers): +base-487- self.emit(SIGNAL("server(int, const QString&)"), i, server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:522</b><br/><pre> # TODO check this +base-523- self._running = False +base-524- self.condition.wakeAll() +base-525- </pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) base-47- if getattr(sys, 'frozen', False): base-48- try: -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:154</b><br/><pre> # FIXME: signal doesn't do anything +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:74</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth +base-75- #fself.dnitime_timer.setCallable(self.clockscene.timeEvent) +base-76- +base-77- # time zone +base:78: # TODO: change timer from every second to once a minute? +base-79- self.timezone_timer = QtCore.QTimer(self.context) +base-80- self.timezone_timer.setInterval(1000) # 1 sec +base-81- ct = self.caverntime.info() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:101</b><br/><pre> # TODO: needs optimization? run only when timer tab is active +base-102- for name in ('sb_hahr', 'sb_yahr', 'sb_gahrtahvo', +base-103- 'sb_tahvo', 'sb_gorahn', 'sb_prorahn'): +base-104- self.connect(getattr(self, name), SIGNAL("valueChanged(int)"), +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:576</b><br/><pre> # XXX: parent? +base-577- #self.clocktext = QtGui.QGraphicsTextItem(None, self) +base-578- #self.clocktext.setPos(0, yoff+2*height+2*space) +base-579- # circular day clock +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:150</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:289</b><br/><pre> del self._kiimage_threadlet# TODO: other message box del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:392</b><br/><pre> # TODO: change timer from every second to every minute - self._timezone_timer = QtCore.QTimer(self) - self._timezone_timer.setInterval(1000) # 1 sec - self.connect(self._timezone_timer, SIGNAL('timeout()'), - self.on_timezone_timer_timeout) - self._timezone_timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:507</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:478</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:513</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:484</b><br/><pre> # TODO: thread safety! # emit a list of names first - for server in self.servers: - self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:551</b><br/><pre> # TODO check this + for i, server in enumerate(self.servers): + self.emit(SIGNAL("server(int, const QString&)"), i, server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:522</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:154</b><br/><pre> # FIXME: signal doesn't do anything - self.emit(SIGNAL("close()")) - event.accept() - event.ignore() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box - del self._kiimage_progressbar - self.pb_kiimage_repair.setEnabled(True) - mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:392</b><br/><pre> # TODO: change timer from every second to every minute - self._timezone_timer = QtCore.QTimer(self) - self._timezone_timer.setInterval(1000) # 1 sec - self.connect(self._timezone_timer, SIGNAL('timeout()'), - self.on_timezone_timer_timeout) - self._timezone_timer.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:507</b><br/><pre> # TODO: thread safety! - self.servers = servers - if not self.isRunning(): - self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:513</b><br/><pre> # TODO: thread safety! - # emit a list of names first - for server in self.servers: - self.emit(SIGNAL("server(const QString&)"), server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:551</b><br/><pre> # TODO check this - self._running = False - self.condition.wakeAll() - </pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) if getattr(sys, 'frozen', False): try: -</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:74</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth + #fself.dnitime_timer.setCallable(self.clockscene.timeEvent) + + # time zone + self.timezone_timer = QtCore.QTimer(self.context) + self.timezone_timer.setInterval(1000) # 1 sec + ct = self.caverntime.info() +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:101</b><br/><pre> # TODO: needs optimization? run only when timer tab is active + for name in ('sb_hahr', 'sb_yahr', 'sb_gahrtahvo', + 'sb_tahvo', 'sb_gorahn', 'sb_prorahn'): + self.connect(getattr(self, name), SIGNAL("valueChanged(int)"), +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:576</b><br/><pre> # XXX: parent? + #self.clocktext = QtGui.QGraphicsTextItem(None, self) + #self.clocktext.setPos(0, yoff+2*height+2*space) + # circular day clock +</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:126</b><br/><pre># XXX: what about cygwin, bsd and others? _thismodule = sys.modules[__name__] if __WIN32__: from moul.osdependent import win32 as osdep_win32 @@ -344,14 +269,18 @@ base-38-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" base-39-LOCATIONS = [ base-40- "/Applications", -</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/__init__.py~:37</b><br/><pre>EXEC_NAME = "???" # XXX -UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" -LOCATIONS = [ - "/Applications", -</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:120</b><br/><pre># XXX: what about cygwin, bsd and others? -base-121-_thismodule = sys.modules[__name__] -base-122-if __WIN32__: -base-123- from moul.osdependent import win32 as osdep_win32 +</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:126</b><br/><pre># XXX: what about cygwin, bsd and others? +base-127-_thismodule = sys.modules[__name__] +base-128-if __WIN32__: +base-129- from moul.osdependent import win32 as osdep_win32 +</pre></li><li><b>File: utilities/../src/binaryfile/.svn/text-base/tests.py.svn-base:107</b><br/><pre> # XXX: no test data +base-108- pass +base-109- +base-110- def test_string0(self): +</pre></li><li><b>File: utilities/../src/binaryfile/tests.py:107</b><br/><pre> # XXX: no test data + pass + + def test_string0(self): </pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are base-15-base-549- # separated by a horizontal dash line. Only the first one of base-16-base-550- # them is now colorized properly. @@ -404,14 +333,14 @@ base-63-base-106- base-64-base-107- def test_publicapi_create(self): base-65-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:66:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-67-base-117- -base-68-base-118-class AudioIniTest(GenericIniTest): -base-69-base-119- enc = aud_enc -base:70:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-71-base-155- -base-72-base-156- p.screenres = 0 -base-73-base-157- eq(p._get('Graphics.Width'), 800) +base:66:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:114</b><br/><pre> # TODO: more +base-67-base-115- +base-68-base-116-class AudioIniTest(GenericIniTest): +base-69-base-117- enc = aud_enc +base:70:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:152</b><br/><pre> #XXX self.failIf(p.isChanged()) +base-71-base-153- +base-72-base-154- p.screenres = 0 +base-73-base-155- eq(p._get('Graphics.Width'), 800) base:74:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 base-75-base-81- fd = open(os.path.join(path, fname), 'wb') base-76-base-82- fd.write('dummy') @@ -420,1386 +349,1913 @@ base-79- base-80- def test_publicapi_create(self): base-81- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:82:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more +base:82:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:114</b><br/><pre> # TODO: more base-83- base-84-class AudioIniTest(GenericIniTest): base-85- enc = aud_enc -base:86:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) +base:86:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:152</b><br/><pre> #XXX self.failIf(p.isChanged()) base-87- base-88- p.screenres = 0 base-89- eq(p._get('Graphics.Width'), 800) -base:90:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-91- fd = open(os.path.join(path, fname), 'wb') -base-92- fd.write('dummy') -base-93- fd.close() -base:94:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-95- if not os.path.isdir(self._archivedir): -base-96- LOG.warning("%s is not a directory" % self._archivedir) -base-97- return -base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-99- if header is None: -base-100- fd = self._fd -base-101- fd.seek(0) -base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-103- if size is None: -base-104- size = self.getFileSize() -base-105- leading = 4* [None] -base:106:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-107- if not os.path.isfile(fixed): -base-108- self._tocheck.append((ki, fixed)) -base-109- continue -base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-111- pass -base-112- -base-113-class Constrain(object): -base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-115- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-116- # microphon missing -> OS mixer -base-117- } -base:118:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-119- -base-120-class GraphicsIni(ConfFile): -base-121- _filename = 'graphics.ini' -base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-123- if header is None: -base-124- fd = self._fd -base-125- fd.seek(0) -base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-127- if size is None: -base-128- size = self.getFileSize() -base-129- leading = 4* [None] -base:130:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-131- if not os.path.isfile(fixed): -base-132- self._tocheck.append((ki, fixed)) -base-133- else: -base:134:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me -base-135- pass -base-136- -base-137-class Constrain(object): -base:138:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-139- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-140- # microphon missing -> OS mixer -base-141- } -base:142:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-143- -base-144-class GraphicsIni(ConfFile): -base-145- _filename = 'graphics.ini' -base:146:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-147- if not os.path.isdir(self._archivedir): -base-148- LOG.warning("%s is not a directory" % self._archivedir) -base-149- return -base:150:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-151- return len([name for name in os.listdir(path) -base-152- if os.path.isfile(os.path.join(path, name))]) -base-153- -base:154:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-155- return len([name for name in os.listdir(path) -base-156- if os.path.isfile(os.path.join(path, name))]) -base-157- -base:158:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-159-base-78- return data.replace("\r\n", "\n") -base-160-base-79- -base-161-base-80-def encryptWDYS(instr, fout): -base:162:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-163-base-88- instr = instr.replace("\n", "\r\n") -base-164-base-89- fout.seek(0) -base-165-base-90- fout.write(HEADER) -base:166:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-167-base-72- raise NotImplementedError -base-168-base-73- -base-169-base-74-def decipher(crypt, size, key): -base:170:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format -base-171- return data.replace("\r\n", "\n") -base-172- -base-173-def encryptWDYS(instr, fout): -base:174:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format -base-175- instr = instr.replace("\n", "\r\n") -base-176- fout.seek(0) -base-177- fout.write(HEADER) -base:178:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented -base-179- raise NotImplementedError -base-180- -base-181-def decipher(crypt, size, key): -base:182:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything -base-183-base-153- self.emit(SIGNAL("close()")) -base-184-base-154- event.accept() -base-185-base-155- event.ignore() -base:186:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-187-base-292- del self._kiimage_progressbar -base-188-base-293- self.pb_kiimage_repair.setEnabled(True) -base-189-base-294- mb = qtutils.infoMB(self, -base:190:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:390</b><br/><pre> # TODO: change timer from every second to every minute -base-191-base-391- self._timezone_timer = timer = QtCore.QTimer(self) -base-192-base-392- timer.setInterval(1000) # 1 sec -base:193:base:393: # TODO: needs optimization? run only when timer tab is active -base-194-base-394- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-195-base-395- timer.start() -base-196-base-396- -base:197:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:487</b><br/><pre> # TODO: thread safety! -base-198-base-488- self.servers = servers -base-199-base-489- if not self.isRunning(): -base-200-base-490- self.start() -base:201:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:493</b><br/><pre> # TODO: thread safety! -base-202-base-494- # emit a list of names first -base-203-base-495- for server in self.servers: -base-204-base-496- self.emit(SIGNAL("server(const QString&)"), server.name) -base:205:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:531</b><br/><pre> # TODO check this -base-206-base-532- self._running = False -base-207-base-533- self.condition.wakeAll() -base-208-base-534- -base:209:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware -base-210-base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-211-base-47- if getattr(sys, 'frozen', False): -base-212-base-48- try: -base:213:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:151</b><br/><pre> # FIXME: signal doesn't do anything -base-214- self.emit(SIGNAL("close()")) -base-215- event.accept() -base-216- event.ignore() -base:217:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:290</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-218- del self._kiimage_progressbar -base-219- self.pb_kiimage_repair.setEnabled(True) -base-220- mb = qtutils.infoMB(self, -base:221:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:389</b><br/><pre> # TODO: change timer from every second to every minute -base-222- self._timezone_timer = timer = QtCore.QTimer(self) -base-223- timer.setInterval(1000) # 1 sec -base-224- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:227</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:486</b><br/><pre> # TODO: thread safety! -base-228- self.servers = servers -base-229- if not self.isRunning(): -base-230- self.start() -base:231:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:492</b><br/><pre> # TODO: thread safety! -base-232- # emit a list of names first -base-233- for server in self.servers: -base-234- self.emit(SIGNAL("server(const QString&)"), server.name) -base:235:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:530</b><br/><pre> # TODO check this -base-236- self._running = False -base-237- self.condition.wakeAll() -base-238- -base:239:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:152</b><br/><pre> # FIXME: signal doesn't do anything -base-240- self.emit(SIGNAL("close()")) -base-241- event.accept() -base-242- event.ignore() -base:243:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-244- del self._kiimage_progressbar -base-245- self.pb_kiimage_repair.setEnabled(True) -base-246- mb = qtutils.infoMB(self, -base:247:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:390</b><br/><pre> # TODO: change timer from every second to every minute -base-248- self._timezone_timer = timer = QtCore.QTimer(self) -base-249- timer.setInterval(1000) # 1 sec -base-250- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:253</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:487</b><br/><pre> # TODO: thread safety! -base-254- self.servers = servers -base-255- if not self.isRunning(): -base-256- self.start() -base:257:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:493</b><br/><pre> # TODO: thread safety! -base-258- # emit a list of names first -base-259- for server in self.servers: -base-260- self.emit(SIGNAL("server(const QString&)"), server.name) -base:261:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:531</b><br/><pre> # TODO check this -base-262- self._running = False -base-263- self.condition.wakeAll() -base-264- -base:265:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware -base-266- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-267- if getattr(sys, 'frozen', False): -base-268- try: -base:269:</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? -base-270-_thismodule = sys.modules[__name__] -base-271-if __WIN32__: -base-272- from moul.osdependent import win32 as osdep_win32 -base:273:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:120</b><br/><pre># XXX: what about cygwin, bsd and others? -base-274-base-121-_thismodule = sys.modules[__name__] -base-275-base-122-if __WIN32__: -base-276-base-123- from moul.osdependent import win32 as osdep_win32 -base:277:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-278-base-15-base-549- # separated by a horizontal dash line. Only the first one of -base-279-base-16-base-550- # them is now colorized properly. -base-280-base-17-base-551- header = lines[0] -base:281:base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-282-base-19-base-604- result.append(self.colorize('doctest_got', line)) -base-283-base-20-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-284-base-21-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:285:base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-286-base-23-base-624- # A colorizer for the Python's doctest module would be nice too. -base-287-base-24-base-625- if doctest: -base-288-base-25-base-626- # If we have a doctest, we do not care about this header. All the -base:289:base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable -base-290-base-27-base-691- from zope.tales.tales import TALESTracebackSupplement -base-291-base-28-base-692- from zope.pagetemplate.pagetemplate \ -base-292-base-29-base-693- import PageTemplateTracebackSupplement -base:293:base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-294-base-31-base-209- if not os.path.isdir(self._logdir): -base-295-base-32-base-210- LOG.warning("%s is not a directory" % logdir) -base-296-base-33-base-211- return -base:297:base:34:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-298-base-35-base-113- if header is None: -base-299-base-36-base-114- fd = self._fd -base-300-base-37-base-115- fd.seek(0) -base:301:base:38:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-302-base-39-base-128- if size is None: -base-303-base-40-base-129- size = self.getFileSize() -base-304-base-41-base-130- leading = 4* [None] -base:305:base:42:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-306-base-43-base-268- if not os.path.isfile(fixed): -base-307-base-44-base-269- self._tocheck.append((ki, fixed)) -base-308-base-45-base-270- continue -base:309:base:46:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me -base-310-base-47-base-158- pass -base-311-base-48-base-159- -base-312-base-49-base-160-class Constrain(object): -base:313:base:50:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-314-base-51-base-555- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-315-base-52-base-556- # microphon missing -> OS mixer -base-316-base-53-base-557- } -base:317:base:54:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-318-base-55-base-643- -base-319-base-56-base-644-class GraphicsIni(ConfFile): -base-320-base-57-base-645- _filename = 'graphics.ini' -base:321:base:58:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch -base-322-base-59-base-60- return len([name for name in os.listdir(path) -base-323-base-60-base-61- if os.path.isfile(os.path.join(path, name))]) -base-324-base-61-base-62- -base:325:base:62:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more -base-326-base-63-base-106- -base-327-base-64-base-107- def test_publicapi_create(self): -base-328-base-65-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:329:base:66:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-330-base-67-base-117- -base-331-base-68-base-118-class AudioIniTest(GenericIniTest): -base-332-base-69-base-119- enc = aud_enc -base:333:base:70:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-334-base-71-base-155- -base-335-base-72-base-156- p.screenres = 0 -base-336-base-73-base-157- eq(p._get('Graphics.Width'), 800) -base:337:base:74:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-338-base-75-base-81- fd = open(os.path.join(path, fname), 'wb') -base-339-base-76-base-82- fd.write('dummy') -base-340-base-77-base-83- fd.close() -base:341:base:78:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:105</b><br/><pre> # TODO: more -base-342-base-79- -base-343-base-80- def test_publicapi_create(self): -base-344-base-81- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:345:base:82:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more -base-346-base-83- -base-347-base-84-class AudioIniTest(GenericIniTest): -base-348-base-85- enc = aud_enc -base:349:base:86:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-350-base-87- -base-351-base-88- p.screenres = 0 -base-352-base-89- eq(p._get('Graphics.Width'), 800) -base:353:base:90:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-354-base-91- fd = open(os.path.join(path, fname), 'wb') -base-355-base-92- fd.write('dummy') -base-356-base-93- fd.close() -base:357:base:94:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-358-base-95- if not os.path.isdir(self._logdir): -base-359-base-96- LOG.warning("%s is not a directory" % logdir) -base-360-base-97- return -base:361:base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-362-base-99- if header is None: -base-363-base-100- fd = self._fd -base-364-base-101- fd.seek(0) -base:365:base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-366-base-103- if size is None: -base-367-base-104- size = self.getFileSize() -base-368-base-105- leading = 4* [None] -base:369:base:106:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-370-base-107- if not os.path.isfile(fixed): -base-371-base-108- self._tocheck.append((ki, fixed)) -base-372-base-109- continue -base:373:base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-374-base-111- pass -base-375-base-112- -base-376-base-113-class Constrain(object): -base:377:base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-378-base-115- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-379-base-116- # microphon missing -> OS mixer -base-380-base-117- } -base:381:base:118:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-382-base-119- -base-383-base-120-class GraphicsIni(ConfFile): -base-384-base-121- _filename = 'graphics.ini' -base:385:base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-386-base-123- if header is None: -base-387-base-124- fd = self._fd -base-388-base-125- fd.seek(0) -base:389:base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-390-base-127- if size is None: -base-391-base-128- size = self.getFileSize() -base-392-base-129- leading = 4* [None] -base:393:base:130:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-394-base-131- if not os.path.isfile(fixed): -base-395-base-132- self._tocheck.append((ki, fixed)) -base-396-base-133- else: -base:397:base:134:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me -base-398-base-135- pass -base-399-base-136- -base-400-base-137-class Constrain(object): -base:401:base:138:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-402-base-139- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-403-base-140- # microphon missing -> OS mixer -base-404-base-141- } -base:405:base:142:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-406-base-143- -base-407-base-144-class GraphicsIni(ConfFile): -base-408-base-145- _filename = 'graphics.ini' -base:409:base:146:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:208</b><br/><pre> # TODO: inefficient, compare list with directory content -base-410-base-147- if not os.path.isdir(logdir): -base-411-base-148- LOG.warning("%s is not a directory" % logdir) -base-412-base-149- return -base:413:base:150:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-414-base-151- return len([name for name in os.listdir(path) -base-415-base-152- if os.path.isfile(os.path.join(path, name))]) -base-416-base-153- -base:417:base:154:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-418-base-155- return len([name for name in os.listdir(path) -base-419-base-156- if os.path.isfile(os.path.join(path, name))]) -base-420-base-157- -base:421:base:158:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-422-base-159-base-78- return data.replace("\r\n", "\n") -base-423-base-160-base-79- -base-424-base-161-base-80-def encryptWDYS(instr, fout): -base:425:base:162:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-426-base-163-base-88- instr = instr.replace("\n", "\r\n") -base-427-base-164-base-89- fout.seek(0) -base-428-base-165-base-90- fout.write(HEADER) -base:429:base:166:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-430-base-167-base-72- raise NotImplementedError -base-431-base-168-base-73- -base-432-base-169-base-74-def decipher(crypt, size, key): -base:433:base:170:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format -base-434-base-171- return data.replace("\r\n", "\n") -base-435-base-172- -base-436-base-173-def encryptWDYS(instr, fout): -base:437:base:174:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format -base-438-base-175- instr = instr.replace("\n", "\r\n") -base-439-base-176- fout.seek(0) -base-440-base-177- fout.write(HEADER) -base:441:base:178:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented -base-442-base-179- raise NotImplementedError -base-443-base-180- -base-444-base-181-def decipher(crypt, size, key): -base:445:base:182:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:149</b><br/><pre> # FIXME: signal doesn't do anything -base-446-base-183-base-150- self.emit(SIGNAL("close()")) -base-447-base-184-base-151- event.accept() -base-448-base-185-base-152- event.ignore() -base:449:base:186:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-450-base-187-base-251- del self._kiimage_progressbar -base-451-base-188-base-252- self.pb_kiimage_repair.setEnabled(True) -base-452-base-189-base-253- mb = qtutils.infoMB(self, -base:453:base:190:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:345</b><br/><pre> # TODO: change timer from every second to every minute -base-454-base-191-base-346- self._timezone_timer = timer = QtCore.QTimer(self) -base-455-base-192-base-347- timer.setInterval(1000) # 1 sec -base:456:base:193:base:348: # TODO: needs optimization? run only when timer tab is active -base-457-base-194-base-349- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-458-base-195-base-350- timer.start() -base-459-base-196-base-351- -base:460:base:197:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:442</b><br/><pre> # TODO: thread safety! -base-461-base-198-base-443- self.servers = servers -base-462-base-199-base-444- if not self.isRunning(): -base-463-base-200-base-445- self.start() -base:464:base:201:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:448</b><br/><pre> # TODO: thread safety! -base-465-base-202-base-449- # emit a list of names first -base-466-base-203-base-450- for server in self.servers: -base-467-base-204-base-451- self.emit(SIGNAL("server(const QString&)"), server.name) -base:468:base:205:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO check this -base-469-base-206-base-485- self._running = False -base-470-base-207-base-486- self.condition.wakeAll() -base-471-base-208-base-487- -base:472:base:209:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:46</b><br/><pre> # TODO: translation aware -base-473-base-210-base-47- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-474-base-211-base-48- if not getattr(sys, 'frozen', False): -base-475-base-212-base-49- return -base:476:base:213:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:149</b><br/><pre> # FIXME: signal doesn't do anything -base-477-base-214- self.emit(SIGNAL("close()")) -base-478-base-215- event.accept() -base-479-base-216- event.ignore() -base:480:base:217:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-481-base-218- del self._kiimage_progressbar -base-482-base-219- self.pb_kiimage_repair.setEnabled(True) -base-483-base-220- mb = qtutils.infoMB(self, -base:484:base:221:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:345</b><br/><pre> # TODO: change timer from every second to every minute -base-485-base-222- self._timezone_timer = timer = QtCore.QTimer(self) -base-486-base-223- timer.setInterval(1000) # 1 sec -base-487-base-224- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base:488:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:227</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:442</b><br/><pre> # TODO: thread safety! -base-489-base-228- self.servers = servers -base-490-base-229- if not self.isRunning(): -base-491-base-230- self.start() -base:492:base:231:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:448</b><br/><pre> # TODO: thread safety! -base-493-base-232- # emit a list of names first -base-494-base-233- for server in self.servers: -base-495-base-234- self.emit(SIGNAL("server(const QString&)"), server.name) -base:496:base:235:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:484</b><br/><pre> # TODO check this -base-497-base-236- self._running = False -base-498-base-237- self.condition.wakeAll() -base-499-base-238- -base:500:base:239:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:149</b><br/><pre> # FIXME: signal doesn't do anything -base-501-base-240- self.emit(SIGNAL("close()")) -base-502-base-241- event.accept() -base-503-base-242- event.ignore() -base:504:base:243:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:250</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-505-base-244- del self._kiimage_progressbar -base-506-base-245- self.pb_kiimage_repair.setEnabled(True) -base-507-base-246- mb = qtutils.infoMB(self, -base:508:base:247:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:345</b><br/><pre> # TODO: change timer from every second to every minute -base-509-base-248- self._timezone_timer = timer = QtCore.QTimer(self) -base-510-base-249- timer.setInterval(1000) # 1 sec -base-511-base-250- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base:512:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:253</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:442</b><br/><pre> # TODO: thread safety! -base-513-base-254- self.servers = servers -base-514-base-255- if not self.isRunn... [truncated message content] |
From: <ti...@us...> - 2007-03-10 14:34:31
|
Revision: 246 http://pymoul.svn.sourceforge.net/pymoul/?rev=246&view=rev Author: tiran Date: 2007-03-10 06:34:26 -0800 (Sat, 10 Mar 2007) Log Message: ----------- Added experimental Darwin support to setup Modified Paths: -------------- pymoul/trunk/setup.py Added Paths: ----------- pymoul/trunk/utilities/setup_darwin.py Modified: pymoul/trunk/setup.py =================================================================== --- pymoul/trunk/setup.py 2007-03-09 16:20:35 UTC (rev 245) +++ pymoul/trunk/setup.py 2007-03-10 14:34:26 UTC (rev 246) @@ -104,13 +104,18 @@ kwargs.update(setup_options) # Do some windows stuff -if sys.platform.startswith('win32'): +_plat = sys.platform.startswith +if _plat('win32'): from utilities.setup_win32 import updateSetupOptions from utilities.setup_win32 import updateSetupOptionsQT updateSetupOptions(kwargs) updateSetupOptionsQT(kwargs) -elif sys.platform.startswith('linux2'): +elif _plat('darwin'): + from utilities.setup_darwin import updateSetupOptions + updateSetupOptions(kwargs) +elif _plat('linux2'): kwargs['packages'].append('moul.qt') +else: + raise OSError(sys.platform) setup(**kwargs) - Added: pymoul/trunk/utilities/setup_darwin.py =================================================================== --- pymoul/trunk/utilities/setup_darwin.py (rev 0) +++ pymoul/trunk/utilities/setup_darwin.py 2007-03-10 14:34:26 UTC (rev 246) @@ -0,0 +1,44 @@ +"""Mac OS X helpers for setup.py +""" +__author__ = "Christian Heimes" +__version__ = "$Id: setup_win32.py 143 2007-02-05 16:48:00Z tiran $" +__revision__ = "$Revision: 143 $" + +import os +import sys +from setuptools import find_packages + +try: + import py2app +except ImportError: + print >>sys.stderr, "py2app missing, unable to create app package" +else: + pass + +# PyTz uses some import magic +def findPyTz(): + import pytz + packages = ['pytz.zoneinfo'] + for tz in ('GMT', 'UTC'): + packages.append('pytz.zoneinfo.%s' % tz) + # ('America', 'Canada', 'Etc', 'Europe', 'US'): + for tz in ('US',): + packages.append('pytz.zoneinfo.%s.*' % tz) + return packages +# pytz_dir = os.path.dirname(pytz.__file__) +# if not os.path.isdir(pytz_dir): +# raise ValueError('Install pytz with easy_install -Z pytz') +# packages = find_packages(pytz_dir) +# packages = ['pytz.%s.*' % pack for pack in packages] +# return packages + +def updateSetupOptions(kw): + for req in ("py2app >=0.3.56",): + kw['setup_requires'].append(req) + for req in (): + kw['install_requires'].append(req) + app = kw.setdefault('app', []) + app.append("src/moul/qt/moulqt.py") + kw.setdefault('options', {}) + papp = kw['options'].setdefault('py2app', {}) + papp['argv_emulation'] = True Property changes on: pymoul/trunk/utilities/setup_darwin.py ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-13 15:37:28
|
Revision: 251 http://pymoul.svn.sourceforge.net/pymoul/?rev=251&view=rev Author: tiran Date: 2007-03-13 08:37:27 -0700 (Tue, 13 Mar 2007) Log Message: ----------- Fixes for Mac support compilui fix: prints Nothing to do when all files are up to date Added Windows Quickstart to INSTALL.txt Modified Paths: -------------- pymoul/trunk/INSTALL.txt pymoul/trunk/src/moul/osdependent/darwin/__init__.py pymoul/trunk/src/moul/osdependent/linux/__init__.py pymoul/trunk/utilities/compileui.py Modified: pymoul/trunk/INSTALL.txt =================================================================== --- pymoul/trunk/INSTALL.txt 2007-03-13 15:32:00 UTC (rev 250) +++ pymoul/trunk/INSTALL.txt 2007-03-13 15:37:27 UTC (rev 251) @@ -37,6 +37,21 @@ Windows Installation ==================== +Quick Start +----------- + + * Grap the Qt4.2.2 DLL package from http://sourceforge.net/projects/pymoul + + * Install Python 2.5, MinGW32 and the DLL files according to the INSTALL.txt + + * Install PyQt4 + + * Set PATH and QT4DIR + + * Invoke utilities\ez_setup.py with Python 2.5 + + * Start / Run: easy_install-2.5 -Z pytz + Installation ------------ Modified: pymoul/trunk/src/moul/osdependent/darwin/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/darwin/__init__.py 2007-03-13 15:32:00 UTC (rev 250) +++ pymoul/trunk/src/moul/osdependent/darwin/__init__.py 2007-03-13 15:37:27 UTC (rev 251) @@ -48,20 +48,38 @@ The MOUL data directory contains log files, chatlogs, KI images and many more things. """ - moul_data = os.path.join(HOME, MOUL_DIR) + return os.path.join(HOME, MOUL_DIR) def getPyMoulDataDir(): """Get path to the pyMoul ini directory """ - inidir= os.path.join(HOME, PYMOUL_DIR) - return inidir + return os.path.join(HOME, PYMOUL_DIR) +def getMoulInstallDir(): + """Get path to MOUL install dir + """ + for path in LOCATIONS: + if os.path.isfile(os.path.join(path, EXEC_NAME)): + LOG.info("Uru directory found: %s" % path) + return path + LOG.warning("Uru directory NOT found! Search path was: \n %s" % + repr(LOCATIONS)) + return 'INVALID' + def startMoul(installdir, *args, **kwargs): """Start MOUL - returns a Popen instance - + args are applied to the program while kwargs are applied to subprocess.Popen() """ path = os.path.join(installdir, EXEC_NAME) args = ' '.join(args) return Popen("%s %s" % (path, args), cwd=installdir, **kwargs) + +def isMoulRunning(): + """Test if MOUL or the launcher is running + """ + for pid, name in getPidNames().items(): + if name.lower() in PROCESSES: + return pid + return False Modified: pymoul/trunk/src/moul/osdependent/linux/__init__.py =================================================================== --- pymoul/trunk/src/moul/osdependent/linux/__init__.py 2007-03-13 15:32:00 UTC (rev 250) +++ pymoul/trunk/src/moul/osdependent/linux/__init__.py 2007-03-13 15:37:27 UTC (rev 251) @@ -40,6 +40,7 @@ "/media/d/games/MystOnline", "/usr/local/games/MystOnline" ] +PYMOUL_DIR = '.pymoul' def getMoulUserDataDir(): """Get path of MOUL data directory @@ -52,8 +53,7 @@ def getPyMoulDataDir(): """Get path to the pyMoul ini directory """ - inidir= os.path.join(HOME, '.pymoul') - return inidir + return os.path.join(HOME, PYMOUL_DIR) def getMoulInstallDir(): """Get path to MOUL install dir @@ -68,7 +68,7 @@ def startMoul(installdir, *args, **kwargs): """Start MOUL - returns a Popen instance - + args are applied to the program while kwargs are applied to subprocess.Popen() """ Modified: pymoul/trunk/utilities/compileui.py =================================================================== --- pymoul/trunk/utilities/compileui.py 2007-03-13 15:32:00 UTC (rev 250) +++ pymoul/trunk/utilities/compileui.py 2007-03-13 15:37:27 UTC (rev 251) @@ -118,5 +118,8 @@ print "Searching in %s" % os.path.abspath(sys.argv[1]) pys = compileUi(sys.argv[1]) - print "Python files written:" - print '\n'.join(pys) + if not pys: + print "Nothing to do." + else: + print "Python files written:" + print '\n'.join(pys) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-15 12:56:46
|
Revision: 260 http://pymoul.svn.sourceforge.net/pymoul/?rev=260&view=rev Author: tiran Date: 2007-03-15 05:56:45 -0700 (Thu, 15 Mar 2007) Log Message: ----------- Fixed version requirements for py2app Fixed locking unit tests Modified Paths: -------------- pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py pymoul/trunk/utilities/setup_darwin.py Modified: pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py =================================================================== --- pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py 2007-03-15 08:43:34 UTC (rev 259) +++ pymoul/trunk/src/moul/osdependent/tests/test_singleapp.py 2007-03-15 12:56:45 UTC (rev 260) @@ -89,8 +89,8 @@ stderr=PIPE, shell=True, env=env) popen.wait() self.failUnless(os.path.isfile(self.tmpfile)) - - out = popen.stdout.read() + + out = popen.stdout.read().strip() if os.name == 'nt': self.failUnless(self.tmpfile in out or out == '', out) elif os.name =='posix': @@ -98,11 +98,14 @@ else: raise OSError("unsupported os") - err = popen.stderr.read() + err = popen.stderr.read().strip() if os.name == 'nt': self.failUnless('WindowsError: [Error 13]' in err, err) elif os.name =='posix': - self.failUnless('IOError: [Errno 11]' in err, err) + # Mac: IOError: [Errno 35] Resource temporarily unavailable + # Linux: IOError: [Errno 11] Resource temporarily unavailable + self.failUnless('IOError:' in err, err) + self.failUnless('Resource temporarily unavailable' in err, err) else: raise OSError("unsupported os") Modified: pymoul/trunk/utilities/setup_darwin.py =================================================================== --- pymoul/trunk/utilities/setup_darwin.py 2007-03-15 08:43:34 UTC (rev 259) +++ pymoul/trunk/utilities/setup_darwin.py 2007-03-15 12:56:45 UTC (rev 260) @@ -38,7 +38,7 @@ ) def updateSetupOptions(kw): - for req in ("py2app >=0.3.56",): + for req in ("py2app>=0.3.6",): kw['setup_requires'].append(req) for req in (): kw['install_requires'].append(req) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-19 09:35:01
|
Revision: 265 http://pymoul.svn.sourceforge.net/pymoul/?rev=265&view=rev Author: tiran Date: 2007-03-19 02:19:33 -0700 (Mon, 19 Mar 2007) Log Message: ----------- Fixed unit tests Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/src/moul/time/edergira.py pymoul/trunk/src/moul/time/podage.py Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-03-19 09:10:53 UTC (rev 264) +++ pymoul/trunk/Makefile.in 2007-03-19 09:19:33 UTC (rev 265) @@ -41,7 +41,7 @@ test_build: build PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) -test_inplace: +test_inplace: inplace PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) doc_html: Modified: pymoul/trunk/src/moul/time/edergira.py =================================================================== --- pymoul/trunk/src/moul/time/edergira.py 2007-03-19 09:10:53 UTC (rev 264) +++ pymoul/trunk/src/moul/time/edergira.py 2007-03-19 09:19:33 UTC (rev 265) @@ -35,9 +35,9 @@ <type 'generator'> >>> gen.next() +(0, datetime.datetime(2007, 3, 8, 4, 15, tzinfo=<UTC>), datetime.datetime(2007, 3, 8, 6, 30, tzinfo=<UTC>), datetime.datetime(2007, 3, 8, 11, 30, tzinfo=<UTC>)) +>>> gen.next() (1, datetime.datetime(2007, 3, 8, 14, 15, tzinfo=<UTC>), datetime.datetime(2007, 3, 8, 16, 30, tzinfo=<UTC>), datetime.datetime(2007, 3, 8, 21, 30, tzinfo=<UTC>)) ->>> gen.next() -(2, datetime.datetime(2007, 3, 9, 0, 15, tzinfo=<UTC>), datetime.datetime(2007, 3, 9, 2, 30, tzinfo=<UTC>), datetime.datetime(2007, 3, 9, 7, 30, tzinfo=<UTC>)) """ __author__ = "Christian Heimes" __version__ = "$Id" Modified: pymoul/trunk/src/moul/time/podage.py =================================================================== --- pymoul/trunk/src/moul/time/podage.py 2007-03-19 09:10:53 UTC (rev 264) +++ pymoul/trunk/src/moul/time/podage.py 2007-03-19 09:19:33 UTC (rev 265) @@ -17,12 +17,13 @@ # """pyMoul Pod age time +>>> pod18 = getPodAge('Negilahn') >>> pod18.gatenumber 18 ->>> getPodAge('Negilahn') is pod18 +>>> pod18.name +'Negilahn' +>>> getPodAgeByNumber(18) is pod18 or getPodAgeByNumber(18) True ->>> getPodAgeByNumber(18) is pod18 -True >>> padneg = PodAgeTime('Negilahn') >>> for n, dt in iter(padneg): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-20 17:45:27
|
Revision: 270 http://pymoul.svn.sourceforge.net/pymoul/?rev=270&view=rev Author: tiran Date: 2007-03-20 10:37:52 -0700 (Tue, 20 Mar 2007) Log Message: ----------- Infrastructure update (xxxreport, languages ...) Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/doc/TODO.txt pymoul/trunk/doc/XXXreport.html pymoul/trunk/src/moul/qt/i18n/pymoul_de.ts pymoul/trunk/src/moul/qt/i18n/pymoul_es.ts pymoul/trunk/src/moul/qt/i18n/pymoul_fr.ts pymoul/trunk/src/moul/qt/i18n/pymoul_it.ts pymoul/trunk/src/moul/qt/i18n/pymoul_nl.ts Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-03-20 17:19:45 UTC (rev 269) +++ pymoul/trunk/Makefile.in 2007-03-20 17:37:52 UTC (rev 270) @@ -67,6 +67,7 @@ clean: find . \( -name '*.o' -o -name '*~' -o -name '*.so' -o -name '*.py[cod]' -o -name '*.dll' \) -exec rm -f {} \; rm -rf build + rm -rf doc/html realclean: clean rm -f TAGS @@ -102,3 +103,5 @@ serverlist: PYTHONPATH="src" $(PYTHON) src/moul/server/serverlist.py +infrastructure: clean inplace ui languages xxxreport propset fixlineendings doc_html serverlist + Modified: pymoul/trunk/doc/TODO.txt =================================================================== --- pymoul/trunk/doc/TODO.txt 2007-03-20 17:19:45 UTC (rev 269) +++ pymoul/trunk/doc/TODO.txt 2007-03-20 17:37:52 UTC (rev 270) @@ -12,7 +12,8 @@ * connect QThread.terminate() slots with its parents close/destroy signal handler * clean documents/journal/localization naming - * table model for PING tab + * Redesign mkdir/makedirs of data directory + * show meaningful error message when a directory is missing future ------ Modified: pymoul/trunk/doc/XXXreport.html =================================================================== --- pymoul/trunk/doc/XXXreport.html 2007-03-20 17:19:45 UTC (rev 269) +++ pymoul/trunk/doc/XXXreport.html 2007-03-20 17:37:52 UTC (rev 270) @@ -3,11 +3,11 @@ <body> <h1>pyMoul - Developer report tools: XXX/TODO/FIXME comments</h1> -<p>Generated on Mon, 12 Mar 2007 11:58:47 CET, based on Zope 3's XXX report</p> +<p>Generated on Tue, 20 Mar 2007 18:33:33 CET, based on Zope 3's XXX report</p> <hr> <h3>Summary</h3> <p> - There are currently 88 XXX/TODO/FIXME comments. + There are currently 98 XXX/TODO/FIXME comments. </p> <hr/> <h3>Listing</h3> @@ -27,10 +27,14 @@ base-691- from zope.tales.tales import TALESTracebackSupplement base-692- from zope.pagetemplate.pagetemplate \ base-693- import PageTemplateTracebackSupplement -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-217- if not os.path.isdir(self._archivedir): -base-218- LOG.warning("%s is not a directory" % self._archivedir) -base-219- return +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:106</b><br/><pre> return False # XXX ??? +base-107- return True +base-108- +base-109- def findLogs(self): +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:217</b><br/><pre> # TODO: inefficient, compare list with directory content +base-218- if not os.path.isdir(self._archivedir): +base-219- LOG.warning("%s is not a directory" % self._archivedir) +base-220- return </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct base-113- if header is None: base-114- fd = self._fd @@ -39,10 +43,10 @@ base-128- if size is None: base-129- size = self.getFileSize() base-130- leading = 4* [None] -</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-268- if not os.path.isfile(fixed): -base-269- self._tocheck.append((ki, fixed)) -base-270- continue +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:268</b><br/><pre> # XXX: move checks to copy method! +base-269- if not os.path.isfile(fixed): +base-270- self._tocheck.append((ki, fixed)) +base-271- continue </pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me base-158- pass base-159- @@ -59,6 +63,14 @@ base-60- return len([name for name in os.listdir(path) base-61- if os.path.isfile(os.path.join(path, name))]) base-62- +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:202</b><br/><pre> #os.makedirs(path) # XXX +base-203- return path +base-204- +base-205- def createTree(self): +</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:213</b><br/><pre> raise OSError("Basepath doesn't exist") # XXX +base-214- os.mkdir(self._basepath) +base-215- created.append(self._basepath) +base-216- for key in self._dirmapping: </pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more base-106- base-107- def test_publicapi_create(self): @@ -91,7 +103,11 @@ fd = open(os.path.join(path, fname), 'wb') fd.write('dummy') fd.close() -</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:106</b><br/><pre> return False # XXX ??? + return True + + def findLogs(self): +</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:217</b><br/><pre> # TODO: inefficient, compare list with directory content if not os.path.isdir(self._archivedir): LOG.warning("%s is not a directory" % self._archivedir) return @@ -103,7 +119,7 @@ if size is None: size = self.getFileSize() leading = 4* [None] -</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! +</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:268</b><br/><pre> # XXX: move checks to copy method! if not os.path.isfile(fixed): self._tocheck.append((ki, fixed)) continue @@ -123,6 +139,14 @@ return len([name for name in os.listdir(path) if os.path.isfile(os.path.join(path, name))]) +</pre></li><li><b>File: utilities/../src/moul/file/directory.py:202</b><br/><pre> #os.makedirs(path) # XXX + return path + + def createTree(self): +</pre></li><li><b>File: utilities/../src/moul/file/directory.py:213</b><br/><pre> raise OSError("Basepath doesn't exist") # XXX + os.mkdir(self._basepath) + created.append(self._basepath) + for key in self._dirmapping: </pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:74</b><br/><pre> # XXX: dos format base-75- return data.replace("\r\n", "\n") base-76- @@ -186,38 +210,38 @@ base-290- del self._kiimage_progressbar base-291- self.pb_kiimage_repair.setEnabled(True) base-292- mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:478</b><br/><pre> # TODO: thread safety! -base-479- self.servers = servers -base-480- if not self.isRunning(): -base-481- self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:484</b><br/><pre> # TODO: thread safety! -base-485- # emit a list of names first -base-486- for i, server in enumerate(self.servers): -base-487- self.emit(SIGNAL("server(int, const QString&)"), i, server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:522</b><br/><pre> # TODO check this -base-523- self._running = False -base-524- self.condition.wakeAll() -base-525- +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:477</b><br/><pre> # TODO: thread safety! +base-478- self.servers = servers +base-479- if not self.isRunning(): +base-480- self.start() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:483</b><br/><pre> # TODO: thread safety! +base-484- # emit a list of names first +base-485- for i, server in enumerate(self.servers): +base-486- self.emit(SIGNAL("server(int, const QString&)"), i, server.name) +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:521</b><br/><pre> # TODO check this +base-522- self._running = False +base-523- self.condition.wakeAll() +base-524- </pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) base-47- if getattr(sys, 'frozen', False): base-48- try: -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:74</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth -base-75- #fself.dnitime_timer.setCallable(self.clockscene.timeEvent) -base-76- -base-77- # time zone -base:78: # TODO: change timer from every second to once a minute? -base-79- self.timezone_timer = QtCore.QTimer(self.context) -base-80- self.timezone_timer.setInterval(1000) # 1 sec -base-81- ct = self.caverntime.info() -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:101</b><br/><pre> # TODO: needs optimization? run only when timer tab is active -base-102- for name in ('sb_hahr', 'sb_yahr', 'sb_gahrtahvo', -base-103- 'sb_tahvo', 'sb_gorahn', 'sb_prorahn'): -base-104- self.connect(getattr(self, name), SIGNAL("valueChanged(int)"), -</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:576</b><br/><pre> # XXX: parent? -base-577- #self.clocktext = QtGui.QGraphicsTextItem(None, self) -base-578- #self.clocktext.setPos(0, yoff+2*height+2*space) -base-579- # circular day clock +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:80</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth +base-81- #fself.dnitime_timer.setCallable(self.clockscene.timeEvent) +base-82- +base-83- # time zone +base:84: # TODO: change timer from every second to once a minute? +base-85- self.timezone_timer = QtCore.QTimer(self.context) +base-86- self.timezone_timer.setInterval(1000) # 1 sec +base-87- ct = self.caverntime.info() +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:107</b><br/><pre> # TODO: needs optimization? run only when timer tab is active +base-108- for name in ('sb_hahr', 'sb_yahr', 'sb_gahrtahvo', +base-109- 'sb_tahvo', 'sb_gorahn', 'sb_prorahn'): +base-110- self.connect(getattr(self, name), SIGNAL("valueChanged(int)"), +</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/dninumbers.py.svn-base:679</b><br/><pre> # XXX: parent? +base-680- #self.clocktext = QtGui.QGraphicsTextItem(None, self) +base-681- #self.clocktext.setPos(0, yoff+2*height+2*space) +base-682- # circular day clock </pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:150</b><br/><pre> # FIXME: signal doesn't do anything self.emit(SIGNAL("close()")) event.accept() @@ -226,38 +250,50 @@ del self._kiimage_progressbar self.pb_kiimage_repair.setEnabled(True) mb = qtutils.infoMB(self, -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:478</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:477</b><br/><pre> # TODO: thread safety! self.servers = servers if not self.isRunning(): self.start() -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:484</b><br/><pre> # TODO: thread safety! +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:483</b><br/><pre> # TODO: thread safety! # emit a list of names first for i, server in enumerate(self.servers): self.emit(SIGNAL("server(int, const QString&)"), i, server.name) -</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:522</b><br/><pre> # TODO check this +</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:521</b><br/><pre> # TODO check this self._running = False self.condition.wakeAll() - + </pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) if getattr(sys, 'frozen', False): try: -</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:74</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:80</b><br/><pre> self.dnitime_timer.setInterval(FACTOR_SP*1000.0/1.0) # XXX: smooth #fself.dnitime_timer.setCallable(self.clockscene.timeEvent) # time zone self.timezone_timer = QtCore.QTimer(self.context) self.timezone_timer.setInterval(1000) # 1 sec ct = self.caverntime.info() -</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:101</b><br/><pre> # TODO: needs optimization? run only when timer tab is active +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:107</b><br/><pre> # TODO: needs optimization? run only when timer tab is active for name in ('sb_hahr', 'sb_yahr', 'sb_gahrtahvo', 'sb_tahvo', 'sb_gorahn', 'sb_prorahn'): self.connect(getattr(self, name), SIGNAL("valueChanged(int)"), -</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:576</b><br/><pre> # XXX: parent? +</pre></li><li><b>File: utilities/../src/moul/qt/dninumbers.py:679</b><br/><pre> # XXX: parent? #self.clocktext = QtGui.QGraphicsTextItem(None, self) #self.clocktext.setPos(0, yoff+2*height+2*space) # circular day clock -</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:126</b><br/><pre># XXX: what about cygwin, bsd and others? +</pre></li><li><b>File: utilities/../src/moul/time/.svn/text-base/podage.py.svn-base:62</b><br/><pre># XXX Uru's main game server is off 3min 35sec +base-63-BASE_DT = datetime(2007, 3, 7, 1, 7, 0, tzinfo=UTC) +base-64-#BASE_DT = datetime(2007, 3, 7, 1, 10, 9, tzinfo=UTC) +base-65- +</pre></li><li><b>File: utilities/../src/moul/time/podage.py:62</b><br/><pre># XXX Uru's main game server is off 3min 35sec +BASE_DT = datetime(2007, 3, 7, 1, 7, 0, tzinfo=UTC) +#BASE_DT = datetime(2007, 3, 7, 1, 10, 9, tzinfo=UTC) + +</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:46</b><br/><pre> # XXX: disabled for now + #pkg_resources.require("enumprocess>=0.1.1") + +from enumprocess import getPidNames +</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:127</b><br/><pre># XXX: what about cygwin, bsd and others? _thismodule = sys.modules[__name__] if __WIN32__: from moul.osdependent import win32 as osdep_win32 @@ -269,15 +305,19 @@ base-38-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" base-39-LOCATIONS = [ base-40- "/Applications", -</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:126</b><br/><pre># XXX: what about cygwin, bsd and others? -base-127-_thismodule = sys.modules[__name__] -base-128-if __WIN32__: -base-129- from moul.osdependent import win32 as osdep_win32 -</pre></li><li><b>File: utilities/../src/binaryfile/.svn/text-base/tests.py.svn-base:107</b><br/><pre> # XXX: no test data -base-108- pass -base-109- -base-110- def test_string0(self): -</pre></li><li><b>File: utilities/../src/binaryfile/tests.py:107</b><br/><pre> # XXX: no test data +</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:46</b><br/><pre> # XXX: disabled for now +base-47- #pkg_resources.require("enumprocess>=0.1.1") +base-48- +base-49-from enumprocess import getPidNames +</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:127</b><br/><pre># XXX: what about cygwin, bsd and others? +base-128-_thismodule = sys.modules[__name__] +base-129-if __WIN32__: +base-130- from moul.osdependent import win32 as osdep_win32 +</pre></li><li><b>File: utilities/../src/binaryfile/.svn/text-base/tests.py.svn-base:108</b><br/><pre> # XXX: no test data +base-109- pass +base-110- +base-111- def test_string0(self): +</pre></li><li><b>File: utilities/../src/binaryfile/tests.py:108</b><br/><pre> # XXX: no test data pass def test_string0(self): @@ -581,14 +621,14 @@ base-317-base-47-base-158- pass base-318-base-48-base-159- base-319-base-49-base-160-class Constrain(object): -base:320:base:50:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-321-base-51-base-555- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-322-base-52-base-556- # microphon missing -> OS mixer -base-323-base-53-base-557- } -base:324:base:54:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-325-base-55-base-643- -base-326-base-56-base-644-class GraphicsIni(ConfFile): -base-327-base-57-base-645- _filename = 'graphics.ini' +base:320:base:50:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:556</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check +base-321-base-51-base-557- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui +base-322-base-52-base-558- # microphon missing -> OS mixer +base-323-base-53-base-559- } +base:324:base:54:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:644</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. +base-325-base-55-base-645- +base-326-base-56-base-646-class GraphicsIni(ConfFile): +base-327-base-57-base-647- _filename = 'graphics.ini' base:328:base:58:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch base-329-base-59-base-60- return len([name for name in os.listdir(path) base-330-base-60-base-61- if os.path.isfile(os.path.join(path, name))]) @@ -602,7 +642,7 @@ base-338-base-68-base-116-class AudioIniTest(GenericIniTest): base-339-base-69-base-117- enc = aud_enc base:340:base:70:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:152</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-341-base-71-base-153- +base-341-base-71-base-153- base-342-base-72-base-154- p.screenres = 0 base-343-base-73-base-155- eq(p._get('Graphics.Width'), 800) base:344:base:74:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 @@ -618,1992 +658,2340 @@ base-354-base-84-class AudioIniTest(GenericIniTest): base-355-base-85- enc = aud_enc base:356:base:86:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:152</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-357-base-87- +base-357-base-87- base-358-base-88- p.screenres = 0 base-359-base-89- eq(p._get('Graphics.Width'), 800) -base:360:base:90:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:105</b><br/><pre> # TODO: more -base-361-base-91- -base-362-base-92- def test_publicapi_create(self): -base-363-base-93- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:364:base:94:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:116</b><br/><pre> # TODO: more -base-365-base-95- -base-366-base-96-class AudioIniTest(GenericIniTest): -base-367-base-97- enc = aud_enc -base:368:base:98:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py~:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-369-base-99- -base-370-base-100- p.screenres = 0 -base-371-base-101- eq(p._get('Graphics.Width'), 800) -base:372:base:102:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-373-base-103- fd = open(os.path.join(path, fname), 'wb') -base-374-base-104- fd.write('dummy') -base-375-base-105- fd.close() -base:376:base:106:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-377-base-107- if not os.path.isdir(self._archivedir): -base-378-base-108- LOG.warning("%s is not a directory" % self._archivedir) -base-379-base-109- return -base:380:base:110:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-381-base-111- if header is None: -base-382-base-112- fd = self._fd -base-383-base-113- fd.seek(0) -base:384:base:114:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-385-base-115- if size is None: -base-386-base-116- size = self.getFileSize() -base-387-base-117- leading = 4* [None] -base:388:base:118:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-389-base-119- if not os.path.isfile(fixed): -base-390-base-120- self._tocheck.append((ki, fixed)) -base-391-base-121- continue -base:392:base:122:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-393-base-123- pass -base-394-base-124- -base-395-base-125-class Constrain(object): -base:396:base:126:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-397-base-127- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-398-base-128- # microphon missing -> OS mixer -base-399-base-129- } -base:400:base:130:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-401-base-131- -base-402-base-132-class GraphicsIni(ConfFile): -base-403-base-133- _filename = 'graphics.ini' -base:404:base:134:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-405-base-135- if header is None: -base-406-base-136- fd = self._fd -base-407-base-137- fd.seek(0) -base:408:base:138:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-409-base-139- if size is None: -base-410-base-140- size = self.getFileSize() -base-411-base-141- leading = 4* [None] -base:412:base:142:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-413-base-143- if not os.path.isfile(fixed): -base-414-base-144- self._tocheck.append((ki, fixed)) -base-415-base-145- else: -base:416:base:146:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me -base-417-base-147- pass -base-418-base-148- -base-419-base-149-class Constrain(object): -base:420:base:150:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-421-base-151- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-422-base-152- # microphon missing -> OS mixer -base-423-base-153- } -base:424:base:154:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-425-base-155- -base-426-base-156-class GraphicsIni(ConfFile): -base-427-base-157- _filename = 'graphics.ini' -base:428:base:158:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-429-base-159- if not os.path.isdir(self._archivedir): -base-430-base-160- LOG.warning("%s is not a directory" % self._archivedir) -base-431-base-161- return -base:432:base:162:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-433-base-163- return len([name for name in os.listdir(path) -base-434-base-164- if os.path.isfile(os.path.join(path, name))]) -base-435-base-165- -base:436:base:166:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-437-base-167- return len([name for name in os.listdir(path) -base-438-base-168- if os.path.isfile(os.path.join(path, name))]) -base-439-base-169- -base:440:base:170:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:76</b><br/><pre> # XXX: dos format -base-441-base-171-base-77- return data.replace("\r\n", "\n") -base-442-base-172-base-78- -base-443-base-173-base-79-def encryptWDYS(instr, fout): -base:444:base:174:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:86</b><br/><pre> # XXX: dos format -base-445-base-175-base-87- instr = instr.replace("\n", "\r\n") -base-446-base-176-base-88- fout.seek(0) -base-447-base-177-base-89- fout.write(HEADER) -base:448:base:178:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:28</b><br/><pre># TODO: use BinaryFile -base-449-base-179-base-29- -base-450-base-180-base-30-def list2int(lst): -base-451-base-181-base-31- return [ord(s) for s in lst] -base:452:base:182:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:72</b><br/><pre> # XXX NotImplemented -base-453-base-183-base-73- raise NotImplementedError -base-454-base-184-base-74- -base-455-base-185-base-75-def decipher(crypt, size, key): -base:456:base:186:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:293</b><br/><pre> if size > 1024: # XXX: ??? -base-457-base-187-base-294- raise ValueError("string is too long: %i" % size) -base-458-base-188-base-295- if self.version == 5: -base-459-base-189-base-296- size |= 0xF000 -base:460:base:190:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/binary.py.svn-base:315</b><br/><pre> if size > 1024: # XXX: ??? -base-461-base-191-base-316- raise ValueError("size '%i' > 1024 at position %s(%s)" % -base-462-base-192-base-317- (size, fd.tell(), repr(fd))) -base-463-base-193-base-318- if self.version == 5: -base:464:base:194:base:319: # XXX: testme -base-465-base-195-base-320- # read data as tuple of integeres -base-466-base-196-base-321- data = fd.readPacked("<%iI" % size) -base-467-base-197-base-322- # OR integers with 0xff and write their char equivalent to string -base:468:base:198:</pre></li><li><b>File: utilities/../src/moul/crypt/tests/.svn/text-base/test_binary.py.svn-base:98</b><br/><pre> # XXX: no test data -base-469-base-199-base-99- pass -base-470-base-200-base-100- -base-471-base-201-base-101- def test_string0(self): -base:472:base:202:</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py:98</b><br/><pre> # XXX: no test data -base-473-base-203- pass -base-474-base-204- -base-475-base-205- def test_string0(self): -base:476:base:206:</pre></li><li><b>File: utilities/../src/moul/crypt/tests/test_binary.py~:98</b><br/><pre> # XXX: no test data -base-477-base-207- pass -base-478-base-208- -base-479-base-209- def test_string0(self): -base:480:base:210:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:76</b><br/><pre> # XXX: dos format -base-481-base-211- return data.replace("\r\n", "\n") -base-482-base-212- -base-483-base-213-def encryptWDYS(instr, fout): -base:484:base:214:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:86</b><br/><pre> # XXX: dos format -base-485-base-215- instr = instr.replace("\n", "\r\n") -base-486-base-216- fout.seek(0) -base-487-base-217- fout.write(HEADER) -base:488:base:218:</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:293</b><br/><pre> if size > 1024: # XXX: ??? -base-489-base-219- raise ValueError("string is too long: %i" % size) -base-490-base-220- if self.version == 5: -base-491-base-221- size |= 0xF000 -base:492:base:222:</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py~:315</b><br/><pre> if size > 1024: # XXX: ??? -base-493-base-223- raise ValueError("size '%i' > 1024 at position %s(%s)" % -base-494-base-224- (size, fd.tell(), repr(fd))) -base-495-base-225- if self.version == 5: -base:496:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:229</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:28</b><br/><pre># TODO: use BinaryFile -base-497-base-230- -base-498-base-231-def list2int(lst): -base-499-base-232- return [ord(s) for s in lst] -base:500:base:233:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:72</b><br/><pre> # XXX NotImplemented -base-501-base-234- raise NotImplementedError -base-502-base-235- -base-503-base-236-def decipher(crypt, size, key): -base:504:base:237:</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:293</b><br/><pre> if size > 1024: # XXX: ??? -base-505-base-238- raise ValueError("string is too long: %i" % size) -base-506-base-239- if self.version == 5: -base-507-base-240- size |= 0xF000 -base:508:base:241:</pre></li><li><b>File: utilities/../src/moul/crypt/binary.py:315</b><br/><pre> if size > 1024: # XXX: ??? -base-509-base-242- raise ValueError("size '%i' > 1024 at position %s(%s)" % -base-510-base-243- (size, fd.tell(), repr(fd))) -base-511-base-244- if self.version == 5: -base:512:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:248</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:154</b><br/><pre> # FIXME: signal doesn't do anything -base-513-base-249-base-155- self.emit(SIGNAL("close()")) -base-514-base-250-base-156- event.accept() -base-515-base-251-base-157- event.ignore() -base:516:base:252:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-517-base-253-base-294- del self._kiimage_progressbar -base-518-base-254-base-295- self.pb_kiimage_repair.setEnabled(True) -base-519-base-255-base-296- mb = qtutils.infoMB(self, -base:520:base:256:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:392</b><br/><pre> # TODO: change timer from every second to every minute -base-521-base-257-base-393- self._timezone_timer = QtCore.QTimer(self) -base-522-base-258-base-394- self._timezone_timer.setInterval(1000) # 1 sec -base:523:base:259:base:395: # TODO: needs optimization? run only when timer tab is active -base-524-base-260-base-396- self.connect(self._timezone_timer, SIGNAL('timeout()'), -base-525-base-261-base-397- self.on_timezone_timer_timeout) -base-526-base-262-base-398- self._timezone_timer.start() -base:527:base:263:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:507</b><br/><pre> # TODO: thread safety! -base-528-base-264-base-508- self.servers = servers -base-529-base-265-base-509- if not self.isRunning(): -base-530-base-266-base-510- self.start() -base:531:base:267:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:513</b><br/><pre> # TODO: thread safety! -base-532-base-268-base-514- # emit a list of names first -base-533-base-269-base-515- for server in self.servers: -base-534-base-270-base-516- self.emit(SIGNAL("server(const QString&)"), server.name) -base:535:base:271:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:551</b><br/><pre> # TODO check this -base-536-base-272-base-552- self._running = False -base-537-base-273-base-553- self.condition.wakeAll() -base-538-base-274-base-554- -base:539:base:275:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware -base-540-base-276-base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-541-base-277-base-47- if getattr(sys, 'frozen', False): -base-542-base-278-base-48- try: -base:543:base:279:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:154</b><br/><pre> # FIXME: signal doesn't do anything -base-544-base-280- self.emit(SIGNAL("close()")) -base-545-base-281- event.accept() -base-546-base-282- event.ignore() -base:547:base:283:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-548-base-284- del self._kiimage_progressbar -base-549-base-285- self.pb_kiimage_repair.setEnabled(True) -base-550-base-286- mb = qtutils.infoMB(self, -base:551:base:287:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:392</b><br/><pre> # TODO: change timer from every second to every minute -base-552-base-288- self._timezone_timer = QtCore.QTimer(self) -base-553-base-289- self._timezone_timer.setInterval(1000) # 1 sec -base-554-base-290- self.connect(self._timezone_timer, SIGNAL('timeout()'), -base:555:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:293</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:507</b><br/><pre> # TODO: thread safety! -base-556-base-294- self.servers = servers -base-557-base-295- if not self.isRunning(): -base-558-base-296- self.start() -base:559:base:297:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:513</b><br/><pre> # TODO: thread safety! -base-560-base-298- # emit a list of names first -base-561-base-299- for server in self.servers: -base-562-base-300- self.emit(SIGNAL("server(const QString&)"), server.name) -base:563:base:301:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:551</b><br/><pre> # TODO check this -base-564-base-302- self._running = False -base-565-base-303- self.condition.wakeAll() -base-566-base-304- -base:567:base:305:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:154</b><br/><pre> # FIXME: signal doesn't do anything -base-568-base-306- self.emit(SIGNAL("close()")) -base-569-base-307- event.accept() -base-570-base-308- event.ignore() -base:571:base:309:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:293</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-572-base-310- del self._kiimage_progressbar -base-573-base-311- self.pb_kiimage_repair.setEnabled(True) -base-574-base-312- mb = qtutils.infoMB(self, -base:575:base:313:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:392</b><br/><pre> # TODO: change timer from every second to every minute -base-576-base-314- self._timezone_timer = QtCore.QTimer(self) -base-577-base-315- self._timezone_timer.setInterval(1000) # 1 sec -base-578-base-316- self.connect(self._timezone_timer, SIGNAL('timeout()'), -base:579:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:319</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:507</b><br/><pre> # TODO: thread safety! -base-580-base-320- self.servers = servers -base-581-base-321- if not self.isRunning(): -base-582-base-322- self.start() -base:583:base:323:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:513</b><br/><pre> # TODO: thread safety! -base-584-base-324- # emit a list of names first -base-585-base-325- for server in self.servers: -base-586-base-326- self.emit(SIGNAL("server(const QString&)"), server.name) -base:587:base:327:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py:551</b><br/><pre> # TODO check this -base-588-base-328- self._running = False -base-589-base-329- self.condition.wakeAll() -base-590-base-330- -base:591:base:331:</pre></li><li><b>File: utilities/../src/moul/qt/errorhandler.py:45</b><br/><pre> # TODO: translation aware -base-592-base-332- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-593-base-333- if getattr(sys, 'frozen', False): -base-594-base-334- try: -base:595:base:335:</pre></li><li><b>File: utilities/../src/moul/osdependent/__init__.py:120</b><br/><pre># XXX: what about cygwin, bsd and others? -base-596-base-336-_thismodule = sys.modules[__name__] -base-597-base-337-if __WIN32__: -base-598-base-338- from moul.osdependent import win32 as osdep_win32 -base:599:base:339:</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/__init__.py:37</b><br/><pre>EXEC_NAME = "???" # XXX -base-600-base-340-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" -base-601-base-341-LOCATIONS = [ -base-602-base-342- "/Applications", -base:603:base:343:</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/.svn/text-base/__init__.py.svn-base:37</b><br/><pre>EXEC_NAME = "???" # XXX -base-604-base-344-base-38-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" -base-605-base-345-base-39-LOCATIONS = [ -base-606-base-346-base-40- "/Applications", -base:607:base:347:</pre></li><li><b>File: utilities/../src/moul/osdependent/darwin/__init__.py~:37</b><br/><pre>EXEC_NAME = "???" # XXX -base-608-base-348-UPDATER = "Uru Live.app/Contents/Resources/Game.app/Contents/Resources/URU Live Updater.app/Contents/MacOS/URU Live Updater" -base-609-base-349-LOCATIONS = [ -base-610-base-350- "/Applications", -base:611:base:351:</pre></li><li><b>File: utilities/../src/moul/osdependent/.svn/text-base/__init__.py.svn-base:120</b><br/><pre># XXX: what about cygwin, bsd and others? -base-612-base-352-base-121-_thismodule = sys.modules[__name__] -base-613-base-353-base-122-if __WIN32__: -base-614-base-354-base-123- from moul.osdependent import win32 as osdep_win32 -base:615:base:355:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:14</b><br/><pre><ol><li><b>File: utilities/../.svn/text-base/test.py.svn-base:548</b><br/><pre> # XXX bug: doctest may report several failures in one test, they are -base-616-base-356-base-15-base-549- # separated by a horizontal dash line. Only the first one of -base-617-base-357-base-16-base-550- # them is now colorized properly. -base-618-base-358-base-17-base-551- header = lines[0] -base:619:base:359:base:18:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:603</b><br/><pre> # TODO: Scrape and colorize the traceback. -base-620-base-360-base-19-base-604- result.append(self.colorize('doctest_got', line)) -base-621-base-361-base-20-base-605- elif remaining[0] == 'Differences (ndiff with -expected +actual):': -base-622-base-362-base-21-base-606- result.append(self.colorize('doctest_title', remaining.pop(0))) # E. raised: -base:623:base:363:base:22:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:623</b><br/><pre> # TODO: We only deal with the output from Zope 3's doctest module. -base-624-base-364-base-23-base-624- # A colorizer for the Python's doctest module would be nice too. -base-625-base-365-base-24-base-625- if doctest: -base-626-base-366-base-25-base-626- # If we have a doctest, we do not care about this header. All the -base:627:base:367:base:26:</pre></li><li><b>File: utilities/../.svn/text-base/test.py.svn-base:690</b><br/><pre> # TODO these should be hookable -base-628-base-368-base-27-base-691- from zope.tales.tales import TALESTracebackSupplement -base-629-base-369-base-28-base-692- from zope.pagetemplate.pagetemplate \ -base-630-base-370-base-29-base-693- import PageTemplateTracebackSupplement -base:631:base:371:base:30:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/chatlog.py.svn-base:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-632-base-372-base-31-base-217- if not os.path.isdir(self._archivedir): -base-633-base-373-base-32-base-218- LOG.warning("%s is not a directory" % self._archivedir) -base-634-base-374-base-33-base-219- return -base:635:base:375:base:34:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:112</b><br/><pre> # XXX use struct -base-636-base-376-base-35-base-113- if header is None: -base-637-base-377-base-36-base-114- fd = self._fd -base-638-base-378-base-37-base-115- fd.seek(0) -base:639:base:379:base:38:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:127</b><br/><pre> # XXX use struct -base-640-base-380-base-39-base-128- if size is None: -base-641-base-381-base-40-base-129- size = self.getFileSize() -base-642-base-382-base-41-base-130- leading = 4* [None] -base:643:base:383:base:42:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/kiimage.py.svn-base:267</b><br/><pre> # XXX: move checks to copy method! -base-644-base-384-base-43-base-268- if not os.path.isfile(fixed): -base-645-base-385-base-44-base-269- self._tocheck.append((ki, fixed)) -base-646-base-386-base-45-base-270- continue -base:647:base:387:base:46:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:157</b><br/><pre> # TODO: write me -base-648-base-388-base-47-base-158- pass -base-649-base-389-base-48-base-159- -base-650-base-390-base-49-base-160-class Constrain(object): -base:651:base:391:base:50:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-652-base-392-base-51-base-555- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-653-base-393-base-52-base-556- # microphon missing -> OS mixer -base-654-base-394-base-53-base-557- } -base:655:base:395:base:54:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/wdysini.py.svn-base:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-656-base-396-base-55-base-643- -base-657-base-397-base-56-base-644-class GraphicsIni(ConfFile): -base-658-base-398-base-57-base-645- _filename = 'graphics.ini' -base:659:base:399:base:58:</pre></li><li><b>File: utilities/../src/moul/file/.svn/text-base/directory.py.svn-base:59</b><br/><pre> # TODO: fnmatch -base-660-base-400-base-59-base-60- return len([name for name in os.listdir(path) -base-661-base-401-base-60-base-61- if os.path.isfile(os.path.join(path, name))]) -base-662-base-402-base-61-base-62- -base:663:base:403:base:62:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:105</b><br/><pre> # TODO: more -base-664-base-404-base-63-base-106- -base-665-base-405-base-64-base-107- def test_publicapi_create(self): -base-666-base-406-base-65-base-108- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:667:base:407:base:66:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:116</b><br/><pre> # TODO: more -base-668-base-408-base-67-base-117- -base-669-base-409-base-68-base-118-class AudioIniTest(GenericIniTest): -base-670-base-410-base-69-base-119- enc = aud_enc -base:671:base:411:base:70:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/test_wdysini.py.svn-base:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-672-base-412-base-71-base-155- -base-673-base-413-base-72-base-156- p.screenres = 0 -base-674-base-414-base-73-base-157- eq(p._get('Graphics.Width'), 800) -base:675:base:415:base:74:</pre></li><li><b>File: utilities/../src/moul/file/tests/.svn/text-base/utils.py.svn-base:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-676-base-416-base-75-base-81- fd = open(os.path.join(path, fname), 'wb') -base-677-base-417-base-76-base-82- fd.write('dummy') -base-678-base-418-base-77-base-83- fd.close() -base:679:base:419:base:78:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:105</b><br/><pre> # TODO: more -base-680-base-420-base-79- -base-681-base-421-base-80- def test_publicapi_create(self): -base-682-base-422-base-81- inipath = os.path.join(self.tmpdir, os.path.basename(self.enc)) -base:683:base:423:base:82:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:116</b><br/><pre> # TODO: more -base-684-base-424-base-83- -base-685-base-425-base-84-class AudioIniTest(GenericIniTest): -base-686-base-426-base-85- enc = aud_enc -base:687:base:427:base:86:</pre></li><li><b>File: utilities/../src/moul/file/tests/test_wdysini.py:154</b><br/><pre> #XXX self.failIf(p.isChanged()) -base-688-base-428-base-87- -base-689-base-429-base-88- p.screenres = 0 -base-690-base-430-base-89- eq(p._get('Graphics.Width'), 800) -base:691:base:431:base:90:</pre></li><li><b>File: utilities/../src/moul/file/tests/utils.py:80</b><br/><pre> for fname in ('UruLauncher.exe', 'UruExplorer.exe'): # XXX: win32 -base-692-base-432-base-91- fd = open(os.path.join(path, fname), 'wb') -base-693-base-433-base-92- fd.write('dummy') -base-694-base-434-base-93- fd.close() -base:695:base:435:base:94:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-696-base-436-base-95- if not os.path.isdir(self._archivedir): -base-697-base-437-base-96- LOG.warning("%s is not a directory" % self._archivedir) -base-698-base-438-base-97- return -base:699:base:439:base:98:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:112</b><br/><pre> # XXX use struct -base-700-base-440-base-99- if header is None: -base-701-base-441-base-100- fd = self._fd -base-702-base-442-base-101- fd.seek(0) -base:703:base:443:base:102:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:127</b><br/><pre> # XXX use struct -base-704-base-444-base-103- if size is None: -base-705-base-445-base-104- size = self.getFileSize() -base-706-base-446-base-105- leading = 4* [None] -base:707:base:447:base:106:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py:267</b><br/><pre> # XXX: move checks to copy method! -base-708-base-448-base-107- if not os.path.isfile(fixed): -base-709-base-449-base-108- self._tocheck.append((ki, fixed)) -base-710-base-450-base-109- continue -base:711:base:451:base:110:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:157</b><br/><pre> # TODO: write me -base-712-base-452-base-111- pass -base-713-base-453-base-112- -base-714-base-454-base-113-class Constrain(object): -base:715:base:455:base:114:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-716-base-456-base-115- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-717-base-457-base-116- # microphon missing -> OS mixer -base-718-base-458-base-117- } -base:719:base:459:base:118:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-720-base-460-base-119- -base-721-base-461-base-120-class GraphicsIni(ConfFile): -base-722-base-462-base-121- _filename = 'graphics.ini' -base:723:base:463:base:122:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:112</b><br/><pre> # XXX use struct -base-724-base-464-base-123- if header is None: -base-725-base-465-base-124- fd = self._fd -base-726-base-466-base-125- fd.seek(0) -base:727:base:467:base:126:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:127</b><br/><pre> # XXX use struct -base-728-base-468-base-127- if size is None: -base-729-base-469-base-128- size = self.getFileSize() -base-730-base-470-base-129- leading = 4* [None] -base:731:base:471:base:130:</pre></li><li><b>File: utilities/../src/moul/file/kiimage.py~:267</b><br/><pre> # XXX: move checks to copy method! -base-732-base-472-base-131- if not os.path.isfile(fixed): -base-733-base-473-base-132- self._tocheck.append((ki, fixed)) -base-734-base-474-base-133- else: -base:735:base:475:base:134:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:157</b><br/><pre> # TODO: write me -base-736-base-476-base-135- pass -base-737-base-477-base-136- -base-738-base-478-base-137-class Constrain(object): -base:739:base:479:base:138:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:554</b><br/><pre> 'Audio.SetDeviceName' : (QuotedString, Constrain()), # TODO: add check -base-740-base-480-base-139- 'Audio.SetChannelVolume GUI' : (FloatString, MinMax(0.0, 1.0)), # 0-100%, no ui -base-741-base-481-base-140- # microphon missing -> OS mixer -base-742-base-482-base-141- } -base:743:base:483:base:142:</pre></li><li><b>File: utilities/../src/moul/file/wdysini.py~:642</b><br/><pre> # TODO: microphon needs an extra handler. The mic slider changes the OS mixer. -base-744-base-484-base-143- -base-745-base-485-base-144-class GraphicsIni(ConfFile): -base-746-base-486-base-145- _filename = 'graphics.ini' -base:747:base:487:base:146:</pre></li><li><b>File: utilities/../src/moul/file/chatlog.py~:216</b><br/><pre> # TODO: inefficient, compare list with directory content -base-748-base-488-base-147- if not os.path.isdir(self._archivedir): -base-749-base-489-base-148- LOG.warning("%s is not a directory" % self._archivedir) -base-750-base-490-base-149- return -base:751:base:491:base:150:</pre></li><li><b>File: utilities/../src/moul/file/directory.py:59</b><br/><pre> # TODO: fnmatch -base-752-base-492-base-151- return len([name for name in os.listdir(path) -base-753-base-493-base-152- if os.path.isfile(os.path.join(path, name))]) -base-754-base-494-base-153- -base:755:base:495:base:154:</pre></li><li><b>File: utilities/../src/moul/file/directory.py~:59</b><br/><pre> # TODO: fnmatch -base-756-base-496-base-155- return len([name for name in os.listdir(path) -base-757-base-497-base-156- if os.path.isfile(os.path.join(path, name))]) -base-758-base-498-base-157- -base:759:base:499:base:158:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:77</b><br/><pre> # XXX: dos format -base-760-base-500-base-159-base-78- return data.replace("\r\n", "\n") -base-761-base-501-base-160-base-79- -base-762-base-502-base-161-base-80-def encryptWDYS(instr, fout): -base:763:base:503:base:162:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/whatdoyousee.py.svn-base:87</b><br/><pre> # XXX: dos format -base-764-base-504-base-163-base-88- instr = instr.replace("\n", "\r\n") -base-765-base-505-base-164-base-89- fout.seek(0) -base-766-base-506-base-165-base-90- fout.write(HEADER) -base:767:base:507:base:166:</pre></li><li><b>File: utilities/../src/moul/crypt/.svn/text-base/elf.py.svn-base:71</b><br/><pre> # XXX NotImplemented -base-768-base-508-base-167-base-72- raise NotImplementedError -base-769-base-509-base-168-base-73- -base-770-base-510-base-169-base-74-def decipher(crypt, size, key): -base:771:base:511:base:170:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:77</b><br/><pre> # XXX: dos format -base-772-base-512-base-171- return data.replace("\r\n", "\n") -base-773-base-513-base-172- -base-774-base-514-base-173-def encryptWDYS(instr, fout): -base:775:base:515:base:174:</pre></li><li><b>File: utilities/../src/moul/crypt/whatdoyousee.py:87</b><br/><pre> # XXX: dos format -base-776-base-516-base-175- instr = instr.replace("\n", "\r\n") -base-777-base-517-base-176- fout.seek(0) -base-778-base-518-base-177- fout.write(HEADER) -base:779:base:519:base:178:</pre></li><li><b>File: utilities/../src/moul/crypt/elf.py:71</b><br/><pre> # XXX NotImplemented -base-780-base-520-base-179- raise NotImplementedError -base-781-base-521-base-180- -base-782-base-522-base-181-def decipher(crypt, size, key): -base:783:base:523:base:182:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:152</b><br/><pre> # FIXME: signal doesn't do anything -base-784-base-524-base-183-base-153- self.emit(SIGNAL("close()")) -base-785-base-525-base-184-base-154- event.accept() -base-786-base-526-base-185-base-155- event.ignore() -base:787:base:527:base:186:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:291</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-788-base-528-base-187-base-292- del self._kiimage_progressbar -base-789-base-529-base-188-base-293- self.pb_kiimage_repair.setEnabled(True) -base-790-base-530-base-189-base-294- mb = qtutils.infoMB(self, -base:791:base:531:base:190:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:390</b><br/><pre> # TODO: change timer from every second to every minute -base-792-base-532-base-191-base-391- self._timezone_timer = timer = QtCore.QTimer(self) -base-793-base-533-base-192-base-392- timer.setInterval(1000) # 1 sec -base:794:base:534:base:193:base:393: # TODO: needs optimization? run only when timer tab is active -base-795-base-535-base-194-base-394- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base-796-base-536-base-195-base-395- timer.start() -base-797-base-537-base-196-base-396- -base:798:base:538:base:197:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:487</b><br/><pre> # TODO: thread safety! -base-799-base-539-base-198-base-488- self.servers = servers -base-800-base-540-base-199-base-489- if not self.isRunning(): -base-801-base-541-base-200-base-490- self.start() -base:802:base:542:base:201:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:493</b><br/><pre> # TODO: thread safety! -base-803-base-543-base-202-base-494- # emit a list of names first -base-804-base-544-base-203-base-495- for server in self.servers: -base-805-base-545-base-204-base-496- self.emit(SIGNAL("server(const QString&)"), server.name) -base:806:base:546:base:205:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/mainwindow.py.svn-base:531</b><br/><pre> # TODO check this -base-807-base-547-base-206-base-532- self._running = False -base-808-base-548-base-207-base-533- self.condition.wakeAll() -base-809-base-549-base-208-base-534- -base:810:base:550:base:209:</pre></li><li><b>File: utilities/../src/moul/qt/.svn/text-base/errorhandler.py.svn-base:45</b><br/><pre> # TODO: translation aware -base-811-base-551-base-210-base-46- LOG.critical("UNHANDLED ERROR", exc_info=(typ, value, traceback)) -base-812-base-552-base-211-base-47- if getattr(sys, 'frozen', False): -base-813-base-553-base-212-base-48- try: -base:814:base:554:base:213:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:151</b><br/><pre> # FIXME: signal doesn't do anything -base-815-base-555-base-214- self.emit(SIGNAL("close()")) -base-816-base-556-base-215- event.accept() -base-817-base-557-base-216- event.ignore() -base:818:base:558:base:217:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:290</b><br/><pre> del self._kiimage_threadlet# TODO: other message box -base-819-base-559-base-218- del self._kiimage_progressbar -base-820-base-560-base-219- self.pb_kiimage_repair.setEnabled(True) -base-821-base-561-base-220- mb = qtutils.infoMB(self, -base:822:base:562:base:221:</pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:389</b><br/><pre> # TODO: change timer from every second to every minute -base-823-base-563-base-222- self._timezone_timer = timer = QtCore.QTimer(self) -base-824-base-564-base-223- timer.setInterval(1000) # 1 sec -base-825-base-565-base-224- self.connect(timer, SIGNAL('timeout()'), self.on_timezone_timer_timeout) -base:826:base:566:</pre></li><li><b>File: utilities/../doc/.svn/text-base/XXXreport.html.svn-base:227</b><br/><pre></pre></li><li><b>File: utilities/../src/moul/qt/mainwindow.py~:486</b><br/><pre> # TODO: thread saf... [truncated message content] |
From: <ti...@us...> - 2007-03-21 12:39:25
|
Revision: 275 http://pymoul.svn.sourceforge.net/pymoul/?rev=275&view=rev Author: tiran Date: 2007-03-21 05:39:25 -0700 (Wed, 21 Mar 2007) Log Message: ----------- Removed usage of crypt functions and disabled UI for audio and graphics settings Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/src/moul/crypt/elf.py pymoul/trunk/src/moul/crypt/whatdoyousee.py pymoul/trunk/src/moul/file/directory.py pymoul/trunk/src/moul/file/plasmalog.py pymoul/trunk/src/moul/file/tests/test_directory.py pymoul/trunk/src/moul/qt/mainwindow.py pymoul/trunk/src/moul/qt/ui/mainwindow.py pymoul/trunk/src/moul/qt/ui/mainwindow.ui Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/Makefile.in 2007-03-21 12:39:25 UTC (rev 275) @@ -39,13 +39,13 @@ $(PYTHON) utilities/compileui.py ./src/moul/ test_build: build - PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) + MOUL_ALLOW_CRYPT="YES" PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) test_inplace: inplace - PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) + MOUL_ALLOW_CRYPT="YES" PYTHONPATH="src" $(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS) doc_html: - PYTHONPATH="src" $(EPYDOC) -v --html --no-sourcecode \ + MOUL_ALLOW_CRYPT="YES" PYTHONPATH="src" $(EPYDOC) -v --html --no-sourcecode \ --output="doc/html" moul doc_html_graph: Modified: pymoul/trunk/src/moul/crypt/elf.py =================================================================== --- pymoul/trunk/src/moul/crypt/elf.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/crypt/elf.py 2007-03-21 12:39:25 UTC (rev 275) @@ -23,6 +23,10 @@ __version__ = "$Id$" __revision__ = "$Revision$" +import os +if not os.environ.get("MOUL_ALLOW_CRYPT"): + raise ImportError("The import of this module has been restricted") + import struct # TODO: use BinaryFile Modified: pymoul/trunk/src/moul/crypt/whatdoyousee.py =================================================================== --- pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/crypt/whatdoyousee.py 2007-03-21 12:39:25 UTC (rev 275) @@ -28,6 +28,7 @@ __version__ = "$Id$" __revision__ = "$Revision$" +import os import struct from crypttea import LITTLE_ENDIAN from crypttea import XTEA @@ -47,6 +48,9 @@ fin - open file descriptor in read only and binary mode return - string """ + # LLL: + if not os.environ.get("MOUL_ALLOW_CRYPT"): + raise RuntimeError("The usage of this function has been restricted") fin.seek(0) header = fin.read(12) if header != HEADER: @@ -81,6 +85,9 @@ fout - out file descriptor in write and binary mode return - None """ + # LLL: + if not os.environ.get("MOUL_ALLOW_CRYPT"): + raise RuntimeError("The usage of this function has been restricted") # XXX: dos format instr = instr.replace("\n", "\r\n") fout.seek(0) Modified: pymoul/trunk/src/moul/file/directory.py =================================================================== --- pymoul/trunk/src/moul/file/directory.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/file/directory.py 2007-03-21 12:39:25 UTC (rev 275) @@ -29,8 +29,8 @@ from moul.file.kiimage import KIImageFixer from moul.file.localization import LocDirParser from moul.file.plasmalog import PlasmalogZipper -from moul.file.wdysini import AudioIni -from moul.file.wdysini import GraphicsIni +# LLL: from moul.file.wdysini import AudioIni +# LLL: from moul.file.wdysini import GraphicsIni LOG = getLogger('moul.file.directory') @@ -176,8 +176,8 @@ 'logzipper' : (PlasmalogZipper, ('log', 'zipped')), 'kiimages' : (KIImageFixer, ('kiimages', 'fixed')), 'avatars' : (KIImageFixer, ('avatars', 'fixed')), - 'graphicsini' : (GraphicsIni, ('ini',)), - 'audioini' : (AudioIni, ('ini',)), + # LLL: 'graphicsini' : (GraphicsIni, ('ini',)), + # LLL: 'audioini' : (AudioIni, ('ini',)), 'chatmover' : (ChatlogMover, ('log', 'chatlogs')), 'chatview' : (ChatlogDirectoryView, ('chatlogs',)), 'zipped' : (DirectoryCount, ('zipped',)), Modified: pymoul/trunk/src/moul/file/plasmalog.py =================================================================== --- pymoul/trunk/src/moul/file/plasmalog.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/file/plasmalog.py 2007-03-21 12:39:25 UTC (rev 275) @@ -28,7 +28,6 @@ from logging import getLogger from stat import ST_MTIME -from moul.crypt.elf import decryptElf from moul.file.utils import fileModTime @@ -41,7 +40,7 @@ """Zip plasma logs """ _save_patterns = ['*.elf', '*.txt', '*.log', '*.zip', '*.jpg'] - + def __init__(self, srcdir, destdir): self._srcdir = srcdir self._destdir = destdir Modified: pymoul/trunk/src/moul/file/tests/test_directory.py =================================================================== --- pymoul/trunk/src/moul/file/tests/test_directory.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/file/tests/test_directory.py 2007-03-21 12:39:25 UTC (rev 275) @@ -66,15 +66,15 @@ self.urudir = self.klass(tmpdir) self.failIf(self.urudir.exists()) - self.failIf(self.urudir.factory('audioini').exists()) - self.failIf(self.urudir.factory('graphicsini').exists()) + # LLL: self.failIf(self.urudir.factory('audioini').exists()) + # LLL: self.failIf(self.urudir.factory('graphicsini').exists()) os.mkdir(tmpdir) # XXX self.urudir.createTree() self.failUnless(self.urudir.exists()) self.urudir.initializeFactories() - self.failIf(self.urudir.audioini.exists()) - self.failIf(self.urudir.graphicsini.exists()) + # LLL: self.failIf(self.urudir.audioini.exists()) + # LLL: self.failIf(self.urudir.graphicsini.exists()) def test_create(self): # setup a new, empty testing direcotry @@ -86,13 +86,13 @@ self.failUnless(self.urudir.exists()) self.urudir.initializeFactories() - self.failIf(self.urudir.audioini.exists()) - self.urudir.audioini.create() - self.failUnless(self.urudir.audioini.exists()) + # LLL: self.failIf(self.urudir.audioini.exists()) + # LLL: self.urudir.audioini.create() + # LLL: self.failUnless(self.urudir.audioini.exists()) - self.failIf(self.urudir.graphicsini.exists()) - self.urudir.graphicsini.create() - self.failUnless(self.urudir.graphicsini.exists()) + # LLL: self.failIf(self.urudir.graphicsini.exists()) + # LLL: self.urudir.graphicsini.create() + # LLL: self.failUnless(self.urudir.graphicsini.exists()) class UruGameDirTest(AbstractTest): klass = UruGameDataDirectory Modified: pymoul/trunk/src/moul/qt/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/mainwindow.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-03-21 12:39:25 UTC (rev 275) @@ -47,7 +47,7 @@ from moul.qt.ui.mainwindow import Ui_MainWindow from moul.qt.utils import QThreadlet from moul.qt.utils import QYieldingThreadlet -from moul.qt.wdysini import IniFileContainer +# LLL: from moul.qt.wdysini import IniFileContainer LOG = getLogger('moul.qt') @@ -86,7 +86,7 @@ # init handlers self.qcDniTimeNumber = DniTimeNumberContainer(self) self.qcLocalization = LocalizationContainer(self) - self.qcIniFile = IniFileContainer(self) + # LLL: self.qcIniFile = IniFileContainer(self) self._ping_init() #self._systray_init() self._about_init() Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.py =================================================================== --- pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.py 2007-03-21 12:39:25 UTC (rev 275) @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file './src/moul/qt/ui/mainwindow.ui' # -# Created: Mon Mar 19 14:34:52 2007 +# Created: Wed Mar 21 13:00:59 2007 # by: PyQt4 UI code generator 4.1.1 # # WARNING! All changes made in this file will be lost! @@ -146,6 +146,7 @@ self.tab_settings.setObjectName("tab_settings") self.tab_sub_settings = QtGui.QTabWidget(self.tab_settings) + self.tab_sub_settings.setEnabled(False) self.tab_sub_settings.setGeometry(QtCore.QRect(0,0,491,411)) self.tab_sub_settings.setObjectName("tab_sub_settings") @@ -197,7 +198,7 @@ self.hboxlayout2.addWidget(self.groupBox_screenres) self.groupBox_gra_checkboxes = QtGui.QGroupBox(self.horizontalLayout_4) - self.groupBox_gra_checkboxes.setEnabled(True) + self.groupBox_gra_checkboxes.setEnabled(False) self.groupBox_gra_checkboxes.setObjectName("groupBox_gra_checkboxes") self.verticalLayout_28 = QtGui.QWidget(self.groupBox_gra_checkboxes) @@ -229,7 +230,7 @@ self.hboxlayout2.addWidget(self.groupBox_gra_checkboxes) self.groupBox_gra_quality = QtGui.QGroupBox(self.tab_graphics) - self.groupBox_gra_quality.setEnabled(True) + self.groupBox_gra_quality.setEnabled(False) self.groupBox_gra_quality.setGeometry(QtCore.QRect(10,90,451,281)) self.groupBox_gra_quality.setObjectName("groupBox_gra_quality") @@ -462,7 +463,7 @@ self.tab_audio.setObjectName("tab_audio") self.groupBox_aud_hardware = QtGui.QGroupBox(self.tab_audio) - self.groupBox_aud_hardware.setEnabled(True) + self.groupBox_aud_hardware.setEnabled(False) self.groupBox_aud_hardware.setGeometry(QtCore.QRect(10,250,451,111)) self.groupBox_aud_hardware.setObjectName("groupBox_aud_hardware") @@ -525,7 +526,7 @@ self.cb_aud_eax.setObjectName("cb_aud_eax") self.groupBox_voicechat = QtGui.QGroupBox(self.tab_audio) - self.groupBox_voicechat.setEnabled(True) + self.groupBox_voicechat.setEnabled(False) self.groupBox_voicechat.setGeometry(QtCore.QRect(10,190,451,51)) self.groupBox_voicechat.setObjectName("groupBox_voicechat") @@ -534,7 +535,7 @@ self.cb_aud_voicechat.setObjectName("cb_aud_voicechat") self.groupBox_aud_level = QtGui.QGroupBox(self.tab_audio) - self.groupBox_aud_level.setEnabled(True) + self.groupBox_aud_level.setEnabled(False) self.groupBox_aud_level.setGeometry(QtCore.QRect(10,0,451,181)) self.groupBox_aud_level.setObjectName("groupBox_aud_level") Modified: pymoul/trunk/src/moul/qt/ui/mainwindow.ui =================================================================== --- pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-03-21 12:33:30 UTC (rev 274) +++ pymoul/trunk/src/moul/qt/ui/mainwindow.ui 2007-03-21 12:39:25 UTC (rev 275) @@ -349,6 +349,9 @@ <string>Settings</string> </attribute> <widget class="QTabWidget" name="tab_sub_settings" > + <property name="enabled" > + <bool>false</bool> + </property> <property name="geometry" > <rect> <x>0</x> @@ -451,7 +454,7 @@ <item> <widget class="QGroupBox" name="groupBox_gra_checkboxes" > <property name="enabled" > - <bool>true</bool> + <bool>false</bool> </property> <property name="title" > <string>Other</string> @@ -511,7 +514,7 @@ </widget> <widget class="QGroupBox" name="groupBox_gra_quality" > <property name="enabled" > - <bool>true</bool> + <bool>false</bool> </property> <property name="geometry" > <rect> @@ -981,7 +984,7 @@ </attribute> <widget class="QGroupBox" name="groupBox_aud_hardware" > <property name="enabled" > - <bool>true</bool> + <bool>false</bool> </property> <property name="geometry" > <rect> @@ -1128,7 +1131,7 @@ </widget> <widget class="QGroupBox" name="groupBox_voicechat" > <property name="enabled" > - <bool>true</bool> + <bool>false</bool> </property> <property name="geometry" > <rect> @@ -1157,7 +1160,7 @@ </widget> <widget class="QGroupBox" name="groupBox_aud_level" > <property name="enabled" > - <bool>true</bool> + <bool>false</bool> </property> <property name="geometry" > <rect> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ti...@us...> - 2007-03-25 17:55:35
|
Revision: 279 http://pymoul.svn.sourceforge.net/pymoul/?rev=279&view=rev Author: tiran Date: 2007-03-25 10:55:31 -0700 (Sun, 25 Mar 2007) Log Message: ----------- Updated pod age code Modified Paths: -------------- pymoul/trunk/Makefile.in pymoul/trunk/src/moul/time/podage.py Modified: pymoul/trunk/Makefile.in =================================================================== --- pymoul/trunk/Makefile.in 2007-03-23 17:40:11 UTC (rev 278) +++ pymoul/trunk/Makefile.in 2007-03-25 17:55:31 UTC (rev 279) @@ -103,5 +103,8 @@ serverlist: PYTHONPATH="src" $(PYTHON) src/moul/server/serverlist.py +podage: + PYTHONPATH="src" $(PYTHON) src/moul/time/podage.py + infrastructure: clean inplace ui languages xxxreport propset fixlineendings doc_html serverlist Modified: pymoul/trunk/src/moul/time/podage.py =================================================================== --- pymoul/trunk/src/moul/time/podage.py 2007-03-23 17:40:11 UTC (rev 278) +++ pymoul/trunk/src/moul/time/podage.py 2007-03-25 17:55:31 UTC (rev 279) @@ -101,7 +101,12 @@ registerPodAge = _podRegistry.register def listPodAges(): - return [name for name in _podRegistry if name] + """List pod ages sorted by offset + """ + dec = [(age.offset, name) + for name, age in _podRegistry.items() if name] + dec.sort() + return [v[1] for v in dec] class PodAgeInformation(dict): """Information about a pod age @@ -113,6 +118,7 @@ for key in ('name', 'gatenumber', 'offset'): if key not in self: raise KeyError(key) + self['offset_td'] = timedelta(seconds=self['offset']*PAHRTAHVO_SEC) def __getattribute__(self, name): if name in self: @@ -155,7 +161,7 @@ """ if startdt is None: startdt = utcnow() - base_dt = BASE_DT + self._age.offset + base_dt = BASE_DT + self._age.offset_td # calculate completed cycles since base_dt sec = td2sec(startdt - base_dt) cycles = floor(sec / PODDAY_SEC) @@ -178,7 +184,7 @@ @return: Iterator that yields (number, date) @rtype: iterator (int, datetime) """ - dt = self._base + PODDAY_TD + dt = self._base #+ PODDAY_TD n = 0 while True: yield (n, dt) @@ -187,34 +193,21 @@ # pod ages registerPodAge(PodAgeInformation( - name = 'Dereno', - gatenumber = 25, - offset = timedelta(seconds=1*PAHRTAHVO_SEC) - )) - -registerPodAge(PodAgeInformation( name = 'Negilahn', gatenumber = 18, - offset = timedelta(seconds=0) + offset = 0, # Pahrtahvotee )) registerPodAge(PodAgeInformation( - name = 'Payiferen', - gatenumber = -1, - offset = timedelta(seconds=-1) + name = 'Dereno', + gatenumber = 25, + offset = 1, # Pahrtahvo )) -registerPodAge(PodAgeInformation( - name = 'Tetsonot', - gatenumber = -1, - offset = timedelta(seconds=-1) - )) - - from moul.time.dni import DniTime from moul.time.utils import normalizeTZ -def forumTimeTable(limit=10, fmt="%Y-%m-%d %H:%M:%S %Z", tzlist=('UTC', 'CET', +def forumTimeTable(limit=5, fmt="%Y-%m-%d %H:%M:%S %Z", tzlist=('UTC', 'CET', 'US/Mountain', 'US/Pacific', 'US/Eastern', 'Australia/Sydney')): """Small utility function to create a nice list for the forum @@ -223,18 +216,20 @@ print "[spoiler=%s]" % tz for age in listPodAges(): pat = PodAgeTime(age) + print print age - print "--------------------------------------------------------------------" + print 20 * "-" for n, dt in iter(pat): if n > limit: break - dni = DniTime.fromUTC(dt) + #dni = DniTime.fromUTC(dt) ldt = normalizeTZ(tz, dt) - print "Earth: %s, D'ni: %s, %i" % (ldt.strftime(fmt), - str(dni), dni.pahrtahvo) + print ldt.strftime(fmt) + #print "Earth: %s, D'ni: %s, %i" % (ldt.strftime(fmt), + # str(dni), dni.pahrtahvo) print "[/spoiler]" -def allTzList(limit=50, fmt="%Y-%m-%d %H:%M:%S %Z"): +def allTzList(limit=50, fmt="%Y-%m-%d %H:%M %Z"): """Small utility function to create a nice list for the forum """ from pytz import common_timezones @@ -251,8 +246,9 @@ print tzname for age in listPodAges(): pat = PodAgeTime(age) + print >>fd print >>fd, age - print >>fd, "--------------------------------------------------------------------" + print >>fd, 20*"-" for n, dt in iter(pat): if n > limit: break @@ -266,5 +262,8 @@ fd.close() if __name__ == '__main__': - forumTimeTable(tzlist=('UTC',)) + #forumTimeTable(tzlist=('CET',)) + #forumTimeTable(tzlist=('UTC',)) + forumTimeTable(tzlist=('US/Pacific',)) + #forumTimeTable() #allTzList() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |