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/D5540
This commit is contained in:
parent
a039c2760f
commit
857d8a9c37
11 changed files with 38 additions and 7 deletions
|
@ -30,3 +30,9 @@ KSharedConfigPtr MockEffectsHandler::config() const
|
|||
static const KSharedConfigPtr s_config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig);
|
||||
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)}
|
||||
|
||||
KSharedConfigPtr config() const override;
|
||||
KSharedConfigPtr inputConfig() const override;
|
||||
|
||||
private:
|
||||
bool m_animationsSuported = true;
|
||||
|
|
|
@ -86,7 +86,7 @@ void Cursor::loadThemeSettings()
|
|||
|
||||
void Cursor::loadThemeFromKConfig()
|
||||
{
|
||||
KConfigGroup mousecfg(KSharedConfig::openConfig("kcminputrc", KConfig::NoGlobals), "Mouse");
|
||||
KConfigGroup mousecfg(kwinApp()->inputConfig(), "Mouse");
|
||||
const QString themeName = mousecfg.readEntry("cursorTheme", "default");
|
||||
bool ok = false;
|
||||
uint themeSize = mousecfg.readEntry("cursorSize", QString("24")).toUInt(&ok);
|
||||
|
|
|
@ -1626,6 +1626,11 @@ KSharedConfigPtr EffectsHandlerImpl::config() const
|
|||
return kwinApp()->config();
|
||||
}
|
||||
|
||||
KSharedConfigPtr EffectsHandlerImpl::inputConfig() const
|
||||
{
|
||||
return kwinApp()->inputConfig();
|
||||
}
|
||||
|
||||
//****************************************
|
||||
// EffectWindowImpl
|
||||
//****************************************
|
||||
|
|
|
@ -242,6 +242,7 @@ public:
|
|||
void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags()) override;
|
||||
|
||||
KSharedConfigPtr config() const override;
|
||||
KSharedConfigPtr inputConfig() const override;
|
||||
|
||||
Scene *scene() const {
|
||||
return m_scene;
|
||||
|
|
|
@ -283,7 +283,7 @@ void StartupFeedbackEffect::start(const QString& icon)
|
|||
prepareTextures(iconPixmap);
|
||||
auto readCursorSize = []() -> int {
|
||||
// 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());
|
||||
|
||||
// fetch a reasonable size for the cursor-theme image
|
||||
|
|
|
@ -1458,7 +1458,6 @@ InputRedirection::InputRedirection(QObject *parent)
|
|||
}
|
||||
);
|
||||
}
|
||||
m_inputConfig = KSharedConfig::openConfig(QStringLiteral("kcminputrc"));
|
||||
}
|
||||
#endif
|
||||
connect(kwinApp(), &Application::workspaceCreated, this, &InputRedirection::setupWorkspace);
|
||||
|
@ -1632,8 +1631,9 @@ void InputRedirection::reconfigure()
|
|||
{
|
||||
#if HAVE_INPUT
|
||||
if (Application::usesLibinput()) {
|
||||
m_inputConfig->reparseConfiguration();
|
||||
const auto config = m_inputConfig->group(QStringLiteral("keyboard"));
|
||||
auto inputConfig = kwinApp()->inputConfig();
|
||||
inputConfig->reparseConfiguration();
|
||||
const auto config = inputConfig->group(QStringLiteral("keyboard"));
|
||||
const int delay = config.readEntry("RepeatDelay", 660);
|
||||
const int rate = config.readEntry("RepeatRate", 25);
|
||||
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();
|
||||
}
|
||||
|
||||
conn->setInputConfig(m_inputConfig);
|
||||
conn->setInputConfig(kwinApp()->inputConfig());
|
||||
conn->updateLEDs(m_keyboard->xkb()->leds());
|
||||
conn->setup();
|
||||
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<InputEventSpy*> m_spies;
|
||||
KSharedConfigPtr m_inputConfig;
|
||||
|
||||
KWIN_SINGLETON(InputRedirection)
|
||||
friend InputRedirection *input();
|
||||
|
|
|
@ -1306,6 +1306,12 @@ public:
|
|||
**/
|
||||
virtual KSharedConfigPtr config() const = 0;
|
||||
|
||||
/**
|
||||
* @returns The global input configuration (kcminputrc)
|
||||
* @since 5.10
|
||||
**/
|
||||
virtual KSharedConfigPtr inputConfig() const = 0;
|
||||
|
||||
Q_SIGNALS:
|
||||
/**
|
||||
* 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_config()
|
||||
, m_kxkbConfig()
|
||||
, m_inputConfig()
|
||||
, m_operationMode(mode)
|
||||
{
|
||||
qRegisterMetaType<Options::WindowOperation>("Options::WindowOperation");
|
||||
|
@ -148,6 +149,9 @@ void Application::start()
|
|||
if (!m_kxkbConfig) {
|
||||
m_kxkbConfig = KSharedConfig::openConfig(QStringLiteral("kxkbrc"), KConfig::NoGlobals);
|
||||
}
|
||||
if (!m_inputConfig) {
|
||||
m_inputConfig = KSharedConfig::openConfig(QStringLiteral("kcminputrc"), KConfig::NoGlobals);
|
||||
}
|
||||
|
||||
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(KSharedConfigPtr config READ config WRITE setConfig)
|
||||
Q_PROPERTY(KSharedConfigPtr kxkbConfig READ kxkbConfig WRITE setKxkbConfig)
|
||||
Q_PROPERTY(KSharedConfigPtr inputConfig READ inputConfig WRITE setInputConfig)
|
||||
public:
|
||||
/**
|
||||
* @brief This enum provides the various operation modes of KWin depending on the available
|
||||
|
@ -96,6 +97,13 @@ public:
|
|||
m_kxkbConfig = config;
|
||||
}
|
||||
|
||||
KSharedConfigPtr inputConfig() const {
|
||||
return m_inputConfig;
|
||||
}
|
||||
void setInputConfig(KSharedConfigPtr config) {
|
||||
m_inputConfig = config;
|
||||
}
|
||||
|
||||
void start();
|
||||
/**
|
||||
* @brief The operation mode used by KWin.
|
||||
|
@ -232,6 +240,7 @@ private:
|
|||
bool m_configLock;
|
||||
KSharedConfigPtr m_config;
|
||||
KSharedConfigPtr m_kxkbConfig;
|
||||
KSharedConfigPtr m_inputConfig;
|
||||
OperationMode m_operationMode;
|
||||
xcb_timestamp_t m_x11Time = XCB_TIME_CURRENT_TIME;
|
||||
xcb_window_t m_rootWindow = XCB_WINDOW_NONE;
|
||||
|
|
Loading…
Reference in a new issue