Stiff Posted July 29, 2009 Posted July 29, 2009 Изучаю связку c++ + qt, захотелось написать чёнидь полезное, решил остановиться на авторизаторе, т.к. сам юзаю линух, а консольный авторизатор неудобен. Интерфейс практически полностью скопирован с обычного inetaccess. Заголовочные файлы, отвечающие за сетевой обмен выдраны оттуда же. Проверено - собирается под винду (msvc 2008 express) и под линукс (gcc). Под линух сборка тривиальна (qmake && make) Под винду для мсвц собирается, если добавить строчку LIBS += WSock32.Lib в qinetaccess.pro, затем qmake и nmake. Под mingw собирать не пробовал. Макоси под рукой также нет. Что не сделано: 1. Синхронизация потоков, в результате чего приложение может ругаться в консоль. Когда-нибудь сделаю. Насколько я знаю, в виндовом inetaccess также ничего подобного не сделано, а работает ведь 2. Не сделан перевод (интерфейс на англицком) 3. Не сохраняется история сообщений 4. Мелкие недоработки, типа невозможности подключиться/отключиться через контекстное меню вобщем пробуем, собираем, отписываемся что получилось. Считайте, что это альфа-версия и нестабильна по определению. qinetaccess_0.1.tar.gz
madf Posted July 30, 2009 Posted July 30, 2009 Что-то я не нашел где там протоколу прописывается адрес и порт сервера. К стати, сам начинал делать в прошлом году - только библиотеку протокола так и не прикрутил
madf Posted July 30, 2009 Posted July 30, 2009 Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически. Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs); Это больше соответствует идеологии ООП и паттерну MVC.
Stiff Posted August 3, 2009 Author Posted August 3, 2009 Выкладываю след. версию: реализовал потокобезопасность, работают все настройки. Не сделано пока сохранение истории сообщений и перевод. Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs); Это больше соответствует идеологии ООП и паттерну MVC. То есть, вы советуете разбить программу на модуль (.so, .dll) и отдельно исполняемый бинарник? Логику model/view реализую когда изучу, что это такое сырцы: qinetaccess_0.1.1.tar.gz
Stiff Posted August 3, 2009 Author Posted August 3, 2009 Осторожно! пароль хранится в незашифрованном виде!
dummy Posted August 3, 2009 Posted August 3, 2009 Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs); Это больше соответствует идеологии ООП и паттерну MVC. бинарничек еще бы под виндоз плиз
Stiff Posted August 4, 2009 Author Posted August 4, 2009 Забирайте. Для винды обязательно наличие MSVC Redistributable 2008. Под винду также в архив включены qt библиотеки qinetaccess_linux_bin.tar.gz qinetaccess_win32_bin.zip
madf Posted August 4, 2009 Posted August 4, 2009 То есть, вы советуете разбить программу на модуль (.so, .dll) и отдельно исполняемый бинарник? Можно и статически. Но чтобы исходники не тащили с собой либу а использовали ту что идет в комплекте Stargazer. Тогда можно без проблем собирать всегда с самой последней версией клиентской библиотеки. Логику model/view реализую когда изучу, что это такое Очень рекомендую. Прирост в скорости отрисовки в Qt4 по сравнению с Qt3 частично вызван именно использованием MVC. Фактически, у тебя он реализован (т.к. ты используешь TableView а не TableWidget), но используется в духе старой доброй VCL с "ручной" расстановкой значений по ячейкам. Я в свое время разбирался с Qt'шной реализацией. Немного инфы есть тут: http://madf.livejournal.com/43869.html (правда, на смеси украинского и английского Если что - могу проконсультировать по почте (faust@stg.dp.ua) или в Jabber (madf@jabber.kiev.ua). Забирайте.Для винды обязательно наличие MSVC Redistributable 2008. Под винду также в архив включены qt библиотеки Может, лучше использовать MinGW и его библиотеки? Я как-то M$ не очень доверяю...
_Om_ Posted August 30, 2009 Posted August 30, 2009 Решил по тестить под win32. Из того что заметил нет возможности показывать трафик суммарно up+download
_Om_ Posted September 14, 2009 Posted September 14, 2009 Не работает в Kubuntu 9.04 x86-x64 собиралось из сорцов qinetaccess_0.1.1 не конектиться к серверу. В win32 сообщения приходят в кракозяблах, в стандартном авторизаторе сообщения приходят нормально. Лог cборки по kubuntu roman@om:~/Документы/qinetaccess$ qmake && make /usr/bin/uic-qt4 mainwindow.ui -o ui_mainwindow.h /usr/bin/uic-qt4 settingsdialog.ui -o ui_settingsdialog.h /usr/bin/uic-qt4 messageswindow.ui -o ui_messageswindow.h g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o mainwindow.o mainwindow.cpp mainwindow.cpp:118: предупреждение: параметр ‘msg’ не используется mainwindow.cpp:350: предупреждение: параметр ‘i’ не используется mainwindow.cpp:350: предупреждение: параметр ‘showTime’ не используется mainwindow.cpp:350: предупреждение: параметр ‘sendTime’ не используется mainwindow.cpp:356: предупреждение: параметр ‘winKOI’ не используется g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o settingsdialog.o settingsdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o messageswindow.o messageswindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o proto_unit.o proto_unit.cpp proto_unit.cpp: In member function ‘int CLIENTPROT::NetSend(int)’: proto_unit.cpp:328: предупреждение: неиспользуемая переменная ‘ciphertext’ proto_unit.cpp:334: предупреждение: неиспользуемая переменная ‘str’ proto_unit.cpp:335: предупреждение: ‘msgLen’, возможно, используется без инициализации в данной функции proto_unit.cpp: In member function ‘int CLIENTPROT::NetRecv()’: proto_unit.cpp:208: предупреждение: ‘pn’, возможно, используется без инициализации в данной функции g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o common.o common.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o blowfish.o blowfish.cpp /usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. mainwindow.h -o moc_mainwindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp /usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. settingsdialog.h -o moc_settingsdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_settingsdialog.o moc_settingsdialog.cpp /usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. messageswindow.h -o moc_messageswindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_messageswindow.o moc_messageswindow.cpp /usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. proto_unit.h -o moc_proto_unit.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_proto_unit.o moc_proto_unit.cpp /usr/bin/rcc -name resources resources.qrc -o qrc_resources.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o qrc_resources.o qrc_resources.cpp g++ -Wl,-O1 -o qinetaccess main.o mainwindow.o settingsdialog.o messageswindow.o proto_unit.o common.o blowfish.o moc_mainwindow.o moc_settingsdialog.o moc_messageswindow.o moc_proto_unit.o qrc_resources.o -L/usr/lib -lQtGui -lQtCore -lpthread
Stiff Posted October 15, 2009 Author Posted October 15, 2009 Лог сборки-то зачем? ошибок же нет в нём. зы. можете попробовать пособирать отсюда http://code.google.com/p/qinetaccess/source/checkout
rizloff Posted November 17, 2009 Posted November 17, 2009 Отличная идея сделать GUI-авторизатор для линукса. Давно пора. Я руками и ногами за и хочу чтобы такой был. Скачал бинарник из темы. Запускается родимый, все есть, нажимаешь подключиться и глухо как в танке. Вообще ничего не происходит - ни так, ни в консоль. Стянул из svn, собрал - такая же ботва, только теперь еще пишет "UPD_NEED Вам необходимо обновить программу авторизации. Скачать можно тут http://www.foo.com/bar.tgz". Но если запустить авторизатор, консольный или через вайн, подключится, вырубить и сразу же запустить qinetaccess, то даже покажет upload + download. Правда на этом все и заканчивается. Через минуту, естественно, подключения нет ну и трафик, ессно, не бегает В общем как то так... Есть надежда? Fedora 11, KDE 4.3, собирал на Qt 4.5.3
madf Posted November 26, 2009 Posted November 26, 2009 Моя собственная разработка. Пока еще сырая. Работает только авторизация, отображение статистики и сворачивание в трей. Под винду собирается с напильником и работает нестабильно. Под Linux собирается без напильника и работает, вроде, стабильно. Под FreeBSD и прочие не собирал. Исходники: http://stg.dp.ua/download/qia-1.2.tar.gz Пакет для Debian/Ubuntu: http://stg.dp.ua/download/qia_1.2_i386.deb В комплекте имеется русская, украинская и английская локализации.
Drool Posted November 26, 2009 Posted November 26, 2009 Моя собственная разработка. Привет, Макс. Авторизилка со старыми версиями, как я понимаю, несовместима по протоколу? P.S. desktop-файл кто делать будет? Шурик Пушкин?
madf Posted November 27, 2009 Posted November 27, 2009 Моя собственная разработка. Привет, Макс. Авторизилка со старыми версиями, как я понимаю, несовместима по протоколу? P.S. desktop-файл кто делать будет? Шурик Пушкин? Совместима. Иначе нафига бы я ее делал? Эммм... Нету опыта мейнтейнерства Забыл про такие мелочи. Добавлю в версии 1.3. RPM соберешь или ты совсем от дел отошел? PS: забыл про инструкцию по сборке. # lrelease translations/*ts # mkdir build # cd build # cmake ../ # make
_Om_ Posted November 27, 2009 Posted November 27, 2009 Сорри а чем под вин собирать и как ? можно небольшое описание спасибо
Drool Posted November 27, 2009 Posted November 27, 2009 1. Совместима. Иначе нафига бы я ее делал? 2. Эммм... Нету опыта мейнтейнерства 3. Добавлю в версии 1.3. 4. RPM соберешь или ты совсем от дел отошел? 1. Это хорошо, у меня среди пользователей есть один клиент старгайзера, где-то в восточных областях. Пускает авторизилку в вайне. 2. Давай к нам, а? 3. А почему я на сайте не нашел ссылку на этот файл? Добавь. 4. Соберу. От старгайзера я пока отошел. От мантейнерства - нет. Есть в планах сделать специализированный дистрибутив для биллинга. С Инквизитором хотим попробовать.
madf Posted November 27, 2009 Posted November 27, 2009 Сорри а чем под вин собирать и как ? можно небольшое описание спасибо Qt + MinGW + напильник. Первые два компонента входят в состав Qt SDK. Еще и вместе с Qt Creator. Только сам Creator, кажется, не умеет с cmake работать, по этому придется все из консоли делать.
madf Posted November 27, 2009 Posted November 27, 2009 1. Совместима. Иначе нафига бы я ее делал? 2. Эммм... Нету опыта мейнтейнерства 3. Добавлю в версии 1.3. 4. RPM соберешь или ты совсем от дел отошел? 1. Это хорошо, у меня среди пользователей есть один клиент старгайзера, где-то в восточных областях. Пускает авторизилку в вайне. 2. Давай к нам, а? 3. А почему я на сайте не нашел ссылку на этот файл? Добавь. 4. Соберу. От старгайзера я пока отошел. От мантейнерства - нет. Есть в планах сделать специализированный дистрибутив для биллинга. С Инквизитором хотим попробовать. Не первый раз уже зовешь Но я если и буду мейнтейнить эти проекты - то только в Gentoo (хотя кто знает?). Все-таки это мой основной дистрибутив. Вот Ubuntu на работе поавился - я упаковал deb-ку. А Альт я пока только на картинках видел Ссылки на офсайте нет, это да. Дома щас без инета сижу, делал все на работе в последние 15 минут, по этому не успел новость сочинить. Мож сегодня сделаю.
Drool Posted November 27, 2009 Posted November 27, 2009 А Альт я пока только на картинках видел Как непатриотично
Drool Posted November 27, 2009 Posted November 27, 2009 Кстати, Макс. Вспомни обсуждение на альтовском форуме. Вы не думали перенести/отзеркалить проект на sf.net ? Мне кажется, от этого будет много пользы.
madf Posted November 27, 2009 Posted November 27, 2009 Кстати, Макс. Вспомни обсуждение на альтовском форуме. Вы не думали перенести/отзеркалить проект на sf.net ? Мне кажется, от этого будет много пользы. Не думали. Сегодня если не забуду - подумаем. Хотя, если честно, в последнее время sf как-то перестал мне нравится. С его новым интерфейсом...
Drool Posted November 27, 2009 Posted November 27, 2009 Хотя, если честно, в последнее время sf как-то перестал мне нравится. С его новым интерфейсом... При чем тут интерфейс? Я вижу пользу в количестве пользователей sf.net, а исходя из этого - улучшения, патчи, предложения, новые модули и т.д и т.п.
madf Posted November 27, 2009 Posted November 27, 2009 Осилил desktop entry и иконку. Других качественных изменений нет. Пакет для Debian/Ubuntu: qia-1.3.1-i386.deb Исходники: qia-1.3.1.tar.gz Теперь прямо из исходников можно генерить deb-пакет: # make package
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now