forked from qt-creator/qt-creator
QmlProjectPlugin: Don't leak action on shutdown
Detected by memory analyzer. Change-Id: I5c1ba80e9a1e1ca620b496ebe6cd9bb600e8b800 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -195,7 +195,7 @@ QList<GenerateResource::ResourceFile> getFilesFromQrc(QFile *file, bool inProjec
|
||||
return fileList;
|
||||
}
|
||||
|
||||
void GenerateResource::generateMenuEntry()
|
||||
void GenerateResource::generateMenuEntry(QObject *parent)
|
||||
{
|
||||
Core::ActionContainer *menu =
|
||||
Core::ActionManager::actionContainer(Core::Constants::M_FILE);
|
||||
@@ -203,7 +203,7 @@ void GenerateResource::generateMenuEntry()
|
||||
const Core::Context projectContext(QmlProjectManager::Constants::QML_PROJECT_ID);
|
||||
// ToDo: move this to QtCreator and add tr to the string then
|
||||
auto action = new QAction(QCoreApplication::translate("QmlDesigner::GenerateResource",
|
||||
"Generate QRC Resource File"));
|
||||
"Generate QRC Resource File"), parent);
|
||||
action->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr);
|
||||
// todo make it more intelligent when it gets enabled
|
||||
QObject::connect(ProjectExplorer::SessionManager::instance(),
|
||||
@@ -352,7 +352,7 @@ void GenerateResource::generateMenuEntry()
|
||||
|
||||
// ToDo: move this to QtCreator and add tr to the string then
|
||||
auto rccAction = new QAction(QCoreApplication::translate("QmlDesigner::GenerateResource",
|
||||
"Generate Deployable Package"));
|
||||
"Generate Deployable Package"), parent);
|
||||
rccAction->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr);
|
||||
QObject::connect(ProjectExplorer::SessionManager::instance(),
|
||||
&ProjectExplorer::SessionManager::startupProjectChanged, [rccAction]() {
|
||||
|
@@ -33,7 +33,7 @@ struct ResourceFile
|
||||
QString fileName;
|
||||
bool inProject;
|
||||
};
|
||||
void generateMenuEntry();
|
||||
void generateMenuEntry(QObject *parent);
|
||||
QStringList getFileList(const QList<ResourceFile> &);
|
||||
QTableWidget* createFilesTable(const QList<ResourceFile> &);
|
||||
}
|
||||
|
@@ -237,7 +237,7 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e
|
||||
return false;
|
||||
d = new QmlDesignerPluginPrivate;
|
||||
if (QmlProjectManager::QmlProject::isQtDesignStudio())
|
||||
GenerateResource::generateMenuEntry();
|
||||
GenerateResource::generateMenuEntry(this);
|
||||
|
||||
const QString fontPath
|
||||
= Core::ICore::resourcePath(
|
||||
|
@@ -56,11 +56,11 @@ const QString ERROR_TEXT = QCoreApplication::translate("QmlDesigner::CmakeProjec
|
||||
const QString SUCCESS_TEXT = QCoreApplication::translate("QmlDesigner::CmakeProjectConverter",
|
||||
"Creating project succeeded.");
|
||||
|
||||
void CmakeProjectConverter::generateMenuEntry()
|
||||
void CmakeProjectConverter::generateMenuEntry(QObject *parent)
|
||||
{
|
||||
Core::ActionContainer *menu =
|
||||
Core::ActionManager::actionContainer(Core::Constants::M_FILE);
|
||||
auto action = new QAction(MENU_ITEM_CONVERT);
|
||||
auto action = new QAction(MENU_ITEM_CONVERT, parent);
|
||||
QObject::connect(action, &QAction::triggered, CmakeProjectConverter::onConvertProject);
|
||||
Core::Command *cmd = Core::ActionManager::registerAction(action, "QmlProject.ConvertToCmakeProject");
|
||||
menu->addAction(cmd, Core::Constants::G_FILE_EXPORT);
|
||||
|
@@ -49,7 +49,7 @@ class CmakeProjectConverter {
|
||||
public:
|
||||
bool convertProject(const QmlProjectManager::QmlProject *project,
|
||||
const Utils::FilePath &targetDir);
|
||||
static void generateMenuEntry();
|
||||
static void generateMenuEntry(QObject *parent);
|
||||
static void onConvertProject();
|
||||
static bool isProjectConvertable(const ProjectExplorer::Project *project);
|
||||
static bool isProjectCurrentFormat(const ProjectExplorer::Project *project);
|
||||
|
@@ -81,11 +81,11 @@ enum ProjectDirectoryError {
|
||||
const QString MENU_ITEM_GENERATE = QCoreApplication::translate("QmlDesigner::GenerateCmake",
|
||||
"Generate CMake Build Files");
|
||||
|
||||
void generateMenuEntry()
|
||||
void generateMenuEntry(QObject *parent)
|
||||
{
|
||||
Core::ActionContainer *menu =
|
||||
Core::ActionManager::actionContainer(Core::Constants::M_FILE);
|
||||
auto action = new QAction(MENU_ITEM_GENERATE);
|
||||
auto action = new QAction(MENU_ITEM_GENERATE, parent);
|
||||
QObject::connect(action, &QAction::triggered, GenerateCmake::onGenerateCmakeLists);
|
||||
Core::Command *cmd = Core::ActionManager::registerAction(action, "QmlProject.CreateCMakeLists");
|
||||
menu->addAction(cmd, Core::Constants::G_FILE_EXPORT);
|
||||
|
@@ -39,7 +39,7 @@ struct GeneratableFile {
|
||||
|
||||
bool operator==(const GeneratableFile &left, const GeneratableFile &right);
|
||||
|
||||
void generateMenuEntry();
|
||||
void generateMenuEntry(QObject *parent);
|
||||
void onGenerateCmakeLists();
|
||||
bool isErrorFatal(int error);
|
||||
int isProjectCorrectlyFormed(const Utils::FilePath &rootDir);
|
||||
|
@@ -378,8 +378,8 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage)
|
||||
});
|
||||
}
|
||||
|
||||
GenerateCmake::generateMenuEntry();
|
||||
GenerateCmake::CmakeProjectConverter::generateMenuEntry();
|
||||
GenerateCmake::generateMenuEntry(this);
|
||||
GenerateCmake::CmakeProjectConverter::generateMenuEntry(this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user