Skip to content

Commit 654ce36

Browse files
committed
Revert changes added to tree model
1 parent 3b10d76 commit 654ce36

File tree

9 files changed

+63
-64
lines changed

9 files changed

+63
-64
lines changed

src/app/models/connectionsmanager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ void ConnectionsManager::updateGroup(const ConnectionGroup &group)
5858
return;
5959
}
6060

61-
itemChanged(serverGroup);
61+
emit itemChanged(serverGroup);
6262

6363
saveConfig();
6464

@@ -352,7 +352,7 @@ void ConnectionsManager::createServerItemForConnection(
352352
[this, serverItem]() {
353353
if (!serverItem) return;
354354

355-
itemChanged(
355+
emit itemChanged(
356356
serverItem.dynamicCast<ConnectionsTree::TreeItem>().toWeakRef());
357357
});
358358

src/modules/connections-tree/items/abstractnamespaceitem.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ void AbstractNamespaceItem::clearLoader() {
268268
}
269269

270270
void AbstractNamespaceItem::showLoadingError(const QString &err) {
271-
m_model.itemChanged(getSelf());
271+
emit m_model.itemChanged(getSelf());
272272
emit m_model.error(err);
273273
}
274274

@@ -298,7 +298,7 @@ void AbstractNamespaceItem::sortChilds() {
298298
m_model.beforeItemLayoutChanged(getSelf());
299299
std::sort(m_childItems.begin(), m_childItems.end(), compareChilds);
300300
m_model.itemLayoutChanged(getSelf());
301-
m_model.itemChanged(getSelf());
301+
emit m_model.itemChanged(getSelf());
302302
}
303303

304304
void AbstractNamespaceItem::renderRawKeys(
@@ -374,9 +374,11 @@ QHash<QString, std::function<void()>> AbstractNamespaceItem::eventHandlers() {
374374
}
375375

376376
getMemoryUsage([this](qlonglong) {
377-
sortChilds();
378-
unlock();
379-
m_runningOperation.clear();
377+
QTimer::singleShot(0, this, [this]() {
378+
sortChilds();
379+
unlock();
380+
m_runningOperation.clear();
381+
});
380382
});
381383
});
382384
});
@@ -407,7 +409,9 @@ void AbstractNamespaceItem::fetchMore() {
407409

408410
int childsCount = m_childItems.size();
409411
auto rawKeys = m_rawChildKeys;
410-
m_model.itemChanged(getSelf());
412+
413+
emit m_model.itemChanged(getSelf());
414+
411415
m_rawChildKeys.clear();
412416

413417
return renderRawKeys(
@@ -451,7 +455,7 @@ void AbstractNamespaceItem::calculateUsedMemory(
451455
QMutexLocker locker(&m_updateUsedMemoryMutex);
452456
Q_UNUSED(locker);
453457
m_usedMemory += result;
454-
m_model.itemChanged(getSelf());
458+
emit m_model.itemChanged(getSelf());
455459

456460
(*resultsRemaining)--;
457461

src/modules/connections-tree/items/databaseitem.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void DatabaseItem::loadKeys(std::function<void()> callback, bool partialReload)
7575

7676
if (dbMapping.contains(m_dbIndex)) {
7777
m_keysCount = dbMapping[m_dbIndex];
78-
m_model.itemChanged(getSelf());
78+
emit m_model.itemChanged(getSelf());
7979
}
8080
};
8181

@@ -90,7 +90,7 @@ void DatabaseItem::loadKeys(std::function<void()> callback, bool partialReload)
9090
m_model.expandItem(getSelf());
9191
}
9292

93-
m_model.itemChanged(getSelf());
93+
emit m_model.itemChanged(getSelf());
9494

9595
if (callback) {
9696
callback();
@@ -160,7 +160,7 @@ void DatabaseItem::setMetadata(const QString& key, QVariant value) {
160160
liveUpdateTimer()->start();
161161
}
162162

163-
m_model.itemChanged(getSelf());
163+
emit m_model.itemChanged(getSelf());
164164
}
165165
}
166166

@@ -225,7 +225,9 @@ void DatabaseItem::performLiveUpdate() {
225225
if (m_childItems.size() >=
226226
settings.value("app/liveUpdateKeysLimit", 1000).toInt()) {
227227
liveUpdateTimer()->stop();
228-
m_model.itemChanged(getSelf());
228+
229+
emit m_model.itemChanged(getSelf());
230+
229231
QMessageBox::warning(
230232
nullptr,
231233
QCoreApplication::translate("RDM", "Live update was disabled"),
@@ -236,20 +238,20 @@ void DatabaseItem::performLiveUpdate() {
236238
"settings."));
237239
} else {
238240
liveUpdateTimer()->start();
239-
m_model.itemChanged(getSelf());
241+
emit m_model.itemChanged(getSelf());
240242
}
241243
}, true);
242244
}
243245

244246
void DatabaseItem::filterKeys(const QRegExp& filter) {
245247
m_filter = filter;
246-
m_model.itemChanged(getSelf());
248+
emit m_model.itemChanged(getSelf());
247249
reload();
248250
}
249251

250252
void DatabaseItem::resetFilter() {
251253
m_filter = QRegExp(m_operations->defaultFilter());
252-
m_model.itemChanged(getSelf());
254+
emit m_model.itemChanged(getSelf());
253255
reload();
254256
}
255257

@@ -271,7 +273,7 @@ QHash<QString, std::function<void()>> DatabaseItem::eventHandlers() {
271273
events.insert("right-click", [this]() {
272274
if (m_childItems.size() != 0) return;
273275

274-
m_model.itemChanged(getSelf());
276+
emit m_model.itemChanged(getSelf());
275277
});
276278

277279
events.insert("add_key", [this]() {

src/modules/connections-tree/items/keyitem.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ int KeyItem::getDbIndex() const {
9292
void KeyItem::setRemoved() {
9393
m_removed = true;
9494

95-
m_model.itemChanged(getSelf());
95+
emit m_model.itemChanged(getSelf());
9696
}
9797

9898
void KeyItem::getMemoryUsage(std::function<void(qlonglong)> callback) {
@@ -104,14 +104,14 @@ void KeyItem::getMemoryUsage(std::function<void(qlonglong)> callback) {
104104
[this, callback](qlonglong result) {
105105
m_usedMemory = result;
106106
callback(result);
107-
m_model.itemChanged(getSelf());
107+
emit m_model.itemChanged(getSelf());
108108
}, [](qlonglong){});
109109
}
110110

111111
void KeyItem::setFullPath(const QByteArray& p) {
112112
m_fullPath = p;
113113

114-
m_model.itemChanged(getSelf());
114+
emit m_model.itemChanged(getSelf());
115115
}
116116

117117
QHash<QString, std::function<void()>> KeyItem::eventHandlers() {

src/modules/connections-tree/items/namespaceitem.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void NamespaceItem::setRemoved() {
5151

5252
clear();
5353

54-
m_model.itemChanged(getSelf());
54+
emit m_model.itemChanged(getSelf());
5555
}
5656

5757
void NamespaceItem::load() {
@@ -60,7 +60,7 @@ void NamespaceItem::load() {
6060

6161
unlock();
6262
setExpanded(true);
63-
m_model.itemChanged(getSelf());
63+
emit m_model.itemChanged(getSelf());
6464
m_model.expandItem(getSelf());
6565
};
6666

@@ -115,7 +115,7 @@ QHash<QString, std::function<void()>> NamespaceItem::eventHandlers() {
115115
load();
116116
} else if (!isExpanded()) {
117117
setExpanded(true);
118-
m_model.itemChanged(getSelf());
118+
emit m_model.itemChanged(getSelf());
119119
m_model.expandItem(getSelf());
120120
}
121121
});

src/modules/connections-tree/items/serveritem.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,14 @@ void ServerItem::load() {
9393
++db;
9494
}
9595

96-
m_model.beforeChildLoaded(getSelf(), dbs.size());
97-
m_databases = dbs;
98-
m_model.childLoaded(getSelf());
96+
QTimer::singleShot(0, this, [this, dbs]() {
97+
m_model.beforeChildLoaded(getSelf(), dbs.size());
98+
m_databases = dbs;
99+
m_model.childLoaded(getSelf());
99100

100-
unlock();
101-
m_model.expandItem(getSelf());
101+
unlock();
102+
m_model.expandItem(getSelf());
103+
});
102104
};
103105

104106
m_currentOperation = m_operations->getDatabases(callback);
@@ -180,7 +182,7 @@ QHash<QString, std::function<void()> > ServerItem::eventHandlers() {
180182

181183
events.insert("reload", [this]() {
182184
reload();
183-
m_model.itemChanged(getSelf());
185+
emit m_model.itemChanged(getSelf());
184186
});
185187

186188
events.insert("unload", [this]() { unload(); });

src/modules/connections-tree/items/treeitem.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ ConnectionsTree::Model &ConnectionsTree::TreeItem::model() { return m_model; }
4545
void ConnectionsTree::TreeItem::lock() {
4646
m_locked = true;
4747
if (getSelf())
48-
m_model.itemChanged(getSelf());
48+
emit m_model.itemChanged(getSelf());
4949
}
5050

5151
void ConnectionsTree::TreeItem::unlock() {
5252
m_locked = false;
5353
if (getSelf())
54-
m_model.itemChanged(getSelf());
54+
emit m_model.itemChanged(getSelf());
5555
}
5656

5757
QHash<QString, std::function<void()>>
@@ -66,7 +66,7 @@ void ConnectionsTree::TreeItem::handleEvent(QString event) {
6666

6767
if (isLocked() && event != "cancel") {
6868
qDebug() << "Item is locked. Ignore event: " << event;
69-
m_model.itemChanged(getSelf());
69+
emit m_model.itemChanged(getSelf());
7070
return;
7171
}
7272

src/modules/connections-tree/model.cpp

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Model::Model(QObject *parent)
1414
m_rawPointers(new QHash<TreeItem *, QWeakPointer<TreeItem>>())
1515
{
1616
qRegisterMetaType<QWeakPointer<TreeItem>>("QWeakPointer<TreeItem>");
17+
QObject::connect(this, &Model::itemChanged, this, &Model::onItemChanged);
1718
}
1819

1920
QVariant Model::data(const QModelIndex &index, int role) const {
@@ -118,8 +119,8 @@ QModelIndex Model::getIndexFromItem(QWeakPointer<TreeItem> item) {
118119
return createIndex(sRef->row(), 0, (void *)sRef.data());
119120
}
120121

121-
void Model::itemChanged(QWeakPointer<TreeItem> item) {
122-
if (!item) return;
122+
void Model::onItemChanged(QWeakPointer<TreeItem> item) {
123+
if (!item) return;
123124

124125
auto index = getIndexFromItem(item);
125126

@@ -130,7 +131,7 @@ void Model::itemChanged(QWeakPointer<TreeItem> item) {
130131

131132
void Model::beforeItemChildsUnloaded(QWeakPointer<TreeItem> item)
132133
{
133-
if (!item) return;
134+
if (!item) return;
134135

135136
auto index = getIndexFromItem(item);
136137

@@ -146,7 +147,7 @@ void Model::beforeItemChildsUnloaded(QWeakPointer<TreeItem> item)
146147

147148
void Model::beforeChildLoadedAtPos(QWeakPointer<TreeItem> item, int pos)
148149
{
149-
if (!item) return;
150+
if (!item) return;
150151

151152
auto index = getIndexFromItem(item);
152153

@@ -157,7 +158,7 @@ void Model::beforeChildLoadedAtPos(QWeakPointer<TreeItem> item, int pos)
157158

158159
void Model::beforeChildLoaded(QWeakPointer<TreeItem> item, int count)
159160
{
160-
if (!item) return;
161+
if (!item) return;
161162

162163
auto index = getIndexFromItem(item);
163164

@@ -173,7 +174,7 @@ void Model::beforeChildLoaded(QWeakPointer<TreeItem> item, int count)
173174

174175
void Model::childLoaded(QWeakPointer<TreeItem> item)
175176
{
176-
if (!item) return;
177+
if (!item) return;
177178

178179
auto index = getIndexFromItem(item);
179180

@@ -184,26 +185,24 @@ void Model::childLoaded(QWeakPointer<TreeItem> item)
184185

185186
void Model::beforeItemChildRemoved(QWeakPointer<TreeItem> item, int row)
186187
{
187-
if (!item) return;
188+
if (!item) return;
188189

189190
auto index = getIndexFromItem(item);
190191

191-
if (!index.isValid()) return;
192-
193-
qDebug() << "before child removal";
192+
if (!index.isValid()) return;
194193

195194
beginRemoveRows(index, row, row);
196195
}
197196

198197
void Model::itemChildRemoved(QWeakPointer<TreeItem> childItem)
199198
{
200-
if (!childItem) return;
199+
if (!childItem) return;
201200

202201
endRemoveRows();
203202
}
204203

205204
void Model::expandItem(QWeakPointer<TreeItem> item) {
206-
if (!item) return;
205+
if (!item) return;
207206

208207
auto index = getIndexFromItem(item);
209208

@@ -227,7 +226,7 @@ void Model::iterateAllChilds(QSharedPointer<TreeItem> item, QList<PendingIndexCh
227226
}
228227

229228
void Model::beforeItemLayoutChanged(QWeakPointer<TreeItem> item) {
230-
if (!item) return;
229+
if (!item) return;
231230

232231
auto itemS = item.toStrongRef();
233232

@@ -237,23 +236,19 @@ void Model::beforeItemLayoutChanged(QWeakPointer<TreeItem> item) {
237236

238237
if (m_pendingChanges.contains(item)) {
239238
m_pendingChanges.remove(item);
240-
}
241-
242-
qDebug() << "Layout about to change";
239+
}
243240

244241
emit layoutAboutToBeChanged({}, QAbstractItemModel::VerticalSortHint);
245242

246243
QList<PendingIndexChange> pendingChanges;
247244

248-
iterateAllChilds(itemS, pendingChanges);
249-
250-
qDebug() << "----- pending changes:" << pendingChanges.size();
245+
iterateAllChilds(itemS, pendingChanges);
251246

252247
m_pendingChanges[item] = pendingChanges;
253248
}
254249

255250
void Model::itemLayoutChanged(QWeakPointer<TreeItem> item) {
256-
if (!item) return;
251+
if (!item) return;
257252

258253
auto itemS = item.toStrongRef();
259254

@@ -279,15 +274,9 @@ void Model::itemLayoutChanged(QWeakPointer<TreeItem> item) {
279274
}
280275

281276
auto from = change.second;
282-
auto to = getIndexFromItem(child);
283-
284-
qDebug() << "Update model index from " << from.row() << from.parent() << "to" << to.row() << to.parent();
277+
auto to = getIndexFromItem(child);
285278
changePersistentIndex(from, to);
286-
}
287-
288-
qDebug() << "layout changed";
289-
290-
QPersistentModelIndex indx(index);
279+
}
291280

292281
emit layoutChanged({}, QAbstractItemModel::VerticalSortHint);
293282

@@ -480,7 +469,7 @@ void Model::addRootItem(QSharedPointer<SortableTreeItem> item) {
480469
}
481470

482471
void Model::removeRootItem(QSharedPointer<TreeItem> item) {
483-
if (!item) return;
472+
if (!item) return;
484473

485474
beginRemoveRows(QModelIndex(), item->row(), item->row());
486475
m_treeItems.removeAll(item);

0 commit comments

Comments
 (0)