Changeset 207
- Timestamp:
- 04/05/09 03:29:19 (3 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 15 edited
-
form_main.cpp (modified) (1 diff)
-
form_message.cpp (modified) (4 diffs)
-
form_message.h (modified) (2 diffs)
-
form_message_ui.cpp (modified) (1 diff)
-
form_message_ui.h (modified) (1 diff)
-
forum_tree.cpp (modified) (1 diff)
-
icons/draft24.png (added)
-
message_tree.cpp (modified) (8 diffs)
-
message_tree.h (modified) (1 diff)
-
model/forum.h (modified) (1 diff)
-
model/message.h (modified) (1 diff)
-
resource.qrc (modified) (1 diff)
-
storage/istorage.h (modified) (1 diff)
-
storage/mysql_storage.cpp (modified) (10 diffs)
-
storage/mysql_storage.h (modified) (1 diff)
-
version.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/form_main.cpp
r173 r207 149 149 AModerate2SendList moderates; 150 150 151 if (storage->getMessage2SendList(messages_temp, NULL) == false)151 if (storage->getMessage2SendList(messages_temp, false, NULL) == false) 152 152 { 153 153 storage->showError(this); -
trunk/form_message.cpp
r198 r207 137 137 // установка обработчиков формы 138 138 connect(m_button_send, SIGNAL(triggered()), this, SLOT(button_send_triggered())); 139 connect(m_button_draft, SIGNAL(triggered()), this, SLOT(button_draft_triggered())); 139 140 connect(m_text_subject, SIGNAL(textChanged(const QString&)), this, SLOT(text_subject_text_changed(const QString&))); 140 141 connect(m_tab_message, SIGNAL(currentChanged(int)), this, SLOT(tab_changed(int))); … … 170 171 //---------------------------------------------------------------------------------------------- 171 172 172 void FormMessage:: button_send_triggered ()173 void FormMessage::sendMessage (bool draft) 173 174 { 174 175 // получение хранилища … … 189 190 info.Message = m_text_source->toPlainText(); 190 191 info.Date = QDateTime::currentDateTime(); 192 info.Draft = draft; 191 193 192 194 if (m_edit_id == 0) … … 218 220 219 221 deleteLater(); 222 } 223 //---------------------------------------------------------------------------------------------- 224 225 void FormMessage::button_send_triggered () 226 { 227 sendMessage(false); 228 } 229 //---------------------------------------------------------------------------------------------- 230 231 void FormMessage::button_draft_triggered () 232 { 233 sendMessage(true); 220 234 } 221 235 //---------------------------------------------------------------------------------------------- -
trunk/form_message.h
r197 r207 72 72 void closeEvent (QCloseEvent* event); 73 73 74 /*! 75 * \brief Поместить сообщение к отправке. 76 * \param draft - флаг черновика 77 */ 78 void sendMessage (bool draft); 79 74 80 private slots: 75 81 … … 83 89 */ 84 90 void button_send_triggered (); 91 92 /*! 93 * \brief В черновики. 94 */ 95 void button_draft_triggered (); 85 96 86 97 /*! -
trunk/form_message_ui.cpp
r172 r207 26 26 27 27 m_toolbar_message->addAction(m_button_send); 28 29 m_button_draft = new QAction(m_toolbar_message); 30 m_button_draft->setIcon(QIcon(":/icons/draft24.png")); 31 m_button_draft->setText(QString::fromUtf8("в черновики")); 32 33 m_toolbar_message->addAction(m_button_draft); 28 34 29 35 m_button_smile = new QAction(m_toolbar_message); -
trunk/form_message_ui.h
r172 r207 44 44 45 45 QAction* m_button_send; /*!< \brief Кнопка "отправить" */ 46 QAction* m_button_draft; /*!< \brief Кнопка "в черновики" */ 46 47 QAction* m_button_smile; /*!< \brief Кнопка "смайл" */ 47 48 QAction* m_button_bold; /*!< \brief Кнопка "жирный" */ -
trunk/forum_tree.cpp
r199 r207 238 238 special_moderate.RateLimit = 0; 239 239 240 AForumInfo special_draft; 241 242 special_draft.ID = SPECIAL_ID_FORUM_DRAFTS; 243 special_draft.IDGroup = special_group.Group.ID; 244 special_draft.ShortName = QString::fromUtf8("drafts"); 245 special_draft.Name = QString::fromUtf8("Черновики"); 246 special_draft.Rated = false; 247 special_draft.InTop = false; 248 special_draft.RateLimit = 0; 249 240 250 special_group.Forums.append(special_message); 241 251 special_group.Forums.append(special_rating); 242 252 special_group.Forums.append(special_moderate); 253 special_group.Forums.append(special_draft); 243 254 244 255 m_specail_group_count = 1; -
trunk/message_tree.cpp
r199 r207 240 240 else 241 241 { 242 if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 243 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND) 242 if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 243 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND || 244 m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS 245 ) 244 246 { 245 247 m_menu_special_edit->setVisible(true); … … 411 413 // специальная группа форумов 412 414 if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND) 413 loadMessage2Send( );415 loadMessage2Send(false); 414 416 else if (m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND) 415 417 loadRating2Send(); 416 418 else if (m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND) 417 419 loadModerate2Send(); 420 else if (m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS) 421 loadMessage2Send(true); 418 422 } 419 423 } … … 780 784 781 785 // отображение сообщения 782 m_message_view->setMessage(*info, m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND , m_current_forum.Rated);786 m_message_view->setMessage(*info, m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS, m_current_forum.Rated); 783 787 784 788 // взвод таймера для пометки как прочитанного … … 1144 1148 //---------------------------------------------------------------------------------------------- 1145 1149 1146 void AMessageTree::loadMessage2Send ( )1150 void AMessageTree::loadMessage2Send (bool drafts) 1147 1151 { 1148 1152 std::auto_ptr<IAStorage> storage(AStorageFactory::getStorage()); … … 1156 1160 AMessageInfoList list; 1157 1161 1158 if (storage->getMessage2SendList(list, NULL) == false)1162 if (storage->getMessage2SendList(list, drafts, NULL) == false) 1159 1163 { 1160 1164 storage->showError(m_parent); … … 1663 1667 return; 1664 1668 1665 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1666 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1667 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 1669 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1670 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1671 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND || 1672 m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS 1668 1673 )) 1669 1674 return; … … 1696 1701 setCurrentItem(item); 1697 1702 1698 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1699 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1700 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 1703 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1704 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1705 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND || 1706 m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS 1701 1707 )) 1702 1708 return; … … 1713 1719 return; 1714 1720 1715 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1716 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1717 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND 1721 if (!(m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || 1722 m_current_forum.ID == SPECIAL_ID_FORUM_RATING2SEND || 1723 m_current_forum.ID == SPECIAL_ID_FORUM_MODERATE2SEND || 1724 m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS 1718 1725 )) 1719 1726 return; 1720 1727 1721 if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND )1728 if (m_current_forum.ID == SPECIAL_ID_FORUM_MESSAGE2SEND || m_current_forum.ID == SPECIAL_ID_FORUM_DRAFTS) 1722 1729 { 1723 1730 FormMessage* form = new FormMessage(NULL, false, *(item->pag()), item->pag()->Special); -
trunk/message_tree.h
r198 r207 202 202 /*! 203 203 * \brief Загрузить сообщения к отправке 204 */ 205 void loadMessage2Send (); 204 * \param drafts - Флаг черновиков 205 */ 206 void loadMessage2Send (bool drafts); 206 207 207 208 /*! -
trunk/model/forum.h
r199 r207 78 78 const int SPECIAL_ID_FORUM_MODERATE2SEND = -3; 79 79 80 /*! 81 * \brief Константа для спец-форума "черновики" 82 */ 83 const int SPECIAL_ID_FORUM_DRAFTS = -4; 84 80 85 #endif -
trunk/model/message.h
r203 r207 147 147 QString Message; /*!< \brief Сообщение */ 148 148 QDateTime Date; /*!< \brief Дата */ 149 bool Draft; /*!< \brief Флаг черновика */ 149 150 } AMessage2Send; 150 151 -
trunk/resource.qrc
r175 r207 29 29 <file>icons/synchronize24.png</file> 30 30 <file>icons/reply24.png</file> 31 <file>icons/draft24.png</file> 31 32 <file>icons/new24.png</file> 32 33 <file>icons/nextunreadarticle24.png</file> -
trunk/storage/istorage.h
r196 r207 224 224 * \brief Возвращает список всех сообщений к отправке. 225 225 * \param list Список сообщений к отправке. 226 * \param progress Прогресс выполнения операции. 227 */ 228 virtual bool getMessage2SendList (AMessageInfoList& list, IProgress* progress = NULL) = 0; 226 * \param drafts Флаг выбора черновиков. 227 * \param progress Прогресс выполнения операции. 228 */ 229 virtual bool getMessage2SendList (AMessageInfoList& list, bool drafts, IProgress* progress = NULL) = 0; 229 230 230 231 /*! -
trunk/storage/mysql_storage.cpp
r206 r207 1760 1760 sql += " COUNT(*)\n"; 1761 1761 sql += "FROM\n"; 1762 sql += " `message2send`"; 1762 sql += " `message2send`\n"; 1763 sql += "WHERE\n"; 1764 sql += " `draft` = false\n"; 1763 1765 1764 1766 std::auto_ptr<AQuery> query_message(createQuery(sql, false)); … … 1832 1834 if (info_moderate.Count > 0) 1833 1835 list.append(info_moderate); 1836 1837 // черновики 1838 sql = ""; 1839 sql += "SELECT\n"; 1840 sql += " COUNT(*)\n"; 1841 sql += "FROM\n"; 1842 sql += " `message2send`\n"; 1843 sql += "WHERE\n"; 1844 sql += " `draft` = true\n"; 1845 1846 std::auto_ptr<AQuery> query_draft(createQuery(sql, false)); 1847 1848 if (query_draft.get() == NULL) 1849 return returnError(AMySQLDatabase::getLastError()); 1850 1851 if (query_draft->exec() == false) 1852 return returnError(query_draft->getLastError()); 1853 1854 query_draft->next(); 1855 1856 AUnreadForumCountInfo info_draft; 1857 1858 info_draft.IDForum = SPECIAL_ID_FORUM_DRAFTS; 1859 info_draft.Count = query_draft->value(0).toInt(); 1860 info_draft.CountMy = 0; 1861 1862 if (info_draft.Count > 0) 1863 list.append(info_draft); 1834 1864 1835 1865 return returnSuccess(); … … 2880 2910 sql += " `subject`,\n"; 2881 2911 sql += " `message`,\n"; 2882 sql += " `date`\n"; 2912 sql += " `date`,\n"; 2913 sql += " `draft`\n"; 2883 2914 sql += ")\n"; 2884 2915 sql += "VALUES\n"; … … 2889 2920 sql += " :subject,\n"; 2890 2921 sql += " :message,\n"; 2891 sql += " :date\n"; 2922 sql += " :date,\n"; 2923 sql += " :draft\n"; 2892 2924 sql += ")\n"; 2893 2925 sql += "ON DUPLICATE KEY UPDATE\n"; … … 2896 2928 sql += " `subject` = :u_subject,\n"; 2897 2929 sql += " `message` = :u_message,\n"; 2898 sql += " `date` = :u_date"; 2930 sql += " `date` = :u_date,\n"; 2931 sql += " `draft` = :u_draft"; 2899 2932 2900 2933 std::auto_ptr<AQuery> query(createQuery(sql)); … … 2909 2942 query->bindValue(":message", info.Message); 2910 2943 query->bindValue(":date", info.Date); 2944 query->bindValue(":draft", info.Draft); 2911 2945 2912 2946 query->bindValue(":u_id_parent", info.IDParent); … … 2915 2949 query->bindValue(":u_message", info.Message); 2916 2950 query->bindValue(":u_date", info.Date); 2951 query->bindValue(":u_draft", info.Draft); 2917 2952 2918 2953 if (query->exec() == false) … … 2923 2958 //---------------------------------------------------------------------------------------------- 2924 2959 2925 bool AMySQLStorage::getMessage2SendList (AMessageInfoList& list, IProgress* progress)2960 bool AMySQLStorage::getMessage2SendList (AMessageInfoList& list, bool drafts, IProgress* progress) 2926 2961 { 2927 2962 if (progress != NULL) … … 2939 2974 sql += "FROM\n"; 2940 2975 sql += " `message2send`\n"; 2976 sql += "WHERE\n"; 2977 sql += (QString)" `draft` = " + (drafts == true ? "true" : "false") + "\n"; 2941 2978 sql += "ORDER BY\n"; 2942 2979 sql += " `date` DESC"; … … 3528 3565 sql += "DELETE FROM\n"; 3529 3566 3530 if (id_special == SPECIAL_ID_FORUM_MESSAGE2SEND )3567 if (id_special == SPECIAL_ID_FORUM_MESSAGE2SEND || SPECIAL_ID_FORUM_DRAFTS) 3531 3568 sql += " `message2send`\n"; 3532 3569 else if (id_special == SPECIAL_ID_FORUM_RATING2SEND) -
trunk/storage/mysql_storage.h
r196 r207 64 64 bool getMessageIds (int from_id, int to_id, QList<int>& list, IProgress* progress = NULL); 65 65 bool addMessage2Send (const AMessage2Send& info, IProgress* progress = NULL); 66 bool getMessage2SendList (AMessageInfoList& list, IProgress* progress = NULL);66 bool getMessage2SendList (AMessageInfoList& list, bool drafts, IProgress* progress = NULL); 67 67 bool getModerate2SendInfo (int id, AModerate2Send& info, IProgress* progress = NULL); 68 68 bool addRating2Send (const ARating2Send& info, IProgress* progress = NULL); -
trunk/version.h
r206 r207 20 20 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 21 21 */ 22 #define AVALON_DATE "Вск Апр 5 0 0:20:59MSD 2009"22 #define AVALON_DATE "Вск Апр 5 03:19:55 MSD 2009" 23 23 24 24 #endif
Note: See TracChangeset
for help on using the changeset viewer.
