Local: Inetaccess на Qt 4 - Local

Перейти к содержимому

  • (3 Страниц)
  • +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Inetaccess на Qt 4 кроссплатформенный гуевый авторизатор

#1 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 29 Июль 2009 - 17:03

Изучаю связку c++ + qt, захотелось написать чёнидь полезное, решил остановиться на авторизаторе, т.к. сам юзаю линух, а консольный авторизатор неудобен.
Интерфейс практически полностью скопирован с обычного inetaccess. Заголовочные файлы, отвечающие за сетевой обмен выдраны оттуда же.
Проверено - собирается под винду (msvc 2008 express) и под линукс (gcc). Под линух сборка тривиальна (qmake && make)
Под винду для мсвц собирается, если добавить строчку LIBS += WSock32.Lib в qinetaccess.pro, затем qmake и nmake. Под mingw собирать не пробовал. Макоси под рукой также нет.

Что не сделано:
1. Синхронизация потоков, в результате чего приложение может ругаться в консоль. Когда-нибудь сделаю. Насколько я знаю, в виндовом inetaccess также ничего подобного не сделано, а работает ведь :)
2. Не сделан перевод (интерфейс на англицком)
3. Не сохраняется история сообщений
4. Мелкие недоработки, типа невозможности подключиться/отключиться через контекстное меню

вобщем пробуем, собираем, отписываемся что получилось. Считайте, что это альфа-версия и нестабильна по определению.

Прикрепленные файлы


0

#2 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 29 Июль 2009 - 17:08

123

Прикрепленные файлы


0

Proline

#3 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 30 Июль 2009 - 11:01

Что-то я не нашел где там протоколу прописывается адрес и порт сервера.
К стати, сам начинал делать в прошлом году - только библиотеку протокола так и не прикрутил :)
0

#4 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 30 Июль 2009 - 11:17

Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.
Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs);
Это больше соответствует идеологии ООП и паттерну MVC.
0

#5 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 03 Август 2009 - 20:00

Выкладываю след. версию: реализовал потокобезопасность, работают все настройки.
Не сделано пока сохранение истории сообщений и перевод.

Просмотр сообщенияmadf (Jul 30 2009, 11:17 AM):

Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.
Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs);
Это больше соответствует идеологии ООП и паттерну MVC.

То есть, вы советуете разбить программу на модуль (.so, .dll) и отдельно исполняемый бинарник?
Логику model/view реализую когда изучу, что это такое :)

сырцы:

Прикрепленные файлы


0

#6 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 03 Август 2009 - 20:27

Осторожно! пароль хранится в незашифрованном виде!
0

#7 Пользователь офлайн   dummy Иконка

  • Первая Кровь
  • PipPip
  • Группа: Members
  • Сообщений: 51
  • Регистрация: 03 Июль 05

Отправлено 03 Август 2009 - 21:07

Просмотр сообщенияmadf (Jul 30 2009, 12:17 PM):

Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.
Кроме того советую пронаследовать QTableModel, инкапуслировать в него протокол и положиться на нормальный механиз общения Model/View, вместо явных вызовов model->setItem(row, column, new QStandardItem(text)); и model->setVerticalHeaderLabels(dirs);
Это больше соответствует идеологии ООП и паттерну MVC.


бинарничек еще бы под виндоз плиз
0

#8 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 04 Август 2009 - 09:22

Забирайте.
Для винды обязательно наличие MSVC Redistributable 2008. Под винду также в архив включены qt библиотеки

Прикрепленные файлы


0

#9 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 04 Август 2009 - 11:38

Просмотр сообщенияStiff (Aug 3 2009, 09:00 PM):

То есть, вы советуете разбить программу на модуль (.so, .dll) и отдельно исполняемый бинарник?

Можно и статически. Но чтобы исходники не тащили с собой либу а использовали ту что идет в комплекте Stargazer. Тогда можно без проблем собирать всегда с самой последней версией клиентской библиотеки.

Просмотр сообщенияStiff (Aug 3 2009, 09:00 PM):

Логику model/view реализую когда изучу, что это такое :)

Очень рекомендую. Прирост в скорости отрисовки в Qt4 по сравнению с Qt3 частично вызван именно использованием MVC. Фактически, у тебя он реализован (т.к. ты используешь TableView а не TableWidget), но используется в духе старой доброй VCL с "ручной" расстановкой значений по ячейкам.
Я в свое время разбирался с Qt'шной реализацией. Немного инфы есть тут: http://madf.livejournal.com/43869.html (правда, на смеси украинского и английского :)
Если что - могу проконсультировать по почте (faust@stg.dp.ua) или в Jabber (madf@jabber.kiev.ua).

Просмотр сообщенияStiff (Aug 4 2009, 10:22 AM):

Забирайте.
Для винды обязательно наличие MSVC Redistributable 2008. Под винду также в архив включены qt библиотеки

Может, лучше использовать MinGW и его библиотеки? Я как-то M$ не очень доверяю...
0

#10 Пользователь офлайн   _Om_ Иконка

  • Точу Зубы
  • PipPipPip
  • Группа: Members
  • Сообщений: 181
  • Регистрация: 16 Сентябрь 04

Отправлено 30 Август 2009 - 22:07

Решил по тестить под win32.
Из того что заметил нет возможности показывать трафик суммарно up+download
0

#11 Пользователь офлайн   _Om_ Иконка

  • Точу Зубы
  • PipPipPip
  • Группа: Members
  • Сообщений: 181
  • Регистрация: 16 Сентябрь 04

Отправлено 14 Сентябрь 2009 - 09:46

Не работает в 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
0

#12 Пользователь офлайн   Stiff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 48
  • Регистрация: 18 Апрель 08

Отправлено 15 Октябрь 2009 - 16:18

Лог сборки-то зачем? ошибок же нет в нём.
зы. можете попробовать пособирать отсюда http://code.google.c...source/checkout
0

#13 Пользователь офлайн   rizloff Иконка

  • Пролетал Мимо
  • Pip
  • Группа: Members
  • Сообщений: 10
  • Регистрация: 16 Ноябрь 09
  • Пол:Мужчина
  • Город:Skadovsk

Отправлено 17 Ноябрь 2009 - 03:27

Отличная идея сделать GUI-авторизатор для линукса. Давно пора. Я руками и ногами за и хочу чтобы такой был. Скачал бинарник из темы. Запускается родимый, все есть, нажимаешь подключиться и глухо как в танке. Вообще ничего не происходит - ни так, ни в консоль.
Стянул из svn, собрал - такая же ботва, только теперь еще пишет "UPD_NEED Вам необходимо обновить программу авторизации. Скачать можно тут http://www.foo.com/bar.tgz".
Но если запустить авторизатор, консольный или через вайн, подключится, вырубить и сразу же запустить qinetaccess, то даже покажет upload + download. Правда на этом все и заканчивается. Через минуту, естественно, подключения нет ну и трафик, ессно, не бегает :(
В общем как то так...

Есть надежда?

Fedora 11, KDE 4.3, собирал на Qt 4.5.3
0

#14 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 26 Ноябрь 2009 - 17:44

Моя собственная разработка. Пока еще сырая.
Работает только авторизация, отображение статистики и сворачивание в трей.
Под винду собирается с напильником и работает нестабильно.
Под Linux собирается без напильника и работает, вроде, стабильно.
Под FreeBSD и прочие не собирал.
Исходники: http://stg.dp.ua/dow.../qia-1.2.tar.gz
Пакет для Debian/Ubuntu: http://stg.dp.ua/dow...ia_1.2_i386.deb
В комплекте имеется русская, украинская и английская локализации.
0

#15 Пользователь офлайн   Drool Иконка

  • Первая Кровь
  • PipPip
  • Группа: Members
  • Сообщений: 83
  • Регистрация: 26 Август 07
  • Пол:Мужчина
  • Город:Берислав
  • Интересы:Linux, OpenSource, Ultra Thin Clients

Отправлено 26 Ноябрь 2009 - 21:20

Просмотр сообщенияmadf (26 Ноябрь 2009 - 17:44):

Моя собственная разработка.


Привет, Макс. Авторизилка со старыми версиями, как я понимаю, несовместима по протоколу?

P.S. desktop-файл кто делать будет? ;) Шурик Пушкин?
-= ALT Linux TEAM =-
0

#16 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 27 Ноябрь 2009 - 10:44

Просмотр сообщенияDrool (26 Ноябрь 2009 - 22:20):

Просмотр сообщенияmadf (26 Ноябрь 2009 - 17:44):

Моя собственная разработка.


Привет, Макс. Авторизилка со старыми версиями, как я понимаю, несовместима по протоколу?

P.S. desktop-файл кто делать будет? ;) Шурик Пушкин?

Совместима. Иначе нафига бы я ее делал? :)
Эммм... Нету опыта мейнтейнерства :) Забыл про такие мелочи. Добавлю в версии 1.3.
RPM соберешь или ты совсем от дел отошел?

PS: забыл про инструкцию по сборке.
# lrelease translations/*ts
# mkdir build
# cd build
# cmake ../
# make

0

#17 Пользователь офлайн   _Om_ Иконка

  • Точу Зубы
  • PipPipPip
  • Группа: Members
  • Сообщений: 181
  • Регистрация: 16 Сентябрь 04

Отправлено 27 Ноябрь 2009 - 11:26

Сорри
а чем под вин собирать и как ?
можно небольшое описание :(

спасибо
0

#18 Пользователь офлайн   Drool Иконка

  • Первая Кровь
  • PipPip
  • Группа: Members
  • Сообщений: 83
  • Регистрация: 26 Август 07
  • Пол:Мужчина
  • Город:Берислав
  • Интересы:Linux, OpenSource, Ultra Thin Clients

Отправлено 27 Ноябрь 2009 - 12:06

Просмотр сообщенияmadf (27 Ноябрь 2009 - 10:44):

1. Совместима. Иначе нафига бы я ее делал? :)
2. Эммм... Нету опыта мейнтейнерства :)

3. Добавлю в версии 1.3.


4. RPM соберешь или ты совсем от дел отошел?




1. Это хорошо, у меня среди пользователей есть один клиент старгайзера, где-то в восточных областях. Пускает авторизилку в вайне.


2. Давай к нам, а? ;)

3. А почему я на сайте не нашел ссылку на этот файл? Добавь.

4. Соберу. От старгайзера я пока отошел. От мантейнерства - нет. Есть в планах сделать специализированный дистрибутив для биллинга. С Инквизитором хотим попробовать.


-= ALT Linux TEAM =-
0

#19 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 27 Ноябрь 2009 - 13:09

Просмотр сообщения_Om_ (27 Ноябрь 2009 - 12:26):

Сорри
а чем под вин собирать и как ?
можно небольшое описание :(

спасибо

Qt + MinGW + напильник.
Первые два компонента входят в состав Qt SDK. Еще и вместе с Qt Creator. Только сам Creator, кажется, не умеет с cmake работать, по этому придется все из консоли делать.
0

#20 Пользователь офлайн   madf Иконка

  • Дракон
  • PipPipPipPipPipPipPip
  • Группа: Members
  • Сообщений: 2 067
  • Регистрация: 17 Июль 06
  • Пол:Мужчина
  • Город:Дніпропетровськ

Отправлено 27 Ноябрь 2009 - 13:16

Просмотр сообщенияDrool (27 Ноябрь 2009 - 13:06):

Просмотр сообщенияmadf (27 Ноябрь 2009 - 10:44):

1. Совместима. Иначе нафига бы я ее делал? :)
2. Эммм... Нету опыта мейнтейнерства :)

3. Добавлю в версии 1.3.

4. RPM соберешь или ты совсем от дел отошел?


1. Это хорошо, у меня среди пользователей есть один клиент старгайзера, где-то в восточных областях. Пускает авторизилку в вайне.

2. Давай к нам, а? ;)

3. А почему я на сайте не нашел ссылку на этот файл? Добавь.

4. Соберу. От старгайзера я пока отошел. От мантейнерства - нет. Есть в планах сделать специализированный дистрибутив для биллинга. С Инквизитором хотим попробовать.


Не первый раз уже зовешь :) Но я если и буду мейнтейнить эти проекты - то только в Gentoo (хотя кто знает?). Все-таки это мой основной дистрибутив. Вот Ubuntu на работе поавился - я упаковал deb-ку. А Альт я пока только на картинках видел :)
Ссылки на офсайте нет, это да. Дома щас без инета сижу, делал все на работе в последние 15 минут, по этому не успел новость сочинить. Мож сегодня сделаю.
0

  • (3 Страниц)
  • +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Local.blog МЕТА - Украина