About Box implemented + Application Icon
authorHarishankar <v.harishankar@gmail.com>
Tue, 6 Dec 2011 08:36:09 +0000 (14:06 +0530)
committerHarishankar <v.harishankar@gmail.com>
Tue, 6 Dec 2011 08:36:09 +0000 (14:06 +0530)
Implemented about box along with an application icon.

biacv_lang.py
biacv_mainwindow.py
biacv_mainwindow.ui
biacv_mainwindow_ui.py
biacv_res.qrc [new file with mode: 0644]
biacv_res_rc.py [new file with mode: 0644]
res/icon.svg [new file with mode: 0644]

index a0c8f27..769ceb1 100644 (file)
@@ -11,3 +11,8 @@ CONFIRM_DISCARD_SAVE = "There are unsaved changes in current document. Do you wi
 ERROR_DATE = "There is a problem with the date range selected."
 SAVE_TITLE = "Save File As"
 OPEN_TITLE = "Open File"
+ABOUT_TITLE = "About BiaCV"
+ABOUT_TEXT = """BiaCV - A resume creator/editor
+
+Copyright 2011 V.Harishankar <hari@harishankar.net>.
+Licensed under the GNU GPL v3."""
\ No newline at end of file
index 91599b9..b33d689 100644 (file)
@@ -25,6 +25,10 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                        if ans <> PyQt4.QtGui.QMessageBox.Yes:
                                event.ignore ()
 
+       # on help about dialog box
+       def on_help_about (self):
+               PyQt4.QtGui.QMessageBox.about (self, lang.ABOUT_TITLE, lang.ABOUT_TEXT)
+
        # on file exit
        def on_exit (self):
                # call the close event
index 37d6511..ceae00c 100644 (file)
   <property name="windowTitle">
    <string>BiaCV</string>
   </property>
+  <property name="windowIcon">
+   <iconset resource="biacv_res.qrc">
+    <normaloff>:/icon/res/icon.svg</normaloff>:/icon/res/icon.svg</iconset>
+  </property>
   <widget class="QWidget" name="centralwidget">
    <layout class="QGridLayout" name="gridLayout_2">
     <item row="0" column="0">
    </property>
   </action>
  </widget>
- <resources/>
+ <resources>
+  <include location="biacv_res.qrc"/>
+ </resources>
  <connections>
   <connection>
    <sender>addeducation</sender>
    <slot>on_add_education()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>426</x>
-     <y>189</y>
+     <x>70</x>
+     <y>98</y>
     </hint>
     <hint type="destinationlabel">
      <x>730</x>
    <slot>on_delete_education()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>658</x>
-     <y>189</y>
+     <x>100</x>
+     <y>98</y>
     </hint>
     <hint type="destinationlabel">
      <x>728</x>
    <hints>
     <hint type="sourcelabel">
      <x>100</x>
-     <y>217</y>
+     <y>102</y>
     </hint>
     <hint type="destinationlabel">
      <x>726</x>
    <slot>on_update_education()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>579</x>
-     <y>189</y>
+     <x>85</x>
+     <y>98</y>
     </hint>
     <hint type="destinationlabel">
      <x>728</x>
    <hints>
     <hint type="sourcelabel">
      <x>100</x>
-     <y>217</y>
+     <y>102</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <slot>on_change_currentemployment()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>328</x>
-     <y>136</y>
+     <x>80</x>
+     <y>88</y>
     </hint>
     <hint type="destinationlabel">
      <x>728</x>
    <slot>on_add_profession()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>309</x>
-     <y>216</y>
+     <x>61</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <hints>
     <hint type="sourcelabel">
      <x>99</x>
-     <y>244</y>
+     <y>103</y>
     </hint>
     <hint type="destinationlabel">
      <x>727</x>
    <hints>
     <hint type="sourcelabel">
      <x>99</x>
-     <y>244</y>
+     <y>103</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <slot>on_delete_profession()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>596</x>
-     <y>216</y>
+     <x>99</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <slot>on_update_profession()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>453</x>
-     <y>216</y>
+     <x>80</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
      <x>726</x>
    <slot>on_add_skill()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>207</x>
-     <y>234</y>
+     <x>51</x>
+     <y>96</y>
     </hint>
     <hint type="destinationlabel">
      <x>730</x>
    <slot>on_delete_skill()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>566</x>
-     <y>234</y>
+     <x>99</x>
+     <y>96</y>
     </hint>
     <hint type="destinationlabel">
      <x>728</x>
    <hints>
     <hint type="sourcelabel">
      <x>99</x>
-     <y>261</y>
+     <y>102</y>
     </hint>
     <hint type="destinationlabel">
      <x>730</x>
    <hints>
     <hint type="sourcelabel">
      <x>99</x>
-     <y>261</y>
+     <y>102</y>
     </hint>
     <hint type="destinationlabel">
      <x>726</x>
    <slot>on_update_skill()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>386</x>
-     <y>234</y>
+     <x>75</x>
+     <y>96</y>
     </hint>
     <hint type="destinationlabel">
      <x>728</x>
    <slot>on_add_lang()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>547</x>
-     <y>155</y>
+     <x>107</x>
+     <y>110</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <slot>on_delete_lang()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>716</x>
-     <y>155</y>
+     <x>107</x>
+     <y>110</y>
     </hint>
     <hint type="destinationlabel">
      <x>733</x>
    <slot>on_select_lang()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>103</x>
-     <y>189</y>
+     <x>107</x>
+     <y>110</y>
     </hint>
     <hint type="destinationlabel">
      <x>730</x>
    <slot>on_select_lang()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>103</x>
-     <y>189</y>
+     <x>107</x>
+     <y>110</y>
     </hint>
     <hint type="destinationlabel">
      <x>730</x>
    <slot>on_update_lang()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>644</x>
-     <y>155</y>
+     <x>107</x>
+     <y>110</y>
     </hint>
     <hint type="destinationlabel">
      <x>729</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>223</x>
-     <y>174</y>
+     <x>282</x>
+     <y>197</y>
     </hint>
     <hint type="destinationlabel">
      <x>538</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>170</x>
-     <y>245</y>
+     <x>231</x>
+     <y>275</y>
     </hint>
     <hint type="destinationlabel">
      <x>196</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>437</x>
-     <y>248</y>
+     <x>461</x>
+     <y>275</y>
     </hint>
     <hint type="destinationlabel">
      <x>88</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>527</x>
-     <y>244</y>
+     <x>721</x>
+     <y>275</y>
     </hint>
     <hint type="destinationlabel">
      <x>165</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>204</x>
-     <y>281</y>
+     <x>265</x>
+     <y>318</y>
     </hint>
     <hint type="destinationlabel">
      <x>-1</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>409</x>
-     <y>285</y>
+     <x>461</x>
+     <y>318</y>
     </hint>
     <hint type="destinationlabel">
      <x>575</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>588</x>
-     <y>281</y>
+     <x>721</x>
+     <y>318</y>
     </hint>
     <hint type="destinationlabel">
      <x>0</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>93</x>
-     <y>328</y>
+     <x>154</x>
+     <y>361</y>
     </hint>
     <hint type="destinationlabel">
      <x>-3</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>372</x>
-     <y>323</y>
+     <x>660</x>
+     <y>361</y>
     </hint>
     <hint type="destinationlabel">
      <x>2</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>118</x>
-     <y>364</y>
+     <x>179</x>
+     <y>404</y>
     </hint>
     <hint type="destinationlabel">
      <x>0</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>149</x>
-     <y>400</y>
+     <x>172</x>
+     <y>445</y>
     </hint>
     <hint type="destinationlabel">
      <x>1</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>212</x>
-     <y>395</y>
+     <x>240</x>
+     <y>445</y>
     </hint>
     <hint type="destinationlabel">
      <x>3</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>303</x>
-     <y>400</y>
+     <x>343</x>
+     <y>445</y>
     </hint>
     <hint type="destinationlabel">
      <x>-2</x>
    <hints>
     <hint type="sourcelabel">
      <x>99</x>
-     <y>101</y>
+     <y>89</y>
     </hint>
     <hint type="destinationlabel">
      <x>0</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>90</x>
-     <y>297</y>
+     <x>94</x>
+     <y>102</y>
     </hint>
     <hint type="destinationlabel">
      <x>2</x>
    <slot>on_document_modified()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>94</x>
-     <y>333</y>
+     <x>98</x>
+     <y>103</y>
     </hint>
     <hint type="destinationlabel">
      <x>1</x>
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>action_About</sender>
+   <signal>triggered()</signal>
+   <receiver>biacv_mainwindow</receiver>
+   <slot>on_help_about()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>364</x>
+     <y>248</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
  <slots>
   <slot>on_add_education()</slot>
   <slot>on_file_open()</slot>
   <slot>on_file_save_as()</slot>
   <slot>on_exit()</slot>
+  <slot>on_help_about()</slot>
  </slots>
 </ui>
index 35ef21f..5665929 100644 (file)
@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'biacv_mainwindow.ui'
 #
-# Created: Tue Dec  6 11:15:27 2011
+# Created: Tue Dec  6 14:03:31 2011
 #      by: PyQt4 UI code generator 4.8.6
 #
 # WARNING! All changes made in this file will be lost!
@@ -19,6 +19,9 @@ class Ui_biacv_mainwindow(object):
         biacv_mainwindow.setObjectName(_fromUtf8("biacv_mainwindow"))
         biacv_mainwindow.resize(730, 498)
         biacv_mainwindow.setWindowTitle(QtGui.QApplication.translate("biacv_mainwindow", "BiaCV", None, QtGui.QApplication.UnicodeUTF8))
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/icon/res/icon.svg")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        biacv_mainwindow.setWindowIcon(icon)
         self.centralwidget = QtGui.QWidget(biacv_mainwindow)
         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
         self.gridLayout_2 = QtGui.QGridLayout(self.centralwidget)
@@ -611,6 +614,7 @@ class Ui_biacv_mainwindow(object):
         QtCore.QObject.connect(self.action_Open, QtCore.SIGNAL(_fromUtf8("triggered()")), biacv_mainwindow.on_file_open)
         QtCore.QObject.connect(self.actionSave_As, QtCore.SIGNAL(_fromUtf8("triggered()")), biacv_mainwindow.on_file_save_as)
         QtCore.QObject.connect(self.actionE_xit, QtCore.SIGNAL(_fromUtf8("triggered()")), biacv_mainwindow.on_exit)
+        QtCore.QObject.connect(self.action_About, QtCore.SIGNAL(_fromUtf8("triggered()")), biacv_mainwindow.on_help_about)
         QtCore.QMetaObject.connectSlotsByName(biacv_mainwindow)
 
     def retranslateUi(self, biacv_mainwindow):
@@ -621,3 +625,4 @@ class Ui_biacv_mainwindow(object):
         self.pages.setTabText(self.pages.indexOf(self.tab_4), QtGui.QApplication.translate("biacv_mainwindow", "Skill sets", None, QtGui.QApplication.UnicodeUTF8))
         self.pages.setTabText(self.pages.indexOf(self.tab_5), QtGui.QApplication.translate("biacv_mainwindow", "Additional information", None, QtGui.QApplication.UnicodeUTF8))
 
+import biacv_res_rc
diff --git a/biacv_res.qrc b/biacv_res.qrc
new file mode 100644 (file)
index 0000000..5fc265f
--- /dev/null
@@ -0,0 +1,5 @@
+<RCC>
+  <qresource prefix="icon">
+    <file>res/icon.svg</file>
+  </qresource>
+</RCC>
diff --git a/biacv_res_rc.py b/biacv_res_rc.py
new file mode 100644 (file)
index 0000000..a4cc8e9
--- /dev/null
@@ -0,0 +1,135 @@
+# -*- coding: utf-8 -*-
+
+# Resource object code
+#
+# Created: Tue Dec 6 14:04:06 2011
+#      by: The Resource Compiler for PyQt (Qt v4.7.3)
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore
+
+qt_resource_data = "\
+\x00\x00\x05\x9d\
+\x00\
+\x00\x19\x3a\x78\x9c\xed\x58\x4b\x6f\xdb\x46\x10\xbe\xfb\x57\xb0\
+\xcc\x25\x41\x45\x72\xdf\x0f\x45\x52\x0e\x0d\x0a\x04\x68\x7b\x68\
+\x53\xf4\x4c\x93\x2b\x89\x08\x45\x0a\xcb\x95\x65\xfb\xd7\x77\x96\
+\xe2\x43\x8a\xe4\x54\x41\x8b\x20\x69\x4c\xc0\xb0\x77\xe6\x9b\xd9\
+\x99\x8f\x33\xb3\x5c\xcf\xde\xdc\x6f\xca\xe0\xce\xd8\xa6\xa8\xab\
+\x79\x88\x63\x14\x06\xa6\xca\xea\xbc\xa8\x56\xf3\xf0\xcf\xf7\x3f\
+\x47\x2a\x0c\x1a\x97\x56\x79\x5a\xd6\x95\x99\x87\x55\x1d\xbe\x59\
+\xdc\xcc\x7e\x88\xa2\xe0\x27\x6b\x52\x67\xf2\x60\x5f\xb8\x75\xf0\
+\xae\xfa\xd0\x64\xe9\xd6\x04\x2f\xd7\xce\x6d\xa7\x49\xb2\xdf\xef\
+\xe3\xa2\x13\xc6\xb5\x5d\x25\xaf\x82\x28\x5a\xdc\xdc\xcc\x9a\xbb\
+\xd5\x4d\x10\x04\xb0\x6f\xd5\x4c\xf3\x6c\x1e\x76\x06\xdb\x9d\x2d\
+\x5b\x60\x9e\x25\xa6\x34\x1b\x53\xb9\x26\xc1\x31\x4e\xc2\x11\x9e\
+\x8d\xf0\xcc\xef\x5e\xdc\x99\xac\xde\x6c\xea\xaa\x69\x2d\xab\xe6\
+\xc5\x11\xd8\xe6\xcb\x01\xed\xa3\xd9\xd3\x16\x84\xb5\xd6\x09\x22\
+\x09\x21\x11\x20\xa2\xe6\xa1\x72\xe9\x7d\x74\x6a\x0a\x31\x5e\x32\
+\x25\x08\xa1\x04\x74\x23\xf2\x3a\xd4\xb4\x01\x42\xb7\xf0\x33\xc0\
+\x7b\x41\xdc\xd4\x3b\x9b\x99\x25\xd8\x99\xb8\x32\x2e\x79\xfb\xfe\
+\xed\xa0\x8c\x50\x9c\xbb\xfc\xc8\x4d\xcf\xe7\xc9\xae\x27\x24\x57\
+\xe9\xc6\x34\xdb\x34\x33\x4d\xd2\xcb\x5b\xfb\x7d\x91\xbb\xf5\x3c\
+\xa4\x64\x7b\xdf\xae\xd7\xa6\x58\xad\xdd\x91\xa0\xc8\xe7\x21\xc4\
+\x4c\xb4\xe2\xed\xfa\xa8\x24\xf0\x01\xd0\xb9\x9b\x0e\x1a\x14\x33\
+\x15\xe3\xc0\x6a\x29\x50\x0b\xe9\xe3\x9e\xe6\x75\xe6\x03\x99\x87\
+\xbf\x99\x7d\x00\x8b\x9d\x7f\x99\x01\x09\x17\x80\x9a\xe5\x66\xd9\
+\x78\xf4\x61\x4f\xbf\x82\x4d\x65\x18\x24\xad\x76\xf0\xe1\x1d\xe4\
+\x77\x85\xd9\x8f\xd8\xdb\xb4\x39\x64\x13\x04\xdb\x74\x05\x6f\xbe\
+\xac\xed\x3c\x7c\xb1\x6c\x9f\x4e\x71\x5b\xdb\xdc\xd8\x5e\x25\xda\
+\xe7\x44\x55\x03\x3b\x85\x7b\x38\xd4\x7a\xe7\xbb\x4f\xcd\x7b\x1d\
+\xf4\xe8\xb2\xbe\x59\xa7\x79\xbd\x9f\x87\xe4\x63\xe5\x63\x5d\x6f\
+\xc0\x2b\xf0\xa5\xa5\x42\x67\xea\xec\x1e\xd8\xa6\xb1\x92\x8a\x12\
+\x7c\xa6\xf4\xf1\xa0\x98\x33\x8a\x31\x3d\x53\xee\xac\x05\xfe\xa2\
+\x32\x7d\x30\x90\x54\xfb\xab\xf7\xd0\xac\xeb\xfd\xca\x7a\x72\x9c\
+\xdd\x99\x8f\x2d\xbd\x26\xba\xbd\xad\xef\x2f\xab\xfb\x37\x13\xed\
+\xaa\xc2\x41\x29\x77\xa5\x70\x84\xd8\x17\x15\x24\x1b\x75\xd5\x83\
+\x89\x3a\xa3\xa4\x43\xf4\xf5\x24\x19\x7b\x02\x01\x31\x44\x4f\xe9\
+\x1e\x3e\xa1\xdb\xa4\xf7\xc5\xa6\x78\x34\x90\x22\xee\x8b\x64\x63\
+\x5c\x9a\xa7\x2e\x1d\x4b\xa3\x97\x10\xad\x51\x5b\x66\x80\x82\xee\
+\x9e\xfe\xfe\xf6\xe7\xc3\x0a\xd6\x59\x36\xfd\xab\xb6\x1f\xba\x25\
+\x3c\x1e\x90\xde\xd6\x3b\x88\x3b\x5c\x0c\xe2\x59\x9e\x4d\xa1\x1f\
+\x37\xa9\x5b\x14\x1b\x78\xe1\xbe\x95\x7f\x84\xfe\x9b\x25\xa3\xe2\
+\x04\xec\x1e\xb6\x66\x74\x7a\x70\x6b\xcd\xa1\xb1\x2f\x4e\xb7\x3c\
+\xdb\x14\xde\x28\xf9\xc3\x15\x65\xf9\xce\x6f\xd2\x65\x76\xe4\xb4\
+\x70\xa5\x59\xb4\x7b\x1e\xfe\xec\xb3\x48\xba\x34\xba\x24\x93\xa3\
+\x2c\x67\x49\x4f\x43\xbb\x5a\x8d\xf4\x9c\xd4\xcc\xc0\x70\x99\xde\
+\x9a\x72\x1e\xfe\xe2\x95\xc1\x99\x76\x65\xeb\xdd\x76\x53\xe7\xa6\
+\x33\xef\x69\xdd\xa6\x6e\xdd\x87\x3a\x74\xab\x4f\x07\x06\x88\x4b\
+\x6d\x38\xe8\xdc\x43\x09\xb2\xae\x9f\xa6\x30\x2d\x5e\x2f\x21\xdd\
+\xe9\x0b\xd4\x3e\xed\x22\xea\xb5\xf8\xb0\xb4\xbb\xd2\x4c\xab\xba\
+\x7a\x84\x3e\x7d\xdd\x38\x5b\x7f\x30\x03\xfe\xb0\x3c\xd4\x22\x78\
+\x93\xbc\x97\x94\x45\x65\x20\xe2\x29\xc4\x5b\xe5\xbd\x10\x18\x36\
+\xb6\x84\xca\x71\x53\xd6\xcb\xc6\xcd\x3a\x41\x9e\x42\x37\x5b\x9b\
+\x3e\xf8\x3d\xcd\xb1\xb4\x5e\x2e\x1b\xe3\xa6\x68\xc8\xc6\xb3\xe8\
+\x33\xa7\x98\xb1\x88\x86\x67\x04\x34\x45\x6e\xa0\x85\xc4\xb9\xc6\
+\x37\x3e\x41\xb1\x20\x1a\x31\x79\x41\xed\x8b\x1f\xc5\x98\x69\x2c\
+\x04\x23\xe7\x00\x8b\xc1\x6d\x2c\xb1\x90\x42\x5e\xd8\xd8\x12\x98\
+\x2b\xb1\xa6\x8a\x68\x71\x41\x9d\xda\x15\xf6\xb3\x4c\x33\xae\x31\
+\x42\xfa\x22\x82\xf8\x69\xc8\x84\xe6\x48\x8d\x80\xa1\x10\x96\x65\
+\xea\x7c\x7a\xc0\xc0\x32\x2d\x87\x11\x7c\x84\x68\x99\xf7\x7a\x74\
+\x41\x07\xdf\x0e\x75\xd7\xc0\xa3\x1a\x16\xbf\x06\x84\xc5\x9c\x2b\
+\xaa\x27\x3c\x86\x23\x80\x52\x4c\x02\x02\x53\x99\x48\x22\xc4\x84\
+\xc6\x52\x28\x88\x9a\x05\x58\xc2\xd4\x14\x40\x1e\xe0\xb4\x94\x4c\
+\x13\xe5\x65\x8c\x32\x2d\xc9\x84\xc4\x98\x33\xc9\x85\x08\x30\xd0\
+\xc0\x84\x44\x7c\x02\x93\x14\x06\x81\xe6\x84\x7a\x20\xa2\x42\x72\
+\x36\x89\x30\x78\xa4\x94\x73\x10\x8a\x58\x68\xed\x91\x11\x8f\xb9\
+\x86\x23\x82\x05\x65\x40\x63\x0e\xe3\x97\xb0\x09\xf6\xe6\x54\x71\
+\x05\x22\xcc\x31\xc1\x6a\x12\x91\x98\x20\xe5\x37\x0a\xa0\x90\x19\
+\x46\xd2\x47\xa8\x08\x91\x54\x50\x80\x31\xa5\x88\x90\x60\x29\x08\
+\x93\x02\x53\x1a\x44\x34\x46\x1a\x21\xa6\x21\x42\xf0\x46\x39\x24\
+\x10\x3c\x9e\xf3\xe3\x80\xa0\xc6\x8f\x95\x28\x83\x51\x6c\x6c\x3b\
+\x28\xe1\xec\x41\x12\x42\xf1\xa1\x5f\x61\x72\x28\x21\x41\x99\xc0\
+\x1c\x8d\x06\x03\xce\x8f\x7f\xf8\x13\xde\xa3\x79\x09\x7c\x21\xaa\
+\x98\x20\x13\x1d\x0b\xa1\x94\x40\xfc\xd5\x30\x7d\x66\xd6\x64\xee\
+\x0b\x35\xb0\x3e\x3c\xec\x8b\xb7\xb1\xcf\x91\x42\x2b\x44\x7c\x10\
+\x77\x07\x1c\x21\xfe\x08\x66\x7c\x54\xf4\xe7\x1a\xd1\xb1\x52\x18\
+\x6b\x3c\x68\xfc\x71\x1e\x23\xac\x24\xa7\x6a\x10\xb6\x9f\x15\x8a\
+\x11\x4e\xd8\xe8\xc3\xfa\x8f\x89\x4f\x52\x7c\xa0\xf5\xf0\x1d\xf3\
+\xcd\xd3\xfa\x59\xa4\x42\x13\x32\xcd\x8f\x49\x85\xe6\x93\x4a\x48\
+\xa2\x8f\x49\x85\xe2\xc6\x1c\x7a\x9f\xd3\xa7\x58\x3d\x39\x95\x8e\
+\x59\xf5\x1c\x7d\x2e\xab\x80\x3f\x61\x15\x62\xfa\xa2\x74\xfa\x0f\
+\x9a\x80\xc1\x9c\x01\x3a\x99\x1f\x34\x5c\x31\x48\xde\xcf\x2d\x44\
+\x35\xc5\x9a\x4d\x2e\x9c\x4c\x08\xf3\xf3\x59\x91\xd5\x15\x04\xec\
+\x6a\x1b\xc1\x67\xe4\x5d\xea\x76\xd6\xfc\xef\x79\x93\x4a\x32\x44\
+\xf8\x44\xc2\x94\xf7\x13\x34\xc0\x1c\x9a\x12\x2e\x19\x9a\x5f\xe6\
+\x0d\x47\xe4\x99\xb9\x63\xe6\xe0\x16\x73\x35\x75\x17\xce\xfc\xef\
+\x9a\x3a\x7e\x3d\x75\xe2\x99\xba\x13\xea\xf4\xf5\xd4\xe1\x67\xea\
+\x8e\xa9\x23\xf4\x7a\xea\x9e\x4f\x89\x53\xea\xc6\x63\xa2\x3f\x5e\
+\x9f\xa0\x8e\xff\xeb\x86\xfd\xe7\xeb\xf2\xf8\x29\xf8\x4d\x5f\x91\
+\xbf\xd2\x0b\xf2\x05\xeb\xef\xe6\x82\x2c\xaf\xbe\x20\xe3\xff\xf8\
+\x82\x4c\xce\x2f\xc8\xec\xd2\x05\x99\x7e\x15\x17\x64\xff\xe9\x03\
+\xa5\x84\xc5\x44\xc5\x5a\x70\xc1\x89\xec\x2f\xc8\xb3\x64\xb5\xb8\
+\x99\xf9\x7f\x08\x2e\x6e\xfe\x06\x4e\xd7\x6b\x68\
+"
+
+qt_resource_name = "\
+\x00\x04\
+\x00\x06\xfa\x5e\
+\x00\x69\
+\x00\x63\x00\x6f\x00\x6e\
+\x00\x03\
+\x00\x00\x78\xc3\
+\x00\x72\
+\x00\x65\x00\x73\
+\x00\x08\
+\x0a\x61\x57\x27\
+\x00\x69\
+\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+"
+
+qt_resource_struct = "\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x0e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
+\x00\x00\x00\x1a\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
+"
+
+def qInitResources():
+    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/res/icon.svg b/res/icon.svg
new file mode 100644 (file)
index 0000000..5f6510c
--- /dev/null
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg2985"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   sodipodi:docname="New document 2">
+  <defs
+     id="defs2987" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="33.878321"
+     inkscape:cy="10.543113"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1280"
+     inkscape:window-height="744"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata2990">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="star"
+       style="opacity:0.4;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="path3144-3"
+       sodipodi:sides="6"
+       sodipodi:cx="20.629047"
+       sodipodi:cy="-0.14916642"
+       sodipodi:r1="6.7167673"
+       sodipodi:r2="3.9382963"
+       sodipodi:arg1="0.94591009"
+       sodipodi:arg2="1.4695089"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 24.55839,5.2983312 21.027266,3.7689454 17.876047,5.9774928 17.434972,2.1547566 13.946705,0.52999523 17.036754,-1.7633553 16.699705,-5.596664 l 3.531124,1.5293858 3.151218,-2.2085475 0.441076,3.8227363 3.488267,1.62476133 -3.090049,2.29335047 z"
+       inkscape:transform-center-x="-0.0071240367"
+       inkscape:transform-center-y="-0.63461507"
+       transform="translate(2.1038462,9.6688605)" />
+    <rect
+       style="opacity:0.4;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3009-5"
+       width="22.543455"
+       height="29.881191"
+       x="3.0187538"
+       y="1.8425245"
+       ry="0" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3009"
+       width="22.543455"
+       height="29.970495"
+       x="1.5786729"
+       y="0.61597753"
+       ry="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.4400946,3.584775 16.0393194,0"
+       id="path3015"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,7.690367 15.8498795,0"
+       id="path3011-2"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,11.690367 15.8498795,0"
+       id="path3011-0"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,15.690367 15.8498795,0"
+       id="path3011-6"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,19.690367 15.8498795,0"
+       id="path3011-1"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,23.690367 15.8498795,0"
+       id="path3011-5"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:1.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       d="m 4.7874025,27.690367 16.0393195,0"
+       id="path3015-6"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="star"
+       style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="path3144"
+       sodipodi:sides="6"
+       sodipodi:cx="20.629047"
+       sodipodi:cy="-0.14916642"
+       sodipodi:r1="6.7167673"
+       sodipodi:r2="3.9382962"
+       sodipodi:arg1="0.94591009"
+       sodipodi:arg2="1.4695089"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 24.55839,5.2983312 21.027266,3.7689454 17.876047,5.9774928 17.434972,2.1547567 13.946705,0.52999523 17.036754,-1.7633551 16.699705,-5.596664 l 3.531124,1.5293858 3.151218,-2.2085475 0.441076,3.8227362 3.488267,1.62476143 -3.090049,2.29335037 z"
+       inkscape:transform-center-x="-0.0071240367"
+       inkscape:transform-center-y="-0.63461507"
+       transform="translate(1.6967616,8.9656527)" />
+  </g>
+</svg>