Changeset 185


Ignore:
Timestamp:
03/25/09 21:45:00 (3 years ago)
Author:
antonbatenev.ya.ru
Message:

Бранч. Начало переноса оставшегося кода дерева сообщений из транка.

Location:
branches/message_tree
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/message_tree/message_tree.cpp

    r184 r185  
    88//---------------------------------------------------------------------------------------------- 
    99#include "global.h" 
     10#include "form_source.h" 
    1011#include "icon_effect.h" 
     12#include "form_message.h" 
     13#include "form_moderate.h" 
    1114#include "tree_widget_item.h" 
    1215#include "storage/storage_factory.h" 
     
    233236void AMessageTree::context_menu_request (const QPoint& pos) 
    234237{ 
     238        if (currentItem() != NULL) 
     239        { 
     240                if (m_current_forum.IDGroup != SPECIAL_ID_GROUP) 
     241                        m_menu->exec(viewport()->mapToGlobal(pos)); 
     242                else 
     243                { 
     244                        if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 
     245                            m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND) 
     246                        { 
     247                                m_menu_special_edit->setVisible(true); 
     248 
     249                                bool rate_visible = false; 
     250 
     251                                m_menu_special_plus_1->setVisible(rate_visible); 
     252                                m_menu_special_1->setVisible(rate_visible); 
     253                                m_menu_special_2->setVisible(rate_visible); 
     254                                m_menu_special_3->setVisible(rate_visible); 
     255                                m_menu_special_smile->setVisible(rate_visible); 
     256                                m_menu_special_plus->setVisible(rate_visible); 
     257                                m_menu_special_minus->setVisible(rate_visible); 
     258                        } 
     259                        else 
     260                        { 
     261                                m_menu_special_edit->setVisible(false); 
     262 
     263                                bool rate_visible = true; 
     264 
     265                                m_menu_special_plus_1->setVisible(rate_visible); 
     266                                m_menu_special_1->setVisible(rate_visible); 
     267                                m_menu_special_2->setVisible(rate_visible); 
     268                                m_menu_special_3->setVisible(rate_visible); 
     269                                m_menu_special_smile->setVisible(rate_visible); 
     270                                m_menu_special_plus->setVisible(rate_visible); 
     271                                m_menu_special_minus->setVisible(rate_visible); 
     272                        } 
     273 
     274                        m_menu_special->exec(viewport()->mapToGlobal(pos)); 
     275                } 
     276        } 
    235277} 
    236278//---------------------------------------------------------------------------------------------- 
     
    242284//---------------------------------------------------------------------------------------------- 
    243285 
     286void AMessageTree::showSource () 
     287{ 
     288        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     289 
     290        if (item == NULL) 
     291                return; 
     292 
     293        std::auto_ptr<FormSource> form(new FormSource(m_parent, item->pag()->Message)); 
     294 
     295        form->exec(); 
     296} 
     297//---------------------------------------------------------------------------------------------- 
     298 
     299void AMessageTree::selection_changed () 
     300{ 
     301        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     302 
     303        if (item == NULL) 
     304                return; 
     305 
     306        AMessageInfoGUI* info = item->pag(); 
     307 
     308        if (m_main_form != NULL) 
     309                m_main_form->setEnabledAction(aaViewSource, true); 
     310 
     311        // загрузка тела сообщения, если тело еще не загружено 
     312        if (info->IsBodyLoaded == false) 
     313        { 
     314                // получение хранилища 
     315                std::auto_ptr<IAStorage> storage(AStorageFactory::getStorage()); 
     316 
     317                if (storage.get() == NULL) 
     318                { 
     319                        QMessageBox::critical(m_parent, QString::fromUtf8("Ошибка!"), QString::fromUtf8("Не выбрано хранилище данных")); 
     320                        return; 
     321                } 
     322 
     323                // получение доп-информации о сообщении 
     324                QString body; 
     325 
     326                if (storage->getMessageBody(info->ID, body, NULL) == false) 
     327                { 
     328                        storage->showError(m_parent); 
     329                        return; 
     330                } 
     331 
     332                info->IsBodyLoaded = true; 
     333                info->Message      = body; 
     334        } 
     335 
     336        // отображение сообщения 
     337        m_message_view->setMessage(*info, m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND, m_current_forum.Rated); 
     338 
     339        // взвод таймера для пометки как прочитанного 
     340        if (info->IsRead == false) 
     341        { 
     342                int interval = AGlobal::getInstance()->MarkAsReadTimer; 
     343 
     344                if (interval > 0) 
     345                        m_timer.start(interval); 
     346                else 
     347                        m_timer.stop(); 
     348        } 
     349        else 
     350                m_timer.stop(); 
     351 
     352} 
     353//---------------------------------------------------------------------------------------------- 
     354 
     355void AMessageTree::processUrl (const QString& url) 
     356{ 
     357        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     358 
     359        if (item == NULL) 
     360                return; 
     361 
     362        int     rate; 
     363        QString title; 
     364        QString message; 
     365 
     366        // оценки, модерилки 
     367        if (url == "avalon:rate_plus_1") 
     368        { 
     369                rate    = -3; 
     370                title   = QString::fromUtf8("Оценка +1"); 
     371                message = QString::fromUtf8("Поставить оценку +1?"); 
     372        } 
     373        else if (url == "avalon:rate_1") 
     374        { 
     375                rate    = 1; 
     376                title   = QString::fromUtf8("Оценка 1"); 
     377                message = QString::fromUtf8("Оценить сообщение как интересное?"); 
     378        } 
     379        else if (url == "avalon:rate_2") 
     380        { 
     381                rate    = 2; 
     382                title   = QString::fromUtf8("Оценка 2"); 
     383                message = QString::fromUtf8("Сказать спасибо за сообщение?"); 
     384        } 
     385        else if (url == "avalon:rate_3") 
     386        { 
     387                rate    = 3; 
     388                title   = QString::fromUtf8("Оценка 3"); 
     389                message = QString::fromUtf8("Оценить сообщение как супер?"); 
     390        } 
     391        else if (url == "avalon:rate_cross") 
     392        { 
     393                rate    = -1; 
     394                title   = QString::fromUtf8("Удаление оценки"); 
     395                message = QString::fromUtf8("Вы действительно хотите удалить оценку?"); 
     396        } 
     397        else if (url == "avalon:rate_smile") 
     398        { 
     399                rate    = -2; 
     400                title   = QString::fromUtf8("Оценка :)"); 
     401                message = QString::fromUtf8("Оценить сообщение как смешное?"); 
     402        } 
     403        else if (url == "avalon:rate_plus") 
     404        { 
     405                rate    = -4; 
     406                title   = QString::fromUtf8("Оценка +"); 
     407                message = QString::fromUtf8("Согласиться с сообщением?"); 
     408        } 
     409        else if (url == "avalon:rate_minus") 
     410        { 
     411                rate    = 0; 
     412                title   = QString::fromUtf8("Оценка -"); 
     413                message = QString::fromUtf8("Не согласиться с сообщением?"); 
     414        } 
     415        else if (url == "avalon:moderate") 
     416        { 
     417                FormModerate* form = new FormModerate(m_parent, item->pag()->ID); 
     418 
     419                form->setForumTree(m_forum_tree); 
     420 
     421                form->exec(); 
     422 
     423                return; 
     424        } 
     425        else 
     426                return; 
     427 
     428        if (QMessageBox::question(m_parent, title, message, QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) 
     429                return; 
     430 
     431        // получение хранилища 
     432        std::auto_ptr<IAStorage> storage(AStorageFactory::getStorage()); 
     433 
     434        if (storage.get() == NULL) 
     435        { 
     436                QMessageBox::critical(m_parent, QString::fromUtf8("Ошибка!"), QString::fromUtf8("Не выбрано хранилище данных")); 
     437                return; 
     438        } 
     439 
     440        // подготовка данных 
     441        ARating2Send info; 
     442 
     443        info.IDMessage = item->pag()->ID; 
     444        info.Rate      = rate; 
     445        info.Date      = QDateTime::currentDateTime(); 
     446        info.ID        = info.Date.toTime_t(); // это локальный ID 
     447 
     448        // добавление рейтинга 
     449        if (storage->addRating2Send(info, NULL) == false) 
     450        { 
     451                storage->showError(m_parent); 
     452                return; 
     453        } 
     454 
     455        // обновление в дереве форумов количества непрочитаных сообщений 
     456        if (m_forum_tree != NULL) 
     457                m_forum_tree->reloadUnread(false); 
     458} 
     459//---------------------------------------------------------------------------------------------- 
     460 
     461void AMessageTree::menu_reply_triggered () 
     462{ 
     463        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     464 
     465        if (item == NULL) 
     466                return; 
     467 
     468        FormMessage* form = new FormMessage(NULL, true, *(item->pag())); 
     469 
     470        form->setForumTree(m_forum_tree); 
     471        form->setMainForm(m_main_form); 
     472 
     473        form->show(); 
     474} 
     475//---------------------------------------------------------------------------------------------- 
     476 
     477void AMessageTree::item_double_clicked (QTreeWidgetItem* item, int /*column*/) 
     478{ 
     479        if (item == NULL) 
     480                return; 
     481 
     482        setCurrentItem(item); 
     483 
     484        if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 
     485              m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND  || 
     486              m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 
     487        )) 
     488                return; 
     489 
     490        menu_special_edit_triggered(); 
     491} 
     492//---------------------------------------------------------------------------------------------- 
     493 
     494void AMessageTree::menu_special_edit_triggered () 
     495{ 
     496        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     497 
     498        if (item == NULL) 
     499                return; 
     500 
     501        if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 
     502              m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND  || 
     503              m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 
     504        )) 
     505                return; 
     506 
     507        if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND) 
     508        { 
     509                FormMessage* form = new FormMessage(NULL, false, *(item->pag()), item->pag()->Special); 
     510 
     511                form->setForumTree(m_forum_tree); 
     512                form->setMainForm(m_main_form); 
     513 
     514                form->show(); 
     515        } 
     516        else if (m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND) 
     517        { 
     518                FormModerate* form = new FormModerate(m_parent, item->pag()->ID, item->pag()->Special); 
     519 
     520                form->setForumTree(m_forum_tree); 
     521 
     522                form->exec(); 
     523 
     524                return; 
     525        } 
     526} 
     527//---------------------------------------------------------------------------------------------- 
     528 
     529void AMessageTree::menu_special_delete_triggered () 
     530{ 
     531        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     532 
     533        if (item == NULL) 
     534                return; 
     535 
     536        if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 
     537              m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND  || 
     538              m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 
     539        )) 
     540                return; 
     541 
     542        std::auto_ptr<IAStorage> storage(AStorageFactory::getStorage()); 
     543 
     544        if (storage.get() == NULL) 
     545        { 
     546                QMessageBox::critical(m_parent, QString::fromUtf8("Ошибка!"), QString::fromUtf8("Не выбрано хранилище данных")); 
     547                return; 
     548        } 
     549 
     550        if (storage->deleteSpecial(QList<int>() << item->pag()->Special, m_current_forum.ID, NULL) == false) 
     551        { 
     552                storage->showError(m_parent); 
     553                return; 
     554        } 
     555 
     556        // обновление в дереве форумов количества непрочитаных сообщений 
     557        if (m_forum_tree != NULL) 
     558                m_forum_tree->reloadUnread(true); 
     559} 
     560//---------------------------------------------------------------------------------------------- 
     561 
     562void AMessageTree::changeRating (int new_rate) 
     563{ 
     564        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     565 
     566        if (item == NULL) 
     567                return; 
     568 
     569        if (m_current_forum.ID != SPECIAL_ID_FORUM_RATING2SEND) 
     570                return; 
     571 
     572        std::auto_ptr<IAStorage> storage(AStorageFactory::getStorage()); 
     573 
     574        if (storage.get() == NULL) 
     575        { 
     576                QMessageBox::critical(m_parent, QString::fromUtf8("Ошибка!"), QString::fromUtf8("Не выбрано хранилище данных")); 
     577                return; 
     578        } 
     579 
     580        if (storage->changeRating(item->pag()->Special, new_rate, NULL) == false) 
     581        { 
     582                storage->showError(m_parent); 
     583                return; 
     584        } 
     585 
     586        if (new_rate == -4) 
     587                item->setIcon(0, m_rating_plus); 
     588        else if (new_rate == -3) 
     589                item->setIcon(0, m_rating_plus_1); 
     590        else if (new_rate == -2) 
     591                item->setIcon(0, m_rating_smile); 
     592        else if (new_rate == -1) 
     593                item->setIcon(0, m_rating_cross); 
     594        else if (new_rate == 0) 
     595                item->setIcon(0, m_rating_minus); 
     596        else if (new_rate == 1) 
     597                item->setIcon(0, m_rating_1); 
     598        else if (new_rate == 2) 
     599                item->setIcon(0, m_rating_2); 
     600        else if (new_rate == 3) 
     601                item->setIcon(0, m_rating_3); 
     602} 
     603//---------------------------------------------------------------------------------------------- 
     604 
     605void AMessageTree::menu_special_plus_1_triggered () 
     606{ 
     607        changeRating(-3); 
     608} 
     609//---------------------------------------------------------------------------------------------- 
     610 
     611void AMessageTree::menu_special_1_triggered () 
     612{ 
     613        changeRating(1); 
     614} 
     615//---------------------------------------------------------------------------------------------- 
     616 
     617void AMessageTree::menu_special_2_triggered () 
     618{ 
     619        changeRating(2); 
     620} 
     621//---------------------------------------------------------------------------------------------- 
     622 
     623void AMessageTree::menu_special_3_triggered () 
     624{ 
     625        changeRating(3); 
     626} 
     627//---------------------------------------------------------------------------------------------- 
     628 
     629void AMessageTree::menu_special_smile_triggered () 
     630{ 
     631        changeRating(-2); 
     632} 
     633//---------------------------------------------------------------------------------------------- 
     634 
     635void AMessageTree::menu_special_plus_triggered () 
     636{ 
     637        changeRating(-4); 
     638} 
     639//---------------------------------------------------------------------------------------------- 
     640 
     641void AMessageTree::menu_special_minus_triggered () 
     642{ 
     643        changeRating(0); 
     644} 
     645//---------------------------------------------------------------------------------------------- 
     646 
     647void AMessageTree::getSelectedPath (QList<int>& path) 
     648{ 
     649        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     650 
     651        if (item == NULL) 
     652                return; 
     653 
     654        path.insert(0, item->pag()->ID); 
     655 
     656        while (true) 
     657        { 
     658                item = static_cast<MessageTreeWidgetItem*>(item->parent()); 
     659 
     660                if (item != NULL) 
     661                        path.insert(0, item->pag()->ID); 
     662                else 
     663                        break; 
     664        } 
     665} 
     666//---------------------------------------------------------------------------------------------- 
     667 
     668bool AMessageTree::selectByPath (const QList<int>* path) 
     669{ 
     670        if (path == NULL || path->count() == 0) 
     671                return false; 
     672 
     673        int root_id = path->at(0); 
     674 
     675        MessageTreeWidgetItem* root_item = NULL; 
     676 
     677        // поиск в корне 
     678        for (int i = 0; i < topLevelItemCount(); i++) 
     679        { 
     680                MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(topLevelItem(i)); 
     681 
     682                AMessageInfoGUI* info = item->pag(); 
     683 
     684                if (item->pag()->ID == root_id) 
     685                { 
     686                        root_item = item; 
     687 
     688                        // переход на корень (и его загрузка, при необходимости) 
     689                        if (info->IsInfoLoaded == false) 
     690                                setCurrentItem(root_item); 
     691 
     692                        // ... и разворот, если ищется некорневое сообщение 
     693                        if (path->count() > 1 && root_item->isExpanded() == false) 
     694                                root_item->setExpanded(true); 
     695 
     696                        break; 
     697                } 
     698        } 
     699 
     700        if (root_item == NULL) 
     701                return false; 
     702 
     703        // поиск в дочерних 
     704        for (int i = 1; i < path->count(); i++) 
     705        { 
     706                bool found = false; 
     707 
     708                int next_id = path->at(i); 
     709 
     710                for (int j = 0; j < root_item->childCount(); j++) 
     711                { 
     712                        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(root_item->child(j)); 
     713 
     714                        if (item->pag()->ID == next_id) 
     715                        { 
     716                                found     = true; 
     717                                root_item = item; 
     718 
     719                                if (i + 1 != path->count() && root_item->isExpanded() == false) 
     720                                        root_item->setExpanded(true); 
     721 
     722                                break; 
     723                        } 
     724                } 
     725 
     726                if (found == false) 
     727                { 
     728                        setCurrentItem(root_item); 
     729 
     730                        return false; 
     731                } 
     732        } 
     733 
     734        setCurrentItem(root_item); 
     735 
     736        return true; 
     737} 
     738//---------------------------------------------------------------------------------------------- 
     739 
     740bool AMessageTree::checkCurrentItem (bool select_first) 
     741{ 
     742        if (currentItem() != NULL) 
     743                return true; 
     744 
     745        if (topLevelItemCount() == 0) 
     746                return false; 
     747 
     748        if (select_first == true) 
     749                setCurrentItem(topLevelItem(0)); 
     750        else 
     751        { 
     752                // последний топик в списке 
     753                MessageTreeWidgetItem* topic_item = static_cast<MessageTreeWidgetItem*>(topLevelItem(topLevelItemCount() - 1)); 
     754 
     755                // если элемент еще не загружен, то загружаем 
     756                if (topic_item->pag()->IsInfoLoaded == false) 
     757                        setCurrentItem(topic_item); 
     758 
     759                // если дочерние элементы еще не загружены, то загружаем 
     760                if (topic_item->pag()->IsChildLoaded == false) 
     761                        topic_item->setExpanded(true); 
     762 
     763                // выделяем последний лист в топике 
     764                MessageTreeWidgetItem* last_item = static_cast<MessageTreeWidgetItem*>(ATreeWidgetItem::lastLeaf(topic_item)); 
     765 
     766                setCurrentItem(last_item); 
     767        } 
     768 
     769        return true; 
     770} 
     771//---------------------------------------------------------------------------------------------- 
     772 
     773void AMessageTree::gotoNextUnreadArticle () 
     774{ 
     775        if (checkCurrentItem() == false) 
     776                return; 
     777NO_COMPILE_THIS!!! 
     778        MessageTreeWidgetItem* item = static_cast<MessageTreeWidgetItem*>(currentItem()); 
     779 
     780        while (true) 
     781        { 
     782                AMessageInfoGUI* info = item->pag(); 
     783 
     784                if (info->HasUnreadChild != 0) 
     785                        item->setExpanded(true); 
     786 
     787                MessageTreeWidgetItem* next_item = static_cast<MessageTreeWidgetItem*>(ATreeWidgetItem::nextItem(item)); 
     788 
     789                if (next_item == NULL) 
     790                        item = static_cast<MessageTreeWidgetItem*>(ATreeWidgetItem::firstSibling(ATreeWidgetItem::rootItem(item))); 
     791                else 
     792                        item = next_item; 
     793 
     794                info = item->pag(); 
     795 
     796                if (info->IsInfoLoaded == false) 
     797                        item = static_cast<MessageTreeWidgetItem*>(ATreeWidgetItem::firstSibling(ATreeWidgetItem::rootItem(item))); 
     798 
     799                if (info->IsRead == false) 
     800                        break; 
     801        } 
     802 
     803        setCurrentItem(item); 
     804} 
     805//---------------------------------------------------------------------------------------------- 
     806 
     807void AMessageTree::gotoNextUnreadThread () 
     808{ 
     809} 
     810//---------------------------------------------------------------------------------------------- 
     811 
     812void AMessageTree::menu_mark_message_as_read_triggered () 
     813{ 
     814} 
     815//---------------------------------------------------------------------------------------------- 
     816 
     817void AMessageTree::menu_mark_message_as_unread_triggered () 
     818{ 
     819} 
     820//---------------------------------------------------------------------------------------------- 
     821 
     822void AMessageTree::menu_mark_thread_as_read_triggered () 
     823{ 
     824} 
     825//---------------------------------------------------------------------------------------------- 
     826 
     827void AMessageTree::menu_mark_thread_as_unread_triggered () 
     828{ 
     829} 
     830//---------------------------------------------------------------------------------------------- 
     831 
    244832void AMessageTree::timer_on_timer () 
    245 { 
    246 } 
    247 //---------------------------------------------------------------------------------------------- 
    248  
    249 void AMessageTree::showSource () 
    250 { 
    251 } 
    252 //---------------------------------------------------------------------------------------------- 
    253  
    254 void AMessageTree::selection_changed () 
    255 { 
    256 } 
    257 //---------------------------------------------------------------------------------------------- 
    258  
    259 void AMessageTree::menu_mark_message_as_read_triggered () 
    260 { 
    261 } 
    262 //---------------------------------------------------------------------------------------------- 
    263  
    264 void AMessageTree::menu_mark_message_as_unread_triggered () 
    265 { 
    266 } 
    267 //---------------------------------------------------------------------------------------------- 
    268  
    269 void AMessageTree::menu_mark_thread_as_read_triggered () 
    270 { 
    271 } 
    272 //---------------------------------------------------------------------------------------------- 
    273  
    274 void AMessageTree::menu_mark_thread_as_unread_triggered () 
    275 { 
    276 } 
    277 //---------------------------------------------------------------------------------------------- 
    278  
    279 void AMessageTree::menu_reply_triggered () 
    280 { 
    281 } 
    282 //---------------------------------------------------------------------------------------------- 
    283  
    284 void AMessageTree::processUrl (const QString& url) 
    285 { 
    286 } 
    287 //---------------------------------------------------------------------------------------------- 
    288  
    289 void AMessageTree::gotoNextUnreadArticle () 
    290 { 
    291 } 
    292 //---------------------------------------------------------------------------------------------- 
    293  
    294 void AMessageTree::gotoNextUnreadThread () 
    295 { 
    296 } 
    297 //---------------------------------------------------------------------------------------------- 
    298  
    299 void AMessageTree::menu_special_delete_triggered () 
    300 { 
    301 } 
    302 //---------------------------------------------------------------------------------------------- 
    303  
    304 void AMessageTree::item_double_clicked (QTreeWidgetItem* item, int /*column*/) 
    305 { 
    306 } 
    307 //---------------------------------------------------------------------------------------------- 
    308  
    309 void AMessageTree::menu_special_edit_triggered () 
    310 { 
    311 } 
    312 //---------------------------------------------------------------------------------------------- 
    313  
    314 void AMessageTree::menu_special_plus_1_triggered () 
    315 { 
    316 } 
    317 //---------------------------------------------------------------------------------------------- 
    318  
    319 void AMessageTree::menu_special_1_triggered () 
    320 { 
    321 } 
    322 //---------------------------------------------------------------------------------------------- 
    323  
    324 void AMessageTree::menu_special_2_triggered () 
    325 { 
    326 } 
    327 //---------------------------------------------------------------------------------------------- 
    328  
    329 void AMessageTree::menu_special_3_triggered () 
    330 { 
    331 } 
    332 //---------------------------------------------------------------------------------------------- 
    333  
    334 void AMessageTree::menu_special_smile_triggered () 
    335 { 
    336 } 
    337 //---------------------------------------------------------------------------------------------- 
    338  
    339 void AMessageTree::menu_special_plus_triggered () 
    340 { 
    341 } 
    342 //---------------------------------------------------------------------------------------------- 
    343  
    344 void AMessageTree::menu_special_minus_triggered () 
    345 { 
    346 } 
    347 //---------------------------------------------------------------------------------------------- 
    348  
    349 void AMessageTree::getSelectedPath (QList<int>& path) 
    350 { 
    351 } 
    352 //---------------------------------------------------------------------------------------------- 
    353  
    354 bool AMessageTree::selectByPath (const QList<int>* path) 
    355833{ 
    356834} 
  • branches/message_tree/message_tree.h

    r183 r185  
    158158                void expandUnreadChild (QTreeWidgetItem* widget_item); 
    159159 
     160                /*! 
     161                 * \brief Функция проверки установки выделения, в случае отсутствия выделения, выделяет элемент, согласно параметру select_first 
     162                 * \param select_first Флаг выделения, если имеет значение true, то выделяется первый элемент, иначе, последний (из корневых) 
     163                 * \return true, если есть выделение, false при отсутствии элементов 
     164                 */ 
     165                bool checkCurrentItem (bool select_first = true); 
     166 
     167                /*! 
     168                 * \brief Редактирование оценки к отправке 
     169                 * \param new_rate Новая оценка 
     170                 */ 
     171                void changeRating (int new_rate); 
     172 
    160173        // IMessageTree 
    161174        public: 
  • branches/message_tree/version.h

    r184 r185  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Срд Мар 25 17:57:47 MSK 2009" 
     22#define AVALON_DATE "Срд Мар 25 20:32:14 MSK 2009" 
    2323 
    2424#endif 
Note: See TracChangeset for help on using the changeset viewer.