You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.1 KiB
92 lines
4.1 KiB
#!/usr/bin/python
|
|
###########################################################################
|
|
# kdeappview - description #
|
|
# ------------------------------ #
|
|
# begin : Fri Jun 27 2005 #
|
|
# copyright : (C) 2005 by AUTHOR #
|
|
# email : your@email.com #
|
|
# #
|
|
###########################################################################
|
|
# #
|
|
# This program is free software; you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation; either version 2 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
###########################################################################
|
|
|
|
from PyTQt.qt import *
|
|
from tdecore import *
|
|
from tdeui import *
|
|
from tdeio import *
|
|
from tdehtml import *
|
|
from tdeparts import *
|
|
#from kdeappiface import *
|
|
|
|
class KdeAppView(QWidget):
|
|
def __init__(self,parent):
|
|
QWidget.__init__(self,parent)
|
|
#self._dcopclient= KdeAppIface(self,"KdeAppIface")
|
|
|
|
# setup our layout manager to automatically add our widgets
|
|
top_layout = QHBoxLayout(self)
|
|
top_layout.setAutoAdd(True)
|
|
|
|
if True:
|
|
self._html = TDEHTMLPart(self)
|
|
else:
|
|
|
|
# we want to look for all components that satisfy our needs. the
|
|
# trader will actually search through *all* registered KDE
|
|
# applications and components -- not just KParts. So we have to
|
|
# specify two things: a service type and a constraint
|
|
#
|
|
# the service type is like a mime type. we say that we want all
|
|
# applications and components that can handle HTML -- 'text/html'
|
|
#
|
|
# however, by itself, this will return such things as Netscape..
|
|
# not what we wanted. so we constrain it by saying that the
|
|
# string 'KParts/ReadOnlyPart' must be found in the ServiceTypes
|
|
# field. with this, only components of the type we want will be
|
|
# returned.
|
|
offers = TDETrader.self().query("text/html", "'KParts/ReadOnlyPart' in ServiceTypes")
|
|
|
|
self._html = None
|
|
# in theory, we only care about the first one.. but let's try all
|
|
# offers just in case the first can't be loaded for some reason
|
|
for ptr in offers:
|
|
# we now know that our offer can handle HTML and is a part.
|
|
# since it is a part, it must also have a library... let's try to
|
|
# load that now
|
|
self._html = createReadOnlyPart(ptr.library(),self,ptr.name(),"KParts::ReadOnlyPart",QStringList())
|
|
if self._html is not None:
|
|
break
|
|
|
|
# if our factory is invalid, then we never found our component
|
|
# and we might as well just exit now
|
|
if self._html is None:
|
|
KMessageBox.error(self, i18n("Could not find a suitable HTML component"))
|
|
return
|
|
|
|
QObject.connect(self._html, SIGNAL("setWindowCaption(const QString&)"), self.slotSetTitle)
|
|
QObject.connect(self._html, SIGNAL("setStatusBarText(const QString&)"), self.slotOnURL)
|
|
|
|
def print_(self,p,height,width):
|
|
pass
|
|
# do the actual printing, here
|
|
# p.drawText(etc..)
|
|
|
|
def currentURL(self):
|
|
return self._html.url().url()
|
|
|
|
def openURL(self,url):
|
|
if isinstance(url,QString):
|
|
url = KURL(url)
|
|
self._html.openURL(url)
|
|
|
|
def slotOnURL(self,url):
|
|
self.emit(PYSIGNAL("signalChangeStatusbar"),(url,) )
|
|
|
|
def slotSetTitle(self,title):
|
|
self.emit(PYSIGNAL("signalChangeCaption"),(title,) )
|