Mercurial > pyarq-presupuestos
comparison Gtk/gui.py @ 25:189f8274aecd
gui. switch navigation menu on switch page
author | Miguel Ángel Bárcena Rodríguez <miguelangel@obraencurso.es> |
---|---|
date | Mon, 20 May 2019 13:18:33 +0200 |
parents | 65e7ae0d0e63 |
children | 16f91684686b |
comparison
equal
deleted
inserted
replaced
24:2b393934f1db | 25:189f8274aecd |
---|---|
75 # Load default icon | 75 # Load default icon |
76 _icons = [ "ICON16", "ICON32","ICON64","ICON128"] | 76 _icons = [ "ICON16", "ICON32","ICON64","ICON128"] |
77 _pixbufIcons = [] | 77 _pixbufIcons = [] |
78 for _icon in _icons: | 78 for _icon in _icons: |
79 if os.path.exists(globalVars.getAppPath(_icon)): | 79 if os.path.exists(globalVars.getAppPath(_icon)): |
80 _pixbufIcon = GdkPixbuf.Pixbuf.new_from_file(globalVars.getAppPath(_icon)) | 80 _icon_file = globalVars.getAppPath(_icon) |
81 _pixbufIcon = GdkPixbuf.Pixbuf.new_from_file(_icon_file) | |
81 _pixbufIcons.append(_pixbufIcon) | 82 _pixbufIcons.append(_pixbufIcon) |
82 else: | 83 else: |
83 print(utils.mapping(_("The icon file does not exist. '$1'"), | 84 print(utils.mapping(_("The icon file does not exist. '$1'"), |
84 (str(globalVars.getAppPath(_icon)),)) ) | 85 (str(globalVars.getAppPath(_icon)),)) ) |
85 if len(_pixbufIcons) > 0: | 86 if len(_pixbufIcons) > 0: |
102 Description: | 103 Description: |
103 This is the Gtk application base class. | 104 This is the Gtk application base class. |
104 Constructor: | 105 Constructor: |
105 App() | 106 App() |
106 Ancestry: | 107 Ancestry: |
107 +-- Gtk.Application https://lazka.github.io/pgi-docs/Gtk-3.0/classes/Application.html | 108 +-- Gtk.Application |
109 https://lazka.github.io/pgi-docs/Gtk-3.0/classes/Application.html | |
108 +-- App | 110 +-- App |
109 Atributes: | 111 Atributes: |
110 Methods: | 112 Methods: |
111 do_activate | 113 do_activate |
112 do_startup | 114 do_startup |
139 """do_activate() | 141 """do_activate() |
140 | 142 |
141 Shows new appplication windows. | 143 Shows new appplication windows. |
142 """ | 144 """ |
143 _mainWindow = MainWindow(self, self.filesToOpen ) | 145 _mainWindow = MainWindow(self, self.filesToOpen ) |
144 _mainWindow.window.present_with_time(GLib.get_monotonic_time() / 1000) | 146 _mainWindow.window.present_with_time(Gtk.get_current_event_time()) |
145 | 147 |
146 def do_startup(self): | 148 def do_startup(self): |
147 """do_startup() | 149 """do_startup() |
148 | 150 |
149 Sets the app actions. | 151 Sets the app actions. |
190 win_menu = False | 192 win_menu = False |
191 # Win Menu | 193 # Win Menu |
192 if win_menu: | 194 if win_menu: |
193 _win_menu = Gio.Menu() | 195 _win_menu = Gio.Menu() |
194 _win_submenu_file = Gio.Menu.new() | 196 _win_submenu_file = Gio.Menu.new() |
195 _import_fiebdc = Gio.MenuItem.new(_("_Import Fiebdc"), "win.ImportFiebdc") | 197 _import_fiebdc = Gio.MenuItem.new(_("_Import Fiebdc"), |
198 "win.ImportFiebdc") | |
196 _import_fiebdc.set_icon(Gio.Icon.new_for_string("document-open")) | 199 _import_fiebdc.set_icon(Gio.Icon.new_for_string("document-open")) |
197 _win_submenu_file.append_item(_import_fiebdc) | 200 _win_submenu_file.append_item(_import_fiebdc) |
198 | 201 |
199 _close_tab = Gio.MenuItem.new(_("_Close tab"), "win.CloseTab") | 202 _close_tab = Gio.MenuItem.new(_("_Close tab"), "win.CloseTab") |
200 _close_tab.set_icon(Gio.Icon.new_for_string("window-close")) | 203 _close_tab.set_icon(Gio.Icon.new_for_string("window-close")) |
221 """on_newWindow(action, param) | 224 """on_newWindow(action, param) |
222 | 225 |
223 Shows new appplication windows. | 226 Shows new appplication windows. |
224 """ | 227 """ |
225 _mainWindow = MainWindow(self, []) | 228 _mainWindow = MainWindow(self, []) |
226 _mainWindow.window.present_with_time(GLib.get_monotonic_time() / 1000) | 229 _mainWindow.window.present_with_time(Gtk.get_current_event_time()) |
227 | 230 |
228 def _on_about(self, action, param): | 231 def _on_about(self, action, param): |
229 """_on_about(action, param) | 232 """_on_about(action, param) |
230 | 233 |
231 Shows About dialog. | 234 Shows About dialog. |
238 _aboutDialog.set_website(base.website) | 241 _aboutDialog.set_website(base.website) |
239 _aboutDialog.set_website_label(base.website_label) | 242 _aboutDialog.set_website_label(base.website_label) |
240 _aboutDialog.set_license_type(Gtk.License(3)) | 243 _aboutDialog.set_license_type(Gtk.License(3)) |
241 _aboutDialog.set_comments(base.comments) | 244 _aboutDialog.set_comments(base.comments) |
242 _aboutDialog.connect("response", self._on_close_aboutdialog) | 245 _aboutDialog.connect("response", self._on_close_aboutdialog) |
243 _aboutDialog.present_with_time(GLib.get_monotonic_time() / 1000) | 246 _aboutDialog.present_with_time(Gtk.get_current_event_time()) |
244 | 247 |
245 def _on_close_aboutdialog(self, action, parameter): | 248 def _on_close_aboutdialog(self, action, parameter): |
246 """on_close_aboutdialog(action, param) | 249 """on_close_aboutdialog(action, param) |
247 | 250 |
248 Close About dialog. | 251 Close About dialog. |
386 _toolbar = Gtk.Toolbar() | 389 _toolbar = Gtk.Toolbar() |
387 _toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR) | 390 _toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR) |
388 # Import Fiebdc | 391 # Import Fiebdc |
389 _gtk_image = Gtk.Image.new_from_icon_name("document-open",1) | 392 _gtk_image = Gtk.Image.new_from_icon_name("document-open",1) |
390 _gtk_image.show() | 393 _gtk_image.show() |
391 _ImportFiebdc_button = Gtk.ToolButton.new(_gtk_image , _("Import Fiebdc")) | 394 _ImportFiebdc_button = Gtk.ToolButton.new(_gtk_image, |
395 _("Import Fiebdc")) | |
392 _ImportFiebdc_button.set_tooltip_text(_("Import Fiebdc")) | 396 _ImportFiebdc_button.set_tooltip_text(_("Import Fiebdc")) |
393 _ImportFiebdc_button.set_is_important(False) # label not shown | 397 _ImportFiebdc_button.set_is_important(False) # label not shown |
394 _toolbar.insert(_ImportFiebdc_button, -1) | 398 _toolbar.insert(_ImportFiebdc_button, -1) |
395 _ImportFiebdc_button.show() | 399 _ImportFiebdc_button.show() |
396 _ImportFiebdc_button.set_action_name("win.ImportFiebdc") | 400 _ImportFiebdc_button.set_action_name("win.ImportFiebdc") |
417 self.__goBack_button.show() | 421 self.__goBack_button.show() |
418 self.__goBack_button.set_action_name("win.GoPrevious") | 422 self.__goBack_button.set_action_name("win.GoPrevious") |
419 # Go Forward | 423 # Go Forward |
420 _gtk_image = Gtk.Image.new_from_icon_name("go-next",1) | 424 _gtk_image = Gtk.Image.new_from_icon_name("go-next",1) |
421 _gtk_image.show() | 425 _gtk_image.show() |
422 self.__goForward_button = Gtk.MenuToolButton.new(_gtk_image ,_("Forward")) | 426 self.__goForward_button = Gtk.MenuToolButton.new(_gtk_image, |
427 _("Forward")) | |
423 self.__goForward_button.set_tooltip_text(_("Forward")) | 428 self.__goForward_button.set_tooltip_text(_("Forward")) |
424 self.__goForward_button.set_is_important(False) # label not shown | 429 self.__goForward_button.set_is_important(False) # label not shown |
425 _toolbar.insert(self.__goForward_button, -1) | 430 _toolbar.insert(self.__goForward_button, -1) |
426 self.__goForward_button.show() | 431 self.__goForward_button.show() |
427 self.__goForward_button.set_action_name("win.GoPosterior") | 432 self.__goForward_button.set_action_name("win.GoPosterior") |
536 self.__GoPosterior_action.set_enabled(False) | 541 self.__GoPosterior_action.set_enabled(False) |
537 self.__GoUp_action.set_enabled(False) | 542 self.__GoUp_action.set_enabled(False) |
538 self.__GoToRoot_action.set_enabled(False) | 543 self.__GoToRoot_action.set_enabled(False) |
539 self.__navigation_is_enabled = False | 544 self.__navigation_is_enabled = False |
540 | 545 |
541 def _switch_page(self, notebook, page, page_num,): | 546 def _switch_page(self, notebook, page, page_num): |
542 """_switch_page(notebook, page, page_num) | 547 """_switch_page(notebook, page, page_num) |
543 | 548 |
544 Method connected to the "switch-page" signal of the notebook widget | 549 Method connected to the "switch-page" signal of the notebook widget |
545 | 550 |
546 It shows/hides closeTabButton | 551 It shows/hides closeTabButton |
557 self.__navigation_is_enabled: | 562 self.__navigation_is_enabled: |
558 self._disable_navigation() | 563 self._disable_navigation() |
559 elif isinstance(_page, Page): | 564 elif isinstance(_page, Page): |
560 if not self.__navigation_is_enabled: | 565 if not self.__navigation_is_enabled: |
561 self.__navigation_is_enabled = True | 566 self.__navigation_is_enabled = True |
562 self._checkButtonsSensitive(page_num) | 567 self.__goBack_button.set_menu(_page.back_menu) |
568 self.__goForward_button.set_menu(_page.forward_menu) | |
569 self._checkButtonsSensitive(page_num) | |
563 | 570 |
564 def _main(self): | 571 def _main(self): |
565 """main() | 572 """main() |
566 | 573 |
567 Shows window. | 574 Shows window. |
955 self.closeTabButton = Gtk.ToolButton.new(_gtk_image , _("_Close tab")) | 962 self.closeTabButton = Gtk.ToolButton.new(_gtk_image , _("_Close tab")) |
956 self.closeTabButton.set_tooltip_text(_("Close tab")) | 963 self.closeTabButton.set_tooltip_text(_("Close tab")) |
957 self.closeTabButton.set_is_important(False) # label not shown | 964 self.closeTabButton.set_is_important(False) # label not shown |
958 self.__title.add(self.closeTabButton) | 965 self.__title.add(self.closeTabButton) |
959 self.closeTabButton.hide() | 966 self.closeTabButton.hide() |
960 self.__closeTabId = self.closeTabButton.connect("clicked", self.on_close_button) | 967 self.__closeTabId = self.closeTabButton.connect("clicked", |
968 self.on_close_button) | |
961 # Statusbar | 969 # Statusbar |
962 self.__statusbar = Gtk.Statusbar() | 970 self.__statusbar = Gtk.Statusbar() |
963 self.__statuscontext = self.__statusbar.get_context_id("Statusbar") | 971 self.__statuscontext = self.__statusbar.get_context_id("Statusbar") |
964 self.__statusbar.show() | 972 self.__statusbar.show() |
965 _iconVbox = Gtk.Grid() | 973 _iconVbox = Gtk.Grid() |
1270 self.closeTabButton = closeTabButton | 1278 self.closeTabButton = closeTabButton |
1271 self.__widget = Gtk.Grid() | 1279 self.__widget = Gtk.Grid() |
1272 self.__widget.set_orientation(Gtk.Orientation(1)) # 1 Vertical | 1280 self.__widget.set_orientation(Gtk.Orientation(1)) # 1 Vertical |
1273 self.__widget.props.margin = 5 | 1281 self.__widget.props.margin = 5 |
1274 #TODO: __panes_list should come from gui config file... | 1282 #TODO: __panes_list should come from gui config file... |
1275 # "DecompositionList" "RecordDescription" "Measure" "Sheet of Conditions" | 1283 # "DecompositionList" "RecordDescription" "Measure" |
1276 # "FileView" "CompanyView" | 1284 # "Sheet of Conditions" "FileView" "CompanyView" |
1277 self.__panes_list = [ "v", "DecompositionList", [ "v", "Measure", | 1285 self.__panes_list = [ "v", "DecompositionList", [ "v", "Measure", |
1278 "RecordDescription" ]] | 1286 "RecordDescription" ]] |
1279 self.__main_item = None | 1287 self.__main_item = None |
1280 self.__active_path_record = () | 1288 self.__active_path_record = () |
1281 self.__history_back = [] | 1289 self.__history_back = [] |
1328 | 1336 |
1329 def sendMessageTo(self, pane, message, pane_path, arg=None): | 1337 def sendMessageTo(self, pane, message, pane_path, arg=None): |
1330 """sendMessageTo(pane, message, pane_path, arg=None) | 1338 """sendMessageTo(pane, message, pane_path, arg=None) |
1331 pane: the receiver pane | 1339 pane: the receiver pane |
1332 message: string message | 1340 message: string message |
1333 pane_path: tuple that represents the pane pane_path which emits the message | 1341 pane_path: tuple that represents the pane pane_path which emits |
1342 the message | |
1334 arg: arguments for the message | 1343 arg: arguments for the message |
1335 | 1344 |
1336 Sends a message to a pane | 1345 Sends a message to a pane |
1337 """ | 1346 """ |
1338 pane.runMessage(message, pane_path, arg) | 1347 pane.runMessage(message, pane_path, arg) |
1468 weakref.ref(self), pane_path, self.__active_path_record, True) | 1477 weakref.ref(self), pane_path, self.__active_path_record, True) |
1469 elif list_paned[0] == "RecordDescription": | 1478 elif list_paned[0] == "RecordDescription": |
1470 _item = View( "RecordDescription", self.__budget,weakref.ref(self), | 1479 _item = View( "RecordDescription", self.__budget,weakref.ref(self), |
1471 pane_path, self.__active_path_record, True) | 1480 pane_path, self.__active_path_record, True) |
1472 elif list_paned[0] == "Measure": | 1481 elif list_paned[0] == "Measure": |
1473 _item = View( "Measure", self.__budget, weakref.ref(self), pane_path, | 1482 _item = View("Measure", self.__budget, weakref.ref(self), |
1474 self.__active_path_record, True) | 1483 pane_path, self.__active_path_record, True) |
1475 elif list_paned[0] == "Sheet of Conditions": | 1484 elif list_paned[0] == "Sheet of Conditions": |
1476 _item = View("Sheet of Conditions", self.__budget, weakref.ref(self), pane_path, | 1485 _item = View("Sheet of Conditions", |
1486 self.__budget, weakref.ref(self), pane_path, | |
1477 self.__active_path_record) | 1487 self.__active_path_record) |
1478 elif list_paned[0] == "FileView": | 1488 elif list_paned[0] == "FileView": |
1479 _item = View("FileView", self.__budget, weakref.ref(self), pane_path, | 1489 _item = View("FileView", self.__budget, weakref.ref(self), |
1480 self.__active_path_record) | 1490 pane_path, self.__active_path_record) |
1481 elif list_paned[0] == "CompanyView": | 1491 elif list_paned[0] == "CompanyView": |
1482 _item = View("CompanyView", self.__budget, weakref.ref(self), pane_path, | 1492 _item = View("CompanyView", self.__budget, weakref.ref(self), |
1483 self.__active_path_record) | 1493 pane_path, self.__active_path_record) |
1484 else: | 1494 else: |
1485 _item = None | 1495 _item = None |
1486 raise ValueError( utils.mapping(_("Incorrect item $1"), | 1496 raise ValueError( utils.mapping(_("Incorrect item $1"), |
1487 (str(list_paned[0]),)) ) | 1497 (str(list_paned[0]),)) ) |
1488 return _item | 1498 return _item |
1924 self.__widget.add(self.__view.widget) | 1934 self.__widget.add(self.__view.widget) |
1925 _hbox.add(_view_icon) | 1935 _hbox.add(_view_icon) |
1926 _hbox.add(_combobox) | 1936 _hbox.add(_combobox) |
1927 _invisible = Gtk.Grid() | 1937 _invisible = Gtk.Grid() |
1928 _invisible.set_orientation(Gtk.Orientation(0)) # 0 Horizontal | 1938 _invisible.set_orientation(Gtk.Orientation(0)) # 0 Horizontal |
1929 _invisible.set_property("hexpand", True) # widget expand horizontal space | 1939 _invisible.set_property("hexpand", True) # expand horizontal space |
1930 _invisible.show() | 1940 _invisible.show() |
1931 _hbox.add(_invisible) | 1941 _hbox.add(_invisible) |
1932 # TODO : Set thist with config | 1942 # TODO : Set thist with config |
1933 add_menu = False | 1943 add_menu = False |
1934 if add_menu: | 1944 if add_menu: |
1962 _hbox.add(_vertical_button) | 1972 _hbox.add(_vertical_button) |
1963 | 1973 |
1964 self.__connected_button = Gtk.ToolButton() | 1974 self.__connected_button = Gtk.ToolButton() |
1965 _icon_connected = Gtk.Image() | 1975 _icon_connected = Gtk.Image() |
1966 if self.__connected: | 1976 if self.__connected: |
1967 _icon_connected.set_from_file(globalVars.getAppPath("CONNECTED-ICON")) | 1977 _icon_path = globalVars.getAppPath("CONNECTED-ICON") |
1978 _icon_connected.set_from_file(_icon_path) | |
1968 self.__connected_button.set_tooltip_text(_("Disconnect view")) | 1979 self.__connected_button.set_tooltip_text(_("Disconnect view")) |
1969 else: | 1980 else: |
1970 _icon_connected.set_from_file(globalVars.getAppPath("DISCONNECTED-ICON")) | 1981 _icon_path = globalVars.getAppPath("DISCONNECTED-ICON") |
1982 _icon_connected.set_from_file(_icon_path) | |
1971 self.__connected_button.set_tooltip_text(_("Connect view")) | 1983 self.__connected_button.set_tooltip_text(_("Connect view")) |
1972 _icon_connected.show() | 1984 _icon_connected.show() |
1973 self.__connected_button.set_icon_widget(_icon_connected) | 1985 self.__connected_button.set_icon_widget(_icon_connected) |
1974 self.__connected_button.connect("clicked", self._connected) | 1986 self.__connected_button.connect("clicked", self._connected) |
1975 self.__connected_button.show() | 1987 self.__connected_button.show() |
2080 _item_topbottom.show() | 2092 _item_topbottom.show() |
2081 _item_close = Gtk.MenuItem(_("Close view")) | 2093 _item_close = Gtk.MenuItem(_("Close view")) |
2082 _menu_view.append(_item_close) | 2094 _menu_view.append(_item_close) |
2083 _item_close.connect("activate",self._closeItem_from_menu) | 2095 _item_close.connect("activate",self._closeItem_from_menu) |
2084 _item_close.show() | 2096 _item_close.show() |
2085 _menu_view.popup_at_widget(widget, Gdk.Gravity(7), Gdk.Gravity(1), Gtk.get_current_event()) | 2097 _menu_view.popup_at_widget(widget, Gdk.Gravity(7), Gdk.Gravity(1), |
2098 Gtk.get_current_event()) | |
2086 | 2099 |
2087 def _split_view(self, widget, orientation): | 2100 def _split_view(self, widget, orientation): |
2088 """_menu_view(orientation) | 2101 """_menu_view(orientation) |
2089 | 2102 |
2090 orientation: orientation split, "h" or "v" | 2103 orientation: orientation split, "h" or "v" |
2580 page: weak reference from Page instance which creates this class | 2593 page: weak reference from Page instance which creates this class |
2581 pane_path: tuple that represents the path of the List in the Page | 2594 pane_path: tuple that represents the path of the List in the Page |
2582 path_record: the record path that must be showed | 2595 path_record: the record path that must be showed |
2583 | 2596 |
2584 self.__budget: budget showed ("base.Budget" object) | 2597 self.__budget: budget showed ("base.Budget" object) |
2585 self.__wr_page: weak reference from Page instance which creates this class | 2598 self.__wr_page: weak reference from Page instance which creates self |
2586 self.__pane_path: tuple that represents the path of the List in the Page | 2599 self.__pane_path: tuple that represents the path of the List in the Page |
2587 self.__liststore: list model which store the list data | 2600 self.__liststore: list model which store the list data |
2588 (Gtk.ListStore object) | 2601 (Gtk.ListStore object) |
2589 self.__active_path_record: the record path that must be showed | 2602 self.__active_path_record: the record path that must be showed |
2590 self.__treeview: widget for displaying decomposition lists | 2603 self.__treeview: widget for displaying decomposition lists |
2643 self.__treeview.set_reorderable(False) | 2656 self.__treeview.set_reorderable(False) |
2644 self.__treeview.set_headers_clickable(True) | 2657 self.__treeview.set_headers_clickable(True) |
2645 self.__treeview.show() | 2658 self.__treeview.show() |
2646 # Scrolled_window | 2659 # Scrolled_window |
2647 self.__scrolled_window = Gtk.ScrolledWindow() | 2660 self.__scrolled_window = Gtk.ScrolledWindow() |
2648 self.__scrolled_window.set_property("expand", True) # widget expand all space | 2661 # widget expand all space |
2662 self.__scrolled_window.set_property("expand", True) | |
2649 self.__scrolled_window.set_policy(Gtk.PolicyType(1), | 2663 self.__scrolled_window.set_policy(Gtk.PolicyType(1), |
2650 Gtk.PolicyType(1)) # 1 Automatic | 2664 Gtk.PolicyType(1)) # 1 Automatic |
2651 self.__scrolled_window.add(self.__treeview) | 2665 self.__scrolled_window.add(self.__treeview) |
2652 # colors | 2666 # colors |
2653 _text_color = globalVars.color["TEXT"] | 2667 _text_color = globalVars.color["TEXT"] |
2816 | 2830 |
2817 Returns :TRUE if the signal was handled. | 2831 Returns :TRUE if the signal was handled. |
2818 """ | 2832 """ |
2819 return False | 2833 return False |
2820 | 2834 |
2821 def _controlSelection(self, selection, model, path, path_currently_selected, *data): | 2835 def _controlSelection(self, selection, model, path, |
2822 """_controlSelection(selection) | 2836 path_currently_selected, *data): |
2837 """_controlSelection(selection, model, path, | |
2838 path_currently_selected, *data) | |
2823 | 2839 |
2824 selection: treeselection | 2840 selection: treeselection |
2825 | 2841 |
2826 Method connected to set_selection_function() | 2842 Method connected to set_selection_function() |
2827 This method is called before any node is selected or unselected, | 2843 This method is called before any node is selected or unselected, |
2887 _amount = _price | 2903 _amount = _price |
2888 else: | 2904 else: |
2889 _parent_code = self.budget.getCode(self.__active_path_record[:-1]) | 2905 _parent_code = self.budget.getCode(self.__active_path_record[:-1]) |
2890 _parent_record = self.__budget.getRecord(_parent_code) | 2906 _parent_record = self.__budget.getRecord(_parent_code) |
2891 _amount = _budget.getStrAmount(self.__active_path_record) | 2907 _amount = _budget.getStrAmount(self.__active_path_record) |
2892 self.__code_column.set_title(_("Code") + chr(10) + "[" + _code.decode("utf8") + "]") | 2908 _str = _("Code") + chr(10) + "[" + _code.decode("utf8") + "]" |
2893 self.__unit_column.set_title(_("Unit") + chr(10) + "[" + _unit.decode("utf8") + "]") | 2909 self.__code_column.set_title(_str) |
2894 self.__description_column.set_title( | 2910 _str = _("Unit") + chr(10) + "[" + _unit.decode("utf8") + "]" |
2895 _("Description") + chr(10) + "[" + _description.decode("utf8") + "]") | 2911 self.__unit_column.set_title(_str) |
2912 _str = _("Description") + chr(10) + "[" + \ | |
2913 _description.decode("utf8") + "]" | |
2914 self.__description_column.set_title(_str) | |
2896 self.__measure_column.set_title( | 2915 self.__measure_column.set_title( |
2897 _("Measure") + chr(10) + "[" + _stryield + "]") | 2916 _("Measure") + chr(10) + "[" + _stryield + "]") |
2898 self.__price_column.set_title( | 2917 self.__price_column.set_title( |
2899 _("Price") + chr(10) + "[" + _price + "]") | 2918 _("Price") + chr(10) + "[" + _price + "]") |
2900 self.__amount_column.set_title( | 2919 self.__amount_column.set_title( |
3270 self.__treeview.set_reorderable(False) | 3289 self.__treeview.set_reorderable(False) |
3271 self.__treeview.set_headers_clickable(True) | 3290 self.__treeview.set_headers_clickable(True) |
3272 self.__treeview.show() | 3291 self.__treeview.show() |
3273 # Scrolled_window | 3292 # Scrolled_window |
3274 self.__scrolled_window = Gtk.ScrolledWindow() | 3293 self.__scrolled_window = Gtk.ScrolledWindow() |
3275 self.__scrolled_window.set_property("expand", True) # widget expand all space | 3294 # widget expand all space |
3295 self.__scrolled_window.set_property("expand", True) | |
3276 self.__scrolled_window.set_policy(Gtk.PolicyType(1), | 3296 self.__scrolled_window.set_policy(Gtk.PolicyType(1), |
3277 Gtk.PolicyType(1)) # 1 Automatic | 3297 Gtk.PolicyType(1)) # 1 Automatic |
3278 self.__scrolled_window.add(self.__treeview) | 3298 self.__scrolled_window.add(self.__treeview) |
3279 # colors | 3299 # colors |
3280 _text_color = globalVars.color["TEXT"] | 3300 _text_color = globalVars.color["TEXT"] |
3449 | 3469 |
3450 Returns :TRUE if the signal was handled. | 3470 Returns :TRUE if the signal was handled. |
3451 """ | 3471 """ |
3452 return False | 3472 return False |
3453 | 3473 |
3454 def _controlSelection(self, selection, model, path, path_currently_selected, *data): | 3474 def _controlSelection(self, selection, model, path, |
3455 """_controlSelection(selection) | 3475 path_currently_selected, *data): |
3476 """_controlSelection(selection, model, path, | |
3477 path_currently_selected, *data) | |
3456 | 3478 |
3457 selection: treeselection | 3479 selection: treeselection |
3458 | 3480 |
3459 Method connected to set_selection_function() | 3481 Method connected to set_selection_function() |
3460 This method is called before any node is selected or unselected, | 3482 This method is called before any node is selected or unselected, |
3795 wr_page: weak reference from Page instance which creates this class | 3817 wr_page: weak reference from Page instance which creates this class |
3796 pane_path: the path position of the description in the page | 3818 pane_path: the path position of the description in the page |
3797 path_record: the path of the active record | 3819 path_record: the path of the active record |
3798 | 3820 |
3799 self.__budget: the budget (base.obra object) | 3821 self.__budget: the budget (base.obra object) |
3800 self.__wr_page: weak reference from Page instance which creates this class | 3822 self.__wr_page: weak reference from Page instance which creates self |
3801 self.__pane_path: the path position of the description in the page | 3823 self.__pane_path: the path position of the description in the page |
3802 self.__active_path_recordthe path of the active record | 3824 self.__active_path_recordthe path of the active record |
3803 | 3825 |
3804 self.__textbuffer: The textbuffer of the textview that contain | 3826 self.__textbuffer: The textbuffer of the textview that contain |
3805 the record text. | 3827 the record text. |
3820 self.__active_path_record)).text | 3842 self.__active_path_record)).text |
3821 _scrollwindow = Gtk.ScrolledWindow() | 3843 _scrollwindow = Gtk.ScrolledWindow() |
3822 _scrollwindow.set_property("expand", True) # widget expand all space | 3844 _scrollwindow.set_property("expand", True) # widget expand all space |
3823 _scrollwindow.set_policy(Gtk.PolicyType(1), | 3845 _scrollwindow.set_policy(Gtk.PolicyType(1), |
3824 Gtk.PolicyType(1)) # 1 Automatic | 3846 Gtk.PolicyType(1)) # 1 Automatic |
3825 _scrollwindow.set_shadow_type(1) # NONE 0, IN 1, OUT 2, ETCHED_IN 3,ETCHED_OUT 4 | 3847 _scrollwindow.set_shadow_type(1) # IN 1 |
3826 _textview = Gtk.TextView() | 3848 _textview = Gtk.TextView() |
3827 _textview.set_wrap_mode(2) # 2 Word | 3849 _textview.set_wrap_mode(2) # 2 Word |
3828 _textview.set_hexpand(True) | 3850 _textview.set_hexpand(True) |
3829 _textview.set_vexpand(True) | 3851 _textview.set_vexpand(True) |
3830 self.__textbuffer = _textview.get_buffer() | 3852 self.__textbuffer = _textview.get_buffer() |
3979 wr_page: weak reference from Page instance which creates this class | 4001 wr_page: weak reference from Page instance which creates this class |
3980 pane_path: the path position of the description in the page | 4002 pane_path: the path position of the description in the page |
3981 path_record: the path of the active record | 4003 path_record: the path of the active record |
3982 | 4004 |
3983 self.__budget: the budget (base.obra object) | 4005 self.__budget: the budget (base.obra object) |
3984 self.__wr_page: weak reference from Page instance which creates this class | 4006 self.__wr_page: weak reference from Page instance which creates self |
3985 self.__pane_path: the path position of the description in the page | 4007 self.__pane_path: the path position of the description in the page |
3986 self.__active_path_record: the path of the active record | 4008 self.__active_path_record: the path of the active record |
3987 self.__label: The Gtk.label with the title of the pane | 4009 self.__label: The Gtk.label with the title of the pane |
3988 self.__field_liststore: the field liststore | 4010 self.__field_liststore: the field liststore |
3989 self.__field_treeview: the field treeview | 4011 self.__field_treeview: the field treeview |
4036 _field_column.add_attribute(_field_cell, "text", 1) | 4058 _field_column.add_attribute(_field_cell, "text", 1) |
4037 self.__field_treeview.append_column(_field_column) | 4059 self.__field_treeview.append_column(_field_column) |
4038 _field_scrollwindow = Gtk.ScrolledWindow() | 4060 _field_scrollwindow = Gtk.ScrolledWindow() |
4039 _field_scrollwindow.set_policy(Gtk.PolicyType(1), | 4061 _field_scrollwindow.set_policy(Gtk.PolicyType(1), |
4040 Gtk.PolicyType(1)) # 1 Automatic | 4062 Gtk.PolicyType(1)) # 1 Automatic |
4041 _field_scrollwindow.set_property("hexpand", True) # widget expand all space | 4063 # widget expand all space |
4064 _field_scrollwindow.set_property("hexpand", True) | |
4042 _field_scrollwindow.add(self.__field_treeview) | 4065 _field_scrollwindow.add(self.__field_treeview) |
4043 _field_scrollwindow.set_size_request(-1, 80) | 4066 _field_scrollwindow.set_size_request(-1, 80) |
4044 _field_scrollwindow.show() | 4067 _field_scrollwindow.show() |
4045 self.__section_liststore = Gtk.ListStore(str, str) | 4068 self.__section_liststore = Gtk.ListStore(str, str) |
4046 self.__section_treeview = Gtk.TreeView(self.__section_liststore) | 4069 self.__section_treeview = Gtk.TreeView(self.__section_liststore) |
4059 _section_column.add_attribute(_section_cell, "text", 1) | 4082 _section_column.add_attribute(_section_cell, "text", 1) |
4060 self.__section_treeview.append_column(_section_column) | 4083 self.__section_treeview.append_column(_section_column) |
4061 _section_scrollwindow = Gtk.ScrolledWindow() | 4084 _section_scrollwindow = Gtk.ScrolledWindow() |
4062 _section_scrollwindow.set_policy(Gtk.PolicyType(1), | 4085 _section_scrollwindow.set_policy(Gtk.PolicyType(1), |
4063 Gtk.PolicyType(1)) # 1 Automatic | 4086 Gtk.PolicyType(1)) # 1 Automatic |
4064 _section_scrollwindow.set_property("hexpand", True) # widget expand all space | 4087 # widget expand all space |
4088 _section_scrollwindow.set_property("hexpand", True) | |
4065 _section_scrollwindow.set_size_request(-1, 90) | 4089 _section_scrollwindow.set_size_request(-1, 90) |
4066 _section_scrollwindow.add(self.__section_treeview) | 4090 _section_scrollwindow.add(self.__section_treeview) |
4067 _section_scrollwindow.show() | 4091 _section_scrollwindow.show() |
4068 | 4092 |
4069 _list_box.add(_field_scrollwindow) | 4093 _list_box.add(_field_scrollwindow) |
4127 self.__active_path_record)) | 4151 self.__active_path_record)) |
4128 _sheet = _record.getSheet() | 4152 _sheet = _record.getSheet() |
4129 _section_list = _sheet.getSections(self.__field_selection) | 4153 _section_list = _sheet.getSections(self.__field_selection) |
4130 for _section in _section_list: | 4154 for _section in _section_list: |
4131 _section_text = self.__budget.getSheetSection(_section) | 4155 _section_text = self.__budget.getSheetSection(_section) |
4132 _iter = self.__section_liststore.append([_section, _section_text]) | 4156 _iter = self.__section_liststore.append([_section, |
4157 _section_text]) | |
4133 _treeselection = self.__section_treeview.get_selection() | 4158 _treeselection = self.__section_treeview.get_selection() |
4134 _treeselection.select_path(0) | 4159 _treeselection.select_path(0) |
4135 | 4160 |
4136 def _setText(self): | 4161 def _setText(self): |
4137 """_setText() | 4162 """_setText() |
4190 | 4215 |
4191 When a user select a row in the field treeview the text sheet for this | 4216 When a user select a row in the field treeview the text sheet for this |
4192 section in showed | 4217 section in showed |
4193 """ | 4218 """ |
4194 _treeiter = self.__section_liststore.get_iter(path) | 4219 _treeiter = self.__section_liststore.get_iter(path) |
4195 self.__section_selection = self.__section_liststore.get_value(_treeiter, 0) | 4220 self.__section_selection = self.__section_liststore.get_value(_treeiter, |
4221 0) | |
4196 self._setText() | 4222 self._setText() |
4197 return True | 4223 return True |
4198 | 4224 |
4199 def _setActivePathRecord(self, path_record): | 4225 def _setActivePathRecord(self, path_record): |
4200 """_setActivePathRecord(path_record)) | 4226 """_setActivePathRecord(path_record)) |
4333 Atributes: | 4359 Atributes: |
4334 widget: the main widget (Gtk.ScrolledWindow object) | 4360 widget: the main widget (Gtk.ScrolledWindow object) |
4335 pane_path: the tuple that identifies the pane in the notebook page | 4361 pane_path: the tuple that identifies the pane in the notebook page |
4336 budget: The budget (base.obra object) | 4362 budget: The budget (base.obra object) |
4337 active_path_record: Read. | 4363 active_path_record: Read. |
4338 wr_page: Read-Write. weak reference from Page instance which creates this class | 4364 wr_page: Read-Write. weak reference from Page instance |
4339 Methods: | 4365 Methods: |
4340 runMessage | 4366 runMessage |
4341 """ | 4367 """ |
4342 | 4368 |
4343 def __init__(self, budget, wr_page, pane_path, path_record=None): | 4369 def __init__(self, budget, wr_page, pane_path, path_record=None): |
4347 wr_page: weak reference from Page instance which creates this class | 4373 wr_page: weak reference from Page instance which creates this class |
4348 pane_path: the path position of the description in the page | 4374 pane_path: the path position of the description in the page |
4349 path_record: the path of the active record | 4375 path_record: the path of the active record |
4350 | 4376 |
4351 self.__budget: the budget (base.obra object) | 4377 self.__budget: the budget (base.obra object) |
4352 self.__wr_page: weak reference from Page instance which creates this class | 4378 self.__wr_page: weak reference from Page instance which creates self |
4353 self.__pane_path: the path position of the description in the page | 4379 self.__pane_path: the path position of the description in the page |
4354 self.__active_path_record: the path of the active record | 4380 self.__active_path_record: the path of the active record |
4355 self.__active_code: the code of the active record | 4381 self.__active_code: the code of the active record |
4356 self.__icon_box: the box that contains the icon | 4382 self.__icon_box: the box that contains the icon |
4357 self.__widget: main widget, a Gtk.ScrolledWindow | 4383 self.__widget: main widget, a Gtk.ScrolledWindow |
4399 if os.path.exists(_file_path): | 4425 if os.path.exists(_file_path): |
4400 _filetype = utils.getFiletype(_file_path) | 4426 _filetype = utils.getFiletype(_file_path) |
4401 _event_box = Gtk.LinkButton() | 4427 _event_box = Gtk.LinkButton() |
4402 _file_icon = Gtk.Image() | 4428 _file_icon = Gtk.Image() |
4403 # "image", "wmf", "dxf", "pdf" , "video", | 4429 # "image", "wmf", "dxf", "pdf" , "video", |
4404 # "office-document", "office-presentation", "office-spreadsheet", | 4430 # "office-document", "office-presentation", |
4405 # "html", "rtf", "txt", "" | 4431 # "office-spreadsheet", "html", "rtf", "txt", "" |
4406 # icon | 4432 # icon |
4407 if _filetype in ["image", "wmf"]: | 4433 if _filetype in ["image", "wmf"]: |
4408 try: | 4434 try: |
4409 _image_pixbuf = GdkPixbuf.Pixbuf.new_from_file(_file_path) | 4435 _image_pixbuf = GdkPixbuf.Pixbuf.new_from_file(_file_path) |
4410 _image_pixbuf = _image_pixbuf.scale_simple(64, 64, | 4436 _image_pixbuf = _image_pixbuf.scale_simple(64, 64, |
4639 +-- CompanyView | 4665 +-- CompanyView |
4640 Atributes: | 4666 Atributes: |
4641 active_path_record: Read. Path of the active record in the budget | 4667 active_path_record: Read. Path of the active record in the budget |
4642 widget: Read. Window that contains the main widget, a Gtk.Paned | 4668 widget: Read. Window that contains the main widget, a Gtk.Paned |
4643 pane_path: Read-Write. Pane page identifier | 4669 pane_path: Read-Write. Pane page identifier |
4644 wr_page: Read-Write. weak reference from Page instance which creates this class | 4670 wr_page: Read-Write. weak reference from Page instance |
4645 budget: Read. Budget to show, base.budget instance. | 4671 budget: Read. Budget to show, base.budget instance. |
4646 Methods: | 4672 Methods: |
4647 runMessage | 4673 runMessage |
4648 """ | 4674 """ |
4649 | 4675 |
4655 pane_path: tuple that represents the path of the pane in the Page | 4681 pane_path: tuple that represents the path of the pane in the Page |
4656 path_record: path of the active record in the budget | 4682 path_record: path of the active record in the budget |
4657 | 4683 |
4658 self.__selection: "company" or "office" selected treeview | 4684 self.__selection: "company" or "office" selected treeview |
4659 self.__budget: budget: budget showed ("base.Budget" object) | 4685 self.__budget: budget: budget showed ("base.Budget" object) |
4660 self.__wr_page: weak reference from Page instance which creates this class | 4686 self.__wr_page: weak reference from Page instance |
4661 self.__pane_path: tuple that represents the path of the List in the Page | 4687 self.__pane_path: tuple that represents the path of the List in the Page |
4662 self.__active_path_record: path of the active record in the budget | 4688 self.__active_path_record: path of the active record in the budget |
4663 self.__widget: main widget, a Gtk.Paned | 4689 self.__widget: main widget, a Gtk.Paned |
4664 self.__treestore: to store companys data | 4690 self.__treestore: to store companys data |
4665 self.__option_View: OptionView object | 4691 self.__option_View: OptionView object |
4789 for _office in _offices: | 4815 for _office in _offices: |
4790 # TODO: Test offices | 4816 # TODO: Test offices |
4791 _values = [_office.officeType, _office.subname] | 4817 _values = [_office.officeType, _office.subname] |
4792 self.__treestore.append(_treeiter, _values) | 4818 self.__treestore.append(_treeiter, _values) |
4793 | 4819 |
4794 def _controlSelection(self, selection, model, path, path_currently_selected, *data): | 4820 def _controlSelection(self, selection, model, path, |
4795 """_controlSelection(selection, model, path, path_currently_selected, *data) | 4821 path_currently_selected, *data): |
4822 """_controlSelection(selection, model, path, | |
4823 path_currently_selected, *data) | |
4796 | 4824 |
4797 selection: selection | 4825 selection: selection |
4798 | 4826 |
4799 Method connected to set_selection_function() | 4827 Method connected to set_selection_function() |
4800 This method is called before any node is selected or unselected, | 4828 This method is called before any node is selected or unselected, |
5081 _treeselection = self.__treeview.get_selection() | 5109 _treeselection = self.__treeview.get_selection() |
5082 _treeselection.set_mode(Gtk.SelectionMode(3)) # 3 MULTIPLE | 5110 _treeselection.set_mode(Gtk.SelectionMode(3)) # 3 MULTIPLE |
5083 _treeselection.set_select_function(self._controlSelection) | 5111 _treeselection.set_select_function(self._controlSelection) |
5084 # labels | 5112 # labels |
5085 _frame = Gtk.Frame() | 5113 _frame = Gtk.Frame() |
5086 _frame.set_shadow_type(2) # NONE 0, IN 1, OUT 2, ETCHED_IN 3,ETCHED_OUT 4 | 5114 _frame.set_shadow_type(2) # OUT 2 |
5087 _vbox2 = Gtk.Grid() | 5115 _vbox2 = Gtk.Grid() |
5088 _vbox2.set_orientation(Gtk.Orientation(1)) # 1 Vertical | 5116 _vbox2.set_orientation(Gtk.Orientation(1)) # 1 Vertical |
5089 _frame.add(_vbox2) | 5117 _frame.add(_vbox2) |
5090 _label = Gtk.Label() | 5118 _label = Gtk.Label() |
5091 _label.set_xalign(0) | 5119 _label.set_xalign(0) |