00001 #ifndef _FINDSCREEN_H_ 00002 #define _FINDSCREEN_H_ 00003 00004 #include "findtablewidget.h" 00005 00006 #include <QMap> 00007 #include <QWidget> 00008 00009 class QLineEdit; 00010 class QPushButton; 00011 class QComboBox; 00012 class QToolButton; 00013 class QHBoxLayout; 00014 class QVBoxLayout; 00015 class QLabel; 00016 class QCheckBox; 00017 00018 class knowtreemodel; 00019 class TreeItem; 00020 00021 class findscreen : public QWidget 00022 { 00023 Q_OBJECT 00024 00025 public: 00026 findscreen(QWidget *parent=0); 00027 virtual ~findscreen(void); 00028 00029 public slots: 00030 void widget_show(void); 00031 void widget_hide(void); 00032 00033 private slots: 00034 void enable_find_button(const QString &text); 00035 void find_clicked(void); 00036 00037 void changed_wordregard(int pos); 00038 void changed_howextract(int pos); 00039 00040 void changed_find_in_name(int state); 00041 void changed_find_in_author(int state); 00042 void changed_find_in_url(int state); 00043 void changed_find_in_tags(int state); 00044 void changed_find_in_text(int state); 00045 00046 private: 00047 QLineEdit *findtext; 00048 QPushButton *findstart; 00049 QComboBox *wordregard; 00050 QComboBox *howextract; 00051 QToolButton *closebutton; 00052 00053 QLabel *wherefindlabel; 00054 QCheckBox *find_in_name; 00055 QCheckBox *find_in_author; 00056 QCheckBox *find_in_url; 00057 QCheckBox *find_in_tags; 00058 QCheckBox *find_in_text; 00059 00060 QHBoxLayout *toolsline; 00061 QVBoxLayout *placeupclosebutton; 00062 QHBoxLayout *wherefindline; 00063 QVBoxLayout *centrallayout; 00064 00065 findtablewidget *findtable; 00066 00067 void setup_toolsline(void); 00068 void assembly_toolsline(void); 00069 00070 void setup_wherefindline(void); 00071 void assembly_wherefindline(void); 00072 00073 void setup_ui(void); 00074 void assembly(void); 00075 00076 void setup_signals(void); 00077 00078 void changed_find_in_field(QString fieldname, int state); 00079 00080 void find_start(void); 00081 void find_recurse(TreeItem *curritem); 00082 QStringList text_decompose(QString text); 00083 bool find_in_text_process(const QString& text); 00084 00085 // Поля, где нужно искать (Заголовок, текст, теги...) 00086 QMap<QString, bool> search_area; 00087 00088 // Список слов, которые нужно искать 00089 QStringList search_word_list; 00090 }; 00091 00092 #endif /* _FINDSCREEN_H_ */ 00093