#ifndef FINDPANEL_H #define FINDPANEL_H #include #include #include #include #include #include #include #include #include class DictTableView; class MainWindow; /** * Modern find panel for dictionary records. */ class FindPanel: public QWidget { Q_OBJECT public: FindPanel( MainWindow* aMainWindow ); void setTableView( DictTableView* aTableView ); bool canFindAgain(); protected: void keyPressEvent( QKeyEvent* event ); private: bool findRegExp( const QRegExp& aSearchRegExp, QListIterator aStartingPoint ); public slots: void show(); void find(); private slots: void updateFindButtons(); private: static const int ComboBoxMaxItems = 10; static const int TextEditMinWidth = 300; private: // Data MainWindow* m_mainWindow; int m_direction; // Search direction: 1 or -1 bool m_foundOnce; // The search text was already found once. For "Find again". // GUI QToolButton* m_closeButton; QComboBox* m_textEdit; QToolButton* m_findForwardBtn; QToolButton* m_findBackwardBtn; QToolButton* m_caseSensitiveBtn; QToolButton* m_wholeWordsBtn; QToolButton* m_regExpBtn; QToolButton* m_inSelectionBtn; QWidget* m_infoPane; QLabel* m_infoLbl; }; #endif