Device support: Make device actions a little more flexible.

We give the implementors of the IDevice subclasses a litte more freedom
by not assuming a modal dialog.

Change-Id: I629a3ab7fc50a73229e6439af53f1bae0cf0259e
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
Christian Kandeler
2012-05-02 16:03:26 +02:00
parent e19ad8eab2
commit d9b36a1b50
9 changed files with 30 additions and 32 deletions

View File

@@ -120,19 +120,21 @@ QString LinuxDeviceConfiguration::displayNameForActionId(Core::Id actionId) cons
return QString(); // Can't happen.
}
QDialog *LinuxDeviceConfiguration::createAction(Core::Id actionId, QWidget *parent) const
void LinuxDeviceConfiguration::executeAction(Core::Id actionId, QWidget *parent)
{
QTC_ASSERT(actionIds().contains(actionId), return 0);
QTC_ASSERT(actionIds().contains(actionId), return);
QDialog *d;
const LinuxDeviceConfiguration::ConstPtr device
= sharedFromThis().staticCast<const LinuxDeviceConfiguration>();
if (actionId == Core::Id(Constants::GenericTestDeviceActionId))
return new LinuxDeviceTestDialog(device, new GenericLinuxDeviceTester, parent);
if (actionId == Core::Id(Constants::GenericRemoteProcessesActionId))
return new RemoteLinuxProcessesDialog(new GenericRemoteLinuxProcessList(device, parent));
if (actionId == Core::Id(Constants::GenericDeployKeyToDeviceActionId))
return PublicKeyDeploymentDialog::createDialog(device, parent);
return 0; // Can't happen.
d = new LinuxDeviceTestDialog(device, new GenericLinuxDeviceTester, parent);
else if (actionId == Core::Id(Constants::GenericRemoteProcessesActionId))
d = new RemoteLinuxProcessesDialog(new GenericRemoteLinuxProcessList(device, parent));
else if (actionId == Core::Id(Constants::GenericDeployKeyToDeviceActionId))
d = PublicKeyDeploymentDialog::createDialog(device, parent);
if (d)
d->exec();
}
LinuxDeviceConfiguration::LinuxDeviceConfiguration() : d(new LinuxDeviceConfigurationPrivate)