Merge pull request #3289 from rjmatthews62/fix_249631_clean
Fix #249631: Add SaveAs to PluginCreator
This commit is contained in:
commit
21783cf84f
3 changed files with 33 additions and 5 deletions
|
@ -63,6 +63,7 @@ PluginCreator::PluginCreator(QWidget* parent)
|
|||
|
||||
actionSave->setIcon(*icons[int(Icons::fileSave_ICON)]);
|
||||
actionSave->setShortcut(QKeySequence(QKeySequence::Save));
|
||||
actionSaveAs->setIcon(*icons[int(Icons::fileSaveAs_ICON)]);
|
||||
fileTools->addAction(actionSave);
|
||||
|
||||
actionQuit->setShortcut(QKeySequence(QKeySequence::Close));
|
||||
|
@ -99,6 +100,7 @@ PluginCreator::PluginCreator(QWidget* parent)
|
|||
connect(actionOpen, SIGNAL(triggered()), SLOT(loadPlugin()));
|
||||
connect(actionReload, SIGNAL(triggered()), SLOT(load()));
|
||||
connect(actionSave, SIGNAL(triggered()), SLOT(savePlugin()));
|
||||
connect(actionSaveAs, SIGNAL(triggered()), SLOT(savePluginAs()));
|
||||
connect(actionNew, SIGNAL(triggered()), SLOT(newPlugin()));
|
||||
connect(actionQuit, SIGNAL(triggered()), SLOT(close()));
|
||||
connect(actionManual, SIGNAL(triggered()), SLOT(showManual()));
|
||||
|
@ -136,6 +138,7 @@ void PluginCreator::setState(PCState newState)
|
|||
case PCState::EMPTY:
|
||||
setTitle("");
|
||||
actionSave->setEnabled(false);
|
||||
actionSaveAs->setEnabled(false);
|
||||
run->setEnabled(false);
|
||||
stop->setEnabled(false);
|
||||
textEdit->setEnabled(false);
|
||||
|
@ -152,6 +155,7 @@ void PluginCreator::setState(PCState newState)
|
|||
break;
|
||||
case PCState::CLEAN:
|
||||
setTitle(path);
|
||||
actionSaveAs->setEnabled(true);
|
||||
run->setEnabled(true);
|
||||
textEdit->setEnabled(true);
|
||||
break;
|
||||
|
@ -167,6 +171,7 @@ void PluginCreator::setState(PCState newState)
|
|||
break;
|
||||
case PCState::DIRTY:
|
||||
actionSave->setEnabled(true);
|
||||
actionSaveAs->setEnabled(true);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -176,6 +181,7 @@ void PluginCreator::setState(PCState newState)
|
|||
case PCState::EMPTY:
|
||||
case PCState::CLEAN:
|
||||
actionSave->setEnabled(false);
|
||||
actionSave->setEnabled(true);
|
||||
case PCState::DIRTY:
|
||||
break;
|
||||
}
|
||||
|
@ -430,19 +436,20 @@ void PluginCreator::load()
|
|||
// savePlugin
|
||||
//---------------------------------------------------------
|
||||
|
||||
void PluginCreator::savePlugin()
|
||||
void PluginCreator::doSavePlugin(bool saveas)
|
||||
{
|
||||
if (created) {
|
||||
if (saveas) {
|
||||
path = mscore->getPluginFilename(false);
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
}
|
||||
QFile f(path);
|
||||
QFileInfo fi(f);
|
||||
msg("Saving to:"+path+"\n");
|
||||
if(fi.suffix() != "qml" ) {
|
||||
QMessageBox::critical(mscore, tr("Save Plugin"), tr("Cannot determine file type"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (f.open(QIODevice::WriteOnly)) {
|
||||
f.write(textEdit->toPlainText().toUtf8());
|
||||
|
@ -459,6 +466,16 @@ void PluginCreator::savePlugin()
|
|||
raise();
|
||||
}
|
||||
|
||||
void PluginCreator::savePlugin()
|
||||
{
|
||||
doSavePlugin(created);
|
||||
}
|
||||
|
||||
void PluginCreator::savePluginAs()
|
||||
{
|
||||
doSavePlugin(true);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// newPlugin
|
||||
//---------------------------------------------------------
|
||||
|
@ -480,7 +497,7 @@ void PluginCreator::newPlugin()
|
|||
created = true;
|
||||
QString s(
|
||||
"import QtQuick 2.0\n"
|
||||
"import MuseScore 1.0\n"
|
||||
"import MuseScore 3.0\n"
|
||||
"\n"
|
||||
"MuseScore {\n"
|
||||
" menuPath: \"Plugins.pluginName\"\n"
|
||||
|
|
|
@ -43,6 +43,7 @@ class PluginCreator : public QMainWindow, public Ui::PluginCreatorBase {
|
|||
void readSettings();
|
||||
void setTitle(const QString&);
|
||||
QString manualPath();
|
||||
void doSavePlugin(bool saveas);
|
||||
|
||||
private slots:
|
||||
void runClicked();
|
||||
|
@ -50,6 +51,7 @@ class PluginCreator : public QMainWindow, public Ui::PluginCreatorBase {
|
|||
void loadPlugin();
|
||||
void load();
|
||||
void savePlugin();
|
||||
void savePluginAs();
|
||||
void newPlugin();
|
||||
void textChanged();
|
||||
void closePlugin();
|
||||
|
|
|
@ -94,6 +94,7 @@
|
|||
<addaction name="actionOpen"/>
|
||||
<addaction name="actionSave"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionSaveAs"/>
|
||||
<addaction name="actionQuit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
|
@ -132,7 +133,10 @@
|
|||
</action>
|
||||
<action name="actionSave">
|
||||
<property name="text">
|
||||
<string>Save As...</string>
|
||||
<string>Save</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
<property name="iconVisibleInMenu">
|
||||
<bool>false</bool>
|
||||
|
@ -178,6 +182,11 @@
|
|||
<string>Reload current plugin source</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSaveAs">
|
||||
<property name="text">
|
||||
<string>Save As...</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
|
Loading…
Reference in a new issue