Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Tools (http://mangos.ytdb.ru/forumdisplay.php?f=22)
-   -   SpellWork (Qt4 & C++) (http://mangos.ytdb.ru/showthread.php?t=3501)

Sid 17.01.2011 13:42

SpellWork (Qt5 & C++)
 
Пока изучаю средства Qt и C++ решил побаловаться и сделать "велосипед" :) Пишу по мере свободного времени, а так же не без говнокода :)

+ Реализован полный вывод инфо как и в SW от Константина.
+ Добавлен вывод родительского спела для триггерного.
+ Параметры расширеного фильтра теперь пишутся непосредственно перед аргументом. Пример ">30", "&0x100" и т.д (=/>/</&/~/!).
+ Поддержка локализированых DBC.
+ Поддержка регулярок.
+ Применение WebKit для вывода информации.
+ Подгрузка иконки спелла с Wowhead.
+ Ссылки на тригерные/родительские спеллы с переходом по ним.
+ Popup автозавершитель вводимого спелла по имени.
+ Распознавание hex чисел в расширенном фильтре.
+ Проверка обновлений с сервера.

Использовал загрузчик DBC от мангоса, поэтому работа с dbc не отличается от работы с dbc в ядре, большое спасибо!

Если кто хочет поучавствовать, можете написать :) Мне это нужно только в целях изучения Qt и C++ :)

Сборка возможна на Windows и Linux :)

Репо: http://bitbucket.org/sidsukana/qsw
Скачать: http://bitbucket.org/sidsukana/qsw/downloads

Бранч pre-TBC (1.12.x) qsw-pretbc.
Бранч TBC (2.4.3) qsw-tbc.
Бранч WoTLK (3.3.5a) qsw-wotlk.
Бранч Cataclysm (4.3.4) qsw-cata.
Бранч MoP (5.1.0 16357) qsw-mop.

Скрин:


Релизы c библиотеками и DBC в репозитории в секции Downloads!

PSZ 17.01.2011 13:58

Хочешь больше тестеров - давай поддержку 3.3.5 :)

Sid 17.01.2011 14:01

Цитата:

Сообщение от PSZ (Сообщение 18562)
Хочешь больше тестеров - давай поддержку 3.3.5 :)

Будет, обязательно :) Хочу на все 3 аддона сделать :)

Sid 29.01.2011 21:47

Начал работу над 2.4.3. Бранч qsw-tbc. 1.12 доступен по бранчу default либо tag pre-TBC (rev 50).

Sid 15.02.2011 19:37

Сделал базовую поддержку 3.3.5а (более менее). Обо всех ошибках сообщайте в этой теме, или в иссуесах репозитория. Добавил готовые релизы в 1 пост.
Обновил скрин.

Кстати незнаю в чем подвох, но у меня спелворк ест в 3 раза меньше ОЗУ :) Но из-за библиотек громоздкий :(

LordJZ 15.02.2011 20:07

Цитата:

Сообщение от Sid (Сообщение 19280)
...
Кстати незнаю в чем подвох, но у меня спелворк ест в 3 раза меньше ОЗУ :) Но из-за библиотек громоздкий :(

В том, что последние слова в названиях вашего и моего топиков немножко отличаются (# против ++) ;)

Sid 15.02.2011 20:10

Цитата:

Сообщение от LordJZ (Сообщение 19282)
В том, что последние слова в названиях вашего и моего топиков немножко отличаются (# против ++) ;)

Ну это понятно :) Просто не думал что такая разница будет.
Хочу на никс собрать его погонять, но нет возможности, у кого есть Qt на никсе, там проект для QtCreator можно было бы поэкспериментировать :)

Sid 24.02.2011 21:57

Добавил дополнительный режим поиска для значений "масок".
Обычный(None), Содержит значение (Contain), Не содержит значения (Not contain)
Изменил стиль кнопочки регекспа :) (QSS прикольная штука оказывается))
Теперь архивы с релизами, библиотеками и dbc можно взять с репозитория в секции Downloads.

narma 25.02.2011 10:43

Код:

diff -r daf445e85110 QSW/DBC/DBCStore.h
--- a/QSW/DBC/DBCStore.h        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/DBC/DBCStore.h        Fri Feb 25 11:39:52 2011 +0300
@@ -1,7 +1,8 @@
 #ifndef DBCSTORE_H
 #define DBCSTORE_H
-
+
 #include <list>
+#include <cstring> // or string.h ?
 #include "DBCFileLoader.h"
 
 template<class T>
diff -r daf445e85110 QSW/QSW.pro
--- a/QSW/QSW.pro        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/QSW.pro        Fri Feb 25 11:39:52 2011 +0300
@@ -12,7 +12,7 @@
 DESTDIR = ../Debug
 QT += core gui qtmain
 CONFIG += debug
-DEFINES += QT_LARGEFILE_SUPPORT
+# DEFINES += QT_LARGEFILE_SUPPORT
 INCLUDEPATH += ./GeneratedFiles \
    ./GeneratedFiles/Debug \
    ./Includes \
diff -r daf445e85110 QSW/SWDefines.cpp
--- a/QSW/SWDefines.cpp        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/SWDefines.cpp        Fri Feb 25 11:39:52 2011 +0300
@@ -1,6 +1,6 @@
 #include "SWDefines.h"
 
-char* SpellStruct[] =
+QString SpellStruct[] =
 {
    "None",
    "Id",
@@ -114,7 +114,7 @@
    "SpellDifficultyId"
 };
 
-char* ProcFlagDesc[] =
+QString ProcFlagDesc[] =
 {
    //00 0x00000001 000000000000000000000001 -
    "00 Killed by aggressor that receive experience or honor",
diff -r daf445e85110 QSW/SWDefines.h
--- a/QSW/SWDefines.h        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/SWDefines.h        Fri Feb 25 11:39:52 2011 +0300
@@ -1,8 +1,10 @@
 #ifndef SWDEFINES_H
 #define SWDEFINES_H
 
-extern char* SpellStruct[];
-extern char* ProcFlagDesc[];
+#include <QString>
+
+extern QString SpellStruct[];
+extern QString ProcFlagDesc[];
 
 #define MAX_STRUCT 99
 #define MAX_PROC 32
diff -r daf445e85110 QSW/SWForm.cpp
--- a/QSW/SWForm.cpp        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/SWForm.cpp        Fri Feb 25 11:39:52 2011 +0300
@@ -219,6 +219,8 @@
            return true;
        }
        break;
+    default:
+        break;
    }
 
    return QWidget::event(ev);
diff -r daf445e85110 QSW/SWObject.h
--- a/QSW/SWObject.h        Fri Feb 25 00:44:21 2011 +0500
+++ b/QSW/SWObject.h        Fri Feb 25 11:39:52 2011 +0300
@@ -38,7 +38,7 @@
        void ThreadUnset(quint8 id) { ThreadSemaphore[id] = false; }
        bool ThreadExist(quint8 id) { return ThreadSemaphore[id]; }
 
-        void SetMetaEnum(char* e)
+        void SetMetaEnum(const char* e)
        {
            e_idx = mo.indexOfEnumerator(e);
            me = mo.enumerator(e_idx);

1. +#include <cstring> // or string.h ?
Исправляет билд под линухом, без этого gcc strlen не может найти.

2. QT_LARGEFILE_SUPPORT убрал у себя, у меня он уже подставляется в итоге куча варнингов что я его redefine. Надо как-то более правильно это решить.

3. -char* SpellStruct[] =
+QString SpellStruct[] =

исправляет кучу варнингов, мб вместо QString лучше подойдёт std::string

4. Остальное - исправление варнингов or make gcc happy

версия qt: 4.7.1
qt-creator: 2.1.0
gcc: 4.5.1

Sid 20.03.2011 23:10

* Сравнение спеллов
* Убрал кнопочный поиск, теперь только ReturnPressed, RegExp вынес в меню
* Изменил комбо боксы, но чет шрифт не получается изменить :) крупненькие буковки, зато целиком влезает наименование)
Downloads обновил.

rsa 20.03.2011 23:15

Эта... а можно к нему работу со spell_dbc привинтить? Дабы спеллы реинжинирить было поудобнее.

Sid 21.03.2011 10:52

Возможно все :) надо только поизучать работу с dbc по глубже.

Sid 31.03.2011 22:54

+ Добавлена поддержка локализированых DBC
Релизы в репо обновлены.
PS На линуксе не тестировалось.

Sid 08.05.2011 21:02

QDbcTool (Qt4 & C++)
 
В общем опять софт-сабж на Qt4 :)

Манит манит меня этот формат dbc, а может просто интересен в том плане что на нем удобно учиться читать бинарные файлы :)

QDbcTool - пока что только DBC viewer :)

Форматы DBC указываются в XML формате в dbcFormats.xml (как у TOM_RUSа). Там несколько примеров.

Данные загружаются в лист из строк-листов. QList<QStringList>.

+ Форматы в XML (TOM_RUSlike)
+ Скрытие/Показ столбцов во время работы, и сохранение состояния.
+ Сортировка (натуральной в Qt нет, поэтому использовался Alphanum алгоритм, с отрицательными значениями неверно сортирует, но довольно быстро)
+ Экспорт в SQL и CSV
+ Возможность загрузки без наличия формата (все поля в стандартном uint32 типе)
+ Поддержка локализированых дбц.
+ Редактировние DBC путем создания нового с измененными данными.
+ Удаление/Добавление записей.

Скриншот:


Исходники
Бинарник

Sid 12.06.2011 22:18

+ Форматы в XML (TOM_RUSlike) :)
+ Скрытие/Показ столбцов во время работы, и сохранение состояния.
+ Сортировка (натуральной в Qt нет, поэтому использовался Alphanum алгоритм, в некоторых случаях с отрицательными значениями неверно сортирует, но довольно быстро)
+ Экспорт в SQL и CSV

Sid 18.06.2011 14:17

Обновил бинарники в репо до актуальных.

В архиве для 3.3.5 залил дополнительно еще русские DBC.

+ Добавлен вывод родительского спела для триггерного.
+ Параметры расширеного фильтра теперь пишутся непосредственно перед аргументом. Пример ">30", "&256" и т.д (=/>/</&/~).
+ Использование MetaProperty системы для работы с расширенным фильтром(пришлось сделать спец.типы для значений-массивов, чтобы проще было работать с мета-объектом. Не то что хотелось, но думаю в будущем доработаю и упрощу, так как структура оказалась больше чем была :) )

Sid 19.06.2011 20:58

Решил попробовать WebKit в плане виджета для вывода инфы. В принципе все что я представлял, то можно реализовать через него:
1) Подгружаемые тултипы
2) Просто подгрузка иконок
3) Пользовательский шаблон вывода на HTML
Вопрос будет ли это интересно?

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

http://my.jetscreenshot.com/4271/20110619-50hd-356kb

Sid 23.06.2011 22:40

Новые релизы:

Бинарники в репо обновлены.

+ Рефакторинг, избавление от лишнего/ненужного кода
+ Применение WebKit для вывода информации.
+ Подгрузка иконки спелла с Wowhead.
+ Ссылки на тригерные/родительские спеллы с переходом по ним.
+ Замена стандартной модели списка спелов на легкую абстрактную (оптимизация поиска и фильтра в несколько раз)
+ Добавлена модель сортировки.
+ Добавлен параметр '!' (не равно)
+ Удалена панель меню -> использование тулбара.
- Не работает хоткей на копирование (видимо бага WebKit)

Тестируем :)

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

http://my.jetscreenshot.com/4271/20110623-rzrj-398kb

PS Если кто имеет желание сделать на html хороший шаблончик вывода инфы, всегда рад пристроить :)

zergtmn 26.06.2011 12:20

Последняя версия ругается на отсутстиве QtNetwork4.dll (у QtWebKit4.dll в зависимостях)
+11 мб для сомнительной фичи это печально.

Sid 26.06.2011 16:19

Цитата:

Сообщение от zergtmn (Сообщение 23712)
Последняя версия ругается на отсутстиве QtNetwork4.dll (у QtWebKit4.dll в зависимостях)
+11 мб для сомнительной фичи это печально.

Хм, ну то что QtWebKit4.dll весит как чугун это известно и ничего с этим не поделаешь, это вам не .net :) А вот про зависимость QtNetwork4.dll в последней версии, первый раз такое слышу, кто тестировал ничего не сообщали, да и я не клал в архив.

zergtmn 26.06.2011 16:54

http://img5.imageshack.us/img5/2631/qswdepends.png

partizanes 27.06.2011 01:25

Цитата:

Сообщение от zergtmn (Сообщение 23712)
Последняя версия ругается на отсутстиве QtNetwork4.dll (у QtWebKit4.dll в зависимостях)
+11 мб для сомнительной фичи это печально.


вин7 х32 +1

tester20 27.06.2011 16:26

тот что в архиве требует
а взятый из репо нет

Sid 27.06.2011 21:23

Странно конечно, у человека не стоит никаких либ, IDE или SDK от Qt однако не требует. Ну возьмите если требует...
QtNetwork4 - скачать

Sid 06.07.2011 14:17

Новые релизы:

Бинарники в репо обновлены. Теперь запакованы в .SFX пакет.

+ Добавлен popup автозавершитель набираемого в поиске спела по имени.
+ Добавлены ивенты на перемещение селекта в списке спелов по стрелкам.
+ Убрана ненужная проверка на текст в поиске.
+ Улучшенное оформление иконки спелла.
+ Исправлен хоткей на копирование.

Так же выяснил причину того что на других компах иконки не подгружались. Оказывается для некоторых форматов нужны плагины :) В частности для подгружаемых jpeg иконок спеллов. Новые бинарники собраны с путем до нужного плагина. Сам плагин в каталоге ./imageformats. Все запаковано в .SFX пакет вместе с требуемым как оказалось QtNetwork4.dll. Получается громоздко, но такой уж Qt :)
В .SFX пакет вполне хорошо все ужалось :)

Приятного пользования :)

Для 243 и 335 забыл QtNetwork4.dll добавить) Перезалил)

SeT 06.07.2011 18:17

---------------------------
QSW.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует QtNetwork4.dll. Попробуйте переустановить программу.
---------------------------
ОК
---------------------------
скачал последню версию, так же пишет.

Sid 06.07.2011 18:45

О_о я сейчас тоже скачал смотрю уже нет QtNetwork4.dll внутри. Может у битбакета кэш -_-

Перезалил снова. Скачал. Проверил. Все на месте :)

Добавил еще qico4.dll теперь иконка бинарника нормально отображается.
Там кеш реально.

Переименовал теперь 100% все есть)

partizanes 07.07.2011 22:51

Вложений: 1
а почему нет аур выше 261 ,или я что то упустил? 3,3,5
http://ru-mangos.ru/attachment.php?a...1&d=1310068221

Sid 08.07.2011 06:09

Мой косяк, видать не добавил новые при переносе с 2.4.3.

Sid 08.07.2011 11:30

Обновил. Добавил распознавание hex формата в расширенном фильтре. Теперь можно не переводя числа в десятичную систему указывать в фильтр как с 0x так и без. (Числа не содержащие латинских символов A,B,C,D,E без префикса 0x расцениваются как десятичные)

т.е 10 будет 10, а 0x10 будет уже 16. A будет равно 0xA.

Добавил недостающие ауры и эфекты в 335. Несколько фиксов параметров фильтра и флаги оптимизации скорости.

SeT 15.07.2011 20:18

Вложений: 1
Можно что-нибудь сделать с интерфейсом на широких экранах?

Sid 15.07.2011 23:20

Исправил, перезалил бинарники :)

Sid 08.08.2011 21:04

Может кто скинуть в пм DBC актуального билда катаклизма? :)

NarkoHeal 09.08.2011 01:08

Цитата:

Сообщение от Sid (Сообщение 24578)
Может кто скинуть в пм DBC актуального билда катаклизма? :)

Сейчас dbc экстрактятся теми-же экстракторами, что и до катаклизма?=)))

Sid 10.08.2011 22:56

Теперь поддержка 4.2.0 14333.
SFX архив залит с enGB DBC, какие уж нашел :)

!Сейчас пока не все данные в расширенном фильтре работают (в частности данные эффектов)!

Бранч qsw-cata

Кстати никто не подскажет, как теперь в катаклизме локаль определять?

Sid 25.09.2011 00:02

+ Добавлен дизайн
+ Исправлены мелкие ошибки.
Архивы с бинарниками обновлены.

rsa 25.09.2011 13:15

а можно еще раз попросить добавить работу со spell_dbc? нужный код предоставлю если требуется...

Warlord123 26.09.2011 12:51

А какой функционал нужен от spell_dbc? Просто загрузка\просмотр?

rsa 26.09.2011 13:34

Цитата:

Сообщение от Warlord123 (Сообщение 25307)
А какой функционал нужен от spell_dbc? Просто загрузка\просмотр?

в форке R2 записи из spell_dbc оверрайдят записи из DBC. так что фактически - полное редактирование спеллов и создание новых (отсутствующих в DBC).

Sid 26.09.2011 14:47

Сделать то не проблема. Я вот открыл вкладку Spell Procs у Константина, и не понял что там вообще делается :)


Текущее время: 02:40. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS