Commit 978cf4bd authored by Friedemann Kleint's avatar Friedemann Kleint

Rename IRunConfigurationRunner -> IRunControlFactory...

and ApplicationRunConfiguration to LocalApplicationRunConfiguration,
preparing remote debugging. Change the interface canRun() to be const,
run() to create() (since it does not run anything), use references
to the QSharedPointer<Foo>. Introduce d-Pointer and remove
unneeded headers from ProjectExplorerPlugin and add missing includes
everywhere.
parent e7cef7ef
......@@ -37,6 +37,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/uniqueidmanager.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/session.h>
#include <texteditor/basetexteditor.h>
#include <utils/qtcassert.h>
......
......@@ -158,8 +158,7 @@ QString CMakeManager::qtVersionForQMake(const QString &qmakePath)
CMakeSettingsPage::CMakeSettingsPage()
: m_process(0),
m_pathchooser(0)
: m_pathchooser(0), m_process(0)
{
Core::ICore *core = Core::ICore::instance();
QSettings * settings = core->settings();
......
......@@ -47,7 +47,7 @@ using namespace CMakeProjectManager;
using namespace CMakeProjectManager::Internal;
CMakeRunConfiguration::CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory, const QString &title)
: ProjectExplorer::ApplicationRunConfiguration(pro)
: ProjectExplorer::LocalApplicationRunConfiguration(pro)
, m_runMode(Gui)
, m_target(target)
, m_workingDirectory(workingDirectory)
......@@ -77,7 +77,7 @@ QString CMakeRunConfiguration::executable() const
return m_target;
}
ProjectExplorer::ApplicationRunConfiguration::RunMode CMakeRunConfiguration::runMode() const
ProjectExplorer::LocalApplicationRunConfiguration::RunMode CMakeRunConfiguration::runMode() const
{
return m_runMode;
}
......@@ -128,7 +128,7 @@ void CMakeRunConfiguration::setUserWorkingDirectory(const QString &wd)
void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writer) const
{
ProjectExplorer::ApplicationRunConfiguration::save(writer);
ProjectExplorer::LocalApplicationRunConfiguration::save(writer);
writer.saveValue("CMakeRunConfiguration.Target", m_target);
writer.saveValue("CMakeRunConfiguration.WorkingDirectory", m_workingDirectory);
writer.saveValue("CMakeRunConfiguration.UserWorkingDirectory", m_userWorkingDirectory);
......@@ -142,7 +142,7 @@ void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writ
void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReader &reader)
{
ProjectExplorer::ApplicationRunConfiguration::restore(reader);
ProjectExplorer::LocalApplicationRunConfiguration::restore(reader);
m_target = reader.restoreValue("CMakeRunConfiguration.Target").toString();
m_workingDirectory = reader.restoreValue("CMakeRunConfiguration.WorkingDirectory").toString();
m_userWorkingDirectory = reader.restoreValue("CMakeRunConfiguration.UserWorkingDirectory").toString();
......
......@@ -45,7 +45,7 @@ namespace Internal {
class CMakeProject;
class CMakeRunConfiguration : public ProjectExplorer::ApplicationRunConfiguration
class CMakeRunConfiguration : public ProjectExplorer::LocalApplicationRunConfiguration
{
friend class CMakeRunConfigurationWidget;
Q_OBJECT
......
......@@ -41,6 +41,8 @@
#include <vcsbase/vcsbaseoutputwindow.h>
#include <utils/synchronousprocess.h>
#include <utils/parameteraction.h>
#include <projectexplorer/session.h>
#include <projectexplorer/project.h>
#include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h>
......
......@@ -773,8 +773,8 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
//addAutoReleasedObject(m_debugMode);
// register factory of DebuggerRunControl
m_debuggerRunner = new DebuggerRunner(m_manager);
addAutoReleasedObject(m_debuggerRunner);
m_debuggerRunControlFactory = new DebuggerRunControlFactory(m_manager);
addAutoReleasedObject(m_debuggerRunControlFactory);
QList<int> context;
context.append(uidm->uniqueIdentifier(Core::Constants::C_EDITORMANAGER));
......@@ -1231,10 +1231,10 @@ void DebuggerPlugin::startExternalApplication()
RunConfigurationPtr rc = activeRunConfiguration();
if (rc.isNull())
rc = DebuggerRunner::createDefaultRunConfiguration(sp->executable);
rc = DebuggerRunControlFactory::createDefaultRunConfiguration(sp->executable);
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
if (RunControl *runControl = m_debuggerRunControlFactory
->create(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
runControl->start();
}
......@@ -1257,9 +1257,9 @@ void DebuggerPlugin::attachExternalApplication(qint64 pid, const QString &crashP
sp->startMode = crashParameter.isEmpty() ? AttachExternal : AttachCrashedExternal;
RunConfigurationPtr rc = activeRunConfiguration();
if (rc.isNull())
rc = DebuggerRunner::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
rc = DebuggerRunControlFactory::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunControlFactory
->create(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
runControl->start();
}
......@@ -1282,9 +1282,9 @@ void DebuggerPlugin::attachCore()
sp->startMode = AttachCore;
RunConfigurationPtr rc = activeRunConfiguration();
if (rc.isNull())
rc = DebuggerRunner::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
rc = DebuggerRunControlFactory::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunControlFactory
->create(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
runControl->start();
}
......@@ -1318,9 +1318,9 @@ void DebuggerPlugin::startRemoteApplication()
RunConfigurationPtr rc = activeRunConfiguration();
if (rc.isNull())
rc = DebuggerRunner::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
rc = DebuggerRunControlFactory::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunControlFactory
->create(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
runControl->start();
}
......@@ -1354,9 +1354,9 @@ void DebuggerPlugin::attachRemoteTcf()
RunConfigurationPtr rc = activeRunConfiguration();
if (rc.isNull())
rc = DebuggerRunner::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunner
->run(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
rc = DebuggerRunControlFactory::createDefaultRunConfiguration();
if (RunControl *runControl = m_debuggerRunControlFactory
->create(rc, ProjectExplorer::Constants::DEBUGMODE, sp))
runControl->start();
}
......
......@@ -59,7 +59,7 @@ namespace Internal {
class BreakpointData;
class DebuggerManager;
class DebuggerRunner;
class DebuggerRunControlFactory;
class DebugMode;
class DisassemblerViewAgent;
struct StackFrame;
......@@ -126,7 +126,7 @@ private:
DebuggerManager *m_manager;
DebugMode *m_debugMode;
DebuggerRunner *m_debuggerRunner;
DebuggerRunControlFactory *m_debuggerRunControlFactory;
QString m_previousMode;
TextEditor::BaseTextMark *m_locationMark;
......
......@@ -48,61 +48,61 @@ namespace Internal {
using ProjectExplorer::RunConfiguration;
using ProjectExplorer::RunControl;
using ProjectExplorer::ApplicationRunConfiguration;
using ProjectExplorer::LocalApplicationRunConfiguration;
DefaultApplicationRunConfiguration::DefaultApplicationRunConfiguration(const QString &executable) :
ProjectExplorer::ApplicationRunConfiguration(0),
DefaultLocalApplicationRunConfiguration::DefaultLocalApplicationRunConfiguration(const QString &executable) :
ProjectExplorer::LocalApplicationRunConfiguration(0),
m_executable(executable)
{
}
////////////////////////////////////////////////////////////////////////
//
// DebuggerRunner
// DebuggerRunControlFactory
//
////////////////////////////////////////////////////////////////////////
// A factory to create DebuggerRunControls
DebuggerRunner::DebuggerRunner(DebuggerManager *manager)
DebuggerRunControlFactory::DebuggerRunControlFactory(DebuggerManager *manager)
: m_manager(manager)
{}
bool DebuggerRunner::canRun(RunConfigurationPtr runConfiguration, const QString &mode)
bool DebuggerRunControlFactory::canRun(const RunConfigurationPtr &runConfiguration, const QString &mode) const
{
return mode == ProjectExplorer::Constants::DEBUGMODE
&& !runConfiguration.objectCast<ApplicationRunConfiguration>().isNull();
&& !runConfiguration.objectCast<LocalApplicationRunConfiguration>().isNull();
}
QString DebuggerRunner::displayName() const
QString DebuggerRunControlFactory::displayName() const
{
return tr("Debug");
}
RunConfigurationPtr DebuggerRunner::createDefaultRunConfiguration(const QString &executable)
RunConfigurationPtr DebuggerRunControlFactory::createDefaultRunConfiguration(const QString &executable)
{
return RunConfigurationPtr(new DefaultApplicationRunConfiguration(executable));
return RunConfigurationPtr(new DefaultLocalApplicationRunConfiguration(executable));
}
RunControl *DebuggerRunner::run(RunConfigurationPtr runConfiguration,
const QString &mode,
const DebuggerStartParametersPtr &sp)
RunControl *DebuggerRunControlFactory::create(const RunConfigurationPtr &runConfiguration,
const QString &mode,
const DebuggerStartParametersPtr &sp)
{
QTC_ASSERT(mode == ProjectExplorer::Constants::DEBUGMODE, return 0);
ApplicationRunConfigurationPtr rc =
runConfiguration.objectCast<ApplicationRunConfiguration>();
LocalApplicationRunConfigurationPtr rc =
runConfiguration.objectCast<LocalApplicationRunConfiguration>();
QTC_ASSERT(!rc.isNull(), return 0);
return new DebuggerRunControl(m_manager, sp, rc);
}
RunControl *DebuggerRunner::run(RunConfigurationPtr runConfiguration,
const QString &mode)
RunControl *DebuggerRunControlFactory::create(const RunConfigurationPtr &runConfiguration,
const QString &mode)
{
const DebuggerStartParametersPtr sp(new DebuggerStartParameters);
sp->startMode = StartInternal;
return run(runConfiguration, mode, sp);
return create(runConfiguration, mode, sp);
}
QWidget *DebuggerRunner::configurationWidget(RunConfigurationPtr runConfiguration)
QWidget *DebuggerRunControlFactory::configurationWidget(const RunConfigurationPtr &runConfiguration)
{
// NBS TODO: Add GDB-specific configuration widget
Q_UNUSED(runConfiguration)
......@@ -120,7 +120,7 @@ QWidget *DebuggerRunner::configurationWidget(RunConfigurationPtr runConfiguratio
DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager,
const DebuggerStartParametersPtr &startParameters,
QSharedPointer<ApplicationRunConfiguration> runConfiguration)
QSharedPointer<LocalApplicationRunConfiguration> runConfiguration)
: RunControl(runConfiguration),
m_startParameters(startParameters),
m_manager(manager),
......@@ -164,7 +164,7 @@ DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager,
project->buildDirectory(project->activeBuildConfiguration());
}
m_startParameters->useTerminal =
runConfiguration->runMode() == ApplicationRunConfiguration::Console;
runConfiguration->runMode() == LocalApplicationRunConfiguration::Console;
m_startParameters->dumperLibrary =
runConfiguration->dumperLibrary();
m_startParameters->dumperLibraryLocations =
......
......@@ -36,7 +36,7 @@
#include <projectexplorer/applicationrunconfiguration.h>
namespace ProjectExplorer {
class ApplicationRunConfiguration;
class LocalApplicationRunConfiguration;
}
namespace Debugger {
......@@ -48,28 +48,28 @@ class StartData;
typedef QSharedPointer<ProjectExplorer::RunConfiguration>
RunConfigurationPtr;
typedef QSharedPointer<ProjectExplorer::ApplicationRunConfiguration>
ApplicationRunConfigurationPtr;
typedef QSharedPointer<ProjectExplorer::LocalApplicationRunConfiguration>
LocalApplicationRunConfigurationPtr;
class DebuggerRunner
: public ProjectExplorer::IRunConfigurationRunner
class DebuggerRunControlFactory
: public ProjectExplorer::IRunControlFactory
{
Q_OBJECT
public:
explicit DebuggerRunner(DebuggerManager *manager);
explicit DebuggerRunControlFactory(DebuggerManager *manager);
// ProjectExplorer::IRunConfigurationRunner
bool canRun(RunConfigurationPtr runConfiguration, const QString &mode);
virtual ProjectExplorer::RunControl *run(RunConfigurationPtr runConfiguration,
const QString &mode);
// ProjectExplorer::IRunControlFactory
bool canRun(const RunConfigurationPtr &runConfiguration, const QString &mode) const;
virtual ProjectExplorer::RunControl *create(const RunConfigurationPtr &runConfiguration,
const QString &mode);
virtual QString displayName() const;
virtual QWidget *configurationWidget(RunConfigurationPtr runConfiguration);
virtual QWidget *configurationWidget(const RunConfigurationPtr &runConfiguration);
virtual ProjectExplorer::RunControl *run(RunConfigurationPtr runConfiguration,
const QString &mode,
const DebuggerStartParametersPtr &sp);
virtual ProjectExplorer::RunControl *create(const RunConfigurationPtr &runConfiguration,
const QString &mode,
const DebuggerStartParametersPtr &sp);
static RunConfigurationPtr createDefaultRunConfiguration(const QString &executable = QString());
......@@ -87,7 +87,7 @@ class DebuggerRunControl
public:
DebuggerRunControl(DebuggerManager *manager,
const DebuggerStartParametersPtr &startParamters,
ApplicationRunConfigurationPtr runConfiguration);
LocalApplicationRunConfigurationPtr runConfiguration);
// ProjectExplorer::RunControl
virtual void start();
......@@ -111,12 +111,12 @@ private:
// A default run configuration for external executables or attaching to
// running processes by id.
class DefaultApplicationRunConfiguration
: public ProjectExplorer::ApplicationRunConfiguration
class DefaultLocalApplicationRunConfiguration
: public ProjectExplorer::LocalApplicationRunConfiguration
{
Q_OBJECT
public:
explicit DefaultApplicationRunConfiguration(const QString &executable = QString());
explicit DefaultLocalApplicationRunConfiguration(const QString &executable = QString());
virtual QString executable() const { return m_executable; }
virtual RunMode runMode() const { return Gui; }
......
......@@ -37,6 +37,8 @@
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectnodes.h>
#include <projectexplorer/nodesvisitor.h>
#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <utils/qtcassert.h>
......
......@@ -48,9 +48,13 @@
#include <vcsbase/vcsbaseeditor.h>
#include <vcsbase/vcsbaseoutputwindow.h>
#include <projectexplorer/environment.h>
#include <QtCore/QRegExp>
#include <QtCore/QTemporaryFile>
#include <QtCore/QTime>
#include <QtCore/QFileInfo>
#include <QtCore/QDir>
#include <QtGui/QMainWindow> // for msg box parent
#include <QtGui/QMessageBox>
......
......@@ -56,6 +56,9 @@
#include <vcsbase/basevcssubmiteditorfactory.h>
#include <vcsbase/vcsbaseoutputwindow.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/project.h>
#include <QtCore/QDebug>
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
......@@ -138,7 +141,6 @@ GitPlugin::GitPlugin() :
m_stashPopAction(0),
m_stashListAction(0),
m_branchListAction(0),
m_projectExplorer(0),
m_gitClient(0),
m_changeSelectionDialog(0),
m_submitActionTriggered(false)
......@@ -418,7 +420,6 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
void GitPlugin::extensionsInitialized()
{
m_projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance();
}
void GitPlugin::submitEditorDiff(const QStringList &unstaged, const QStringList &staged)
......@@ -452,9 +453,10 @@ QFileInfo GitPlugin::currentFile() const
QString GitPlugin::getWorkingDirectory()
{
QString workingDirectory;
if (m_projectExplorer && m_projectExplorer->currentNode()) {
workingDirectory = QFileInfo(m_projectExplorer->currentNode()->path()).absolutePath();
}
if (const ProjectExplorer::ProjectExplorerPlugin *p = ProjectExplorer::ProjectExplorerPlugin::instance())
if (p && p->currentNode())
workingDirectory = QFileInfo(p->currentNode()->path()).absolutePath();
if (Git::Constants::debug > 1)
qDebug() << Q_FUNC_INFO << "Project" << workingDirectory;
......@@ -795,11 +797,10 @@ void GitPlugin::updateActions()
// We only know the file is in some repository, we do not know
// anything about any project so far.
using namespace ProjectExplorer;
QString project;
if (m_projectExplorer) {
if (const Node *node = m_projectExplorer->currentNode())
if (const Node *projectNode = node->projectNode())
if (const ProjectExplorer::ProjectExplorerPlugin *p = ProjectExplorer::ProjectExplorerPlugin::instance()) {
if (const ProjectExplorer::Node *node = p->currentNode())
if (const ProjectExplorer::Node *projectNode = node->projectNode())
project = QFileInfo(projectNode->path()).completeBaseName();
}
......
......@@ -35,7 +35,6 @@
#include <coreplugin/editormanager/ieditorfactory.h>
#include <coreplugin/icorelistener.h>
#include <extensionsystem/iplugin.h>
#include <projectexplorer/projectexplorer.h>
#include <QtCore/QObject>
#include <QtCore/QProcess>
......@@ -44,6 +43,7 @@
QT_BEGIN_NAMESPACE
class QFile;
class QAction;
class QFileInfo;
QT_END_NAMESPACE
namespace Core {
......@@ -87,8 +87,8 @@ public:
static GitPlugin *instance();
bool initialize(const QStringList &arguments, QString *error_message);
void extensionsInitialized();
virtual bool initialize(const QStringList &arguments, QString *error_message);
virtual void extensionsInitialized();
QString getWorkingDirectory();
......@@ -160,7 +160,6 @@ private:
QAction *m_stashListAction;
QAction *m_branchListAction;
ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
GitClient *m_gitClient;
ChangeSelectionDialog *m_changeSelectionDialog;
QString m_submitRepository;
......
......@@ -34,6 +34,7 @@
#include <vcsbase/vcsbaseconstants.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QFileInfo>
#include <QtCore/QDebug>
#include <QtGui/QMessageBox>
......
......@@ -52,6 +52,8 @@
#include <vcsbase/basevcssubmiteditorfactory.h>
#include <vcsbase/vcsbaseeditor.h>
#include <vcsbase/vcsbaseoutputwindow.h>
#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <QtCore/QtPlugin>
#include <QtCore/QDebug>
......
......@@ -30,6 +30,7 @@
#include "allprojectsfind.h"
#include "project.h"
#include "session.h"
#include "projectexplorer.h"
#include <utils/qtcassert.h>
......
......@@ -42,64 +42,60 @@
using namespace ProjectExplorer;
using namespace ProjectExplorer::Internal;
/// ApplicationRunConfiguration
/// LocalApplicationRunConfiguration
ApplicationRunConfiguration::ApplicationRunConfiguration(Project *pro)
LocalApplicationRunConfiguration::LocalApplicationRunConfiguration(Project *pro)
: RunConfiguration(pro)
{
}
ApplicationRunConfiguration::~ApplicationRunConfiguration()
LocalApplicationRunConfiguration::~LocalApplicationRunConfiguration()
{
}
QString ApplicationRunConfiguration::type() const
QString LocalApplicationRunConfiguration::type() const
{
return "ProjectExplorer.ApplicationRunConfiguration";
return "ProjectExplorer.LocalApplicationRunConfiguration";
}
void ApplicationRunConfiguration::save(PersistentSettingsWriter &writer) const
void LocalApplicationRunConfiguration::save(PersistentSettingsWriter &writer) const
{
RunConfiguration::save(writer);
}
void ApplicationRunConfiguration::restore(const PersistentSettingsReader &reader)
void LocalApplicationRunConfiguration::restore(const PersistentSettingsReader &reader)
{
RunConfiguration::restore(reader);
}
/// ApplicationRunConfigurationRunner
/// LocalApplicationRunControlFactory
ApplicationRunConfigurationRunner::ApplicationRunConfigurationRunner()
LocalApplicationRunControlFactory::LocalApplicationRunControlFactory()
{
}
ApplicationRunConfigurationRunner::~ApplicationRunConfigurationRunner()
LocalApplicationRunControlFactory::~LocalApplicationRunControlFactory()
{
}
bool ApplicationRunConfigurationRunner::canRun(QSharedPointer<RunConfiguration> runConfiguration, const QString &mode)
bool LocalApplicationRunControlFactory::canRun(const QSharedPointer<RunConfiguration> &runConfiguration, const QString &mode) const
{
return (mode == ProjectExplorer::Constants::RUNMODE)
&& (!runConfiguration.objectCast<ApplicationRunConfiguration>().isNull());
&& (!runConfiguration.objectCast<LocalApplicationRunConfiguration>().isNull());
}
QString ApplicationRunConfigurationRunner::displayName() const
QString LocalApplicationRunControlFactory::displayName() const
{
return tr("Run");
}
RunControl *ApplicationRunConfigurationRunner::run(QSharedPointer<RunConfiguration> runConfiguration, const QString &mode)
RunControl *LocalApplicationRunControlFactory::create(const QSharedPointer<RunConfiguration> &runConfiguration, const QString &mode)
{
QSharedPointer<ApplicationRunConfiguration> rc = runConfiguration.objectCast<ApplicationRunConfiguration>();
Q_ASSERT(!rc.isNull());
Q_ASSERT(mode == ProjectExplorer::Constants::RUNMODE);
ApplicationRunControl *runControl = new ApplicationRunControl(rc);
return runControl;
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
return new LocalApplicationRunControl(runConfiguration.objectCast<LocalApplicationRunConfiguration>());
}
QWidget *ApplicationRunConfigurationRunner::configurationWidget(QSharedPointer<RunConfiguration> runConfiguration)
QWidget *LocalApplicationRunControlFactory::configurationWidget(const QSharedPointer<RunConfiguration> &runConfiguration)
{
Q_UNUSED(runConfiguration)
return new QLabel("TODO add Configuration widget");
......@@ -107,7 +103,7 @@ QWidget *ApplicationRunConfigurationRunner::configurationWidget(QSharedPointer<R
// ApplicationRunControl
ApplicationRunControl::ApplicationRunControl(QSharedPointer<ApplicationRunConfiguration> runConfiguration)
LocalApplicationRunControl::LocalApplicationRunControl(const QSharedPointer<LocalApplicationRunConfiguration> &runConfiguration)
: RunControl(runConfiguration)
{
connect(&m_applicationLauncher, SIGNAL(applicationError(QString)),
......@@ -120,13 +116,13 @@ ApplicationRunControl::ApplicationRunControl(QSharedPointer<ApplicationRunConfig
this, SLOT(bringApplicationToForeground(qint64)));
}
ApplicationRunControl::~ApplicationRunControl()
LocalApplicationRunControl::~LocalApplicationRunControl()
{
}
void ApplicationRunControl::start()
void LocalApplicationRunControl::sta