Show
Ignore:
Timestamp:
07/13/08 03:39:22 (4 months ago)
Author:
flynd
Message:

Searching in history dialog will now mark all dates with matching entries in green.

Location:
trunk/qt4-gui/src/dialogs
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/qt4-gui/src/dialogs/historydlg.cpp

    r6374 r6448  
    133133  searchLayout->addLayout(findLayout); 
    134134  connect(myPatternEdit, SIGNAL(textChanged(const QString&)), SLOT(searchTextChanged(const QString&))); 
     135  myPatternChanged = true; 
    135136 
    136137  // Shortcuts for searching 
     
    392393  QRegExp regExp(getRegExp()); 
    393394 
     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 
    394419  myStatusLabel->setText(QString()); 
    395420 
     
    469494  // Clear failed status from previous search 
    470495  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  } 
    471506} 
    472507 
  • trunk/qt4-gui/src/dialogs/historydlg.h

    r6186 r6448  
    153153  QTextCodec* myContactCodec; 
    154154  bool myUseHtml; 
     155  bool myPatternChanged; 
    155156 
    156157  HistoryList myHistoryList;