summaryrefslogtreecommitdiff
path: root/src/bookmarkspanel
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2009-11-27 02:21:04 +0100
committerAndrea Diamantini <adjam7@gmail.com>2009-11-27 02:21:04 +0100
commit997d64c9743149b2b400891b09ab99e9613bf273 (patch)
tree98cb23b7331e4ffd2e760fb37b682df3ad7589db /src/bookmarkspanel
parentrekonq 0.3.14 (diff)
downloadrekonq-997d64c9743149b2b400891b09ab99e9613bf273.tar.xz
Last structure change, promised!
Anyway, this moving/renaming helped me finding lots of strange circulary dependencies and easily solve them :) We have also a more organized structure, hopefully letting people work on different areas altogether.
Diffstat (limited to 'src/bookmarkspanel')
-rw-r--r--src/bookmarkspanel/bookmarkspanel.cpp110
-rw-r--r--src/bookmarkspanel/bookmarkspanel.h58
-rw-r--r--src/bookmarkspanel/bookmarksproxy.cpp29
-rw-r--r--src/bookmarkspanel/bookmarksproxy.h48
-rw-r--r--src/bookmarkspanel/bookmarkstreemodel.cpp255
-rw-r--r--src/bookmarkspanel/bookmarkstreemodel.h69
6 files changed, 0 insertions, 569 deletions
diff --git a/src/bookmarkspanel/bookmarkspanel.cpp b/src/bookmarkspanel/bookmarkspanel.cpp
deleted file mode 100644
index a09e0058..00000000
--- a/src/bookmarkspanel/bookmarkspanel.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Nils Weigel <nehlsen 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/>.
-*
-* ============================================================ */
-
-
-// rekonq includes
-#include "bookmarkspanel.h"
-#include "bookmarkstreemodel.h"
-#include "bookmarksproxy.h"
-
-// Auto Includes
-#include "rekonq.h"
-
-// Qt includes
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QTreeView>
-#include <QHeaderView>
-
-// KDE includes
-#include <KLineEdit>
-#include <KLocalizedString>
-
-BookmarksPanel::BookmarksPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags):
- QDockWidget(title, parent, flags)
-{
- setup();
-
- setShown(ReKonfig::showBookmarksPanel());
-}
-
-
-BookmarksPanel::~BookmarksPanel()
-{
- ReKonfig::setShowBookmarksPanel(!isHidden());
-
- delete ui;
-}
-
-void BookmarksPanel::bookmarkActivated( const QModelIndex &index )
-{
- if( index.isValid() )
- emit openUrl( qVariantValue< KUrl >( index.data( Qt::UserRole ) ) );
-}
-
-void BookmarksPanel::setup()
-{
- setObjectName("bookmarksPanel");
- setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
-
- 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
- QTreeView *treeView = new QTreeView(ui);
- treeView->setUniformRowHeights(true);
- treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
- treeView->setTextElideMode(Qt::ElideMiddle);
- treeView->setAlternatingRowColors(true);
- treeView->header()->hide();
- treeView->setRootIsDecorated( false );
-
- // put everything together
- QVBoxLayout *vBoxLayout = new QVBoxLayout;
- vBoxLayout->setContentsMargins(0, 0, 0, 0);
- vBoxLayout->addLayout(searchLayout);
- vBoxLayout->addWidget(treeView);
-
- // add it to the UI
- ui->setLayout(vBoxLayout);
- setWidget(ui);
-
- BookmarksTreeModel *model = new BookmarksTreeModel( this );
- BookmarksProxy *proxy = new BookmarksProxy(ui);
- proxy->setSourceModel( model );
- treeView->setModel( proxy );
-
- connect(search, SIGNAL(textChanged(QString)), proxy, SLOT(setFilterFixedString(QString)));
- connect( treeView, SIGNAL( activated(QModelIndex) ), this, SLOT( bookmarkActivated(QModelIndex) ) );
-}
diff --git a/src/bookmarkspanel/bookmarkspanel.h b/src/bookmarkspanel/bookmarkspanel.h
deleted file mode 100644
index 8c3e6121..00000000
--- a/src/bookmarkspanel/bookmarkspanel.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Nils Weigel <nehlsen 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 BOOKMARKSPANEL_H
-#define BOOKMARKSPANEL_H
-
-// Qt Includes
-#include <QDockWidget>
-
-// Forward Declarations
-class KUrl;
-class QModelIndex;
-
-class BookmarksPanel : public QDockWidget
-{
- Q_OBJECT
- Q_DISABLE_COPY(BookmarksPanel)
-
-public:
- explicit BookmarksPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
- ~BookmarksPanel();
-
-signals:
- void openUrl(const KUrl &);
-
-private slots:
- void bookmarkActivated( const QModelIndex &index );
-
-private:
- void setup();
-
- QWidget *ui;
-};
-
-#endif // BOOKMARKSPANEL_H
diff --git a/src/bookmarkspanel/bookmarksproxy.cpp b/src/bookmarkspanel/bookmarksproxy.cpp
deleted file mode 100644
index 87d1ce71..00000000
--- a/src/bookmarkspanel/bookmarksproxy.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "bookmarksproxy.h"
-
-BookmarksProxy::BookmarksProxy( QObject *parent ):
- QSortFilterProxyModel( parent )
-{
-}
-
-bool BookmarksProxy::filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const
-{
- QModelIndex idx = sourceModel()->index( source_row, 0, source_parent );
-
-// return idx.data().toString().contains( filterRegExp() );
- return recursiveMatch( idx );
-}
-
-bool BookmarksProxy::recursiveMatch( const QModelIndex &index ) const
-{
- if( index.data().toString().contains( filterRegExp() ) ) {
- return true;
- }
-
- for( int childRow = 0; childRow < sourceModel()->rowCount( index ); ++childRow ) {
- if( recursiveMatch( sourceModel()->index( childRow, 0, index ) ) ) {
- return true;
- }
- }
-
- return false;
-}
diff --git a/src/bookmarkspanel/bookmarksproxy.h b/src/bookmarkspanel/bookmarksproxy.h
deleted file mode 100644
index 99483331..00000000
--- a/src/bookmarkspanel/bookmarksproxy.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Nils Weigel <nehlsen 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 BOOKMARKSPROXY_H
-#define BOOKMARKSPROXY_H
-
-// Qt Includes
-#include <QSortFilterProxyModel>
-
-class BookmarksProxy : public QSortFilterProxyModel
-{
- Q_OBJECT
- Q_DISABLE_COPY(BookmarksProxy)
-
-public:
- BookmarksProxy( QObject *parent = 0 );
-
-protected:
- virtual bool filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const;
-
- // returns true if any child(or childs-child...) matches filter
- bool recursiveMatch( const QModelIndex &index ) const;
-};
-
-#endif // BOOKMARKSPROXY_H
diff --git a/src/bookmarkspanel/bookmarkstreemodel.cpp b/src/bookmarkspanel/bookmarkstreemodel.cpp
deleted file mode 100644
index 99441a63..00000000
--- a/src/bookmarkspanel/bookmarkstreemodel.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-#include "bookmarkstreemodel.h"
-
-// rekonq includes
-#include "../application.h"
-#include "../bookmarks.h"
-
-// KDE includes
-#include <KBookmarkGroup>
-#include <KLocalizedString>
-
-class BookmarksTreeModel::BtmItem
-{
-public:
- BtmItem(const KBookmark &bm):
- m_parent(0), m_kbm(bm)
- {
- }
- ~BtmItem()
- {
- qDeleteAll(m_children);
- }
-
- QVariant data( int role = Qt::DisplayRole ) const
- {
- if( m_kbm.isNull() )
- return QVariant();// should only happen for root item
-
- if( role == Qt::DisplayRole )
- return m_kbm.text();
- if( role == Qt::DecorationRole )
- return KIcon( m_kbm.icon() );
- if( role == Qt::UserRole )
- return m_kbm.url();
-
- return QVariant();
- }
-
- int row() const
- {
- if(m_parent)
- return m_parent->m_children.indexOf( const_cast< BtmItem* >( this ) );
- return 0;
- }
- int childCount() const
- {
- return m_children.count();
- }
- BtmItem* child( int n )
- {
- Q_ASSERT(n>=0);
- Q_ASSERT(n<childCount());
-
- return m_children.at(n);
- }
- BtmItem* parent() const
- {
- return m_parent;
- }
-
- void appendChild(BtmItem *child)
- {
-// Q_ASSERT( child != 0 );
- if( !child )
- return;
-
- child->m_parent = this;
- m_children << child;
- }
- void clear()
- {
- qDeleteAll(m_children);
- m_children.clear();
- }
-
-private:
- BtmItem *m_parent;
- QList< BtmItem* > m_children;
-
- KBookmark m_kbm;
-};
-
-BookmarksTreeModel::BookmarksTreeModel(QObject *parent):
- QAbstractItemModel(parent), m_root(0)
-{
- resetModel();
- connect( Application::bookmarkProvider()->bookmarkManager(), SIGNAL( changed(QString,QString) ), this, SLOT( bookmarksChanged(QString) ) );
- connect( Application::bookmarkProvider()->bookmarkManager(), SIGNAL( bookmarksChanged(QString) ), this, SLOT( bookmarksChanged(QString) ) );
-}
-
-BookmarksTreeModel::~BookmarksTreeModel()
-{
- delete m_root;
-}
-
-int BookmarksTreeModel::rowCount(const QModelIndex &parent) const
-{
- BtmItem *parentItem = 0;
- if( !parent.isValid() ) {
- parentItem = m_root;
- }
- else {
- parentItem = static_cast< BtmItem* >( parent.internalPointer() );
- }
-
- return parentItem->childCount();
-}
-
-int BookmarksTreeModel::columnCount(const QModelIndex &/*parent*/) const
-{
- // name
- return 1;
-}
-
-QVariant BookmarksTreeModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if( orientation == Qt::Horizontal && role == Qt::DisplayRole && section == 0 )
- return i18n( "Bookmark" );
-
- return QVariant();
-}
-
-Qt::ItemFlags BookmarksTreeModel::flags(const QModelIndex &/*index*/) const
-{
- return Qt::ItemIsEnabled|Qt::ItemIsSelectable;
-}
-
-QModelIndex BookmarksTreeModel::index(int row, int column, const QModelIndex &parent) const
-{
- if( !hasIndex( row, column, parent ) ) {
- return QModelIndex();
- }
-
- BtmItem *parentItem;
-
- if( !parent.isValid() ) {
- parentItem = m_root;
- }
- else {
- parentItem = static_cast< BtmItem* >( parent.internalPointer() );
- }
-
- BtmItem *childItem = parentItem->child( row );
- if( childItem ) {
- return createIndex( row, column, childItem );
- }
-
- return QModelIndex();
-}
-
-QModelIndex BookmarksTreeModel::parent(const QModelIndex &index) const
-{
- if( !index.isValid() ) {
- return QModelIndex();
- }
-
- BtmItem *childItem = static_cast< BtmItem* >( index.internalPointer() );
- BtmItem *parentItem = childItem->parent();
-
- if( parentItem == m_root ) {
- return QModelIndex();
- }
-
- return createIndex( parentItem->row(), 0, parentItem );
-}
-
-QVariant BookmarksTreeModel::data(const QModelIndex &index, int role) const
-{
- if( !index.isValid() ) {
- return QVariant();
- }
-
- BtmItem *node = static_cast< BtmItem* >( index.internalPointer() );
- if( node && node == m_root ) {
- if( role == Qt::DisplayRole )
- return i18n( "Bookmarks" );
- else if( role == Qt::DecorationRole )
- return KIcon( "bookmarks" );
- }
- else if( node ) {
- return node->data( role );
- }
-
- return QVariant();
-}
-
-// bool BookmarksTreeModel::setData(const QModelIndex &index, const QVariant &value, int role)
-// {
-// }
-
-void BookmarksTreeModel::bookmarksChanged( const QString &groupAddress )
-{
-// qDebug( "bookmarksChanged '%s'", qPrintable( groupAddress ) );
-
- if( groupAddress.isEmpty() ) {
- resetModel();
- return;
- }
-
- BtmItem *node = m_root;
- QModelIndex nodeIndex;
-
- QStringList indexChain( groupAddress.split( '/', QString::SkipEmptyParts) );
- foreach( QString sIndex, indexChain ) {
- bool ok;
- int i = sIndex.toInt( &ok );
- if( !ok )
- break;
-
- if( i < 0 || i >= node->childCount() )
- break;
-
- node = node->child( i );
- nodeIndex = index( i, 0, nodeIndex );
- }
-// qDebug( " changed: '%s'(0-%d)", ( node == m_root ? "ROOT" : qPrintable( node->data().toString() ) ), node->childCount() );
- emit dataChanged( index( 0, 0, nodeIndex ), index( node->childCount(), 0, nodeIndex ) );
-}
-
-void BookmarksTreeModel::resetModel()
-{
- setRoot(Application::bookmarkProvider()->rootGroup());
-}
-
-void BookmarksTreeModel::setRoot(KBookmarkGroup bmg)
-{
- delete m_root;
- m_root = new BtmItem(KBookmark());
-
- if( bmg.isNull() ) {
- return;
- }
-
- populate( m_root, bmg );
-
- reset();
-}
-
-void BookmarksTreeModel::populate( BtmItem *node, KBookmarkGroup bmg)
-{
- node->clear();
-
- if( bmg.isNull() ) {
- return;
- }
-
- KBookmark bm = bmg.first();
- while( !bm.isNull() ) {
- BtmItem *newChild = new BtmItem( bm );
- if( bm.isGroup() )
- populate( newChild, bm.toGroup() );
-
- node->appendChild( newChild );
- bm = bmg.next( bm );
- }
-}
diff --git a/src/bookmarkspanel/bookmarkstreemodel.h b/src/bookmarkspanel/bookmarkstreemodel.h
deleted file mode 100644
index 9753999c..00000000
--- a/src/bookmarkspanel/bookmarkstreemodel.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ============================================================
-*
-* This file is a part of the rekonq project
-*
-* Copyright (C) 2009 by Nils Weigel <nehlsen 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 BOOKMARKSTREEMODEL_H
-#define BOOKMARKSTREEMODEL_H
-
-// Qt Includes
-#include <QAbstractItemModel>
-
-// KDE includes
-#include <KBookmark>
-
-class BookmarksTreeModel : public QAbstractItemModel
-{
- Q_OBJECT
- Q_DISABLE_COPY(BookmarksTreeModel)
-
-public:
- explicit BookmarksTreeModel(QObject *parent = 0);
- ~BookmarksTreeModel();
-
- virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
- virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
-
- virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
- virtual Qt::ItemFlags flags(const QModelIndex &index) const;
-
- virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
- virtual QModelIndex parent(const QModelIndex &index) const;
- virtual QVariant data(const QModelIndex &index, int role) const;
-// virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
-
-private slots:
- void bookmarksChanged( const QString &groupAddress );
-
-private:
- class BtmItem;
- BtmItem *m_root;
-
- void resetModel();
-
- void setRoot(KBookmarkGroup bmg);
- void populate( BtmItem *node, KBookmarkGroup bmg);
-};
-
-#endif // BOOKMARKSTREEMODEL_H