Changeset 44


Ignore:
Timestamp:
05/30/08 04:44:42 (4 years ago)
Author:
antonbatenev.ya.ru
Message:
  • хорошее комментирование исходников;
  • отключен поиск поломанных веток до оптимизации;
Location:
trunk
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • trunk/avalon.sql

    r43 r44  
    223223/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 
    224224 
    225 -- Dump completed on 2008-05-29 22:33:45 
     225-- Dump completed on 2008-05-30  0:16:51 
  • trunk/form_main.cpp

    r43 r44  
    196196void FormMain::MenuServiceGetAllMessages_triggered () 
    197197{ 
     198        // workaround для получения всех сообщений RSDN 
     199        // в релизе будет скрыт 
     200        // использовался для тестирования и оптимизации 
     201 
    198202        // основные настройки 
    199203        QSettings settings; 
  • trunk/form_main.h

    r37 r44  
    3434                // MenuService 
    3535                void MenuServiceSynchronize_triggered         (); 
    36                 void MenuServiceGetAllMessages_triggered      (); 
     36                void MenuServiceGetAllMessages_triggered      (); // deprecated 
    3737                void MenuServiceMarkAllAsRead_triggered       (); 
    3838                void MenuServiceMarkPatrialAsRead_triggered   (); 
  • trunk/form_main_ui.cpp

    r37 r44  
    3838        MenuServiceGetAllMessages = MenuService->addAction(QString::fromUtf8("Получить всю базу")); 
    3939        MenuServiceGetAllMessages->setIcon(QIcon(":/icons/synchronize16.png")); 
     40        MenuServiceGetAllMessages->setVisible(false); // deprecated 
    4041 
    4142        MenuService->addSeparator(); 
  • trunk/forum_tree.h

    r31 r44  
    1616//---------------------------------------------------------------------------------------------- 
    1717class AForumTree : 
    18         public QTreeWidget, 
    19         public IForumTree 
     18        public QTreeWidget, // стандартное дерево Qt 
     19        public IForumTree   // интерфес для взаимодействия со списком сообщений и отображением сообщения 
    2020{ 
    2121        Q_OBJECT 
     
    2323        public: 
    2424 
     25                // form - главная форма приложения для отображения сообщений об ошибках 
    2526                AForumTree  (QWidget* parent, QWidget* form); 
    2627                ~AForumTree (); 
    2728 
     29                // сохранение и восстановление размеров 
    2830                void Save    (); 
    2931                void Restore (); 
    3032 
     33                // функции обмена интерфейсами для взаимодействия со списком сообщений и отображением сообщения 
    3134                void SetMessageTree (IMessageTree* itf); 
    3235                void SetMessageView (IMessageView* itf); 
     
    3437        private: 
    3538 
    36                 QWidget*      m_parent; 
     39                // главная форма приложения 
     40                QWidget* m_parent; 
     41 
     42                // интерфейсы для взаимодействия со списком сообщений и отображением сообщения 
    3743                IMessageTree* m_message_tree; 
    3844                IMessageView* m_message_view; 
    3945 
    40                 // проверка элемента на группу 
     46                // проверка элемента на то, что он является группой 
    4147                bool IsGroup (QTreeWidgetItem* item); 
    4248 
     
    4955                // высплывающее меню 
    5056                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; // пометить до даты как непрочитанные 
    5562                QAction* m_menu_unsubscribe; 
    5663 
  • trunk/iform_main.h

    r19 r44  
    1010#include "sysheaders.h" 
    1111//---------------------------------------------------------------------------------------------- 
     12// интерфейс для работы с главной формой извне 
     13//---------------------------------------------------------------------------------------------- 
    1214class IFormMain 
    1315{ 
  • trunk/iforum_tree.h

    r30 r44  
    1010#include "sysheaders.h" 
    1111//---------------------------------------------------------------------------------------------- 
    12  
     12// интерфейс для работы с деревом форумов извне 
     13//---------------------------------------------------------------------------------------------- 
    1314class IForumTree 
    1415{ 
     
    1819                virtual void Reload () = 0; 
    1920 
    20                 // перезагрузка количества непрочитаных 
     21                // перезагрузка количества непрочитаных сообщений 
    2122                virtual void ReloadUnread () = 0; 
    2223 
  • trunk/imessage_tree.h

    r28 r44  
    1010#include "model/all.h" 
    1111//---------------------------------------------------------------------------------------------- 
    12  
     12// интерфейс для работы с деревом сообщений извне 
     13//---------------------------------------------------------------------------------------------- 
    1314class IMessageTree 
    1415{ 
  • trunk/imessage_view.h

    r29 r44  
    1010#include "model/all.h" 
    1111//---------------------------------------------------------------------------------------------- 
    12  
     12// интерфейс для работы с областью отображения HTML сообщения извне 
     13//---------------------------------------------------------------------------------------------- 
    1314class IMessageView 
    1415{ 
  • trunk/message_tree.cpp

    r43 r44  
    1010#include "storage/storage_factory.h" 
    1111//---------------------------------------------------------------------------------------------- 
     12// элемент, который хранится в каждой ноде дерева 
     13//---------------------------------------------------------------------------------------------- 
    1214typedef struct AMessageInfoGUI 
    1315{ 
    1416        // дескриптор сообщения 
    15         ATopicInfo Info;  // актуально только для топиков, а для сообщений AMessageInfoEx 
     17        ATopicInfo Info; 
    1618 
    1719        // флаг наличия загрузки информации (актуально только для топиков) 
     
    2123        bool IsChildLoaded; 
    2224 
    23         // количество непрочитанных дочерних 
     25        // количество непрочитанных дочерних сообщений 
    2426        int UnreadChildCount; 
    2527 
  • trunk/message_tree.h

    r43 r44  
    1515//---------------------------------------------------------------------------------------------- 
    1616class AMessageTree : 
    17         public QTreeWidget, 
    18         public IMessageTree 
     17        public QTreeWidget, // стандартное дерево Qt 
     18        public IMessageTree // интерфес для взаимодействия со списком форумов и отображением сообщения 
    1919{ 
    2020        Q_OBJECT 
     
    2222        public: 
    2323 
     24                // form - главная форма приложения для отображения сообщений об ошибках 
    2425                AMessageTree  (QWidget* parent, QWidget* form); 
    2526                ~AMessageTree (); 
    2627 
     28                // сохранение и восстановление размеров 
    2729                void Save    (); 
    2830                void Restore (); 
    2931 
     32                // функции обмена интерфейсами для взаимодействия со списком форумов и отображением сообщения 
    3033                void SetForumTree   (IForumTree*   itf); 
    3134                void SetMessageView (IMessageView* itf); 
     
    3336        private: 
    3437 
    35                 QWidget*      m_parent; 
     38                // главная форма приложения 
     39                QWidget* m_parent; 
     40 
     41                // интерфейсы для взаимодействия со списком форумов и отображением сообщения 
    3642                IForumTree*   m_forum_tree; 
    3743                IMessageView* m_message_view; 
    3844 
     45                // иконки для отображения статусов сообщений 
    3946                QIcon m_message_read; 
    4047                QIcon m_child_unread; 
    4148                QIcon m_message_unread; 
    4249 
     50                // таймер для пометки сообщений как прочитанные 
    4351                QTimer m_timer; 
    4452 
     
    4654                int m_id_forum; 
    4755 
    48                 // возвращает текущий выделенный элемент 
     56                // возвращает текущий выделенный элемент дерева 
    4957                QTreeWidgetItem* GetSelectedItem (); 
    5058 
    51                 // загружает незагруженные топики при скроллинге 
     59                // загружает незагруженные топики при скроллинге (см. алгоритм работы с деревом в trac) 
    5260                void ScrollTopics (); 
    5361 
     
    5563                void ExpandUnreadChild (QTreeWidgetItem* item); 
    5664 
    57                 // построение ветки 
     65                // построение веток 
    5866                void BuildTree (QTreeWidgetItem* parent, AMessageInfoExList* list); 
    5967 
     
    6977        private slots: 
    7078 
    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                // смена выделения (загрузка другого сообщения) 
    7386                void selection_changed (); 
     87 
     88                // таймер для пометки сообщения как прочитанного 
    7489                void timer_on_timer    (); 
    7590 
    7691        protected: 
    7792 
     93                // при изменении размеров происходит псевдо-скроллинг сообщений (см. vertical_scroll) 
    7894                void resizeEvent (QResizeEvent* event); 
    7995}; 
  • trunk/message_view.h

    r43 r44  
    1212#include "imessage_view.h" 
    1313//---------------------------------------------------------------------------------------------- 
    14 // область отображения сообщения 
     14// виджет отображения сообщения 
    1515//---------------------------------------------------------------------------------------------- 
    1616class AMessageView : 
    17         public QFrame, 
    18         public IMessageView 
     17        public QFrame,      // для красивой рамки 
     18        public IMessageView // интерфес для взаимодействия со списком сообщений и форумов 
    1919{ 
    2020        Q_OBJECT 
     
    2525                ~AMessageView (); 
    2626 
     27                // функции обмена интерфейсами для взаимодействия со списком сообщений и форумов 
    2728                void SetForumTree   (IForumTree*   itf); 
    2829                void SetMessageTree (IMessageTree* itf); 
     
    3031        protected: 
    3132 
     33                // workaround, т.к. QWebView некрасиво layout-ится, приходится масштабировать вручную 
    3234                void resizeEvent (QResizeEvent* event); 
    3335 
    3436        private: 
    3537 
     38                // собственно, то, ради чего требуется Qt 4.4 - отображалка HTML 
    3639                QWebView* m_web_view; 
    3740 
     41                // интерфейсы для взаимодействия со списком сообщений и форумов 
    3842                IForumTree*   m_forum_tree; 
    3943                IMessageTree* m_message_tree; 
     
    4246        private: 
    4347 
     48                // отобразить статью 
    4449                void SetMessage (const AMessageInfo& message); 
    4550}; 
  • trunk/model/all.h

    r21 r44  
    77#ifndef _avalon_model_all_h_ 
    88#define _avalon_model_all_h_ 
     9//---------------------------------------------------------------------------------------------- 
     10// заголовочный файл для включения всех заголовочных файлов модели данных 
    911//---------------------------------------------------------------------------------------------- 
    1012#include "user.h" 
  • trunk/model/message.h

    r43 r44  
    3838typedef QList<AMessageInfo> AMessageInfoList; 
    3939//---------------------------------------------------------------------------------------------- 
    40 // объединенная структура для запроса списка сообщений 
     40// объединенная структура для запроса списка сообщений к вебсервису 
    4141//---------------------------------------------------------------------------------------------- 
    4242typedef struct ADataQuery 
     
    4747}; 
    4848//---------------------------------------------------------------------------------------------- 
    49 // объединенная структура для синхронизации списка сообщений 
     49// объединенная структура для синхронизации списка сообщений от вебсервиса 
    5050//---------------------------------------------------------------------------------------------- 
    5151typedef struct ADataList 
     
    5656}; 
    5757//---------------------------------------------------------------------------------------------- 
    58 // расширенная информация о сообщении для отображения в дереве 
     58// расширенная информация о сообщении для отображения в дереве в GUI 
    5959//---------------------------------------------------------------------------------------------- 
    6060typedef struct AMessageInfoEx : AMessageInfo 
     
    6363}; 
    6464//---------------------------------------------------------------------------------------------- 
    65 // список сообщений для отображения в дереве 
     65// список сообщений для отображения в дереве в GUI 
    6666//---------------------------------------------------------------------------------------------- 
    6767typedef QList<AMessageInfoEx> AMessageInfoExList; 
    6868//---------------------------------------------------------------------------------------------- 
    69 // информация о топике 
     69// информация о топике для отображения дерева в GUI 
    7070//---------------------------------------------------------------------------------------------- 
    7171typedef struct ATopicInfo : AMessageInfoEx 
     
    7575}; 
    7676//---------------------------------------------------------------------------------------------- 
    77 // список сообщений для отображения в дереве 
     77// список сообщений для отображения в дереве в GUI 
    7878//---------------------------------------------------------------------------------------------- 
    7979typedef QList<ATopicInfo> ATopicInfoList; 
  • trunk/model/moderate.h

    r21 r44  
    1414typedef struct AModerateInfo 
    1515{ 
    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;   // дата 
    2020}; 
    2121//---------------------------------------------------------------------------------------------- 
  • trunk/model/rating.h

    r21 r44  
    1414typedef struct ARatingInfo 
    1515{ 
    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; // рейтинг пользователя 
    2020        int       Rate;       // "+1" = -3, "1" = 1, "2" = 2, "3" = 3, "+" = -4, "-" = 0, ";)" = -2 
    21         QDateTime RateDate;   // 
     21        QDateTime RateDate;   // дата 
    2222}; 
    2323//---------------------------------------------------------------------------------------------- 
  • trunk/storage/database.h

    r9 r44  
    1414//---------------------------------------------------------------------------------------------- 
    1515class ADatabase : 
    16         public ADatabaseError, 
    17         public QSqlDatabase 
     16        public ADatabaseError, // общий класс контроля ошибок 
     17        public QSqlDatabase    // Qt класс для работы с БД 
    1818{ 
    1919        public: 
    2020 
     21                // type - тип БД, для MySQL type = "QMYSQL" (см. документацию Qt) 
    2122                ADatabase  (const QString& type); 
    2223                ~ADatabase (); 
    2324 
    2425                // создание объекта запроса 
     26                // sql - строка запроса 
    2527                AQuery* CreateQuery (const QString& sql = QString()); 
    2628 
    2729                // создание подготовленного запроса 
     30                // sql - строка запроса с параметрами (параметр задается в виде ":имя") 
    2831                AQuery* CreatePreparedQuery (const QString& sql); 
    2932 
    3033        protected: 
    3134 
    32                 // формирует строку с последней ошибкой 
     35                // формирует строку с последней ошибкой на основании информации из драйвера БД 
    3336                void SetLastError (); 
    3437}; 
  • trunk/storage/database_error.h

    r9 r44  
    2222                QString LastError (); 
    2323 
    24                 // отображает последнюю ошибку 
     24                // отображает последнюю ошибку на parent в качестве окна 
    2525                void ShowError (QWidget* parent); 
    2626 
  • trunk/storage/istorage.h

    r43 r44  
    3636 
    3737                // возвращает дерево форумов 
    38                 // subscribed_only = true - только дерево подписаных форумов 
     38                // subscribed_only = true, для того, чтобы получить только дерево подписаных форумов 
    3939                virtual bool GetForumList (AForumGroupInfoList& list, bool subscribed_only, IProgress* progress = NULL) = 0; 
    4040 
    41                 // устанавливает дерево форумов 
     41                // устанавливает (сохраняет) дерево форумов 
    4242                virtual bool SetForumList (const AForumGroupInfoList& list, IProgress* progress = NULL) = 0; 
    4343 
    44                 // возвращает список id подписаных форумов 
     44                // возвращает список описателей подписаных форумов 
    4545                virtual bool GetSubscribedForumList (ASubscribedForumInfoList& list, IProgress* progress = NULL) = 0; 
    4646 
    47                 // устанавливает список id подписаных форумов 
     47                // устанавливает список описателей подписаных форумов 
    4848                virtual bool SetSubscribedForumList (const ASubscribedForumInfoList& list, IProgress* progress = NULL) = 0; 
    4949 
     
    5555 
    5656                // сохраняет список сообщений 
     57                // save_row_version = true, для того, чтобы сохранить версии строк 
     58                // save_row_version = false, для того, чтобы игнорировать список строк и не считать сохраненные сообщения за новые 
     59                // добавлен для реализации workaround при вытягивании всей базы RSDN (см. GetMessageIds) 
    5760                virtual bool SetMessageList (const ADataList& list, const ARowVersion& row_version, bool save_row_version, IProgress* progress = NULL) = 0; 
    5861 
     
    6366                virtual bool GetForumTopicList (int id_forum, QList<int>& list, IProgress* progress = NULL) = 0; 
    6467 
    65                 // заполняет полную информацию о топиках 
     68                // заполняет полную информацию о топиках за исключением тела самого сообщения 
     69                // тело сообщения будет запрошено при помощи GetMessageBody, по мере необходимости 
    6670                virtual bool GetTopicInfo (ATopicInfoList& list, IProgress* progress = NULL) = 0; 
    6771 
    68                 // возвращает список сообщений в топике (родительской ветке) 
     72                // возвращает список _всех_ сообщений в топике (родительской ветке) за исключением тел самих сообщений 
     73                // тело сообщения будет запрошено при помощи GetMessageBody, по мере необходимости 
    6974                virtual bool GetTopicMessageList (int id_topic, AMessageInfoExList& list, IProgress* progress = NULL) = 0; 
    7075 
    71                 // возвращает текст сообщения 
     76                // возвращает тело сообщения 
    7277                virtual bool GetMessageBody (int id_message, QString& body, IProgress* progress = NULL) = 0; 
    7378 
    7479                // пометить группу сущностей как прочитанное/непрочитанное 
    75                 // если установлена дата, то она учитывается соответственно логике: 
     80                // если установлена дата (.isValid() == true), то она учитывается соответственно логике: 
    7681                //    read = true - до даты как прочитанные 
    7782                //    read = false - после даты как непрочитанные 
     
    7984 
    8085                // отписка от форума / группы 
    81                 // type = {idsForum | idsGroup} 
    82                 // clean - очистить базу от "лишних" сообщений 
     86                // type  = {idsForum | idsGroup} 
     87                // clean = true - очистить базу от "лишних" сообщений 
    8388                virtual bool Unsubscribe (const QList<int>& list, AIDSet type, bool clean, IProgress* progress = NULL) = 0; 
    8489 
    85         // deprecated: 
     90        // unused: 
    8691 
    8792                // возвращает существующие id сообщений в заданном интервале 
     93                // используется для вытягивания всей базы RSDN 
     94                // в реализациях хранилищ, отличных от стандартного MySQL, может смело выдавать ошибку 
     95                // с сообщением "не реализованно", т.к. данная функциональность, скорее всего, будет скрыта от пользователя 
    8896                virtual bool GetMessageIds (int from_id, int to_id, QList<int>& list, IProgress* progress = NULL) = 0; 
    8997}; 
  • trunk/storage/mysql_database.cpp

    r23 r44  
    3333                ADatabase::close(); 
    3434 
     35        // получение настроек соединения из конфига 
    3536        QSettings settings; 
    3637 
  • trunk/storage/mysql_database.h

    r12 r44  
    1919                ~AMySQLDatabase (); 
    2020 
    21                 // проверяет открыто ли соединение, если нет, то пытается его открыть и возвращает результат 
     21                // проверяет открыто ли соединение, если нет, то пытается его открыть и возвращает результат (true - успешно) 
     22                // иначе см. описание ADatabaseError 
    2223                bool CheckDatabase (); 
    2324 
    24                 // начало транзакции (автооткрытие соединения) 
     25                // начало транзакции (автооткрытие соединения), true - успешно 
     26                // иначе см. описание ADatabaseError 
    2527                bool Transaction (); 
    2628 
    27                 // принятие транзакции (автооткрытие соединения) 
     29                // принятие транзакции (автооткрытие соединения), true - успешно 
     30                // иначе см. описание ADatabaseError 
    2831                bool Commit (); 
    2932 
    30                 // откат транзакции (автооткрытие соединения) 
     33                // откат транзакции (автооткрытие соединения), true - успешно 
     34                // иначе см. описание ADatabaseError 
    3135                bool Rollback (); 
    3236 
    33                 // создание запроса (автооткрытие соединения) 
     37                // создание запроса (автооткрытие соединения), возвращает объект или NULL в случае ошибки 
     38                // sql      - SQL текст запроса 
     39                // prepared - true, если запрос с параметрами и false для простых запросов 
     40                // в случае ошибки см. описание ADatabaseError 
    3441                AQuery* CreateQuery (const QString& sql, bool prepared = true); 
    3542 
    3643        private: 
    3744 
    38                 // флаг наличия транзакции 
     45                // флаг наличия транзакции (true - транзакция открыта) 
    3946                bool m_transaction; 
    4047 
    41                 // открытие соединения 
     48                // открытие соединения (true - успешно, иначе см. описание ADatabaseError) 
    4249                bool OpenDatabase  (); 
    4350}; 
  • trunk/storage/mysql_storage.cpp

    r43 r44  
    1010AMySQLStorage::AMySQLStorage () : AMySQLDatabase(), IStorage () 
    1111{ 
     12        // установка кода последней ошибки как "ОК" 
    1213        ReturnSuccess(); 
    1314} 
     
    2223{ 
    2324        IStorage::SetLastError("OK"); 
     25 
    2426        return true; 
    2527} 
     
    4244                progress->OnProgress(0); 
    4345 
    44         list.User     = "AAAAAAAAAAA="; 
     46        list.User     = "AAAAAAAAAAA="; // 64х разрядное число 0 в кодировке Base64 
    4547        list.Message  = "AAAAAAAAAAA="; 
    4648        list.Rating   = "AAAAAAAAAAA="; 
     
    784786                        query.Forum.append(info); 
    785787        } 
    786  
     788/* 
    787789        // 
    788790        // составление списка подписаных форумов 
     
    871873                query.BrokenTopic.append(id); 
    872874        } 
    873  
     875*/ 
    874876        return ReturnSuccess(); 
    875877} 
  • trunk/storage/mysql_storage.h

    r43 r44  
    1414//---------------------------------------------------------------------------------------------- 
    1515class AMySQLStorage : 
    16         public AMySQLDatabase, 
    17         public IStorage 
     16        public AMySQLDatabase, // обертка для работы с базами MySQL 
     17        public IStorage        // интерфейс, который возвращает фабрика хранилищ при работе 
    1818{ 
    1919        public: 
     
    2626                // устанавливает IStorage::SetLastError("OK") и возвращает true 
    2727                bool ReturnSuccess (); 
    28                 // устанавливает IStorage::SetLastError и возвращает false 
     28 
     29                // устанавливает IStorage::SetLastError(message) и возвращает false 
    2930                bool ReturnError (const QString& message); 
    3031 
    31         // IStorage 
     32        // IStorage (см. istorage.h) 
    3233        public: 
    3334 
    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); 
    4538                bool GetSubscribedForumList (ASubscribedForumInfoList& list, IProgress* progress = NULL); 
    46  
    47                 // устанавливает список id подписаных форумов 
    4839                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); 
    8751}; 
    8852//---------------------------------------------------------------------------------------------- 
  • trunk/storage/query.h

    r9 r44  
    1616        public: 
    1717 
     18                // database - Qt объект работы с БД 
     19                // sql - текст SQL запроса 
    1820                AQuery  (QSqlDatabase* database, const QString& sql = QString()); 
    1921                ~AQuery (); 
    2022 
    21                 // возвращает строку с последней ошибкой 
     23                // возвращает строку с последней ошибкой на основе информации из драйвера 
    2224                QString LastError (); 
    2325 
    24                 // отображение сообщения о последней ошибке 
     26                // отображение сообщения о последней ошибке на окне parent 
    2527                void ShowError (QWidget* parent); 
    2628}; 
  • trunk/storage/storage_factory.cpp

    r12 r44  
    1212IStorage* AStorageFactory::GetStorage () 
    1313{ 
     14        // чтение типа хранилища из конфига 
    1415        QSettings settings; 
    1516 
     
    1819        if (type == "MySQL") 
    1920                return new AMySQLStorage(); 
    20          
     21 
    2122        return NULL; 
    2223} 
  • trunk/storage/storage_factory.h

    r12 r44  
    1717 
    1818                // возвращает хранилище типа определенного в настройках 
     19                // NULL, если тип не определен 
    1920                static IStorage* GetStorage (); 
    2021}; 
  • trunk/sysheaders.h

    r41 r44  
    4343#include <QCalendarWidget> 
    4444//---------------------------------------------------------------------------------------------- 
     45// макрос для отладки и легкого вывода алерта, в релизе использоваться не должен 
     46//---------------------------------------------------------------------------------------------- 
    4547#define DEBUG_MSG(x) QMessageBox::critical(0, QString::fromUtf8("Ошибка!"), x) 
    4648//---------------------------------------------------------------------------------------------- 
    4749#include <sys/time.h> 
    4850//---------------------------------------------------------------------------------------------- 
    49 class Profiler 
     51// профайлер для отметок времени выполнения кусков кода при отладке, в релизе использоваться не должен 
     52//---------------------------------------------------------------------------------------------- 
     53class AProfiler 
    5054{ 
    5155        public: 
    5256 
    53                 Profiler () 
     57                AProfiler () 
    5458                { 
    5559                        Start(); 
     
    6165                } 
    6266 
     67                // выдает диалог с временем выполнения в ms 
    6368                void Stop () 
    6469                { 
  • trunk/tree_widget_item.h

    r14 r44  
    1010#include "sysheaders.h" 
    1111//---------------------------------------------------------------------------------------------- 
    12 // расширенный элемент дерева 
     12// расширенный элемент дерева, хранящий дополнительную информацию 
     13// используется в дереве форумов, сообщений 
    1314//---------------------------------------------------------------------------------------------- 
    1415template <class T> class ATreeWidgetItem : public QTreeWidgetItem 
  • trunk/webservice.h

    r37 r44  
    3333 
    3434                // парсит ответ со списком сообщений и заносит результат в список 
     35                // результат - пустая строка, или сообщение об ошибке 
    3536                static QString GetMessageList_WebserviceParse (const QString& data, ADataList& list, ARowVersion& row_version, IProgress* progress = NULL); 
    3637 
     
    3940 
    4041                // парсит ответ со списком сообщений и заносит результат в список 
     42                // результат - пустая строка, или сообщение об ошибке 
    4143                static QString GetMessageListByID_WebserviceParse (const QString& data, ADataList& list, IProgress* progress = NULL); 
    4244 
Note: See TracChangeset for help on using the changeset viewer.