#include "support/debug.h"
#include <QHeaderView>
+#include <QTimer>
#include <vector>
return;
}
- QString current_text = typeCO->currentText();
+ QString const current_text = typeCO->currentText();
typeCO->blockSignals(true);
typeCO->clear();
for (size_t i = 0; i != type_names.size(); ++i) {
QString item = toqstr(type_names[i]);
typeCO->addItem(item);
}
- typeCO->setCurrentIndex(selected_type);
+ if (selected_type != -1)
+ typeCO->setCurrentIndex(selected_type);
+ else {
+ int const new_index = typeCO->findText(current_text);
+ if (new_index != -1)
+ typeCO->setCurrentIndex(new_index);
+ }
+
typeCO->blockSignals(false);
setTocModel(typeCO->currentIndex());
+
+ // setTocModel produce QTreeView reset and setting depth again
+ // is needed. That must be done after all Qt updates are processed.
+ QTimer::singleShot(0, this, SLOT(setTreeDepth()));
}