Some first filtering code.
This commit is contained in:
parent
6acf273bcf
commit
746962c557
|
@ -194,6 +194,10 @@ void FeedMessageViewer::switchFeedComponentVisibility() {
|
||||||
void FeedMessageViewer::createConnections() {
|
void FeedMessageViewer::createConnections() {
|
||||||
FormMain *form_main = FormMain::instance();
|
FormMain *form_main = FormMain::instance();
|
||||||
|
|
||||||
|
// Filtering.
|
||||||
|
connect(m_toolBarMessages, SIGNAL(messageSearchPatternChanged(QString)),
|
||||||
|
m_messagesView, SLOT(filterMessages(QString)));
|
||||||
|
|
||||||
// Message changers.
|
// Message changers.
|
||||||
connect(m_messagesView, SIGNAL(currentMessagesRemoved()),
|
connect(m_messagesView, SIGNAL(currentMessagesRemoved()),
|
||||||
m_messagesBrowser, SLOT(clear()));
|
m_messagesBrowser, SLOT(clear()));
|
||||||
|
|
|
@ -14,7 +14,7 @@ MessagesToolBar::MessagesToolBar(const QString &title, QWidget *parent)
|
||||||
m_txtSearchMessages(new BaseLineEdit(this)) {
|
m_txtSearchMessages(new BaseLineEdit(this)) {
|
||||||
|
|
||||||
m_txtSearchMessages->setFixedWidth(FILTER_WIDTH);
|
m_txtSearchMessages->setFixedWidth(FILTER_WIDTH);
|
||||||
m_txtSearchMessages->setPlaceholderText(tr("Filter messages"));
|
m_txtSearchMessages->setPlaceholderText(tr("Search messages"));
|
||||||
|
|
||||||
// Setup wrapping action for search box.
|
// Setup wrapping action for search box.
|
||||||
m_actionSearchMessages = new QWidgetAction(this);
|
m_actionSearchMessages = new QWidgetAction(this);
|
||||||
|
@ -27,6 +27,9 @@ MessagesToolBar::MessagesToolBar(const QString &title, QWidget *parent)
|
||||||
QMargins margins = contentsMargins();
|
QMargins margins = contentsMargins();
|
||||||
margins.setRight(margins.right() + FILTER_RIGHT_MARGIN);
|
margins.setRight(margins.right() + FILTER_RIGHT_MARGIN);
|
||||||
setContentsMargins(margins);
|
setContentsMargins(margins);
|
||||||
|
|
||||||
|
connect(m_txtSearchMessages, SIGNAL(textChanged(QString)),
|
||||||
|
this, SIGNAL(messageSearchPatternChanged(QString)));
|
||||||
}
|
}
|
||||||
|
|
||||||
MessagesToolBar::~MessagesToolBar() {
|
MessagesToolBar::~MessagesToolBar() {
|
||||||
|
@ -45,6 +48,11 @@ QList<QAction*> MessagesToolBar::changeableActions() const {
|
||||||
void MessagesToolBar::saveChangeableActions(const QStringList& actions) {
|
void MessagesToolBar::saveChangeableActions(const QStringList& actions) {
|
||||||
Settings::instance()->setValue(APP_CFG_GUI, "messages_toolbar", actions.join(","));
|
Settings::instance()->setValue(APP_CFG_GUI, "messages_toolbar", actions.join(","));
|
||||||
loadChangeableActions(actions);
|
loadChangeableActions(actions);
|
||||||
|
|
||||||
|
// If user hidden search messages box, then remove the filter.
|
||||||
|
if (!changeableActions().contains(m_actionSearchMessages)) {
|
||||||
|
m_txtSearchMessages->clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesToolBar::loadChangeableActions(const QStringList& actions) {
|
void MessagesToolBar::loadChangeableActions(const QStringList& actions) {
|
||||||
|
|
|
@ -15,6 +15,10 @@ class MessagesToolBar : public BaseToolBar {
|
||||||
explicit MessagesToolBar(const QString &title, QWidget *parent = 0);
|
explicit MessagesToolBar(const QString &title, QWidget *parent = 0);
|
||||||
virtual ~MessagesToolBar();
|
virtual ~MessagesToolBar();
|
||||||
|
|
||||||
|
inline BaseLineEdit *searchLineEdit() {
|
||||||
|
return m_txtSearchMessages;
|
||||||
|
}
|
||||||
|
|
||||||
// Implementation of BaseToolBar interface.
|
// Implementation of BaseToolBar interface.
|
||||||
QHash<QString, QAction*> availableActions() const;
|
QHash<QString, QAction*> availableActions() const;
|
||||||
QList<QAction*> changeableActions() const;
|
QList<QAction*> changeableActions() const;
|
||||||
|
@ -27,6 +31,9 @@ class MessagesToolBar : public BaseToolBar {
|
||||||
void loadChangeableActions(const QStringList &actions);
|
void loadChangeableActions(const QStringList &actions);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
// TODO: sem pridat este mozna mode: wildcard, regexp, fixed text.
|
||||||
|
// na tuto udalost se navaze filtrovani
|
||||||
|
void messageSearchPatternChanged(const QString &pattern);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
|
|
|
@ -398,6 +398,14 @@ void MessagesView::selectPreviousItem() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesView::filterMessages(const QString &pattern) {
|
||||||
|
m_proxyModel->setFilterWildcard(pattern);
|
||||||
|
|
||||||
|
if (selectionModel()->selectedRows().size() == 0) {
|
||||||
|
emit currentMessagesRemoved();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MessagesView::adjustColumns() {
|
void MessagesView::adjustColumns() {
|
||||||
if (header()->count() > 0 && !m_columnsAdjusted) {
|
if (header()->count() > 0 && !m_columnsAdjusted) {
|
||||||
m_columnsAdjusted = true;
|
m_columnsAdjusted = true;
|
||||||
|
|
|
@ -76,6 +76,9 @@ class MessagesView : public QTreeView {
|
||||||
void selectNextItem();
|
void selectNextItem();
|
||||||
void selectPreviousItem();
|
void selectPreviousItem();
|
||||||
|
|
||||||
|
// Filters the visible message according to given pattern.
|
||||||
|
void filterMessages(const QString &pattern);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
// Marks given indexes as selected.
|
// Marks given indexes as selected.
|
||||||
void reselectIndexes(const QModelIndexList &indexes);
|
void reselectIndexes(const QModelIndexList &indexes);
|
||||||
|
|
Loading…
Reference in New Issue