LINUX.ORG.RU

Обсуждение редактора контактов DoubleContact

 , , ,


7

6

Тема создана для обсуждения DoubleContact — кроссплатформенного редактора/менеджера контактов для ПК. Программа написана на языке C++ с применением фреймворка Qt (минимальная версия Qt — 4.8, рекомендуемая — 5.10 и выше) и распространяется по лицензии GPLv3+.

Автор также планирует помещать здесь анонсы минорных версий DoubleContact, не заслуживающих новостей на главной.

На данный момент актуальная версия программы имеет номер 0.2.4 и работает с локальными адресными книгами. К ветке 0.4 планируется добавление работы с телефонами (ADB и др.), к ветке 0.5 — работа с сетевыми протоколами.

Github

Русский сайт автора

Архив новостей и форумных тем на ЛОРе

★★★★★

Последнее исправление: hobbit (всего исправлений: 5)
Ответ на: комментарий от chukcha

когда исчерпаются ее ресурсы

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

ответ будет примерно такой

Да в развитых странах зумеры уже старшие поколения порицают за это. Пока не столько за исчерпание ресурсов, сколько за засорение планеты (оно последствиями чревато раньше). В то время как россияне пока пытаются отрицать экобесие, или даже делать из него перемогу: мол, в Сибири потеплеет, можно будет заселить. Но вот подрастёт поколение москвичей, которому придётся ипотеку за родителей выплачивать — то же самое начнётся.

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

Навскидку — в тех NBU, которые я грузил раньше, было encoding=quoted-printable, а в твоём 8BIT. С другой стороны, ветка, которая этот 8BIT обрабатывает, у меня в программе точно есть. Копну глубже…

hobbit ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Ура-ура, я добился того, что кракозябры превратились в «Костю». Выложу исправление чуть позже.

На Memo тоже посмотрю. Там что-то содержательное может быть?

hobbit ★★★★★
() автор топика
Ответ на: комментарий от tiinn

В общем, исправление, убирающее крокозябры, уже сейчас можно забрать из мастера и собрать из исходников, см. вчерашний коммит.

А Memo и Internal files в выложенном NBU таки есть, по потрохам файла вижу. Так что программу я ещё поправлю (файл с обменника можешь убирать).

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

Собрал из исходников, он ругается. Мол, не найден каталог lrelease-qt5. Если в doublecontact.pro убрать все ссылки на lrelease-qt5, проект компилируется, но нет файлов переводов. А .nbu нормально открывается, да.

tiinn ★★★★★
()
Последнее исправление: tiinn (всего исправлений: 1)
Ответ на: комментарий от anonymous

Надо было заменить lrelease-qt5 на lrelease.

Именно так.

По-хорошему, там надо написать какую-то конструкцию, которая выбирает установленный в системе вариант lrelease. Сначала я думал (понаблюдав за некоторыми старыми дистрибутивами), что если Qt — пятой ветки и ОС — линукс, то используется lrelease-qt5, в остальных случаях просто lrelease. Но потом выяснилось, что это не всегда так.

Прямо хоть кусок баша через system() туда включай…

hobbit ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Дело в том, что, как мне сказали, Qt из реп ставить вообще не надо. Надо с сайта качать.

По-моему, это вам какие-то очень нехорошие люди сказали. :) Нет, иногда бывают ситуации, когда действительно нужна какая-то конкретная версия Qt. Но это именно очень специфические ситуации, когда человек чётко понимает, что именно ему нужно. Во всех остальных случаях надо брать именно Qt из реп.

А у DoubleContact требования к версии Qt очень мягие (см. шапку темы). Вот с Qt6 могут быть проблемы из-за того, что они начали мутить с кодеками и ломать работающее.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

По-хорошему, там надо написать какую-то конструкцию, которая выбирает установленный в системе вариант lrelease.

Примерно так?

exists( $$dirname(QMAKE_QMAKE)/lrelease-qt4 ) {
      tr.commands = $$dirname(QMAKE_QMAKE)/lrelease-qt4  $$_PRO_FILE_
} else:exists( $$dirname(QMAKE_QMAKE)/lrelease-qt5 ) {
      tr.commands = $$dirname(QMAKE_QMAKE)/lrelease-qt5  $$_PRO_FILE_
} else {
      tr.commands = $$dirname(QMAKE_QMAKE)/lrelease  $$_PRO_FILE_
}
anonymous
()
Ответ на: комментарий от anonymous

Примерно да. Только в случае с qmake я когда-то сталкивался с тем, что какой-то из её вариантов в системе в виде исполняемого файла стоял, но оказывался скриптом-враппером к чему-то неработоспособному, и надо было брать другой. Сейчас уже и дистрибутив не факт, что вспомню, что-то специфическое.

Впрочем, надеюсь, что с lrelease такого маразма не будет. :)

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от tiinn

Если соберёшь версию с сегодняшними коммитами из мастера — теперь при открытии NBU доступен пункт «Вид» - «Файлы», эти файлы можно посмотреть и сохранить отдельно, как по одному, так и чохом. У тебя там, например, фотографии есть. Вытаскивание заметок и календаря сделаю позже.

Настройку под lrelease пока не сделал, но помню про это.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Не пробовал фотки вытащить?
У тебя там ещё заметки и элементы календаря есть, кстати, но там всё, разумеется, давно неактуально (но за образец файла спасибо, поддержку этих записей прикручу).

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

Нет, не пробовал. Мне актуальнее сами контакты. С ними всё стало хорошо, и я успокоился. Фотки я могу и по Bluetooth передать, их немного.

tiinn ★★★★★
()
Последнее исправление: tiinn (всего исправлений: 1)
11 мая 2022 г.
3 августа 2022 г.

Kubuntu 20.04, KDE Plasma 5.18.8 KDE Frameworks 5.68.0, Qt 5.12.8.

Не собирается. qt4-qmake нет. В Дебиан вот есть, а нам не завезли. Ладно, зато qt5-qmake есть, подумал я. Но нет. Тут уже у человека такое же было, что на lrelease-qt5 заругалось

Обсуждение редактора контактов DoubleContact (комментарий)

Собрал из исходников, он ругается. Мол, не найден каталог lrelease-qt5. Если в doublecontact.pro убрать все ссылки на lrelease-qt5, проект компилируется, но нет файлов переводов.

но у меня никак, ни с переводами, ни без.

Можно, пожалуйста, поподробнее, что и на каком этапе поправить? Нужно ли и можно ли в Ubuntu пакет qt4-qmake из-под Debian?

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

Просто lrelease (это не каталог, а команда только) без суффикса в системе есть?

Если да, то в качестве временного хака попробуй заменить в файле проекта все упоминания lrelease-qt5 на lrelease. А так это безобразие, конечно, и я планирую это поправить нормальным способом.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit
~$ lrelease
lrelease: could not exec '/usr/lib/qt5/bin/lrelease': No such file or directory

Однако, есть /usr/bin/lrelease и это ссылка на файл /usr/bin/qtchooser .

~$ qtchooser
Usage:
  qtchooser { -l | -list-versions | -print-env }
  qtchooser -install [-f] [-local] <name> <path-to-qmake>
  qtchooser -run-tool=<tool name> [-qt=<Qt version>] [program arguments]
  <executable name> [-qt=<Qt version>] [program arguments]

Environment variables accepted:
 QTCHOOSER_RUNTOOL  name of the tool to be run (same as the -run-tool argument)
 QT_SELECT          version of Qt to be run (same as the -qt argument)

в качестве временного хака попробуй заменить в файле проекта все упоминания lrelease-qt5 на lrelease

Я пробовал, если файл проекта - doublecontact.pro, а все упоминания - это всего один раз. Вот эту ошибку и выдает

lrelease: could not exec '/usr/lib/qt5/bin/lrelease': No such file or directory

Возможно, если со ссылкой что-то не так, lrelease-qt5 на qtchooser поменять попробовать?

UPD

Попробовал

qtchooser: unknown argument: /home/dementy/doublecontact/app/doublecontact.pro
make[1]: *** [Makefile.doublecontact:678: tr] Ошибка 1
make[1]: выход из каталога «/home/dementy/doublecontact/app»
make: *** [Makefile:48: sub-app-doublecontact-pro-make_first] Ошибка 2
Dementy ★★★
()
Последнее исправление: Dementy (всего исправлений: 1)
Ответ на: комментарий от hobbit

Короче, раз я такой баран, то я выкинул про переводы, начиная с TRANSLATIONS += \ и до самого QMAKE_EXTRA_TARGETS += tr. Так сделалось и запустилось. Пока и без локалей поиграться могу. Пока так пусть работает, трогать не буду. Очень хочется заценить просто. Тем более, условия боевые как раз случились.

ЗЫ. Там, это. Воры́ города встревожены. http://zvyozdochkin.ru/projects/doublecontact/ на https перекидывает, а сертификат вообще цирковой какой-то. Не знал бы, чей сайт - не полез бы.

ЗЗЫ. А вот сейчас вообще не пускает. Работы идут?

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

У меня по http:// (если его явно указать) заходит нормально. Но вообще, хостинг-провайдер грозился на этой неделе обновление проводить, может, это оно…

(Проверил в хроме на десктопе и на андроиде).

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
28 мая 2023 г.

После долгого перерыва я, наконец, закончил серьёзный рефакторинг исходников DoubleContact. Суть — чётко отделить в движке программы юникодные строки от неюникодных (раньше для последних также использовался QString, что приводило к двусмысленностям и в некоторых случаях могло вызывать ошибки экспорта-импорта, особенно для формата MPB и старых версий Qt). Сейчас я использую QString только для декодированных юникодных строк, кодированные перевёл на байтовые массивы.

Изменений много, и все они глубоко «под капотом». Я постарался тщательно проверить, что ничего не сломал, но мне нужна помощь. Поэтому всех, кто заинтересован в развитии программы и готов собрать её прямо из репы на гитхабе, прошу собрать и потестировать.

Для тех, кто не готов собирать из исходников, но готов «помучать» программу, я чуть позже (ориентировочно к концу следующей недели) сделаю статическую сборку.

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

прошу собрать и потестировать

Попробовал собрать с Qt 6, для начала нужно обновить quazip (в 1.0 добавили поддержку Qt 6).

С Qt 5 тоже не всё хорошо:

make[1]: lrelease-qt5: No such file or directory

У меня есть /usr/bin/lrelease -> qtchooser.

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

Про Qt6 скажу сразу, что и не соберётся, если только модуль совместимости добавлять, но это не наш метод. :) Её поддержку буду добавлять отдельно.

Про lrelease уже обсуждалось, буду патчить файл проекта. Сейчас интересно, как работает экспорт-импорт, нет ли кракозябр или пропавших данных.

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

Сейчас интересно, как работает экспорт-импорт, нет ли кракозябр или пропавших данных.

Скинул со смартфона контакты, импортнул, сохранил в другой файл, сравнил оба, есть различия:

  • удалились ;;;^M в конце строк, но это даже плюс
  • во втором файле вместо =20 просто пробел

Других замечаний нет. :)

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

Добавил группы, но их не видно при создании нового контакта - его сначала нужно сохранить, а уже потом отредактировать.

Да, подтверждаю. Похоже на баг.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
17 августа 2023 г.
20 декабря 2023 г.

В мастере появилась функция быстрого просмотра. По нажатию Ctrl+Q вместо противоположной панели (которая нужна не всегда) появляется панель со свойствами контакта, выбранного в основной панели. Интересующиеся и не боящиеся сборки из исходников приглашаются к тестированию.

Кроме этого, до выхода версии 0.3.0 я хочу сделать:

  • поиск дубликатов в одной адресной книге;
  • поддержку Qt6 (не в ущерб Qt5);
  • много чего по мелочи (в том числе затронутого в этой теме).
hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit
diff --git a/app/doublecontact.pro b/app/doublecontact.pro
index ce3ad24..458a3d8 100644
--- a/app/doublecontact.pro
+++ b/app/doublecontact.pro
@@ -108,7 +108,7 @@ macx {
 tr.commands = lrelease \
     $$_PRO_FILE_
 } else {
-tr.commands = lrelease-qt5 \
+tr.commands = lrelease \
     $$_PRO_FILE_
 }
 }

Поправил. :)

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

Других замечаний нет. :)

Есть!

  1. Хотелось бы, чтобы при двойном клике по группе, она переносилась из списка «Доступные группы» в «Контакт в группах». И наоборот.
  2. Выход по Ctrl-W не работает.
dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

Нет, это не «поправил», это «на одних системах починил, на других сломал». Поправил — это как анонимус выше предлагал. Буду пробовать его способ.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от dataman

По Ctrl+W работает закрытие текущей адресной книги. И в меню «Файл» этот хоткей есть. Да, если адресная книга пустая, эффекта не почувствуешь.

Про двойной клик понял, идея здравая, но наверное, тогда это надо сделать не только с группами, но и например, со столбцами в окне «Настройки». Попробую.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от dataman

«Переходить» не планирую, скорее всего, сделаю параллельную поддержку qmake и cmake. Первую попытку делал давно, результат мне не понравился. У проектов qmake более простой и лаконичный синтаксис, и файл .pro не превращается в кошмарный ужас, если я хочу поддерживать две мажорные версии qt, например.

hobbit ★★★★★
() автор топика