Перейти до

Inetaccess на Qt 4


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

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

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 58
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Выложил версию 1.3.2. Исходники: qia-1.3.2.tar.gz DEB: qia-1.3.2-i386.deb RPM: qia-1.3.2-i386.rpm   Исправлено поведение при возникновении ошибки подключения и включенном переподключении (судя по

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

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

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

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

Кроме того советую пронаследовать 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$ не очень доверяю...

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
  • 2 weeks later...

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

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

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

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

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

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

 

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

 

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

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

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

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

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

Под 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 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...