Собираем
информацию
по крупицам
Новости


Новости

MyTetra: я понял всю боль. (Любителям GTK, пользователям 64 бит посвящается)
14-12-2017
18:28:52

До недавнего времени я жил в своем уютненьком 32-битном мирке под Линуксом, вел там разработку PIM-менеджера MyTetra, и меня все устраивало. В конце концов, фреймверк Qt, на котором написана MyTetra - вполне себе кросс-платформенный. Тестированием, кроме как в KDE4 в 32-х битном Debian и в Windows 7 32/64 бит, я не занимался.

 

Но вот недавно я переехал на Debian 9 с архитектурой x86-64. Да, пакетов KDE4 в этом Дебиане уже нет. Майнтейнеры дистрибутива предлагают кушать KDE5. Поставил я эту пятую версию, и продержался на ней целых три дня. Теперь я точно знаю, что KDE скатился в сраное гуано. Версия 4 уже была малоюзабельным поделием, но я ее как-то докрутил, и даже сделал свою олд-стайловую тему Redmond-125, в общем, смог заставить себя пользоваться. Но пятая версия - это апофеоз глюков и странных дизайнерских решений. Кажется, что авторы KDE вообще забыли про то, что Desktop Enviroment - это повседневный инструмент, который должен четко и быстро работать, а не глючить и залипать на отрисовке. Вместо этого авторы KDE5 пилят какие-то свистоперделки, совершенно забив на базовую функциональность.

 

 

 

 

Помятуя, что один мой товарищ без ума от Linux Mint и MATE, я решил поставить эту MATE. И вроде бы все устраивало, но ровно до тех пор, пока я не запустил свою MyTetra. Пользоваться в GTK-окружении Qt-программой оказалось практически невозможным. Почему? А вот почему:

 

1. Разлезлась верстка элементов управления. Фирменные GTK-шные широченные отступы между кнопками превратили насыщенный интерфейс MyTetra в какую-то странную программу, у которой очень мало места непосредственно для текстовой информации. Не помогали даже кнопки сворачивания-разворачивания тулбаров - места для текста все равно осталось катастрофически мало. Большие вертикальные отступы в списках и дереве заставили меня раза в три больше крутить колесиком, чтобы добраться до нужного элемента. Это кошмар. Попытка подобрать GTK-тему ни к чему не привела: тем в MATE и GNOME дохренищща, но нет ни одной компактной. Точнее, попытки создать компактную тему есть, но они все недоделанные. То цвета сливаются, то границ не видно, то шрифты слипаются, и это все на обычных GTK-приложениях, о Qt я вообще не говорю.

 

2. В GTK-среде почему-то по-умолчанию активной кнопкой считается кнопка Cancel, а не ОК. В результате все мои моторные навыки не позволяли мне совершать основные действия с клавиатуры. Например, при создании записи можно нажать Ctrl+Enter, и запись будет записана. Записана она будет в Qt-based средах. А в GTK-based будет нажата отмена, и все что пользователь успел напечатать - улетучится. Мне говорили об этом пользователи, но я не мог толком понять при каких условиях это происходит. И вот, пожалуйста, - условием является запуск в GTK среде. В принципе, в исходниках исправляется это быстро, но сам факт...

 

3. По неизвестным мне причинам в MyTetra не отрисовываются надписи в центре области поиска. Специально для версии 1.42 я сделал несколько надписей, которые в зависимости от ситуации должны помогать пользоватлю понимать, как проходит поиск. В GTK эти надписи просто не отображаются. Это обычные QLabel, и что может глючить - ума не приложу.

 

Далее проблемы, обнаруженные в 64-битной сборке.

 

4. В области текста записи криво работают кнопки PgUp и PgDn. Вместо пролиствания одной высоты окна редактирования, происходит двойное пролистывание. Очень это дело неудобно: вместо того чтобы быстро подняться.опуститься к ближайшему тексту, "улетаешь" курсором далеко, и теряешься, ибо непонятно, где ты находишься.

 

5. Встроенный менеджер закачки, который используется для закачки картинок в текст и при прикреплении файлов из интернета, не качает данные с HTTPS-сайтов. Я сначала подумал, что виной тому просроченные сертификаты на сайтах, но нет: на 64-х битах используемые мной стандартные Network-объекты Qt тупят при работе с Secure-протоколом. На 32-х битах такой проблемы нет.

 

6. Запомненные координаты окна при каждом запуске съежжают на несколько пикселей. Тут надо разбираться, почему так. Видимо, это какое-то проявление новых оконных менеджеров, ведь раньше у меня такого не было ни в Linux, ни в Windows.

 

7. Ну, и как вишенка на торте, стандартный скрипт запуска MyTetra, не может запустить программу в 64-х битной среде. Проблема возникает в момент, когда запуск происходит не из каталога, где лежит скрипт запуска и бинарник. Например, при запуске с ярлыка. Пользователи мне об этом говорили, но я не мог поверить, что такая платформонезависимая вещь, как исполнение bash-скрипта, может отличаться для разных архитектур. Тем не менее, это так.

 

Отказаться от 64-х бит, в принципе, невозможно, да и ненужно. А вот от GTK я отказался с радостью, установив среду LxQt. Да, она немного глючноватая, да, в ней иногда пропадает рабочая панель в моменты, когда GTK-based софт пытается быстро переключить свои окна. Но по своей концепции это очень вменяемый проект, и я ему желаю всяческого дальнейшего развития.

 

 

 

 

А что же MyTetra? Ближайшая цель - это исправление косяков, которые вылезли в 64-х битах. Проблемы, возникающие в GTK-среде я тоже смогу скомпенсировать в Qt-коде, во всяком случае надеюсь на это. Плюс еще надо исправить несколько бажиков, которые проявились в версии 1.42.

 

Поэтому следующий выпуск MyTetra будет багфикс-релизом, это уже решено. Кроме того, новый релиз будет только под платформу x86-64, так как все последние версии Qt под Linux (и версия 5.9.x в том числе) давно уже выпускаются только в режиме 64-х бит.

 

Всем удачи, следите за новостями.

 



Интересное на сайте


C / C++ » LoLo Switcher - низкоуровневый переключатель клавиатуры для X11

Официальная страница / Official page(Rus)   LoLo Switcher - это низкоуровневый локальный переключатель клавиатуры для оконной системы X11. Он спо...


Мультиплатформенные игры » Ежик-попрыгунчик. Лесная тропа.

Игра про ёжика, который прыгает по подвижным платформам и собирает яблочки.   Эта игра писалась в рамках конкурса конференции разработчиков игр ...


Штучки-дрючки » Самодельный диафильм

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

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться этой страницей


Статистика


О, смотри-ка какое хорошее место. Дайте два!

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Fadk

База Adgaver (1, 2, 3, 4, 5, 6, 7, 8)

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик