Go to file
Tranter Madi f8be3ea710 Optimize code when dropping files into the desktop
Summary:
Currently, when you have the desktop in the Desktop layout, if you drop 10 jpg files into the desktop, it creates 10 menus at the same position.
When you have the desktop in the Folder layout, if you drop 10 jpg files into the desktop, it calls `KIO::setApplicationActions()` 10 times.

What does this improve?

- Do not create KIO::MimetypeJob for each file
- Do not call `DropJob::setApplicationActions()` too many times/ create too many menus for each file.

My idea is that, when you drop files into the desktop:
- If they have the same `mimetype` -> we add actions support this `mimetype`.
- If not -> we only show the action from `KIO::DropJob` and only actions support different `mimetypes` at the same time like `Add icon`...

**Require:** D26484
CCBUG: 415917

Reviewers: #plasma, mart, broulik, #vdg, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, anthonyfieroni, #plasma, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D26691
2020-02-04 12:54:38 +07:00
autotests Port qrand to QRandomGenerator (qrand is deprecated in qt5.15) 2020-01-07 06:47:10 +01:00
cmake Support gzipping of svgz also on windows, using 7z 2019-04-12 22:45:16 +02:00
docs API dox: adapt kapidox & ecm_add_qch settings to new deprecation macros 2019-10-22 19:41:15 +02:00
examples SVN_SILENT made messages (.desktop file) - always resolve ours 2019-12-09 05:18:11 +01:00
src Optimize code when dropping files into the desktop 2020-02-04 12:54:38 +07:00
templates SVN_SILENT made messages (.desktop file) - always resolve ours 2019-12-25 05:41:48 +01:00
tests add a manual test on the highlight look 2020-01-09 17:35:57 +01:00
.arcconfig Introduce .arcconfig file for better integration with phabricator.kde.org 2016-08-02 18:22:51 +02:00
.gitignore GIT_SILENT: add gitignore 2019-03-04 07:03:07 +01:00
CMakeLists.txt GIT_SILENT Upgrade ECM and KF5 version requirements for 5.67.0 release. 2020-02-01 09:08:38 +00:00
COPYING Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
COPYING.LIB Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
ExtraDesktop.sh i18n: translate kdevtemplate for qml-plasmoid too 2016-10-08 14:25:03 +02:00
KF5PlasmaConfig.cmake.in Use ecm_setup_qtplugin_macro_names 2018-03-21 00:55:32 +01:00
KF5PlasmaMacros.cmake new macro plasma_install_bundled_package 2018-03-20 16:52:18 +01:00
metainfo.yaml Add FreeBSD to metainfo.yaml. 2016-11-23 20:39:07 +01:00
plasma-framework.categories Export Plasma core lib log category, add a category to a qWarning 2019-10-04 08:51:02 +02:00
README.md Add/update first line of README.md to be a short description, useful for inqlude 2015-07-27 19:41:21 +02:00

Plasma Framework

Foundational libraries, components, and tools of the Plasma workspaces

Introduction

The plasma framework provides the following:

  • QML components
  • A C++ library: libplasma
  • Script engines

QML components

org.kde.plasma.core

Bindings for libplasma functionality, such as DataEngine and FrameSvg, see @ref core.

org.kde.plasma.components

Graphical components for common items such as buttons, lineedits, tabbars and so on. Compatible subset of the MeeGo components used on the N9, see @ref plasmacomponents.

org.kde.plasma.extras

Extra graphical components that extend org.kde.plasma.components but are not in the standard api, see @ref plasmaextracomponents.

org.kde.plasma.plasmoid

Attached properties for manipulating the current applet or containment, see @ref libplasmaquick

libplasma

This C++ library provides:

  • rendering of SVG themes
  • loading of files from a certain filesystem structure: packages
  • data access through data engines
  • loading of the plugin structure of the workspace: containments and applets

See @ref libplasma.

Script engines

Provides support to create applets or containments in various scripting languages.