[education/rkward] /: Fix some problems with model change notifications for changes in object meta data
Thomas Friedrichsmeier
null at kde.org
Sun Jul 24 08:24:51 BST 2022
Git commit 8d3b9b29eae2bf7fecd820d1376e5f8fe174aad1 by Thomas Friedrichsmeier.
Committed on 24/07/2022 at 07:24.
Pushed by tfry into branch 'master'.
Fix some problems with model change notifications for changes in object meta data
M +1 -0 ChangeLog
M +2 -2 rkward/core/rkmodificationtracker.cpp
M +5 -5 rkward/core/robject.cpp
https://invent.kde.org/education/rkward/commit/8d3b9b29eae2bf7fecd820d1376e5f8fe174aad1
diff --git a/ChangeLog b/ChangeLog
index 784529c4..b06f3a05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+- Fixed: Workspace browser would not always show change, immediately, when object type changes
- Fixed: Crash when using the "Git blame" kate plugin
- Fixed: Problem installing R support package in some configurations
- Fixed: Menubar would disapper after opening script editor, in some configurations
diff --git a/rkward/core/rkmodificationtracker.cpp b/rkward/core/rkmodificationtracker.cpp
index e06ef336..08f043fc 100644
--- a/rkward/core/rkmodificationtracker.cpp
+++ b/rkward/core/rkmodificationtracker.cpp
@@ -171,7 +171,7 @@ void RKModificationTracker::objectMetaChanged (RObject *object) {
sendListenerNotification (RObjectListener::MetaChanged, object, 0, 0, 0);
QModelIndex object_index = indexFor (object);
- emit dataChanged(object_index, object_index);
+ emit dataChanged(object_index, object_index.sibling(object_index.row(), ColumnCount-1));
}
}
@@ -183,7 +183,7 @@ void RKModificationTracker::objectDataChanged (RObject *object, RObject::ChangeS
delete changes;
QModelIndex object_index = indexFor (object);
- emit dataChanged(object_index, object_index); // might have changed dimensions, for instance
+ emit dataChanged(object_index, object_index.sibling(object_index.row(), ColumnCount-1)); // might have changed dimensions, for instance
}
}
diff --git a/rkward/core/robject.cpp b/rkward/core/robject.cpp
index 842fbfad..060cfa2d 100644
--- a/rkward/core/robject.cpp
+++ b/rkward/core/robject.cpp
@@ -338,11 +338,11 @@ bool RObject::updateStructure (RData *new_data) {
RData::RDataStorage new_data_data = new_data->structureVector ();
properties_change = updateName (new_data_data.at (StoragePositionName));
- properties_change = updateType (new_data_data.at (StoragePositionType));
- properties_change = updateClasses (new_data_data.at (StoragePositionClass));
- properties_change = updateMeta (new_data_data.at (StoragePositionMeta));
- properties_change = updateDimensions (new_data_data.at (StoragePositionDims));
- properties_change = updateSlots (new_data_data.at (StoragePositionSlots));
+ properties_change |= updateType (new_data_data.at (StoragePositionType));
+ properties_change |= updateClasses (new_data_data.at (StoragePositionClass));
+ properties_change |= updateMeta (new_data_data.at (StoragePositionMeta));
+ properties_change |= updateDimensions (new_data_data.at (StoragePositionDims));
+ properties_change |= updateSlots (new_data_data.at (StoragePositionSlots));
if (properties_change) RKModificationTracker::instance()->objectMetaChanged (this);
if (type & NeedDataUpdate) updateDataFromR (0);
More information about the rkward-tracker
mailing list