1

Тема: MyTetra v.1.30. Обсуждение, вопросы.

Эта ветка создана для вопросов по программе MyTetra v.1.30.

2

Re: MyTetra v.1.30. Обсуждение, вопросы.

спасибо за новую версию.
Пожелание - уберите console для win-сборки, она совсем там лишняя

3

Re: MyTetra v.1.30. Обсуждение, вопросы.

На маке все те же на манеже, бандл нормально собирается только в Qt 4.6.4, по 4.7 - нету иконок sad хотя работает и так и так. Попробуем на выходных по свободе попилить

4

Re: MyTetra v.1.30. Обсуждение, вопросы.

Underwest пишет:

спасибо за новую версию.
Пожелание - уберите console для win-сборки, она совсем там лишняя

Без этой опции не работают отладочные сообщения, если поставить галку "Выводить отладочные сообщения в консоль".

5

Re: MyTetra v.1.30. Обсуждение, вопросы.

Underwest пишет:

На маке все те же на манеже, бандл нормально собирается только в Qt 4.6.4, по 4.7 - нету иконок sad хотя работает и так и так. Попробуем на выходных по свободе попилить

Хм, это странно, что сборка под 4.6.4 показывает иконки, а сборка под 4.7.x - нет. Тут видимо сказывается какая-то особенность Qt 4.7 под Mac, сборка в виндовой Qt 4.7 иконки показывает.

6

Re: MyTetra v.1.30. Обсуждение, вопросы.

Поздравляю с релизом и огромное спасибо за вашу работу!

7 (изменено: Shura, 12.07.2011 14:05:32)

Re: MyTetra v.1.30. Обсуждение, вопросы.

Не собирается:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -Ibuild -o build/Password.o src/crypt/Password.cpp
src/crypt/Password.cpp: In member function ‘void Password::smartSaveMiddleHash(QString)’:
src/crypt/Password.cpp:261:86: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:261:86: error:   for a function-style cast, remove the redundant ‘::QString’
src/crypt/Password.cpp: In member function ‘void Password::saveMiddleHashCheckData(QByteArray)’:
src/crypt/Password.cpp:290:89: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:290:89: error:   for a function-style cast, remove the redundant ‘::QString’
src/crypt/Password.cpp: In member function ‘void Password::saveCheckPasswordKey(QString)’:
src/crypt/Password.cpp:327:78: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:327:78: error:   for a function-style cast, remove the redundant ‘::QString’
src/crypt/Password.cpp:328:78: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:328:78: error:   for a function-style cast, remove the redundant ‘::QString’
make: *** [build/Password.o] Ошибка 1
$ qmake -v
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib

Заменил в приведенных строках
QString::QString() на QString() и всё скомпилилось.

8

Re: MyTetra v.1.30. Обсуждение, вопросы.

версия системы: FreeBSD 8.2
Версия qt: QMake version 2.01a Using Qt version 4.7.3 in /usr/local/lib/qt4
Сборка вываливается с ошибкой:
g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4/QtGui -I/usr/local/include/qt4/QtXml -I/usr/local/include/qt4/QtSvg -I/usr/local/include/qt4 -Ibuild -I/usr/local/include -o build/PrintPreview.o src/PrintPreview.cpp
g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4/QtGui -I/usr/local/include/qt4/QtXml -I/usr/local/include/qt4/QtSvg -I/usr/local/include/qt4 -Ibuild -I/usr/local/include -o build/main.o src/main.cpp
In file included from src/main.cpp:1:
/usr/include/sys/timeb.h:43: error: 'time_t' does not name a type
src/main.cpp: In function 'int get_milli_count()':
src/main.cpp:514: error: 'struct timeb' has no member named 'time'
*** Error code 1

Stop in /home/alex/src/mytetra_1_30_src.
Собралось и заработало после следующих правок:
1. для файла main.cpp
--- src/main.cpp        2011-07-12 15:36:50.000000000 +0400
+++ src/main_new.cpp    2011-07-12 15:15:26.000000000 +0400
@@ -1,3 +1,4 @@
+#include <sys/types.h>
#include <sys/timeb.h>

#include <QTranslator>
2. для Makefile, который сгенерирован qmake:
--- Makefile    2011-07-12 15:36:28.000000000 +0400
+++ Makefile_new        2011-07-12 15:29:35.000000000 +0400
@@ -16,7 +16,7 @@
INCPATH       = -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4/QtGui -I/usr/local/include/qt4/QtXml -I/usr/local/include/qt4/QtSvg -I/usr/local/include/qt4 -Ibuild -I/usr/local/include
LINK          = g++
LFLAGS        = -L/usr/lib/qt4/lib -Wl,-O1 -pthread -Wl,-rpath,/usr/local/lib/qt4
-LIBS          = $(SUBLIBS)  -L/usr/local/lib -L/usr/local/lib/qt4 -lQtSvg -L/usr/local/lib/qt4 -L/usr/local/lib -lQtXml -lQtGui  -lQtNetwork -lQtCore
+LIBS          = $(SUBLIBS)  -L/usr/local/lib -L/usr/local/lib/qt4 -lQtSvg -L/usr/local/lib/qt4 -L/usr/local/lib -lQtXml -lQtGui  -lQtNetwork -lQtCore -lcompat
AR            = ar cqs
RANLIB        =
QMAKE         = /usr/local/bin/qmake-qt4

Спасибо за программу.

9

Re: MyTetra v.1.30. Обсуждение, вопросы.

Shura пишет:

Не собирается:

src/crypt/Password.cpp: In member function ‘void Password::smartSaveMiddleHash(QString)’:
src/crypt/Password.cpp:261:86: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:261:86: error:   for a function-style cast, remove the redundant ‘::QString’
make: *** [build/Password.o] Ошибка 1
$ qmake -v
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib

Заменил в приведенных строках
QString::QString() на QString() и всё скомпилилось.

В какой операционке компилируете? Ошибка странная, такое впечатление, что в вашем Qt 4.7.2 изменённая реализация QString.

В Qt 4.7.4 под Windows у меня компилируется без ошибок.

10

Re: MyTetra v.1.30. Обсуждение, вопросы.

shiz пишет:

версия системы: FreeBSD 8.2
Версия qt: QMake version 2.01a Using Qt version 4.7.3 in /usr/local/lib/qt4

Собралось и заработало после следующих правок:
1. для файла main.cpp
--- src/main.cpp        2011-07-12 15:36:50.000000000 +0400
+++ src/main_new.cpp    2011-07-12 15:15:26.000000000 +0400
@@ -1,3 +1,4 @@
+#include <sys/types.h>
#include <sys/timeb.h>

Так, понятно, добавили #include <sys/types.h> в main.cpp


shiz пишет:

2. для Makefile, который сгенерирован qmake:
--- Makefile    2011-07-12 15:36:28.000000000 +0400
+++ Makefile_new        2011-07-12 15:29:35.000000000 +0400
@@ -16,7 +16,7 @@
INCPATH       = -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4/QtGui -I/usr/local/include/qt4/QtXml -I/usr/local/include/qt4/QtSvg -I/usr/local/include/qt4 -Ibuild -I/usr/local/include

А тут непонятно. Делать изменения в Makefile смысла нет, он всеравно перезапишется после команды qmake. На что были направлены изменения? Их можно сделать в исходниках или в файле проекта mytetra.pro?

11

Re: MyTetra v.1.30. Обсуждение, вопросы.

Underwest пишет:

На маке бандл нормально собирается только в Qt 4.6.4, по 4.7 - нету иконок

Ну как получится, высылай, общественность ждет а я буду благодарен. Если не получится с 4.7, собирай с 4.6.4. Мне, как пользователю было бы всеравно, с каким Qt собран бандл. Лишь бы инсталлилось и работало.

12

Re: MyTetra v.1.30. Обсуждение, вопросы.

я просто не знаком с синтаксисом файлов, которые использует qmake и не в курсе как добавить соответсвующие ключи для линковки. без -lcompat программа не линкуется. вот поэтому я и стал править Makefile, после того как он сгенерирован qmake. без правки Makefile получается вот это:

g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4/QtGui -I/usr/local/include/qt4/QtXml -I/usr/local/include/qt4/QtSvg -I/usr/local/include/qt4 -Ibuild -I/usr/local/include -o build/qrc_mytetra.o qrc_mytetra.cpp
g++ -L/usr/lib/qt4/lib -Wl,-O1 -pthread -Wl,-rpath,/usr/local/lib/qt4 -o bin/mytetra build/SaveLoad.o  build/RecordTableScreen.o  build/EditRecord.o  build/InfoFieldEnter.o  build/MetaEditor.o  build/Editor.o  build/EditorConfig.o  build/EditorConfigDialog.o  build/EditorConfigFont.o  build/EditorConfigMisc.o  build/EditorFindDialog.o  build/MainWindow.o  build/PrintPreview.o  build/main.o  build/XmlTree.o  build/TreeModel.o  build/TreeItem.o  build/KnowTreeModel.o  build/RecordTableData.o  build/RecordTableModel.o  build/AppConfig.o  build/AddNewRecord.o  build/ClipboardRecords.o  build/TreeScreen.o  build/FindScreen.o  build/FindTableWidget.o  build/AppConfigDialog.o  build/ConfigDialog.o  build/ConfigPage.o  build/AppConfigPage_Main.o  build/AppConfigPage_Misc.o  build/AppConfigPage_Crypt.o  build/AppConfigPage_Synchro.o  build/AppConfigUpdater.o  build/TrashMonitoring.o  build/EditorContextMenu.o  build/EditorTextArea.o  build/IndentSlider.o  build/EditorSplitCellForm.o  build/EditorAbsTableCell.o  build/EditorAbsTable.o  build/EditorAddTableForm.o  build/EditorImageProperties.o  build/EditorMultiLineInputDialog.o  build/qtsingleapplication.o  build/qtlocalpeer.o  build/qtsinglecoreapplication.o  build/RecordListScreen.o  build/ClipboardBranch.o  build/GlobalParameters.o  build/DataBaseConfig.o  build/EnterPassword.o  build/ExecuteCommand.o  build/ConsoleEmulator.o  build/WaitClock.o  build/WalkHistory.o  build/Pbkdf2Qt.o  build/RC5Simple.o  build/Password.o  build/moc_RecordTableScreen.o  build/moc_EditRecord.o  build/moc_InfoFieldEnter.o  build/moc_MetaEditor.o  build/moc_Editor.o  build/moc_EditorConfig.o  build/moc_EditorConfigDialog.o  build/moc_EditorConfigFont.o  build/moc_EditorConfigMisc.o  build/moc_EditorFindDialog.o  build/moc_MainWindow.o  build/moc_PrintPreview.o  build/moc_XmlTree.o  build/moc_TreeModel.o  build/moc_KnowTreeModel.o  build/moc_RecordTableData.o  build/moc_RecordTableModel.o  build/moc_AppConfig.o  build/moc_AddNewRecord.o  build/moc_ClipboardRecords.o  build/moc_TreeScreen.o  build/moc_FindScreen.o  build/moc_FindTableWidget.o  build/moc_AppConfigDialog.o  build/moc_ConfigDialog.o  build/moc_ConfigPage.o  build/moc_AppConfigPage_Main.o  build/moc_AppConfigPage_Misc.o  build/moc_AppConfigPage_Crypt.o  build/moc_AppConfigPage_Synchro.o  build/moc_AppConfigUpdater.o  build/moc_EditorContextMenu.o  build/moc_EditorTextArea.o  build/moc_IndentSlider.o  build/moc_EditorSplitCellForm.o  build/moc_EditorAddTableForm.o  build/moc_EditorImageProperties.o  build/moc_EditorMultiLineInputDialog.o  build/moc_qtsingleapplication.o  build/moc_qtlocalpeer.o  build/moc_qtsinglecoreapplication.o  build/moc_RecordListScreen.o  build/moc_ClipboardBranch.o  build/moc_GlobalParameters.o  build/moc_DataBaseConfig.o  build/moc_EnterPassword.o  build/moc_ExecuteCommand.o  build/moc_ConsoleEmulator.o  build/moc_WaitClock.o  build/moc_WalkHistory.o  build/moc_Password.o  build/qrc_mytetra.o    -L/usr/local/lib -L/usr/local/lib/qt4 -lQtSvg -L/usr/local/lib/qt4 -L/usr/local/lib -lQtXml -lQtGui  -lQtNetwork -lQtCore
build/main.o(.text+0x1fd): In function `get_milli_count()':
: undefined reference to `ftime'
*** Error code 1

Stop in /home/alex/src/mytetra_1_30_src.

13

Re: MyTetra v.1.30. Обсуждение, вопросы.

shiz пишет:

версия системы: FreeBSD 8.2

Уважаемый Шиз.

Если есть возможность, вышлите пожалуйста вашу бинарную сборку под FreeBSD, если таковая имеется. Или опубликуйте свой порт и пришлите ссылку. Спасибо.

14

Re: MyTetra v.1.30. Обсуждение, вопросы.

вышлю конечно, только скажите куда.

15

Re: MyTetra v.1.30. Обсуждение, вопросы.

shiz пишет:

я просто не знаком с синтаксисом файлов, которые использует qmake и не в курсе как добавить соответсвующие ключи для линковки. без -lcompat программа не линкуется. вот поэтому я и стал править Makefile

Попробуйте сделать так. Откройте mytetra.pro, найдите строку:

QMAKE_LFLAGS += -L/usr/lib/qt4/lib

После нее добавьте еще одну строку:

LIBS += -lcompat

Скажите, что получилось.

16

Re: MyTetra v.1.30. Обсуждение, вопросы.

shiz пишет:

вышлю конечно, только скажите куда.

Xintrea (уотшень слайа цобакко) gmail.com

17

Re: MyTetra v.1.30. Обсуждение, вопросы.

добавил

LIBS += -lcompat

как рекомендовали все собралось и заработало.

18

Re: MyTetra v.1.30. Обсуждение, вопросы.

xintrea пишет:
Underwest пишет:

спасибо за новую версию.
Пожелание - уберите console для win-сборки, она совсем там лишняя

Без этой опции не работают отладочные сообщения, если поставить галку "Выводить отладочные сообщения в консоль".

Для отладки оно то и нужно, но для повседневнего использования лишнее черное окно, которое нельзя закрыть совсем не нужно

19

Re: MyTetra v.1.30. Обсуждение, вопросы.

Underwest пишет:
xintrea пишет:
Underwest пишет:

спасибо за новую версию.
Пожелание - уберите console для win-сборки, она совсем там лишняя

Без этой опции не работают отладочные сообщения, если поставить галку "Выводить отладочные сообщения в консоль".

Для отладки оно то и нужно, но для повседневнего использования лишнее черное окно, которое нельзя закрыть совсем не нужно

А вы случайно не знаете, как сделать так, чтобы по ключу запускать программу либо с консолью, либо без?

20

Re: MyTetra v.1.30. Обсуждение, вопросы.

xintrea пишет:
Shura пишет:

Не собирается:

src/crypt/Password.cpp: In member function ‘void Password::smartSaveMiddleHash(QString)’:
src/crypt/Password.cpp:261:86: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:261:86: error:   for a function-style cast, remove the redundant ‘::QString’
make: *** [build/Password.o] Ошибка 1
$ qmake -v
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib

Заменил в приведенных строках
QString::QString() на QString() и всё скомпилилось.

В какой операционке компилируете? Ошибка странная, такое впечатление, что в вашем Qt 4.7.2 изменённая реализация QString.

В Qt 4.7.4 под Windows у меня компилируется без ошибок.

Это происходит при использовании GCC 4.5 и выше.
Помогает добавление к CXXFLAGS опции -fpermissive для смягчения проверки.
Но вообще это ошибка в коде.

21

Re: MyTetra v.1.30. Обсуждение, вопросы.

Lazy_Kent пишет:

Это происходит при использовании GCC 4.5 и выше.
Помогает добавление к CXXFLAGS опции -fpermissive для смягчения проверки.
Но вообще это ошибка в коде.

Елки палки, опять версии компилятора чудят. Я боюсь, что придет то время, когда массивы unsigned char и сишные строковые функции выпилят из стандарта. Вот тогда точно будет потеря 90% существущего софта.

А чем плохо лишний раз напрямую указать область видимости? Тем более что в куче примеров по Qt для возвращения пустой строки всегда пишут return QString::QString ();

22

Re: MyTetra v.1.30. Обсуждение, вопросы.

Underwest пишет:
xintrea пишет:
Underwest пишет:

спасибо за новую версию.
Пожелание - уберите console для win-сборки, она совсем там лишняя

Без этой опции не работают отладочные сообщения, если поставить галку "Выводить отладочные сообщения в консоль".

Для отладки оно то и нужно, но для повседневнего использования лишнее черное окно, которое нельзя закрыть совсем не нужно

Всё, придумал как быть. В виндовый архив положил два exe-шника. Один называется mytetra.exe, другой mytetra_debug.exe. У дебаговой версии появляется консоль. А запуск mytetra.exe теперь происходит без создания консольного окна, по-обычному.

Архив с виндовой версией на официальной странице заменен.

23

Re: MyTetra v.1.30. Обсуждение, вопросы.

xintrea пишет:
Shura пишет:

Не собирается:

src/crypt/Password.cpp: In member function ‘void Password::smartSaveMiddleHash(QString)’:
src/crypt/Password.cpp:261:86: error: cannot call constructor ‘QString::QString’ directly
src/crypt/Password.cpp:261:86: error:   for a function-style cast, remove the redundant ‘::QString’
make: *** [build/Password.o] Ошибка 1
$ qmake -v
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib

Заменил в приведенных строках
QString::QString() на QString() и всё скомпилилось.

В какой операционке компилируете? Ошибка странная, такое впечатление, что в вашем Qt 4.7.2 изменённая реализация QString.

В Qt 4.7.4 под Windows у меня компилируется без ошибок.

Убунту 11.04 x64

24

Re: MyTetra v.1.30. Обсуждение, вопросы.

Shura пишет:

Убунту 11.04 x64

О, кстати. Коль у вас 64-х битная система, проверьте, правильно ли у вас работает шифрование.

Создайте пробную ветку, в ней пробную запись. Зашифруйте эту ветку. Выйдите из MyTetra и снова войдите. Можете ли вы прочесть запись в зашифрованной ветке?

25 (изменено: Underwest, 13.07.2011 19:14:30)

Re: MyTetra v.1.30. Обсуждение, вопросы.

мак версия как раз собирается в 64 битах, и чет я не понял чего с шифрованием - создаю ветку, криптую, потом пытаюсь раскриптовать, предлагает убрать пароль, и в записях всякая глупость оказывается, когда просто по паролю открываю ничего нету, ту же заметку на вин машине 32-битная версия открыла