Commit Graph

638 Commits (d97be6744d8fdb2f5725e5993dc4863ee114b432)

Author SHA1 Message Date
Michail Vourlakos 5fdcef81af TASKS:Migrate to multiple Tasks architecture
--First steps in order to support mulitple Tasks
applets in the same dock and panel.
--Step1: migrate values from Containment to Task
applet.
--Step2: deprecate Task applet options that are
found in containment
--Step3: provide multiple dynamic Tasks tabs in
settings
Michail Vourlakos da648b5b4e Tasks:update to location and alignment
--update implementation to use "root.location"
instead of root.position
--update implementation to use "root.alignment"
instead of root.userPanelPosition
Michail Vourlakos 6fffd19826 Tasks:remove deprecated code
Michail Vourlakos 25d061bb8f introduce Environment in Latte library
--as first value provide the separator length
that needs to be applied for all separators
Michail Vourlakos aa3aba50d9 make blockHiding multiple state
--blockHiding now tracks down which event has
requested it and it can work flawlessly with
multiple events

BUG:419034
Michail Vourlakos cca5ec3aaa fix all task indicators for bouncing animations
--make task indicators properly placed when tasks
are bouncing
Michail Vourlakos 1c88a97c55 app animations independent of plasma durations
--plasma durations can mess up the Latte animations
experience a lot. We now use our own set animations
durations which are independent of what the user
chose for plasma animations speed.

BUG:418883
Michail Vourlakos 57d1bf1f43 add quit application to contextmenu actions
--easier way for some to quit Latte by just
right clicking on the docks/panels

BUG:417486
Michail Vourlakos 4971655a2c support Chromium/Chrome audio channels
--upstream patch from Plasma taskmanagers
Michail Vourlakos de1604bb71 improve bouncing animation speed for plasma 5.18
Michail Vourlakos 0406a9a411 [wayland] - dont crash on tasks right click
BUG:417546
FIXED-IN:0.9.9
Michail Vourlakos ebd749fd00 dont break Task.IconItem size calculations startup
--remove no-needed anchors changes state for Task.IconItem
and at the same time fix the size calculations for IconItem.
There were cases for Views that did not use the parabolic effect
at all and Tasks contained single windows tasks (that did not
have launchers assigned), these specific tasks were
appearing at minimum icon size 16px. even though the user
had set much greater values.
Michail Vourlakos b5233ddfe0 option for tasks to scroll and minimize them
--a new Wheel action is introduced to Tasks and
the user can now choose to disable wheel actions
only for tasks OR cycle through grouped tasks OR
upwards cycles trhough grouped tasks and downwards
minimizes them.

BUG:416096
Tranter Madi 77c170c8f7 Update from Plasma for ToolTipInstance.qml
Summary: Just pull the update from Plasma

Reviewers: #latte_dock, mvourlakos

Reviewed By: #latte_dock, mvourlakos

Subscribers: mvourlakos, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D26760
Michail Vourlakos 4809703e9f remove common global indicators options
--enabledForApplets and lengthPadding for indicators
has now moved to indicators responsibility to handle
--as a consequence usesPlasmaStyle has been removed
from indicators API. The corner cases that indicators
conflict with plasma theme applets should be handled
differently and in a different way
Michail Vourlakos 63971f4429 enable normal Latte Tasks removal action
--requesting from users a different way to remove
the Latte Tasks plasmoid if they want to is not
a good hig. Reenabling the classic ways to remove
Latte Tasks. The user can now use the applet tooltip
to remove it or by right clicking it in Latte
edit mode. Because of this the Tasks->Recycling
button is not needed any more.

BUG:415274
Michail Vourlakos c27c338450 align tasks separator to screenEdgeMargin
Michail Vourlakos 1e43376781 [qt5.14]-restore dragged task to normal in the end
after dragging a task, the task should return to
normal state. In qt 5.14 default states that have
a "when" property do not play well

BUG:415333
FIXED-IN:0.9.6
Tranter Madi fe5dbf9f2b Improve context menu
Summary:
- Add `Configure Latte Global Settings...` because it's too hidden in Layout > Configure and does not relate to the Layout menu.
- Insert a new `Separator` to separate between Global settings and View settings (see screenshot)
- Rename `Panel/Dock Settings` to `Edit Panel/Dock` (Verb + Noun)
- Rename `Layout > Configure...` to `Layout > Manage Layouts` (Verb + Noun)

Menu Items Order:

   a.  -separator-
   b. Layouts->
   c. Configure Application...
   e.  -separator-
   f. Add Widgets...
   g. Edit Dock...
   h.  -separator- [only for Tasks plasmoid]
   i.  Close... [only for Tasks plasmoid]

BUG: 415584

Test Plan:
Before:
{F7844554}

After:
a. context menu of applets
{F7845184}
b. context menu of a task that hasn't/has one window shown
{F7844944}
{F7845185}
c. context menu of Latte Tasks plasmoid when used on the desktop
{F7845186}
{F7845187}

Reviewers: #latte_dock, #vdg, mvourlakos

Reviewed By: #latte_dock, mvourlakos

Subscribers: ngraham, ndavis, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D26238
Michail Vourlakos dfd8bcdeca wayland improvements for WindowsAlwaysCover
Michail Vourlakos d82ac63417 improve publish task geometries code
--update the publish task geometries code
in order to identify also when the dock
has hide itself or is fully shown properly
and update the published task geometries
accordingly
Michail Vourlakos 1c7eec05e3 send only screenEdgeMargin to applets/indicators
--screenEdgeMarginEnabled value is not really needed
to applets and indicators. Only the margin value
applied is of importance in order to place themselves
properly.
Michail Vourlakos 06fdd0d703 make screenEdgeMargin aware some elements
--update some containment elements and make
them screenEdgeMargin aware in order to be
positioned properly
Michail Vourlakos a40ff9cf5b update CustomBackground to more border styles
--use screenEdgeMargin in order to support more border
styles for custom background component that paints
the underneath panel background for smart coloring.
Michail Vourlakos 8194ee94bc inform applets/indicators for screen edge margin
--fix geometries publishing, update margins calculations
Michail Vourlakos 165db28a24 plasmoid use layout last used activity
--this way in multiple layouts mode when switching
different layouts the tasks/launchers are sliding in/out
only when we switch between different activities in
the same layout and NOT when switching between different
activities in different layouts
Michail Vourlakos 7663e86068 multiple fixes for different margins
--multiple fixes for margins all over the place. More
specific how they are calculated and when they are
used
Michail Vourlakos d8a32fa18a load an indicator for the view background
--this way the plasma android-style click can be
triggered for empty areas
Michail Vourlakos 4139948d11 activate single windows directly in !compositing
--meaning to not activate the previews window in that
case. Single windows should be activated immediately
after left click, previews are not necessary in that
case.

FIXED-IN:0.9.2
Michail Vourlakos f3e6debc26 let the user close multiple windows from previews
BUG:411461
FIXED-IN:0.9.2
Michail Vourlakos edfd111d9a use only exter.margins for separators
--separators are only usings the external margins
between items. In the past it was also consider
the indicators internal padding. This is not
needed and it was creating too big empty
spaces with no real reason.
Michail Vourlakos 768a6b4b2a indicators can now offset a bit icons
--through level.requested options each indicator
instance can request specific repositioning for
each icon. Very good example for this is the
Win7 style indicator
Michail Vourlakos a885eaa163 dont show progress badge if user disabled it
Michail Vourlakos 2866b6a3aa plasma theme colors for !accelerated graphics
--fix also how accelerated graphics are identified
by using GraphicsInfo api
Michail Vourlakos 724a59eb23 add accelerated graphics checks all over the place
--when qml uses software rendering checks should be
added in order to not hide the visual elements. This
is taking place now in a more concrete way and checked
also that tasks with badges or not are still shown

BUG:411037
FIXED-IN:0.9.2
Michail Vourlakos 551edf01fb provide Progress information to indicators
--as a test case, the Plasma indicator now supports
the original plasma progress indicator of plasma
taskmanagers
Yuri Chornoivan 15ab253efd Fix minor EBN issues
Michail Vourlakos f449e22943 dont hide icons/applets for software rendering
--when qml software rendering is enabled the ShaderEffects
do not work. Hiding sources in that case is hiding
from the user tasks and applets with no visual feedback.
Sources in that case should hide themeselves and give
the user the minimum which is the original drawn contents.

BUG:410920
FIXED-IN:0.9.2
Michail Vourlakos 43d1985d4e improve LeftClick::PreviewWindows
--when the user clicks a single window now it is
just activated instead of showing first the preview
window showing only one instance

BUG:410417
Michail Vourlakos 5bab4b0409 wayland,show preview windows for grouped tasks
BUG: 410408
Michail Vourlakos 6121799346 avoid Tasks Pixelization
--enable cached:true for Tasks effects in order
to try to avoid pixelization in some cases when
effects are enabled
Michail Vourlakos 60e97ec0be fix blurred icons
--revert back the PIXELIZATION workaround because
it creates BLURRED icons even for sizes>=64px!

BUG:410365
FIXED-IN:0.9.1
Michail Vourlakos 4ebf3e2329 update progress badge properly
--send repaint signals properly for BadgeText

BUG:410318
FIXED-IN:0.9.1
Michail Vourlakos 780d807cc8 find a way to apply LatteSideColoring for Tasks
Michail Vourlakos 30f3145f95 Introduce Flat and 3D style for Badges
--the user can now choose to enable or NOT 3D
style for all badges through Latte Global Preferences
window. By default the Flat style is preferred

BUG: 409467
Michail Vourlakos 6fbb2d7d0d define specific prominent badge colors
Michail Vourlakos df9394ddd6 option for prominent color of Notification Badges
--The user from Tasks,Badges can choose a more prominent
color for notification badges (usually reddish). In case
the user has not enabled that option(default) then the plasma
theme highlight color is used which is also the default
option of Latte v0.8

BUG: 408955
Michail Vourlakos 0768975765 Center position Tasks when in the Desktop
Michail Vourlakos 2e5a018678 disable scrolling shadows when Tasks in desktop
Michail Vourlakos f75605d78d introduce Resources for Indicators
Michail Vourlakos 33962fa1fc expose some animations properties to Indicators
--animations enabled and durationTime exposed to
Indicators
Michail Vourlakos f04009b665 simplify code part
Michail Vourlakos f7471e59b3 improve when to clear parab.effect from Tasks
Michail Vourlakos cda688c2a5 refactor:move AddingVisuals to LatteComponents
Michail Vourlakos d283e61b5d improve DragDrop behavior/responsiveness
Michail Vourlakos 7a31e52614 increase Tasks GarbageCollector interval at 30secs
Michail Vourlakos dfcd3e2452 reinstantiate properly tasks previews
--this code helps the previewsmodel to
reinstantiate when changing from single
instance preview to another single one
Michail Vourlakos 682e039439 fix for VirtualDesktops array identifying
BUG: 407351
Michail Vourlakos 74772cd7a9 introduce SCROLLING options for Tasks
--the user can now adjust the Scrolling options
for its Tasks when the items overflow. The following
are provided:
Scrolling: ENABLE/DISABLE
--Manual Scrolling: DISABLE/PARALLEL/HORIZONTALANDVERTICAL
--Auto Scrolling: ENABLE/DISABLE

BUG: 407779
Michail Vourlakos 828b31fb78 animate new launchers when dropping them
Michail Vourlakos 7ffe7d436d introduce plasmoid:TasksExtendedManager
--All the Tasks WORKSAROUNDS for libtaskmanager
limitation in one place
Michail Vourlakos ee81cdf1bd send urlsDropped signal from containment
Michail Vourlakos 1ef4de0da8 VASTLY IMPROVE dragging experience
--when dragging a new applet over the view
the responsiveness is now improved vastly
--the new architecture uses two different
DragAndDropAreas. One which is the old one
and is used when dragged launchers, urls and
separators. The second is used only when
applets are dragged into the view
--the visuals for adding launchers/applets have
been improved and a circular visual is preferred
now instead
Michail Vourlakos 8ccdd2e719 improve Tasks adding launchers responsiveness
Michail Vourlakos 93528d3164 fixes for clearing parabolic effect zoom
--case 1: first left applet neighbour of Tasks was not
clearing its zoom if the mouse was entering too fast
the Tasks applet from the applet direction
--case 2: first task in Tasks was not clearing its zoom
when the applet triggering the clear zoom effect was too
far from the Tasks

BUG: 401294
Michail Vourlakos be25a3b145 improve debug graphics mode visuals
Michail Vourlakos 844dc8096c fix startup warnings
Michail Vourlakos a61120bd7d enable Tasks draggin in live editing mode
Michail Vourlakos 8b2e31e6ef launchers syncing improve positions discoverring
--previous code was creating an endless loop during
launchers syncing when there were windows between
the launchers.
example to reproduce: add a Discover launcer and
at the previous indexes there should be some
launchers that have open windows but their launcher
is assigned to different activity. Drag afterwards
the Discover launcher to first indexes e.g. 0,1
Michail Vourlakos 215d74092f HACK TO avoid pixelixation in TASKS
Michail Vourlakos a27ff3ec48 REFACTOR:Update LayoutManager to Layouts::Manager
--create "layouts" own directory in order to host
all LAYOUTS management/control code and classes
Michail Vourlakos 29157f4636 refactor:rename managedLayout to layout/viewLayout
Michail Vourlakos 7ae63e7dd1 optimize screenGeometry calls from Tasks plasmoid
--plasmoid.screenGeometry is costly under Latte environment
because it supports multple layouts in multiple activities.
By using the View::screenGeometry the calls are minimized
almost totally.
Michail Vourlakos 6f47b7c4c8 rename Rectangled TO Square for Indicators
Michail Vourlakos e64e003a7c mask correctly the vertical scrollable tasks
Michail Vourlakos f10239e364 onwheel event publish task geometries
Michail Vourlakos 704a12a522 center properly tasks published geometries
Michail Vourlakos 763d22643e enable tasks dragging !inConfigureAppletsMode
Michail Vourlakos 8168d4ec13 fix pixelated icons when par.effect disabled
Mathias Tillman 99454c0b15 Import QtGraphicalEffects 1.0 instead of 1.2 to fix dependency issue.
Summary:
Fixes an issue where the shell plasmoid fails to load when QtGraphicalEffects 1.2 is missing from the system. This causes various issues like the task manager applet failing to load.

BUG: 406818

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D20774
Michail Vourlakos 13cb58d54a improve badges borders colors
Michail Vourlakos 12e8863f4b update info badges color for tasks notifications
--info badges updated their colors in order to attract
more attention on them. Most themes etc. use for their
negativeTextColor a reddish color so that is a good
match for this.
Michail Vourlakos 834b6477ac update tasks previews
--remove the workaround timer that was used
from previews dialog in order to draw properly
single previews changes
Michail Vourlakos 18fdde41a2 introduce auto-scrolling for tasks
Michail Vourlakos 05b5344379 improve when tasks geometries are published
--take into account the scrolling area, when animations
in scrolling area are ended tasks geometries could be
calculated again
Michail Vourlakos d8c294aada compute better scrolling area thickness
Michail Vourlakos fa61ee8842 scroll to active task automatically
Michail Vourlakos 3f66f09045 bound published tasks geometries at scrollarea
Michail Vourlakos f572970a95 add option for Tasks scrolling
Michail Vourlakos b493fdf9fb hide Tasks applet actions when in Latte app
Michail Vourlakos 4b92a87c41 update fill(s) applets appropriately
--more specific when maxLength is changed
in editMode and !inconfigureAppletsMode
Michail Vourlakos f5a46b3da9 scrolling,support multiple layouts and positions
Michail Vourlakos 88af46f5bf move alignment into scrollingarea
Michail Vourlakos fcb04c2144 support scrolling elements to all edges
Michail Vourlakos fd99fba0bf refactor:Previews and TasksList on own directories
Michail Vourlakos 706dee5b74 move tasks layout to dedicated folder
Michail Vourlakos 6710be3ae5 update plasmoid to support scrolling
Michail Vourlakos 6505e8797f send mouse signals from View to containment
--this is side-way path for mouse events and
more specific the mouse pressed, released
events to be sent from parent window to its
qml containment part. This way it is possible
to keep the original plasma applet behavior
such as original plasma tooltips and provide
Latte specific functionality such as animated
clicks from indicators.

NOTE: An investigation - testing took place in
order to check if this approach could be also used
for mouseMove events to be used for applets parabolic
effect. The result was that this was not possible because
there were too many signals and too much calculations
too identify for which applet the signal belonged to.
The parabolic effect was not fluid in that case and
could not catch up.
Michail Vourlakos 67a4a4ab14 remove deprecated options
--reversed, dotsOnActive and
threeColors that were related
to Latte indicator
Michail Vourlakos d95d861b64 add new options to indicators interface
--providesHoveredAnimation, in order to disable
the Latte one
--providesClickedAnimation, in order to disable
the Latte one
--needsMouseEventCoordinates, in order to know
when the mouse pressed e.g. creating animations
like the android way
Michail Vourlakos 30174bbb00 fix parabolic effect for vertical views
Michail Vourlakos 82480e6079 fix warnings,closing Latte with custom indicators
Michail Vourlakos 834bb56194 provide panel transparency info to indicators
Tranter Madi 5fe27176fa Center align shortcut badges when iconSize < 48
Summary:
When iconSize is not big enough, center aligned shortcut badges look better than top-left aligned ones.

BUG: 406037

Test Plan:
- When iconSize < 48: shortcut badges are center aligned
- When iconSize >= 48: they are top-left aligned

For example, with iconSize = 32:
Before:
{F6736365}
After:
{F6736366}

Reviewers: #latte_dock, mvourlakos

Reviewed By: mvourlakos

Subscribers: mvourlakos, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D20128
Michail Vourlakos d4b2589d0c expose isPressed state to indicators
Nick Guletskii 6f84812a53 Highlight the hovered item in the task group tooltip
Summary:
Currently, the task group tooltip doesn't react to the user hovering over a thumbnail. This patch modifies the active window line to also act as a hover indicator, making the UI more responsive to the user's mouse movements.

{F6734813}

Reviewers: #latte_dock, mvourlakos

Reviewed By: #latte_dock, mvourlakos

Subscribers: mvourlakos, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D19281
Nick Guletskii 0a3755dce5 Close the window selected in the task group tooltip on middle click
Summary: In Windows, it is possible to close windows by middle-clicking their previews in the taskbar. This patch adds this feature to Latte Dock. Now, middle clicking an item in the task group tooltip will close the corresponding window.

Reviewers: #latte_dock, mvourlakos

Reviewed By: #latte_dock, mvourlakos

Subscribers: mvourlakos, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D19284
Michail Vourlakos 612c53b78a respect liveEditMode for plasmoid separators
Michail Vourlakos 6569160195 improve icon colors for applets
--provide a background and glow color for those
applets that do not provide an icon to render
Michail Vourlakos 69bbb82841 improve icons colors names
Michail Vourlakos f9289dc558 support colorGroup for IconItem
--this way we fix all coloring issues with
plasma theme icons e.g. the audio indicator
was not painted correctly for some themes
Michail Vourlakos 262dfa6b09 Indicators protocol change attributes to level
--introduce a new class called level which contains
all the needed information concerning indicator level
and at the same time the bridge that provides information
for the specific indicator states
Michail Vourlakos 614ec3ea48 move shortcut badges at top left corner
--this way the elements are observed better and
the user is able to both watch out the items and
the shortcut that activates them
Michail Vourlakos 28ef36a774 simplify indicators names
Michail Vourlakos 0b90411b1d IMPORTANT: All new Indicators architecture
--this huge commit contains all the changes needed
in order for Latte to load Indicators dynamically
from their own packages
Michail Vourlakos ca80a7932f introduce LatteComponents to be consumed globally
--this is needed in order for indicators plugins in
the future to provide the same UI elements with the
rest of LatteView Settings windows
Michail Vourlakos 706ba661a2 merge plasma improvements for ContextMenu
Michail Vourlakos 18d6a0354b Previews show again Activities and Desktops text
--merge plasma taskmanager commit, D19257
Michail Vourlakos f0899bd6a8 update plasmoid ContextMenu design to plasma 5.16
BUG: 405553
Michail Vourlakos b89ef0e50b fix warnings fron new indicators architecture
Michail Vourlakos 8be388b893 improve vastly the indicators arch independence
Michail Vourlakos 4318404c9c fix warnings and improvements for Indicators
Michail Vourlakos 0d568c81d5 update indicators architecture to be independent
--first steps in order to support completely independent
indicators that can be downloaded/installed/used online
Michail Vourlakos 10fbf41081 enable hover effect for Plasma Style
Michail Vourlakos e250048048 indicators active for previews only for windows
Tranter Madi 432d6fb753 Apply changes for tooltip from upstream
Summary:
Upstream changes: https://phabricator.kde.org/D17073

- Do not crop albumArt
- Use smaller fontsizes for labels.

Test Plan:
Screenshot:
{F6692625}

Reviewers: mvourlakos, rooty

Reviewed By: mvourlakos, rooty

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D19777
Michail Vourlakos c85ec4c07a new architecture for Indicators
--indicators now support both Back/Front
layers. Back layer is the usual layer
behind the current Item and the Front layer is
a layer above the current Item (overlay)
--update Unity to follow new architecture
Michail Vourlakos a919dc3fca Unity:add triangles, make things more interesting
--added triangles indicators that follow plasma theme
coloring in order to indicate windows count, minimized
state and isActive flag

CCBUG: 404122
Michail Vourlakos 104ee8581f add more information for indicators consumption
--currentIconSize/maxIconSize/windowsCount/
windowsMinimizedCount
Michail Vourlakos c07c1c75ab disable separators size when parabolicEffectEnabled
Michail Vourlakos f7b9f49af8 fix crash from information badges
--the Colorizer that was responsible to
grey out the information badges when the
task is dragged, it was creating crashes
when its latte view was removed by the user
Michail Vourlakos d61f8d5dd2 make slide in/out windows independent
Michail Vourlakos 1cc88b4c22 make launcher bounce animation independent
Michail Vourlakos 4f84d10b0b fix windowsCount for Task in plasmoid
Michail Vourlakos b00598949d activate/disable independent animations
Michail Vourlakos 25b636465a split animations and make par.effect independent
Michail Vourlakos 9e6abb70d0 fix groupedTasks activation for !compositing
Michail Vourlakos b15df34cc4 livemode:enable parabolic effect for editMode
--first commit to restructure editMode in order to
support livemode under editing. Live mode means
that all options changes during editMode will be
available to be tested directly
Michail Vourlakos f3be388c40 expose windowsCount to Indicators
Michail Vourlakos ff77bc3485 compute icon colors only for indicators requesting
Michail Vourlakos b1865e2634 hide indicator properly when task is removed
Michail Vourlakos c805963327 prepare for new latte separators
Michail Vourlakos c64df5a078 fixes for separators
Michail Vourlakos 2af8d6290a move task IndicatorLoader in its own qml file
Michail Vourlakos f1eb8becfc improvements for Plasma Style indicator
Michail Vourlakos fe71e5dd2e remove deprecated headers
Michail Vourlakos 8d265f9432 fix attention animation for reverse state
Michail Vourlakos ef2e464ca8 improvements for separators
Michail Vourlakos 98c20e4f83 adjust separators to new indicators design
Michail Vourlakos e40e1556a9 fix attention animation with new indicators