diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/bookmarks/bookmarkspanel.cpp | 112 | ||||
| -rw-r--r-- | src/bookmarks/bookmarkspanel.h | 20 | ||||
| -rw-r--r-- | src/history/historymodels.cpp | 19 | ||||
| -rw-r--r-- | src/history/historymodels.h | 32 | ||||
| -rw-r--r-- | src/history/historypanel.cpp | 109 | ||||
| -rw-r--r-- | src/history/historypanel.h | 33 | ||||
| -rw-r--r-- | src/urlfilterproxymodel.cpp (renamed from src/bookmarks/bookmarksproxy.cpp) | 8 | ||||
| -rw-r--r-- | src/urlfilterproxymodel.h (renamed from src/bookmarks/bookmarksproxy.h) | 14 | ||||
| -rw-r--r-- | src/urlpanel.cpp | 114 | ||||
| -rw-r--r-- | src/urlpanel.h | 76 | 
11 files changed, 293 insertions, 247 deletions
| diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 95995183..ef623499 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,6 +21,8 @@ SET( rekonq_KDEINIT_SRCS      protocolhandler.cpp      sessionmanager.cpp      tabbar.cpp +    urlfilterproxymodel.cpp +    urlpanel.cpp      walletbar.cpp      webicon.cpp      webinspectorpanel.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..e88d3060 100644 --- a/src/bookmarks/bookmarkspanel.cpp +++ b/src/bookmarks/bookmarkspanel.cpp @@ -28,51 +28,31 @@  // Self Includes  #include "bookmarkspanel.h" +// Auto Includes +#include "rekonq.h" +  // Local Includes  #include "application.h"  #include "bookmarkprovider.h"  #include "bookmarkstreemodel.h" -#include "bookmarksproxy.h"  #include "bookmarkscontextmenu.h"  #include "bookmarkowner.h"  #include "paneltreeview.h" +#include "urlfilterproxymodel.h" -// Auto Includes -#include "rekonq.h" - -// Qt includes -#include <QtGui/QHBoxLayout> -#include <QtGui/QLabel> -#include <QtGui/QHeaderView> - -// KDE includes -#include <KLineEdit>  BookmarksPanel::BookmarksPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags) -        : QDockWidget(title, parent, flags) -        , m_treeView(new PanelTreeView(this)) +        : UrlPanel(title, parent, flags)          , m_loadingState(false) -        , m_loaded(false)  {      setObjectName("bookmarksPanel"); -    setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - -    connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(showing(bool))); -      setVisible(ReKonfig::showBookmarksPanel());  }  BookmarksPanel::~BookmarksPanel()  { -    ReKonfig::setShowBookmarksPanel(false); -} - - -void BookmarksPanel::showing(bool b) -{ -    if(b && !m_loaded) -        setup(); +    ReKonfig::setShowBookmarksPanel(!isHidden());  } @@ -99,6 +79,24 @@ void BookmarksPanel::contextMenu(const QPoint &pos)  } +void BookmarksPanel::contextMenuItem(const QPoint &pos) +{ +    contextMenu(pos); +} + + +void BookmarksPanel::contextMenuGroup(const QPoint &pos) +{ +    contextMenu(pos); +} + + +void BookmarksPanel::contextMenuEmpty(const QPoint &pos) +{ +    contextMenu(pos); +} + +  void BookmarksPanel::deleteBookmark()  {      QModelIndex index = m_treeView->currentIndex(); @@ -131,12 +129,13 @@ void BookmarksPanel::onExpand(const QModelIndex &index)  void BookmarksPanel::loadFoldedState(const QModelIndex &root)  { -    int count = m_treeView->model()->rowCount(root); +    QAbstractItemModel *model = m_treeView->model(); +    int count = model->rowCount(root);      QModelIndex index;      for (int i = 0; i < count; ++i)      { -        index = m_treeView->model()->index(i, 0, root); +        index = model->index(i, 0, root);          if (index.isValid())          {              KBookmark bm = bookmarkForIndex(index); @@ -152,57 +151,14 @@ void BookmarksPanel::loadFoldedState(const QModelIndex &root)  void BookmarksPanel::setup()  { -    kDebug() << "Loading bookmarks panel setup..."; - -    QWidget *ui = new QWidget(this); - -    // setup search bar -    QHBoxLayout *searchLayout = new QHBoxLayout; -    searchLayout->setContentsMargins(5, 0, 0, 0); -    QLabel *searchLabel = new QLabel(i18n("&Search:")); -    searchLayout->addWidget(searchLabel); -    KLineEdit *search = new KLineEdit; -    search->setClearButtonShown(true); -    searchLayout->addWidget(search); -    searchLabel->setBuddy(search); - -    // setup tree view -    m_treeView->setUniformRowHeights(true); -    m_treeView->header()->hide(); -    m_treeView->setDragEnabled(true); -    m_treeView->setAutoExpandDelay(750); -    m_treeView->setDefaultDropAction(Qt::MoveAction); -    m_treeView->viewport()->setAcceptDrops(true); - -    // put everything together -    QVBoxLayout *vBoxLayout = new QVBoxLayout; -    vBoxLayout->setContentsMargins(0, 0, 0, 0); -    vBoxLayout->addLayout(searchLayout); -    vBoxLayout->addWidget(m_treeView); - -    // add it to the UI -    ui->setLayout(vBoxLayout); -    setWidget(ui); - -    BookmarksTreeModel *model = new BookmarksTreeModel(this); -    BookmarksProxy *proxy = new BookmarksProxy(ui); -    proxy->setSourceModel(model); -    m_treeView->setModel(proxy); - -    connect(search, SIGNAL(textChanged(const QString &)), proxy, SLOT(setFilterFixedString(const QString &))); +    UrlPanel::setup(); +    kDebug() << "Bookmarks panel..."; -    connect(model, SIGNAL(bookmarksUpdated()), this, SLOT(startLoadFoldedState())); - -    connect(m_treeView, SIGNAL(contextMenuItemRequested(const QPoint &)), this, SLOT(contextMenu(const QPoint &))); -    connect(m_treeView, SIGNAL(contextMenuGroupRequested(const QPoint &)), this, SLOT(contextMenu(const QPoint &))); -    connect(m_treeView, SIGNAL(contextMenuEmptyRequested(const QPoint &)), this, SLOT(contextMenu(const QPoint &)));      connect(m_treeView, SIGNAL(delKeyPressed()), this, SLOT(deleteBookmark()));      connect(m_treeView, SIGNAL(collapsed(const QModelIndex &)), this, SLOT(onCollapse(const QModelIndex &)));      connect(m_treeView, SIGNAL(expanded(const QModelIndex &)), this, SLOT(onExpand(const QModelIndex &)));      startLoadFoldedState(); - -    m_loaded = true;  } @@ -211,9 +167,17 @@ 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());      return node->getBkm();  } + + +QAbstractItemModel* BookmarksPanel::getModel() +{ +    BookmarksTreeModel *model = new BookmarksTreeModel(this); +    connect(model, SIGNAL(bookmarksUpdated()), this, SLOT(startLoadFoldedState())); +    return model; +} diff --git a/src/bookmarks/bookmarkspanel.h b/src/bookmarks/bookmarkspanel.h index 4afa953b..2418ae81 100644 --- a/src/bookmarks/bookmarkspanel.h +++ b/src/bookmarks/bookmarkspanel.h @@ -33,15 +33,14 @@  // Rekonq Includes  #include "rekonq_defines.h" -// Qt Includes -#include <QDockWidget> +// Local Includes +#include "urlpanel.h"  // Forward Declarations -class PanelTreeView;  class KBookmark;  class QModelIndex; -class REKONQ_TESTS_EXPORT BookmarksPanel : public QDockWidget +class REKONQ_TESTS_EXPORT BookmarksPanel : public UrlPanel  {      Q_OBJECT @@ -50,16 +49,16 @@ public:      virtual ~BookmarksPanel();  signals: -    void openUrl(const KUrl &, const Rekonq::OpenType &); -    void itemHovered(const QString &);      void expansionChanged();  public slots: -    void showing(bool);      void startLoadFoldedState();  private slots:      void contextMenu(const QPoint &pos); +    virtual void contextMenuItem(const QPoint &pos); +    virtual void contextMenuGroup(const QPoint &pos); +    virtual void contextMenuEmpty(const QPoint &pos);      void deleteBookmark();      void onCollapse(const QModelIndex &index); @@ -67,11 +66,12 @@ private slots:      void loadFoldedState(const QModelIndex &root);  private: -    void setup(); +    virtual void setup();      KBookmark bookmarkForIndex(const QModelIndex &index); -    PanelTreeView *m_treeView; -    bool m_loadingState, m_loaded; +    virtual QAbstractItemModel* getModel(); + +    bool m_loadingState;  };  #endif // BOOKMARKSPANEL_H 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..84f2296e 100644 --- a/src/history/historypanel.cpp +++ b/src/history/historypanel.cpp @@ -27,113 +27,40 @@  // Self Includes  #include "historypanel.h" -#include "historypanel.moc"  // Auto Includes  #include "rekonq.h"  // Local Includes  #include "application.h" +#include "paneltreeview.h"  #include "historymodels.h" - -// Qt Includes -#include <QtGui/QLabel> -#include <QtGui/QHBoxLayout> -#include <QtGui/QHeaderView> -#include <QtGui/QTreeView> - +#include "urlfilterproxymodel.h"  // KDE Includes -#include <KLineEdit>  #include <KLocalizedString>  #include <KMenu>  #include <KAction>  #include <KMessageBox> +// Qt Includes +#include <QtGui/QHeaderView> +  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(); - -    TreeProxyModel *treeProxyModel = new TreeProxyModel(this); -    treeProxyModel->setSourceModel(model); -    m_treeView->setModel(treeProxyModel); -    m_treeView->setExpanded(treeProxyModel->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(m_treeView, SIGNAL(contextMenuItemRequested(const QPoint &)), this, SLOT(contextMenuItem(const QPoint &))); -    connect(m_treeView, SIGNAL(contextMenuGroupRequested(const QPoint &)), this, SLOT(contextMenuGroup(const QPoint &))); - -    _loaded = true; -} - -  void HistoryPanel::contextMenuItem(const QPoint &pos)  {      KMenu menu; @@ -172,6 +99,11 @@ void HistoryPanel::contextMenuGroup(const QPoint &pos)  } +void HistoryPanel::contextMenuEmpty(const QPoint& /*pos*/) +{ +} + +  void HistoryPanel::openAll()  {      QModelIndex index = m_treeView->currentIndex(); @@ -198,3 +130,20 @@ void HistoryPanel::openAll()          emit openUrl(allChild.at(i).url(), Rekonq::NewTab);  } + +void HistoryPanel::setup() +{ +    UrlPanel::setup(); +    kDebug() << "History panel..."; + +    m_treeView->header()->hideSection(1); + +    const UrlFilterProxyModel *proxy = static_cast<const UrlFilterProxyModel*>(m_treeView->model()); +    m_treeView->expand(proxy->index(0, 0)); +} + + +QAbstractItemModel* HistoryPanel::getModel() +{ +    return Application::historyManager()->historyTreeModel(); +} diff --git a/src/history/historypanel.h b/src/history/historypanel.h index 68de2828..9c9d4a4e 100644 --- a/src/history/historypanel.h +++ b/src/history/historypanel.h @@ -33,43 +33,28 @@  #include "rekonq_defines.h"  // Local Includes -#include "application.h" -#include "paneltreeview.h" +#include "urlpanel.h" -// Qt Includes -#include <QDockWidget> -// Forward Declarations -class KUrl; -class QWidget; -class QModelIndex; - - -class REKONQ_TESTS_EXPORT HistoryPanel : public QDockWidget +class REKONQ_TESTS_EXPORT HistoryPanel : public UrlPanel  {      Q_OBJECT  public:      explicit HistoryPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); -    ~HistoryPanel(); - -public slots: -    void showing(bool); -     -signals: -    void openUrl(const KUrl &, const Rekonq::OpenType &); -    void itemHovered(const QString &); +    virtual ~HistoryPanel();  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(); -    PanelTreeView *m_treeView; +    virtual void setup(); -    bool _loaded; +    virtual QAbstractItemModel* getModel();  };  #endif // HISTORYPANEL_H diff --git a/src/bookmarks/bookmarksproxy.cpp b/src/urlfilterproxymodel.cpp index 1e4da877..b8e68342 100644 --- a/src/bookmarks/bookmarksproxy.cpp +++ b/src/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/urlfilterproxymodel.h index b4554d2b..f4f15395 100644 --- a/src/bookmarks/bookmarksproxy.h +++ b/src/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 diff --git a/src/urlpanel.cpp b/src/urlpanel.cpp new file mode 100644 index 00000000..86246fd9 --- /dev/null +++ b/src/urlpanel.cpp @@ -0,0 +1,114 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Domrachev Alexandr <alexandr.domrachev@gmail.com> +* Copyright (C) 2009-2010 by Andrea Diamantini <adjam7 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 "urlpanel.h" + +// Auto Includes +#include "rekonq.h" + +// Local Includes +#include "paneltreeview.h" +#include "urlfilterproxymodel.h" + +// KDE Includes +#include <KLineEdit> +#include <KLocalizedString> + +// Qt Includes +#include <QtGui/QLabel> +#include <QtGui/QHBoxLayout> +#include <QtGui/QHeaderView> + + +UrlPanel::UrlPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags) +        : QDockWidget(title, parent, flags) +        , m_treeView(new PanelTreeView(this)) +        , _loaded(false) +{ +    setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + +    connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(showing(bool))); +} + + +UrlPanel::~UrlPanel() +{ +} + + +void UrlPanel::showing(bool b) +{ +    if(!_loaded && b) +    { +        setup(); +        _loaded = true; +    } +} + + +void UrlPanel::setup() +{ +    kDebug() << "Loading panel setup..."; + +    QWidget *ui = new QWidget(this); + +    // setup search bar +    QHBoxLayout *searchLayout = new QHBoxLayout; +    searchLayout->setContentsMargins(5, 0, 0, 0); +    QLabel *searchLabel = new QLabel(i18n("&Search:")); +    searchLayout->addWidget(searchLabel); +    KLineEdit *search = new KLineEdit; +    search->setClearButtonShown(true); +    searchLayout->addWidget(search); +    searchLabel->setBuddy(search); + +    // setup tree view +    m_treeView->setUniformRowHeights(true); +    m_treeView->header()->hide(); + +    // put everything together +    QVBoxLayout *vBoxLayout = new QVBoxLayout; +    vBoxLayout->setContentsMargins(0, 0, 0, 0); +    vBoxLayout->addLayout(searchLayout); +    vBoxLayout->addWidget(m_treeView); + +    // add it to the UI +    ui->setLayout(vBoxLayout); +    setWidget(ui); + +    QAbstractItemModel *model = getModel(); +    UrlFilterProxyModel *proxy = new UrlFilterProxyModel(this); +    proxy->setSourceModel(model); +    m_treeView->setModel(proxy); + +    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 &))); +    connect(m_treeView, SIGNAL(contextMenuEmptyRequested(const QPoint &)), this, SLOT(contextMenuEmpty(const QPoint &))); +} diff --git a/src/urlpanel.h b/src/urlpanel.h new file mode 100644 index 00000000..b4ca2aa5 --- /dev/null +++ b/src/urlpanel.h @@ -0,0 +1,76 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Domrachev Alexandr <alexandr.domrachev@gmail.com> +* Copyright (C) 2009-2010 by Andrea Diamantini <adjam7 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 URLPANEL_H +#define URLPANEL_H + + +// Rekonq Includes +#include "rekonq_defines.h" + +// Qt Includes +#include <QDockWidget> + +// Forward Declarations +class PanelTreeView; + +class QAbstractItemModel; + + +class REKONQ_TESTS_EXPORT UrlPanel : public QDockWidget +{ +    Q_OBJECT + +public: +    explicit UrlPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0); +    virtual ~UrlPanel(); + +public slots: +    void showing(bool); + +signals: +    void openUrl(const KUrl &, const Rekonq::OpenType &); +    void itemHovered(const QString &); + +protected slots: +    virtual void contextMenuItem(const QPoint &pos) = 0; +    virtual void contextMenuGroup(const QPoint &pos) = 0; +    virtual void contextMenuEmpty(const QPoint &pos) = 0; + +protected: +    virtual void setup(); + +    virtual QAbstractItemModel* getModel() = 0; + +    PanelTreeView *m_treeView; + +private: +    bool _loaded; +}; + + +#endif // URLPANEL_H | 
