More work on native user interface

This commit is contained in:
2026-07-17 15:24:38 +02:00
parent d66f74817b
commit 631f1cd2cf
2 changed files with 1183 additions and 878 deletions
+368 -77
View File
@@ -10,12 +10,13 @@
<property name="default-height">600</property>
<signal name="destroy" handler="on_destroy" swapped="no"/>
<child>
<object class="GtkNotebook">
<object class="GtkNotebook" id="ntb_modules">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="tab-pos">left</property>
<signal name="switch-page" handler="on_ntb_modules_switch_page" swapped="no"/>
<child>
<object class="GtkNotebook">
<object class="GtkNotebook" id="ntb_basedata">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
@@ -152,79 +153,6 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_lists">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButtonBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="layout-style">end</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Edit</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Lists</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkPaned" id="pan_user">
<property name="visible">True</property>
@@ -544,6 +472,86 @@
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Lists</property>
</object>
<packing>
<property name="position">2</property>
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_lists">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButtonBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="layout-style">end</property>
<child>
<object class="GtkButton" id="but_list_detail">
<property name="label" translatable="yes">Details</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="but_list_edit">
<property name="label" translatable="yes">Edit</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="position">2</property>
</packing>
@@ -559,6 +567,47 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_companies">
<property name="visible">True</property>
<property name="can-focus">False</property>
<signal name="notify::visible-child-name" handler="on_stk_companies_notify" swapped="no"/>
<child>
<object class="GtkBox" id="box_companies">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Companies</property>
</object>
<packing>
<property name="position">3</property>
<property name="tab-fill">False</property>
</packing>
</child>
</object>
</child>
<child type="tab">
@@ -575,6 +624,7 @@
<object class="GtkStack" id="stk_equipment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<signal name="notify::visible-child-name" handler="on_stk_companies_notify" swapped="no"/>
<child>
<object class="GtkBox" id="box_equipment">
<property name="visible">True</property>
@@ -799,6 +849,9 @@
<object class="GtkTreeView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
@@ -884,9 +937,69 @@
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButtonBox">
<property name="visible">True</property>
@@ -1260,6 +1373,10 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_inventory">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="box_inventory">
<property name="visible">True</property>
@@ -1466,6 +1583,111 @@
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_inv_detail">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Inventory details</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkButtonBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="layout-style">start</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">page1</property>
<property name="title" translatable="yes">page1</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_inv_edit">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="name">page2</property>
<property name="title" translatable="yes">page2</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="position">2</property>
</packing>
@@ -1481,6 +1703,10 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_provisions">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="box_provisions">
<property name="visible">True</property>
@@ -1672,6 +1898,12 @@
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
<property name="position">3</property>
</packing>
@@ -1687,6 +1919,10 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_maintenance">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="box_maintenance">
<property name="visible">True</property>
@@ -1871,6 +2107,12 @@
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
<property name="position">4</property>
</packing>
@@ -1886,6 +2128,10 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_projects">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="box_projects">
<property name="visible">True</property>
@@ -2091,6 +2337,12 @@
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
<property name="position">5</property>
</packing>
@@ -2106,6 +2358,10 @@
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkStack" id="stk_documents">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="box_documents">
<property name="visible">True</property>
@@ -2311,6 +2567,12 @@
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
<property name="position">6</property>
</packing>
@@ -2327,7 +2589,7 @@
</packing>
</child>
<child>
<object class="GtkBox">
<object class="GtkBox" id="box_status">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
@@ -2336,6 +2598,9 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Status</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -2347,7 +2612,10 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Here be dragons!</property>
<property name="label" translatable="yes">This is an early prototype of YMS native GUI.
Please use the web frontend wich is already
in and useble state.
</property>
</object>
<packing>
<property name="expand">True</property>
@@ -2355,6 +2623,29 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="drw_status">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">YMS-GUI version 0.1.1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="position">7</property>
+14
View File
@@ -84,6 +84,12 @@ class Frontend():
#viewport.height = 240
#self._svg.render_document(ctx, viewport)
# prepare lists
self.lst_user = Gtk.ListStore(int, str)
db.cur.execute("SELECT userid, login FROM user ORDER BY login")
for row in db.cur.fetchall():
self.lst_user.append(row)
def run(self):
self.label['vessel'].set_text(self.vname)
self.window.show_all()
@@ -96,6 +102,14 @@ class Frontend():
for row in db.cur.fetchall():
print(row)
def on_stk_companies_notify(self, stack, param):
print("Stack notify")
print(stack, param)
def on_ntb_modules_switch_page(self, notebook, page, page_num):
print("Neue Seite:", page_num)
# TODO here re-load lists
def on_but_equip_detail_clicked(self, widget):
self.stack['equipment'].set_visible_child(self.box['equip_detail'])