From 0d53995507a369d5b4cfddbe365fc8a438fcf3cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Mon, 30 Aug 2010 01:40:33 +0200 Subject: New general panel class created and used by the bookmarks and history panel --- src/history/historypanel.cpp | 94 +++++++++++--------------------------------- src/history/historypanel.h | 27 +++++-------- 2 files changed, 31 insertions(+), 90 deletions(-) (limited to 'src/history') diff --git a/src/history/historypanel.cpp b/src/history/historypanel.cpp index 4c1dc732..79efb2b1 100644 --- a/src/history/historypanel.cpp +++ b/src/history/historypanel.cpp @@ -33,105 +33,44 @@ // Local Includes #include "panels/urlfilterproxymodel.h" + #include "application.h" #include "paneltreeview.h" #include "historymodels.h" -// Qt Includes -#include -#include -#include -#include - - // KDE Includes -#include #include #include #include #include +// Qt Includes +#include + HistoryPanel::HistoryPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags) - : QDockWidget(title, parent, flags) - , m_treeView(new PanelTreeView(this)) - , _loaded(false) + : UrlPanel(title, parent, flags) { setObjectName("historyPanel"); - setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - - connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(showing(bool))); - - setShown(ReKonfig::showHistoryPanel()); + setVisible(ReKonfig::showHistoryPanel()); } HistoryPanel::~HistoryPanel() { - // Save side panel's state ReKonfig::setShowHistoryPanel(!isHidden()); } - -void HistoryPanel::showing(bool b) -{ - if(b && !_loaded) - setup(); -} - - void HistoryPanel::setup() { - kDebug() << "Loading history panel setup..."; - - QWidget *ui = new QWidget(this); - - m_treeView->setUniformRowHeights(true); - m_treeView->setSelectionBehavior(QAbstractItemView::SelectRows); - m_treeView->setTextElideMode(Qt::ElideMiddle); - m_treeView->setAlternatingRowColors(true); - m_treeView->header()->hide(); - - // add search bar - QHBoxLayout *hBoxLayout = new QHBoxLayout; - hBoxLayout->setContentsMargins(5, 0, 0, 0); - QLabel *searchLabel = new QLabel(i18n("Search:")); - hBoxLayout->addWidget(searchLabel); - KLineEdit *search = new KLineEdit; - search->setClearButtonShown(true); - hBoxLayout->addWidget(search); - QWidget *searchBar = new QWidget; - searchBar->setLayout(hBoxLayout); - - // setup layout - QVBoxLayout *vBoxLayout = new QVBoxLayout; - vBoxLayout->setContentsMargins(0, 0, 0, 0); - vBoxLayout->addWidget(searchBar); - vBoxLayout->addWidget(m_treeView); - - // add it to the UI - ui->setLayout(vBoxLayout); - setWidget(ui); - - //- - HistoryManager *historyManager = Application::historyManager(); - QAbstractItemModel *model = historyManager->historyTreeModel(); - - 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); + UrlPanel::setup(); + kDebug() << "History panel..."; - 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 &))); + m_treeView->header()->hideSection(1); - _loaded = true; + const UrlFilterProxyModel *proxy = static_cast(m_treeView->model()); + m_treeView->expand(proxy->index(0, 0)); } @@ -173,6 +112,11 @@ void HistoryPanel::contextMenuGroup(const QPoint &pos) } +void HistoryPanel::contextMenuEmpty(const QPoint& /*pos*/) +{ +} + + void HistoryPanel::openAll() { QModelIndex index = m_treeView->currentIndex(); @@ -199,3 +143,9 @@ void HistoryPanel::openAll() emit openUrl(allChild.at(i).url(), Rekonq::NewTab); } + +QAbstractItemModel* HistoryPanel::getModel() +{ + return Application::historyManager()->historyTreeModel(); +} + diff --git a/src/history/historypanel.h b/src/history/historypanel.h index 5a511e47..12ffe953 100644 --- a/src/history/historypanel.h +++ b/src/history/historypanel.h @@ -32,14 +32,11 @@ // Rekonq Includes #include "rekonq_defines.h" -// Qt Includes -#include +// Local Includes +#include "panels/urlpanel.h" -// Forward Declarations -class PanelTreeView; - -class REKONQ_TESTS_EXPORT HistoryPanel : public QDockWidget +class REKONQ_TESTS_EXPORT HistoryPanel : public UrlPanel { Q_OBJECT @@ -47,23 +44,17 @@ public: explicit HistoryPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); virtual ~HistoryPanel(); -public slots: - void showing(bool); - -signals: - void openUrl(const KUrl &, const Rekonq::OpenType &); - void itemHovered(const QString &); - private slots: - void contextMenuItem(const QPoint &pos); - void contextMenuGroup(const QPoint &pos); + virtual void contextMenuItem(const QPoint &pos); + virtual void contextMenuGroup(const QPoint &pos); + virtual void contextMenuEmpty(const QPoint &pos); + void openAll(); private: - void setup(); + virtual void setup(); - PanelTreeView *m_treeView; - bool _loaded; + virtual QAbstractItemModel* getModel(); }; #endif // HISTORYPANEL_H -- cgit v1.2.1