Tasks:introduce Tasks.Dialog
--this is just a subclass of PlasmaQuick::Dialog that provides "containsMouse" propertypull/15/head
parent
3018bd0fff
commit
00127f28c0
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2020 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/>.
|
||||
*/
|
||||
|
||||
#include "dialog.h"
|
||||
|
||||
|
||||
namespace Latte {
|
||||
namespace Quick {
|
||||
|
||||
Dialog::Dialog(QQuickItem *parent)
|
||||
: PlasmaQuick::Dialog(parent)
|
||||
{
|
||||
}
|
||||
|
||||
bool Dialog::containsMouse() const
|
||||
{
|
||||
return m_containsMouse;
|
||||
}
|
||||
|
||||
void Dialog::setContainsMouse(bool contains)
|
||||
{
|
||||
if (m_containsMouse == contains) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_containsMouse = contains;
|
||||
emit containsMouseChanged();
|
||||
}
|
||||
|
||||
bool Dialog::event(QEvent *e)
|
||||
{
|
||||
if (e->type() == QEvent::Enter) {
|
||||
setContainsMouse(true);
|
||||
} else if (e->type() == QEvent::Leave) {
|
||||
setContainsMouse(false);
|
||||
}
|
||||
|
||||
return PlasmaQuick::Dialog::event(e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright 2020 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 LATTEDIALOG_H
|
||||
#define LATTEDIALOG_H
|
||||
|
||||
// Qt
|
||||
#include <QEvent>
|
||||
#include <QObject>
|
||||
|
||||
// Plasma
|
||||
#include <PlasmaQuick/Dialog>
|
||||
|
||||
namespace Latte {
|
||||
namespace Quick {
|
||||
|
||||
class Dialog : public PlasmaQuick::Dialog {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY (bool containsMouse READ containsMouse NOTIFY containsMouseChanged)
|
||||
|
||||
public:
|
||||
explicit Dialog(QQuickItem *parent = nullptr);
|
||||
|
||||
bool containsMouse() const;
|
||||
|
||||
signals:
|
||||
void containsMouseChanged();
|
||||
|
||||
protected:
|
||||
bool event(QEvent *e) override;
|
||||
|
||||
private slots:
|
||||
void setContainsMouse(bool contains);
|
||||
|
||||
private:
|
||||
bool m_containsMouse{false};
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue