Changeset 6448 for trunk/qt4-gui/src
- Timestamp:
- 07/13/08 03:39:22 (4 months ago)
- Location:
- trunk/qt4-gui/src
- Files:
-
- 4 modified
-
dialogs/historydlg.cpp (modified) (3 diffs)
-
dialogs/historydlg.h (modified) (1 diff)
-
widgets/calendar.cpp (modified) (3 diffs)
-
widgets/calendar.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/qt4-gui/src/dialogs/historydlg.cpp
r6374 r6448 133 133 searchLayout->addLayout(findLayout); 134 134 connect(myPatternEdit, SIGNAL(textChanged(const QString&)), SLOT(searchTextChanged(const QString&))); 135 myPatternChanged = true; 135 136 136 137 // Shortcuts for searching … … 392 393 QRegExp regExp(getRegExp()); 393 394 395 // If search pattern has changed, find all matching dates and mark them in the calendar 396 if (myPatternChanged) 397 { 398 myCalendar->clearMatches(); 399 400 for (HistoryListIter i = myHistoryList.begin(); i != myHistoryList.end(); ++i) 401 { 402 QString messageText; 403 if ((*i)->SubCommand() == ICQ_CMDxSUB_SMS) // SMSs are always in UTF-8 404 messageText = QString::fromUtf8((*i)->Text()); 405 else 406 messageText = myContactCodec->toUnicode((*i)->Text()); 407 408 if (messageText.contains(regExp)) 409 { 410 QDate date = QDateTime::fromTime_t((*i)->Time()).date(); 411 myCalendar->addMatch(date); 412 } 413 } 414 415 // No need to do this again next time 416 myPatternChanged = false; 417 } 418 394 419 myStatusLabel->setText(QString()); 395 420 … … 469 494 // Clear failed status from previous search 470 495 myPatternEdit->setStyleSheet(""); 496 497 // Mark that pattern has changed since previous search 498 myPatternChanged = true; 499 500 // Search field is cleared so clear status message and matching dates 501 if (text.isEmpty()) 502 { 503 myStatusLabel->setText(QString()); 504 myCalendar->clearMatches(); 505 } 471 506 } 472 507 -
trunk/qt4-gui/src/dialogs/historydlg.h
r6186 r6448 153 153 QTextCodec* myContactCodec; 154 154 bool myUseHtml; 155 bool myPatternChanged; 155 156 156 157 HistoryList myHistoryList; -
trunk/qt4-gui/src/widgets/calendar.cpp
r5996 r6448 54 54 } 55 55 56 void Calendar::markDate( QDatedate)56 void Calendar::markDate(const QDate& date) 57 57 { 58 58 QTextCharFormat textFormat = dateTextFormat(date); … … 62 62 textFormat.setBackground(Qt::transparent); 63 63 setDateTextFormat(date, textFormat); 64 } 65 66 void Calendar::addMatch(const QDate& date) 67 { 68 if (myMatches.contains(date)) 69 return; 70 71 myMatches.append(date); 72 updateCell(date); 73 } 74 75 void Calendar::clearMatches() 76 { 77 myMatches.clear(); 78 updateCells(); 64 79 } 65 80 … … 74 89 painter->setPen(Qt::NoPen); 75 90 painter->setRenderHints(painter->renderHints() | QPainter::Antialiasing); 76 painter->setBrush( Qt::yellow);91 painter->setBrush(myMatches.contains(date) ? Qt::green : Qt::yellow); 77 92 painter->drawEllipse(center); 78 93 painter->restore(); -
trunk/qt4-gui/src/widgets/calendar.h
r5996 r6448 25 25 26 26 #include <QCalendarWidget> 27 #include <QDate> 28 #include <QList> 27 29 28 30 namespace LicqQtGui … … 54 56 * @param date Date to mark 55 57 */ 56 void markDate(QDate date); 58 void markDate(const QDate& date); 59 60 /** 61 * Mark a search match in the calendar 62 * Note: Date must already be marked with markDate() 63 * 64 * @param date Date of the match 65 */ 66 void addMatch(const QDate& date); 67 68 /** 69 * Clear all search matches 70 */ 71 void clearMatches(); 57 72 58 73 protected: … … 65 80 */ 66 81 virtual void paintCell(QPainter* painter, const QRect& rect, const QDate& date) const; 82 83 private: 84 QList<QDate> myMatches; 67 85 }; 68 86
