Use QStringLiteral in ToolWindowManager to convert at compile-time

This commit is contained in:
baldurk
2017-05-02 15:45:28 +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;
}
@@ -174,8 +174,8 @@ bool ToolWindowManagerArea::eventFilter(QObject *object, QEvent *event) {
QVariantMap ToolWindowManagerArea::saveState() {
QVariantMap result;
result["type"] = "area";
result["currentIndex"] = currentIndex();
result[QStringLiteral("type")] = QStringLiteral("area");
result[QStringLiteral("currentIndex")] = currentIndex();
QVariantList objects;
objects.reserve(count());
for(int i = 0; i < count(); i++) {
@@ -185,20 +185,20 @@ QVariantMap ToolWindowManagerArea::saveState() {
qWarning("cannot save state of tool window without object name");
} else {
QVariantMap objectData;
objectData["name"] = name;
objectData["data"] = w->property("persistData");
objectData[QStringLiteral("name")] = name;
objectData[QStringLiteral("data")] = w->property("persistData");
objects.push_back(objectData);
}
}
result["objects"] = objects;
result[QStringLiteral("objects")] = objects;
return result;
}
void ToolWindowManagerArea::restoreState(const QVariantMap &savedData) {
for(QVariant object : savedData["objects"].toList()) {
for(QVariant object : savedData[QStringLiteral("objects")].toList()) {
QVariantMap objectData = object.toMap();
if (objectData.isEmpty()) { continue; }
QString objectName = objectData["name"].toString();
QString objectName = objectData[QStringLiteral("name")].toString();
if (objectName.isEmpty()) { continue; }
QWidget *t = NULL;
for(QWidget* toolWindow : m_manager->m_toolWindows) {
@@ -209,13 +209,13 @@ void ToolWindowManagerArea::restoreState(const QVariantMap &savedData) {
}
if (t == NULL) t = m_manager->createToolWindow(objectName);
if (t) {
t->setProperty("persistData", objectData["data"]);
t->setProperty("persistData", objectData[QStringLiteral("data")]);
addToolWindow(t);
} else {
qWarning("tool window with name '%s' not found or created", objectName.toLocal8Bit().constData());
}
}
setCurrentIndex(savedData["currentIndex"].toInt());
setCurrentIndex(savedData[QStringLiteral("currentIndex")].toInt());
}
void ToolWindowManagerArea::check_mouse_move() {
@@ -36,7 +36,7 @@ ToolWindowManagerWrapper::ToolWindowManagerWrapper(ToolWindowManager *manager) :
, m_manager(manager)
{
setWindowFlags(windowFlags() | Qt::Tool);
setWindowTitle(" ");
setWindowTitle(QStringLiteral(" "));
QVBoxLayout* mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(0, 0, 0, 0);
@@ -65,14 +65,14 @@ QVariantMap ToolWindowManagerWrapper::saveState() {
return QVariantMap();
}
QVariantMap result;
result["geometry"] = saveGeometry().toBase64();
result[QStringLiteral("geometry")] = saveGeometry().toBase64();
QSplitter* splitter = findChild<QSplitter*>(QString(), Qt::FindDirectChildrenOnly);
if (splitter) {
result["splitter"] = m_manager->saveSplitterState(splitter);
result[QStringLiteral("splitter")] = m_manager->saveSplitterState(splitter);
} else {
ToolWindowManagerArea* area = findChild<ToolWindowManagerArea*>();
if (area) {
result["area"] = area->saveState();
result[QStringLiteral("area")] = area->saveState();
} else if (layout()->count() > 0) {
qWarning("unknown child");
return QVariantMap();
@@ -82,16 +82,16 @@ QVariantMap ToolWindowManagerWrapper::saveState() {
}
void ToolWindowManagerWrapper::restoreState(const QVariantMap &savedData) {
restoreGeometry(QByteArray::fromBase64(savedData["geometry"].toByteArray()));
restoreGeometry(QByteArray::fromBase64(savedData[QStringLiteral("geometry")].toByteArray()));
if (layout()->count() > 0) {
qWarning("wrapper is not empty");
return;
}
if (savedData.contains("splitter")) {
layout()->addWidget(m_manager->restoreSplitterState(savedData["splitter"].toMap()));
} else if (savedData.contains("area")) {
if (savedData.contains(QStringLiteral("splitter"))) {
layout()->addWidget(m_manager->restoreSplitterState(savedData[QStringLiteral("splitter")].toMap()));
} else if (savedData.contains(QStringLiteral("area"))) {
ToolWindowManagerArea* area = m_manager->createArea();
area->restoreState(savedData["area"].toMap());
area->restoreState(savedData[QStringLiteral("area")].toMap());
layout()->addWidget(area);
}
}