diff options
Diffstat (limited to 'src/history')
-rw-r--r-- | src/history/historypanel.cpp | 82 | ||||
-rw-r--r-- | src/history/historypanel.h | 21 | ||||
-rw-r--r-- | src/history/sidepanel.cpp | 60 | ||||
-rw-r--r-- | src/history/sidepanel.h | 58 |
4 files changed, 59 insertions, 162 deletions
diff --git a/src/history/historypanel.cpp b/src/history/historypanel.cpp index 42497f9e..08dc3800 100644 --- a/src/history/historypanel.cpp +++ b/src/history/historypanel.cpp @@ -29,25 +29,52 @@ #include "historypanel.h" #include "historypanel.moc" +// Auto Includes +#include "rekonq.h" + +// Local Includes +#include "application.h" +#include "historymodels.h" + // Qt Includes #include <QtGui/QLabel> #include <QtGui/QHBoxLayout> #include <QtGui/QHeaderView> +#include <QtGui/QTreeView> + // KDE Includes #include <KLineEdit> #include <KLocalizedString> -HistoryPanel::HistoryPanel(QWidget *parent) - : QWidget(parent) - , m_historyTreeView(new QTreeView) - , m_treeProxyModel(new TreeProxyModel(this)) +HistoryPanel::HistoryPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags) + : QDockWidget(title, parent, flags) +{ + setup(); + setShown(ReKonfig::showHistoryPanel()); +} + + +HistoryPanel::~HistoryPanel() +{ + // Save side panel's state + ReKonfig::setShowHistoryPanel(!isHidden()); +} + + +void HistoryPanel::setup() { - m_historyTreeView->setUniformRowHeights(true); - m_historyTreeView->setSelectionBehavior(QAbstractItemView::SelectRows); - m_historyTreeView->setTextElideMode(Qt::ElideMiddle); - m_historyTreeView->setAlternatingRowColors(true); + setObjectName("historyPanel"); + setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + + QWidget *ui = new QWidget(this); + + QTreeView *historyTreeView = new QTreeView(this); + historyTreeView->setUniformRowHeights(true); + historyTreeView->setSelectionBehavior(QAbstractItemView::SelectRows); + historyTreeView->setTextElideMode(Qt::ElideMiddle); + historyTreeView->setAlternatingRowColors(true); // add search bar QHBoxLayout *hBoxLayout = new QHBoxLayout; @@ -60,42 +87,35 @@ HistoryPanel::HistoryPanel(QWidget *parent) QWidget *searchBar = new QWidget; searchBar->setLayout(hBoxLayout); - // setup view + // setup layout QVBoxLayout *vBoxLayout = new QVBoxLayout; vBoxLayout->setContentsMargins(0, 0, 0, 0); vBoxLayout->addWidget(searchBar); - vBoxLayout->addWidget(m_historyTreeView); - setLayout(vBoxLayout); + vBoxLayout->addWidget(historyTreeView); + + // add it to the UI + ui->setLayout(vBoxLayout); + setWidget(ui); //- HistoryManager *historyManager = Application::historyManager(); QAbstractItemModel *model = historyManager->historyTreeModel(); - m_treeProxyModel->setSourceModel(model); - m_historyTreeView->setModel(m_treeProxyModel); - m_historyTreeView->setExpanded(m_treeProxyModel->index(0, 0), true); - m_historyTreeView->header()->hideSection(1); + TreeProxyModel *treeProxyModel = new TreeProxyModel(this); + treeProxyModel->setSourceModel(model); + historyTreeView->setModel(treeProxyModel); + historyTreeView->setExpanded(treeProxyModel->index(0, 0), true); + historyTreeView->header()->hideSection(1); QFontMetrics fm(font()); int header = fm.width(QLatin1Char('m')) * 40; - m_historyTreeView->header()->resizeSection(0, header); - - connect(search, SIGNAL(textChanged(QString)), m_treeProxyModel, SLOT(setFilterFixedString(QString))); - connect(m_historyTreeView, SIGNAL(activated(const QModelIndex&)), this, SLOT(open())); -} - + historyTreeView->header()->resizeSection(0, header); -HistoryPanel::~HistoryPanel() -{ - delete m_treeProxyModel; - delete m_historyTreeView; + connect(search, SIGNAL(textChanged(QString)), treeProxyModel, SLOT(setFilterFixedString(QString))); + connect(historyTreeView, SIGNAL(activated(const QModelIndex &)), this, SLOT(itemActivated(const QModelIndex &))); } -void HistoryPanel::open() +void HistoryPanel::itemActivated(const QModelIndex &item) { - QModelIndex index = m_historyTreeView->currentIndex(); - if (!index.parent().isValid()) - return; - emit openUrl(index.data(HistoryModel::UrlRole).toUrl()); + emit openUrl( item.data(HistoryModel::UrlRole).toUrl() ); } - diff --git a/src/history/historypanel.h b/src/history/historypanel.h index 083b2741..e07e2190 100644 --- a/src/history/historypanel.h +++ b/src/history/historypanel.h @@ -29,36 +29,31 @@ #define HISTORYPANEL_H -// Local Includes -#include "application.h" -#include "historymodels.h" - // Qt Includes -#include <QtGui/QWidget> -#include <QtGui/QTreeView> +#include <QDockWidget> // Forward Declarations class KUrl; +class QWidget; +class QModelIndex; -class HistoryPanel : public QWidget +class HistoryPanel : public QDockWidget { Q_OBJECT public: - explicit HistoryPanel(QWidget *parent = 0); - virtual ~HistoryPanel(); + explicit HistoryPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); + ~HistoryPanel(); signals: void openUrl(const KUrl &); private slots: - void open(); + void itemActivated(const QModelIndex &); private: - QTreeView *m_historyTreeView; - TreeProxyModel *m_treeProxyModel; - + void setup(); }; #endif // HISTORYPANEL_H diff --git a/src/history/sidepanel.cpp b/src/history/sidepanel.cpp deleted file mode 100644 index 7c42301c..00000000 --- a/src/history/sidepanel.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com> -* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com> -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -// Self Includes -#include "sidepanel.h" -#include "sidepanel.moc" - -// Auto Includes -#include "rekonq.h" - -// Local Includes -#include "historypanel.h" - - -SidePanel::SidePanel(const QString &title, QWidget *parent, Qt::WindowFlags flags) - : QDockWidget(title, parent, flags) - , m_historyPanel(new HistoryPanel(this)) -{ - setObjectName("sidePanel"); - setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - - setShown(ReKonfig::showSideBar()); - - connect(m_historyPanel, SIGNAL(openUrl(const KUrl&)), this, SIGNAL(openUrl(const KUrl&))); - - setWidget(m_historyPanel); -} - - -SidePanel::~SidePanel() -{ - // Save side panel's state - ReKonfig::setShowSideBar(!isHidden()); - - delete m_historyPanel; -} diff --git a/src/history/sidepanel.h b/src/history/sidepanel.h deleted file mode 100644 index 6aca3587..00000000 --- a/src/history/sidepanel.h +++ /dev/null @@ -1,58 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2009 by Andrea Diamantini <adjam7 at gmail dot com> -* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com> -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -#ifndef SIDEPANEL_H -#define SIDEPANEL_H - -// Local Includes -#include "application.h" - -// Qt Includes -#include <QDockWidget> - -// Forward Declarations -class KUrl; -class HistoryPanel; - - -class SidePanel : public QDockWidget -{ - Q_OBJECT - -public: - explicit SidePanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); - ~SidePanel(); - -signals: - void openUrl(const KUrl &); - -private: - HistoryPanel *m_historyPanel; - -}; - -#endif // SIDEPANEL_H |