SF.net SVN: fclient: [595] trunk/fclient/src/fclient/Ui_ViewConnection.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-07-12 13:40:30
|
Revision: 595
http://fclient.svn.sourceforge.net/fclient/?rev=595&view=rev
Author: jUrner
Date: 2008-07-12 06:40:27 -0700 (Sat, 12 Jul 2008)
Log Message:
-----------
more work on widget
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewConnection.py
Modified: trunk/fclient/src/fclient/Ui_ViewConnection.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewConnection.py 2008-07-12 13:40:07 UTC (rev 594)
+++ trunk/fclient/src/fclient/Ui_ViewConnection.py 2008-07-12 13:40:27 UTC (rev 595)
@@ -15,7 +15,9 @@
class Settings(config.SettingsBase):
_key_ = config.IdViewConnectionWidget
_settings_ = (
- ('ConnectionTimerTimeout', 'UInt', 100, config.SettingScopeExpert),
+ #TODO: time secs vsmilis. should be either secs or milis. fix in fcp2.Client.connect
+ ('ConnectionTimerTimeout', 'UInt', 800, config.SettingScopeExpert),
+ ('ConnectionTimerMaxDuration', 'UInt', 20, config.SettingScopeExpert),
('AutoConnect', 'Bool', False, config.SettingScopeUser),
('ConnectionName', 'String', '', config.SettingScopeUser), #TODO: we need a python ansi string
@@ -35,7 +37,10 @@
self.connect(self, QtCore.SIGNAL('timeout()'), self.handleNext)
def start(self, settings):
- self.iterConnect = config.fcpClient.iterConnect() #TODO: ...more args
+ self.iterConnect = config.fcpClient.iterConnect(
+ duration=settings.value('ConnectionTimerMaxDuration'),
+ timeout=0
+ )
QtCore.QTimer.start(self, settings.value('ConnectionTimerTimeout'))
def handleNext(self):
@@ -54,6 +59,7 @@
class ViewConnectionWidget(QtGui.QWidget, Ui_ViewConnectionWidget):
IdBtConnect = 'btConnect'
+ IdckAutoConnect = 'ckAutoConnect'
IdEdConnectionHost = 'edConnectionHost' #TODO: combobox? validate input.
IdSpinConnectionPort = 'spinConnectionPort'
@@ -82,14 +88,15 @@
return
self._isCreated = True
- self.connect(
- self.controlById(self.IdBtConnect),
- QtCore.SIGNAL('clicked(bool)'),
- self.handleBtConnectClicked
+
+ self.settings.restore()
+
+ #TODO: when on a tab closeEvent() is never called. how to disconnect on close?
+ # maybe fcp2.events should use weakrefs?
+ config.fcpClient.events += (
+ (config.fcpClient.events.ClientDisconnected, self.handleFcpClientDisconected),
)
- self.settings.restore()
-
# setup host / port boxes
edHost = self.controlById(self.IdEdConnectionHost)
edHost.setText(self.settings.value('ConnectionHost'))
@@ -98,11 +105,17 @@
spinPort.setRange(0, 0xFFFF) #TODO: no idea if port range (0, 0xFFFF) this is reasonable
spinPort.setValue(self.settings.value('ConnectionPort'))
- # autoconnect if desired
- if self.settings.value('AutoConnect'):
- self.controlById(self.IdBtConnect).setChecked(True)
- self.onBtConnectClicked(True)
-
+ # setup Connect button and AutoConnect checkbox
+ doAutoConnect = self.settings.value('AutoConnect')
+ ck = self.controlById(self.IdckAutoConnect)
+ ck.setChecked(doAutoConnect)
+ self.connect(ck, QtCore.SIGNAL('stateChanged(int)'), self.handleCkAutoConnectStateChanged)
+
+ bt = self.controlById(self.IdBtConnect)
+ self.connect(bt, QtCore.SIGNAL('clicked(bool)'), self.handleBtConnectClicked)
+ if doAutoConnect:
+ self.controlById(self.IdBtConnect).click()
+
#########################################
## overwritten methods
#########################################
@@ -110,7 +123,9 @@
Ui_ViewConnectionWidget.retranslateUi(self, w)
bt = self.controlById(self.IdBtConnect)
if bt.isChecked():
- bt.setText()
+ bt.setText(QtGui.QApplication.translate("ViewConnectionWidget", "Connect", None, QtGui.QApplication.UnicodeUTF8))
+ else:
+ bt.setText(QtGui.QApplication.translate("ViewConnectionWidget", "Disconnect", None, QtGui.QApplication.UnicodeUTF8))
#########################################
## event handlers
@@ -118,22 +133,27 @@
def handleBtConnectClicked(self, checked):
bt = self.controlById(self.IdBtConnect)
if checked:
- bt.setText(QtGui.QApplication.translate(config.IdViewConnectionWidget, "Disconnect", None, QtGui.QApplication.UnicodeUTF8))
-
+ bt.setText(QtGui.QApplication.translate("ViewConnectionWidget", "Disconnect", None, QtGui.QApplication.UnicodeUTF8))
if config.fcpClient.isConnected():
config.fcpClient.close()
self._connectionTimer.start(self.settings)
-
else:
- bt.setText(QtGui.QApplication.translate(config.IdViewConnectionWidget, "Connect", None, QtGui.QApplication.UnicodeUTF8))
- config.fcpClient.close()
+ bt.setText(QtGui.QApplication.translate("ViewConnectionWidget", "Connect", None, QtGui.QApplication.UnicodeUTF8))
self._connectionTimer.stop()
+ if config.fcpClient.isConnected():
+ config.fcpClient.close()
+
+
+ def handleCkAutoConnectStateChanged(self, state):
+ self.settings.setValues(AutoConnect=state == QtCore.Qt.Checked)
#########################################
## fcp event handlers
#########################################
- def handleFcpClientDisconected(self, event):
- pass
+ def handleFcpClientDisconected(self, event, msg):
+ bt = self.controlById(self.IdBtConnect)
+ if bt.isChecked():
+ bt.click()
#**********************************************************************************
#
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|