EmerCoin - правка GUI клиента

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 30 мар 2023, 19:46

Olej писал(а):
30 мар 2023, 19:20
Собранное нами приложение:
Но "полномерный" GUI запуск приложения заканчивается так:
Снимок экрана от 2023-03-30 19-13-26.png
Снимок экрана от 2023-03-30 19-13-26.png (8.82 КБ) 367 просмотров
И это уже вопрос к разработчикам блокчейной части.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 31 мар 2023, 12:00

Olej писал(а):
30 мар 2023, 19:46
И это уже вопрос к разработчикам блокчейной части.
Борьба с новой сборкой EmerCoin (так чтобы не повредить безвозвратно старую работающую версию, на которой сейчас работает OpenNIC DNS), которая продолжалась непрерывно 6 часов :-( , приводит к следующим итогам (без всяких промежуточных выкладок) - конспект себе на память:

1. приложения emercoin-qt (независимо от версии) после запуска само правит свой конфиг-файл ~/.config/Emercoin/Emercoin-Qt.conf
Olej писал(а):
30 мар 2023, 19:20
~/.config/Emercoin/Emercoin-Qt.conf не допускает комментариев, ни # ни ;
2. конфиг-файл ~/.config/Emercoin/Emercoin-Qt.conf, в принципе, допускает комментарий (недействительность) строк, ... но он правит "# " как "%23%20" (23 это действительно код '#' а 20 - ' '), эти строки не учитываются и не вредят, но переносятся в первые строки файла (что тоже неприятно)...
Olej писал(а):
30 мар 2023, 18:30
2. Меням значение в строке в ~/.config/Emercoin/Emercoin-Qt.conf на новое значение.
3. исходя из п.1, идея править конфиг-файл - плохая идея, и лучше работать с сылками.
Olej писал(а):
30 мар 2023, 19:46
приложения заканчивается так
4. аварийное завершение происходит из-за того, что приложение emercoin-qt (0.7.11), правя конфиг-файл ~/.config/Emercoin/Emercoin-Qt.conf, может вписать туда строку:

Код: Выделить всё

bPrune=true
Это нужно удалить (или закомментировать #...) и тогда приложение версии 0.8.0 запустится.
Снимок экрана от 2023-03-31 02-13-51.png
Снимок экрана от 2023-03-31 02-13-51.png (25.12 КБ) 363 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 31 мар 2023, 12:20

Olej писал(а):
31 мар 2023, 12:00
конспект себе на память
Olej писал(а):
31 мар 2023, 12:00
приложение версии 0.8.0 запустится
5. нельзя просто копировать полный каталог кошелька предыдущей версии:

Код: Выделить всё

olej@R420:~/.config/Emercoin$ time cp -R $HOME/sdc3/emercoin2/ $HOME/sdc3/emercoin.0.8/

real    0m9,353s
user    0m0,025s
sys     0m2,452s
В расчёте скопировать загруженные базы данных и индексы из биткоина по сети :!:
При этом, из-за несоответствия форматов (версий) чего-то из используемых инструментов (библиотек) создаётся новый кошелёк с новым идентификатором и полностью пустой. Это не то что нам надо :!:

6. нужно создать новый пустой каталог кошелька, и откопировать туда только 2 файла:

Код: Выделить всё

olej@R420:~/sdc3$ ls -l emercoin.0.8
итого 372
-rw-rw-r-- 1 olej olej     40 фев 27 12:23 emercoin.conf
-rw------- 1 olej olej 376832 мар 31 01:01 wallet.dat
Все данные существующего кошелька (сам кошелёк) - в файле wallet.dat :!: (поэтому его нужно тщательно бэкапить - по нему всегда можно восстановить!)
И тогда оно стартует нормально:

Код: Выделить всё

olej@R420:~/2023/EmerCoin/emercoin/src/qt$ ./emercoin-qt
libpng warning: iCCP: known incorrect sRGB profile
...
Сразу после старта оно само создаст всю структуру требуемых остальных файлов:

Код: Выделить всё

olej@R420:~/sdc3$ ls -l emercoin.0.8
итого 41792
-rw------- 1 olej olej       37 мар 31 01:15 banlist.dat
drwx------ 3 olej olej     4096 мар 31 01:16 blocks
drwx------ 2 olej olej     4096 мар 31 01:15 chainstate
drwx------ 2 olej olej     4096 мар 31 01:15 database
-rw------- 1 olej olej        0 мар 31 01:15 db.log
-rw------- 1 olej olej 41982966 мар 31 01:32 debug.log
-rw-rw-r-- 1 olej olej       40 фев 27 12:23 emercoin.conf
-rw------- 1 olej olej        6 мар 31 01:15 emercoin.pid
drwx------ 4 olej olej     4096 мар 31 01:15 indexes
-rw------- 1 olej olej    26008 мар 31 01:30 peers.dat
-rw------- 1 olej olej   749568 мар 31 01:15 wallet.dat

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 31 мар 2023, 12:26

Olej писал(а):
31 мар 2023, 12:20
И тогда оно стартует нормально:
7. Но старт начинается с пустых баз данных, и с закачки из сети содержимого всего биткоина:

Код: Выделить всё

olej@R420:~/.config/Emercoin$ date
Пт 31 мар 2023 01:16:05 EEST
...

Код: Выделить всё

olej@R420:~/sdc3$ date
Пт 31 мар 2023 01:33:43 EEST

olej@R420:~/sdc3$ du -hs emercoin.0.8
196M    emercoin.0.8
Завершение синхронизации:

Код: Выделить всё

olej@R420:~/sdc3$ du -hs emercoin.0.8
993M    emercoin.0.8

olej@R420:~/sdc3$ date
Пт 31 мар 2023 02:25:47 EEST
До завершения синхронизации прошло больше часа.
И это не зависит от скорости вашего Интернет канала :!: :-(
Это уже всё тот же существующий кошелёк в новой версии 0.8.0
Вложения
Снимок экрана от 2023-03-31 02-22-26.png
Снимок экрана от 2023-03-31 02-22-26.png (63.58 КБ) 363 просмотра
Снимок экрана от 2023-03-31 02-21-20.png
Снимок экрана от 2023-03-31 02-21-20.png (73.8 КБ) 363 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 31 мар 2023, 12:48

Olej писал(а):
31 мар 2023, 12:26
Это уже всё тот же существующий кошелёк в новой версии 0.8.0
И вот теперь только выходим на задачу правки UI форм Qt:
- это форма в 0.7.11
send.7.1.png
send.7.1.png (43.88 КБ) 360 просмотров
- а это её эквивалент в 0.8.0
send.8.1.png
send.8.1.png (43.69 КБ) 360 просмотров
Видно как оно "сползло". :cry:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 01 апр 2023, 16:08

Olej писал(а):
30 мар 2023, 18:30
Дальше мне видится 2 способа (пока только 2, может ещё изобрету способ) использовать "дублирующий" каталог для девелоперской версии, с возможностью быстрого возврата к исходному каталогу для нормальной работы stable версии.
Olej писал(а):
30 мар 2023, 18:30
2. Меням значение в строке в ~/.config/Emercoin/Emercoin-Qt.conf на новое значение.
Olej писал(а):
30 мар 2023, 18:30
Именно из-за необходимости проверять, я попытаюсь использовать 2-й способ.
Проверка показала, что:
- из-за несовместимостей форматов данных версий 0.7 и 0.8 + опасности (потери критических данных) запуска клиента не со "своей" версией + необходимостью запусков (поочерёдно) версий как стабле 0.7, так и девелоперской 0.8 (работа предполагает сравнение) - возвращаюсь к версии с ссылками :!:
- сам конфигурационный файл теперь для запусков общий для 2-х случаев, с возвратом имени каталога данных к дефаултному значению (вообще говоря, имя может быть произвольным), критически важная строка теперь неизменная и выглядит так:

Код: Выделить всё

olej@R420:~/.config/Emercoin$ grep strDataDir ~/.config/Emercoin/Emercoin-Qt.conf
strDataDir=/home/olej/.emercoin
- но .emercoin теперь будет софт ссылкой (на другую файловую систему), другой диск :!:
- для соответствия версии Qt клиента версии его данных (чтобы не держать в голове и не вспоминать каждый раз - один неверный запуск может разрушить экземпляр данных) - делаю скрипт-файл для запуска каждой версии...
- для версии 0.7:

Код: Выделить всё

olej@R420:~/2023/EmerCoin$ cat start.0.7
LINK=~/.emercoin
rm -f --one-file-system $LINK
ln -s /mnt/sdc3/emercoin.0.7 $LINK
./emercoin-v0.7.11emc-shared/emercoin-qt
rm -f --one-file-system $LINK
- для версии 0.8:

Код: Выделить всё

olej@R420:~/2023/EmerCoin$ cat start.0.8
LINK=~/.emercoin
rm -f --one-file-system $LINK
ln -s /mnt/sdc3/emercoin.0.8  $LINK
./emercoin/src/qt/emercoin-qt
rm -f --one-file-system $LINK
- каждый из скриптов устанавливает ссылку ~/.emercoin на свой каталог данных + запускает соответствующую версию Qt-клиента ... + по завершении уничтожает созданную ним ссылку ~/.emercoin - чтобы с ней не запустить вручную неадекватную версию.

Структура (диска) данных теперь такая:

Код: Выделить всё

olej@R420:~/sdc3$ mount | grep sdc3
/dev/sdc3 on /mnt/sdc3 type ext4 (rw,nosuid,nodev,noexec,relatime,user)

Код: Выделить всё

olej@R420:~/sdc3$ pwd
/home/olej/sdc3
olej@R420:~/sdc3$ ls -ld emercoin.0.*
drwxrwxr-x 7 olej olej 4096 апр  1 15:40 emercoin.0.7
drwxrwxr-x 5 olej olej 4096 апр  1 15:33 emercoin.0.8

Код: Выделить всё

olej@R420:~/sdc3$ du -hs emercoin.0.*
1,1G	emercoin.0.7
1016M	emercoin.0.8

Код: Выделить всё

olej@R420:~/sdc3$ ls -ld ~/sdc3/emercoin.0.*
drwxrwxr-x 7 olej olej 4096 апр  1 15:40 /home/olej/sdc3/emercoin.0.7
drwxrwxr-x 5 olej olej 4096 апр  1 15:33 /home/olej/sdc3/emercoin.0.8

Код: Выделить всё

olej@R420:~/sdc3$ ls -ld /mnt/sdc3/emercoin.0.*
drwxrwxr-x 7 olej olej 4096 апр  1 15:40 /mnt/sdc3/emercoin.0.7
drwxrwxr-x 5 olej olej 4096 апр  1 15:33 /mnt/sdc3/emercoin.0.8
P.S. Каталог версии 0.7, фигурировавший в предыдущем рассмотрении с именем emercoin2, переименован в emercoin.0.7 ... делалось это с большой тщательностью, сначала через ссылку с именем emercoin.0.7 ... но всё с переименованием происходит нормально.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 01 апр 2023, 16:47

Olej писал(а):
31 мар 2023, 12:48
вот теперь только выходим на задачу правки UI форм Qt:
Вот только теперь можно переходить к сверке и правке в QtCreator форм.
Вот все они формы, в клонированном GIT каталоге, используемые приложением в Qt:

Код: Выделить всё

olej@R420:~/2023/EmerCoin/emercoin$ ls src/qt/forms/*.ui
src/qt/forms/addressbookpage.ui      src/qt/forms/editaddressdialog.ui  src/qt/forms/openuridialog.ui         src/qt/forms/sendcoinsdialog.ui
src/qt/forms/askpassphrasedialog.ui  src/qt/forms/helpmessagedialog.ui  src/qt/forms/optionsdialog.ui         src/qt/forms/sendcoinsentry.ui
src/qt/forms/coincontroldialog.ui    src/qt/forms/intro.ui              src/qt/forms/overviewpage.ui          src/qt/forms/signverifymessagedialog.ui
src/qt/forms/createwalletdialog.ui   src/qt/forms/managenamespage.ui    src/qt/forms/receivecoinsdialog.ui    src/qt/forms/transactiondescdialog.ui
src/qt/forms/debugwindow.ui          src/qt/forms/modaloverlay.ui       src/qt/forms/receiverequestdialog.ui
Изображение

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

Код: Выделить всё

olej@R420:~/2023/EmerCoin/emercoin$ ls -l src/qt/forms/sendcoinsentry.ui
-rw-rw-r-- 1 olej olej 42771 мар 29 15:36 src/qt/forms/sendcoinsentry.ui

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 02 апр 2023, 13:59

Olej писал(а):
01 апр 2023, 16:47
вот файл той самой злополучной формы
И он же в QtCreator :
Вложения
Снимок экрана от 2023-04-02 13-58-49.png
Снимок экрана от 2023-04-02 13-58-49.png (115.15 КБ) 344 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 02 апр 2023, 23:15

Olej писал(а):
02 апр 2023, 13:59
И он же в QtCreator
Для того, чтобы make пересобирал приложение при изменении .ui файлов форм, по зависимостям, пришлось переконфигурировать сборку (убрать опцию --disable-dependency-tracking):

Код: Выделить всё

olej@R420:~/2023/EmerCoin/emercoin$ ./configure --disable-tests --disable-util-tx --disable-gui-tests --enable-bip70 --disable-hardening --disable-debug
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
...
После этого при изменениях src/qt/forms/sendcoinsentry.ui приложение действительно пересобирается и меняет внешний вид. Сборка:

Код: Выделить всё

olej@R420:~/2023/EmerCoin/emercoin$ make -j
Making all in src
make[1]: вход в каталог «/home/olej/2023/EmerCoin/emercoin/src»
make[2]: вход в каталог «/home/olej/2023/EmerCoin/emercoin/src»
make[3]: вход в каталог «/home/olej/2023/EmerCoin/emercoin»
make[3]: выход из каталога «/home/olej/2023/EmerCoin/emercoin»
  GEN      qt/forms/ui_sendcoinsentry.h
  GEN      qt/bitcoinamountfield.moc
  GEN      qt/overviewpage.moc
  GEN      qt/intro.moc
  GEN      qt/rpcconsole.moc
  GEN      qt/qrc_bitcoin.cpp
  CXX      qt/libbitcoinqt_a-bitcoinamountfield.o
  CXX      qt/libbitcoinqt_a-intro.o
  CXX      qt/libbitcoinqt_a-rpcconsole.o
  CXX      qt/libbitcoinqt_a-overviewpage.o
  CXX      qt/libbitcoinqt_a-sendcoinsentry.o
  CXX      qt/libbitcoinqt_a-qrc_bitcoin.o
qt/sendcoinsentry.cpp: In member function ‘void SendCoinsEntry::on_requestPaymentButton_clicked()’:
qt/sendcoinsentry.cpp:421:61: warning: ‘QVariant qVariantFromValue(const T&) [with T = void*]’ is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
  421 |         ui->exchComboBox->addItem(qsEntry, qVariantFromValue((void *) p.second.first));
      |                                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant:1,
                 from ./qt/forms/ui_sendcoinsentry.h:12,
                 from qt/sendcoinsentry.cpp:10:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:530:17: note: declared here
  530 | inline QVariant qVariantFromValue(const T &t)
      |                 ^~~~~~~~~~~~~~~~~
  AR       qt/libbitcoinqt.a
  CXXLD    qt/emercoin-qt
make[2]: выход из каталога «/home/olej/2023/EmerCoin/emercoin/src»
make[1]: выход из каталога «/home/olej/2023/EmerCoin/emercoin/src»
Making all in doc/man
make[1]: вход в каталог «/home/olej/2023/EmerCoin/emercoin/doc/man»
make[1]: Цель «all» не требует выполнения команд.
make[1]: выход из каталога «/home/olej/2023/EmerCoin/emercoin/doc/man»
make[1]: вход в каталог «/home/olej/2023/EmerCoin/emercoin»
make[1]: Цель «all-am» не требует выполнения команд.
make[1]: выход из каталога «/home/olej/2023/EmerCoin/emercoin»

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

EmerCoin - правка GUI клиента

Непрочитанное сообщение Olej » 02 апр 2023, 23:18

Olej писал(а):
02 апр 2023, 13:59
в QtCreator
После достаточно долгих и нудных визуальных правок ("это не моё" :-( ) формы в "Дизайн" QtCreator, она (форма) приняла такой вид:
Снимок экрана от 2023-04-02 23-10-16.png
Снимок экрана от 2023-04-02 23-10-16.png (75.83 КБ) 341 просмотр
Запуск:

Код: Выделить всё

olej@R420:~/2023/EmerCoin$ ./start.0.8
запуск клиента ./emercoin/src/qt/emercoin-qt
libpng warning: iCCP: known incorrect sRGB profile
...
И вот оно:
send.8.4.png
send.8.4.png (43.83 КБ) 341 просмотр

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей