summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Ander Peñalba <jonan88@gmail.com>2010-08-30 00:05:47 +0200
committerJon Ander Peñalba <jonan88@gmail.com>2010-08-30 16:58:35 +0200
commit51ef0020a78bd216cb357eaa574161299fa0b608 (patch)
tree9c5f7ef427b79eaa3df14cf030a646e9508da043
parentMerge branch 'master' of gitorious.org:rekonq/mainline (diff)
downloadrekonq-51ef0020a78bd216cb357eaa574161299fa0b608.tar.xz
Use the same FilterProxyModel for the bookmarks and history panels
-rw-r--r--src/CMakeLists.txt3
-rw-r--r--src/bookmarks/bookmarkspanel.cpp6
-rw-r--r--src/history/historymodels.cpp19
-rw-r--r--src/history/historymodels.h32
-rw-r--r--src/history/historypanel.cpp17
-rw-r--r--src/history/historypanel.h14
-rw-r--r--src/panels/urlfilterproxymodel.cpp (renamed from src/bookmarks/bookmarksproxy.cpp)8
-rw-r--r--src/panels/urlfilterproxymodel.h (renamed from src/bookmarks/bookmarksproxy.h)14
8 files changed, 33 insertions, 80 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 95995183..15f0ccac 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -32,6 +32,8 @@ SET( rekonq_KDEINIT_SRCS
webtab.cpp
zoombar.cpp
#----------------------------------------
+ panels/urlfilterproxymodel.cpp
+ #----------------------------------------
history/autosaver.cpp
history/historymanager.cpp
history/historymodels.cpp
@@ -48,7 +50,6 @@ SET( rekonq_KDEINIT_SRCS
bookmarks/bookmarkprovider.cpp
bookmarks/bookmarkspanel.cpp
bookmarks/bookmarkstreemodel.cpp
- bookmarks/bookmarksproxy.cpp
bookmarks/bookmarkscontextmenu.cpp
bookmarks/bookmarkstoolbar.cpp
bookmarks/bookmarkowner.cpp
diff --git a/src/bookmarks/bookmarkspanel.cpp b/src/bookmarks/bookmarkspanel.cpp
index 08f99155..53f22232 100644
--- a/src/bookmarks/bookmarkspanel.cpp
+++ b/src/bookmarks/bookmarkspanel.cpp
@@ -29,10 +29,10 @@
#include "bookmarkspanel.h"
// Local Includes
+#include "panels/urlfilterproxymodel.h"
#include "application.h"
#include "bookmarkprovider.h"
#include "bookmarkstreemodel.h"
-#include "bookmarksproxy.h"
#include "bookmarkscontextmenu.h"
#include "bookmarkowner.h"
#include "paneltreeview.h"
@@ -185,7 +185,7 @@ void BookmarksPanel::setup()
setWidget(ui);
BookmarksTreeModel *model = new BookmarksTreeModel(this);
- BookmarksProxy *proxy = new BookmarksProxy(ui);
+ UrlFilterProxyModel *proxy = new UrlFilterProxyModel(ui);
proxy->setSourceModel(model);
m_treeView->setModel(proxy);
@@ -211,7 +211,7 @@ KBookmark BookmarksPanel::bookmarkForIndex(const QModelIndex &index)
if (!index.isValid())
return KBookmark();
- const BookmarksProxy *proxyModel = static_cast<const BookmarksProxy*>(index.model());
+ const UrlFilterProxyModel *proxyModel = static_cast<const UrlFilterProxyModel*>(index.model());
QModelIndex originalIndex = proxyModel->mapToSource(index);
BtmItem *node = static_cast<BtmItem*>(originalIndex.internalPointer());
diff --git a/src/history/historymodels.cpp b/src/history/historymodels.cpp
index a820db0f..0f137e0e 100644
--- a/src/history/historymodels.cpp
+++ b/src/history/historymodels.cpp
@@ -720,22 +720,3 @@ void HistoryTreeModel::sourceRowsRemoved(const QModelIndex &parent, int start, i
endRemoveRows();
}
}
-
-
-// ------------------------------------------------------------------------------------------------------------------------------------------
-
-
-
-TreeProxyModel::TreeProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
-{
- setSortRole(HistoryModel::DateTimeRole);
- setFilterCaseSensitivity(Qt::CaseInsensitive);
-}
-
-
-bool TreeProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
-{
- if (!source_parent.isValid())
- return true;
- return QSortFilterProxyModel::filterAcceptsRow(source_row, source_parent);
-}
diff --git a/src/history/historymodels.h b/src/history/historymodels.h
index b61e8969..d193cf86 100644
--- a/src/history/historymodels.h
+++ b/src/history/historymodels.h
@@ -95,16 +95,16 @@ public:
inline bool historyContains(const QString &url) const
{
- load();
+ load();
return m_historyHash.contains(url);
}
-
+
inline QList<QString> keys() const
{
load();
return m_historyHash.keys();
}
-
+
int historyLocation(const QString &url) const;
QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
@@ -139,7 +139,7 @@ private:
/**
* Proxy model for the history model that converts the list
* into a tree, one top level node per day.
- *
+ *
* Used in the HistoryDialog.
*
*/
@@ -177,28 +177,4 @@ private:
};
-// -----------------------------------------------------------------------------------------------------------------
-
-
-/**
- * A modified QSortFilterProxyModel that always accepts
- * the root nodes in the tree
- * so filtering is only done on the children.
- *
- * Used in the HistoryDialog.
- *
- */
-
-class TreeProxyModel : public QSortFilterProxyModel
-{
- Q_OBJECT
-
-public:
- TreeProxyModel(QObject *parent = 0);
-
-protected:
- bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
-};
-
-
#endif // HISTORYMODELS_H
diff --git a/src/history/historypanel.cpp b/src/history/historypanel.cpp
index b9e7b10b..4c1dc732 100644
--- a/src/history/historypanel.cpp
+++ b/src/history/historypanel.cpp
@@ -27,13 +27,14 @@
// Self Includes
#include "historypanel.h"
-#include "historypanel.moc"
// Auto Includes
#include "rekonq.h"
// Local Includes
+#include "panels/urlfilterproxymodel.h"
#include "application.h"
+#include "paneltreeview.h"
#include "historymodels.h"
// Qt Includes
@@ -58,9 +59,9 @@ HistoryPanel::HistoryPanel(const QString &title, QWidget *parent, Qt::WindowFlag
{
setObjectName("historyPanel");
setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
-
+
connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(showing(bool)));
-
+
setShown(ReKonfig::showHistoryPanel());
}
@@ -117,16 +118,16 @@ void HistoryPanel::setup()
HistoryManager *historyManager = Application::historyManager();
QAbstractItemModel *model = historyManager->historyTreeModel();
- TreeProxyModel *treeProxyModel = new TreeProxyModel(this);
- treeProxyModel->setSourceModel(model);
- m_treeView->setModel(treeProxyModel);
- m_treeView->setExpanded(treeProxyModel->index(0, 0), true);
+ UrlFilterProxyModel *proxy = new UrlFilterProxyModel(this);
+ proxy->setSourceModel(model);
+ m_treeView->setModel(proxy);
+ m_treeView->setExpanded(proxy->index(0, 0), true);
m_treeView->header()->hideSection(1);
QFontMetrics fm(font());
int header = fm.width( QL1C('m') ) * 40;
m_treeView->header()->resizeSection(0, header);
- connect(search, SIGNAL(textChanged(QString)), treeProxyModel, SLOT(setFilterFixedString(QString)));
+ connect(search, SIGNAL(textChanged(QString)), proxy, SLOT(setFilterFixedString(QString)));
connect(m_treeView, SIGNAL(contextMenuItemRequested(const QPoint &)), this, SLOT(contextMenuItem(const QPoint &)));
connect(m_treeView, SIGNAL(contextMenuGroupRequested(const QPoint &)), this, SLOT(contextMenuGroup(const QPoint &)));
diff --git a/src/history/historypanel.h b/src/history/historypanel.h
index 68de2828..5a511e47 100644
--- a/src/history/historypanel.h
+++ b/src/history/historypanel.h
@@ -32,17 +32,11 @@
// Rekonq Includes
#include "rekonq_defines.h"
-// Local Includes
-#include "application.h"
-#include "paneltreeview.h"
-
// Qt Includes
#include <QDockWidget>
// Forward Declarations
-class KUrl;
-class QWidget;
-class QModelIndex;
+class PanelTreeView;
class REKONQ_TESTS_EXPORT HistoryPanel : public QDockWidget
@@ -51,11 +45,11 @@ class REKONQ_TESTS_EXPORT HistoryPanel : public QDockWidget
public:
explicit HistoryPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
- ~HistoryPanel();
+ virtual ~HistoryPanel();
public slots:
void showing(bool);
-
+
signals:
void openUrl(const KUrl &, const Rekonq::OpenType &);
void itemHovered(const QString &);
@@ -67,8 +61,8 @@ private slots:
private:
void setup();
- PanelTreeView *m_treeView;
+ PanelTreeView *m_treeView;
bool _loaded;
};
diff --git a/src/bookmarks/bookmarksproxy.cpp b/src/panels/urlfilterproxymodel.cpp
index 1e4da877..b8e68342 100644
--- a/src/bookmarks/bookmarksproxy.cpp
+++ b/src/panels/urlfilterproxymodel.cpp
@@ -26,23 +26,23 @@
// Self Includes
-#include "bookmarksproxy.h"
+#include "urlfilterproxymodel.h"
-BookmarksProxy::BookmarksProxy(QObject *parent)
+UrlFilterProxyModel::UrlFilterProxyModel(QObject *parent)
: QSortFilterProxyModel(parent)
{
setFilterCaseSensitivity(Qt::CaseInsensitive);
}
-bool BookmarksProxy::filterAcceptsRow(const int source_row, const QModelIndex &source_parent) const
+bool UrlFilterProxyModel::filterAcceptsRow(const int source_row, const QModelIndex &source_parent) const
{
return recursiveMatch( sourceModel()->index(source_row, 0, source_parent) );
}
-bool BookmarksProxy::recursiveMatch(const QModelIndex &index) const
+bool UrlFilterProxyModel::recursiveMatch(const QModelIndex &index) const
{
if (index.data().toString().contains(filterRegExp()))
return true;
diff --git a/src/bookmarks/bookmarksproxy.h b/src/panels/urlfilterproxymodel.h
index b4554d2b..f4f15395 100644
--- a/src/bookmarks/bookmarksproxy.h
+++ b/src/panels/urlfilterproxymodel.h
@@ -25,8 +25,8 @@
* ============================================================ */
-#ifndef BOOKMARKSPROXY_H
-#define BOOKMARKSPROXY_H
+#ifndef URLFILTERPROXYMODEL_H
+#define URLFILTERPROXYMODEL_H
// Rekonq Includes
@@ -38,15 +38,15 @@
/**
* QSortFilterProxyModel hides all children which parent doesn't
* match the filter. This class is used to change this behavior.
- * If a bookmark matches the filter it'll be shown, even if it's parent doesn't match it.
+ * If a url matches the filter it'll be shown, even if it's parent doesn't match it.
*/
-class REKONQ_TESTS_EXPORT BookmarksProxy : public QSortFilterProxyModel
+class REKONQ_TESTS_EXPORT UrlFilterProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
- Q_DISABLE_COPY(BookmarksProxy)
+ Q_DISABLE_COPY(UrlFilterProxyModel)
public:
- BookmarksProxy(QObject *parent = 0);
+ UrlFilterProxyModel(QObject *parent = 0);
protected:
virtual bool filterAcceptsRow(const int source_row, const QModelIndex &source_parent) const;
@@ -55,4 +55,4 @@ protected:
bool recursiveMatch(const QModelIndex &index) const;
};
-#endif // BOOKMARKSPROXY_H
+#endif // URLFILTERPROXYMODEL_H