2017-07-31 03:53:39 +03:00
/*
* Copyright 2017 Smith AR < audoban @ openmailbox . org >
* Michail Vourlakos < mvourlakos @ gmail . com >
*
* This file is part of Latte - Dock
*
* Latte - Dock is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation ; either version 2 of
* the License , or ( at your option ) any later version .
*
* Latte - Dock is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef LAUNCHERSSIGNALS_H
# define LAUNCHERSSIGNALS_H
2018-12-02 02:05:52 +02:00
// local
2018-12-07 18:55:35 +02:00
# include "../liblatte2/types.h"
2017-07-31 03:53:39 +03:00
2018-12-02 02:05:52 +02:00
// Qt
2017-07-31 03:53:39 +03:00
# include <QObject>
2018-02-03 13:10:43 +02:00
namespace Plasma {
class Applet ;
}
namespace Latte {
2019-05-09 17:12:57 +03:00
namespace Layouts {
class Manager ;
}
2018-02-03 13:10:43 +02:00
}
2017-07-31 03:53:39 +03:00
namespace Latte {
2019-05-09 17:40:53 +03:00
namespace Layouts {
2017-07-31 03:53:39 +03:00
//! in order to support property the launcher groups Layout and Global
//! the latte plasmoids must communicate between them with signals when
//! there are changes in their models. This way we are trying to avoid
//! crashes that occur by setting the launcherList of the tasksModel so
//! often. The plasma devs of libtaskmanager have designed the launchers
//! model to be initialized only once during startup
2018-07-03 22:15:45 +03:00
class LaunchersSignals : public QObject
{
2017-07-31 03:53:39 +03:00
Q_OBJECT
public :
LaunchersSignals ( QObject * parent ) ;
~ LaunchersSignals ( ) override ;
public slots :
2018-01-21 20:17:58 +02:00
Q_INVOKABLE void addLauncher ( QString layoutName , int launcherGroup , QString launcher ) ;
Q_INVOKABLE void removeLauncher ( QString layoutName , int launcherGroup , QString launcher ) ;
Q_INVOKABLE void addLauncherToActivity ( QString layoutName , int launcherGroup , QString launcher , QString activity ) ;
Q_INVOKABLE void removeLauncherFromActivity ( QString layoutName , int launcherGroup , QString launcher , QString activity ) ;
Q_INVOKABLE void urlsDropped ( QString layoutName , int launcherGroup , QStringList urls ) ;
2018-11-20 22:10:05 +02:00
//!Deprecated because it could create crashes, validateLaunchersOrder provides a better approach
2018-01-21 20:17:58 +02:00
Q_INVOKABLE void moveTask ( QString layoutName , int senderId , int launcherGroup , int from , int to ) ;
2018-11-20 22:10:05 +02:00
Q_INVOKABLE void validateLaunchersOrder ( QString layoutName , int senderId , int launcherGroup , QStringList launchers ) ;
2017-07-31 03:53:39 +03:00
private :
2018-01-21 20:17:58 +02:00
QList < Plasma : : Applet * > lattePlasmoids ( QString layoutName ) ;
2017-07-31 03:53:39 +03:00
private :
2019-05-09 17:12:57 +03:00
Layouts : : Manager * m_manager { nullptr } ;
2017-07-31 03:53:39 +03:00
} ;
2019-05-09 17:40:53 +03:00
}
2017-07-31 03:53:39 +03:00
}
# endif