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

Рекомендованные сообщения

Изучаю связку 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то я не нашел где там протоколу прописывается адрес и порт сервера.

К стати, сам начинал делать в прошлом году - только библиотеку протокола так и не прикрутил ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.

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

Это больше соответствует идеологии ООП и паттерну MVC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Не сделано пока сохранение истории сообщений и перевод.

 

Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.

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

Это больше соответствует идеологии ООП и паттерну MVC.

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

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

 

сырцы:

qinetaccess_0.1.1.tar.gz

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Советую не собирать библиотеку авторизатора "на месте", а линковать ее динамически или статически.

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

Это больше соответствует идеологии ООП и паттерну MVC.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Забирайте.

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

qinetaccess_linux_bin.tar.gz

qinetaccess_win32_bin.zip

Поделиться сообщением


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

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

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

Очень рекомендую. Прирост в скорости отрисовки в 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$ не очень доверяю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил по тестить под win32.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отличная идея сделать GUI-авторизатор для линукса. Давно пора. Я руками и ногами за и хочу чтобы такой был. Скачал бинарник из темы. Запускается родимый, все есть, нажимаешь подключиться и глухо как в танке. Вообще ничего не происходит - ни так, ни в консоль.

Стянул из svn, собрал - такая же ботва, только теперь еще пишет "UPD_NEED Вам необходимо обновить программу авторизации. Скачать можно тут http://www.foo.com/bar.tgz".

Но если запустить авторизатор, консольный или через вайн, подключится, вырубить и сразу же запустить qinetaccess, то даже покажет upload + download. Правда на этом все и заканчивается. Через минуту, естественно, подключения нет ну и трафик, ессно, не бегает :)

В общем как то так...

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Работает только авторизация, отображение статистики и сворачивание в трей.

Под винду собирается с напильником и работает нестабильно.

Под Linux собирается без напильника и работает, вроде, стабильно.

Под FreeBSD и прочие не собирал.

Исходники: http://stg.dp.ua/download/qia-1.2.tar.gz

Пакет для Debian/Ubuntu: http://stg.dp.ua/download/qia_1.2_i386.deb

В комплекте имеется русская, украинская и английская локализации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Совместима. Иначе нафига бы я ее делал? :)

Эммм... Нету опыта мейнтейнерства :) Забыл про такие мелочи. Добавлю в версии 1.3.

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

 

PS: забыл про инструкцию по сборке.

# lrelease translations/*ts
# mkdir build
# cd build
# cmake ../
# make

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сорри

а чем под вин собирать и как ?

можно небольшое описание :)

 

спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Совместима. Иначе нафига бы я ее делал? :)

2. Эммм... Нету опыта мейнтейнерства :)

 

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

 

 

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

 

 

 

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

 

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сорри

а чем под вин собирать и как ?

можно небольшое описание :)

 

спасибо

Qt + MinGW + напильник.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Совместима. Иначе нафига бы я ее делал? :)

2. Эммм... Нету опыта мейнтейнерства :)

 

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

 

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

 

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

 

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

 

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

 

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

 

Не первый раз уже зовешь :) Но я если и буду мейнтейнить эти проекты - то только в Gentoo (хотя кто знает?). Все-таки это мой основной дистрибутив. Вот Ubuntu на работе поавился - я упаковал deb-ку. А Альт я пока только на картинках видел :)

Ссылки на офсайте нет, это да. Дома щас без инета сижу, делал все на работе в последние 15 минут, по этому не успел новость сочинить. Мож сегодня сделаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А Альт я пока только на картинках видел :)

 

 

 

 

 

Как непатриотично  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Кстати, Макс. Вспомни обсуждение на альтовском форуме. Вы не думали перенести/отзеркалить проект на sf.net ? Мне кажется, от этого будет много пользы. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Кстати, Макс. Вспомни обсуждение на альтовском форуме. Вы не думали перенести/отзеркалить проект на sf.net ? Мне кажется, от этого будет много пользы. 

Не думали. Сегодня если не забуду - подумаем. Хотя, если честно, в последнее время sf как-то перестал мне нравится. С его новым интерфейсом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хотя, если честно, в последнее время sf как-то перестал мне нравится. С его новым интерфейсом...

 

При чем тут интерфейс? Я вижу пользу в количестве пользователей sf.net, а исходя из этого - улучшения, патчи, предложения, новые модули и т.д и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Осилил desktop entry и иконку.

Других качественных изменений нет.

Пакет для Debian/Ubuntu: qia-1.3.1-i386.deb

Исходники: qia-1.3.1.tar.gz

 

Теперь прямо из исходников можно генерить deb-пакет:

# make package

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×