kio: remove redundant KDesktopFileActions::userDefinedServices() overload

there is one convenience overload already

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2024-05-13 06:14:23 +03:00
parent 0364baa81f
commit 3fb2096129
2 changed files with 28 additions and 32 deletions

View file

@ -41,32 +41,32 @@ enum BuiltinServiceType { ST_MOUNT = 0x0E1B05B0, ST_UNMOUNT = 0x0E1B05B1 }; // r
static bool runFSDevice( const KUrl& _url, const KDesktopFile &cfg ); static bool runFSDevice( const KUrl& _url, const KDesktopFile &cfg );
static bool runLink( const KUrl& _url, const KDesktopFile &cfg ); static bool runLink( const KUrl& _url, const KDesktopFile &cfg );
bool KDesktopFileActions::run( const KUrl& u, bool _is_local ) bool KDesktopFileActions::run(const KUrl &url, bool is_local)
{ {
// It might be a security problem to run external untrusted desktop // It might be a security problem to run external untrusted desktop
// entry files // entry files
if ( !_is_local ) if (!is_local)
return false; return false;
KDesktopFile cfg(u.toLocalFile()); KDesktopFile cfg(url.toLocalFile());
if ( !cfg.desktopGroup().hasKey("Type") ) if ( !cfg.desktopGroup().hasKey("Type") )
{ {
KMessageBox::error( KMessageBox::error(
nullptr, nullptr,
i18n("The desktop entry file %1 has no Type=... entry.", u.toLocalFile()) i18n("The desktop entry file %1 has no Type=... entry.", url.toLocalFile())
); );
return false; return false;
} }
// kDebug() << "TYPE = " << type.data(); // kDebug() << "TYPE = " << type.data();
if ( cfg.hasDeviceType() ) if (cfg.hasDeviceType())
return runFSDevice( u, cfg ); return runFSDevice(url, cfg);
else if ( cfg.hasApplicationType() else if (cfg.hasApplicationType()
|| (cfg.readType() == "Service" && !cfg.desktopGroup().readEntry("Exec").isEmpty())) // for kio_settings || (cfg.readType() == "Service" && !cfg.desktopGroup().readEntry("Exec").isEmpty())) // for kio_settings
return KToolInvocation::self()->startServiceByStorageId( u.toLocalFile() ); return KToolInvocation::self()->startServiceByStorageId(url.toLocalFile());
else if ( cfg.hasLinkType() ) else if (cfg.hasLinkType())
return runLink( u, cfg ); return runLink(url, cfg);
KMessageBox::error( KMessageBox::error(
nullptr, nullptr,
@ -179,19 +179,17 @@ QList<KServiceAction> KDesktopFileActions::builtinServices( const KUrl& _url )
return result; return result;
} }
QList<KServiceAction> KDesktopFileActions::userDefinedServices( const QString& path, bool bLocalFiles ) QList<KServiceAction> KDesktopFileActions::userDefinedServices(const KDesktopFile& cfg,
{ bool bLocalFiles,
KDesktopFile cfg( path ); const KUrl::List &file_list)
return userDefinedServices( cfg, bLocalFiles );
}
QList<KServiceAction> KDesktopFileActions::userDefinedServices( const KDesktopFile& cfg, bool bLocalFiles, const KUrl::List & file_list )
{ {
KService service(&cfg); KService service(&cfg);
return userDefinedServices(service, bLocalFiles, file_list); return userDefinedServices(service, bLocalFiles, file_list);
} }
QList<KServiceAction> KDesktopFileActions::userDefinedServices( const KService& service, bool bLocalFiles, const KUrl::List & file_list ) QList<KServiceAction> KDesktopFileActions::userDefinedServices(const KService &service,
bool bLocalFiles,
const KUrl::List &file_list)
{ {
QList<KServiceAction> result; QList<KServiceAction> result;

View file

@ -37,7 +37,7 @@ namespace KDesktopFileActions
* by kio itself. Namely mount/unmount for FSDevice files. * by kio itself. Namely mount/unmount for FSDevice files.
* @return the list of services * @return the list of services
*/ */
KIO_EXPORT QList<KServiceAction> builtinServices( const KUrl& url ); KIO_EXPORT QList<KServiceAction> builtinServices(const KUrl &url);
/** /**
* Returns a list of services defined by the user as possible actions * Returns a list of services defined by the user as possible actions
@ -47,16 +47,13 @@ namespace KDesktopFileActions
* @param path the path to the desktop file describing the services * @param path the path to the desktop file describing the services
* @param bLocalFiles true if those services are to be applied to local files only * @param bLocalFiles true if those services are to be applied to local files only
* (if false, services that don't have %u or %U in the Exec line won't be taken into account). * (if false, services that don't have %u or %U in the Exec line won't be taken into account).
* @param file_list list of urls; this allows for the menu to be changed depending on the exact files via
* the X-KDE-GetActionMenu extension.
*
* @return the list of user defined actions * @return the list of user defined actions
*/ */
KIO_EXPORT QList<KServiceAction> userDefinedServices( const QString& path, bool bLocalFiles ); KIO_EXPORT QList<KServiceAction> userDefinedServices(const KDesktopFile &desktopFile, bool bLocalFiles,
const KUrl::List &file_list = KUrl::List());
/**
* Overload of userDefinedServices but also allows you to pass a list of urls for this file.
* This allows for the menu to be changed depending on the exact files via
* the X-KDE-GetActionMenu extension.
*/
KIO_EXPORT QList<KServiceAction> userDefinedServices( const KDesktopFile& desktopFile, bool bLocalFiles, const KUrl::List & file_list = KUrl::List());
/** /**
* Returns a list of services defined by the user as possible actions * Returns a list of services defined by the user as possible actions
@ -72,14 +69,15 @@ namespace KDesktopFileActions
* *
* @return the list of user defined actions * @return the list of user defined actions
*/ */
KIO_EXPORT QList<KServiceAction> userDefinedServices( const KService& service, bool bLocalFiles, const KUrl::List & file_list = KUrl::List() ); KIO_EXPORT QList<KServiceAction> userDefinedServices(const KService &service, bool bLocalFiles,
const KUrl::List &file_list = KUrl::List());
/** /**
* Execute @p service on the list of @p urls. * Execute @p service on the list of @p urls.
* @param urls the list of urls * @param urls the list of urls
* @param service the service to execute * @param service the service to execute
*/ */
KIO_EXPORT void executeService( const KUrl::List& urls, const KServiceAction& service ); KIO_EXPORT void executeService(const KUrl::List &urls, const KServiceAction &service);
/** /**
* Invokes the default action for the desktop entry. If the desktop * Invokes the default action for the desktop entry. If the desktop
@ -87,12 +85,12 @@ namespace KDesktopFileActions
* would create a security problem. Only types Link and Mimetype * would create a security problem. Only types Link and Mimetype
* could be followed. * could be followed.
* *
* @param _url the url to run * @param url the url to run
* @param _is_local true if the URL is local, false otherwise * @param is_local true if the URL is local, false otherwise
* @return true on success and false on failure. * @return true on success and false on failure.
* @see KRun, KToolInvocation * @see KRun, KToolInvocation
*/ */
KIO_EXPORT bool run( const KUrl& _url, bool _is_local ); KIO_EXPORT bool run(const KUrl &url, bool is_local);
} }
#endif #endif