[Uludag-commits] r16292 - trunk/tasma/package-manager/src
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
11 Ara 2007 Sal 15:24:01 EET
Author: gokcen.eraslan
Date: Tue Dec 11 15:24:00 2007
New Revision: 16292
Modified:
trunk/tasma/package-manager/src/CustomEventListener.py
trunk/tasma/package-manager/src/MainWidget.py
trunk/tasma/package-manager/src/PackageCache.py
trunk/tasma/package-manager/src/SpecialList.py
Log:
Reorganization continued...
* Sorting of packages fixed
* Custom event tasks moved to SpecialList module, SpecialList is now more like a normal Qt widget
Modified: trunk/tasma/package-manager/src/CustomEventListener.py
=================================================================
--- trunk/tasma/package-manager/src/CustomEventListener.py (original)
+++ trunk/tasma/package-manager/src/CustomEventListener.py Tue Dec 11 15:24:00 2007
@@ -10,39 +10,29 @@
# Please read the COPYING file.
from khtml import DOM
-from kdecore import i18n, KURL
-from kio import KRun
+from kdecore import i18n
class CustomEventListener(DOM.EventListener):
def __init__(self, parent):
DOM.EventListener.__init__(self)
self.parent = parent
- self.selectingAll = False
+ #self.selectingAll = False
def handleEvent(self,event):
target = event.target().nodeName().string()
#try:
- #if checkbox is clicked, add/remove package to/from basket
+ #if checkbox is clicked, call SpecialList's slot
if target == "INPUT":
inputElement = DOM.HTMLInputElement(event.target())
name = inputElement.name().string()
checked = inputElement.checked()
- if checked:
- if name not in self.parent.basket.packages:
- self.parent.basket.add(name)
- else:
- self.parent.basket.remove(name)
- self.parent.updateButtons()
- if not self.selectingAll:
- self.parent.updateStatusBar()
+ # call parent to handle click event (in fact, parent emits this as a signal and its parent handles the signal)
+ self.parent.slotCheckboxClicked(name, checked)
elif target == "A":
link = event.target().attributes().getNamedItem(DOM.DOMString("href")).nodeValue().string()
if link == "#selectall":
- document = self.parent.part.document()
- nodeList = document.getElementsByTagName(DOM.DOMString("input"))
-
state = event.target().firstChild().nodeValue().string()
reverseSelection = False
if state == i18n("Select all packages in this category"):
@@ -51,14 +41,9 @@
reverseSelection = True
event.target().firstChild().setNodeValue(DOM.DOMString(i18n("Select all packages in this category")))
- self.selectingAll = True
- for i in range(0,nodeList.length()):
- element = DOM.HTMLInputElement(nodeList.item(i))
- if reverseSelection or not element.checked():
- element.click()
- self.selectingAll = False
- self.parent.updateStatusBar()
+ # let the list do the rest
+ self.parent.slotSelectAll(reverseSelection)
else:
- KRun.runURL(KURL(link),"text/html",False,False);
+ self.parent.slotHomepageClicked(link)
#except Exception, e:
- #print e
+ #print "KHTML Exception: " + str(e)
Modified: trunk/tasma/package-manager/src/MainWidget.py
=================================================================
--- trunk/tasma/package-manager/src/MainWidget.py (original)
+++ trunk/tasma/package-manager/src/MainWidget.py Tue Dec 11 15:24:00 2007
@@ -107,6 +107,8 @@
self.connect(self.basketAction, SIGNAL("clicked()"),self.showBasket)
self.connect(self.operateAction, SIGNAL("clicked()"),self.takeAction)
+ self.connect(self.specialList, PYSIGNAL("checkboxClicked"), self.packageClicked)
+
self.command = Commander.Commander(self)
self.delayTimer = QTimer(self)
@@ -123,6 +125,16 @@
self.settings = Settings.Settings(Globals.config())
+ def packageClicked(self, itemName, checked):
+ if checked:
+ if itemName not in self.basket.packages:
+ self.basket.add(itemName)
+ else:
+ self.basket.remove(itemName)
+
+ self.updateButtons()
+ self.updateStatusBar()
+
def lazyLoadComponentList(self):
self.parent.tray.updateTrayIcon()
Modified: trunk/tasma/package-manager/src/PackageCache.py
=================================================================
--- trunk/tasma/package-manager/src/PackageCache.py (original)
+++ trunk/tasma/package-manager/src/PackageCache.py Tue Dec 11 15:24:00 2007
@@ -24,7 +24,7 @@
self.size = self._sizer(size)
self.homepage = homepage
self.repo = repo
-
+
def _sizer(self, size):
if size:
tpl = pisi.util.human_readable_size(size)
@@ -32,6 +32,12 @@
else:
return i18n("N\A")
+ def __str__(self):
+ return self.name
+
+ def lower(self):
+ return self.name.lower()
+
class PackageCache:
def __init__(self):
self.packages = {}
Modified: trunk/tasma/package-manager/src/SpecialList.py
=================================================================
--- trunk/tasma/package-manager/src/SpecialList.py (original)
+++ trunk/tasma/package-manager/src/SpecialList.py Tue Dec 11 15:24:00 2007
@@ -8,6 +8,7 @@
from kdecore import *
from kdeui import *
from khtml import *
+from kio import KRun
import pisi
import re
@@ -17,12 +18,14 @@
import CustomEventListener
from Icons import *
-class SpecialList:
+class SpecialList(QObject):
def __init__(self, parent):
+ QObject.__init__(self)
self.parent = parent
self.part = KHTMLPart(self.parent)
self.part.view().setFocus()
-
+ self.selectingAll = False
+
# Read javascript
js = file(str(locate("data","package-manager/animation.js"))).read()
js = re.sub("#3cBB39", KGlobalSettings.alternateBackgroundColor().name(), js)
@@ -33,13 +36,32 @@
cssFile = file(str(locate("data","package-manager/layout.css"))).read()
self.css = cssFile
- QObject.connect(self.part, SIGNAL("completed()"), self.registerEventListener)
-
+ self.connect(self.part, SIGNAL("completed()"), self.registerEventListener)
+
def registerEventListener(self):
- self.eventListener = CustomEventListener.CustomEventListener(self.parent)
+ self.eventListener = CustomEventListener.CustomEventListener(self)
node = self.part.document().getElementsByTagName(DOM.DOMString("body")).item(0)
node.addEventListener(DOM.DOMString("click"),self.eventListener,True)
+ def slotCheckboxClicked(self, itemName, checked):
+ if not self.selectingAll:
+ self.emit(PYSIGNAL("checkboxClicked"), (itemName, checked))
+
+ def slotHomepageClicked(self, link):
+ KRun.runURL(KURL(link),"text/html",False,False);
+
+ def slotSelectAll(self, reverse):
+ document = self.part.document()
+ nodeList = document.getElementsByTagName(DOM.DOMString("input"))
+
+ self.selectingAll = True
+ for i in range(0,nodeList.length()):
+ element = DOM.HTMLInputElement(nodeList.item(i))
+ if reverse or not element.checked():
+ element.click()
+ self.selectingAll = False
+ #self.parent.updateStatusBar()
+
def clear(self):
self.part.view().setContentsPos(0, 0)
self.part.begin()
@@ -108,8 +130,7 @@
titleStyle = ""
style = ""
- #TODO: fix
- #packages.sort(cmp = lambda x, y: cmp(x.name.lower(), y.name.lower()), key=string.lower)
+ packages.sort(key=string.lower)
alternativeColor = KGlobalSettings.alternateBackgroundColor().name()
baseColor = KGlobalSettings.baseColor().name()
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi