Changeset 44
- Timestamp:
- 05/30/08 04:44:42 (4 years ago)
- Location:
- trunk
- Files:
-
- 29 edited
-
avalon.sql (modified) (1 diff)
-
form_main.cpp (modified) (1 diff)
-
form_main.h (modified) (1 diff)
-
form_main_ui.cpp (modified) (1 diff)
-
forum_tree.h (modified) (4 diffs)
-
iform_main.h (modified) (1 diff)
-
iforum_tree.h (modified) (2 diffs)
-
imessage_tree.h (modified) (1 diff)
-
imessage_view.h (modified) (1 diff)
-
message_tree.cpp (modified) (2 diffs)
-
message_tree.h (modified) (6 diffs)
-
message_view.h (modified) (4 diffs)
-
model/all.h (modified) (1 diff)
-
model/message.h (modified) (5 diffs)
-
model/moderate.h (modified) (1 diff)
-
model/rating.h (modified) (1 diff)
-
storage/database.h (modified) (1 diff)
-
storage/database_error.h (modified) (1 diff)
-
storage/istorage.h (modified) (4 diffs)
-
storage/mysql_database.cpp (modified) (1 diff)
-
storage/mysql_database.h (modified) (1 diff)
-
storage/mysql_storage.cpp (modified) (5 diffs)
-
storage/mysql_storage.h (modified) (2 diffs)
-
storage/query.h (modified) (1 diff)
-
storage/storage_factory.cpp (modified) (2 diffs)
-
storage/storage_factory.h (modified) (1 diff)
-
sysheaders.h (modified) (2 diffs)
-
tree_widget_item.h (modified) (1 diff)
-
webservice.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/avalon.sql
r43 r44 223 223 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 224 224 225 -- Dump completed on 2008-05- 29 22:33:45225 -- Dump completed on 2008-05-30 0:16:51 -
trunk/form_main.cpp
r43 r44 196 196 void FormMain::MenuServiceGetAllMessages_triggered () 197 197 { 198 // workaround для получения всех сообщений RSDN 199 // в релизе будет скрыт 200 // использовался для тестирования и оптимизации 201 198 202 // основные настройки 199 203 QSettings settings; -
trunk/form_main.h
r37 r44 34 34 // MenuService 35 35 void MenuServiceSynchronize_triggered (); 36 void MenuServiceGetAllMessages_triggered (); 36 void MenuServiceGetAllMessages_triggered (); // deprecated 37 37 void MenuServiceMarkAllAsRead_triggered (); 38 38 void MenuServiceMarkPatrialAsRead_triggered (); -
trunk/form_main_ui.cpp
r37 r44 38 38 MenuServiceGetAllMessages = MenuService->addAction(QString::fromUtf8("Получить всю базу")); 39 39 MenuServiceGetAllMessages->setIcon(QIcon(":/icons/synchronize16.png")); 40 MenuServiceGetAllMessages->setVisible(false); // deprecated 40 41 41 42 MenuService->addSeparator(); -
trunk/forum_tree.h
r31 r44 16 16 //---------------------------------------------------------------------------------------------- 17 17 class AForumTree : 18 public QTreeWidget, 19 public IForumTree 18 public QTreeWidget, // стандартное дерево Qt 19 public IForumTree // интерфес для взаимодействия со списком сообщений и отображением сообщения 20 20 { 21 21 Q_OBJECT … … 23 23 public: 24 24 25 // form - главная форма приложения для отображения сообщений об ошибках 25 26 AForumTree (QWidget* parent, QWidget* form); 26 27 ~AForumTree (); 27 28 29 // сохранение и восстановление размеров 28 30 void Save (); 29 31 void Restore (); 30 32 33 // функции обмена интерфейсами для взаимодействия со списком сообщений и отображением сообщения 31 34 void SetMessageTree (IMessageTree* itf); 32 35 void SetMessageView (IMessageView* itf); … … 34 37 private: 35 38 36 QWidget* m_parent; 39 // главная форма приложения 40 QWidget* m_parent; 41 42 // интерфейсы для взаимодействия со списком сообщений и отображением сообщения 37 43 IMessageTree* m_message_tree; 38 44 IMessageView* m_message_view; 39 45 40 // проверка элемента на группу46 // проверка элемента на то, что он является группой 41 47 bool IsGroup (QTreeWidgetItem* item); 42 48 … … 49 55 // высплывающее меню 50 56 QMenu* m_menu; 51 QAction* m_menu_mark_all_as_read; 52 QAction* m_menu_mark_patrial_as_read; 53 QAction* m_menu_mark_all_as_unread; 54 QAction* m_menu_mark_patrial_as_unread; 57 58 QAction* m_menu_mark_all_as_read; // пометить все как прочитанные 59 QAction* m_menu_mark_patrial_as_read; // пометить до даты как прочитанные 60 QAction* m_menu_mark_all_as_unread; // пометить все как непрочитанные 61 QAction* m_menu_mark_patrial_as_unread; // пометить до даты как непрочитанные 55 62 QAction* m_menu_unsubscribe; 56 63 -
trunk/iform_main.h
r19 r44 10 10 #include "sysheaders.h" 11 11 //---------------------------------------------------------------------------------------------- 12 // интерфейс для работы с главной формой извне 13 //---------------------------------------------------------------------------------------------- 12 14 class IFormMain 13 15 { -
trunk/iforum_tree.h
r30 r44 10 10 #include "sysheaders.h" 11 11 //---------------------------------------------------------------------------------------------- 12 12 // интерфейс для работы с деревом форумов извне 13 //---------------------------------------------------------------------------------------------- 13 14 class IForumTree 14 15 { … … 18 19 virtual void Reload () = 0; 19 20 20 // перезагрузка количества непрочитаных 21 // перезагрузка количества непрочитаных сообщений 21 22 virtual void ReloadUnread () = 0; 22 23 -
trunk/imessage_tree.h
r28 r44 10 10 #include "model/all.h" 11 11 //---------------------------------------------------------------------------------------------- 12 12 // интерфейс для работы с деревом сообщений извне 13 //---------------------------------------------------------------------------------------------- 13 14 class IMessageTree 14 15 { -
trunk/imessage_view.h
r29 r44 10 10 #include "model/all.h" 11 11 //---------------------------------------------------------------------------------------------- 12 12 // интерфейс для работы с областью отображения HTML сообщения извне 13 //---------------------------------------------------------------------------------------------- 13 14 class IMessageView 14 15 { -
trunk/message_tree.cpp
r43 r44 10 10 #include "storage/storage_factory.h" 11 11 //---------------------------------------------------------------------------------------------- 12 // элемент, который хранится в каждой ноде дерева 13 //---------------------------------------------------------------------------------------------- 12 14 typedef struct AMessageInfoGUI 13 15 { 14 16 // дескриптор сообщения 15 ATopicInfo Info; // актуально только для топиков, а для сообщений AMessageInfoEx17 ATopicInfo Info; 16 18 17 19 // флаг наличия загрузки информации (актуально только для топиков) … … 21 23 bool IsChildLoaded; 22 24 23 // количество непрочитанных дочерних 25 // количество непрочитанных дочерних сообщений 24 26 int UnreadChildCount; 25 27 -
trunk/message_tree.h
r43 r44 15 15 //---------------------------------------------------------------------------------------------- 16 16 class AMessageTree : 17 public QTreeWidget, 18 public IMessageTree 17 public QTreeWidget, // стандартное дерево Qt 18 public IMessageTree // интерфес для взаимодействия со списком форумов и отображением сообщения 19 19 { 20 20 Q_OBJECT … … 22 22 public: 23 23 24 // form - главная форма приложения для отображения сообщений об ошибках 24 25 AMessageTree (QWidget* parent, QWidget* form); 25 26 ~AMessageTree (); 26 27 28 // сохранение и восстановление размеров 27 29 void Save (); 28 30 void Restore (); 29 31 32 // функции обмена интерфейсами для взаимодействия со списком форумов и отображением сообщения 30 33 void SetForumTree (IForumTree* itf); 31 34 void SetMessageView (IMessageView* itf); … … 33 36 private: 34 37 35 QWidget* m_parent; 38 // главная форма приложения 39 QWidget* m_parent; 40 41 // интерфейсы для взаимодействия со списком форумов и отображением сообщения 36 42 IForumTree* m_forum_tree; 37 43 IMessageView* m_message_view; 38 44 45 // иконки для отображения статусов сообщений 39 46 QIcon m_message_read; 40 47 QIcon m_child_unread; 41 48 QIcon m_message_unread; 42 49 50 // таймер для пометки сообщений как прочитанные 43 51 QTimer m_timer; 44 52 … … 46 54 int m_id_forum; 47 55 48 // возвращает текущий выделенный элемент 56 // возвращает текущий выделенный элемент дерева 49 57 QTreeWidgetItem* GetSelectedItem (); 50 58 51 // загружает незагруженные топики при скроллинге 59 // загружает незагруженные топики при скроллинге (см. алгоритм работы с деревом в trac) 52 60 void ScrollTopics (); 53 61 … … 55 63 void ExpandUnreadChild (QTreeWidgetItem* item); 56 64 57 // построение вет ки65 // построение веток 58 66 void BuildTree (QTreeWidgetItem* parent, AMessageInfoExList* list); 59 67 … … 69 77 private slots: 70 78 71 void vertical_scroll (int value); 72 void expand_item (QTreeWidgetItem* item); 79 // скроллинг (см. алгоритм работы с деревом в trac) 80 void vertical_scroll (int value); 81 82 // разворачивание элемента (подгрузка веток, если необходимо, см. алгоритм работы с деревом в trac) 83 void expand_item (QTreeWidgetItem* item); 84 85 // смена выделения (загрузка другого сообщения) 73 86 void selection_changed (); 87 88 // таймер для пометки сообщения как прочитанного 74 89 void timer_on_timer (); 75 90 76 91 protected: 77 92 93 // при изменении размеров происходит псевдо-скроллинг сообщений (см. vertical_scroll) 78 94 void resizeEvent (QResizeEvent* event); 79 95 }; -
trunk/message_view.h
r43 r44 12 12 #include "imessage_view.h" 13 13 //---------------------------------------------------------------------------------------------- 14 // областьотображения сообщения14 // виджет отображения сообщения 15 15 //---------------------------------------------------------------------------------------------- 16 16 class AMessageView : 17 public QFrame, 18 public IMessageView 17 public QFrame, // для красивой рамки 18 public IMessageView // интерфес для взаимодействия со списком сообщений и форумов 19 19 { 20 20 Q_OBJECT … … 25 25 ~AMessageView (); 26 26 27 // функции обмена интерфейсами для взаимодействия со списком сообщений и форумов 27 28 void SetForumTree (IForumTree* itf); 28 29 void SetMessageTree (IMessageTree* itf); … … 30 31 protected: 31 32 33 // workaround, т.к. QWebView некрасиво layout-ится, приходится масштабировать вручную 32 34 void resizeEvent (QResizeEvent* event); 33 35 34 36 private: 35 37 38 // собственно, то, ради чего требуется Qt 4.4 - отображалка HTML 36 39 QWebView* m_web_view; 37 40 41 // интерфейсы для взаимодействия со списком сообщений и форумов 38 42 IForumTree* m_forum_tree; 39 43 IMessageTree* m_message_tree; … … 42 46 private: 43 47 48 // отобразить статью 44 49 void SetMessage (const AMessageInfo& message); 45 50 }; -
trunk/model/all.h
r21 r44 7 7 #ifndef _avalon_model_all_h_ 8 8 #define _avalon_model_all_h_ 9 //---------------------------------------------------------------------------------------------- 10 // заголовочный файл для включения всех заголовочных файлов модели данных 9 11 //---------------------------------------------------------------------------------------------- 10 12 #include "user.h" -
trunk/model/message.h
r43 r44 38 38 typedef QList<AMessageInfo> AMessageInfoList; 39 39 //---------------------------------------------------------------------------------------------- 40 // объединенная структура для запроса списка сообщений 40 // объединенная структура для запроса списка сообщений к вебсервису 41 41 //---------------------------------------------------------------------------------------------- 42 42 typedef struct ADataQuery … … 47 47 }; 48 48 //---------------------------------------------------------------------------------------------- 49 // объединенная структура для синхронизации списка сообщений 49 // объединенная структура для синхронизации списка сообщений от вебсервиса 50 50 //---------------------------------------------------------------------------------------------- 51 51 typedef struct ADataList … … 56 56 }; 57 57 //---------------------------------------------------------------------------------------------- 58 // расширенная информация о сообщении для отображения в дереве 58 // расширенная информация о сообщении для отображения в дереве в GUI 59 59 //---------------------------------------------------------------------------------------------- 60 60 typedef struct AMessageInfoEx : AMessageInfo … … 63 63 }; 64 64 //---------------------------------------------------------------------------------------------- 65 // список сообщений для отображения в дереве 65 // список сообщений для отображения в дереве в GUI 66 66 //---------------------------------------------------------------------------------------------- 67 67 typedef QList<AMessageInfoEx> AMessageInfoExList; 68 68 //---------------------------------------------------------------------------------------------- 69 // информация о топике 69 // информация о топике для отображения дерева в GUI 70 70 //---------------------------------------------------------------------------------------------- 71 71 typedef struct ATopicInfo : AMessageInfoEx … … 75 75 }; 76 76 //---------------------------------------------------------------------------------------------- 77 // список сообщений для отображения в дереве 77 // список сообщений для отображения в дереве в GUI 78 78 //---------------------------------------------------------------------------------------------- 79 79 typedef QList<ATopicInfo> ATopicInfoList; -
trunk/model/moderate.h
r21 r44 14 14 typedef struct AModerateInfo 15 15 { 16 int IDMessage; // 17 int IDUser; // 18 int IDForum; // 19 QDateTime Created; // 16 int IDMessage; // id сообщения 17 int IDUser; // id пользователя 18 int IDForum; // id форума 19 QDateTime Created; // дата 20 20 }; 21 21 //---------------------------------------------------------------------------------------------- -
trunk/model/rating.h
r21 r44 14 14 typedef struct ARatingInfo 15 15 { 16 int IDMessage; // 17 int IDTopic; // 18 int IDUser; // 19 int UserRating; // 16 int IDMessage; // id сообщения 17 int IDTopic; // id топика 18 int IDUser; // id пользователя 19 int UserRating; // рейтинг пользователя 20 20 int Rate; // "+1" = -3, "1" = 1, "2" = 2, "3" = 3, "+" = -4, "-" = 0, ";)" = -2 21 QDateTime RateDate; // 21 QDateTime RateDate; // дата 22 22 }; 23 23 //---------------------------------------------------------------------------------------------- -
trunk/storage/database.h
r9 r44 14 14 //---------------------------------------------------------------------------------------------- 15 15 class ADatabase : 16 public ADatabaseError, 17 public QSqlDatabase 16 public ADatabaseError, // общий класс контроля ошибок 17 public QSqlDatabase // Qt класс для работы с БД 18 18 { 19 19 public: 20 20 21 // type - тип БД, для MySQL type = "QMYSQL" (см. документацию Qt) 21 22 ADatabase (const QString& type); 22 23 ~ADatabase (); 23 24 24 25 // создание объекта запроса 26 // sql - строка запроса 25 27 AQuery* CreateQuery (const QString& sql = QString()); 26 28 27 29 // создание подготовленного запроса 30 // sql - строка запроса с параметрами (параметр задается в виде ":имя") 28 31 AQuery* CreatePreparedQuery (const QString& sql); 29 32 30 33 protected: 31 34 32 // формирует строку с последней ошибкой 35 // формирует строку с последней ошибкой на основании информации из драйвера БД 33 36 void SetLastError (); 34 37 }; -
trunk/storage/database_error.h
r9 r44 22 22 QString LastError (); 23 23 24 // отображает последнюю ошибку 24 // отображает последнюю ошибку на parent в качестве окна 25 25 void ShowError (QWidget* parent); 26 26 -
trunk/storage/istorage.h
r43 r44 36 36 37 37 // возвращает дерево форумов 38 // subscribed_only = true -только дерево подписаных форумов38 // subscribed_only = true, для того, чтобы получить только дерево подписаных форумов 39 39 virtual bool GetForumList (AForumGroupInfoList& list, bool subscribed_only, IProgress* progress = NULL) = 0; 40 40 41 // устанавливает дерево форумов41 // устанавливает (сохраняет) дерево форумов 42 42 virtual bool SetForumList (const AForumGroupInfoList& list, IProgress* progress = NULL) = 0; 43 43 44 // возвращает список idподписаных форумов44 // возвращает список описателей подписаных форумов 45 45 virtual bool GetSubscribedForumList (ASubscribedForumInfoList& list, IProgress* progress = NULL) = 0; 46 46 47 // устанавливает список idподписаных форумов47 // устанавливает список описателей подписаных форумов 48 48 virtual bool SetSubscribedForumList (const ASubscribedForumInfoList& list, IProgress* progress = NULL) = 0; 49 49 … … 55 55 56 56 // сохраняет список сообщений 57 // save_row_version = true, для того, чтобы сохранить версии строк 58 // save_row_version = false, для того, чтобы игнорировать список строк и не считать сохраненные сообщения за новые 59 // добавлен для реализации workaround при вытягивании всей базы RSDN (см. GetMessageIds) 57 60 virtual bool SetMessageList (const ADataList& list, const ARowVersion& row_version, bool save_row_version, IProgress* progress = NULL) = 0; 58 61 … … 63 66 virtual bool GetForumTopicList (int id_forum, QList<int>& list, IProgress* progress = NULL) = 0; 64 67 65 // заполняет полную информацию о топиках 68 // заполняет полную информацию о топиках за исключением тела самого сообщения 69 // тело сообщения будет запрошено при помощи GetMessageBody, по мере необходимости 66 70 virtual bool GetTopicInfo (ATopicInfoList& list, IProgress* progress = NULL) = 0; 67 71 68 // возвращает список сообщений в топике (родительской ветке) 72 // возвращает список _всех_ сообщений в топике (родительской ветке) за исключением тел самих сообщений 73 // тело сообщения будет запрошено при помощи GetMessageBody, по мере необходимости 69 74 virtual bool GetTopicMessageList (int id_topic, AMessageInfoExList& list, IProgress* progress = NULL) = 0; 70 75 71 // возвращает те кстсообщения76 // возвращает тело сообщения 72 77 virtual bool GetMessageBody (int id_message, QString& body, IProgress* progress = NULL) = 0; 73 78 74 79 // пометить группу сущностей как прочитанное/непрочитанное 75 // если установлена дата , то она учитывается соответственно логике:80 // если установлена дата (.isValid() == true), то она учитывается соответственно логике: 76 81 // read = true - до даты как прочитанные 77 82 // read = false - после даты как непрочитанные … … 79 84 80 85 // отписка от форума / группы 81 // type = {idsForum | idsGroup}82 // clean - очистить базу от "лишних" сообщений86 // type = {idsForum | idsGroup} 87 // clean = true - очистить базу от "лишних" сообщений 83 88 virtual bool Unsubscribe (const QList<int>& list, AIDSet type, bool clean, IProgress* progress = NULL) = 0; 84 89 85 // deprecated:90 // unused: 86 91 87 92 // возвращает существующие id сообщений в заданном интервале 93 // используется для вытягивания всей базы RSDN 94 // в реализациях хранилищ, отличных от стандартного MySQL, может смело выдавать ошибку 95 // с сообщением "не реализованно", т.к. данная функциональность, скорее всего, будет скрыта от пользователя 88 96 virtual bool GetMessageIds (int from_id, int to_id, QList<int>& list, IProgress* progress = NULL) = 0; 89 97 }; -
trunk/storage/mysql_database.cpp
r23 r44 33 33 ADatabase::close(); 34 34 35 // получение настроек соединения из конфига 35 36 QSettings settings; 36 37 -
trunk/storage/mysql_database.h
r12 r44 19 19 ~AMySQLDatabase (); 20 20 21 // проверяет открыто ли соединение, если нет, то пытается его открыть и возвращает результат 21 // проверяет открыто ли соединение, если нет, то пытается его открыть и возвращает результат (true - успешно) 22 // иначе см. описание ADatabaseError 22 23 bool CheckDatabase (); 23 24 24 // начало транзакции (автооткрытие соединения) 25 // начало транзакции (автооткрытие соединения), true - успешно 26 // иначе см. описание ADatabaseError 25 27 bool Transaction (); 26 28 27 // принятие транзакции (автооткрытие соединения) 29 // принятие транзакции (автооткрытие соединения), true - успешно 30 // иначе см. описание ADatabaseError 28 31 bool Commit (); 29 32 30 // откат транзакции (автооткрытие соединения) 33 // откат транзакции (автооткрытие соединения), true - успешно 34 // иначе см. описание ADatabaseError 31 35 bool Rollback (); 32 36 33 // создание запроса (автооткрытие соединения) 37 // создание запроса (автооткрытие соединения), возвращает объект или NULL в случае ошибки 38 // sql - SQL текст запроса 39 // prepared - true, если запрос с параметрами и false для простых запросов 40 // в случае ошибки см. описание ADatabaseError 34 41 AQuery* CreateQuery (const QString& sql, bool prepared = true); 35 42 36 43 private: 37 44 38 // флаг наличия транзакции 45 // флаг наличия транзакции (true - транзакция открыта) 39 46 bool m_transaction; 40 47 41 // открытие соединения 48 // открытие соединения (true - успешно, иначе см. описание ADatabaseError) 42 49 bool OpenDatabase (); 43 50 }; -
trunk/storage/mysql_storage.cpp
r43 r44 10 10 AMySQLStorage::AMySQLStorage () : AMySQLDatabase(), IStorage () 11 11 { 12 // установка кода последней ошибки как "ОК" 12 13 ReturnSuccess(); 13 14 } … … 22 23 { 23 24 IStorage::SetLastError("OK"); 25 24 26 return true; 25 27 } … … 42 44 progress->OnProgress(0); 43 45 44 list.User = "AAAAAAAAAAA="; 46 list.User = "AAAAAAAAAAA="; // 64х разрядное число 0 в кодировке Base64 45 47 list.Message = "AAAAAAAAAAA="; 46 48 list.Rating = "AAAAAAAAAAA="; … … 784 786 query.Forum.append(info); 785 787 } 786 788 /* 787 789 // 788 790 // составление списка подписаных форумов … … 871 873 query.BrokenTopic.append(id); 872 874 } 873 875 */ 874 876 return ReturnSuccess(); 875 877 } -
trunk/storage/mysql_storage.h
r43 r44 14 14 //---------------------------------------------------------------------------------------------- 15 15 class AMySQLStorage : 16 public AMySQLDatabase, 17 public IStorage 16 public AMySQLDatabase, // обертка для работы с базами MySQL 17 public IStorage // интерфейс, который возвращает фабрика хранилищ при работе 18 18 { 19 19 public: … … 26 26 // устанавливает IStorage::SetLastError("OK") и возвращает true 27 27 bool ReturnSuccess (); 28 // устанавливает IStorage::SetLastError и возвращает false 28 29 // устанавливает IStorage::SetLastError(message) и возвращает false 29 30 bool ReturnError (const QString& message); 30 31 31 // IStorage 32 // IStorage (см. istorage.h) 32 33 public: 33 34 34 // получение версий строк 35 bool GetRowVersion (ARowVersion& list, IProgress* progress = NULL); 36 37 // возвращает дерево форумов 38 // subscribed_only = true - только дерево подписаных форумов 39 bool GetForumList (AForumGroupInfoList& list, bool subscribed_only, IProgress* progress = NULL); 40 41 // устанавливает дерево форумов 42 bool SetForumList (const AForumGroupInfoList& list, IProgress* progress = NULL); 43 44 // возвращает список id подписаных форумов 35 bool GetRowVersion (ARowVersion& list, IProgress* progress = NULL); 36 bool GetForumList (AForumGroupInfoList& list, bool subscribed_only, IProgress* progress = NULL); 37 bool SetForumList (const AForumGroupInfoList& list, IProgress* progress = NULL); 45 38 bool GetSubscribedForumList (ASubscribedForumInfoList& list, IProgress* progress = NULL); 46 47 // устанавливает список id подписаных форумов48 39 bool SetSubscribedForumList (const ASubscribedForumInfoList& list, IProgress* progress = NULL); 49 50 // сохраняет список пользователей 51 bool SetUserList (const AUserInfoList& list, const QString& row_version, IProgress* progress = NULL); 52 53 // возвращает параметры для получения списка сообщений 54 bool GetMessageQuery (ADataQuery& query, IProgress* progress = NULL); 55 56 // сохраняет список сообщений 57 bool SetMessageList (const ADataList& list, const ARowVersion& row_version, bool save_row_version, IProgress* progress = NULL); 58 59 // возвращает количество непрочитанных сообщений для форумов 60 bool GetUnreadCount (AUnreadForumCountInfoList& list, IProgress* progress = NULL); 61 62 // возвращает список топиков (родительских веток) для форума 63 bool GetForumTopicList (int id_forum, QList<int>& list, IProgress* progress = NULL); 64 65 // заполняет полную информацию о топиках 66 bool GetTopicInfo (ATopicInfoList& list, IProgress* progress = NULL); 67 68 // возвращает список сообщений в топике (родительской ветке) 69 bool GetTopicMessageList (int id_topic, AMessageInfoExList& list, IProgress* progress = NULL); 70 71 // возвращает текст сообщения 72 bool GetMessageBody (int id_message, QString& body, IProgress* progress = NULL); 73 74 // пометить группу сущностей как прочитанное/непрочитанное 75 // если установлена дата, то она учитывается соответственно логике: 76 // read = true - до даты как прочитанные 77 // read = false - после даты как непрочитанные 78 bool SetIDsAsRead (const QList<int>& list, AIDSet type, bool read, QDateTime date, IProgress* progress = NULL); 79 80 // отписка от форума / группы 81 // type = {idsForum | idsGroup} 82 // clean - очистить базу от "лишних" сообщений 83 bool Unsubscribe (const QList<int>& list, AIDSet type, bool clean, IProgress* progress = NULL); 84 85 // возвращает существующие id сообщений в заданном интервале 86 bool GetMessageIds (int from_id, int to_id, QList<int>& list, IProgress* progress = NULL); 40 bool SetUserList (const AUserInfoList& list, const QString& row_version, IProgress* progress = NULL); 41 bool GetMessageQuery (ADataQuery& query, IProgress* progress = NULL); 42 bool SetMessageList (const ADataList& list, const ARowVersion& row_version, bool save_row_version, IProgress* progress = NULL); 43 bool GetUnreadCount (AUnreadForumCountInfoList& list, IProgress* progress = NULL); 44 bool GetForumTopicList (int id_forum, QList<int>& list, IProgress* progress = NULL); 45 bool GetTopicInfo (ATopicInfoList& list, IProgress* progress = NULL); 46 bool GetTopicMessageList (int id_topic, AMessageInfoExList& list, IProgress* progress = NULL); 47 bool GetMessageBody (int id_message, QString& body, IProgress* progress = NULL); 48 bool SetIDsAsRead (const QList<int>& list, AIDSet type, bool read, QDateTime date, IProgress* progress = NULL); 49 bool Unsubscribe (const QList<int>& list, AIDSet type, bool clean, IProgress* progress = NULL); 50 bool GetMessageIds (int from_id, int to_id, QList<int>& list, IProgress* progress = NULL); 87 51 }; 88 52 //---------------------------------------------------------------------------------------------- -
trunk/storage/query.h
r9 r44 16 16 public: 17 17 18 // database - Qt объект работы с БД 19 // sql - текст SQL запроса 18 20 AQuery (QSqlDatabase* database, const QString& sql = QString()); 19 21 ~AQuery (); 20 22 21 // возвращает строку с последней ошибкой 23 // возвращает строку с последней ошибкой на основе информации из драйвера 22 24 QString LastError (); 23 25 24 // отображение сообщения о последней ошибке 26 // отображение сообщения о последней ошибке на окне parent 25 27 void ShowError (QWidget* parent); 26 28 }; -
trunk/storage/storage_factory.cpp
r12 r44 12 12 IStorage* AStorageFactory::GetStorage () 13 13 { 14 // чтение типа хранилища из конфига 14 15 QSettings settings; 15 16 … … 18 19 if (type == "MySQL") 19 20 return new AMySQLStorage(); 20 21 21 22 return NULL; 22 23 } -
trunk/storage/storage_factory.h
r12 r44 17 17 18 18 // возвращает хранилище типа определенного в настройках 19 // NULL, если тип не определен 19 20 static IStorage* GetStorage (); 20 21 }; -
trunk/sysheaders.h
r41 r44 43 43 #include <QCalendarWidget> 44 44 //---------------------------------------------------------------------------------------------- 45 // макрос для отладки и легкого вывода алерта, в релизе использоваться не должен 46 //---------------------------------------------------------------------------------------------- 45 47 #define DEBUG_MSG(x) QMessageBox::critical(0, QString::fromUtf8("Ошибка!"), x) 46 48 //---------------------------------------------------------------------------------------------- 47 49 #include <sys/time.h> 48 50 //---------------------------------------------------------------------------------------------- 49 class Profiler 51 // профайлер для отметок времени выполнения кусков кода при отладке, в релизе использоваться не должен 52 //---------------------------------------------------------------------------------------------- 53 class AProfiler 50 54 { 51 55 public: 52 56 53 Profiler ()57 AProfiler () 54 58 { 55 59 Start(); … … 61 65 } 62 66 67 // выдает диалог с временем выполнения в ms 63 68 void Stop () 64 69 { -
trunk/tree_widget_item.h
r14 r44 10 10 #include "sysheaders.h" 11 11 //---------------------------------------------------------------------------------------------- 12 // расширенный элемент дерева 12 // расширенный элемент дерева, хранящий дополнительную информацию 13 // используется в дереве форумов, сообщений 13 14 //---------------------------------------------------------------------------------------------- 14 15 template <class T> class ATreeWidgetItem : public QTreeWidgetItem -
trunk/webservice.h
r37 r44 33 33 34 34 // парсит ответ со списком сообщений и заносит результат в список 35 // результат - пустая строка, или сообщение об ошибке 35 36 static QString GetMessageList_WebserviceParse (const QString& data, ADataList& list, ARowVersion& row_version, IProgress* progress = NULL); 36 37 … … 39 40 40 41 // парсит ответ со списком сообщений и заносит результат в список 42 // результат - пустая строка, или сообщение об ошибке 41 43 static QString GetMessageListByID_WebserviceParse (const QString& data, ADataList& list, IProgress* progress = NULL); 42 44
Note: See TracChangeset
for help on using the changeset viewer.
