Add a KSharedConfigPtr for kcminputrc to KWin::Application
Summary: There are a few places where KWin needs to read values from kcminputrc. As I need to add yet another one it makes more sense to properly structure it like in other cases and have only one kcminputrc hold in the application. This also allows to better mock the config values in the integration tests. Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D5540icc-effect-5.14.5
parent
a039c2760f
commit
857d8a9c37
|
@ -30,3 +30,9 @@ KSharedConfigPtr MockEffectsHandler::config() const
|
||||||
static const KSharedConfigPtr s_config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
static const KSharedConfigPtr s_config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
return s_config;
|
return s_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KSharedConfigPtr MockEffectsHandler::inputConfig() const
|
||||||
|
{
|
||||||
|
static const KSharedConfigPtr s_inputConfig = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||||
|
return s_inputConfig;
|
||||||
|
}
|
||||||
|
|
|
@ -261,6 +261,7 @@ public:
|
||||||
void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags()) override { Q_UNUSED(flags)}
|
void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags()) override { Q_UNUSED(flags)}
|
||||||
|
|
||||||
KSharedConfigPtr config() const override;
|
KSharedConfigPtr config() const override;
|
||||||
|
KSharedConfigPtr inputConfig() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_animationsSuported = true;
|
bool m_animationsSuported = true;
|
||||||
|
|
|
@ -86,7 +86,7 @@ void Cursor::loadThemeSettings()
|
||||||
|
|
||||||
void Cursor::loadThemeFromKConfig()
|
void Cursor::loadThemeFromKConfig()
|
||||||
{
|
{
|
||||||
KConfigGroup mousecfg(KSharedConfig::openConfig("kcminputrc", KConfig::NoGlobals), "Mouse");
|
KConfigGroup mousecfg(kwinApp()->inputConfig(), "Mouse");
|
||||||
const QString themeName = mousecfg.readEntry("cursorTheme", "default");
|
const QString themeName = mousecfg.readEntry("cursorTheme", "default");
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
uint themeSize = mousecfg.readEntry("cursorSize", QString("24")).toUInt(&ok);
|
uint themeSize = mousecfg.readEntry("cursorSize", QString("24")).toUInt(&ok);
|
||||||
|
|
|
@ -1626,6 +1626,11 @@ KSharedConfigPtr EffectsHandlerImpl::config() const
|
||||||
return kwinApp()->config();
|
return kwinApp()->config();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KSharedConfigPtr EffectsHandlerImpl::inputConfig() const
|
||||||
|
{
|
||||||
|
return kwinApp()->inputConfig();
|
||||||
|
}
|
||||||
|
|
||||||
//****************************************
|
//****************************************
|
||||||
// EffectWindowImpl
|
// EffectWindowImpl
|
||||||
//****************************************
|
//****************************************
|
||||||
|
|
|
@ -242,6 +242,7 @@ public:
|
||||||
void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags()) override;
|
void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags()) override;
|
||||||
|
|
||||||
KSharedConfigPtr config() const override;
|
KSharedConfigPtr config() const override;
|
||||||
|
KSharedConfigPtr inputConfig() const override;
|
||||||
|
|
||||||
Scene *scene() const {
|
Scene *scene() const {
|
||||||
return m_scene;
|
return m_scene;
|
||||||
|
|
|
@ -283,7 +283,7 @@ void StartupFeedbackEffect::start(const QString& icon)
|
||||||
prepareTextures(iconPixmap);
|
prepareTextures(iconPixmap);
|
||||||
auto readCursorSize = []() -> int {
|
auto readCursorSize = []() -> int {
|
||||||
// read details about the mouse-cursor theme define per default
|
// read details about the mouse-cursor theme define per default
|
||||||
KConfigGroup mousecfg(KSharedConfig::openConfig(QStringLiteral("kcminputrc")), "Mouse");
|
KConfigGroup mousecfg(effects->inputConfig(), "Mouse");
|
||||||
QString size = mousecfg.readEntry("cursorSize", QString());
|
QString size = mousecfg.readEntry("cursorSize", QString());
|
||||||
|
|
||||||
// fetch a reasonable size for the cursor-theme image
|
// fetch a reasonable size for the cursor-theme image
|
||||||
|
|
|
@ -1458,7 +1458,6 @@ InputRedirection::InputRedirection(QObject *parent)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
m_inputConfig = KSharedConfig::openConfig(QStringLiteral("kcminputrc"));
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
connect(kwinApp(), &Application::workspaceCreated, this, &InputRedirection::setupWorkspace);
|
connect(kwinApp(), &Application::workspaceCreated, this, &InputRedirection::setupWorkspace);
|
||||||
|
@ -1632,8 +1631,9 @@ void InputRedirection::reconfigure()
|
||||||
{
|
{
|
||||||
#if HAVE_INPUT
|
#if HAVE_INPUT
|
||||||
if (Application::usesLibinput()) {
|
if (Application::usesLibinput()) {
|
||||||
m_inputConfig->reparseConfiguration();
|
auto inputConfig = kwinApp()->inputConfig();
|
||||||
const auto config = m_inputConfig->group(QStringLiteral("keyboard"));
|
inputConfig->reparseConfiguration();
|
||||||
|
const auto config = inputConfig->group(QStringLiteral("keyboard"));
|
||||||
const int delay = config.readEntry("RepeatDelay", 660);
|
const int delay = config.readEntry("RepeatDelay", 660);
|
||||||
const int rate = config.readEntry("RepeatRate", 25);
|
const int rate = config.readEntry("RepeatRate", 25);
|
||||||
const bool enabled = config.readEntry("KeyboardRepeating", 0) == 0;
|
const bool enabled = config.readEntry("KeyboardRepeating", 0) == 0;
|
||||||
|
@ -1670,7 +1670,7 @@ void InputRedirection::setupLibInput()
|
||||||
waylandServer()->display()->createRelativePointerManager(KWayland::Server::RelativePointerInterfaceVersion::UnstableV1, waylandServer()->display())->create();
|
waylandServer()->display()->createRelativePointerManager(KWayland::Server::RelativePointerInterfaceVersion::UnstableV1, waylandServer()->display())->create();
|
||||||
}
|
}
|
||||||
|
|
||||||
conn->setInputConfig(m_inputConfig);
|
conn->setInputConfig(kwinApp()->inputConfig());
|
||||||
conn->updateLEDs(m_keyboard->xkb()->leds());
|
conn->updateLEDs(m_keyboard->xkb()->leds());
|
||||||
conn->setup();
|
conn->setup();
|
||||||
connect(m_keyboard, &KeyboardInputRedirection::ledsChanged, conn, &LibInput::Connection::updateLEDs);
|
connect(m_keyboard, &KeyboardInputRedirection::ledsChanged, conn, &LibInput::Connection::updateLEDs);
|
||||||
|
|
1
input.h
1
input.h
|
@ -285,7 +285,6 @@ private:
|
||||||
|
|
||||||
QVector<InputEventFilter*> m_filters;
|
QVector<InputEventFilter*> m_filters;
|
||||||
QVector<InputEventSpy*> m_spies;
|
QVector<InputEventSpy*> m_spies;
|
||||||
KSharedConfigPtr m_inputConfig;
|
|
||||||
|
|
||||||
KWIN_SINGLETON(InputRedirection)
|
KWIN_SINGLETON(InputRedirection)
|
||||||
friend InputRedirection *input();
|
friend InputRedirection *input();
|
||||||
|
|
|
@ -1306,6 +1306,12 @@ public:
|
||||||
**/
|
**/
|
||||||
virtual KSharedConfigPtr config() const = 0;
|
virtual KSharedConfigPtr config() const = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns The global input configuration (kcminputrc)
|
||||||
|
* @since 5.10
|
||||||
|
**/
|
||||||
|
virtual KSharedConfigPtr inputConfig() const = 0;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
/**
|
/**
|
||||||
* Signal emitted when the current desktop changed.
|
* Signal emitted when the current desktop changed.
|
||||||
|
|
4
main.cpp
4
main.cpp
|
@ -105,6 +105,7 @@ Application::Application(Application::OperationMode mode, int &argc, char **argv
|
||||||
, m_configLock(false)
|
, m_configLock(false)
|
||||||
, m_config()
|
, m_config()
|
||||||
, m_kxkbConfig()
|
, m_kxkbConfig()
|
||||||
|
, m_inputConfig()
|
||||||
, m_operationMode(mode)
|
, m_operationMode(mode)
|
||||||
{
|
{
|
||||||
qRegisterMetaType<Options::WindowOperation>("Options::WindowOperation");
|
qRegisterMetaType<Options::WindowOperation>("Options::WindowOperation");
|
||||||
|
@ -148,6 +149,9 @@ void Application::start()
|
||||||
if (!m_kxkbConfig) {
|
if (!m_kxkbConfig) {
|
||||||
m_kxkbConfig = KSharedConfig::openConfig(QStringLiteral("kxkbrc"), KConfig::NoGlobals);
|
m_kxkbConfig = KSharedConfig::openConfig(QStringLiteral("kxkbrc"), KConfig::NoGlobals);
|
||||||
}
|
}
|
||||||
|
if (!m_inputConfig) {
|
||||||
|
m_inputConfig = KSharedConfig::openConfig(QStringLiteral("kcminputrc"), KConfig::NoGlobals);
|
||||||
|
}
|
||||||
|
|
||||||
performStartup();
|
performStartup();
|
||||||
}
|
}
|
||||||
|
|
9
main.h
9
main.h
|
@ -56,6 +56,7 @@ class KWIN_EXPORT Application : public QApplication
|
||||||
Q_PROPERTY(int x11ScreenNumber READ x11ScreenNumber CONSTANT)
|
Q_PROPERTY(int x11ScreenNumber READ x11ScreenNumber CONSTANT)
|
||||||
Q_PROPERTY(KSharedConfigPtr config READ config WRITE setConfig)
|
Q_PROPERTY(KSharedConfigPtr config READ config WRITE setConfig)
|
||||||
Q_PROPERTY(KSharedConfigPtr kxkbConfig READ kxkbConfig WRITE setKxkbConfig)
|
Q_PROPERTY(KSharedConfigPtr kxkbConfig READ kxkbConfig WRITE setKxkbConfig)
|
||||||
|
Q_PROPERTY(KSharedConfigPtr inputConfig READ inputConfig WRITE setInputConfig)
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief This enum provides the various operation modes of KWin depending on the available
|
* @brief This enum provides the various operation modes of KWin depending on the available
|
||||||
|
@ -96,6 +97,13 @@ public:
|
||||||
m_kxkbConfig = config;
|
m_kxkbConfig = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KSharedConfigPtr inputConfig() const {
|
||||||
|
return m_inputConfig;
|
||||||
|
}
|
||||||
|
void setInputConfig(KSharedConfigPtr config) {
|
||||||
|
m_inputConfig = config;
|
||||||
|
}
|
||||||
|
|
||||||
void start();
|
void start();
|
||||||
/**
|
/**
|
||||||
* @brief The operation mode used by KWin.
|
* @brief The operation mode used by KWin.
|
||||||
|
@ -232,6 +240,7 @@ private:
|
||||||
bool m_configLock;
|
bool m_configLock;
|
||||||
KSharedConfigPtr m_config;
|
KSharedConfigPtr m_config;
|
||||||
KSharedConfigPtr m_kxkbConfig;
|
KSharedConfigPtr m_kxkbConfig;
|
||||||
|
KSharedConfigPtr m_inputConfig;
|
||||||
OperationMode m_operationMode;
|
OperationMode m_operationMode;
|
||||||
xcb_timestamp_t m_x11Time = XCB_TIME_CURRENT_TIME;
|
xcb_timestamp_t m_x11Time = XCB_TIME_CURRENT_TIME;
|
||||||
xcb_window_t m_rootWindow = XCB_WINDOW_NONE;
|
xcb_window_t m_rootWindow = XCB_WINDOW_NONE;
|
||||||
|
|
Loading…
Reference in New Issue