Optimized the IRC color selection code a bit.

Sun, 25 Nov 2012 20:22:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 25 Nov 2012 20:22:02 +0100
changeset 2229
78539385a8df
parent 2228
5c59b9393306
child 2230
2b1b9265156c

Optimized the IRC color selection code a bit.

Preferences/ConfigurationPages/ConfigurationPageBase.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/IrcPage.py file | annotate | diff | comparison | revisions
--- a/Preferences/ConfigurationPages/ConfigurationPageBase.py	Sun Nov 25 20:11:13 2012 +0100
+++ b/Preferences/ConfigurationPages/ConfigurationPageBase.py	Sun Nov 25 20:22:02 2012 +0100
@@ -40,14 +40,13 @@
         """
         return
         
-    def initColour(self, colourstr, button, prefMethod, selectSlot=None):
+    def initColour(self, colourstr, button, prefMethod):
         """
         Public method to initialize a colour selection button.
         
         @param colourstr colour to be set (string)
         @param button reference to a button to show the colour on (QPushButton)
         @param prefMethod preferences method to get the colour
-        @param selectSlot method to select the color
         @return reference to the created colour (QColor)
         """
         colour = QColor(prefMethod(colourstr))
@@ -56,10 +55,27 @@
         pm.fill(colour)
         button.setIconSize(pm.size())
         button.setIcon(QIcon(pm))
+        return colour
+        
+    def initColour2(self, colourDict, colourstr, button, prefMethod, selectSlot):
+        """
+        Public method to initialize a colour selection button.
+        
+        @param colourDict reference to the dictionary storing the colors
+        @param colourstr colour to be set (string)
+        @param button reference to a button to show the colour on (QPushButton)
+        @param prefMethod preferences method to get the colour
+        @param selectSlot method to select the color
+        """
+        colour = QColor(prefMethod(colourstr))
+        size = button.size()
+        pm = QPixmap(size.width() / 2, size.height() / 2)
+        pm.fill(colour)
+        button.setIconSize(pm.size())
+        button.setIcon(QIcon(pm))
         button.setProperty("colorName", colourstr)
-        if selectSlot is not None:
-            button.clicked[()].connect(selectSlot)
-        return colour
+        button.clicked[()].connect(selectSlot)
+        colourDict[colourstr] = colour
         
     def selectColour(self, button, colourVar, showAlpha=False):
         """
--- a/Preferences/ConfigurationPages/IrcPage.py	Sun Nov 25 20:11:13 2012 +0100
+++ b/Preferences/ConfigurationPages/IrcPage.py	Sun Nov 25 20:22:02 2012 +0100
@@ -88,38 +88,39 @@
         self.ownNickCheckBox.setChecked(Preferences.getIrc("NotifyNick"))
         
         # IRC text colors
-        self.ircColours["IrcColor0"] = self.initColour(
-            "IrcColor0", self.ircColor0Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor1"] = self.initColour(
-            "IrcColor1", self.ircColor1Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor2"] = self.initColour(
-            "IrcColor2", self.ircColor2Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor3"] = self.initColour(
-            "IrcColor3", self.ircColor3Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor4"] = self.initColour(
-            "IrcColor4", self.ircColor4Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor5"] = self.initColour(
-            "IrcColor5", self.ircColor5Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor6"] = self.initColour(
-            "IrcColor6", self.ircColor6Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor7"] = self.initColour(
-            "IrcColor7", self.ircColor7Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor8"] = self.initColour(
-            "IrcColor8", self.ircColor8Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor9"] = self.initColour(
-            "IrcColor9", self.ircColor9Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor10"] = self.initColour(
-            "IrcColor10", self.ircColor10Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor11"] = self.initColour(
-            "IrcColor11", self.ircColor11Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor12"] = self.initColour(
-            "IrcColor12", self.ircColor12Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor13"] = self.initColour(
-            "IrcColor13", self.ircColor13Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor14"] = self.initColour(
-            "IrcColor14", self.ircColor14Button, Preferences.getIrc, self.__selectColour)
-        self.ircColours["IrcColor15"] = self.initColour(
-            "IrcColor15", self.ircColor15Button, Preferences.getIrc, self.__selectColour)
+        # TODO: optimize further: put colour dict and select slot in base class
+        self.initColour2(self.ircColours, "IrcColor0", self.ircColor0Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor1", self.ircColor1Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor2", self.ircColor2Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor3", self.ircColor3Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor4", self.ircColor4Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor5", self.ircColor5Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor6", self.ircColor6Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor7", self.ircColor7Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor8", self.ircColor8Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor9", self.ircColor9Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor10", self.ircColor10Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor11", self.ircColor11Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor12", self.ircColor12Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor13", self.ircColor13Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor14", self.ircColor14Button,
+            Preferences.getIrc, self.__selectColour)
+        self.initColour2(self.ircColours, "IrcColor15", self.ircColor15Button,
+            Preferences.getIrc, self.__selectColour)
     
     def save(self):
         """

eric ide

mercurial