[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/libs/widgets/resources
From:       Jan Hambrecht <jaham () gmx ! net>
Date:       2009-06-30 21:47:21
Message-ID: 1246398441.019756.23293.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 989771 by jaham:

handle adding and removing of resources



 M  +32 -0     KoResourceModel.cpp  
 M  +7 -0      KoResourceModel.h  


--- trunk/koffice/libs/widgets/resources/KoResourceModel.cpp #989770:989771
@@ -27,6 +27,10 @@
 {
     Q_ASSERT( m_resourceAdapter );
     m_resourceAdapter->connectToResourceServer();
+    connect(m_resourceAdapter, SIGNAL(resourceAdded(KoResource*)), 
+            this, SLOT(resourceAdded(KoResource*)));
+    connect(m_resourceAdapter, SIGNAL(removingResource(KoResource*)), 
+            this, SLOT(resourceRemoved(KoResource*)));
 }
 
 int KoResourceModel::rowCount( const QModelIndex &/*parent*/ ) const
@@ -104,3 +108,31 @@
 {
     return m_resourceAdapter;
 }
+
+void KoResourceModel::resourceAdded(KoResource *resource)
+{
+    int newIndex = m_resourceAdapter->resources().indexOf(resource);
+    if (newIndex < 0)
+        return;
+    
+    int row = newIndex / m_columnCount;
+    int col = newIndex % m_columnCount;
+    if (col == 0 || m_columnCount == 1 ) {
+        beginInsertRows(QModelIndex(), row, row);
+        endInsertRows();
+    } else {
+        QModelIndex modelIndex = index(row, col, QModelIndex());
+        emit dataChanged(modelIndex, modelIndex);
+    }
+}
+
+void KoResourceModel::resourceRemoved(KoResource *resource)
+{
+    int oldIndex = m_resourceAdapter->resources().indexOf(resource);
+    if (oldIndex < 0)
+        return;
+    
+    reset();
+}
+
+#include "KoResourceModel.moc"
--- trunk/koffice/libs/widgets/resources/KoResourceModel.h #989770:989771
@@ -23,10 +23,12 @@
 #include <QAbstractTableModel>
 
 class KoAbstractResourceServerAdapter;
+class KoResource;
 
 /// The resource model managing the resource data
 class KoResourceModel : public QAbstractTableModel
 {
+    Q_OBJECT
 public:
     KoResourceModel( KoAbstractResourceServerAdapter * resourceAdapter, QObject * parent = 0 );
     virtual ~KoResourceModel() {}
@@ -43,6 +45,11 @@
     void setColumnCount( int columnCount );
     /// @returns the resource server adapter the model is connnected to
     KoAbstractResourceServerAdapter * resourceServerAdapter();
+
+private slots:
+    void resourceAdded(KoResource *resource);
+    void resourceRemoved(KoResource *resource);
+
 private:
     KoAbstractResourceServerAdapter * m_resourceAdapter;
     int m_columnCount;

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic