Commit Graph

205 Commits (18b94c795b911ac827aa6ec35e0222c7ab579831)

Author SHA1 Message Date
Johan Smith Agudelo Rodriguez 784710e6d2 include unused
Johan Smith Agudelo Rodriguez ac18a88e60 Merged branch master into master
Johan Smith Agudelo Rodriguez 0375e15d0a close config window before close latte
Michail Vourlakos c61c14e9be improve panel painting for disabled compositing
Johan Smith Agudelo Rodriguez 095dc50f1e fix restore connfig for raiseOnDesktop/ActivityChange
Michail Vourlakos 059a778765 fix #235,set icon for docks differently
--for some reason the icon name returned from
the metadata of corona is empty.This gets
the windowIcon set for the application.
Michail Vourlakos 45e95788ed fix #152,add On The Road session
--the user is able to change into another
session/profile called "On The Road" for
which can set up its docks and applets
differently according to its needs. For
example hide its name, status, place
living etc.
Michail Vourlakos 32f2ebc8e0 improve proportion icon size with automatic icon
--when dock is changing screens and dock is using
an automatic calculated icon size based on contents
the automatic icon size must be recalculated for the
new proportion icon size
Michail Vourlakos 70e3c2bb7a expose dockview local geometry to qml
Michail Vourlakos b8ce37d4c3 fix #198,recreate windows when it is needed
--in order for a dock to be above KeepAbove
windows must contain flag BypassWindowManagerHint.
Unfortunately this flag breaks the experience with
AlwaysVisible state especially the struts and
snapping behavior. This patch recreates a
dockView when a mode is changed and an
update for the flags is needed.
--at the same time move the localGeometry to
dockView in order to trigger properly the
updateAbsGeometry when it is needed, on
window's geometry changes not only when there
is local geometry change
--when a dock is created through corona, the
addDock function reads the mode which is going
to be used and specifys this way the flags that
have to be set during docks creation
Michail Vourlakos 329ba8b6ff fix , improve behavior for auto positioning
--support also an edge case where a top and left dock
overlap each other but there is also a free space in them.
This case hasnt been taken into account into the previous
implementation
Michail Vourlakos f3dbd30ec1 signals to update free area
--more specific when the normalThickness or
shadow size are changed
Michail Vourlakos b2b4517ba8 fix crash from quit of configuration window
Michail Vourlakos 70c83d8b83 support blur/background contrast effects
--support these effects for docks that draw
their shadows externally with the window
server
Michail Vourlakos 2a8bd25e0e compute availableScreenRect only once
--this commit reduces into half the calculations
needed from the vertical docks in order to position
themselves based on horizontal docks. More specific
it makes the QRegion calculations only once for
each dock instead of two times
Michail Vourlakos 0b2bebfbd8 protect dock removal in some cases
--forbid removal of the last running dock with
tasks in it
--forbid removal of the last tasks plasmoid from
running docks
Michail Vourlakos 0f7df07ef1 remove no return error
Michail Vourlakos 6010638094 support overlap dock cases by using free space
--this commit uses free region from corona instead
of free rectangle in order to calculate size and
positioning for the docks. This way is possible to
be positioned more intelligently.
Michail Vourlakos d2e8dd7881 fix #218,reenable garbage collect and trim cache
--the clear component cache was disabled because on
exit it creates crashes when 2 and more docks are
running
Michail Vourlakos c510c74cc5 fix , comment new multi-screen behavior
--refer to last 6-7 commits that contain this new
multi-screen behavior
--the new multi-screen behavior becomes more intelligent.
Latte trys to never let you without a dock containing
tasks plasmoid. It trys to do that intelligently not
depending on how many docks you have registered and if
they are set to explicit or primary ones
Michail Vourlakos fbf8cd3802 disable debug messages
Michail Vourlakos 81dfa36cef set a timer for sync docks screens
--add debuging message
Michail Vourlakos 74770a9f37 dock containing tasks is protected in multi-screen
--the last dock containing tasks can not be removed
automatic by Latte based on screens heuristics
--on startup Latte checks if a dock containing tasks
will be loaded based on screens associated. If it
doesnt it loads the first dock containing tasks and
puts it on primary screen and setting also its flag
to onPrimary
--on the configuration window when a dock changes from
explicit to primary screen by latte automation the
record of the previous screen is shown correctly
Michail Vourlakos 5962cbc9bb stop timer on exit
Michail Vourlakos 6214318e09 change primary dock screen when relevant edge freed
Michail Vourlakos 38e3446db9 do not allow a primary dock overlap an explicit
Michail Vourlakos 2385e593d2 fix screen choosing from configuration window
--the check for the screen if it has the specific
edge free added some small bugs
Michail Vourlakos 18f57f51fd block screen change when edge is occupied
--unfortunately this contains also white spaces
fixes. Sorry for this but by implementing multi-screen
the laptop wasnt correctly configured for
astyle and whitespaces
Michail Vourlakos 0bef60838a disable flag ByPassWindowManagerHint
Michail Vourlakos 5f5cfbad35 fix #208,crash on exit through quit button
Michail Vourlakos 17d2626443 fix whitespaces
Johan Smith Agudelo Rodriguez d2b5487abd fix , flag ByPassWindowManagerHint
Michail Vourlakos c72e62a5d0 fix #12,multi-screen support
--this commit is just a small clean up that
acts as a reference for all the previous
10-12 commits that provide the new anticipated
multi-screen support. With multi-screen support
the user can set for its docks either to be always
on the primary screen or an explicit one... The
docks are loaded and removed automatically on
screen changes
Michail Vourlakos b88170caaa support always on primary case
-- :) fantastic behavior from Latte...
Michail Vourlakos 14b72f49e6 restore add/remove dock buttons
--also use a single timer for screen sync
for dockview
Michail Vourlakos f46848e039 add screen information into debug window
Michail Vourlakos 9259a28cde improvements to add/remove docks on screen demand
Michail Vourlakos 8a7bb2942c add basic multi screen support
--the user can change the dock's screen
from the configuration window... Optimizations
must be made of course in the future...
Michail Vourlakos c468353407 fix , update screen in screengeometry changes
--when the screengeometry was called the dockview screen
hadnt changed to primaryscreen, that had as a
consequence the dock to go to the primary screen
but because that was out of the boundaries of
its own screen to return again to first place
Johan Smith Agudelo Rodriguez 1ba8a62e07 remove property debugFlags of DockView
Johan Smith Agudelo Rodriguez fbf5808667 update commandline options
Johan Smith Agudelo Rodriguez 75d4b71216 , AbstractWindowInterface is now a shared resource
Michail Vourlakos 0a50e76bf6 disable debug messages
Michail Vourlakos a38dd1d91e disable debug message
Michail Vourlakos 4c0a97348c disable debug messages, fix masking positioning
Michail Vourlakos b7c42a5365 mouse events debug messages
Michail Vourlakos 81b36dc91e improve when dock can hide itself
--when an applet becomes activated then the dock
shouldnt hide itself until the applet to become
inactive
Michail Vourlakos 827bde86d4 fix , remove QueuedConnection
Michail Vourlakos 4579fcff46 protect crashes from containment() in dockview
Michail Vourlakos 3ab252339c fix #116,add protections in multi-screen
Johan Smith Agudelo Rodriguez 988ffdae35 fix position when external shadows is enable
Johan Smith Agudelo Rodriguez 0592ba3aaf avoid overlaping
Johan Smith Agudelo Rodriguez 8c820073f0 fix narrow casts
Michail Vourlakos b717a714f5 fix #154,crash on screenGeometry change
--strange thing is that the code producing
this was very weird. From the user's backtrace
syntax: if(!screen())
and more specific at updateEnabledBorders() of
dockview was creating the crash.
replacing it with syntax:
if (!this->screen())
fixes the issue
Michail Vourlakos 6dd4aa9982 fix, publish correct borders
--this fix publish the correct panel borders
that should be drawn according to alignment
and location. Improves also PanelBox heurestics
and should be also any shadows issues
Michail Vourlakos 09629b774b support drawing panel shadows outside dock window
--this is set by default only in case of Always Visible,
zoom factor 1.0, Justify alignment and maximum panel
thickness
Michail Vourlakos f9a2226457 prevent dockview crashes because screen in not set
Michail Vourlakos 41e79cf188 support debug flags from the runtime
--the user is able to set some additional
debug flags in --debug state by just executing
the application.

supported flags:
--with-window: provides a separate window
to show metrics from each separate dock
--graphics: visual indicator for the various
elements
--mask: additional debug messages concerning
mask calculations
Michail Vourlakos 84de2ad1e4 remove maxLength from dockview
Michail Vourlakos 9c3e8f891c fix occusional crash from right click triggering
Michail Vourlakos ca97e6d486 disable more debug messages
Michail Vourlakos 72baaa8809 fix #93,masking updated correctly on config win
--this can be tested by opening the configuration window
through the tasks. Even though a task is zoomed when
triggering the configuration window the animations
do not break afterwards
Michail Vourlakos 5a390e95b3 fix , fix right click for systray
Michail Vourlakos 254ad13536 small fixes with new right click menu
--this fixes right click in zoom factor area
for latte plasmoid and right click in containment
areas that dont have an applet
Michail Vourlakos 585cb154b7 improve systray and make it part latte experience
--improve right click behavior for systray and make it
behave according to latte experience
Michail Vourlakos 03eb69a618 simplify appletItems discovery for right click
--the containment becomes independent from dockView.
The appletItems which are needed in order to show
the context menu correctly are discovered from dockView
without any need of functionality from containment
Michail Vourlakos fd40ef7f4d update locations when dock changes location
--updates the available locations in the configuration
window when any dock updates its location
Michail Vourlakos 2d2c7875e7 fix some qml warnings on dock removal
Johan Smith Agudelo Rodriguez 72bd7a0af8 fix , removing Dock crashes Latte
Johan Smith Agudelo Rodriguez 05163c2911 code cleaned
Michail Vourlakos af74c952ef fix two serious crashes from config window
--first is inside the freeEdges function call
on destruction
--the second is also in the app's destruction
because of the call to a destructed containment
through m_containment. This variable was deleted
Johan Smith Agudelo Rodriguez 6da8142351 disconnect all the signals in the destruction
Johan Smith Agudelo Rodriguez c42250d9bb avoid white spaces with astyle
Johan Smith Agudelo Rodriguez 2307efd4c4 clean up code
Michail Vourlakos 0f658a1e54 fix , add waiting dock views
--add m_waitingDockViews which are waiting
for removal confirmation. Using destroyedChanged
signal from containments in order to support
the behavior
--improve freeEdges code based on
the docksCount implementation
Michail Vourlakos d641ec0b33 fix #54,dock is shown when applet needs attention
Johan Smith Agudelo Rodriguez 4ea00588e9 timer unnecessary
Michail Vourlakos 25f901cdee fix two crashes
-- one private slot was missing, right clicking
was creating a crash because of this sometimes
-- removing a second or third created dock was
causing a crash because visibilitymanager wasnt
removed in sync and correctly from the dockview
Michail Vourlakos a74fe28c18 consider shadow size for currentThickness
--this solves an issue concerning configuration window
placement when changing locations
Johan Smith Agudelo Rodriguez f844f91ac2 unnecessary sync
Johan Smith Agudelo Rodriguez 5d59cfb01c better debug info
Johan Smith Agudelo Rodriguez dd7009e96e reduced number of calls to syncGeometry
Johan Smith Agudelo Rodriguez 2cb031ee50 improve auto sync geometry, and cleaning code unused
Michail Vourlakos c831f3f8c6 fix , set dock's geometry correctly
Michail Vourlakos dd091b6569 restore layouts in main config window
--the latest fix for the configuration window placement
does not need to drop the clean implementation with
layouts
Michail Vourlakos 1ffa4e9ab4 fix correct placement of config window in startup
Michail Vourlakos fba9d62ee2 fix , update config window location
--fix also some crashes concerning the existence
of multiple config windows from different docks.
Michail Vourlakos 8fa6225cdb fix , probably fixed
--opening configuration window all the time and
I havent found a case that this is not shown yet
Michail Vourlakos a857b18271 remove no needed functionality from dockview
Michail Vourlakos 9ea5959cb6 fix , a crash when a dock was removed
--removing connections on xwindowinterface destructor
--removing connections on dockview destructor
--remove xwindowinterface that was created from
visibilitymanager in its destructor
Michail Vourlakos 377a3d4420 remove visibilitymanager on dockview destruction
Michail Vourlakos cb0ed85dc2 improve configuration window
--expose quit action
--hide remove action when only one dock exists
--udpate edges when a new dock is added
--connect the destroyed event of containment in order
to remove also the dockview
--remove correctly the dockviews in the application
exit
Michail Vourlakos ba4837d47b restore compatibility with KF 5.26
Michail Vourlakos daa6e1b7bc add a separator for latte config entry
Michail Vourlakos f4201a8a71 improve menu behavior and appearance
Michail Vourlakos 83e0a7564a fix
--override default contextmenu behavior
--clean up old code
Michail Vourlakos 9259ee3bc3 remove no needed containment actions
Johan Smith Agudelo Rodriguez 47c715f6a7 dons't build, pluginmetadata is deprecated
Michail Vourlakos 9878ee65d1 fix some hiding issues on userConfiguring state
Johan Smith Agudelo Rodriguez fe146aaa90 Missing file licences
Michail Vourlakos f90c4deff2 hide Tasks config if plasmoid not present
Michail Vourlakos 4152535e51 expose dock settings into tasks plasmoid
Johan Smith Agudelo Rodriguez f49ab516a4 project has been cleaned
Johan Smith Agudelo Rodriguez 84eacf3cbf code formatted
Johan Smith Agudelo Rodriguez 7fc5aa55f6 files and class renamed