KWin::Application holdes a KSharedConfigPtr with the config

This allows the integration tests to provide their own configuration
as they need it. Setting the configuration should be done before
invoking start()
master
Martin Gräßlin 9 years ago
parent 2636aad5c3
commit 1f7daa934d

@ -75,6 +75,7 @@ target_link_libraries( testXcbWrapper
Qt5::Test Qt5::Test
Qt5::X11Extras Qt5::X11Extras
Qt5::Widgets Qt5::Widgets
KF5::ConfigCore
KF5::WindowSystem KF5::WindowSystem
XCB::XCB XCB::XCB
) )
@ -86,6 +87,7 @@ if (XCB_ICCCM_FOUND)
target_link_libraries( testXcbSizeHints target_link_libraries( testXcbSizeHints
Qt5::Test Qt5::Test
Qt5::X11Extras Qt5::X11Extras
KF5::ConfigCore
KF5::WindowSystem KF5::WindowSystem
XCB::XCB XCB::XCB
XCB::ICCCM XCB::ICCCM
@ -106,6 +108,7 @@ target_link_libraries( testXcbWindow
Qt5::Test Qt5::Test
Qt5::X11Extras Qt5::X11Extras
Qt5::Widgets Qt5::Widgets
KF5::ConfigCore
KF5::WindowSystem KF5::WindowSystem
XCB::XCB XCB::XCB
) )

@ -150,6 +150,7 @@ Application::Application(Application::OperationMode mode, int &argc, char **argv
: QApplication(argc, argv) : QApplication(argc, argv)
, m_eventFilter(new XcbEventFilter()) , m_eventFilter(new XcbEventFilter())
, m_configLock(false) , m_configLock(false)
, m_config()
, m_operationMode(mode) , m_operationMode(mode)
{ {
qRegisterMetaType<Options::WindowOperation>("Options::WindowOperation"); qRegisterMetaType<Options::WindowOperation>("Options::WindowOperation");
@ -184,11 +185,13 @@ void Application::start()
{ {
setQuitOnLastWindowClosed(false); setQuitOnLastWindowClosed(false);
KSharedConfig::Ptr config = KSharedConfig::openConfig(); if (!m_config) {
if (!config->isImmutable() && m_configLock) { m_config = KSharedConfig::openConfig();
}
if (!m_config->isImmutable() && m_configLock) {
// TODO: This shouldn't be necessary // TODO: This shouldn't be necessary
//config->setReadOnly( true ); //config->setReadOnly( true );
config->reparseConfiguration(); m_config->reparseConfiguration();
} }
crashChecking(); crashChecking();

@ -27,6 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <KSelectionWatcher> #include <KSelectionWatcher>
#include <KSelectionOwner> #include <KSelectionOwner>
#include <KSharedConfig>
// Qt // Qt
#include <QApplication> #include <QApplication>
#include <QAbstractNativeEventFilter> #include <QAbstractNativeEventFilter>
@ -76,6 +77,13 @@ public:
void setConfigLock(bool lock); void setConfigLock(bool lock);
KSharedConfigPtr config() const {
return m_config;
}
void setConfig(KSharedConfigPtr config) {
m_config = config;
}
void start(); void start();
/** /**
* @brief The operation mode used by KWin. * @brief The operation mode used by KWin.
@ -209,6 +217,7 @@ private:
void crashChecking(); void crashChecking();
QScopedPointer<XcbEventFilter> m_eventFilter; QScopedPointer<XcbEventFilter> m_eventFilter;
bool m_configLock; bool m_configLock;
KSharedConfigPtr m_config;
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;

@ -21,6 +21,7 @@ target_link_libraries( testTabBoxClientModel
Qt5::Quick Qt5::Quick
Qt5::Test Qt5::Test
Qt5::X11Extras Qt5::X11Extras
KF5::ConfigCore
KF5::I18n KF5::I18n
KF5::Package KF5::Package
KF5::WindowSystem KF5::WindowSystem
@ -50,6 +51,7 @@ target_link_libraries( testTabBoxHandler
Qt5::Quick Qt5::Quick
Qt5::Test Qt5::Test
Qt5::X11Extras Qt5::X11Extras
KF5::ConfigCore
KF5::I18n KF5::I18n
KF5::Package KF5::Package
KF5::WindowSystem KF5::WindowSystem

@ -7,7 +7,7 @@ endif()
# next target # next target
set(screenedgeshowtest_SRCS screenedgeshowtest.cpp) set(screenedgeshowtest_SRCS screenedgeshowtest.cpp)
add_executable(screenedgeshowtest ${screenedgeshowtest_SRCS}) add_executable(screenedgeshowtest ${screenedgeshowtest_SRCS})
target_link_libraries(screenedgeshowtest Qt5::Widgets Qt5::X11Extras KF5::WindowSystem ${XCB_XCB_LIBRARY}) target_link_libraries(screenedgeshowtest Qt5::Widgets Qt5::X11Extras KF5::ConfigCore KF5::WindowSystem ${XCB_XCB_LIBRARY})
if (KF5Wayland_FOUND) if (KF5Wayland_FOUND)
add_definitions(-DSOURCE_DIR="${KWIN_SOURCE_DIR}") add_definitions(-DSOURCE_DIR="${KWIN_SOURCE_DIR}")

Loading…
Cancel
Save