Thread: SF.net SVN: fclient: [28] trunk/fclient/config.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2007-11-01 14:55:17
|
Revision: 28
http://fclient.svn.sourceforge.net/fclient/?rev=28&view=rev
Author: jUrner
Date: 2007-11-01 07:55:22 -0700 (Thu, 01 Nov 2007)
Log Message:
-----------
added global config module
Added Paths:
-----------
trunk/fclient/config.py
Added: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py (rev 0)
+++ trunk/fclient/config.py 2007-11-01 14:55:22 UTC (rev 28)
@@ -0,0 +1,131 @@
+"""Some app wide globals
+
+"""
+
+import os
+import thread
+
+from PyQt4 import QtCore
+from fclient_lib.qt4ex import assistant, language, settingsbase, resources
+
+_ = os.path.join
+#***********************************************************************
+#
+#***********************************************************************
+OrgName = 'Juergen Urner'
+AppName = 'fclient'
+
+TranslationPrefixes = ('fclient_', )
+
+BaseDir = os.path.dirname(os.path.abspath(__file__))
+DocDir = os.path.join(BaseDir, 'doc')
+LanguageDir = os.path.join(BaseDir, 'lang')
+ResourceDir = os.path.join(BaseDir, 'res')
+
+AssistantProfile = _(DocDir, 'assistant.adp')
+DocPages = { #TODO: just sample code here
+ "Index": _(DocDir, 'index.html'),
+ "DlgPreferences": _(DocDir, 'dialogs', 'preferences.html'),
+ }
+
+#*****************************************************************************
+#
+#*****************************************************************************
+class Config(object):
+
+ def __init__(self, parent):
+ """
+ @ivar assistant: app global user docs management
+ @ivar defaultDownloadsDir: default directory for downloads
+ @ivar fcpClient: app global FcpClient
+ @ivar language: app global language management
+ @ivar nodeHello: NodeHello message as returned from the client as soon as a connection
+ is established
+ @ivar resources: app global resource management
+ @ivar settings: global settings
+
+ """
+
+ #TODO: assistant can not handle locale dependend docs yet
+ self.assistant = assistant.Assistant(parent, profile=AssistantProfile, pages=DocPages)
+ self.defaultDownloadsDir = os.path.join(BaseDir, 'downloads')
+ self.fcpClient = None
+ self.language = language.Language([LanguageDir, ], translationPrefixes=TranslationPrefixes)
+ self.nodeHello = None
+ self.resources = resources.Resources([ResourceDir, ], )
+ self.settings = settingsbase.Settings(OrgName, AppName)
+
+ self._pollTimer = QtCore.QTimer()
+ self._connectMethod = None
+ self._connectTimer = QtCore.QTimer()
+ QtCore.QObject.connect(
+ self._connectTimer,
+ QtCore.SIGNAL('timeout()'),
+ self.handleFcpConnect
+ )
+
+
+ def connectFcpNode(self, eventConnectedHandler):
+ """Establishes a connection to the freenet node
+ @param eventConnectedHandler: handler to handle the EventClientConnected of the client
+ @note: the clients EventClientConnected gets automatically connected in the call. So no
+ need to connect once more.
+ @note: make shure not to access the 'fcpClient' or 'nodeHello' attrs of the config before
+ the handler gets called.
+ """
+ if self.fcpClient is None:
+ # some magic here to determine the client version to use
+ from fclient_lib.fcp.fcp2_0 import FcpClient
+ self.fcpClient = FcpClient(
+ connectionName='',
+ verbosity=FcpClient.Verbosity.Debug,
+ )
+ self.fcpClient.EventClientDisconnected += self.handleFcpClientDisconnected
+ QtCore.QObject.connect(
+ self._pollTimer,
+ QtCore.SIGNAL('timeout()'),
+ self.fcpClient.next
+ )
+ self._connectMethod = self.fcpClient.connect()
+ self.fcpClient.EventClientConnected += eventConnectedHandler
+ self._connectTimer.start(100)
+
+ else:
+ cb(self.fcpClient.EventClientConnected, self.nodeHello)
+
+
+ def handleFcpConnect(self):
+ """Handles establishing of the node connection"""
+ self._connectTimer.stop()
+ try:
+ result = self._connectMethod.next()
+ if result is not None:
+ self.nodeHello = result
+ self._pollTimer.start(100)
+
+ except StopIteration:
+ return
+ self._connectTimer.start()
+
+
+ def handleFcpClientDisconnected(self, params):
+ """Handles client disconneting"""
+ self.fcpClient = None
+ self.nodeHello = None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2007-11-02 08:30:16
|
Revision: 35
http://fclient.svn.sourceforge.net/fclient/?rev=35&view=rev
Author: jUrner
Date: 2007-11-02 01:30:13 -0700 (Fri, 02 Nov 2007)
Log Message:
-----------
poll delays can now be set + adjustements to recent Fcp channges
Modified Paths:
--------------
trunk/fclient/config.py
Modified: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py 2007-11-02 08:28:13 UTC (rev 34)
+++ trunk/fclient/config.py 2007-11-02 08:30:13 UTC (rev 35)
@@ -28,13 +28,20 @@
"DlgPreferences": _(DocDir, 'dialogs', 'preferences.html'),
}
+
#*****************************************************************************
#
#*****************************************************************************
class Config(object):
- def __init__(self, parent):
+ def __init__(self, parent, connectDelay=100, pollDelay=300):
"""
+ @param parent: parent widget
+ @param connectDelay: (miliseconds) frequency by qich a connection to the node is made
+ @param pollDelay: (miliseconds) frequency the node is queried for the next message. A low
+ value will make messages from the node come in quickly but make the gui unresponsive
+ to user interaction
+
@ivar assistant: app global user docs management
@ivar defaultDownloadsDir: default directory for downloads
@ivar fcpClient: app global FcpClient
@@ -49,12 +56,20 @@
#TODO: assistant can not handle locale dependend docs yet
self.assistant = assistant.Assistant(parent, profile=AssistantProfile, pages=DocPages)
self.defaultDownloadsDir = os.path.join(BaseDir, 'downloads')
- self.fcpClient = None
+
self.language = language.Language([LanguageDir, ], translationPrefixes=TranslationPrefixes)
- self.nodeHello = None
+
self.resources = resources.Resources([ResourceDir, ], )
self.settings = settingsbase.Settings(OrgName, AppName)
+ self.fcpClient = None
+ self.nodeHello = None
+
+ self.connectDelay = connectDelay
+ self.pollDelay = pollDelay
+
+
+
self._pollTimer = QtCore.QTimer()
self._connectMethod = None
self._connectTimer = QtCore.QTimer()
@@ -67,8 +82,8 @@
def connectFcpNode(self, eventConnectedHandler):
"""Establishes a connection to the freenet node
- @param eventConnectedHandler: handler to handle the EventClientConnected of the client
- @note: the clients EventClientConnected gets automatically connected in the call. So no
+ @param eventConnectedHandler: handler to handle the events.ClientConnected of the client
+ @note: the clients events.ClientConnected gets automatically connected in the call. So no
need to connect once more.
@note: make shure not to access the 'fcpClient' or 'nodeHello' attrs of the config before
the handler gets called.
@@ -78,20 +93,20 @@
from fclient_lib.fcp.fcp2_0 import FcpClient
self.fcpClient = FcpClient(
connectionName='',
- verbosity=FcpClient.Verbosity.Debug,
+ #verbosity=FcpClient.Verbosity.Debug,
)
- self.fcpClient.EventClientDisconnected += self.handleFcpClientDisconnected
+ self.fcpClient.events.ClientDisconnected += self.handleFcpClientDisconnected
QtCore.QObject.connect(
self._pollTimer,
QtCore.SIGNAL('timeout()'),
self.fcpClient.next
)
self._connectMethod = self.fcpClient.connect()
- self.fcpClient.EventClientConnected += eventConnectedHandler
- self._connectTimer.start(100)
+ self.fcpClient.events.ClientConnected += eventConnectedHandler
+ self._connectTimer.start(self.connectDelay)
else:
- cb(self.fcpClient.EventClientConnected, self.nodeHello)
+ cb(self.fcpClient.events.ClientConnected, self.nodeHello)
def handleFcpConnect(self):
@@ -101,7 +116,7 @@
result = self._connectMethod.next()
if result is not None:
self.nodeHello = result
- self._pollTimer.start(100)
+ self._pollTimer.start(self.pollDelay)
except StopIteration:
return
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2007-11-02 16:02:47
|
Revision: 39
http://fclient.svn.sourceforge.net/fclient/?rev=39&view=rev
Author: jUrner
Date: 2007-11-02 09:02:52 -0700 (Fri, 02 Nov 2007)
Log Message:
-----------
notes
Modified Paths:
--------------
trunk/fclient/config.py
Modified: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py 2007-11-02 16:02:28 UTC (rev 38)
+++ trunk/fclient/config.py 2007-11-02 16:02:52 UTC (rev 39)
@@ -80,6 +80,7 @@
)
+ #TODO: have to find a way to handle multiple clients
def connectFcpNode(self, eventConnectedHandler):
"""Establishes a connection to the freenet node
@param eventConnectedHandler: handler to handle the events.ClientConnected of the client
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2007-11-04 17:29:34
|
Revision: 41
http://fclient.svn.sourceforge.net/fclient/?rev=41&view=rev
Author: jUrner
Date: 2007-11-04 09:29:34 -0800 (Sun, 04 Nov 2007)
Log Message:
-----------
new: FcPClient manager
Modified Paths:
--------------
trunk/fclient/config.py
Modified: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py 2007-11-04 17:28:46 UTC (rev 40)
+++ trunk/fclient/config.py 2007-11-04 17:29:34 UTC (rev 41)
@@ -7,7 +7,9 @@
from PyQt4 import QtCore
from fclient_lib.qt4ex import assistant, language, settingsbase, resources
+from fclient_ui.fcp_client_manager import FcpClientManager
+
_ = os.path.join
#***********************************************************************
#
@@ -34,7 +36,7 @@
#*****************************************************************************
class Config(object):
- def __init__(self, parent, connectDelay=100, pollDelay=300):
+ def __init__(self, parent):
"""
@param parent: parent widget
@param connectDelay: (miliseconds) frequency by qich a connection to the node is made
@@ -42,95 +44,32 @@
value will make messages from the node come in quickly but make the gui unresponsive
to user interaction
- @ivar assistant: app global user docs management
+ @ivar assistant: app global user documentation management
@ivar defaultDownloadsDir: default directory for downloads
- @ivar fcpClient: app global FcpClient
+ @ivar fcpClientManager: app global FcpClientManager
@ivar language: app global language management
@ivar nodeHello: NodeHello message as returned from the client as soon as a connection
is established
@ivar resources: app global resource management
- @ivar settings: global settings
+ @ivar settings: app global settings
"""
#TODO: assistant can not handle locale dependend docs yet
self.assistant = assistant.Assistant(parent, profile=AssistantProfile, pages=DocPages)
self.defaultDownloadsDir = os.path.join(BaseDir, 'downloads')
-
+ self.fcpClientManager = FcpClientManager(parent)
self.language = language.Language([LanguageDir, ], translationPrefixes=TranslationPrefixes)
-
self.resources = resources.Resources([ResourceDir, ], )
self.settings = settingsbase.Settings(OrgName, AppName)
- self.fcpClient = None
- self.nodeHello = None
- self.connectDelay = connectDelay
- self.pollDelay = pollDelay
- self._pollTimer = QtCore.QTimer()
- self._connectMethod = None
- self._connectTimer = QtCore.QTimer()
- QtCore.QObject.connect(
- self._connectTimer,
- QtCore.SIGNAL('timeout()'),
- self.handleFcpConnect
- )
-
- #TODO: have to find a way to handle multiple clients
- def connectFcpNode(self, eventConnectedHandler):
- """Establishes a connection to the freenet node
- @param eventConnectedHandler: handler to handle the events.ClientConnected of the client
- @note: the clients events.ClientConnected gets automatically connected in the call. So no
- need to connect once more.
- @note: make shure not to access the 'fcpClient' or 'nodeHello' attrs of the config before
- the handler gets called.
- """
- if self.fcpClient is None:
- # some magic here to determine the client version to use
- from fclient_lib.fcp.fcp2_0 import FcpClient
- self.fcpClient = FcpClient(
- connectionName='',
- #verbosity=FcpClient.Verbosity.Debug,
- )
- self.fcpClient.events.ClientDisconnected += self.handleFcpClientDisconnected
- QtCore.QObject.connect(
- self._pollTimer,
- QtCore.SIGNAL('timeout()'),
- self.fcpClient.next
- )
- self._connectMethod = self.fcpClient.connect()
- self.fcpClient.events.ClientConnected += eventConnectedHandler
- self._connectTimer.start(self.connectDelay)
-
- else:
- cb(self.fcpClient.events.ClientConnected, self.nodeHello)
- def handleFcpConnect(self):
- """Handles establishing of the node connection"""
- self._connectTimer.stop()
- try:
- result = self._connectMethod.next()
- if result is not None:
- self.nodeHello = result
- self._pollTimer.start(self.pollDelay)
-
- except StopIteration:
- return
- self._connectTimer.start()
-
-
- def handleFcpClientDisconnected(self, params):
- """Handles client disconneting"""
- self.fcpClient = None
- self.nodeHello = None
-
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2007-11-06 12:35:15
|
Revision: 49
http://fclient.svn.sourceforge.net/fclient/?rev=49&view=rev
Author: jUrner
Date: 2007-11-06 04:35:18 -0800 (Tue, 06 Nov 2007)
Log Message:
-----------
minor changes
Modified Paths:
--------------
trunk/fclient/config.py
Modified: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py 2007-11-06 12:34:50 UTC (rev 48)
+++ trunk/fclient/config.py 2007-11-06 12:35:18 UTC (rev 49)
@@ -57,7 +57,7 @@
#TODO: assistant can not handle locale dependend docs yet
self.assistant = assistant.Assistant(parent, profile=AssistantProfile, pages=DocPages)
- self.defaultDownloadsDir = os.path.join(BaseDir, 'downloads')
+ self.defaultDownloadDir = os.path.join(BaseDir, 'download')
self.fcpClientManager = FcpClientManager(parent)
self.language = language.Language([LanguageDir, ], translationPrefixes=TranslationPrefixes)
self.resources = resources.Resources([ResourceDir, ], )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2007-11-07 17:33:38
|
Revision: 53
http://fclient.svn.sourceforge.net/fclient/?rev=53&view=rev
Author: jUrner
Date: 2007-11-07 09:32:18 -0800 (Wed, 07 Nov 2007)
Log Message:
-----------
added a todo
Modified Paths:
--------------
trunk/fclient/config.py
Modified: trunk/fclient/config.py
===================================================================
--- trunk/fclient/config.py 2007-11-06 12:40:00 UTC (rev 52)
+++ trunk/fclient/config.py 2007-11-07 17:32:18 UTC (rev 53)
@@ -30,7 +30,6 @@
"DlgPreferences": _(DocDir, 'dialogs', 'preferences.html'),
}
-
#*****************************************************************************
#
#*****************************************************************************
@@ -57,6 +56,7 @@
#TODO: assistant can not handle locale dependend docs yet
self.assistant = assistant.Assistant(parent, profile=AssistantProfile, pages=DocPages)
+ #TODO: no good idea to have a default directory. May lead to troubles when making fclient executable
self.defaultDownloadDir = os.path.join(BaseDir, 'download')
self.fcpClientManager = FcpClientManager(parent)
self.language = language.Language([LanguageDir, ], translationPrefixes=TranslationPrefixes)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|