Native gui some more code
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from gi.repository import Gtk
|
||||
|
||||
def init_named_controls(window, builder):
|
||||
ctrltype = {
|
||||
'lbl': 'label',
|
||||
'ent': 'entry',
|
||||
'but': 'button',
|
||||
'cmb': 'combo',
|
||||
'tvw': 'tree',
|
||||
'spi': 'spin',
|
||||
'txt': 'text',
|
||||
'chk': 'check',
|
||||
'opt': 'radio',
|
||||
'vbx': 'vbox',
|
||||
'hbx': 'hbox',
|
||||
'box': 'box',
|
||||
'tbl': 'table',
|
||||
'mnu': 'menu',
|
||||
'img': 'image',
|
||||
'drw': 'area'
|
||||
}
|
||||
for ctrl in ctrltype.values():
|
||||
setattr(window, ctrl, {})
|
||||
for widget in builder.get_objects():
|
||||
if type(widget) in (Gtk.Adjustment, Gtk.CellRendererText, Gtk.TreeSelection):
|
||||
continue
|
||||
widgetname = Gtk.Buildable.get_name(widget)
|
||||
nameparts = widgetname.partition('_')
|
||||
if (not nameparts[0] in ctrltype.keys()) or (not nameparts[2]):
|
||||
continue
|
||||
var = getattr(window, ctrltype[nameparts[0]])
|
||||
var[nameparts[2]] = widget
|
||||
+180
@@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkWindow" id="wnd_main">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="title" translatable="yes">YMS</property>
|
||||
<signal name="destroy" handler="on_destroy" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkButtonBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="layout-style">start</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_vessel">
|
||||
<property name="label" translatable="yes">Vessel</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" id="but_company">
|
||||
<property name="label" translatable="yes">Companies</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_equipment">
|
||||
<property name="label" translatable="yes">Equipment</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>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_inventory">
|
||||
<property name="label" translatable="yes">Inventory</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">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_provisions">
|
||||
<property name="label" translatable="yes">Provisions</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">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_projects">
|
||||
<property name="label" translatable="yes">Projects</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">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_documents">
|
||||
<property name="label" translatable="yes">Documents</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">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbl_vessel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">empty</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<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" id="tvw_user">
|
||||
<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">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="but_info">
|
||||
<property name="label" translatable="yes">Ok</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<signal name="clicked" handler="on_but_info_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</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">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -21,6 +21,7 @@ gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import GLib, Gtk
|
||||
|
||||
from yms import database
|
||||
from yms import gtkutils
|
||||
|
||||
cfg = {
|
||||
'cfgfile': '~/.config/ymsgui.conf',
|
||||
@@ -29,16 +30,46 @@ cfg = {
|
||||
'user': 'yms'
|
||||
}
|
||||
|
||||
class Frontend(Gtk.Window):
|
||||
class Frontend():
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.connect("destroy", self.on_destroy)
|
||||
builder = Gtk.Builder()
|
||||
builder.add_from_file("yms/ui/main.ui")
|
||||
builder.connect_signals(self)
|
||||
self.window = builder.get_object("wnd_main")
|
||||
gtkutils.init_named_controls(self, builder)
|
||||
|
||||
# get current vessel id
|
||||
db.cur.execute("SELECT valint FROM settings WHERE userid=0 AND sno=1")
|
||||
row = db.cur.fetchone()
|
||||
if not row:
|
||||
self.vid = 0
|
||||
self.vname = "Ghost"
|
||||
db.cur.execute("INSERT INTO settings (userid, sno, valint) VALUES (0, 1, 0)")
|
||||
db.conn.commit()
|
||||
else:
|
||||
self.vid = row[0]
|
||||
# get vessel infos
|
||||
if self.vid > 0:
|
||||
db.cur.execute("SELECT vesselname, model FROM vessel WHERE vid=%s", (self.vid, ))
|
||||
self.vessel = db.cur.fetchone()
|
||||
print(self.vessel['sesselname'])
|
||||
else:
|
||||
self.vname = "Ghost(0)"
|
||||
|
||||
def run(self):
|
||||
self.show_all()
|
||||
self.label['vessel'].set_text(self.vname)
|
||||
self.window.show_all()
|
||||
Gtk.main()
|
||||
|
||||
def on_but_info_clicked(self, widget):
|
||||
|
||||
# Userlist
|
||||
sql = ("SELECT userid, login FROM user ORDER BY login")
|
||||
db.cur.execute(sql)
|
||||
for row in db.cur.fetchall():
|
||||
print(row)
|
||||
|
||||
def on_destroy(self, widget, data=None):
|
||||
Gtk.main_quit()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user