# -*- coding: utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
from PyKDE4.kdecore import *
from PyKDE4.kdeui import *
class WebSnippetApplet(plasmascript.Applet):
def __init__(self,parent,args=None):
plasmascript.Applet.__init__(self,parent)
def init(self):
self.settings = KConfigSkeleton()
self.settings.url = ""
self.settingsDialogParent = QWidget()
self.readSettings()
self.setHasConfigurationInterface(True)
self.resize(375, 525)
self.setAspectRatioMode(Plasma.IgnoreAspectRatio)
self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
self.webView = Plasma.WebView(self.applet)
self.webView.setUrl(KUrl(self.settings.url))
self.layout.addItem(self.webView)
self.setLayout(self.layout)
def readSettings(self):
cg = self.config()
self.settings.url = cg.readEntry("url")
def createConfigurationInterface(self):
self.settingsDialog = KConfigDialog(self.settingsDialogParent, "Web Snippet Settings", self.settings)
self.settingsDialog.setButtons( KDialog.ButtonCode(KDialog.Ok | KDialog.Cancel) )
page = QWidget()
layout = QHBoxLayout()
self.settings.urlField = KLineEdit()
self.settings.urlField.setClearButtonShown(True)
self.settings.urlField.setMinimumWidth(300)
self.settings.urlField.setText(self.settings.url)
layout.addWidget(QLabel("URL:"))
layout.addWidget(self.settings.urlField)
page.setLayout(layout)
pageItem = self.settingsDialog.addPage(page, self.settings, "General")
pageItem.setIcon(KIcon("applications-internet"))
self.connect(self.settingsDialog, SIGNAL("okClicked()"), self.configAccepted)
self.settingsDialog.exec_()
def showConfigurationInterface(self):
self.createConfigurationInterface()
def configAccepted(self):
cg = self.config()
self.settings.url = self.settings.urlField.userText()
cg.writeEntry("url", self.settings.url)
self.webView.setUrl(KUrl(self.settings.url))
def CreateApplet(parent):
return WebSnippetApplet(parent)