![](https://habrastorage.org/storage2/292/cbd/8e7/292cbd8e78fd537e2b7f1e22d0fec20d.png)
После
новости про украденную базу паролей на LinkedIn, задумался о безопасности своих паролей.
Стал искать менеджер паролей под Ubuntu 12.04, остановился на KeePassX. Он меня полностью устроил, если бы не одна мелочь: в Ubuntu 12.04 я пользуюсь Gnome Classic, и Indicator Applet Complete для часов/systray. А этот апплет рисует меню по нажатию на иконку программы
левой клавишей мышки, а при нажатии на правую — рисует свои меню. И если свернуть KeePassX в трэй, то восстановить его оттуда нельзя никак.
Пытался решить проблему несколькими путями: попробовал написать на форуме, нашел такой же баг, висящий аж с 2011 года, но, похоже, автор все силы бросил на KeePassX 2, и первую версию забросил.
Ну что же, тварь я дрожащая, или
право имею программист? Я решил исправить проблему самостоятельно, а именно, путем добавления нового пункта в Systray меню, то есть чтобы можно было показать главное окно из меню systray.
Предупреждаю сразу, многим статья не будет интересна, это мой первый опыт с Qt, да и на C/C++ последний раз писал году в 1999, и помню лишь базовые вещи. Статью решил написать, т.к. это мой первый успешный опыт изменения OpenSource программ на Qt, может, кому-то это пригодится.
UPD Оказалось, я изобрел велосипед. Всему виной пакет sni-qt, который переделывает QSystemTrayIcon в StatusNotifierItems. После удаления пакета иконка встала в другой трэй, где клик работает как надо. Спасибо
inkvizitor68sl за комментарий.
Если все еще интересно, добро пожаловать под кат.