Add icons to the Board page.
authorduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 19 Apr 2010 15:50:12 +0000 (15:50 +0000)
committerduplo <duplo@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 19 Apr 2010 15:50:12 +0000 (15:50 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3463 38d2e660-2303-0410-9eaa-f027e97ec537

wizard/BBoardPage.py
wizard/BProject.py
wizard/bertos.qrc
wizard/const.py
wizard/images/default_dir_icon.png [new file with mode: 0755]
wizard/images/default_project_icon.png [new file with mode: 0755]
wizard/ui/board_select.ui

index 2bf90ff38843d975dc3263722b01a9387ba9dc52..4553da77d2f67c92a72d4db5c374c4bc14ad118e 100644 (file)
@@ -33,6 +33,8 @@
 # Author: Lorenzo Berni <duplo@develer.com>
 #
 
+import os
+
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
@@ -101,6 +103,7 @@ class BBoardPage(BWizardPage):
     ####
 
     def _fillPresetTree(self):
+        self.pageContent.boardTree.clear()
         self.project.loadProjectPresets()
         preset_tree = self.project.info("PRESET_TREE")
         for obj in preset_tree['children']:
@@ -109,6 +112,16 @@ class BBoardPage(BWizardPage):
     def _createPresetNode(self, parent, obj):
         item_name = obj['info'].get('name', obj['info']['filename'])
         item = QTreeWidgetItem(parent, [item_name]) 
+        item.setIcon(0, QIcon(self._getNodeIcon(obj)))
         children_dict = obj['children']
         for child in children_dict:
             self._createPresetNode(item, child)
+
+    def _getNodeIcon(self, obj):
+        icon_file = os.path.join(obj['info']['path'], const.PREDEFINED_BOARD_ICON_FILE)
+        if os.path.exists(icon_file):
+            return icon_file
+        elif obj['children']:
+            return const.PREDEFINED_BOARD_DEFAULT_DIR_ICON
+        else:
+            return const.PREDEFINED_BOARD_DEFAULT_PROJECT_ICON
index 81f2de6cd71fb60c5d93c0630ee6699d660c4ab7..36623e3a4752f5a092ae506cbe6e03f33b405c98 100644 (file)
@@ -131,6 +131,7 @@ class BProject(object):
         _tree = {}
         _tree['info'] = self._loadPresetInfo(os.path.join(path, const.PREDEFINED_BOARD_SPEC_FILE))
         _tree['info']['filename'] = os.path.basename(path)
+        _tree['info']['path'] = path
         _tree['children'] = []
         entries = set(os.listdir(path))
         for entry in entries:
index c1aba5c19062a0e99a41e429c046f72991b2ec4a..34f8ccc597ca0a9a4ad49e1e10c0a9198c68654c 100644 (file)
@@ -10,5 +10,7 @@
        <file>images/folderopen.png</file>
        <file>images/appicon.png</file>
        <file>images/logo.png</file>
+       <file>images/default_dir_icon.png</file>
+       <file>images/default_project_icon.png</file>
   </qresource>
 </RCC>
index 1bd69e8fc242fd32876532da0cf89e98930dcd7e..b937ddaeab3d33e2b2f52b4e3b22b716531109f4 100644 (file)
@@ -43,6 +43,11 @@ del _tmp
 
 PREDEFINED_BOARDS_DIR = 'predefined_boards'
 PREDEFINED_BOARD_SPEC_FILE = '.spec'
+PREDEFINED_BOARD_ICON_FILE = '.icon.png'
+
+# Predefined icons in resouces
+PREDEFINED_BOARD_DEFAULT_DIR_ICON = ':images/default_dir_icon.png'
+PREDEFINED_BOARD_DEFAULT_PROJECT_ICON = ':images/default_project_icon.png'
 # PREDEFINED_BOARD_SPEC_INFO = {
 #    'name': <name of the board/directory>,
 #    'description': <description of the board/directory>,
diff --git a/wizard/images/default_dir_icon.png b/wizard/images/default_dir_icon.png
new file mode 100755 (executable)
index 0000000..56c63ed
Binary files /dev/null and b/wizard/images/default_dir_icon.png differ
diff --git a/wizard/images/default_project_icon.png b/wizard/images/default_project_icon.png
new file mode 100755 (executable)
index 0000000..c6781c6
Binary files /dev/null and b/wizard/images/default_project_icon.png differ
index f610d358ff4628b4a98f61b19c6ada47e18ea123..694db514439699bc075784d33c8a8c861b7d5680 100644 (file)
     <layout class="QVBoxLayout" name="verticalLayout_2">
      <item>
       <widget class="QTreeWidget" name="boardTree">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
        <attribute name="headerVisible">
         <bool>false</bool>
        </attribute>
        </column>
       </widget>
      </item>
-     <item>
-      <widget class="QCheckBox" name="advancedCheckBox">
-       <property name="text">
-        <string>Advanced configuration</string>
-       </property>
-      </widget>
-     </item>
     </layout>
    </item>
    <item>
@@ -45,7 +44,7 @@
      <item>
       <widget class="QLabel" name="descriptionLabel">
        <property name="text">
-        <string>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus enim nisl, interdum ut venenatis in, suscipit in dolor. Integer a nisi sed libero ultrices commodo. Duis vitae nibh id arcu ullamcorper auctor non et metus. Cras ut justo ac dolor porttitor feugiat eget vitae velit. Fusce et rhoncus metus. Quisque vel mauris et augue elementum volutpat. Phasellus dolor dui, ultricies sit amet dictum ut, commodo et lacus. Proin eu ullamcorper purus. Aliquam in risus in lorem tempor condimentum ac quis erat. Mauris semper dui a urna facilisis vitae porttitor urna dictum. Nunc metus leo, iaculis non dignissim at, mollis at.</string>
+        <string>&lt;a href='http://duplo.develer.com'&gt;duplo's blog&lt;/a&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus enim nisl, interdum ut venenatis in, suscipit in dolor. Integer a nisi sed libero ultrices commodo. Duis vitae nibh id arcu ullamcorper auctor non et metus. Cras ut justo ac dolor porttitor feugiat eget vitae velit. Fusce et rhoncus metus. Quisque vel mauris et augue elementum volutpat. Phasellus dolor dui, ultricies sit amet dictum ut, commodo et lacus. Proin eu ullamcorper purus. Aliquam in risus in lorem tempor condimentum ac quis erat. Mauris semper dui a urna facilisis vitae porttitor urna dictum. Nunc metus leo, iaculis non dignissim at, mollis at.</string>
        </property>
        <property name="wordWrap">
         <bool>true</bool>