fclient-commit Mailing List for fclient (Page 13)
Status: Pre-Alpha
Brought to you by:
jurner
You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(23) |
Nov
(54) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(17) |
Feb
(209) |
Mar
(63) |
Apr
(31) |
May
(7) |
Jun
(39) |
Jul
(390) |
Aug
(122) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
|
From: <jU...@us...> - 2008-07-19 06:35:57
|
Revision: 670
http://fclient.svn.sourceforge.net/fclient/?rev=670&view=rev
Author: jUrner
Date: 2008-07-19 06:36:05 +0000 (Sat, 19 Jul 2008)
Log Message:
-----------
add icon keyword
Modified Paths:
--------------
trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
Modified: trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
===================================================================
--- trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-18 03:01:14 UTC (rev 669)
+++ trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-19 06:36:05 UTC (rev 670)
@@ -35,6 +35,7 @@
text=None,
group=None,
trigger=None,
+ icon=None,
isCheckable=False,
isChecked=False,
isEnabled=True,
@@ -54,6 +55,8 @@
act.setObjectName(name)
act.setCheckable(isCheckable)
+ if icon is not None:
+ act.setIcon(icon)
if isCheckable:
act.setChecked(isChecked)
act.setEnabled(isEnabled)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 03:01:05
|
Revision: 669
http://fclient.svn.sourceforge.net/fclient/?rev=669&view=rev
Author: jUrner
Date: 2008-07-18 03:01:14 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
naming
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewLogger.py
Modified: trunk/fclient/src/fclient/Ui_ViewLogger.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-18 03:00:26 UTC (rev 668)
+++ trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-18 03:01:14 UTC (rev 669)
@@ -9,7 +9,6 @@
from PyQt4 import QtCore, QtGui
from . import config
-from . import Ui_View
from .lib import fcp2
from .tpls.Ui_ViewLoggerWidgetTpl import Ui_ViewLoggerWidget
@@ -116,10 +115,10 @@
)
-class LoggerViewObject(Ui_View.ViewObject):
+class LoggerViewObject(config.ViewObject):
def __init__(self, parent):
- Ui_View.ViewObject. __init__(self, parent)
+ config.ViewObject. __init__(self, parent)
self.name=parent.objectName()
self.displayName=self.trUtf8('Logger')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 03:00:17
|
Revision: 668
http://fclient.svn.sourceforge.net/fclient/?rev=668&view=rev
Author: jUrner
Date: 2008-07-18 03:00:26 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
setExclusive(False) for non grouped actions
Modified Paths:
--------------
trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
Modified: trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
===================================================================
--- trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-18 02:58:41 UTC (rev 667)
+++ trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-18 03:00:26 UTC (rev 668)
@@ -45,6 +45,7 @@
self._dummyGroups.append(group) #TODO: is this necessary?
act = Action(text, group, userData=userData)
group.addAction(act)
+ group.setExclusive(False)
if trigger is not None:
self.parent().connect(group, QtCore.SIGNAL('triggered(QAction*)'), trigger)
else:
@@ -52,8 +53,8 @@
group.addAction(act)
act.setObjectName(name)
+ act.setCheckable(isCheckable)
if isCheckable:
- act.setCheckable(True)
act.setChecked(isChecked)
act.setEnabled(isEnabled)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 02:58:32
|
Revision: 667
http://fclient.svn.sourceforge.net/fclient/?rev=667&view=rev
Author: jUrner
Date: 2008-07-18 02:58:41 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
ViewObject is now in config
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-18 02:58:19 UTC (rev 666)
+++ trunk/fclient/src/fclient/Ui_ViewConnection.py 2008-07-18 02:58:41 UTC (rev 667)
@@ -7,7 +7,6 @@
from . import config
from .lib import fcp2
-from . import Ui_View
from .tpls.Ui_ViewConnectionWidgetTpl import Ui_ViewConnectionWidget
#**********************************************************************************
@@ -57,10 +56,10 @@
('ConnectionPort', 'UInt', fcp2.Client.DefaultFcpPort, config.SettingScopeUser),
)
-class ConnectionViewObject(Ui_View.ViewObject):
+class ConnectionViewObject(config.ViewObject):
def __init__(self, parent):
- Ui_View.ViewObject. __init__(self, parent)
+ config.ViewObject. __init__(self, parent)
self.name=parent.objectName()
self.displayName=self.trUtf8('Connection')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 02:58:11
|
Revision: 666
http://fclient.svn.sourceforge.net/fclient/?rev=666&view=rev
Author: jUrner
Date: 2008-07-18 02:58:19 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
ViewObject is now in config
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewBrowser.py
Modified: trunk/fclient/src/fclient/Ui_ViewBrowser.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-18 02:57:21 UTC (rev 665)
+++ trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-18 02:58:19 UTC (rev 666)
@@ -12,7 +12,6 @@
from PyQt4 import QtCore, QtGui, QtWebKit, QtNetwork
from . import config
-from . import Ui_View
from .lib import fcp2
from .tpls.Ui_ViewBrowserWidgetTpl import Ui_ViewBrowserWidget
@@ -114,10 +113,10 @@
)
-class BrowserViewObject(Ui_View.ViewObject):
+class BrowserViewObject(config.ViewObject):
def __init__(self, parent):
- Ui_View.ViewObject. __init__(self, parent)
+ config.ViewObject. __init__(self, parent)
self.name=parent.objectName()
self.displayName=self.trUtf8('Browser')
@@ -157,8 +156,8 @@
QtWebKit.QWebPage.__init__(self, parent)
def acceptNavigationRequest(self, frame, request, type):
- print frame, request, type
- print request.url()
+ #print frame, request, type
+ #print request.url()
# have to on query here: "?forcedownload" for dl. "?force=abcdef" for app exec on the link
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 02:57:12
|
Revision: 665
http://fclient.svn.sourceforge.net/fclient/?rev=665&view=rev
Author: jUrner
Date: 2008-07-18 02:57:21 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
View itsself is a view ++ action to show / hide top tabs
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_View.py
Modified: trunk/fclient/src/fclient/Ui_View.py
===================================================================
--- trunk/fclient/src/fclient/Ui_View.py 2008-07-18 02:53:20 UTC (rev 664)
+++ trunk/fclient/src/fclient/Ui_View.py 2008-07-18 02:57:21 UTC (rev 665)
@@ -21,14 +21,61 @@
#**********************************************************************************
#
#**********************************************************************************
+class Actions(config.ActionsBase):
+
+ def __init__(self, parent):
+ config.ActionsBase.__init__(self, parent)
+
+ self.action(
+ name='ActionShowTopTabBar',
+ text=self.trUtf8('Show top &tabs'),
+ trigger=parent.onActionShowTabsTop,
+ isCheckable=True,
+ isChecked=True,
+ )
+
+
+class GlobalFeedback(config.GlobalFeedbackBase):
+ """wrapper for global statusbar widgets, menus"""
+
+ def __init__(self, parent, idFeedbackParent):
+ config.GlobalFeedbackBase.__init__(self, parent, idFeedbackParent)
+
+ print self.menuBar
+ # menus
+ self.menus = []
+ if self.menuBar is not None:
+ menu = QtGui.QMenu(parent.fcViewObject.displayName, self.menuBar)
+ parent.populateMenu(menu)
+ self.menus.append(menu)
+ self.menuBar.addViewMenu(menu)
+
+ def setVisible(self, flag):
+ for menu in self.menus:
+ menu.children()[0].setVisible(flag)
+
+
+
class Settings(config.SettingsBase):
_key_ = config.IdViewWidget
_settings_ = (
('LastViewTop', 'String', '', config.SettingScopePrivate),
('LastViewBottom', 'String', '', config.SettingScopePrivate),
('SplitterPos', 'ByteArray', QtCore.QByteArray(), config.SettingScopePrivate),
+ ('ShowTopTabBar', 'Bool', True, config.SettingScopePrivate),
+
)
+
+class ViewObject(config.ViewObject):
+
+ def __init__(self, parent):
+ config.ViewObject. __init__(self, parent)
+
+ self.name=parent.objectName()
+ self.displayName=self.trUtf8('View')
+ self.icon=QtGui.QIcon()
+
#***********************************************************************
#
#***********************************************************************
@@ -39,7 +86,7 @@
IdTabBottom = 'tabBottom'
- def __init__(self, parent):
+ def __init__(self, parent, idFeedbackParent=config.IdMainWindow):
QtGui.QWidget.__init__(self, parent)
self._isCreated = False
@@ -48,18 +95,27 @@
self.setupUi(self)
config.ObjectRegistry.register(self)
- self.fclientSettings = Settings().restore()
+ self.fcActions = Actions(self)
+ self.fcSettings = Settings().restore()
+ self.fcViewObject = ViewObject(self)
+ self.fcGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
# setup tab widgets
- tabTop = self.controlById(self.IdTabTop)
- tabTop.removeTab(0)
- tabBottom = self.controlById(self.IdTabBottom)
- tabBottom.removeTab(0)
+ tabWidgetTop = self.controlById(self.IdTabTop)
+ tabWidgetTop.removeTab(0)
+ tabWidgetBottom = self.controlById(self.IdTabBottom)
+ tabWidgetBottom.removeTab(0)
# setup splitter
splitter = self.controlById(self.IdSplitter)
- splitter.restoreState(self.fclientSettings.value('SplitterPos'))
- self.connect(splitter, QtCore.SIGNAL('splitterMoved(int, int)'), self.handleSplitterMoved)
+ splitter.restoreState(self.fcSettings.value('SplitterPos'))
+ self.connect(splitter, QtCore.SIGNAL('splitterMoved(int, int)'), self.onSplitterMoved)
+
+ # setup actions
+ showTopTabBar = self.fcSettings.value('ShowTopTabBar')
+ self.fcActions['ActionShowTopTabBar'].setChecked(showTopTabBar)
+ tabWidgetTop.tabBar().setVisible(showTopTabBar)
+
def controlById(self, idControl):
@@ -67,18 +123,18 @@
def _addViews(self, toTop, *views):
- tab = self.controlById(self.IdTabTop) if toTop else self.controlById(self.IdTabBottom)
+ tabWidget = self.controlById(self.IdTabTop) if toTop else self.controlById(self.IdTabBottom)
for view in views:
name = view.fcViewObject.name
if not name:
raise ValueError('view must have a name')
if name in self.views:
raise ValueError('view with that name is already present: %s' % name)
- view.setParent(tab)
- i = tab.addTab(view, view.fcViewObject.icon, view.fcViewObject.displayName)
- self.views[name] = (tab, view)
+ view.setParent(tabWidget)
+ i = tabWidget.addTab(view, view.fcViewObject.icon, view.fcViewObject.displayName)
+ self.views[name] = (tabWidget, view)
- tab.tabBar().setVisible(tab.count() > 1)
+ #tab.tabBar().setVisible(tab.count() > 1)
def addBottomViews(self, *views):
@@ -89,13 +145,12 @@
return self._addViews(True, *views)
- def viewFromName(self, name):
- result = self.views.get(name, None)
- if result is not None:
- return result[1]
- return None
-
+ def populateMenu(self, menu):
+ menu.addAction(self.fcActions['ActionShowTopTabBar'])
+ return menu
+
+
def setCurrentView(self, name):
result = self.views.get(name, None)
if result is not None:
@@ -103,6 +158,24 @@
tab.setCurrentWidget(view)
return True
return False
+
+
+ def viewFromName(self, name):
+ result = self.views.get(name, None)
+ if result is not None:
+ return result[1]
+ return None
+
+ #########################################################
+ ##
+ #########################################################
+ def hideEvent(self, event):
+ self.fcGlobalFeedback.setVisible(False)
+
+
+ def showEvent(self, event):
+ self.fcGlobalFeedback.setVisible(True)
+
#########################################################
##
@@ -118,36 +191,42 @@
self._isCreated = True
# restore current views
- tabTop = self.controlById(self.IdTabTop)
- lastName = self.fclientSettings.value('LastViewTop')
+ tabWidgetTop = self.controlById(self.IdTabTop)
+ lastName = self.fcSettings.value('LastViewTop')
self.setCurrentView(lastName)
- tabBottom = self.controlById(self.IdTabBottom)
- lastName = self.fclientSettings.value('LastViewBottom')
+ tabWidgetBottom = self.controlById(self.IdTabBottom)
+ lastName = self.fcSettings.value('LastViewBottom')
self.setCurrentView(lastName)
# finally connect... not to overwrite settings
- self.connect(tabTop, QtCore.SIGNAL('currentChanged(int)'), self.handleTabTopCurrentChanged)
- self.connect(tabBottom, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBottomCurrentChanged)
+ self.connect(tabWidgetTop, QtCore.SIGNAL('currentChanged(int)'), self.onTabTopCurrentChanged)
+ self.connect(tabWidgetBottom, QtCore.SIGNAL('currentChanged(int)'), self.onTabBottomCurrentChanged)
#########################################################
##
#########################################################
- def handleSplitterMoved(self, pos, index):
+ def onActionShowTabsTop(self, action):
+ tabWidgetTop = self.controlById(self.IdTabTop)
+ tabWidgetTop.tabBar().setVisible(action.isChecked())
+ self.fcSettings.setValues(ShowTopTabBar=action.isChecked())
+
+
+ def onSplitterMoved(self, pos, index):
splitter = self.controlById(self.IdSplitter)
- self.fclientSettings.setValues(SplitterPos=splitter.saveState())
+ self.fcSettings.setValues(SplitterPos=splitter.saveState())
- def handleTabTopCurrentChanged(self, index):
- tab = self.controlById(self.IdTabTop)
- view = tab.currentWidget()
- self.fclientSettings.setValues(LastViewTop=view.fcViewObject.name)
+ def onTabTopCurrentChanged(self, index):
+ tabWidget = self.controlById(self.IdTabTop)
+ view = tabWidget.currentWidget()
+ self.fcSettings.setValues(LastViewTop=view.fcViewObject.name)
- def handleTabBottomCurrentChanged(self, index):
+ def onTabBottomCurrentChanged(self, index):
tab = self.controlById(self.IdTabBottom)
view = tab.currentWidget()
- self.fclientSettings.setValues(LastViewBottom=view.fcViewObject.name)
+ self.fcSettings.setValues(LastViewBottom=view.fcViewObject.name)
#**********************************************************************************
#
@@ -155,7 +234,7 @@
#NOTE: to self. no need to register views to config.ObjectRegistry. they are just
# opaque objects private to ViewWidget
class View(object):
- """base class for views handled by L{ViewWidget}"""
+ """base class for views ond by L{ViewWidget}"""
def __init__(self):
raise NotImplemetedError()
@@ -181,19 +260,7 @@
@return: (str) id
"""
raise NotImplemetedError()
-
-class ViewObject(QtCore.QObject):
- """base class for view objects"""
-
- def __init__(self, parent):
- QtCore.QObject.__init__(self, parent)
-
- self.name = '' #unique name of the view
- self.displayName = '' # name as shown t the user
- self.icon = None # QIcon associated to the view
-
-
#**********************************************************************************
#
#**********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-18 02:53:10
|
Revision: 664
http://fclient.svn.sourceforge.net/fclient/?rev=664&view=rev
Author: jUrner
Date: 2008-07-18 02:53:20 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
config seems to be a good place for ViewObject()
Modified Paths:
--------------
trunk/fclient/src/fclient/config.py
Modified: trunk/fclient/src/fclient/config.py
===================================================================
--- trunk/fclient/src/fclient/config.py 2008-07-17 16:07:27 UTC (rev 663)
+++ trunk/fclient/src/fclient/config.py 2008-07-18 02:53:20 UTC (rev 664)
@@ -127,5 +127,13 @@
pass
+class ViewObject(QtCore.QObject):
+ """base class for view objects"""
+ def __init__(self, parent):
+ QtCore.QObject.__init__(self, parent)
+
+ self.name = '' #unique name of the view
+ self.displayName = '' # name as shown t the user
+ self.icon = None # QIcon associated to the view
\ 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: <jU...@us...> - 2008-07-17 16:08:05
|
Revision: 663
http://fclient.svn.sourceforge.net/fclient/?rev=663&view=rev
Author: jUrner
Date: 2008-07-17 16:07:27 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
naming
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewLogger.py
Modified: trunk/fclient/src/fclient/Ui_ViewLogger.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-17 16:06:23 UTC (rev 662)
+++ trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-17 16:07:27 UTC (rev 663)
@@ -27,12 +27,12 @@
self.action(
name='ActionLoggerClear',
text=self.trUtf8('C&lear'),
- trigger=parent.handleActionLoggerClear,
+ trigger=parent.onActionLoggerClear,
)
groupVerbosity = self.group(
name='GroupVerbosity',
- trigger=parent.handleGroupVerbosityTriggered,
+ trigger=parent.onGroupVerbosityTriggered,
isExclusive=True,
)
self.action(
@@ -79,7 +79,7 @@
# menus
self.menus = []
if self.menuBar is not None:
- menu = QtGui.QMenu(parent.fclientViewObject.displayName, self.menuBar)
+ menu = QtGui.QMenu(parent.fcViewObject.displayName, self.menuBar)
parent.populateMenu(menu)
self.menus.append(menu)
self.menuBar.addViewMenu(menu)
@@ -154,29 +154,29 @@
self.setupUi(self)
config.ObjectRegistry.register(self)
- self.fclientActions = Actions(self)
- self.fclientSettings = Settings(self).restore()
- self.fclientViewObject = LoggerViewObject(self)
- self.fclientGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
+ self.fcActions = Actions(self)
+ self.fcSettings = Settings(self).restore()
+ self.fcViewObject = LoggerViewObject(self)
+ self.fcGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
# setup editbox
#NOTE: do not move to showEvent(). we want to be up and alive as soon as possible to catch logs
ed = self.controlById(self.IdEdLogger)
- ed.document().setMaximumBlockCount(self.fclientSettings.value('MaxLines'))
+ ed.document().setMaximumBlockCount(self.fcSettings.value('MaxLines'))
ed.contextMenuEvent = self.loggerContextMenuEvent
- self.connect(ed, QtCore.SIGNAL('textChanged()'), self.handleLoggerTextChanged)
+ self.connect(ed, QtCore.SIGNAL('textChanged()'), self.onLoggerTextChanged)
# setup logger
self.loggingHandler = MyLoggingHandler(self.addRecord)
logging.getLogger('').addHandler(self.loggingHandler)
# setup actions
- verbosity = self.fclientSettings.value('Verbosity').title()
- action = self.fclientActions.get(self.fclientActions.PrefixVerbosity + verbosity, None)
+ verbosity = self.fcSettings.value('Verbosity').title()
+ action = self.fcActions.get(self.fcActions.PrefixVerbosity + verbosity, None)
if action is None:
- verbosity = self.fclientSettings.restoreDefaults('Verbosity')['Verbosity']
- action = self.fclientActions.get(self.fclientActions.PrefixVerbosity + verbosity, None)
+ verbosity = self.fcSettings.restoreDefaults('Verbosity')['Verbosity']
+ action = self.fcActions.get(self.fcActions.PrefixVerbosity + verbosity, None)
if action is None:
raise ValueError('default verbosity action "%s" not found. WTF?' % self.actions.PrefixVerbosity + verbosity)
action.trigger()
@@ -189,7 +189,7 @@
ed = self.controlById(self.IdEdLogger)
fmt = ed.currentCharFormat()
- colorFg = self.fclientSettings.value(self.fclientSettings.PrefixVerbosityColorFg + record.levelname)
+ colorFg = self.fcSettings.value(self.fcSettings.PrefixVerbosityColorFg + record.levelname)
fmt.setForeground(QtGui.QBrush(colorFg))
ed.setCurrentCharFormat(fmt)
@@ -202,9 +202,9 @@
def populateMenu(self, menu):
- menu.addAction(self.fclientActions['ActionLoggerClear'])
+ menu.addAction(self.fcActions['ActionLoggerClear'])
subMenu = menu.addMenu(self.trUtf8('Verbosity'))
- subMenu.addActions(self.fclientActions['GroupVerbosity'].actions())
+ subMenu.addActions(self.fcActions['GroupVerbosity'].actions())
return menu
#########################################
@@ -234,31 +234,31 @@
def hideEvent(self, event):
- self.fclientGlobalFeedback.setVisible(False)
+ self.fcGlobalFeedback.setVisible(False)
def showEvent(self, event):
- self.fclientGlobalFeedback.setVisible(True)
+ self.fcGlobalFeedback.setVisible(True)
if self._isCreated:
return
self._isCreated = True
#########################################
- ## event handlers
+ ## event onrs
#########################################
- def handleActionLoggerClear(self, action):
+ def onActionLoggerClear(self, action):
self.controlById(self.IdEdLogger).clear()
- def handleGroupVerbosityTriggered(self, action):
- nameVerbosity = action.objectName()[len(self.fclientActions.PrefixVerbosity):]
- self.fclientSettings.setValues(Verbosity=nameVerbosity)
+ def onGroupVerbosityTriggered(self, action):
+ nameVerbosity = action.objectName()[len(self.fcActions.PrefixVerbosity):]
+ self.fcSettings.setValues(Verbosity=nameVerbosity)
logging.getLogger().setLevel(action.userData())
- def handleLoggerTextChanged(self):
+ def onLoggerTextChanged(self):
ed = self.controlById(self.IdEdLogger)
- self.fclientActions['ActionLoggerClear'].setEnabled(not ed.document().isEmpty())
+ self.fcActions['ActionLoggerClear'].setEnabled(not ed.document().isEmpty())
#**********************************************************************************
#
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 16:06:24
|
Revision: 662
http://fclient.svn.sourceforge.net/fclient/?rev=662&view=rev
Author: jUrner
Date: 2008-07-17 16:06:23 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
naming ++ this and that
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-17 16:04:41 UTC (rev 661)
+++ trunk/fclient/src/fclient/Ui_ViewConnection.py 2008-07-17 16:06:23 UTC (rev 662)
@@ -27,7 +27,7 @@
# menus
self.menus = []
if self.menuBar is not None:
- menu = QtGui.QMenu(parent.fclientViewObject.displayName, self.menuBar)
+ menu = QtGui.QMenu(parent.fcViewObject.displayName, self.menuBar)
parent.populateMenu(menu)
self.menus.append(menu)
self.menuBar.addViewMenu(menu)
@@ -75,17 +75,17 @@
def __init__(self,parent):
QtCore.QTimer.__init__(self, parent)
self.fcpIterConnect = None
- self.connect(self, QtCore.SIGNAL('timeout()'), self.handleNext)
+ self.connect(self, QtCore.SIGNAL('timeout()'), self.onNext)
def start(self, settings):
self.fcpIterConnect = config.fcpClient.iterConnect(
duration=settings.value('ConnectionTimerMaxDuration'),
timeout=0
)
- if not self.handleNext():
+ if not self.onNext():
QtCore.QTimer.start(self, settings.value('ConnectionTimerTimeout'))
- def handleNext(self):
+ def onNext(self):
try:
result = self.fcpIterConnect.next()
except StopIteration:
@@ -105,12 +105,12 @@
def __init__(self,parent):
QtCore.QTimer.__init__(self, parent)
- self.connect(self, QtCore.SIGNAL('timeout()'), self.handleNext)
+ self.connect(self, QtCore.SIGNAL('timeout()'), self.onNext)
def start(self, settings):
QtCore.QTimer.start(self, settings.value('PollTimerTimeout'))
- def handleNext(self):
+ def onNext(self):
if config.fcpClient.isConnected():
result = config.fcpClient.next()
@@ -130,20 +130,20 @@
self._isCreated = False
self._connectionTimer = ConnectionTimer(self)
self._pollTimer = PollTimer(self)
- self._fcpEventHandlers = (
- (config.fcpClient.events.ClientConnected, self.handleFcpClientConected),
- (config.fcpClient.events.ClientDisconnected, self.handleFcpClientDisconected),
+ self._fcpEventonrs = (
+ (config.fcpClient.events.ClientConnected, self.onFcpClientConected),
+ (config.fcpClient.events.ClientDisconnected, self.onFcpClientDisconected),
)
- config.fcpClient.events += self._fcpEventHandlers
+ config.fcpClient.events += self._fcpEventonrs
self._mainWindowMenus = ()
self.setupUi(self)
config.ObjectRegistry.register(self)
- self.fclientSettings = Settings().restore()
- self.fclientActions = Actions(self)
- self.fclientViewObject = ConnectionViewObject(self)
- self.fclientGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
+ self.fcSettings = Settings().restore()
+ self.fcActions = Actions(self)
+ self.fcViewObject = ConnectionViewObject(self)
+ self.fcGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
@@ -161,7 +161,7 @@
## view methods
#########################################
def viewClose(self):
- config.fcpClient.events -= self._fcpEventHandlers
+ config.fcpClient.events -= self._fcpEventonrs
#########################################
## overwritten events
@@ -170,31 +170,31 @@
self.viewClose()
def hideEvent(self, event):
- self.fclientGlobalFeedback.setVisible(False)
+ self.fcGlobalFeedback.setVisible(False)
def showEvent(self, event):
- self.fclientGlobalFeedback.setVisible(True)
+ self.fcGlobalFeedback.setVisible(True)
if self._isCreated:
return
self._isCreated = True
# setup host / port boxes
edHost = self.controlById(self.IdEdConnectionHost)
- edHost.setText(self.fclientSettings.value('ConnectionHost'))
+ edHost.setText(self.fcSettings.value('ConnectionHost'))
spinPort = self.controlById(self.IdSpinConnectionPort)
spinPort.setRange(0, 0xFFFF) #TODO: no idea if port range (0, 0xFFFF) this is reasonable
- spinPort.setValue(self.fclientSettings.value('ConnectionPort'))
+ spinPort.setValue(self.fcSettings.value('ConnectionPort'))
# setup Connect button and AutoConnect checkbox
- doAutoConnect = self.fclientSettings.value('AutoConnect')
+ doAutoConnect = self.fcSettings.value('AutoConnect')
ck = self.controlById(self.IdckAutoConnect)
ck.setChecked(doAutoConnect)
- self.connect(ck, QtCore.SIGNAL('stateChanged(int)'), self.handleCkAutoConnectStateChanged)
+ self.connect(ck, QtCore.SIGNAL('stateChanged(int)'), self.onCkAutoConnectStateChanged)
bt = self.controlById(self.IdBtConnect)
- self.connect(bt, QtCore.SIGNAL('clicked(bool)'), self.handleBtConnectClicked)
+ self.connect(bt, QtCore.SIGNAL('clicked(bool)'), self.onBtConnectClicked)
if doAutoConnect:
self.controlById(self.IdBtConnect).click()
@@ -208,15 +208,15 @@
#########################################
- ## event handlers
+ ## event onrs
#########################################
- def handleBtConnectClicked(self, isChecked):
+ def onBtConnectClicked(self, isChecked):
bt = self.controlById(self.IdBtConnect)
bt.setText(self.trUtf8('Disconnect') if isChecked else self.trUtf8('Connect'))
if isChecked:
if config.fcpClient.isConnected():
config.fcpClient.close()
- self._connectionTimer.start(self.fclientSettings)
+ self._connectionTimer.start(self.fcSettings)
else:
self._connectionTimer.stop()
if config.fcpClient.isConnected():
@@ -224,19 +224,19 @@
config.fcpClient.close()
- def handleCkAutoConnectStateChanged(self, state):
- self.fclientSettings.setValues(AutoConnect=state == QtCore.Qt.Checked)
+ def onCkAutoConnectStateChanged(self, state):
+ self.fcSettings.setValues(AutoConnect=state == QtCore.Qt.Checked)
#########################################
- ## fcp event handlers
+ ## fcp event onrs
#########################################
- def handleFcpClientDisconected(self, event, msg):
+ def onFcpClientDisconected(self, event, msg):
bt = self.controlById(self.IdBtConnect)
if bt.isChecked():
bt.click()
- def handleFcpClientConected(self, event, msg):
- self._pollTimer.start(self.fclientSettings)
+ def onFcpClientConected(self, event, msg):
+ self._pollTimer.start(self.fcSettings)
#**********************************************************************************
#
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 16:04:39
|
Revision: 661
http://fclient.svn.sourceforge.net/fclient/?rev=661&view=rev
Author: jUrner
Date: 2008-07-17 16:04:41 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
naming ++ this and that
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewBrowser.py
Modified: trunk/fclient/src/fclient/Ui_ViewBrowser.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-17 15:58:56 UTC (rev 660)
+++ trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-17 16:04:41 UTC (rev 661)
@@ -19,6 +19,22 @@
#**********************************************************************************
#
#**********************************************************************************
+def htmlPage(title, *contents):
+ p = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>%s</title>
+ </head>
+ <body>
+ %s
+ </body>
+</html>
+''' % (title, ''.join([str(i) for i in contents]))
+ return p
+
+#**********************************************************************************
+#
+#**********************************************************************************
class Actions(config.ActionsBase):
def __init__(self, parent):
@@ -27,7 +43,7 @@
self.action(
name='ActionCloseCurrentBrowser',
text=self.trUtf8('&Close tab'),
- trigger=parent.handleActionCloseCurrentBrowser,
+ trigger=parent.onActionCloseCurrentBrowser,
#isEnabled=False,
)
self.action( # context menu only
@@ -40,7 +56,7 @@
self.action(
name='ActionGoToFProxy',
text=self.trUtf8('F&Proxy homepage'),
- trigger=parent.handleActionGoToFProxy,
+ trigger=parent.onActionGoToFProxy,
isEnabled=True,
)
@@ -53,7 +69,7 @@
# menus
self.menus = []
if self.menuBar is not None:
- menu = QtGui.QMenu(parent.fclientViewObject.displayName, self.menuBar)
+ menu = QtGui.QMenu(parent.fcViewObject.displayName, self.menuBar)
parent.populateMenu(menu)
self.menus.append(menu)
self.menuBar.addViewMenu(menu)
@@ -136,12 +152,17 @@
#**********************************************************************************
#
#**********************************************************************************
-##class Page(QtWebKit.QWebPage):
-## def __init__(self, parent):
-## QtWebKit.QWebPage.__init__(self, parent)
-##
-## def acceptNavigationRequest(self, frame, request, type):
-## return True
+class Page(QtWebKit.QWebPage):
+ def __init__(self, parent):
+ QtWebKit.QWebPage.__init__(self, parent)
+
+ def acceptNavigationRequest(self, frame, request, type):
+ print frame, request, type
+ print request.url()
+
+ # have to on query here: "?forcedownload" for dl. "?force=abcdef" for app exec on the link
+
+ return True
class Browser(QtWebKit.QWebView):
@@ -157,24 +178,24 @@
self.tabWidget = tabWidget
self.lastProgress = 0
self.lastStatusMessage = self.trUtf8('Waiting')
-
+
#TODO: set start page, otherwise the view is never updated
settings = self.settings()
settings.setAttribute(settings.PluginsEnabled, False)
#settings.setAttribute(settings.AutoLoadImages, False)
- #page = Page(self)
- #self.setPage(page)
- page = self.page()
+ page = Page(self)
+ self.setPage(page)
+ #page = self.page()
#page.setLinkDelegationPolicy(page.DelegateAllLinks)
- self.connect(self, QtCore.SIGNAL('loadStarted()'), self.handleLoadStarted)
- self.connect(self, QtCore.SIGNAL('loadProgress(int)'), self.handleLoadProgress)
- self.connect(self, QtCore.SIGNAL('loadFinished(bool)'), self.handleLoadFinished)
- self.connect(self, QtCore.SIGNAL('statusBarMessage(const QString &)'), self.handleStatusBarMessage)
- self.connect(self, QtCore.SIGNAL('urlChanged(const QUrl &)'), self.handleUrlChanged)
- self.connect(self, QtCore.SIGNAL('titleChanged(const QString &)'), self.handleTitleChanged)
- self.connect(self, QtCore.SIGNAL('iconChanged()'), self.handleIconChanged)
+ self.connect(self, QtCore.SIGNAL('loadStarted()'), self.onLoadStarted)
+ self.connect(self, QtCore.SIGNAL('loadProgress(int)'), self.onLoadProgress)
+ self.connect(self, QtCore.SIGNAL('loadFinished(bool)'), self.onLoadFinished)
+ self.connect(self, QtCore.SIGNAL('statusBarMessage(const QString &)'), self.onStatusBarMessage)
+ self.connect(self, QtCore.SIGNAL('urlChanged(const QUrl &)'), self.onUrlChanged)
+ self.connect(self, QtCore.SIGNAL('titleChanged(const QString &)'), self.onTitleChanged)
+ self.connect(self, QtCore.SIGNAL('iconChanged()'), self.onIconChanged)
self.setStatusMessage(self.lastStatusMessage)
self.setProgress(self.lastProgress)
@@ -240,37 +261,59 @@
self.globalFeedback.setProgress(percent)
- def handleLoadStarted(self):
+ def onLoadStarted(self):
self.setProgress(0)
self.setStatusMessage(self.trUtf8('Loading'))
- def handleLoadProgress(self, percent):
+ def onLoadProgress(self, percent):
self.setProgress(percent)
- def handleLoadFinished(self, flag):
+ def onLoadFinished(self, ok):
self.setProgress(100)
- self.setStatusMessage(self.trUtf8('Complete'))
+ if ok:
+ self.setStatusMessage(self.trUtf8('Complete'))
+ else:
+ self.setStatusMessage(self.trUtf8('Error'))
+ self.setProgress(0)
+ # something went wrong. most likely fProxy can not be reached
+ #
+ # no access to the Dom, so we dump some html for feedback
+ #TODO: loadFinished() never arrives, so the status bar gets stuck a x percent
+ #TODO: there are more reasons why the request may have failed. we don't get any info
+ page = htmlPage(
+ self.trUtf8('Error'),
+ '<h3>%s</h3>' % self.trUtf8('Request failed'),
+ self.trUtf8('''most likely fProxy can not be reached. check your if fProxy is running
+ and check your node config if host and port are ok. hint: this browser can currently
+ not deal with ipv6 addresses'''),
+
+ '''<br><div style="margin-top: 2em; font-style: italic; text-indent: 1em">
+ congratulations. you validatet. is it still "we are stuck at 90%"? how could you ever be certain? try it.
+ </div>'''
+ )
+ self.setHtml(page)
+
+
-
- def handleStatusBarMessage(self, text):
+ def onStatusBarMessage(self, text):
if not text.isEmpty():
self.setStatusMessage(text)
- def handleUrlChanged(self, url):
+ def onUrlChanged(self, url):
if self.navBar is not None and self.isCurrentBrowser():
self.navBar.setText(url.toString())
- def handleIconChanged(self):
+ def onIconChanged(self):
i = self.tabIndex()
if i > -1:
self.tabWidget.setTabIcon(i, self.icon)
- def handleTitleChanged(self, text):
+ def onTitleChanged(self, text):
# add title to tab
if self.tabWidget is not None:
i = self.tabIndex()
@@ -315,29 +358,29 @@
self.setupUi(self)
config.ObjectRegistry.register(self)
- self.fclientActions = Actions(self)
- self.fclientSettings = Settings()
- self.fclientViewObject = BrowserViewObject(self)
- self.fclientGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
+ self.fcActions = Actions(self)
+ self.fcSettings = Settings()
+ self.fcViewObject = BrowserViewObject(self)
+ self.fcGlobalFeedback = GlobalFeedback(self, idFeedbackParent)
self.fproxyHost = None
self.fproxyPort = None
- self.fcpEventHandlers = (
- (config.fcpClient.events.ConfigData, self.handleFcpConfigData),
+ self.fcpEventonrs = (
+ (config.fcpClient.events.ConfigData, self.onFcpConfigData),
)
- config.fcpClient.events += self.fcpEventHandlers
+ config.fcpClient.events += self.fcpEventonrs
navBar = self.controlById(self.IdEdNavBar)
- self.connect(navBar, QtCore.SIGNAL('returnPressed()'), self.handleNavBarReturnPressed)
+ self.connect(navBar, QtCore.SIGNAL('returnPressed()'), self.onNavBarReturnPressed)
# setup tab bar
tabWidget = self.controlById(self.IdTabBrowsers)
tabWidget.clear()
tabWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
- self.connect(tabWidget, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBrowsersCurrentChanged)
- self.connect(tabWidget, QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'), self.handleTabBrowsersContextMenuEvent)
+ self.connect(tabWidget, QtCore.SIGNAL('currentChanged(int)'), self.onTabBrowsersCurrentChanged)
+ self.connect(tabWidget, QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'), self.onTabBrowsersContextMenuEvent)
self.newTab(tabText=self.trUtf8('Waiting for fproxy'))
@@ -354,9 +397,9 @@
browser = Browser(self,
tabWidget=self.controlById(self.IdTabBrowsers),
navBar=self.controlById(self.IdEdNavBar),
- globalFeedback=self.fclientGlobalFeedback,
- browserSettings=self.fclientSettings,
- browserActions=self.fclientActions,
+ globalFeedback=self.fcGlobalFeedback,
+ browserSettings=self.fcSettings,
+ browserActions=self.fcActions,
)
tabWidget.addTab(browser, tabText)
return browser
@@ -366,6 +409,7 @@
"""loads a page in the current tab
@param url: (QUrl) to load. can be a string as well. if '', fproxys homepage is loaded
+ @return: (bool) True if a browser is available for display, False otherwise
"""
if self.fproxyHost is None or url is None:
return
@@ -377,25 +421,40 @@
url.setScheme('http')
tabWidget = self.controlById(self.IdTabBrowsers)
browser = tabWidget.currentWidget()
- if browser is not None:
- browser.load(url)
+ if browser is None:
+ browser = self.newTab(self.trUtf8('Loading'))
+ browser.load(url)
+
+
+ def setHtml(self, html, baseUrl=None):
+ """sets the contents of the current browser to the html passed
+ @arg html: (QString)
+ @arg baseUrl: (QUrl) if specified, base url to interpret resources relative to
+ """
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ browser = tabWidget.currentWidget()
+ if browser is None:
+ browser = self.newTab(self.trUtf8('Loading'))
+ baseUrl = QtCore.QUrl() if baseUrl is None else baseUrl
+ browser.setHtml(html, baseUrl)
+
#TODO: rework. we need more then one menu
def populateMenu(self, menu):
- menu.addAction(self.fclientActions['ActionGoToFProxy'])
- menu.addAction(self.fclientActions['ActionCloseCurrentBrowser'])
+ menu.addAction(self.fcActions['ActionGoToFProxy'])
+ menu.addAction(self.fcActions['ActionCloseCurrentBrowser'])
return menu
#########################################
## overwritten events
#########################################
def hideEvent(self, event):
- self.fclientGlobalFeedback.setVisible(False)
+ self.fcGlobalFeedback.setVisible(False)
def showEvent(self, event):
- self.fclientGlobalFeedback.setVisible(True)
+ self.fcGlobalFeedback.setVisible(True)
if self._isCreated:
return
@@ -407,47 +466,57 @@
#########################################
- ## fcp event handlers
+ ## fcp event onrs
#########################################
#TODO: browser should be disabled untill config data has arrived.
#disable navbar, tool buttons, actions. on second thought.. we'll see.
- def handleFcpConfigData(self, event, msg):
+ def onFcpConfigData(self, event, msg):
self.fproxyHost = None
self.fproxyPort = None
#TODO: give feedback in case fproxy is disabled
- if msg.get('current.fproxy.enabled'):
- fproxyHosts = msg.get('current.fproxy.bindTo')
- fproxyPort = msg.get('current.fproxy.port')
- if fproxyHosts:
- #TODO: ups, looks like we can not deal with ipv6 addrs
- ##self.fproxyHost = fproxyHosts[1]
- self.fproxyHost = fproxyHosts[0]
- self.fproxyPort = fproxyPort
-
+ if not msg.get('current.fproxy.enabled'):
+ page = htmlPage(
+ self.trUtf8('Error'),
+ '<h3>%s</h3>' % self.trUtf8('fProxy is disabled'),
+ self.trUtf8('''fProxy must be enabled and running to browse freenet. check your node config.'''),
+ )
+ self.setHtml(page)
+ return
+
+ fproxyHosts = msg.get('current.fproxy.bindTo')
+ if fproxyHosts:
+ #TODO: ups, looks like we can not deal with ipv6 addrs
+ # do an in depth scan to see wich host might be usable ;-)
+ for host in fproxyHosts:
+ if ':'not in host: #TODO: more here
+ break
+ self.fproxyHost = host
+ self.fproxyPort = msg.get('current.fproxy.port')
+
+ # auto load some page if we are starting up
if not self._initialConfigDataArrived:
self._initialConfigDataArrived = True
navBar = self.controlById(self.IdEdNavBar)
text = navBar.text()
if text.isEmpty():
- self.fclientActions['ActionGoToFProxy'].trigger()
+ self.fcActions['ActionGoToFProxy'].trigger()
else:
self.load(text)
-
#########################################
##
#########################################
- def handleActionCloseCurrentBrowser(self, action):
+ def onActionCloseCurrentBrowser(self, action):
tabWidget = self.controlById(self.IdTabBrowsers)
tabWidget.removeTab(tabWidget.currentIndex())
- def handleTabBrowsersContextMenuEvent(self, pt):
+ def onTabBrowsersContextMenuEvent(self, pt):
menu = QtGui.QMenu()
- actCloseBrowserUnderMouse = self.fclientActions['ActionCloseBrowserUnderMouse']
+ actCloseBrowserUnderMouse = self.fcActions['ActionCloseBrowserUnderMouse']
menu.addAction(actCloseBrowserUnderMouse)
tab = self.controlById(self.IdTabBrowsers)
@@ -461,7 +530,7 @@
tab.removeTab(i)
- def handleTabBrowsersCurrentChanged(self, index):
+ def onTabBrowsersCurrentChanged(self, index):
browser = self.controlById(self.IdTabBrowsers).currentWidget()
if browser is None:
return
@@ -478,7 +547,7 @@
ed = self.controlById(self.IdEdNavBar).setText(browser.url().toString())
- def handleNavBarReturnPressed(self):
+ def onNavBarReturnPressed(self):
ed = self.controlById(self.IdEdNavBar)
tabWidget = self.controlById(self.IdTabBrowsers)
if not tabWidget.count():
@@ -487,9 +556,9 @@
self.load(ed.text())
- def handleActionGoToFProxy(self, action):
+ def onActionGoToFProxy(self, action):
if self.fproxyHost is None:
- #TODO: handle
+ #TODO: on
return
url = QtCore.QUrl()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 15:59:50
|
Revision: 660
http://fclient.svn.sourceforge.net/fclient/?rev=660&view=rev
Author: jUrner
Date: 2008-07-17 15:58:56 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
naming
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_View.py
Modified: trunk/fclient/src/fclient/Ui_View.py
===================================================================
--- trunk/fclient/src/fclient/Ui_View.py 2008-07-17 15:56:53 UTC (rev 659)
+++ trunk/fclient/src/fclient/Ui_View.py 2008-07-17 15:58:56 UTC (rev 660)
@@ -69,13 +69,13 @@
def _addViews(self, toTop, *views):
tab = self.controlById(self.IdTabTop) if toTop else self.controlById(self.IdTabBottom)
for view in views:
- name = view.fclientViewObject.name
+ name = view.fcViewObject.name
if not name:
raise ValueError('view must have a name')
if name in self.views:
raise ValueError('view with that name is already present: %s' % name)
view.setParent(tab)
- i = tab.addTab(view, view.fclientViewObject.icon, view.fclientViewObject.displayName)
+ i = tab.addTab(view, view.fcViewObject.icon, view.fcViewObject.displayName)
self.views[name] = (tab, view)
tab.tabBar().setVisible(tab.count() > 1)
@@ -141,13 +141,13 @@
def handleTabTopCurrentChanged(self, index):
tab = self.controlById(self.IdTabTop)
view = tab.currentWidget()
- self.fclientSettings.setValues(LastViewTop=view.fclientViewObject.name)
+ self.fclientSettings.setValues(LastViewTop=view.fcViewObject.name)
def handleTabBottomCurrentChanged(self, index):
tab = self.controlById(self.IdTabBottom)
view = tab.currentWidget()
- self.fclientSettings.setValues(LastViewBottom=view.fclientViewObject.name)
+ self.fclientSettings.setValues(LastViewBottom=view.fcViewObject.name)
#**********************************************************************************
#
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 15:57:24
|
Revision: 659
http://fclient.svn.sourceforge.net/fclient/?rev=659&view=rev
Author: jUrner
Date: 2008-07-17 15:56:53 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
naming
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_MainWindow.py
Modified: trunk/fclient/src/fclient/Ui_MainWindow.py
===================================================================
--- trunk/fclient/src/fclient/Ui_MainWindow.py 2008-07-17 01:00:29 UTC (rev 658)
+++ trunk/fclient/src/fclient/Ui_MainWindow.py 2008-07-17 15:56:53 UTC (rev 659)
@@ -34,22 +34,22 @@
self.action(
name='ActionPreferences',
text=self.trUtf8('&Preferences...'),
- trigger=parent.handleActPreferencesTriggered,
+ trigger=parent.onActPreferencesTriggered,
)
self.action(
name='ActionExit',
text=self.trUtf8('E&xit'),
- trigger=parent.handleActExitTriggered,
+ trigger=parent.onActExitTriggered,
)
self.action(
name='ActionAbout',
text=self.trUtf8('A&bout...'),
- trigger=parent.handleActAboutTriggered,
+ trigger=parent.onActAboutTriggered,
)
self.action(
name='ActionHelp',
text=self.trUtf8('&Help...'),
- trigger=parent.handleActHelpTriggered,
+ trigger=parent.onActHelpTriggered,
)
#**********************************************************************************
@@ -119,20 +119,20 @@
self._isCreated = True
##################################################
- ## event handlers
+ ## event onrs
##################################################
- def handleActPreferencesTriggered(self):
+ def onActPreferencesTriggered(self):
dlg = Ui_Prefs.PrefsDlg(self)
if dlg.exec_() == dlg.Accepted:
pass
- def handleActExitTriggered(self):
+ def onActExitTriggered(self):
self.close()
- def handleActHelpTriggered(self):
+ def onActHelpTriggered(self):
pass
- def handleActAboutTriggered(self):
+ def onActAboutTriggered(self):
dlg = dlgabout.DlgAbout(
self,
##state=self.guiSettings['DlgAboutState'],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 01:00:21
|
Revision: 658
http://fclient.svn.sourceforge.net/fclient/?rev=658&view=rev
Author: jUrner
Date: 2008-07-17 01:00:29 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
some more params
Modified Paths:
--------------
trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
Modified: trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py
===================================================================
--- trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-17 01:00:03 UTC (rev 657)
+++ trunk/fclient/src/fclient/lib/qt4ex/lib/actions.py 2008-07-17 01:00:29 UTC (rev 658)
@@ -61,13 +61,14 @@
return act
- def group(self, parent=None, name=None, trigger=None, isExclusive=False):
+ def group(self, parent=None, name=None, trigger=None, isExclusive=False, isEnabled=True):
if parent is None:
parent = self.parent()
group = QtGui.QActionGroup(parent)
group.setObjectName(name)
if trigger is not None:
self.parent().connect(group, QtCore.SIGNAL('triggered(QAction*)'), trigger)
+ group.setEnabled(isEnabled)
group.setExclusive(isExclusive)
self._registerAction(name, group)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-17 00:59:56
|
Revision: 657
http://fclient.svn.sourceforge.net/fclient/?rev=657&view=rev
Author: jUrner
Date: 2008-07-17 01:00:03 +0000 (Thu, 17 Jul 2008)
Log Message:
-----------
massive comb over
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewBrowser.py
Modified: trunk/fclient/src/fclient/Ui_ViewBrowser.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-16 21:16:35 UTC (rev 656)
+++ trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-17 01:00:03 UTC (rev 657)
@@ -26,21 +26,22 @@
self.action(
name='ActionCloseCurrentBrowser',
- text=self.trUtf8('&Close'),
+ text=self.trUtf8('&Close tab'),
trigger=parent.handleActionCloseCurrentBrowser,
- isEnabled=False,
+ #isEnabled=False,
)
- self.action(
+ self.action( # context menu only
name='ActionCloseBrowserUnderMouse',
- text=self.trUtf8('&Close'),
+ text=self.trUtf8('&Close tab'),
trigger=None,
- isEnabled=False,
+ #isEnabled=False,
)
+
self.action(
- name='ActionHomePage',
- text=self.trUtf8('&Home page'),
- trigger=parent.handleActionHomePage,
- isEnabled=False,
+ name='ActionGoToFProxy',
+ text=self.trUtf8('F&Proxy homepage'),
+ trigger=parent.handleActionGoToFProxy,
+ isEnabled=True,
)
class GlobalFeedback(config.GlobalFeedbackBase):
@@ -135,26 +136,38 @@
#**********************************************************************************
#
#**********************************************************************************
-#TODO: except from but ugly code. opening links is a bit strange currently. have
-# to check policy
+##class Page(QtWebKit.QWebPage):
+## def __init__(self, parent):
+## QtWebKit.QWebPage.__init__(self, parent)
+##
+## def acceptNavigationRequest(self, frame, request, type):
+## return True
+
+
class Browser(QtWebKit.QWebView):
- def __init__(self, browserWidget):
- QtWebKit.QWebView.__init__(self, browserWidget)
+ def __init__(self, parent, tabWidget=None, navBar=None, globalFeedback=None, browserSettings=None, browserActions=None):
+ QtWebKit.QWebView.__init__(self, parent)
+ self.browserActions = browserActions
+ self.browserSettings = browserSettings
+ self.globalFeedback = globalFeedback
+ self.navBar = navBar
+ self.tabWidget = tabWidget
+ self.lastProgress = 0
+ self.lastStatusMessage = self.trUtf8('Waiting')
- #self.nm = NetworkAccessManager(self)
- #self.page().setNetworkAccessManager(self.nm)
-
-
- self.browserWidget = browserWidget
-
#TODO: set start page, otherwise the view is never updated
settings = self.settings()
settings.setAttribute(settings.PluginsEnabled, False)
#settings.setAttribute(settings.AutoLoadImages, False)
+ #page = Page(self)
+ #self.setPage(page)
+ page = self.page()
+ #page.setLinkDelegationPolicy(page.DelegateAllLinks)
+
self.connect(self, QtCore.SIGNAL('loadStarted()'), self.handleLoadStarted)
self.connect(self, QtCore.SIGNAL('loadProgress(int)'), self.handleLoadProgress)
self.connect(self, QtCore.SIGNAL('loadFinished(bool)'), self.handleLoadFinished)
@@ -162,61 +175,71 @@
self.connect(self, QtCore.SIGNAL('urlChanged(const QUrl &)'), self.handleUrlChanged)
self.connect(self, QtCore.SIGNAL('titleChanged(const QString &)'), self.handleTitleChanged)
self.connect(self, QtCore.SIGNAL('iconChanged()'), self.handleIconChanged)
-
- self.lastProgress = 0
- self.lastStatusMessage = self.trUtf8('Waiting')
+
self.setStatusMessage(self.lastStatusMessage)
self.setProgress(self.lastProgress)
-
-
+
+
+ def createWindow(self, typeWindow=QtWebKit.QWebPage.WebBrowserWindow):
+
+ if typeWindow == QtWebKit.QWebPage.WebBrowserWindow:
+ if self.tabWidget is None:
+ return self
+
+ browser = self.__class__(self.tabWidget,
+ tabWidget=self.tabWidget,
+ navBar=self.navBar,
+ globalFeedback=self.globalFeedback,
+ browserSettings=self.browserSettings,
+ browserActions=self.browserActions,
+ )
+ self.tabWidget.addTab(browser, self.trUtf8('Loading'))
+ n = self.tabWidget.count()
+ self.tabWidget.tabBar().setVisible(n)
+ return browser
+
+
def load(self, url):
if self.isCurrentBrowser():
- ed = self.browserWidget.controlById(self.browserWidget.IdEdNavBar)
- ed.setText(url.toString())
+ if self.navBar is not None:
+ self.navBar.setText(url.toString())
QtWebKit.QWebView.load(self, url)
-
- #
- # page = QtWebKit.QWebPage(self)
- # self.setPage(page)
- # QtWebKit.QWebView.load(self, url)
-
+
def showEvent(self, event):
self.setProgress(self.lastProgress)
self.setStatusMessage(self.lastStatusMessage)
- ed = self.browserWidget.controlById(self.browserWidget.IdEdNavBar)
- ed.setText(self.url().toString())
+ if self.navBar is not None:
+ self.navBar.setText(self.url().toString())
-
+
def hideEvent(self, event):
pass
def isCurrentBrowser(self):
- tab = self.browserWidget.controlById(self.browserWidget.IdTabBrowsers)
- return tab.currentWidget() == self
+ if self.tabWidget is not None:
+ return self.tabWidget.currentWidget() == self
+ return False
+
def tabIndex(self):
- tab = self.browserWidget.controlById(self.browserWidget.IdTabBrowsers)
- return tab.indexOf(self)
+ if self.tabWidget is not None:
+ return self.tabWidget.indexOf(self)
+ return -1
def setStatusMessage(self, text):
self.lastStatusMessage = text
- if self.isCurrentBrowser():
- self.browserWidget.fclientGlobalFeedback.setStatusMessage(text)
+ if self.globalFeedback is not None and self.isCurrentBrowser():
+ self.globalFeedback.setStatusMessage(text)
def setProgress(self, percent):
self.lastProgress = percent
- if self.isCurrentBrowser():
- self.browserWidget.fclientGlobalFeedback.setProgress(percent)
+ if self.globalFeedback is not None and self.isCurrentBrowser():
+ self.globalFeedback.setProgress(percent)
-
- def createWindow(self, typeWindow):
- if typeWindow == QtWebKit.QWebPage.WebBrowserWindow:
- return self.browserWidget.newBrowser()
-
-
+
def handleLoadStarted(self):
self.setProgress(0)
self.setStatusMessage(self.trUtf8('Loading'))
@@ -237,35 +260,34 @@
def handleUrlChanged(self, url):
- if self.isCurrentBrowser():
- ed = self.browserWidget.controlById(self.browserWidget.IdEdNavBar)
- ed.setText(url.toString())
+ if self.navBar is not None and self.isCurrentBrowser():
+ self.navBar.setText(url.toString())
def handleIconChanged(self):
i = self.tabIndex()
if i > -1:
- tab.setTabIcon(i, self.icon)
+ self.tabWidget.setTabIcon(i, self.icon)
def handleTitleChanged(self, text):
# add title to tab
- tab = self.browserWidget.controlById(self.browserWidget.IdTabBrowsers)
- i = tab.indexOf(self)
- if i > -1:
- # truncate text if necessary
- maxText = self.browserWidget.fclientSettings.value('MaxTabText')
-
- ellipsis = self.trUtf8('..')
- if text.count() > maxText and text.count() > ellipsis.count()*2:
- n = maxText - ellipsis.count()
- if n < 0:
- n = 0
- text.truncate(n)
- text.append(ellipsis)
- if text.isEmpty():
- text = self.trUtf8('<untitled>')
- tab.setTabText(i, text)
+ if self.tabWidget is not None:
+ i = self.tabIndex()
+ if i > -1:
+ # truncate text if necessary
+ maxText = self.browserSettings.value('MaxTabText')
+
+ ellipsis = self.trUtf8('..')
+ if text.count() > maxText and text.count() > ellipsis.count() * 2: #TODO: * 2 ???
+ n = maxText - ellipsis.count()
+ if n < 0:
+ n = 0
+ text.truncate(n)
+ text.append(ellipsis)
+ if text.isEmpty():
+ text = self.trUtf8('<untitled>')
+ self.tabWidget.setTabText(i, text)
#***********************************************************************
@@ -307,56 +329,61 @@
)
config.fcpClient.events += self.fcpEventHandlers
- ed = self.controlById(self.IdEdNavBar)
- self.connect(ed, QtCore.SIGNAL('returnPressed()'), self.handleNavBarReturnPressed)
+ navBar = self.controlById(self.IdEdNavBar)
+ self.connect(navBar, QtCore.SIGNAL('returnPressed()'), self.handleNavBarReturnPressed)
# setup tab bar
- tab = self.controlById(self.IdTabBrowsers)
- tab.clear()
- tab.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
- self.connect(tab, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBrowsersCurrentChanged)
- self.connect(tab, QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'), self.handleTabBrowsersContextMenuEvent)
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ tabWidget.clear()
+ tabWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
+ self.connect(tabWidget, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBrowsersCurrentChanged)
+ self.connect(tabWidget, QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'), self.handleTabBrowsersContextMenuEvent)
+
+ self.newTab(tabText=self.trUtf8('Waiting for fproxy'))
-
#########################################
## methods
#########################################
def controlById(self, idControl):
return getattr(self, idControl)
-
+
- def newBrowser(self):
- tab = self.controlById(self.IdTabBrowsers)
- #TODO: addTab seems to reparent browser
- browser = Browser(self)
- tab.addTab(browser, self.trUtf8('Loading'))
- tab.tabBar().setVisible(tab.count())
- self.fclientActions['ActionCloseCurrentBrowser'].setEnabled(tab.count() > 1)
- self.fclientActions['ActionCloseBrowserUnderMouse'].setEnabled(tab.count() > 1)
+ def newTab(self, tabText=''):
+ """creates a new tab"""
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ browser = Browser(self,
+ tabWidget=self.controlById(self.IdTabBrowsers),
+ navBar=self.controlById(self.IdEdNavBar),
+ globalFeedback=self.fclientGlobalFeedback,
+ browserSettings=self.fclientSettings,
+ browserActions=self.fclientActions,
+ )
+ tabWidget.addTab(browser, tabText)
return browser
-
-
+
def load(self, url):
- # url: can be QString or QUrl
- if self.fproxyHost is None:
- #TODO: handle
+ """loads a page in the current tab
+
+ @param url: (QUrl) to load. can be a string as well. if '', fproxys homepage is loaded
+ """
+ if self.fproxyHost is None or url is None:
return
-
+
+ # enforce fproxy. we don't want to surf the web
url = QtCore.QUrl(url)
url.setHost(self.fproxyHost)
url.setPort(self.fproxyPort)
url.setScheme('http')
-
- tab = self.controlById(self.IdTabBrowsers)
- browser = tab.currentWidget()
- if browser is None:
- return
-
- browser.load(url)
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ browser = tabWidget.currentWidget()
+ if browser is not None:
+ browser.load(url)
+ #TODO: rework. we need more then one menu
def populateMenu(self, menu):
+ menu.addAction(self.fclientActions['ActionGoToFProxy'])
menu.addAction(self.fclientActions['ActionCloseCurrentBrowser'])
return menu
@@ -378,31 +405,33 @@
def closeEvent(self):
self.viewClose()
+
#########################################
## fcp event handlers
#########################################
+ #TODO: browser should be disabled untill config data has arrived.
+ #disable navbar, tool buttons, actions. on second thought.. we'll see.
def handleFcpConfigData(self, event, msg):
self.fproxyHost = None
self.fproxyPort = None
+
+ #TODO: give feedback in case fproxy is disabled
if msg.get('current.fproxy.enabled'):
fproxyHosts = msg.get('current.fproxy.bindTo')
fproxyPort = msg.get('current.fproxy.port')
if fproxyHosts:
+ #TODO: ups, looks like we can not deal with ipv6 addrs
+ ##self.fproxyHost = fproxyHosts[1]
self.fproxyHost = fproxyHosts[0]
self.fproxyPort = fproxyPort
-
-
- #TODO: just a sketch. when to create the initial browser? what if the user has already entered an url
- # what to do if fproxy is disabled?
+
if not self._initialConfigDataArrived:
self._initialConfigDataArrived = True
-
- self.newBrowser()
- ed = self.controlById(self.IdEdNavBar)
- text = ed.text()
+ navBar = self.controlById(self.IdEdNavBar)
+ text = navBar.text()
if text.isEmpty():
- self.fclientActions['ActionHomePage'].trigger()
+ self.fclientActions['ActionGoToFProxy'].trigger()
else:
self.load(text)
@@ -411,11 +440,9 @@
##
#########################################
def handleActionCloseCurrentBrowser(self, action):
- tab = self.controlById(self.IdTabBrowsers)
- tab.removeTab(tab.currentIndex())
- self.fclientActions['ActionCloseCurrentBrowser'].setEnabled(tab.count() > 1)
- self.fclientActions['ActionCloseBrowserUnderMouse'].setEnabled(tab.count() > 1)
-
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ tabWidget.removeTab(tabWidget.currentIndex())
+
def handleTabBrowsersContextMenuEvent(self, pt):
menu = QtGui.QMenu()
@@ -432,11 +459,8 @@
i = tab.tabBar().tabAt(pt)
if i > -1:
tab.removeTab(i)
- self.fclientActions['ActionCloseCurrentBrowser'].setEnabled(tab.count() > 1)
- self.fclientActions['ActionCloseBrowserUnderMouse'].setEnabled(tab.count() > 1)
-
+
-
def handleTabBrowsersCurrentChanged(self, index):
browser = self.controlById(self.IdTabBrowsers).currentWidget()
if browser is None:
@@ -456,26 +480,25 @@
def handleNavBarReturnPressed(self):
ed = self.controlById(self.IdEdNavBar)
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ if not tabWidget.count():
+ self.newTab(tabText=self.trUtf8(''))
+
self.load(ed.text())
- def handleActionHomePage(self, action):
+ def handleActionGoToFProxy(self, action):
if self.fproxyHost is None:
#TODO: handle
return
url = QtCore.QUrl()
- url.setHost(self.fproxyHost)
- url.setPort(self.fproxyPort)
- url.setScheme('http')
- tab = self.controlById(self.IdTabBrowsers)
- browser = tab.currentWidget()
- if browser is not None:
- browser.load(url)
+ tabWidget = self.controlById(self.IdTabBrowsers)
+ if not tabWidget.count():
+ self.newTab(tabText=self.trUtf8('Waiting for fproxy'))
+ self.load(url)
-
-
#**********************************************************************************
#
#**********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:58:25
|
Revision: 648
http://fclient.svn.sourceforge.net/fclient/?rev=648&view=rev
Author: jUrner
Date: 2008-07-15 16:58:09 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
what a diff pt II
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewLogger.py
Modified: trunk/fclient/src/fclient/Ui_ViewLogger.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-15 23:57:40 UTC (rev 647)
+++ trunk/fclient/src/fclient/Ui_ViewLogger.py 2008-07-15 23:58:09 UTC (rev 648)
@@ -3,15 +3,15 @@
if __name__ == '__main__': # see --> http://bugs.python.org/issue1510172 . works only current dir and below
import os; __path__ = [os.path.dirname(__file__)]
+import sys
import logging
-import sys
-logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
from PyQt4 import QtCore, QtGui
-
from . import config
from . import Ui_View
+from .lib import fcp2
+from .lib.qt4ex.lib import actions
from .tpls.Ui_ViewLoggerWidgetTpl import Ui_ViewLoggerWidget
#**********************************************************************************
@@ -19,81 +19,134 @@
#**********************************************************************************
class Settings(config.SettingsBase):
+ PrefixVerbosityColorFg = 'ColorFgVerbosity'
+
_key_ = config.IdViewLoggerWidget
_settings_ = (
('MaxLines', 'UInt', 1000, config.SettingScopeUser),
+ ('Verbosity', 'PyString', 'Info', config.SettingScopePrivate),
+
+ #TODO: Chatty does not seem to work. check in fcp2.client
+ ('ColorFgVerbosityCRITICAL', 'QColor', QtGui.QColor('red'), config.SettingScopeUser),
+ ('ColorFgVerbosityERROR', 'QColor', QtGui.QColor('red'), config.SettingScopeUser),
+ ('ColorFgVerbosityWARNING', 'QColor', QtGui.QColor('red'), config.SettingScopeUser),
+ ('ColorFgVerbosityINFO', 'QColor', QtGui.QColor('black'), config.SettingScopeUser),
+ ('ColorFgVerbosityMESSAGE', 'QColor', QtGui.QColor('blue'), config.SettingScopeUser),
+ ('ColorFgVerbosityDEBUG', 'QColor', QtGui.QColor('slategray'), config.SettingScopeUser),
+ ('ColorFgVerbosityCHATTY', 'QColor', QtGui.QColor('lightslategray'), config.SettingScopeUser),
)
-#***********************************************************************
-#
-#***********************************************************************
-#TODO: more here...
-class TextEditActionClear(QtGui.QAction):
- def __init__(self, ed):
- QtGui.QAction.__init__(self, ed)
- self.setText(self.trUtf8('Clear'))
- ##self.setShortcut(self.trUtf8("del"))
- self.connect(self, QtCore.SIGNAL('triggered(bool)'), self.handleTriggered)
- self.connect(ed, QtCore.SIGNAL('textChanged()'), self.handleEdTextChanged)
+
+#TODO: for uniformity reasons (...) move ActionsBase to config, no?
+class Actions(actions.ActionsBase):
+
+ PrefixVerbosity = 'ActionVerbosity'
+
+ def __init__(self, parent):
+ actions.ActionsBase.__init__(self, parent)
- self.ed = ed
- self.handleEdTextChanged()
-
- def handleEdTextChanged(self):
- self.setEnabled(not self.ed.document().isEmpty())
-
- def handleTriggered(self, isChecked):
- self.ed.clear()
+ # for ease of use verbosities are mapped to verbosity actions like this: PrefixVerbosity + Verbosity
+ self.action(
+ name='ActionLoggerClear',
+ text=self.trUtf8('C&lear'),
+ trigger=parent.handleActionLoggerClear,
+ )
+
+ groupVerbosity = self.group(
+ name='GroupVerbosity',
+ trigger=parent.handleGroupVerbosityTriggered,
+ isExclusive=True,
+ )
+ self.action(
+ name='ActionVerbosityInfo',
+ text=self.trUtf8('Info'),
+ group=groupVerbosity,
+ trigger=None,
+ isCheckable=True,
+ userData=fcp2.ConstDebugVerbosity.Info,
+ )
+ self.action(
+ name='ActionVerbosityMessage',
+ text=self.trUtf8('Message'),
+ group=groupVerbosity,
+ trigger=None,
+ isCheckable=True,
+ userData=fcp2.ConstDebugVerbosity.Message,
+ )
+ self.action(
+ name='ActionVerbosityDebug',
+ text=self.trUtf8('Debug'),
+ group=groupVerbosity,
+ trigger=None,
+ isCheckable=True,
+ userData=fcp2.ConstDebugVerbosity.Debug,
+ )
+ self.action(
+ name='ActionVerbosityChatty',
+ text=self.trUtf8('Chatty'),
+ group=groupVerbosity,
+ trigger=None,
+ isCheckable=True,
+ userData=fcp2.ConstDebugVerbosity.Chatty,
+ )
#***********************************************************************
#
#***********************************************************************
class MyLoggingHandler(logging.Handler):
- def __init__(self, myLogf, *args, **kwargs):
+ def __init__(self, cb, *args, **kwargs):
logging.Handler.__init__(self, *args, **kwargs)
- self.myLogf = myLogf
+ self.cb = cb
def emit(self, record):
- self.myLogf(
- '%s:%s:%s' % (record.levelname, record.name, record.getMessage())
- )
+ self.cb(record)
#***********************************************************************
#
#***********************************************************************
class ViewLoggerWidget(QtGui.QWidget, Ui_ViewLoggerWidget):
- IdEddLogger = 'edLogger'
-
+ IdEdLogger = 'edLogger'
- def __init__(self, parent, level=logging.NOTSET):
+
+ def __init__(self, parent):
QtGui.QWidget.__init__(self, parent)
- self._acts = []
self._isCreated = False
- self._mainWindowMenus = []
+ self._mainWindowMenus = {} #TODO: wrap along with toolbars to a handy class MainWindowStuff
- self.settings = Settings()
-
self.setupUi(self)
config.ObjectRegistry.register(self)
- #NOTE: do not move to showEvent(). we want to be up and alive as soon as possible
- # to catch logs
- self.settings.restore()
- ed = self.controlById(self.IdEddLogger)
+ self.actions = Actions(self)
+ self.settings = Settings(self).restore()
+
+ # setup editbox
+ #NOTE: do not move to showEvent(). we want to be up and alive as soon as possible to catch logs
+ ed = self.controlById(self.IdEdLogger)
ed.document().setMaximumBlockCount(self.settings.value('MaxLines'))
- ed.contextMenuEvent = self.edLoggerContextMenuEvent
+ ed.contextMenuEvent = self.loggerContextMenuEvent
+ self.connect(ed, QtCore.SIGNAL('textChanged()'), self.handleLoggerTextChanged)
- self.loggingHandler = MyLoggingHandler(self.addMessage)
+ # setup logger
+ self.loggingHandler = MyLoggingHandler(self.addRecord)
logging.getLogger('').addHandler(self.loggingHandler)
+
+ # setup actions
+ verbosity = self.settings.value('Verbosity').title()
+ action = self.actions.get(self.actions.PrefixVerbosity + verbosity, None)
+ if action is None:
+ verbosity = self.settings.restoreDefaults('Verbosity')['Verbosity']
+ action = self.actions.get(self.actions.PrefixVerbosity + verbosity, None)
+ if action is None:
+ raise ValueError('default verbosity action "%s" not found. WTF?' % self.actions.PrefixVerbosity + verbosity)
+ action.trigger()
# atatch menus to main window if present. have to do it in __init__ to reserve order
menuBarWrap = config.ObjectRegistry.get(config.IdMainWindowMenuBarWrap, None)
if menuBarWrap is not None:
menu = QtGui.QMenu(self.viewDisplayName(), menuBarWrap.menuBar())
- for act in self.acts():
- menu.addAction(act)
+ self.populateMenu(menu)
self._mainWindowMenus = (
menuBarWrap.addViewMenu(menu),
)
@@ -101,22 +154,29 @@
#########################################
## methods
#########################################
- def acts(self):
- if not self._acts:
- self._acts = (
- TextEditActionClear(self.controlById(self.IdEddLogger)),
- )
- return self._acts
+ def addRecord(self, record):
+ """adds a logging record"""
+
+ ed = self.controlById(self.IdEdLogger)
+ fmt = ed.currentCharFormat()
+ colorFg = self.settings.value(self.settings.PrefixVerbosityColorFg + record.levelname)
+ fmt.setForeground(QtGui.QBrush(colorFg))
+ ed.setCurrentCharFormat(fmt)
+
+ text = '%s:%s:%s' % (record.levelname, record.name, record.getMessage())
+ ed.appendPlainText(text)
- def addMessage(self, text):
- ed = self.controlById(self.IdEddLogger)
- ed.append(text)
-
-
def controlById(self, idControl):
return getattr(self, idControl)
+
+ def populateMenu(self, menu):
+ menu.addAction(self.actions['ActionLoggerClear'])
+ subMenu = menu.addMenu(self.trUtf8('Verbosity'))
+ subMenu.addActions(self.actions['GroupVerbosity'].actions())
+ return menu
+
#########################################
##view methods
#########################################
@@ -140,20 +200,36 @@
#########################################
## overwritten events
#########################################
- def edLoggerContextMenuEvent(self, event):
+ def loggerContextMenuEvent(self, event):
"""customize context menu of the logger QTextEdit"""
- ed = self.controlById(self.IdEddLogger)
+ ed = self.controlById(self.IdEdLogger)
menu = ed.createStandardContextMenu()
- for act in self.acts():
- menu.addAction(act)
+ self.populateMenu(menu)
menu.exec_(event.globalPos())
+
def showEvent(self, event):
if self._isCreated:
return
self._isCreated = True
+
+ #########################################
+ ## event handlers
+ #########################################
+ def handleActionLoggerClear(self, action):
+ self.controlById(self.IdEdLogger).clear()
-
+
+ def handleGroupVerbosityTriggered(self, action):
+ nameVerbosity = action.objectName()[len(self.actions.PrefixVerbosity):]
+ self.settings.setValues(Verbosity=nameVerbosity)
+ logging.getLogger().setLevel(action.userData())
+
+
+ def handleLoggerTextChanged(self):
+ ed = self.controlById(self.IdEdLogger)
+ self.actions['ActionLoggerClear'].setEnabled(not ed.document().isEmpty())
+
#**********************************************************************************
#
#**********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:57:33
|
Revision: 647
http://fclient.svn.sourceforge.net/fclient/?rev=647&view=rev
Author: jUrner
Date: 2008-07-15 16:57:40 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
what a diff
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-15 23:57:01 UTC (rev 646)
+++ trunk/fclient/src/fclient/Ui_ViewConnection.py 2008-07-15 23:57:40 UTC (rev 647)
@@ -17,6 +17,7 @@
_settings_ = (
('ConnectionTimerTimeout', 'UInt', 800, config.SettingScopeExpert),
('ConnectionTimerMaxDuration', 'UInt', 20, config.SettingScopeExpert),
+ ('PollTimerTimeout', 'UInt', 200, config.SettingScopeExpert),
('AutoConnect', 'Bool', False, config.SettingScopeUser),
('ConnectionName', 'String', '', config.SettingScopeUser), #TODO: we need a python ansi string
@@ -31,27 +32,46 @@
def __init__(self,parent):
QtCore.QTimer.__init__(self, parent)
- self.iterConnect = None
- self.nodeHello = None
+ self.fcpIterConnect = None
self.connect(self, QtCore.SIGNAL('timeout()'), self.handleNext)
def start(self, settings):
- self.iterConnect = config.fcpClient.iterConnect(
+ self.fcpIterConnect = config.fcpClient.iterConnect(
duration=settings.value('ConnectionTimerMaxDuration'),
timeout=0
)
- QtCore.QTimer.start(self, settings.value('ConnectionTimerTimeout'))
+ if not self.handleNext():
+ QtCore.QTimer.start(self, settings.value('ConnectionTimerTimeout'))
def handleNext(self):
try:
- result = self.iterConnect.next()
+ result = self.fcpIterConnect.next()
except StopIteration:
self.stop()
else:
if result is not None:
self.stop()
- self.nodeHello = result
+ # 1st thing todo after connect is to query the config from the node so all
+ # listeners right away so not everyone has to query it so. needs more details
+ # or joins the gui later.. feel free to query again
+ config.fcpClient.getConfig()
+ return True
+ return False
+
+
+class PollTimer(QtCore.QTimer):
+
+ def __init__(self,parent):
+ QtCore.QTimer.__init__(self, parent)
+ self.connect(self, QtCore.SIGNAL('timeout()'), self.handleNext)
+ def start(self, settings):
+ QtCore.QTimer.start(self, settings.value('PollTimerTimeout'))
+
+ def handleNext(self):
+ if config.fcpClient.isConnected():
+ result = config.fcpClient.next()
+
#***********************************************************************
#
#***********************************************************************
@@ -65,24 +85,25 @@
def __init__(self, parent, cfg=None):
QtGui.QWidget.__init__(self, parent)
- self._acts = []
self._isCreated = False
self._connectionTimer = ConnectionTimer(self)
- self._eventHandlers = (
+ self._pollTimer = PollTimer(self)
+ self._fcpEventHandlers = (
+ (config.fcpClient.events.ClientConnected, self.handleFcpClientConected),
(config.fcpClient.events.ClientDisconnected, self.handleFcpClientDisconected),
)
+ config.fcpClient.events += self._fcpEventHandlers
self._mainWindowMenus = ()
self.settings = Settings()
self.setupUi(self)
config.ObjectRegistry.register(self)
-
+
# atatch menus to main window if present. have to do it in __init__ to reserve order
menuBarWrap = config.ObjectRegistry.get(config.IdMainWindowMenuBarWrap, None)
if menuBarWrap is not None:
menu = QtGui.QMenu(self.viewDisplayName(), menuBarWrap.menuBar())
- for act in self.acts():
- menu.addAction(act)
+ self.populateMenu(menu)
self._mainWindowMenus = (
menuBarWrap.addViewMenu(menu),
)
@@ -90,26 +111,18 @@
#########################################
## methods
#########################################
- def close(self):
- config.fcpClient.events -= self._eventHandlers
-
def controlById(self, idControl):
return getattr(self, idControl)
+
- def displayName(self):
- return self.trUft8('Connection')
+ def populateMenu(self, menu):
+ return menu
- def acts(self):
- if not self._acts:
- self._acts = (
- )
- return self._acts
-
#########################################
## view methods
#########################################
def viewClose(self):
- self.close()
+ config.fcpClient.events -= self._fcpEventHandlers
def viewDisplayName(self):
return self.trUtf8('Connection')
@@ -128,7 +141,7 @@
## overwritten events
#########################################
def closeEvent(self, event):
- self.close()
+ self.viewClose()
def showEvent(self, event):
if self._isCreated:
@@ -137,8 +150,7 @@
self.settings.restore()
- config.fcpClient.events += self._eventHandlers
-
+
# setup host / port boxes
edHost = self.controlById(self.IdEdConnectionHost)
edHost.setText(self.settings.value('ConnectionHost'))
@@ -157,10 +169,7 @@
self.connect(bt, QtCore.SIGNAL('clicked(bool)'), self.handleBtConnectClicked)
if doAutoConnect:
self.controlById(self.IdBtConnect).click()
-
-
-
-
+
########################################
## overwritten methods
#########################################
@@ -183,6 +192,7 @@
else:
self._connectionTimer.stop()
if config.fcpClient.isConnected():
+ self._pollTimer.stop()
config.fcpClient.close()
@@ -197,6 +207,9 @@
if bt.isChecked():
bt.click()
+ def handleFcpClientConected(self, event, msg):
+ self._pollTimer.start(self.settings)
+
#**********************************************************************************
#
#**********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:56:53
|
Revision: 646
http://fclient.svn.sourceforge.net/fclient/?rev=646&view=rev
Author: jUrner
Date: 2008-07-15 16:57:01 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
basic browser impl
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_ViewBrowser.py
Modified: trunk/fclient/src/fclient/Ui_ViewBrowser.py
===================================================================
--- trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-15 23:56:30 UTC (rev 645)
+++ trunk/fclient/src/fclient/Ui_ViewBrowser.py 2008-07-15 23:57:01 UTC (rev 646)
@@ -1,18 +1,20 @@
-
-
+
from __future__ import absolute_import
if __name__ == '__main__': # see --> http://bugs.python.org/issue1510172 . works only current dir and below
import os; __path__ = [os.path.dirname(__file__)]
import logging
+import posixpath
+#import re
import sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
-from PyQt4 import QtCore, QtGui
+from PyQt4 import QtCore, QtGui, QtWebKit
-
from . import config
from . import Ui_View
+from .lib import fcp2
+from .lib.qt4ex.lib import actions
from .tpls.Ui_ViewBrowserWidgetTpl import Ui_ViewBrowserWidget
#**********************************************************************************
@@ -22,53 +24,106 @@
_key_ = config.IdViewBrowserWidget
_settings_ = (
)
-
+
+
+#TODO: for uniformity reasons (...) move ActionsBase to config, no?
+class Actions(actions.ActionsBase):
+ pass
+
+#**********************************************************************************
+#
+#**********************************************************************************
+class Browser(QtWebKit.QWebView):
+
+
+ def __init__(self, parent):
+ QtWebKit.QWebView.__init__(self, parent)
+
+ #TODO: set start page, otherwise the view is never updated
+ settings = self.settings()
+ settings.setAttribute(settings.PluginsEnabled, False)
+ #settings.setAttribute(settings.AutoLoadImages, False)
+
#***********************************************************************
#
#***********************************************************************
class ViewBrowserWidget(QtGui.QWidget, Ui_ViewBrowserWidget):
+ IdTabBrowsers = 'tabBrowsers'
+ IdFrameTools = 'frameTools'
+ IdFrameNavBar = 'frameNavBar'
+ IdEdNavBar = 'edNavBar'
+
+
+ def __init__(self, parent, keyHome=None):
+ QtGui.QWidget.__init__(self, parent)
- def __init__(self, parent):
- QtGui.QWidget.__init__(self, parent)
- self._acts = []
self._isCreated = False
self._mainWindowMenus = []
self.settings = Settings()
+ self.fProxyHost = None
+ self._fproxyPort = None
+
self.setupUi(self)
config.ObjectRegistry.register(self)
-
+ self._fcpEventHandlers = (
+ (config.fcpClient.events.ConfigData, self.handleFcpConfigData),
+ )
+ config.fcpClient.events += self._fcpEventHandlers
+
# atatch menus to main window if present. have to do it in __init__ to reserve order
menuBarWrap = config.ObjectRegistry.get(config.IdMainWindowMenuBarWrap, None)
if menuBarWrap is not None:
menu = QtGui.QMenu(self.viewDisplayName(), menuBarWrap.menuBar())
- for act in self.acts():
- print act
- menu.addAction(act)
+ self.populateMenu(menu)
self._mainWindowMenus = (
menuBarWrap.addViewMenu(menu),
)
-
+
+ ed = self.controlById(self.IdEdNavBar)
+ self.connect(ed, QtCore.SIGNAL('returnPressed()'), self.handleNavBarReturnPressed)
+
+ # setup tab bar
+ tab = self.controlById(self.IdTabBrowsers)
+ tab.clear()
+ browser = Browser(tab)
+ tab.addTab(browser, self.trUtf8('Empty'))
+ tab.tabBar().setVisible(tab.count())
+
#########################################
## methods
#########################################
- def acts(self):
- if not self._acts:
- self._acts = (
- )
- return self._acts
-
-
def controlById(self, idControl):
return getattr(self, idControl)
+
+ def load(self, key):
+ if self.fproxyHost is None:
+ #TODO: handle
+ return
+
+ url = QtCore.QUrl(key)
+ url.setHost(self.fproxyHost)
+ url.setPort(self.fproxyPort)
+ url.setScheme('http')
+
+ self.controlById(self.IdEdNavBar).setText(url.toString())
+
+ tab = self.controlById(self.IdTabBrowsers)
+ browser = tab.currentWidget()
+ browser.load(url)
+
+
+ def populateMenu(self, menu):
+ return menu
+
#########################################
##view methods
#########################################
def viewClose(self):
- pass
+ onfig.fcpClient.events -= self._fcpEventHandlers
def viewDisplayName(self):
return self.trUtf8('Browser')
@@ -76,6 +131,7 @@
def viewHandleCurrentChanged(self, isCurrent):
for menu in self._mainWindowMenus:
menu.children()[0].setVisible(isCurrent)
+
def viewIcon(self):
return QtGui.QIcon()
@@ -90,18 +146,58 @@
if self._isCreated:
return
self._isCreated = True
+ ed = self.controlById(self.IdEdNavBar)
+ #ed.setText('USK@7H66rhYmxIFgMyw5Dl11JazXGHPhp7dSN7WMa1pbtEo,jQHUQUPTkeRcjmjgrc7t5cDRdDkK3uKkrSzuw5CO9uk,AQACAAE/ENTRY.POINT/36/')
+ ed.setText('USK@zQyF2O1o8B4y40w7Twz8y2I9haW3d2DTlxjTHPu7zc8,h2mhQNNE9aQvF~2yKAmKV1uorr7141-QOroBf5hrlbw,AQACAAE/AnotherIndex/67/')
+
+ def closeEvent(self):
+ self.viewClose()
+
+ #########################################
+ ## fcp event handlers
+ #########################################
+ def handleFcpConfigData(self, event, msg):
+ self.fproxyHost = None
+ self.fproxyPort = None
+ if msg.get('current.fproxy.enabled'):
+ fproxyHosts = msg.get('current.fproxy.bindTo')
+ fproxyPort = msg.get('current.fproxy.port')
+ if fproxyHosts:
+ self.fproxyHost = fproxyHosts[0]
+ self.fproxyPort = fproxyPort
+
+ #########################################
+ ##
+ #########################################
+ def handleNavBarReturnPressed(self):
+ ed = self.controlById(self.IdEdNavBar)
+ self.load(ed.text())
+
#**********************************************************************************
#
#**********************************************************************************
if __name__ == '__main__':
import sys
- from . import Ui_ViewLogger
+ from .Ui_ViewLogger import ViewLoggerWidget
+ from .Ui_MainWindow import MainWindow
+ from .Ui_View import ViewWidget
+ from .Ui_ViewConnection import ViewConnectionWidget
app = QtGui.QApplication(sys.argv)
- w = ViewBrowserWidget(None)
-
- w.show()
+
+ mainWindow = MainWindow()
+ viewWidget = ViewWidget(mainWindow)
+ mainWindow.setCentralWidget(viewWidget)
+
+ browserWidget = ViewBrowserWidget(mainWindow)
+ viewWidget.addTopViews(
+ ViewConnectionWidget(mainWindow),
+ browserWidget,
+ )
+ viewWidget.addBottomViews(ViewLoggerWidget(mainWindow))
+
+ mainWindow.show()
res = app.exec_()
sys.exit(res)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:56:42
|
Revision: 645
http://fclient.svn.sourceforge.net/fclient/?rev=645&view=rev
Author: jUrner
Date: 2008-07-15 16:56:30 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
this and that
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_View.py
Modified: trunk/fclient/src/fclient/Ui_View.py
===================================================================
--- trunk/fclient/src/fclient/Ui_View.py 2008-07-15 23:55:23 UTC (rev 644)
+++ trunk/fclient/src/fclient/Ui_View.py 2008-07-15 23:56:30 UTC (rev 645)
@@ -55,12 +55,11 @@
tabTop.removeTab(0)
tabBottom = self.controlById(self.IdTabBottom)
tabBottom.removeTab(0)
- self.connect(tabTop, QtCore.SIGNAL('currentChanged(int)'), self.handleTabTopCurrentChanged)
- self.connect(tabBottom, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBottomCurrentChanged)
-
+
# setup splitter
splitter = self.controlById(self.IdSplitter)
splitter.restoreState(self.settings.value('SplitterPos'))
+ self.connect(splitter, QtCore.SIGNAL('splitterMoved(int, int)'), self.handleSplitterMoved)
def controlById(self, idControl):
@@ -78,7 +77,9 @@
view.setParent(tab)
i = tab.addTab(view, view.viewIcon(), view.viewDisplayName())
self.views[name] = (tab, view)
-
+
+ tab.tabBar().setVisible(tab.count() > 1)
+
def addBottomViews(self, *views):
return self._addViews(False, *views)
@@ -94,17 +95,19 @@
return result[1]
return None
- #TODO: ...
- #def setCurrentView(self, view):
- # index, tab, view = view
-
+ def setCurrentView(self, name):
+ result = self.views.get(name, None)
+ if result is not None:
+ tab, view = result
+ tab.setCurrentWidget(view)
+ return True
+ return False
+
#########################################################
##
#########################################################
def closeEvent(self, event):
- splitter = self.controlById(self.IdSplitter)
- self.settings.setValues(SplitterPos=splitter.saveState())
for tab, view in self.views.values():
view.viewClose()
@@ -115,24 +118,31 @@
self._isCreated = True
# restore current views
- tabs = (
- (self.controlById(self.IdTabTop), 'LastViewTop'),
- (self.controlById(self.IdTabBottom), 'LastViewBottom'),
- )
- for tab, nameSetting in tabs:
- lastName = self.settings.value(nameSetting)
- if lastName:
- lastView = self.viewFromName(lastName)
- if lastView is not None:
- tab.setCurrentWidget(lastView)
-
+ tabTop = self.controlById(self.IdTabTop)
+ lastName = self.settings.value('LastViewTop')
+ self.setCurrentView(lastName)
+
+ tabBottom = self.controlById(self.IdTabBottom)
+ lastName = self.settings.value('LastViewBottom')
+ self.setCurrentView(lastName)
+
# inform views about their current status
for tab, view in self.views.values():
view.viewHandleCurrentChanged(tab.currentWidget() == view)
+
+ # finally connect... not to overwrite settings
+ self.connect(tabTop, QtCore.SIGNAL('currentChanged(int)'), self.handleTabTopCurrentChanged)
+ self.connect(tabBottom, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBottomCurrentChanged)
+
#########################################################
##
#########################################################
+ def handleSplitterMoved(self, pos, index):
+ splitter = self.controlById(self.IdSplitter)
+ self.settings.setValues(SplitterPos=splitter.saveState())
+
+
def _handleTabCurrentChanged(self, index, isTop=True):
lastName = self.settings.value('LastViewTop' if isTop else 'LastViewBottom')
if lastName:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:55:30
|
Revision: 644
http://fclient.svn.sourceforge.net/fclient/?rev=644&view=rev
Author: jUrner
Date: 2008-07-15 16:55:23 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
whitespace
Modified Paths:
--------------
trunk/fclient/src/fclient/Ui_MainWindow.py
Modified: trunk/fclient/src/fclient/Ui_MainWindow.py
===================================================================
--- trunk/fclient/src/fclient/Ui_MainWindow.py 2008-07-15 23:54:47 UTC (rev 643)
+++ trunk/fclient/src/fclient/Ui_MainWindow.py 2008-07-15 23:55:23 UTC (rev 644)
@@ -77,6 +77,7 @@
def closeEvent(self, event):
self.settings.setValues(Geometry=self.saveGeometry())
+
def showEvent(self, event):
if self._isCreated:
return
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:54:39
|
Revision: 643
http://fclient.svn.sourceforge.net/fclient/?rev=643&view=rev
Author: jUrner
Date: 2008-07-15 16:54:47 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
browser is now webkit
Modified Paths:
--------------
trunk/fclient/src/fclient/tpls/Ui_ViewBrowserWidgetTpl.py
Modified: trunk/fclient/src/fclient/tpls/Ui_ViewBrowserWidgetTpl.py
===================================================================
--- trunk/fclient/src/fclient/tpls/Ui_ViewBrowserWidgetTpl.py 2008-07-15 23:54:40 UTC (rev 642)
+++ trunk/fclient/src/fclient/tpls/Ui_ViewBrowserWidgetTpl.py 2008-07-15 23:54:47 UTC (rev 643)
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file '/home/me/src/proj/fclient/trunk/fclient/src/fclient/tpls/ViewBrowserWidgetTpl.ui'
#
-# Created: Sun Jul 13 14:59:28 2008
+# Created: Sun Jul 13 20:33:16 2008
# by: PyQt4 UI code generator 4.3.3
#
# WARNING! All changes made in this file will be lost!
@@ -12,13 +12,73 @@
class Ui_ViewBrowserWidget(object):
def setupUi(self, ViewBrowserWidget):
ViewBrowserWidget.setObjectName("ViewBrowserWidget")
- ViewBrowserWidget.resize(QtCore.QSize(QtCore.QRect(0,0,533,356).size()).expandedTo(ViewBrowserWidget.minimumSizeHint()))
+ ViewBrowserWidget.resize(QtCore.QSize(QtCore.QRect(0,0,570,516).size()).expandedTo(ViewBrowserWidget.minimumSizeHint()))
+ self.gridlayout = QtGui.QGridLayout(ViewBrowserWidget)
+ self.gridlayout.setObjectName("gridlayout")
+
+ self.hboxlayout = QtGui.QHBoxLayout()
+ self.hboxlayout.setObjectName("hboxlayout")
+
+ self.frameTools = QtGui.QFrame(ViewBrowserWidget)
+ self.frameTools.setFrameShape(QtGui.QFrame.NoFrame)
+ self.frameTools.setFrameShadow(QtGui.QFrame.Raised)
+ self.frameTools.setObjectName("frameTools")
+
+ self.gridlayout1 = QtGui.QGridLayout(self.frameTools)
+ self.gridlayout1.setMargin(0)
+ self.gridlayout1.setSpacing(0)
+ self.gridlayout1.setObjectName("gridlayout1")
+
+ self.toolButton = QtGui.QToolButton(self.frameTools)
+ self.toolButton.setObjectName("toolButton")
+ self.gridlayout1.addWidget(self.toolButton,0,0,1,1)
+
+ self.toolButton_2 = QtGui.QToolButton(self.frameTools)
+ self.toolButton_2.setObjectName("toolButton_2")
+ self.gridlayout1.addWidget(self.toolButton_2,0,1,1,1)
+
+ self.toolButton_3 = QtGui.QToolButton(self.frameTools)
+ self.toolButton_3.setObjectName("toolButton_3")
+ self.gridlayout1.addWidget(self.toolButton_3,0,2,1,1)
+ self.hboxlayout.addWidget(self.frameTools)
+
+ self.frameNavBar = QtGui.QFrame(ViewBrowserWidget)
+ self.frameNavBar.setMinimumSize(QtCore.QSize(0,0))
+ self.frameNavBar.setFrameShape(QtGui.QFrame.NoFrame)
+ self.frameNavBar.setFrameShadow(QtGui.QFrame.Plain)
+ self.frameNavBar.setLineWidth(0)
+ self.frameNavBar.setObjectName("frameNavBar")
+
+ self.gridlayout2 = QtGui.QGridLayout(self.frameNavBar)
+ self.gridlayout2.setMargin(0)
+ self.gridlayout2.setSpacing(0)
+ self.gridlayout2.setObjectName("gridlayout2")
+
+ self.edNavBar = QtGui.QLineEdit(self.frameNavBar)
+ self.edNavBar.setObjectName("edNavBar")
+ self.gridlayout2.addWidget(self.edNavBar,0,0,1,1)
+ self.hboxlayout.addWidget(self.frameNavBar)
+ self.gridlayout.addLayout(self.hboxlayout,0,0,1,1)
+
+ self.tabBrowsers = QtGui.QTabWidget(ViewBrowserWidget)
+ self.tabBrowsers.setObjectName("tabBrowsers")
+
+ self.tab = QtGui.QWidget()
+ self.tab.setObjectName("tab")
+ self.tabBrowsers.addTab(self.tab,"")
+ self.gridlayout.addWidget(self.tabBrowsers,1,0,1,1)
+
self.retranslateUi(ViewBrowserWidget)
+ self.tabBrowsers.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(ViewBrowserWidget)
def retranslateUi(self, ViewBrowserWidget):
ViewBrowserWidget.setWindowTitle(QtGui.QApplication.translate("ViewBrowserWidget", "Form", None, QtGui.QApplication.UnicodeUTF8))
+ self.toolButton.setText(QtGui.QApplication.translate("ViewBrowserWidget", "...", None, QtGui.QApplication.UnicodeUTF8))
+ self.toolButton_2.setText(QtGui.QApplication.translate("ViewBrowserWidget", "...", None, QtGui.QApplication.UnicodeUTF8))
+ self.toolButton_3.setText(QtGui.QApplication.translate("ViewBrowserWidget", "...", None, QtGui.QApplication.UnicodeUTF8))
+ self.tabBrowsers.setTabText(self.tabBrowsers.indexOf(self.tab), QtGui.QApplication.translate("ViewBrowserWidget", "Tab 1", None, QtGui.QApplication.UnicodeUTF8))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:54:33
|
Revision: 642
http://fclient.svn.sourceforge.net/fclient/?rev=642&view=rev
Author: jUrner
Date: 2008-07-15 16:54:40 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
browser is now webkit
Modified Paths:
--------------
trunk/fclient/src/fclient/tpls/ViewBrowserWidgetTpl.ui
Modified: trunk/fclient/src/fclient/tpls/ViewBrowserWidgetTpl.ui
===================================================================
--- trunk/fclient/src/fclient/tpls/ViewBrowserWidgetTpl.ui 2008-07-15 23:54:12 UTC (rev 641)
+++ trunk/fclient/src/fclient/tpls/ViewBrowserWidgetTpl.ui 2008-07-15 23:54:40 UTC (rev 642)
@@ -5,13 +5,124 @@
<rect>
<x>0</x>
<y>0</y>
- <width>533</width>
- <height>356</height>
+ <width>570</width>
+ <height>516</height>
</rect>
</property>
<property name="windowTitle" >
<string>Form</string>
</property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QFrame" name="frameTools" >
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>0</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QToolButton" name="toolButton" >
+ <property name="text" >
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QToolButton" name="toolButton_2" >
+ <property name="text" >
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QToolButton" name="toolButton_3" >
+ <property name="text" >
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QFrame" name="frameNavBar" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="lineWidth" >
+ <number>0</number>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <property name="horizontalSpacing" >
+ <number>0</number>
+ </property>
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLineEdit" name="edNavBar" />
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QTabWidget" name="tabBrowsers" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Tab 1</string>
+ </attribute>
+ </widget>
+ </widget>
+ </item>
+ </layout>
</widget>
<resources/>
<connections/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:54:03
|
Revision: 641
http://fclient.svn.sourceforge.net/fclient/?rev=641&view=rev
Author: jUrner
Date: 2008-07-15 16:54:12 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
qt4.4 has QPlainTextEdit for logging
Modified Paths:
--------------
trunk/fclient/src/fclient/tpls/ViewLoggerWidgetTpl.ui
Modified: trunk/fclient/src/fclient/tpls/ViewLoggerWidgetTpl.ui
===================================================================
--- trunk/fclient/src/fclient/tpls/ViewLoggerWidgetTpl.ui 2008-07-15 23:54:02 UTC (rev 640)
+++ trunk/fclient/src/fclient/tpls/ViewLoggerWidgetTpl.ui 2008-07-15 23:54:12 UTC (rev 641)
@@ -12,24 +12,15 @@
<property name="windowTitle" >
<string>Form</string>
</property>
- <layout class="QGridLayout" >
+ <layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
- <widget class="QTextEdit" name="edLogger" >
- <property name="undoRedoEnabled" >
- <bool>false</bool>
- </property>
+ <widget class="QPlainTextEdit" name="edLogger" >
<property name="lineWrapMode" >
- <enum>QTextEdit::NoWrap</enum>
+ <enum>QPlainTextEdit::NoWrap</enum>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
- <property name="acceptRichText" >
- <bool>false</bool>
- </property>
- <property name="textInteractionFlags" >
- <set>Qt::NoTextInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
</widget>
</item>
</layout>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:53:57
|
Revision: 640
http://fclient.svn.sourceforge.net/fclient/?rev=640&view=rev
Author: jUrner
Date: 2008-07-15 16:54:02 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
qt4.4 has QPlainTextEdit for logging
Modified Paths:
--------------
trunk/fclient/src/fclient/tpls/Ui_ViewLoggerWidgetTpl.py
Modified: trunk/fclient/src/fclient/tpls/Ui_ViewLoggerWidgetTpl.py
===================================================================
--- trunk/fclient/src/fclient/tpls/Ui_ViewLoggerWidgetTpl.py 2008-07-15 23:53:25 UTC (rev 639)
+++ trunk/fclient/src/fclient/tpls/Ui_ViewLoggerWidgetTpl.py 2008-07-15 23:54:02 UTC (rev 640)
@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file '/home/me/src/proj/fclient/trunk/fclient/src/fclient/tpls/ViewLoggerWidgetTpl.ui'
#
-# Created: Tue Jul 8 17:48:36 2008
-# by: PyQt4 UI code generator 4.3.3
+# Created: Tue Jul 15 16:03:24 2008
+# by: PyQt4 UI code generator 4.4.3-snapshot-20080705
#
# WARNING! All changes made in this file will be lost!
@@ -12,19 +12,14 @@
class Ui_ViewLoggerWidget(object):
def setupUi(self, ViewLoggerWidget):
ViewLoggerWidget.setObjectName("ViewLoggerWidget")
- ViewLoggerWidget.resize(QtCore.QSize(QtCore.QRect(0,0,550,471).size()).expandedTo(ViewLoggerWidget.minimumSizeHint()))
-
- self.gridlayout = QtGui.QGridLayout(ViewLoggerWidget)
- self.gridlayout.setObjectName("gridlayout")
-
- self.edLogger = QtGui.QTextEdit(ViewLoggerWidget)
- self.edLogger.setUndoRedoEnabled(False)
- self.edLogger.setLineWrapMode(QtGui.QTextEdit.NoWrap)
+ ViewLoggerWidget.resize(550, 471)
+ self.gridLayout = QtGui.QGridLayout(ViewLoggerWidget)
+ self.gridLayout.setObjectName("gridLayout")
+ self.edLogger = QtGui.QPlainTextEdit(ViewLoggerWidget)
+ self.edLogger.setLineWrapMode(QtGui.QPlainTextEdit.NoWrap)
self.edLogger.setReadOnly(True)
- self.edLogger.setAcceptRichText(False)
- self.edLogger.setTextInteractionFlags(QtCore.Qt.NoTextInteraction|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
self.edLogger.setObjectName("edLogger")
- self.gridlayout.addWidget(self.edLogger,0,0,1,1)
+ self.gridLayout.addWidget(self.edLogger, 0, 0, 1, 1)
self.retranslateUi(ViewLoggerWidget)
QtCore.QMetaObject.connectSlotsByName(ViewLoggerWidget)
@@ -33,7 +28,6 @@
ViewLoggerWidget.setWindowTitle(QtGui.QApplication.translate("ViewLoggerWidget", "Form", None, QtGui.QApplication.UnicodeUTF8))
-
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
@@ -42,3 +36,4 @@
ui.setupUi(ViewLoggerWidget)
ViewLoggerWidget.show()
sys.exit(app.exec_())
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:53:15
|
Revision: 639
http://fclient.svn.sourceforge.net/fclient/?rev=639&view=rev
Author: jUrner
Date: 2008-07-15 16:53:25 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
...
Modified Paths:
--------------
trunk/fclient/src/fclient/lib/fcp2/test/test_client.py
Modified: trunk/fclient/src/fclient/lib/fcp2/test/test_client.py
===================================================================
--- trunk/fclient/src/fclient/lib/fcp2/test/test_client.py 2008-07-15 23:52:11 UTC (rev 638)
+++ trunk/fclient/src/fclient/lib/fcp2/test/test_client.py 2008-07-15 23:53:25 UTC (rev 639)
@@ -332,6 +332,7 @@
#NOTE: currently ClientDisconnected() is triggered even if the client was not connected
def test_close_disconnected_client(self):
+ self.connectClient()
self.client.close()
self.assertHasNextEvent(
self.client.events.ClientDisconnected,
@@ -569,9 +570,8 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(self.ioOpen())
- self.closeClient()
+
-
def test_iterIterConnect_VersionMissmatch_Build(self):
for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
@@ -599,9 +599,7 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(self.ioOpen())
- self.closeClient()
-
-
+
#***********************************************************************************
#
#***********************************************************************************
@@ -621,8 +619,7 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(self.ioOpen())
- self.closeClient()
-
+
#***********************************************************************************
#
#***********************************************************************************
@@ -645,8 +642,7 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(self.ioOpen())
- self.closeClient()
-
+
#***********************************************************************************
#
#***********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-07-15 23:52:04
|
Revision: 638
http://fclient.svn.sourceforge.net/fclient/?rev=638&view=rev
Author: jUrner
Date: 2008-07-15 16:52:11 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
verbosity
Modified Paths:
--------------
trunk/fclient/src/fclient/lib/fcp2/test/test_all.py
Modified: trunk/fclient/src/fclient/lib/fcp2/test/test_all.py
===================================================================
--- trunk/fclient/src/fclient/lib/fcp2/test/test_all.py 2008-07-15 23:51:52 UTC (rev 637)
+++ trunk/fclient/src/fclient/lib/fcp2/test/test_all.py 2008-07-15 23:52:11 UTC (rev 638)
@@ -14,5 +14,5 @@
if filename.startswith('test_') and file != SelfName:
mod = __import__(filename)
suite = getattr(mod, 'suite')
- unittest.TextTestRunner(verbosity=2).run(suite())
+ unittest.TextTestRunner(verbosity=1).run(suite())
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|