Use QStringLiteral in ToolWindowManager to convert at compile-time

This commit is contained in:
baldurk
2017-05-02 22:58:11 +01:00
parent 22c5b7863d
commit ce53be8511
3 changed files with 35 additions and 33 deletions
+17 -15
View File
@@ -358,25 +358,25 @@ void ToolWindowManager::setAllowFloatingWindow(bool allow) {
QVariantMap ToolWindowManager::saveState() {
QVariantMap result;
result["toolWindowManagerStateFormat"] = 1;
result[QStringLiteral("toolWindowManagerStateFormat")] = 1;
ToolWindowManagerWrapper* mainWrapper = findChild<ToolWindowManagerWrapper*>();
if (!mainWrapper) {
qWarning("can't find main wrapper");
return QVariantMap();
}
result["mainWrapper"] = mainWrapper->saveState();
result[QStringLiteral("mainWrapper")] = mainWrapper->saveState();
QVariantList floatingWindowsData;
foreach(ToolWindowManagerWrapper* wrapper, m_wrappers) {
if (!wrapper->isWindow()) { continue; }
floatingWindowsData << wrapper->saveState();
}
result["floatingWindows"] = floatingWindowsData;
result[QStringLiteral("floatingWindows")] = floatingWindowsData;
return result;
}
void ToolWindowManager::restoreState(const QVariantMap &dataMap) {
if (dataMap.isEmpty()) { return; }
if (dataMap["toolWindowManagerStateFormat"].toInt() != 1) {
if (dataMap[QStringLiteral("toolWindowManagerStateFormat")].toInt() != 1) {
qWarning("state format is not recognized");
return;
}
@@ -386,8 +386,9 @@ void ToolWindowManager::restoreState(const QVariantMap &dataMap) {
qWarning("can't find main wrapper");
return;
}
mainWrapper->restoreState(dataMap["mainWrapper"].toMap());
foreach(QVariant windowData, dataMap["floatingWindows"].toList()) {
mainWrapper->restoreState(dataMap[QStringLiteral("mainWrapper")].toMap());
QVariantList floatWins = dataMap[QStringLiteral("floatingWindows")].toList();
foreach(QVariant windowData, floatWins) {
ToolWindowManagerWrapper* wrapper = new ToolWindowManagerWrapper(this);
wrapper->restoreState(windowData.toMap());
wrapper->show();
@@ -512,8 +513,8 @@ void ToolWindowManager::startDrag(const QList<QWidget *> &toolWindows) {
QVariantMap ToolWindowManager::saveSplitterState(QSplitter *splitter) {
QVariantMap result;
result["state"] = splitter->saveState().toBase64();
result["type"] = "splitter";
result[QStringLiteral("state")] = splitter->saveState().toBase64();
result[QStringLiteral("type")] = QStringLiteral("splitter");
QVariantList items;
for(int i = 0; i < splitter->count(); i++) {
QWidget* item = splitter->widget(i);
@@ -531,22 +532,23 @@ QVariantMap ToolWindowManager::saveSplitterState(QSplitter *splitter) {
}
items << itemValue;
}
result["items"] = items;
result[QStringLiteral("items")] = items;
return result;
}
QSplitter *ToolWindowManager::restoreSplitterState(const QVariantMap &savedData) {
if (savedData["items"].toList().count() < 2) {
if (savedData[QStringLiteral("items")].toList().count() < 2) {
qWarning("invalid splitter encountered");
}
QSplitter* splitter = createSplitter();
foreach(QVariant itemData, savedData["items"].toList()) {
QVariantList itemList = savedData[QStringLiteral("items")].toList();
foreach(QVariant itemData, itemList) {
QVariantMap itemValue = itemData.toMap();
QString itemType = itemValue["type"].toString();
if (itemType == "splitter") {
QString itemType = itemValue[QStringLiteral("type")].toString();
if (itemType == QStringLiteral("splitter")) {
splitter->addWidget(restoreSplitterState(itemValue));
} else if (itemType == "area") {
} else if (itemType == QStringLiteral("area")) {
ToolWindowManagerArea* area = createArea();
area->restoreState(itemValue);
splitter->addWidget(area);
@@ -554,7 +556,7 @@ QSplitter *ToolWindowManager::restoreSplitterState(const QVariantMap &savedData)
qWarning("unknown item type");
}
}
splitter->restoreState(QByteArray::fromBase64(savedData["state"].toByteArray()));
splitter->restoreState(QByteArray::fromBase64(savedData[QStringLiteral("state")].toByteArray()));
return splitter;
}