void MuseScore::changeWorkspace(QAction* a) { for (Workspace* p :Workspace::workspaces()) { if (qApp->translate("Ms::Workspace", p->name().toUtf8()) == a->text()) { changeWorkspace(p); preferences.workspace = Workspace::currentWorkspace->name(); preferences.dirty = true; PaletteBox* paletteBox = mscore->getPaletteBox(); paletteBox->updateWorkspaces(); return; } } qDebug(" workspace \"%s\" not found", qPrintable(a->text())); }
void MuseScore::changeWorkspace(QAction* a) { for (Workspace* p :Workspace::workspaces()) { if (qApp->translate("Ms::Workspace", p->name().toUtf8()) == a->text()) { changeWorkspace(p); preferences.setPreference(PREF_APP_WORKSPACE, Workspace::currentWorkspace->name()); PaletteBox* pb = mscore->getPaletteBox(); pb->updateWorkspaces(); updateIcons(); return; } } qDebug(" workspace \"%s\" not found", qPrintable(a->text())); }
void Workspace::read(XmlReader& e) { bool niToolbar = false; while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "name") e.readElementText(); else if (tag == "PaletteBox") { PaletteBox* paletteBox = mscore->getPaletteBox(); paletteBox->clear(); paletteBox->read(e); QList<Palette*> pl = paletteBox->palettes(); foreach (Palette* p, pl) { p->setSystemPalette(_readOnly); connect(paletteBox, SIGNAL(changed()), SLOT(setDirty())); } }
void MuseScore::deleteWorkspace() { if (!workspaces) return; QAction* a = workspaces->checkedAction(); if (!a) return; preferences.dirty = true; Workspace* workspace = 0; for (Workspace* p : Workspace::workspaces()) { if (p->name() == a->text()) { // no need for qApp->translate since "Basic" and "Advanced" are not deletable workspace = p; break; } } if (!workspace) return; QMessageBox::StandardButton reply; reply = QMessageBox::question(0, QWidget::tr("Are you sure?"), QWidget::tr("Do you really want to delete the '%1' workspace?").arg(workspace->name()), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes ); if (reply != QMessageBox::Yes) return; Workspace::workspaces().removeOne(workspace); QFile f(workspace->path()); f.remove(); delete workspace; PaletteBox* paletteBox = mscore->getPaletteBox(); paletteBox->clear(); Workspace::currentWorkspace = Workspace::workspaces().first(); preferences.workspace = Workspace::currentWorkspace->name(); changeWorkspace(Workspace::currentWorkspace); paletteBox = mscore->getPaletteBox(); paletteBox->updateWorkspaces(); }
void MuseScore::deleteWorkspace() { if (!workspaces) return; QAction* a = workspaces->checkedAction(); if (!a) return; Workspace* workspace = 0; for (Workspace* p : Workspace::workspaces()) { if (p->name() == a->text()) { workspace = p; break; } } if (!workspace) return; QMessageBox::StandardButton reply; reply = QMessageBox::question(0, QWidget::tr("Are you sure?"), QWidget::tr("Do you really want to delete the '%1' workspace?").arg(workspace->name()), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes ); if (reply != QMessageBox::Yes) return; Workspace::workspaces().removeOne(workspace); QFile f(workspace->path()); f.remove(); delete workspace; PaletteBox* pb = mscore->getPaletteBox(); pb->clear(); Workspace::currentWorkspace = Workspace::workspaces().first(); preferences.setPreference(PREF_APP_WORKSPACE, Workspace::currentWorkspace->name()); changeWorkspace(Workspace::currentWorkspace); pb = mscore->getPaletteBox(); pb->updateWorkspaces(); updateIcons(); }
void MuseScore::createNewWorkspace() { QString s = QInputDialog::getText(this, tr("MuseScore: Read Workspace Name"), tr("Workspace name:")); if (s.isEmpty()) return; s = s.replace( QRegExp( "[" + QRegExp::escape( "\\/:*?\"<>|" ) + "]" ), "_" ); //FAT/NTFS special chars for (;;) { bool notFound = true; for (Workspace* p : Workspace::workspaces()) { if ((qApp->translate("Ms::Workspace", p->name().toUtf8()).toLower() == s.toLower()) || (s.toLower() == QString("basic")) || (s.toLower() == QString("advanced"))) { notFound = false; break; } } if (!notFound) { s = QInputDialog::getText(this, tr("MuseScore: Read Workspace Name"), tr("'%1' does already exist,\nplease choose a different name:").arg(s) ); if (s.isEmpty()) return; s = s.replace( QRegExp( "[" + QRegExp::escape( "\\/:*?\"<>|" ) + "]" ), "_" ); //FAT/NTFS special chars } else break; } if (Workspace::currentWorkspace->dirty()) Workspace::currentWorkspace->save(); Workspace::currentWorkspace = Workspace::createNewWorkspace(s); preferences.workspace = Workspace::currentWorkspace->name(); preferences.dirty = true; PaletteBox* paletteBox = mscore->getPaletteBox(); paletteBox->updateWorkspaces(); }
void Workspace::write() { if (_path.isEmpty()) { QString ext(".workspace"); QDir dir; dir.mkpath(dataPath); _path = dataPath + "/workspaces"; dir.mkpath(_path); _path += "/" + _name + ext; } MQZipWriter f(_path); f.setCreationPermissions( QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadUser | QFile::WriteUser | QFile::ExeUser | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup | QFile::ReadOther | QFile::WriteOther | QFile::ExeOther); if (f.status() != MQZipWriter::NoError) { writeFailed(_path); return; } QBuffer cbuf; cbuf.open(QIODevice::ReadWrite); Xml xml(&cbuf); xml.header(); xml.stag("container"); xml.stag("rootfiles"); xml.stag(QString("rootfile full-path=\"%1\"").arg(Xml::xmlString("workspace.xml"))); xml.etag(); for (ImageStoreItem* ip : imageStore) { if (!ip->isUsed(gscore)) continue; QString dstPath = QString("Pictures/") + ip->hashName(); xml.tag("file", dstPath); } xml.etag(); xml.etag(); cbuf.seek(0); f.addFile("META-INF/container.xml", cbuf.data()); // save images for (ImageStoreItem* ip : imageStore) { if (!ip->isUsed(gscore)) continue; QString dstPath = QString("Pictures/") + ip->hashName(); f.addFile(dstPath, ip->buffer()); } { QBuffer cbuf; cbuf.open(QIODevice::ReadWrite); Xml xml(&cbuf); xml.clipboardmode = true; xml.header(); xml.stag("museScore version=\"" MSC_VERSION "\""); xml.stag("Workspace"); // xml.tag("name", _name); PaletteBox* pb = mscore->getPaletteBox(); pb->write(xml); // write toolbar settings xml.stag("Toolbar name=\"noteInput\""); for (auto i : *mscore->noteInputMenuEntries()) xml.tag("action", i); xml.etag(); xml.etag(); xml.etag(); f.addFile("workspace.xml", cbuf.data()); cbuf.close(); } if (f.status() != MQZipWriter::NoError) writeFailed(_path); }
void Workspace::write() { if (_path.isEmpty()) { QString ext(".workspace"); QDir dir; dir.mkpath(dataPath); _path = dataPath + "/workspaces"; dir.mkpath(_path); _path += "/" + _name + ext; } MQZipWriter f(_path); f.setCreationPermissions( QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadUser | QFile::WriteUser | QFile::ExeUser | QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup | QFile::ReadOther | QFile::WriteOther | QFile::ExeOther); if (f.status() != MQZipWriter::NoError) { writeFailed(_path); return; } QBuffer cbuf; cbuf.open(QIODevice::ReadWrite); XmlWriter xml(gscore, &cbuf); xml.header(); xml.stag("container"); xml.stag("rootfiles"); xml.stag(QString("rootfile full-path=\"%1\"").arg(XmlWriter::xmlString("workspace.xml"))); xml.etag(); for (ImageStoreItem* ip : imageStore) { if (!ip->isUsed(gscore)) continue; QString dstPath = QString("Pictures/") + ip->hashName(); xml.tag("file", dstPath); } xml.etag(); xml.etag(); cbuf.seek(0); f.addFile("META-INF/container.xml", cbuf.data()); // save images for (ImageStoreItem* ip : imageStore) { if (!ip->isUsed(gscore)) continue; QString dstPath = QString("Pictures/") + ip->hashName(); f.addFile(dstPath, ip->buffer()); } { xml.setClipboardmode(true); xml.header(); xml.stag("museScore version=\"" MSC_VERSION "\""); xml.stag("Workspace"); // xml.tag("name", _name); PaletteBox* pb = mscore->getPaletteBox(); pb->write(xml); // write toolbar settings if (saveToolbars) { xml.stag("Toolbar name=\"noteInput\""); for (auto i : *mscore->noteInputMenuEntries()) xml.tag("action", i); xml.etag(); xml.stag("Toolbar name=\"fileOperation\""); for (auto i : *mscore->fileOperationEntries()) xml.tag("action", i); xml.etag(); xml.stag("Toolbar name=\"playbackControl\""); for (auto i : *mscore->playbackControlEntries()) xml.tag("action", i); xml.etag(); } else { writeGlobalToolBar(); } if (preferences.getUseLocalPreferences()) { xml.stag("Preferences"); for (QString pref : preferences.getLocalPreferences().keys()) { QVariant prefValue = preferences.getLocalPreferences().value(pref); if (prefValue.isValid()) xml.tag("Preference name=\"" + pref + "\"", preferences.getLocalPreferences().value(pref)); } xml.etag(); } if (saveMenuBar) writeMenuBar(xml); if (saveComponents) { QByteArray state_64 = mscore->saveState().toBase64(); QString state(state_64); xml.tag("State", state); } else { writeGlobalGUIState(); } xml.etag(); xml.etag(); f.addFile("workspace.xml", cbuf.data()); cbuf.close(); } if (f.status() != MQZipWriter::NoError) writeFailed(_path); }