LINUX.ORG.RU

gtk3, как починить диалог (открытия, сохранения) файлов?

 , ,


0

1

Вот окей, с дизайном Geany на gtk3 я разобрался... Плагины поставил, забил на клаво-управление. Но OpenFileDialog, SaveFileDialog... Во первых он открывается всегда в /home/username! А раньше запоминал предыдущую папку, еще он сверхбольшой на вес экран, и не понимает Enter, надо кнопку «Сохранить» жать. Как это пофиксить? Можно ли кстати как то подменить gtk3-открывалки на gtk2-открывалки? Вдруг они как отдельные программы сделаны. Я просто не понимаю как это узнать.

Можно конечно юзать file-tree но непривычно.

еще он сверхбольшой на вес экран

А зачем нужны неполноэкранные активити? Ты виндузятная домохозяйка, что ли, чтобы имитировать бурную деятельность перетаскиванием неполноэкранных окошечек? Это ж хорошо, больше информации влезает, всё равно окно модальное и к вызвавшему приложению доступ перекрывает.

и не понимает Enter

УМВР, ЧЯДНТ?

Вдруг они как отдельные программы сделаны

Нет, это вызовы функций, работающих с GtkFileChooser. Но по идее, можешь preload-костылик намутить типа всяких freshplayer и nocsd, чтобы он перехватывал обращения к функциям из GTK+3 и заменял их вызовами GTK+2.

Можно конечно юзать file-tree

А это вообще неюниксвейно, нашли моду — в каждую программу файловый менеджер запихивать. Даже файловые диалоги — это извращение, файл должен передаваться программе аргументами, например, из файлового менеджера, а она уже по аргументам определит, в новом инстансе его открывать или в текущем, как использовать и т. д.

bodqhrohro_promo ()
Ответ на: комментарий от bodqhrohro_promo

А зачем нужны неполноэкранные активити?

Загораживают дерево файлов, файловый менеджер.

в каждую программу файловый менеджер запихивать

Это в виде плагина, мне так удобнее.

А Enter, вот ввел я имя файла, и нажимаю Enter он не жмет сам сохранить.

linuhs_user ()
Последнее исправление: linuhs_user (всего исправлений: 1)

Вот окей, с дизайном Geany на gtk3 я разобрался...

?? Ну некоторые контролы выглядят слегка по-другому, но в общем дизайн Джини от версии ГТК не зависит.

он открывается всегда в /home/username!

?? У меня открывается в том каталоге, в котором был в последний раз если диалог завершился действием — сохранением или открытием файла. Если побродил по каталогам и закрыл окно, то да, последний каталог не запоминается.

еще он сверхбольшой на вес экран

У меня размер окна сохраняется с прошлого раза. Даже если выйти из Джини и запустить его снова, при сохранении файла размер диалога будет такой, как в прошлый раз. Уменьши его один раз и забудь об этом.

не понимает Enter, надо кнопку «Сохранить» жать

?? У меня понимает.

debugger ★★ ()
Ответ на: комментарий от bodqhrohro_promo

можешь preload-костылик намутить типа всяких freshplayer и nocsd, чтобы он перехватывал обращения к функциям из GTK+3 и заменял их вызовами GTK+2

не получится. в gtk имена символов не версионированы, а значит нельзя к одному и том же приложению подключить и gtk2 и gtk3

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от bodqhrohro_promo

да нет, переопределить функцию через LD_PRELOAD не проблема. проблема в том, что к твоей библиотеке-врапперу не поключишь gtk2 напрямую - функции из gtk2 переопределят функции из gtk3. тут предложили использовать dlopen - это вероятно может сработать. а может и нет. gtk же нужно инициализировать прежде чем начинать использовать. не удивлюсь если это может создать конфликты и покрашить приложение или вызвать глюки.

eternal_sorrow ★★★★★ ()