[Pymoul-svn] SF.net SVN: pymoul: [134] pymoul/trunk/src/moul
Status: Alpha
Brought to you by:
tiran
|
From: <ti...@us...> - 2007-02-05 00:33:59
|
Revision: 134
http://pymoul.svn.sourceforge.net/pymoul/?rev=134&view=rev
Author: tiran
Date: 2007-02-04 16:33:55 -0800 (Sun, 04 Feb 2007)
Log Message:
-----------
Added logging meta class
Added save question message box
Modified Paths:
--------------
pymoul/trunk/src/moul/file/utils.py
pymoul/trunk/src/moul/log.py
pymoul/trunk/src/moul/qt/localization.py
pymoul/trunk/src/moul/qt/mainwindow.py
pymoul/trunk/src/moul/qt/utils.py
pymoul/trunk/src/moul/qt/wdysini.py
Property Changed:
----------------
pymoul/trunk/src/moul/file/utils.py
Modified: pymoul/trunk/src/moul/file/utils.py
===================================================================
--- pymoul/trunk/src/moul/file/utils.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/file/utils.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -20,8 +20,8 @@
from __future__ import absolute_import
__author__ = "Christian Heimes"
-__version__ = "$Id: kiimage.py 129 2007-02-03 18:41:23Z tiran $"
-__revision__ = "$Revision: 129 $"
+__version__ = "$Id$"
+__revision__ = "$Revision$"
import os
import time
Property changes on: pymoul/trunk/src/moul/file/utils.py
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Modified: pymoul/trunk/src/moul/log.py
===================================================================
--- pymoul/trunk/src/moul/log.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/log.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -130,26 +130,3 @@
# Redirect stdout and stderr to logger when running as frozen app
#sys.stdout = LoggingStdout(getLogger('stdout').info)
#sys.stderr = LoggingStdout(getLogger('stderr').error)
-
-__LOG_SIGNALS__ = not __FROZEN__
-def signalLogDecorator(__logger__):
- """Decorator to log signals
-
- Logs signal methods to __logger__.debug() including func name, args
- and kwargs.
-
- signalLogDecorator() is a NOOP when running as a sys.frozen program.
- """
- def wrapper(func):
- if __LOG_SIGNALS__:
- def logwrapper(*args, **kwargs):
- __logger__.debug("%s(*%s, **%s)" % (func.__name__,
- repr(args[1:]), repr(kwargs)))
- return func(*args, **kwargs)
- logwrapper._signature = getattr(func, '_signature', None)
- logwrapper.__name__ = func.__name__
- logwrapper.__doc__ = func.__doc__
- return logwrapper
- else:
- return func
- return wrapper
Modified: pymoul/trunk/src/moul/qt/localization.py
===================================================================
--- pymoul/trunk/src/moul/qt/localization.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/qt/localization.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -32,19 +32,21 @@
from moul.file.localization import translationRegistry as tr
from moul.log import getLogger
-from moul.log import signalLogDecorator
from moul.qt.simpleprogressbar import SimpleProgressbar
from moul.qt.threadlet import YieldingThreadlet
from moul.qt.utils import QNamespaceContainer
+from moul.qt.utils import QSignalLoggerMetaclass
-
LOG = getLogger('moul.loc')
class LocalizationContainer(QNamespaceContainer):
"""
Mixin for documentation tab
"""
+ __metaclass__ = QSignalLoggerMetaclass
+ __logger__ = LOG.debug
+
def initialize(self):
"""
@qtsignal loadLocalization(): load loc data
@@ -53,12 +55,6 @@
self._documents_clear('language')
self.connect(self.context, SIGNAL('loadLocalization()'),
self.on_localization_doload)
- self.connect(self.cb_doc_language, SIGNAL("currentIndexChanged(int)"),
- self.on_cb_doc_language_currentIndexChanged)
- self.connect(self.cb_doc_age, SIGNAL("currentIndexChanged(int)"),
- self.on_cb_doc_age_currentIndexChanged)
- self.connect(self.cb_doc_set, SIGNAL("currentIndexChanged(int)"),
- self.on_cb_doc_set_currentIndexChanged)
@staticmethod
def insertDummyQ(lst):
@@ -66,7 +62,6 @@
return QtCore.QStringList(dummy+lst)
@pyqtSignature("")
- @signalLogDecorator(LOG)
def on_localization_doload(self):
"""
@qtslot loadLocalization(): Load localization
@@ -101,7 +96,6 @@
self.threadlet.detach(loc)
@pyqtSignature("")
- @signalLogDecorator(LOG)
def on_localization_loaded(self):
"""
@qtslot finished(): self._journal_threadlet
@@ -130,7 +124,6 @@
self.cb_doc_language.setEnabled(True)
@pyqtSignature("")
- @signalLogDecorator(LOG)
def on_pb_doc_loadjournals_clicked(self):
"""
L{LocalizationContainer}
@@ -151,7 +144,6 @@
qobj.setEnabled(False)
@pyqtSignature("int")
- @signalLogDecorator(LOG)
def on_cb_doc_language_currentIndexChanged(self, idx):
self._documents_clear('age')
if idx <= 0:
@@ -164,7 +156,6 @@
self.cb_doc_age.setEnabled(True)
@pyqtSignature("int")
- @signalLogDecorator(LOG)
def on_cb_doc_age_currentIndexChanged(self, idx):
self._documents_clear('set')
if idx <= 0:
@@ -178,7 +169,6 @@
self.cb_doc_set.setEnabled(True)
@pyqtSignature("int")
- @signalLogDecorator(LOG)
def on_cb_doc_set_currentIndexChanged(self, idx):
self._documents_clear('element')
if idx <= 0:
@@ -192,7 +182,6 @@
self.cb_doc_element.setEnabled(True)
@pyqtSignature("int")
- @signalLogDecorator(LOG)
def on_cb_doc_element_currentIndexChanged(self, idx):
self._documents_clear('doc')
if idx <= 0:
Modified: pymoul/trunk/src/moul/qt/mainwindow.py
===================================================================
--- pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/qt/mainwindow.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -36,7 +36,6 @@
from moul.file.directory import UruGameDataDirectory
from moul.file.directory import UruPersonalDataDirectory
from moul.log import getLogger
-from moul.log import signalLogDecorator
from moul.osdependent import isMoulRunning
from moul.server.ping import ServerList
from moul.server.ping import isSocketError
@@ -47,10 +46,14 @@
from moul.qt.simpleprogressbar import SimpleProgressbar
from moul.qt.threadlet import YieldingThreadlet
from moul.qt.ui.mainwindow import Ui_MainWindow
+from moul.qt import utils as qtutils
LOG = getLogger('moul.qt')
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
+ __metaclass__ = qtutils.QSignalLoggerMetaclass
+ __logger__ = LOG.debug
+
def __init__(self):
QtGui.QMainWindow.__init__(self)
# Set up the user interface from Designer.
@@ -88,7 +91,6 @@
self.on_moulIsRunning)
self._moulrunning_thread.startChecker(5.0) # check now and every 5 seconds
- @signalLogDecorator(LOG)
def on_moulIsRunning(self, boolean):
"""
@qtslot moulIsRunning(bool): notify if moul is running
@@ -127,12 +129,13 @@
@param event: close event
@type event: QCloseEvent instance
"""
- #if self._dirty:
- # event.reject()
- # return False
-
- self._systray_close()
- event.accept()
+ accept = self.handleDirtyOnClose()
+ if accept:
+ self._systray_close()
+ self._moulrunning_thread.terminate()
+ event.accept()
+ else:
+ event.ignore()
def keyPressEvent(self, event):
"""
@@ -179,10 +182,37 @@
self.main_buttonbox_save.setEnabled(False)
self.main_buttonbox_reset.setEnabled(False)
+ def handleDirtyOnClose(self):
+ """
+ Handle dirty status on close
+
+ @return: Accept event?
+ @rtype: bool
+ """
+ if not self.isDirty():
+ return True
+
+ mb = qtutils.saveMB(
+ self,
+ self.trUtf8("Quit"),
+ self.trUtf8("Do you want to save your changes or discard "
+ "them ?")
+ )
+ button = mb.exec_()
+ if button == QtGui.QMessageBox.Save:
+ self.main_buttonbox_save.click()
+ return True
+ elif button == QtGui.QMessageBox.Cancel:
+ return False
+ elif button == QtGui.QMessageBox.Discard:
+ return True
+ else:
+ LOG.critical("Unknow button %s" % button)
+ return False
+
# ************************************************************************
# tasks
@pyqtSignature("")
- @signalLogDecorator(LOG)
def on_pb_kiimage_repair_clicked(self):
"""
Clicked repair button
@@ -206,7 +236,6 @@
self._kiimage_progressbar.show()
self._kiimage_threadlet.detach(kimover)
- @signalLogDecorator(LOG)
def on_pb_kiimage_repair_done(self):
"""
Repair threadlet done
@@ -271,6 +300,7 @@
self.lb_pacific_utc.setText(QtCore.QString(txt))
@pyqtSignature("")
+ @qtutils.skipLogging
def on_timezone_timer_timeout(self):
"""
SIGNAL: QTimer timeout
@@ -302,12 +332,10 @@
self.connect(thread, SIGNAL("ping(const QString&, float)"),
self.on_pingthread_ping)
- @signalLogDecorator(LOG)
def on_pingthread_started(self):
self.button_ping.setEnabled(False)
self.text_ping.clear()
- @signalLogDecorator(LOG)
def on_pingthread_done(self):
self.button_ping.setEnabled(True)
@@ -330,7 +358,6 @@
self.text_ping.insertPlainText("PING error: %s\n" % errmsg)
@pyqtSignature("bool")
- @signalLogDecorator(LOG)
def on_button_ping_clicked(self, ignore=False):
thread = self._ping_thread
if not thread.isRunning():
Modified: pymoul/trunk/src/moul/qt/utils.py
===================================================================
--- pymoul/trunk/src/moul/qt/utils.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/qt/utils.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -14,7 +14,7 @@
#
# 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
+# Temple Place, Suitel 330, Boston, MA 02111-1307 USA
#
"""Misc utilities
@@ -27,15 +27,81 @@
import logging
import re
+import sip
import warnings
from PyQt4.QtCore import QObject
from PyQt4.QtCore import SIGNAL
from PyQt4 import QtGui
-from types import UnboundMethodType as UnboundMethod
+from types import UnboundMethodType
+from types import FunctionType
_marker=object()
SLOT_RE = re.compile('^on_(.+)_([^_]+)$')
+def skipLogging(func):
+ """Decorator to skip logging
+
+ @param func: a function object
+ @type func: FunctionType
+ """
+ func.__qsignallogger__ = False
+ return func
+
+def logDecorator(func, logger=None):
+ """
+ Log decorator for QSignalLoggerMetaclass
+
+ @param logger: a callable or None
+ @param func: a function object
+ @type func: FunctionType
+ """
+ if logger is None:
+ logger = logging.debug
+ def logwrapper(*args, **kwargs):
+ name = func.__name__
+ logger("Call: %s(%s %s)" % (name,
+ repr(args[1:]) if len(args) > 1 else '',
+ repr(kwargs) if kwargs else ''))
+ return func(*args, **kwargs)
+
+ logwrapper.__name__ = func.__name__
+ logwrapper.__doc__ = func.__doc__
+ signature = getattr(func, '_signature', None)
+ if signature is not None:
+ logwrapper._signature = signature
+ return logwrapper
+
+class QSignalLoggerMetaclass(sip.wrappertype):
+ """
+ QSignal logger meta class
+
+ Example:
+ >>> class MyClass:
+ ... __metaclass__ = QSignalLogger
+ ... __logger__ = aCallableLoggerFunction
+ ...
+ ... @pyqtSignature("bool")
+ ... def on_mybutton_clicked(self, boolean):
+ ... pass
+ ...
+ ... @pyqtSignature("")
+ ... @skipLogging
+ ... def on_notinteresting_clicked(self, boolean):
+ ... pass
+
+ """
+ def __new__(cls, name, bases, dict):
+ logger = dict.get('__logger__', None)
+ for key, value in dict.items():
+ # on_*_*
+ if not isinstance(value, FunctionType):
+ continue
+ if getattr(value, '__qsignallogger__', None) is not None:
+ continue
+ if (key.startswith('on_') and key.find('_', 4) > 0):
+ dict[key] = logDecorator(value, logger)
+ return sip.wrappertype.__new__(cls, name, bases, dict)
+
class QNamespaceContainer(QObject):
"""
Base class to assemble methods and logic in its own class.
@@ -159,7 +225,7 @@
# (container, callobj))
for name in dir(callobj):
method = getattr(callobj, name)
- if not isinstance(method, UnboundMethod):
+ if not isinstance(method, UnboundMethodType):
continue
mo = SLOT_RE.match(name)
@@ -185,7 +251,7 @@
#logging.debug('Connecting: %s to %s: %s' % (widget, signature, method))
QObject.connect(widget, SIGNAL(signature), method)
-def _mkMessageBox(context, icon='Information'):
+def _mkMessageBox(context, title, text, icon='Information'):
"""
Create a message box
"""
@@ -197,33 +263,35 @@
mb.setWindowIcon(QtGui.QIcon(":/resources/uru_icon_32x32.png"))
mb.setIcon(getattr(QtGui.QMessageBox, icon))
mb.setStandardButtons(QtGui.QMessageBox.Close)
+ mb.setWindowTitle(title)
+ mb.setText(text)
return mb
-
def criticalMB(context, title, text):
"""
Critical message box
"""
- mb = _mkMessageBox(context, icon='Critical')
- mb.setWindowTitle(title)
- mb.setText(text)
- return mb
+ return _mkMessageBox(context, title, text, icon='Critical')
def warningMB(context, title, text):
"""
warning message box
"""
- mb = _mkMessageBox(context, icon='Warning')
- mb.setWindowTitle(title)
- mb.setText(text)
- return mb
+ return _mkMessageBox(context, title, text, icon='Warning')
def infoMB(context, title, text):
"""
Info message box
"""
- mb = _mkMessageBox(context, icon='Information')
+ mb = _mkMessageBox(context, title, text, icon='Information')
mb.setStandardButtons(QtGui.QMessageBox.Ok)
- mb.setWindowTitle(title)
- mb.setText(text)
return mb
+
+def saveMB(context, title, text):
+ """
+ A question box with save discard cancel
+ """
+ mb = _mkMessageBox(context, title, text, icon='Question')
+ mb.setStandardButtons(QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard
+ | QtGui.QMessageBox.Cancel)
+ return mb
Modified: pymoul/trunk/src/moul/qt/wdysini.py
===================================================================
--- pymoul/trunk/src/moul/qt/wdysini.py 2007-02-04 15:41:40 UTC (rev 133)
+++ pymoul/trunk/src/moul/qt/wdysini.py 2007-02-05 00:33:55 UTC (rev 134)
@@ -37,32 +37,36 @@
from moul.file.directory import UruPersonalDataDirectory
from moul.file.wdysini import videoModes
from moul.log import getLogger
-from moul.log import signalLogDecorator
from moul.qt.utils import QNamespaceContainer
+from moul.qt.utils import QSignalLoggerMetaclass
LOG = getLogger('moul.qt')
class IniFileContainer(QNamespaceContainer):
+ __metaclass__ = QSignalLoggerMetaclass
+ __logger__ = LOG.debug
+
def initialize(self):
# graphics.ini
+ gini = self.urupersonaldir.graphicsini
self.connect(self.context, SIGNAL("graphicsChanged(bool)"), self.on_graphicsChanged)
- self.connect(self.context, SIGNAL("graphicsini_loaded()"), self.on_graphicsini_loaded)
+ self.connect(self.context, SIGNAL("graphicsini_load()"), self.on_graphicsini_load)
self.connect(self.context, SIGNAL("graphicsini_reset()"), self.on_graphicsini_reset)
self.connect(self.context, SIGNAL("graphicsini_save()"), self.on_graphicsini_save)
self.connect(self.main_buttonbox_reset, SIGNAL("clicked()"), self.on_graphicsini_reset)
self.connect(self.main_buttonbox_save, SIGNAL("clicked()"), self.on_graphicsini_save)
# audio.ini
+ aini = self.urupersonaldir.audioini
self.connect(self.context, SIGNAL("audioChanged(bool)"), self.on_audioChanged)
- self.connect(self.context, SIGNAL("audioini_loaded()"), self.on_audioini_loaded)
+ self.connect(self.context, SIGNAL("audioini_load()"), self.on_audioini_load)
self.connect(self.context, SIGNAL("audiini_reset()"), self.on_audioini_reset)
self.connect(self.context, SIGNAL("audiini_save()"), self.on_audioini_save)
self.connect(self.main_buttonbox_reset, SIGNAL("clicked()"), self.on_audioini_reset)
self.connect(self.main_buttonbox_save, SIGNAL("clicked()"), self.on_audioini_save)
+ # emit load
+ self.context.emit(SIGNAL("audioini_load()")) # XXX: hard coded emit
+ self.context.emit(SIGNAL("graphicsini_load()")) # XXX: hard coded emit
- self.context.emit(SIGNAL("audioini_loaded()")) # XXX: hard coded emit
- self.context.emit(SIGNAL("graphicsini_loaded()")) # XXX: hard coded emit
-
- @signalLogDecorator(LOG)
@pyqtSignature("bool")
def on_graphicsChanged(self, boolean):
"""
@@ -70,7 +74,6 @@
"""
self.context.notifyDirty('graphicsini', boolean)
- @signalLogDecorator(LOG)
@pyqtSignature("bool")
def on_audioChanged(self, boolean):
"""
@@ -78,11 +81,10 @@
"""
self.context.notifyDirty('audioini', boolean)
- @signalLogDecorator(LOG)
@pyqtSignature("")
- def on_graphicsini_loaded(self):
+ def on_graphicsini_load(self):
"""
- @qtslot graphicsini_loaded(): notify when a graphics.ini is loaded
+ @qtslot graphicsini_load(): load ini
"""
gini = self.urupersonaldir.graphicsini
try:
@@ -96,7 +98,6 @@
self._graphicsini_setstate()
self.emit(SIGNAL("graphicsChanged(bool)"), False)
- @signalLogDecorator(LOG)
@pyqtSignature("")
def on_graphicsini_reset(self):
"""
@@ -106,7 +107,6 @@
self.urupersonaldir.graphicsini.reset()
self._graphicsini_setstate()
- @signalLogDecorator(LOG)
@pyqtSignature("")
def on_graphicsini_save(self):
"""
@@ -136,7 +136,6 @@
self.cb_gra_vsync.setChecked(gini.vsync)
self.cb_gra_shadow.setChecked(gini.shadow_enabled)
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_screenres_valueChanged(self, idx):
"""
@@ -145,7 +144,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.screenres = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_screenres_sliderMoved(self, idx):
"""
@@ -155,7 +153,6 @@
txt = videoModes.getVidModeHuman(idx)
self.lb_screenres.setText(QtCore.QString(txt))
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_quality_valueChanged(self, idx):
"""
@@ -164,7 +161,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.quality = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_texture_valueChanged(self, idx):
"""
@@ -173,7 +169,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.texture = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_antialias_valueChanged(self, idx):
"""
@@ -182,7 +177,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.antialias = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_anisotropic_valueChanged(self, idx):
"""
@@ -191,7 +185,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.anisotropic = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_gra_shadow_valueChanged(self, idx):
"""
@@ -200,7 +193,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.shadow = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_gra_windowed_stateChanged(self, state):
"""
@@ -209,7 +201,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.windowed = state
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_gra_vsync_stateChanged (self, state):
"""
@@ -218,7 +209,6 @@
self.emit(SIGNAL("graphicsChanged(bool)"), True)
self.urupersonaldir.graphicsini.vsync = state
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_gra_shadow_stateChanged (self, state):
"""
@@ -230,10 +220,9 @@
# ************************************************************************
# audio settings
- @signalLogDecorator(LOG)
- def on_audioini_loaded(self):
+ def on_audioini_load(self):
"""
- SIGNAL: audioini_loaded()
+ SIGNAL: audioini_load()
"""
aini = self.urupersonaldir.audioini
try:
@@ -247,7 +236,6 @@
self._audioini_setstate()
self.emit(SIGNAL("audioChanged(bool)"), False)
- @signalLogDecorator(LOG)
def on_audioini_reset(self):
"""
SIGNAL audioini_reset()
@@ -256,7 +244,6 @@
self.urupersonaldir.audioini.reset()
self._audioini_setstate()
- @signalLogDecorator(LOG)
def on_audioini_save(self):
"""
SIGNAL audioini_save()
@@ -284,61 +271,51 @@
self.cb_aud_mute.setChecked(aini.mute)
self.cb_aud_voicechat.setChecked(aini.enablevoice)
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_device_valueChanged(self, idx):
self.urupersonaldir.audioini.device = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_device_sliderMoved(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
txt = self.urupersonaldir.audioini.getDeviceName(idx)
self.lb_aud_device.setText(QtCore.QString(txt[1:-1]))
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_npc_valueChanged(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.npc = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_music_valueChanged(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.music = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_fx_valueChanged(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.fx = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_ambience_valueChanged(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.ambience = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_sl_aud_priority_valueChanged(self, idx):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.priority = idx
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_aud_eax_stateChanged (self, state):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.eax = state
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_aud_mute_stateChanged (self, state):
self.emit(SIGNAL("audioChanged(bool)"), True)
self.urupersonaldir.audioini.mute = state
- @signalLogDecorator(LOG)
@pyqtSignature("int")
def on_cb_aud_voicechat_stateChanged (self, state):
self.emit(SIGNAL("audioChanged(bool)"), True)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|