slytomcat / yandex-disk-indicator

Panel indicator (GTK+) for YandexDisk CLI client for Linux
GNU General Public License v3.0
241 stars 30 forks source link

PyGTK DeprecationWarinigs / AppIndicator3 DeprecationWarning #204

Closed MikePooh closed 5 years ago

MikePooh commented 5 years ago

/usr/bin/yandex-disk-indicator:717: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations self.last = Gtk.MenuItem(_('Last synchronized items'))

Same repeats in rows: 723: self.daemon_ss = Gtk.MenuItem('')
726: self.openfolder = Gtk.MenuItem(('Open Yandex.Disk Folder')) 729: openweb = Gtk.MenuItem(('Open Yandex.Disk on the web')) 733: self.preferences = Gtk.MenuItem(_('Preferences')) 736: openhelp = Gtk.MenuItem(('Help')) 738: help1 = Gtk.MenuItem(('Yandex.Disk daemon')) 741: help2 = Gtk.MenuItem(('Yandex.Disk Indicator')) 747: self.about = Gtk.MenuItem(('About')); self.about.connect("activate", self.openAbout) 750: close = Gtk.MenuItem(('Quit'))

/usr/bin/yandex-disk-indicator:694: DeprecationWarning: AppIndicator3.Indicator.set_icon is deprecated self.ind.set_icon(self.icon[status])

ArchLinux 5.0.1-arch1-1-ARCH, LXQt. App version 1.10.6, Python 3.7.2. Arch is rolling release distro that means that PyGObject and AppIndiactor are latest versions.

slytomcat commented 5 years ago

Thaks for report.

It seems not a big issue:

I'll fix it soon.

slytomcat commented 5 years ago

... or You can do it yourself - any push requests are appreciated!

MikePooh commented 5 years ago

=) you meant pull requests. I will do this!

This warnings were detected when workaround about absence of indicator icon in system tray. It shows the standard system icon in the tray and doesn't changes after calling: self.ind.set_icon(self.icon[status]) in updateIcon(self, status) function. I was trying to change self.ind.set_icon(self.icon[status]) to self.ind.set_icon_full(self.icon[status], "") but no success. May be missing some packages, but no other warnings...

slytomcat commented 5 years ago

Have you fixed the issue with absence of indicator icon in system tray? What was a problem?

MikePooh commented 5 years ago

Проблему решить не удалось. Вместо летающей тарелки показывается шестеренка. Индикатор не меняется в зависимости от состояния. Всегда показывается шестерёнка. После установки почему-то не было файлов иконок в папке .config/yd-tools.. Но даже после ручного их туда добавления проблема не решилась. Немного подебажил, все пути правильные. Функция self.ind.set_icon(self.icon[status]) не меняет индикатор. Хотя она вызывается и ей передается правильный путь к существующим файлам. Может пакетов каких-то не хватает и поэтому AppIndicator3 не правильно интерпретируется системой?

Problem is not solved. There is a gear instead of UFO. Indicator is not changing depends on condition. Gear is always shown. There was no icons in .config/yd-tools.. folder after installation. But problem doesn't solve even after manual copy. Debug revealed that all paths are correct. self.ind.set_icon(self.icon[status]) function doesn't change the indicator however it passed the correct paths to existed files. Maybe I am missing some packages and that's caused AppIndicator3 wrongly interpreted by the system?

slytomcat commented 5 years ago

В папке ~/.config/yd-tools/icons/ после установки иконок и не должно быть. Стандартные ставятся в /usr/share/yd-tools/icons/, а в ~/.config/yd-tools/icons/ можно сохранить свои, кастомизированные.

По идее почти все картинки в GTK (по крайней мере иконки) рисуются через PixBuffer, и уже он должен отрисовывать или ругаться если ему не найти чем отрисовывать. Но в деталях что там может не хватать я не копался. В моих экспериментах шестренки выскакивали только при несуществующих путях отданных в set_icon или неподдерживаемых форматов изображений (я пробовал анимированный GIF туда подсунуть).

slytomcat commented 5 years ago

Штатные либы для прорисовки через PixBuff лежат всей кучей (практически для всех видов изображений) в пакете libgdk-pixbuf, который должен быть прописан (каскадно) в зависимостях GTK.

slytomcat commented 5 years ago

Это закрою. Все Deprecated методы убрал.