Changeset 299 for branches


Ignore:
Timestamp:
08/10/09 21:07:05 (3 years ago)
Author:
antonbatenev.ya.ru
Message:

#55, #56 - "Мои сообщения" и "Ответы мне", доделана корректная пометка количества сообщений по одиночке

Location:
branches/abbat
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/abbat/message_tree.cpp

    r298 r299  
    992992                // спец-форумы "Мои сообщения" и "Ответы мне" 
    993993                if (m_current_forum.ID == SPECIAL_ID_FORUM_MY_MESSAGES) 
    994                         m_forum_tree->changeUnreadCount(-1, 0 /* TODO: нет информации о том, является ли это сообщение ответом мне */, (info->IDParent == 0 ? -1 : 0), info->IDForum); 
     994                { 
     995                        if (info->Special != 0 && info->Special == global->Me.ID) 
     996                        { 
     997                                // мое сообщение одновременно является ответом мне 
     998                                m_forum_tree->changeUnreadCount(-1, -1, (info->IDParent == 0 ? -1 : 0), info->IDForum); 
     999                                m_forum_tree->changeUnreadCount(-1, -1, 0, SPECIAL_ID_FORUM_MY_MESSAGES); 
     1000                        } 
     1001                        else 
     1002                                m_forum_tree->changeUnreadCount(-1, 0, (info->IDParent == 0 ? -1 : 0), info->IDForum); 
     1003                } 
    9951004                else if (m_current_forum.ID == SPECIAL_ID_FORUM_ANSWERS_TO_ME) 
    9961005                { 
     
    10691078                // спец-форумы "Мои сообщения" и "Ответы мне" 
    10701079                if (m_current_forum.ID == SPECIAL_ID_FORUM_MY_MESSAGES) 
    1071                         m_forum_tree->changeUnreadCount(1, 0 /* TODO: нет информации о том, является ли это сообщение ответом мне */, (info->IDParent == 0 ? 1 : 0), info->IDForum); 
     1080                { 
     1081                        if (info->Special != 0 && info->Special == global->Me.ID) 
     1082                        { 
     1083                                // мое сообщение одновременно является ответом мне 
     1084                                m_forum_tree->changeUnreadCount(1, 1, (info->IDParent == 0 ? 1 : 0), info->IDForum); 
     1085                                m_forum_tree->changeUnreadCount(1, 1, 0, SPECIAL_ID_FORUM_MY_MESSAGES); 
     1086                        } 
     1087                        else 
     1088                                m_forum_tree->changeUnreadCount(1, 0, (info->IDParent == 0 ? 1 : 0), info->IDForum); 
     1089                } 
    10721090                else if (m_current_forum.ID == SPECIAL_ID_FORUM_ANSWERS_TO_ME) 
    10731091                { 
  • branches/abbat/storage/mysql_storage.cpp

    r298 r299  
    23162316 
    23172317        // 
     2318        // получение флага ответа мне (только для спец-форума "Мои сообщения") 
     2319        // 
     2320 
     2321        if (id_forum == SPECIAL_ID_FORUM_MY_MESSAGES) 
     2322        { 
     2323                sql  = ""; 
     2324                sql += "SELECT\n"; 
     2325                sql += "        `m1`.`id`\n"; 
     2326                sql += "FROM\n"; 
     2327                sql += "        `message` `m1`\n"; 
     2328                sql += "                INNER JOIN\n"; 
     2329                sql += "        `message` `m2`\n"; 
     2330                sql += "                ON\n"; 
     2331                sql += "        `m1`.`id` IN (" + ids + ") AND\n"; 
     2332                sql += "        `m1`.`id_parent` <> 0 AND\n"; 
     2333                sql += "        `m1`.`id_parent`  = `m2`.`id` AND\n"; 
     2334                sql += "        `m2`.`id_user`    = " + QString::number(id_me); 
     2335 
     2336                std::auto_ptr<AQuery> query_select_my_me(createQuery(sql, false)); 
     2337 
     2338                if (query_select_my_me.get() == NULL) 
     2339                        return returnError(AMySQLDatabase::getLastError()); 
     2340 
     2341                query_select_my_me->setForwardOnly(true); 
     2342 
     2343                if (query_select_my_me->exec() == false) 
     2344                        return returnError(query_select_my_me->getLastError()); 
     2345 
     2346                while (query_select_my_me->next()) 
     2347                { 
     2348                        int id = query_select_my_me->value(0).toInt(); 
     2349 
     2350                        for (int i = 0; i < list.count(); i++) 
     2351                        { 
     2352                                AMessageInfoGUI* info = list[i]; 
     2353 
     2354                                if (id == info->ID) 
     2355                                { 
     2356                                        info->Special = id_me; 
     2357                                        break; 
     2358                                } 
     2359                        } 
     2360                } 
     2361        } 
     2362 
     2363        // 
    23182364        // получение списка непрочитаных топиков 
    23192365        // 
  • branches/abbat/storage/sqlite_storage.cpp

    r298 r299  
    22802280 
    22812281        // 
     2282        // получение флага ответа мне (только для спец-форума "Мои сообщения") 
     2283        // 
     2284 
     2285        if (id_forum == SPECIAL_ID_FORUM_MY_MESSAGES) 
     2286        { 
     2287                sql  = ""; 
     2288                sql += "SELECT\n"; 
     2289                sql += "        `m1`.`id`\n"; 
     2290                sql += "FROM\n"; 
     2291                sql += "        `message` `m1`\n"; 
     2292                sql += "                INNER JOIN\n"; 
     2293                sql += "        `message` `m2`\n"; 
     2294                sql += "                ON\n"; 
     2295                sql += "        `m1`.`id` IN (" + ids + ") AND\n"; 
     2296                sql += "        `m1`.`id_parent` <> 0 AND\n"; 
     2297                sql += "        `m1`.`id_parent`  = `m2`.`id` AND\n"; 
     2298                sql += "        `m2`.`id_user`    = " + QString::number(id_me); 
     2299 
     2300                std::auto_ptr<AQuery> query_select_my_me(createQuery(sql, false)); 
     2301 
     2302                if (query_select_my_me.get() == NULL) 
     2303                        return returnError(ASQLiteDatabase::getLastError()); 
     2304 
     2305                query_select_my_me->setForwardOnly(true); 
     2306 
     2307                if (query_select_my_me->exec() == false) 
     2308                        return returnError(query_select_my_me->getLastError()); 
     2309 
     2310                while (query_select_my_me->next()) 
     2311                { 
     2312                        int id = query_select_my_me->value(0).toInt(); 
     2313 
     2314                        for (int i = 0; i < list.count(); i++) 
     2315                        { 
     2316                                AMessageInfoGUI* info = list[i]; 
     2317 
     2318                                if (id == info->ID) 
     2319                                { 
     2320                                        info->Special = id_me; 
     2321                                        break; 
     2322                                } 
     2323                        } 
     2324                } 
     2325        } 
     2326 
     2327        // 
    22822328        // получение списка непрочитаных топиков и их отметка в запрошенном списке 
    22832329        // 
  • branches/abbat/version.h

    r298 r299  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Пнд Авг 10 19:55:12 MSD 2009" 
     22#define AVALON_DATE "Пнд Авг 10 20:55:41 MSD 2009" 
    2323 
    2424#endif 
Note: See TracChangeset for help on using the changeset viewer.