mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
soliduiserver: pass the Solid::Device object instead of the UDI to kExecuteAction()
so that it does not have to be re-constructed and removed device can be passed to it Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
09f7754713
commit
dd4b27b579
4 changed files with 9 additions and 9 deletions
|
@ -221,7 +221,8 @@ void SolidRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryM
|
||||||
const QList<KServiceAction> kserviceactions = KDesktopFileActions::userDefinedServices(actionfilepath, true);
|
const QList<KServiceAction> kserviceactions = KDesktopFileActions::userDefinedServices(actionfilepath, true);
|
||||||
foreach (const KServiceAction &kserviceaction, kserviceactions) {
|
foreach (const KServiceAction &kserviceaction, kserviceactions) {
|
||||||
if (kserviceaction.name() == actionname) {
|
if (kserviceaction.name() == actionname) {
|
||||||
QStringList actioncommand = kSolidActionCommand(kserviceaction.exec(), kSolidUDI(match.id()), true);
|
const Solid::Device soliddevice(kSolidUDI(match.id()));
|
||||||
|
QStringList actioncommand = kSolidActionCommand(kserviceaction.exec(), soliddevice, true);
|
||||||
if (actioncommand.size() == 0) {
|
if (actioncommand.size() == 0) {
|
||||||
kWarning() << "invalid action command" << actionname << "in" << actionfilepath;
|
kWarning() << "invalid action command" << actionname << "in" << actionfilepath;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -113,7 +113,7 @@ void SolidUiDialog::slotOkClicked()
|
||||||
const QListWidgetItem* selecteditem = selecteditems.first();
|
const QListWidgetItem* selecteditem = selecteditems.first();
|
||||||
const int kserviceactionindex = selecteditem->data(Qt::UserRole).toInt();
|
const int kserviceactionindex = selecteditem->data(Qt::UserRole).toInt();
|
||||||
Q_ASSERT(kserviceactionindex >= 0 && kserviceactionindex < m_serviceactions.size());
|
Q_ASSERT(kserviceactionindex >= 0 && kserviceactionindex < m_serviceactions.size());
|
||||||
kExecuteAction(m_serviceactions.at(kserviceactionindex), m_soliddevice.udi(), m_mount);
|
kExecuteAction(m_serviceactions.at(kserviceactionindex), m_soliddevice, m_mount);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "moc_soliduidialog.cpp"
|
#include "moc_soliduidialog.cpp"
|
||||||
|
|
|
@ -271,7 +271,7 @@ void SolidUiServer::handleActions(const Solid::Device &soliddevice, const bool a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (kserviceactions.size() == 1) {
|
if (kserviceactions.size() == 1) {
|
||||||
kExecuteAction(kserviceactions.first(), soliddevice.udi(), added);
|
kExecuteAction(kserviceactions.first(), soliddevice, added);
|
||||||
} else if (!kserviceactions.isEmpty()) {
|
} else if (!kserviceactions.isEmpty()) {
|
||||||
SolidUiDialog* soliddialog = new SolidUiDialog(soliddevice, kserviceactions, added);
|
SolidUiDialog* soliddialog = new SolidUiDialog(soliddevice, kserviceactions, added);
|
||||||
connect(soliddialog, SIGNAL(finished(int)), this, SLOT(slotDialogFinished()));
|
connect(soliddialog, SIGNAL(finished(int)), this, SLOT(slotDialogFinished()));
|
||||||
|
|
|
@ -61,12 +61,11 @@ static void kSolidEjectUDI(const QString &solidudi)
|
||||||
}
|
}
|
||||||
|
|
||||||
// simplified version of KMacroExpander specialized for solid actions
|
// simplified version of KMacroExpander specialized for solid actions
|
||||||
static QStringList kSolidActionCommand(const QString &command, const QString &solidudi, const bool mount)
|
static QStringList kSolidActionCommand(const QString &command, const Solid::Device &soliddevice, const bool mount)
|
||||||
{
|
{
|
||||||
Solid::Device soliddevice(solidudi);
|
const Solid::StorageAccess* solidstorageacces = soliddevice.as<Solid::StorageAccess>();
|
||||||
Solid::StorageAccess* solidstorageacces = soliddevice.as<Solid::StorageAccess>();
|
|
||||||
if (mount && solidstorageacces && !solidstorageacces->isAccessible()) {
|
if (mount && solidstorageacces && !solidstorageacces->isAccessible()) {
|
||||||
kSolidMountUDI(solidudi);
|
kSolidMountUDI(soliddevice.udi());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString actioncommand = command;
|
QString actioncommand = command;
|
||||||
|
@ -97,9 +96,9 @@ static QStringList kSolidActionCommand(const QString &command, const QString &so
|
||||||
return KShell::splitArgs(actioncommand);
|
return KShell::splitArgs(actioncommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kExecuteAction(const KServiceAction &kserviceaction, const QString &solidudi, const bool mount)
|
static void kExecuteAction(const KServiceAction &kserviceaction, const Solid::Device &soliddevice, const bool mount)
|
||||||
{
|
{
|
||||||
QStringList actioncommand = kSolidActionCommand(kserviceaction.exec(), solidudi, mount);
|
QStringList actioncommand = kSolidActionCommand(kserviceaction.exec(), soliddevice, mount);
|
||||||
if (actioncommand.size() == 0) {
|
if (actioncommand.size() == 0) {
|
||||||
kWarning() << "invalid action command" << kserviceaction.name();
|
kWarning() << "invalid action command" << kserviceaction.name();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Reference in a new issue