Fildem icon indicating copy to clipboard operation
Fildem copied to clipboard

Duplicated Node ID Error

Open scotabroad opened this issue 2 years ago • 5 comments

Information

  • Operating System: Fedora 35
  • Gnome Shell Version: 41.6
  • Xorg/Wayland?: Wayland
  • Apps tested: Libreoffice Writer
  • Fildem version: 0.6.7

What is the current behavior?

I have installed the extension and the file from Github. Wanting to make sure Fildem works before I configure it to start on startup, I run it in my terminal. When I open Libreoffice Writer, the menu does not appear at the top. I have disabled all other extensions. Below is my terminal output:

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
  File "/usr/lib64/python3.10/site-packages/dbus/connection.py", line 232, in maybe_handle_message
    self._handler(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/window.py", line 155, in _window_switched
    cls._call_all_listeners(win)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/window.py", line 160, in _call_all_listeners
    callback(window)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/menu.py", line 39, in on_window_switched
    self._init_window()
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/menu.py", line 34, in _init_window
    self._update()
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/menu.py", line 122, in _update
    self._update_menus()
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/utils/menu.py", line 114, in _update_menus
    self._menu_model._update_menus()
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 318, in _update_menus
    self.gtkmenu.get_results()
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 70, in get_results
    self.collect_entries(treelib_parent='Root')
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 98, in collect_entries
    self.collect_entries(menu[':section'], labels, treelib_parent)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 98, in collect_entries
    self.collect_entries(menu[':section'], labels, treelib_parent)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 93, in collect_entries
    self.collect_entries(menu[':submenu'], menu_path, menu_item.action)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 98, in collect_entries
    self.collect_entries(menu[':section'], labels, treelib_parent)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/menu_model/menu_model.py", line 90, in collect_entries
    self.tree.create_node(menu_item.label, menu_item.action, treelib_parent, data=menu_item)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/treelib/tree.py", line 345, in create_node
    self.add_node(node, parent)
  File "/usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg/fildem/treelib/tree.py", line 268, in add_node
    raise DuplicatedNodeIdError("Can't create node "
fildem.treelib.exceptions.DuplicatedNodeIdError: Can't create node with ID ''


Steps to reproduce the problem

Install the extension Install the file Run sudo python3 setup.py install --optimize=1 Configure ~/.gtkrc-2.0 and ~/.config/gtk-3.0/settings.ini Logout and Reboot Open terminal to run fildem Open Libreoffice Writer

What is the expected behavior?

Global menu should be exported to topbar and be visible.

scotabroad avatar May 05 '22 02:05 scotabroad

By commenting out lines if node.identifier in self._nodes: raise DuplicatedNodeIdError("Can't create node " "with ID '%s'" % node.identifier) in fildem/treelib/tree.py, I can finally get the global menu to display, though I can't interact with it for LibreOffice. It should be noted that the menu for Chromium also now appears (previously it didn't). That one can be interacted with.

scotabroad avatar May 05 '22 17:05 scotabroad

Okay, Chromium only works on Xorg, not Wayland. LibreOffice still doesn't work.

scotabroad avatar May 05 '22 22:05 scotabroad

It seems having a small screen negatively impacts this. The menu only works if I shrink my screen scaling from 200% to 100%. Otherwise, some menu items appear as dots.

scotabroad avatar May 10 '22 04:05 scotabroad

Same issue here with Fedora 36 - although I can't figure out how to modify the egg file properly to apply this work around. /usr/local/lib/python3.10/site-packages/fildem-0.6.7-py3.10.egg

Issue exists under x11 for me, I have not tested wayland and don't care to. Also had to set selinux to permissive to even make it this far.

Ok - now I got it to show a menu but yea I cannot interact with it..

rbreaves avatar May 21 '22 07:05 rbreaves

Same issue with Arch Linux + Gnome 42 (42.4).

App menu appears in firefox-appmenu, chromium, vscode but doesn't appear in libreoffice for some reason with the same error message.

circonfl3x avatar Aug 17 '22 09:08 circonfl3x