summaryrefslogtreecommitdiff
path: root/src/bookmarkspanel/bookmarkstreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarkspanel/bookmarkstreemodel.cpp')
-rw-r--r--src/bookmarkspanel/bookmarkstreemodel.cpp255
1 files changed, 0 insertions, 255 deletions
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 );
- }
-}