SF.net SVN: fclient: [646] trunk/fclient/src/fclient/Ui_ViewBrowser.py
Status: Pre-Alpha
Brought to you by:
jurner
|
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.
|