4 from __future__ import with_statement
12 from PyQt4 import QtGui
13 from PyQt4 import QtCore
27 _moduleLogger = logging.getLogger("gonvert_glade")
29 if gettext is not None:
30 gettext.bindtextdomain('gonvert', '/usr/share/locale')
31 gettext.textdomain('gonvert')
34 def change_menu_label(widgets, labelname, newtext):
35 item_label = widgets.get_widget(labelname).get_children()[0]
36 item_label.set_text(newtext)
39 def split_number(number):
41 fractional, integer = math.modf(number)
43 integerDisplay = number
44 fractionalDisplay = ""
46 integerDisplay = str(integer)
47 fractionalDisplay = str(fractional)
48 if "e+" in integerDisplay:
49 integerDisplay = number
50 fractionalDisplay = ""
51 elif "e-" in fractionalDisplay and 0.0 < integer:
52 integerDisplay = number
53 fractionalDisplay = ""
54 elif "e-" in fractionalDisplay:
56 fractionalDisplay = number
58 integerDisplay = integerDisplay.split(".", 1)[0] + "."
59 fractionalDisplay = fractionalDisplay.rsplit(".", 1)[-1]
61 return integerDisplay, fractionalDisplay
64 class Gonvert(object):
67 os.path.dirname(__file__),
68 os.path.join(os.path.dirname(__file__), "../data"),
69 os.path.join(os.path.dirname(__file__), "../lib"),
76 for dataPath in self._DATA_PATHS:
77 appIconPath = os.path.join(dataPath, "pixmaps", "gonvert.png")
78 if os.path.isfile(appIconPath):
79 self._dataPath = dataPath
82 raise RuntimeError("UI Descriptor not found!")
84 self._catWindow = CategoryWindow(None, appIconPath)
87 class CategoryWindow(object):
89 def __init__(self, parent, appIconPath):
90 self._categories = QtGui.QTreeWidget()
92 self._layout = QtGui.QVBoxLayout()
93 self._layout.addWidget(self._categories)
95 centralWidget = QtGui.QWidget()
96 centralWidget.setLayout(self._layout)
98 self._window = QtGui.QMainWindow()
99 self._window.setWindowTitle("%s - Categories" % constants.__pretty_app_name__)
100 self._window.setWindowIcon(QtGui.QIcon(appIconPath))
101 self._window.setCentralWidget(centralWidget)
106 class UnitWindow(object):
108 def __init__(self, parent, category, appIconPath):
109 self._selectedUnitName = QtGui.QLabel()
110 self._selectedUnitValue = QtGui.QLineEdit()
111 self._selectedUnitSymbol = QtGui.QLabel()
113 self._selectedUnitLayout = QtGui.QHBoxLayout()
114 self._selectedUnitLayout.addWidget(self._selectedUnitName)
115 self._selectedUnitLayout.addWidget(self._selectedUnitValue)
116 self._selectedUnitLayout.addWidget(self._selectedUnitSymbol)
118 self._units = QtGui.QTreeWidget()
120 self._searchButton = QtGui.QPushButton()
121 self._searchEntry = QtGui.QLineEdit()
122 self._searchCloseButton = QtGui.QPushButton()
124 self._searchLayout = QtGui.QHBoxLayout()
125 self._searchLayout.addWidget(self._searchButton)
126 self._searchLayout.addWidget(self._searchEntry)
127 self._searchLayout.addWidget(self._searchCloseButton)
129 self._layout = QtGui.QVBoxLayout()
130 self._layout.addLayout(self._selectedUnitLayout)
131 self._layout.addWidget(self._units)
132 self._layout.addLayout(self._searchLayout)
134 centralWidget = QtGui.QWidget()
135 centralWidget.setLayout(self._layout)
137 self._window = QtGui.QMainWindow()
138 self._window.setWindowTitle("%s - %s" % (constants.__pretty_app_name__, category))
139 self._window.setWindowIcon(QtGui.QIcon(appIconPath))
140 self._window.setCentralWidget(centralWidget)
145 def _hide_search(self):
146 self._searchButton.hide()
147 self._searchEntry.hide()
148 self._searchCloseButton.hide()
152 app = QtGui.QApplication([])
157 if __name__ == "__main__":
158 logging.basicConfig(level = logging.DEBUG)
160 os.makedirs(constants._data_path_)