[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