diff --git a/virtualdesktops.cpp b/virtualdesktops.cpp --- a/virtualdesktops.cpp +++ b/virtualdesktops.cpp @@ -38,6 +38,11 @@ extern int screen_number; static bool s_loadingDesktopSettings = false; +static QByteArray generateDesktopId() +{ + return QUuid::createUuid().toString(QUuid::WithoutBraces).toUtf8(); +} + VirtualDesktop::VirtualDesktop(QObject *parent) : QObject(parent) { @@ -450,8 +455,7 @@ auto *vd = new VirtualDesktop(this); vd->setX11DesktopNumber(position + 1); - //TODO: depend on Qt 5.11, use toString(QUuid::WithoutBraces) - vd->setId(QUuid::createUuid().toString().toUtf8()); + vd->setId(generateDesktopId()); vd->setName(name); connect(vd, &VirtualDesktop::nameChanged, this, @@ -585,7 +589,7 @@ vd->setX11DesktopNumber(x11Number); vd->setName(defaultName(x11Number)); if (!s_loadingDesktopSettings) { - vd->setId(QUuid::createUuid().toString().toUtf8()); + vd->setId(generateDesktopId()); } m_desktops << vd; newDesktops << vd; @@ -702,14 +706,11 @@ } m_desktops[i-1]->setName(s.toUtf8().data()); - QString sId = group.readEntry(QStringLiteral("Id_%1").arg(i), QString()); + const QString sId = group.readEntry(QStringLiteral("Id_%1").arg(i), QString()); //load gets called 2 times, see workspace.cpp line 416 and BUG 385260 if (m_desktops[i-1]->id().isEmpty()) { - if (sId.isEmpty()) { - sId = QUuid::createUuid().toString(); - } - m_desktops[i-1]->setId(sId.toUtf8().data()); + m_desktops[i-1]->setId(sId.isEmpty() ? generateDesktopId() : sId.toUtf8()); } else { Q_ASSERT(sId.isEmpty() || m_desktops[i-1]->id() == sId.toUtf8().data()); }