Commit Graph

67 Commits (6750f02d6f287eb1bf05009b4fd86edf8965fde4)

Author SHA1 Message Date
Michail Vourlakos c7bb46b217 introduce new MultipleLayouts mechanism
--the new approach does not load/unload layouts
during startup/exit. When the user loads layouts
in multiple layouts mode the layouts are inserted
and when exit they still remain in the hidden
multiple layouts file. These layouts present in the
multiple layouts file from now are called preloaded
layouts.
--the new approach fixes also the wayland exit
issue and in general the message for Latte not
closed properly has been totally dropped.

BUG:448702
BUG:446205
3 years ago
Michail Vourlakos 60095bba3b fix #96,FEATURE:AllScreens and AllSecondaryScreens
--This is a HUGE FEATURE and so important for multi-screens
users. It is introduced as one single commit because it
reimplements plenty of infrastructure changes and it will
be easier to identify newly introduced bugs.
--Users can now choose for their docks and panels to belong
at various screen groups. The first two screen groups introduced
are AllScreens and AllSecondayScreens. In the future it might
be possible to provide CustomScreensGroup that the user will
be able to define specific screens in which a dock or panel
should be always present.
--Current solution specifies an Original dock or panel and clones/copies
itself automatically to other screens. So docks and panels in other screens
are just real docks and panels that reference themselves to original
docks and panels.
--Clones are destroyed during layout startup and are automaticaly
recreated. It is suggested to export your layouts through the
official Layouts Editor in order to share them because in that case
clones are not included in the new generated layout file. If in any
case you do not this and you share your layout with any previous
versions then your clones will just appear as separate docks and
panels that belong to specific screens.
--Automatic syncing was introduced in order to keep up-to-date
the configuration of Original docks and panels with their referenced
Clones.
--Automatic syncing currently works for all docks and panels settings,
for all normal applets configurations and for all subcontaiments
configuration such as systrays.
--Automatic syncing does not work for applets inside subcontainments
such as Group Plasmoid. In such case it is suggested to configure
your applets inside your Group Plasmoid in the original dock or panel
and afterwards to trigger a recreation for the relevant clones
--Manual recreation of clones is easily possible by just choosing
the dock or panel to be OnPrimary or OnSpecificScreen and rechoosing
afterwards the AllScreensGroup or AllSecondaryScreensGroup
3 years ago
Michail Vourlakos 24fc1e8709 singlelayout:fix borderless activation/deactivation 3 years ago
Michail Vourlakos bce0d74e5f multiple:do not update borderless when no needed
--when activating activities under multiple layouts
the currentActivityChanged() signal is sent from
KActivities before the runningActivitiesChanged() and
as such we can end in considering borderless maximized
window flag before all appropriate layouts have been enabled.
The patch adds a timer and delays borderlessMaximized consideration
when currentActivityChanged signal is received.
3 years ago
Michail Vourlakos e88aaf27a9 cmd:support "add-dock" through command line
-- "add-dock" option now works even when application
is not running and the user is executing it through
command line.

BUG: 446526
FIXED-IN: 0.10.5
3 years ago
Michail Vourlakos 27062087ea startup:avoid kwin reconfiguring with no reason
--during startup borderless maximized windows should not be
enabled or not as long as kwin has already been configured
in the proper way. This way we make Latte startup lighter
because KWin is not reconfiguring when not needed.
3 years ago
Michail Vourlakos f7032f7f19 crash:dont show settings dialog in early startup
--showing settings dialog too early before layout(s)
are loaded can possible create crashes. Settings dialog
is considering that everything is in place and ready
to be used.

BUG:440731
4 years ago
Michail Vourlakos c3c2c8a7f1 wayland:request all windows properties properly 4 years ago
Michail Vourlakos 7eff55b793 wayland:multiple layouts load properly on activities 4 years ago
Alexander Lohnau 505379ed04 Use spdx syntax for all files 4 years ago
Michail Vourlakos 21b187b94c sort layouts in context menu based on their names 4 years ago
Ömer Fadıl Usta e8cc5603ac Portaway from obsolete qsort
qstringlist's own sort method uses std::sort
void QtPrivate::QStringList_sort(QStringList *that, Qt::CaseSensitivity cs)
{
    if (cs == Qt::CaseSensitive)
        std::sort(that->begin(), that->end());
    else
        std::sort(that->begin(), that->end(), CaseInsensitiveLessThan());
}
4 years ago
Michail Vourlakos 8e9de84e01 contextmenu:expose layouts icon data 4 years ago
Michail Vourlakos bc475da115 fixes for plural translation strings 4 years ago
Michail Vourlakos 321a6ba512 protect from plural translations crashes 4 years ago
Michail Vourlakos ce62b31901 drop .arg() from translation strings 4 years ago
Michail Vourlakos 27d9f209ea layout:drop isBroken in favor of errors/warnings 4 years ago
Michail Vourlakos 050b454b5a support screen changes for offline containments 4 years ago
Michail Vourlakos 230738f4ae disable KWin::reconfigure under wayland
--as long as KWin is not able to be reconfigured under
wayland without issues this codepath is blocked
4 years ago
Michail Vourlakos 22fa4c8fc8 rename property single active layout
--renaming active layout in single mode is a little
tricky in order to not leave any deprecated data behind.
Successful steps would be:
1. unload current single layout
2. load new single layout for the new file
3. remove deprecated layout file after new file loaded correctly
4 years ago
Michail Vourlakos 3a5acf9383 layouts:fix crash when switching memoryusage type 4 years ago
Michail Vourlakos 302c6a9cc2 update pause layout in multiple layouts environment
--the new approach takes into account only the layout
appliedactivities and accepts also FreeActivities as
valid to be paused
5 years ago
Michail Vourlakos 7c542e6246 update layouts activities when activity is removed 5 years ago
Michail Vourlakos a02056b4c8 ignore activities that are not currently present 5 years ago
Michail Vourlakos e4714d748f dont load freeactivities layouts if no frees 5 years ago
Michail Vourlakos 8448f36ed9 check layout valid activities 5 years ago
Michail Vourlakos 567e3ab78f initmultiple:update activities for specific layout 5 years ago
Michail Vourlakos a83d26a35b multiple:make switch funtion work properly
--when the user requests a specific layout in Multiple
Layout mode the new approach is the following. If
the layout has assigned activities this is respected
but if its activities are empty that layout is assigned
only on the current activity and any other layouts assigned
explicitly to that activity are released
5 years ago
Michail Vourlakos eb627dd070 multiple mode:animate properly layouts unloading 5 years ago
Michail Vourlakos 41c2e2b033 refactor:improve Synchronizer:swithToLayout
--the new approach is much clearer and easy to
read that the deprecated one
5 years ago
Michail Vourlakos d8f1f7e4b9 refactor:settings layouts controller
--the controller does not need to host its own
CentralLayouts any more. It retrieves original
data for Synchronizer, updates layouts accordingly
and sends back to Synchronizer all the updated
layouts data
5 years ago
Michail Vourlakos d5e83280d2 refactor:simplify layout data access 5 years ago
Michail Vourlakos 13708ddf4a support singleModeLayoutName property in settings
--single mode has now its own unique property to hold
the layout to be used in single mode
5 years ago
Michail Vourlakos bc87d53e83 updates for layouts model single mode 5 years ago
Michail Vourlakos 7393ac02eb drop currentLayoutName as signal from synchronizer 5 years ago
Michail Vourlakos a9774ff13f update Switch button in Layouts table 5 years ago
Michail Vourlakos 0ee31eead6 update kwin disabled borders infrastructure 5 years ago
Michail Vourlakos 3689cc406d retrieve available screen space through activityid 5 years ago
Michail Vourlakos 9026f931fd fixes for corona available areas calcs 5 years ago
Michail Vourlakos 951668fff9 single informative window for activating layouts 5 years ago
Michail Vourlakos 2e120f9446 make Multiple mode work correctly 5 years ago
Michail Vourlakos caf9bf7b78 REFACTOR:Drop Shared Layouts infrastructure
--Move in a simpler layouts approach.
--Single Layout mode loads ONLY ONE Layout for ALL Activities
--Multiple Layouts mode loads any combination of Layouts based
on the following settings:
  -- OnAllActivities
  -- ForFreeActivities
  -- SpecificActivities
5 years ago
Michail Vourlakos 7a3d68ed61 sort layouts based on their names
--when layouts are presented to the user it is preferred
to be perfectly sorted based on their names
5 years ago
Michail Vourlakos 7c238589ba improve name style and layouts path references
--use Importer in order to reference layouts directory
in user space and improve also naming for relevant
Importer functions
5 years ago
Michail Vourlakos 5ed3f111e3 update Layout::MULTIPLELAYOUTSHIDDENNAME
which is used to identify multiple layouts hidden
base layout
5 years ago
Michail Vourlakos ba178e534d add missing signals when adding new layout 5 years ago
Michail Vourlakos 50c419d4e4 upgrade importDefaultLayout codepaths
--use Templates::Manger in order to import
default layout on startup
5 years ago
Michail Vourlakos 15dc6f5eac move newLayout from layoutsmanager to templates 5 years ago
Michail Vourlakos 9092e54fc0 enable Multiple Layouts mode in wayland
--enable multiple layouts mode partially and
try to provide at least one central layout
combined with a shared layout
5 years ago
Michail Vourlakos dec2860d5f synchronizer:improve freeactivities layout semantic 5 years ago