Skip to content

Commit

Permalink
Editable shortcuts for #4
Browse files Browse the repository at this point in the history
  • Loading branch information
maoschanz committed May 8, 2019
1 parent d959f3b commit 7af2d3f
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 72 deletions.
73 changes: 28 additions & 45 deletions markdown_preview/prefs.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,61 +82,44 @@ def __init__(self, datadir, **kwargs):

### SHORTCUTS ###

shortcuts_treeview = builder.get_object('shortcuts_treeview')
#--------
renderer1 = Gtk.CellRendererText()
column1 = Gtk.TreeViewColumn()
column1.set_expand(True)
column1.pack_start(renderer1, True)
column1.add_attribute(renderer1, 'text', 1);
shortcuts_treeview.append_column(column1)
#--------
renderer2 = Gtk.CellRendererAccel(editable=True, \
accel_mode=Gtk.CellRendererAccelMode.GTK)
renderer2.connect('accel-edited', self.on_accel_edited)
renderer2.connect('accel-cleared', self.on_accel_cleared)
column2 = Gtk.TreeViewColumn()
column2.pack_end(renderer2, False)
shortcuts_treeview.append_column(column2)
#--------
self.add_keybinding(shortcuts_treeview.get_model(), 'kb-italic', _("Italic"))
self.add_keybinding(shortcuts_treeview.get_model(), 'kb-bold', _("Bold"))

# shortcuts_treeview.show_all()

self.shortcuts_treeview = builder.get_object('shortcuts_treeview')
renderer = builder.get_object('accel_renderer')
renderer.connect('accel-edited', self.on_accel_edited)
renderer.connect('accel-cleared', self.on_accel_cleared)
# https://github.com/GNOME/gtk/blob/master/gdk/keynames.txt
self.add_keybinding('kb-italic', _("Italic"))
self.add_keybinding('kb-bold', _("Bold"))

self.add(switcher)
self.add(stack)

self.connect('notify::visible', self.set_options_visibility)

def add_keybinding(self, model, setting_id, description):
# accelerator = self._settings.get_strv(setting_id)[0]
# if accelerator is None:
# [key, mods] = [0, 0]
# else:
# [key, mods] = Gtk.accelerator_parse(self._settings.get_strv(setting_id)[0])
key = 0
mods = 0

row = model.insert(0, row=[setting_id, description, key, mods])

# row = model.insert(100)
# model.set(row, \
# [COLUMN_ID, COLUMN_DESCRIPTION, COLUMN_KEY, COLUMN_MODS],
# [setting_id, description, key, mods])


def add_keybinding(self, setting_id, description):
accelerator = self._settings.get_strv(setting_id)[0]
if accelerator is None:
[key, mods] = [0, 0]
else:
[key, mods] = Gtk.accelerator_parse(self._settings.get_strv(setting_id)[0])
row = self.shortcuts_treeview.get_model().insert(0, \
row=[setting_id, description, key, mods])

def on_accel_edited(self, *args):
pass # TODO

tree_iter = self.shortcuts_treeview.get_model().get_iter_from_string(args[1])
self.shortcuts_treeview.get_model().set(tree_iter, [2, 3], [args[2], int(args[3])])
setting_id = self.shortcuts_treeview.get_model().get_value(tree_iter, 0)
accelString = Gtk.accelerator_name(args[2], args[3])
self._settings.set_strv(setting_id, [accelString])

def on_accel_cleared(self, *args):
pass # TODO

tree_iter = self.shortcuts_treeview.get_model().get_iter_from_string(args[1])
self.shortcuts_treeview.get_model().set(tree_iter, [2, 3], [0, 0])
setting_id = self.shortcuts_treeview.get_model().get_value(tree_iter, 0)
self._settings.set_strv(setting_id, [])

def on_backend_changed(self, w):
self._settings.set_string('backend', w.get_active_id())
self.set_options_visibility()

def update_plugins_list(self, *args):
array = []
if self.plugins_admonition.get_active():
Expand Down
59 changes: 32 additions & 27 deletions markdown_preview/prefs.ui
Original file line number Diff line number Diff line change
Expand Up @@ -249,30 +249,35 @@
<child>
<object class="GtkTreeView" id="shortcuts_treeview">
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<property name="model">list_store</property>


<!-- <child>-->
<!-- <object class="GtkTreeViewColumn">-->
<!-- <property name="title">Description</property>-->
<!-- <child>-->
<!-- <object class="GtkCellRendererText"/>-->
<!-- <attributes>-->
<!-- <attribute name="text">1</attribute>-->
<!-- </attributes>-->
<!-- </child>-->
<!-- </object>-->
<!-- </child>-->
<!-- <child>-->
<!-- <object class="GtkTreeViewColumn">-->
<!-- <property name="title">Shortcut</property>-->
<!-- <child>-->
<!-- <object class="GtkCellRendererAccel"/>-->
<!-- TODO-->
<!-- </child>-->
<!-- </object>-->
<!-- </child>-->

<child>
<object class="GtkTreeViewColumn">
<property name="title">Description</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title">Shortcut</property>
<child>
<object class="GtkCellRendererAccel" id="accel_renderer">
<property name="editable">True</property>
<property name="accel-mode">gtk</property>
</object>
<attributes>
<attribute name="accel-key">2</attribute>
<attribute name="accel-mods">3</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
Expand All @@ -292,10 +297,10 @@
</columns>
<data>
<!-- <row>-->
<!-- <col id="0">John</col>-->
<!-- <col id="1">Doe</col>-->
<!-- <col id="2">25</col>-->
<!-- <col id="3">25</col>-->
<!-- <col id="0">setting_id</col>-->
<!-- <col id="1">Displayed description</col>-->
<!-- <col id="2">0</col>-->
<!-- <col id="3">0</col>-->
<!-- </row>-->
</data>
</object>
Expand Down

0 comments on commit 7af2d3f

Please sign in to comment.