Skip to content

Commit 81e87eb

Browse files
committed
Fix cyclic import between utils and resources
1 parent 4fa86dc commit 81e87eb

File tree

4 files changed

+48
-48
lines changed

4 files changed

+48
-48
lines changed

.pylintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ disable=raw-checker-failed,
9595
missing-class-docstring,
9696
missing-function-docstring,
9797
missing-module-docstring,
98+
no-name-in-module,
9899
no-self-use,
99100
too-few-public-methods,
100101
too-many-arguments,

src/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
from diffuse.resources import theResources
4646
from diffuse.vcs.vcs_registry import VcsRegistry
4747
from diffuse.widgets import FileDiffViewer
48-
from diffuse.widgets import LINE_MODE, CHAR_MODE, ALIGN_MODE
48+
from diffuse.widgets import createMenu, LINE_MODE, CHAR_MODE, ALIGN_MODE
4949

5050
theVCSs = VcsRegistry()
5151

@@ -1550,7 +1550,7 @@ def _create_menu_bar(specs, radio, accel_group):
15501550
menu_bar = Gtk.MenuBar.new()
15511551
for label, spec in specs:
15521552
menu = Gtk.MenuItem.new_with_mnemonic(label)
1553-
menu.set_submenu(utils.createMenu(spec, radio, accel_group))
1553+
menu.set_submenu(createMenu(spec, radio, accel_group))
15541554
menu.set_use_underline(True)
15551555
menu.show()
15561556
menu_bar.append(menu)

src/utils.py

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
# pylint: enable=wrong-import-position
3131

3232
from diffuse import constants
33-
from diffuse.resources import theResources
3433

3534
# convenience class for displaying a message dialogue
3635
class MessageDialog(Gtk.MessageDialog):
@@ -272,50 +271,6 @@ def step_adjustment(adj, delta):
272271
v = min(v, int(adj.get_upper() - adj.get_page_size()))
273272
adj.set_value(v)
274273

275-
# convenience method for creating a menu according to a template
276-
def createMenu(specs, radio=None, accel_group=None):
277-
menu = Gtk.Menu.new()
278-
for spec in specs:
279-
if len(spec) > 0:
280-
if len(spec) > 7 and spec[7] is not None:
281-
g, k = spec[7]
282-
if g not in radio:
283-
item = Gtk.RadioMenuItem.new_with_mnemonic_from_widget(None, spec[0])
284-
radio[g] = (item, {})
285-
else:
286-
item = Gtk.RadioMenuItem.new_with_mnemonic_from_widget(radio[g][0], spec[0])
287-
radio[g][1][k] = item
288-
else:
289-
item = Gtk.ImageMenuItem.new_with_mnemonic(spec[0])
290-
cb = spec[1]
291-
if cb is not None:
292-
data = spec[2]
293-
item.connect('activate', cb, data)
294-
if len(spec) > 3 and spec[3] is not None:
295-
image = Gtk.Image.new()
296-
image.set_from_stock(spec[3], Gtk.IconSize.MENU) # pylint: disable=no-member
297-
item.set_image(image)
298-
if accel_group is not None and len(spec) > 4:
299-
a = theResources.getKeyBindings('menu', spec[4])
300-
if len(a) > 0:
301-
key, modifier = a[0]
302-
item.add_accelerator(
303-
'activate',
304-
accel_group,
305-
key,
306-
modifier,
307-
Gtk.AccelFlags.VISIBLE)
308-
if len(spec) > 5:
309-
item.set_sensitive(spec[5])
310-
if len(spec) > 6 and spec[6] is not None:
311-
item.set_submenu(createMenu(spec[6], radio, accel_group))
312-
item.set_use_underline(True)
313-
else:
314-
item = Gtk.SeparatorMenuItem.new()
315-
item.show()
316-
menu.append(item)
317-
return menu
318-
319274

320275
# masks used to indicate the presence of particular line endings
321276
DOS_FORMAT = 1

src/widgets.py

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,7 @@ def darea_button_press_cb(self, widget, event, f):
18331833
can_swap = (f != self.current_pane)
18341834

18351835
# pylint: disable=line-too-long
1836-
menu = utils.createMenu(
1836+
menu = createMenu(
18371837
[ [_('Align with Selection'), self.align_with_selection_cb, [f, i], Gtk.STOCK_EXECUTE, None, can_align],
18381838
[_('Isolate'), self.button_cb, 'isolate', None, None, can_isolate ],
18391839
[_('Merge Selection'), self.merge_lines_cb, f, None, None, can_merge],
@@ -3685,6 +3685,50 @@ def merge_from_left_then_right(self):
36853685
def merge_from_right_then_left(self):
36863686
self._mergeBoth(True)
36873687

3688+
# convenience method for creating a menu according to a template
3689+
def createMenu(specs, radio=None, accel_group=None):
3690+
menu = Gtk.Menu.new()
3691+
for spec in specs:
3692+
if len(spec) > 0:
3693+
if len(spec) > 7 and spec[7] is not None:
3694+
g, k = spec[7]
3695+
if g not in radio:
3696+
item = Gtk.RadioMenuItem.new_with_mnemonic_from_widget(None, spec[0])
3697+
radio[g] = (item, {})
3698+
else:
3699+
item = Gtk.RadioMenuItem.new_with_mnemonic_from_widget(radio[g][0], spec[0])
3700+
radio[g][1][k] = item
3701+
else:
3702+
item = Gtk.ImageMenuItem.new_with_mnemonic(spec[0])
3703+
cb = spec[1]
3704+
if cb is not None:
3705+
data = spec[2]
3706+
item.connect('activate', cb, data)
3707+
if len(spec) > 3 and spec[3] is not None:
3708+
image = Gtk.Image.new()
3709+
image.set_from_stock(spec[3], Gtk.IconSize.MENU) # pylint: disable=no-member
3710+
item.set_image(image)
3711+
if accel_group is not None and len(spec) > 4:
3712+
a = theResources.getKeyBindings('menu', spec[4])
3713+
if len(a) > 0:
3714+
key, modifier = a[0]
3715+
item.add_accelerator(
3716+
'activate',
3717+
accel_group,
3718+
key,
3719+
modifier,
3720+
Gtk.AccelFlags.VISIBLE)
3721+
if len(spec) > 5:
3722+
item.set_sensitive(spec[5])
3723+
if len(spec) > 6 and spec[6] is not None:
3724+
item.set_submenu(createMenu(spec[6], radio, accel_group))
3725+
item.set_use_underline(True)
3726+
else:
3727+
item = Gtk.SeparatorMenuItem.new()
3728+
item.show()
3729+
menu.append(item)
3730+
return menu
3731+
36883732
ALPHANUMERIC_CLASS = 0
36893733
WHITESPACE_CLASS = 1
36903734
OTHER_CLASS = 2

0 commit comments

Comments
 (0)