chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
Kirigami: remove stub .cpp, add Qt platform integration headers for QML gate. Matches KDE src/pattern for direct header-only builds. Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs). Kernel: consolidate patch chain, add debug-scheme-serial-fix. Docs: archive old audit reports, add CHANGELOG and hardware validation matrix. Update AGENTS.md with Linux reference source policy. Scripts: add test-network-qemu.sh, test-storage-qemu.sh. .gitignore: add local/reference/ exclusion.
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2018 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef KIRIGAMI_TABLETMODEWATCHER_H
|
||||
#define KIRIGAMI_TABLETMODEWATCHER_H
|
||||
|
||||
#include <QEvent>
|
||||
#include <QObject>
|
||||
|
||||
#include "kirigamiplatform_export.h"
|
||||
|
||||
namespace Kirigami
|
||||
{
|
||||
namespace Platform
|
||||
{
|
||||
class TabletModeWatcherPrivate;
|
||||
|
||||
class KIRIGAMIPLATFORM_EXPORT TabletModeChangedEvent : public QEvent
|
||||
{
|
||||
public:
|
||||
TabletModeChangedEvent(bool tablet)
|
||||
: QEvent(TabletModeChangedEvent::type)
|
||||
, tabletMode(tablet)
|
||||
{
|
||||
}
|
||||
|
||||
bool tabletMode = false;
|
||||
|
||||
inline static QEvent::Type type = QEvent::None;
|
||||
};
|
||||
|
||||
/**
|
||||
* @class TabletModeWatcher tabletmodewatcher.h <Kirigami/TabletModeWatcher>
|
||||
*
|
||||
* This class reports on the status of certain transformable
|
||||
* devices which can be both tablets and laptops at the same time,
|
||||
* with a detachable keyboard.
|
||||
* It reports whether the device supports a tablet mode and if
|
||||
* the device is currently in such mode or not, emitting a signal
|
||||
* when the user switches.
|
||||
*/
|
||||
class KIRIGAMIPLATFORM_EXPORT TabletModeWatcher : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(bool tabletModeAvailable READ isTabletModeAvailable NOTIFY tabletModeAvailableChanged FINAL)
|
||||
Q_PROPERTY(bool tabletMode READ isTabletMode NOTIFY tabletModeChanged FINAL)
|
||||
|
||||
public:
|
||||
~TabletModeWatcher() override;
|
||||
static TabletModeWatcher *self();
|
||||
|
||||
/**
|
||||
* @returns true if the device supports a tablet mode and has a switch
|
||||
* to report when the device has been transformed.
|
||||
* For debug purposes, if either the environment variable QT_QUICK_CONTROLS_MOBILE
|
||||
* or KDE_KIRIGAMI_TABLET_MODE are set to true, isTabletModeAvailable will be true
|
||||
*/
|
||||
bool isTabletModeAvailable() const;
|
||||
|
||||
/**
|
||||
* @returns true if the machine is now in tablet mode, such as the
|
||||
* laptop keyboard flipped away or detached.
|
||||
* Note that this doesn't mean exactly a tablet form factor, but
|
||||
* that the preferred input mode for the device is the touch screen
|
||||
* and that pointer and keyboard are either secondary or not available.
|
||||
*
|
||||
* For debug purposes, if either the environment variable QT_QUICK_CONTROLS_MOBILE
|
||||
* or KDE_KIRIGAMI_TABLET_MODE are set to true, isTabletMode will be true
|
||||
*/
|
||||
bool isTabletMode() const;
|
||||
|
||||
/**
|
||||
* Register an arbitrary QObject to send events from this.
|
||||
* At the moment only one event will be sent: TabletModeChangedEvent
|
||||
*/
|
||||
void addWatcher(QObject *watcher);
|
||||
|
||||
/*
|
||||
* Unsubscribe watcher from receiving events from TabletModeWatcher.
|
||||
*/
|
||||
void removeWatcher(QObject *watcher);
|
||||
|
||||
Q_SIGNALS:
|
||||
void tabletModeAvailableChanged(bool tabletModeAvailable);
|
||||
void tabletModeChanged(bool tabletMode);
|
||||
|
||||
private:
|
||||
KIRIGAMIPLATFORM_NO_EXPORT explicit TabletModeWatcher(QObject *parent = nullptr);
|
||||
TabletModeWatcherPrivate *d;
|
||||
friend class TabletModeWatcherSingleton;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // KIRIGAMI_TABLETMODEWATCHER
|
||||
Reference in New Issue
Block a user