commit libkscreen for openSUSE:Factory
Hello community, here is the log from the commit of package libkscreen for openSUSE:Factory checked in at 2014-05-05 21:12:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkscreen (Old) and /work/SRC/openSUSE:Factory/.libkscreen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libkscreen" Changes: -------- --- /work/SRC/openSUSE:Factory/libkscreen/libkscreen.changes 2014-05-02 13:59:07.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libkscreen.new/libkscreen.changes 2014-05-05 21:12:20.000000000 +0200 @@ -1,0 +2,6 @@ +Sun May 4 19:20:47 UTC 2014 - hrvoje.senjan@gmail.com + +- Update to version 1.0.3: + * Bugfix release, no changelog provided + +------------------------------------------------------------------- Old: ---- libkscreen-1.0.2.tar.xz New: ---- libkscreen-1.0.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkscreen.spec ++++++ --- /var/tmp/diff_new_pack.Orum7g/_old 2014-05-05 21:12:21.000000000 +0200 +++ /var/tmp/diff_new_pack.Orum7g/_new 2014-05-05 21:12:21.000000000 +0200 @@ -19,7 +19,7 @@ # %define soversion 1 Name: libkscreen -Version: 1.0.2 +Version: 1.0.3 Release: 0 Summary: KDE's screen management library License: GPL-2.0+ ++++++ libkscreen-1.0.2.tar.xz -> libkscreen-1.0.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/fake/parser.cpp new/libkscreen-1.0.3/backends/fake/parser.cpp --- old/libkscreen-1.0.2/backends/fake/parser.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/fake/parser.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -69,6 +69,7 @@ screen->setMinSize(Parser::sizeFromJson(data["minSize"].toMap())); screen->setMaxSize(Parser::sizeFromJson(data["maxSize"].toMap())); screen->setCurrentSize(Parser::sizeFromJson(data["currentSize"].toMap())); + screen->setMaxActiveOutputsCount(data["maxActiveOutputsCount"].toInt()); return screen; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr/xrandr.cpp new/libkscreen-1.0.3/backends/xrandr/xrandr.cpp --- old/libkscreen-1.0.2/backends/xrandr/xrandr.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr/xrandr.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -122,6 +122,9 @@ } else { RROutput primary = XRRGetOutputPrimary(XRandR::display(), XRandR::rootWindow()); xOutput->update((output == primary) ? XRandROutput::SetPrimary : XRandROutput::UnsetPrimary); + if (output == primary) { + s_internalConfig->m_primaryOutput = output; + } } KScreen::ConfigMonitor::instance()->notifyUpdate(); @@ -224,7 +227,7 @@ return result; } else { len = 0; - delete result; + delete[] result; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr/xrandrconfig.cpp new/libkscreen-1.0.3/backends/xrandr/xrandrconfig.cpp --- old/libkscreen-1.0.2/backends/xrandr/xrandrconfig.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr/xrandrconfig.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -35,6 +35,7 @@ XRandRConfig::XRandRConfig() : QObject() + , m_primaryOutput(-1) , m_screen(new XRandRScreen(this)) { XRRScreenResources* resources = XRandR::screenResources(); @@ -49,6 +50,9 @@ XRandROutput *output = createNewOutput(id, (id == primary)); m_outputs.insert(id, output); + if (id == primary) { + m_primaryOutput = output->id(); + } } XRRFreeScreenResources(resources); @@ -64,10 +68,14 @@ RROutput primary = XRRGetOutputPrimary(XRandR::display(), XRandR::rootWindow()); + m_primaryOutput = -1; XRandROutput::Map::Iterator iter; for (iter = m_outputs.begin(); iter != m_outputs.end(); ++iter) { XRandROutput *output = iter.value(); output->update((iter.key() == (int) primary) ? XRandROutput::SetPrimary : XRandROutput::UnsetPrimary); + if (iter.key() == (int) primary) { + m_primaryOutput = output->id(); + } } } @@ -82,11 +90,14 @@ primary = XRRGetOutputPrimary(XRandR::display(), XRandR::rootWindow()); XRandROutput *output = createNewOutput(id, (id == primary)); m_outputs.insert(id, output); + if (id == primary) { + m_primaryOutput = id; + } } XRandROutput* XRandRConfig::createNewOutput(RROutput id, bool primary) { - XRandROutput *xOutput = new XRandROutput(id, (id == primary), this); + XRandROutput *xOutput = new XRandROutput(id, primary, this); connect(xOutput, SIGNAL(outputRemoved(int)), SLOT(outputRemovedSlot(int))); return xOutput; @@ -114,6 +125,9 @@ config->setOutputs(kscreenOutputs); config->setScreen(m_screen->toKScreenScreen(config)); + if (m_primaryOutput != -1 && config->primaryOutput()->id() != m_primaryOutput) { + config->setPrimaryOutput(kscreenOutputs.value(m_primaryOutput)); + } return config; } @@ -142,6 +156,10 @@ } output->updateKScreenOutput(kscreenOutput); } + + if (config->primaryOutput()->id() != m_primaryOutput) { + config->setPrimaryOutput(config->output(m_primaryOutput)); + } } void XRandRConfig::applyKScreenConfig(KScreen::Config *config) @@ -507,6 +525,12 @@ 0, 0, None, RR_Rotate_0, NULL, 0); kDebug(dXndr()) << "XRRSetCrtcConfig() returned" << s; + + // Update the cached output now, otherwise we get RRNotify_CrtcChange notification + // for an outdated output, which can lead to a crash. + if (s == RRSetConfigSuccess) { + m_outputs.value(output->id())->update(); + } return (s == RRSetConfigSuccess); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr/xrandrconfig.h new/libkscreen-1.0.3/backends/xrandr/xrandrconfig.h --- old/libkscreen-1.0.2/backends/xrandr/xrandrconfig.h 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr/xrandrconfig.h 2014-05-04 19:25:33.000000000 +0200 @@ -46,6 +46,7 @@ void updateKScreenConfig(KScreen::Config *config) const; void applyKScreenConfig(KScreen::Config *config); + int m_primaryOutput; private: /** * We need to print stuff to discover the damn bug diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr/xrandroutput.cpp new/libkscreen-1.0.3/backends/xrandr/xrandroutput.cpp --- old/libkscreen-1.0.2/backends/xrandr/xrandroutput.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr/xrandroutput.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -116,7 +116,7 @@ quint8 *data = XRandR::outputEdid(m_id, len); if (data) { m_edid = new KScreen::Edid(data, len, 0); - delete data; + delete[] data; } else { m_edid = new KScreen::Edid(0, 0, 0); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr/xrandrscreen.cpp new/libkscreen-1.0.3/backends/xrandr/xrandrscreen.cpp --- old/libkscreen-1.0.2/backends/xrandr/xrandrscreen.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr/xrandrscreen.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -60,6 +60,7 @@ kscreenScreen->setMaxSize(m_maxSize); kscreenScreen->setMinSize(m_minSize); kscreenScreen->setCurrentSize(m_currentSize); + kscreenScreen->setMaxActiveOutputsCount(XRandR::screenResources()->ncrtc); return kscreenScreen; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/backends/xrandr1.1/xrandr11.cpp new/libkscreen-1.0.3/backends/xrandr1.1/xrandr11.cpp --- old/libkscreen-1.0.2/backends/xrandr1.1/xrandr11.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/backends/xrandr1.1/xrandr11.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -38,7 +38,7 @@ XRandR11::XRandR11(QObject* parent) : QObject(parent) , m_valid(false) - , m_x11Helper(new XRandRX11Helper()) + , m_x11Helper(0) , m_currentConfig(0) , m_currentTimestamp(0) { @@ -56,6 +56,8 @@ return; } + m_x11Helper = new XRandRX11Helper(); + connect(m_x11Helper, SIGNAL(outputsChanged()), SLOT(updateConfig())); m_valid = true; @@ -95,6 +97,7 @@ screen->setCurrentSize(QSize(xcbScreen->width_in_pixels, xcbScreen->height_in_pixels)); screen->setMaxSize(QSize(size->max_width, size->max_height)); screen->setMinSize(QSize(size->min_width, size->min_height)); + screen->setMaxActiveOutputsCount(1); config->setScreen(screen); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/CMakeLists.txt new/libkscreen-1.0.3/src/CMakeLists.txt --- old/libkscreen-1.0.2/src/CMakeLists.txt 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/CMakeLists.txt 2014-05-04 19:25:33.000000000 +0200 @@ -30,7 +30,7 @@ screen.h config.h configmonitor.h - DESTINATION include/kscreen) + DESTINATION ${INCLUDE_INSTALL_DIR}/kscreen) if(NOT WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kscreen.pc.in ${CMAKE_CURRENT_BINARY_DIR}/kscreen.pc @ONLY) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/config.cpp new/libkscreen-1.0.3/src/config.cpp --- old/libkscreen-1.0.2/src/config.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/config.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -31,11 +31,13 @@ public: Private(): valid(true), - screen(0) + screen(0), + primaryOutput(0) { } Private(const Private &other): - valid(other.valid) + valid(other.valid), + primaryOutput(other.primaryOutput) { screen = other.screen->clone(); Q_FOREACH (Output *otherOutput, other.outputs) { @@ -45,6 +47,7 @@ bool valid; Screen* screen; + Output* primaryOutput; OutputList outputs; }; @@ -83,30 +86,33 @@ QSize outputSize; Output* currentOutput = 0; OutputList outputs = config->outputs(); + int enabledOutputsCount = 0; Q_FOREACH(Output *output, outputs) { if (!output->isEnabled()) { continue; } + ++enabledOutputsCount; + currentOutput = currentConfig->output(output->id()); //If there is no such output if (!currentOutput) { - qWarning() << "The output:" << output->id() << "does not exists"; + qDebug() << "The output:" << output->id() << "does not exists"; return false; } //If the output is not connected if (!currentOutput->isConnected()) { - qWarning() << "The output:" << output->id() << "is not connected"; + qDebug() << "The output:" << output->id() << "is not connected"; return false; } //if there is no currentMode if (output->currentModeId().isEmpty()) { - qWarning() << "The output:" << output->id() << "has no currentModeId"; + qDebug() << "The output:" << output->id() << "has no currentModeId"; return false; } //If the mode is not found in the current output if (!currentOutput->mode(output->currentModeId())) { - qWarning() << "The output:" << output->id() << "has no mode:" << output->currentModeId(); + qDebug() << "The output:" << output->id() << "has no mode:" << output->currentModeId(); return false; } @@ -141,12 +147,18 @@ } } + const int maxEnabledOutputsCount = config->screen()->maxActiveOutputsCount(); + if (enabledOutputsCount > maxEnabledOutputsCount) { + qDebug() << "Too many active screens. Requested: " << enabledOutputsCount << ", Max: " << maxEnabledOutputsCount; + return false; + } + if (rect.width() > config->screen()->maxSize().width()) { - qWarning() << "The configuration has too much width:" << rect.width(); + qDebug() << "The configuration has too much width:" << rect.width(); return false; } if (rect.height() > config->screen()->maxSize().height()) { - qWarning() << "The configuration has too much height:" << rect.height(); + qDebug() << "The configuration has too much height:" << rect.height(); return false; } @@ -223,14 +235,27 @@ Output* Config::primaryOutput() const { + if (d->primaryOutput) { + return d->primaryOutput; + } + Q_FOREACH(Output* output, d->outputs) { if (output->isPrimary()) { - return output; + d->primaryOutput = output; + return d->primaryOutput; } } + return 0; } +void Config::setPrimaryOutput(Output* output) +{ + d->primaryOutput = output; + + Q_EMIT primaryOutputChanged(output); +} + void Config::addOutput(Output* output) { d->outputs.insert(output->id(), output); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/config.h new/libkscreen-1.0.3/src/config.h --- old/libkscreen-1.0.2/src/config.h 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/config.h 2014-05-04 19:25:33.000000000 +0200 @@ -53,6 +53,7 @@ QHash<int, Output*> outputs() const; QHash<int, Output*> connectedOutputs() const; Output* primaryOutput() const; + void setPrimaryOutput(Output *output); void addOutput(Output *output); void removeOutput(int outputId); void setOutputs(OutputList outputs); @@ -63,6 +64,7 @@ Q_SIGNALS: void outputAdded(Output *output); void outputRemoved(int outputId); + void primaryOutputChanged(KScreen::Output *output); private: Q_DISABLE_COPY(Config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/kscreen.pc.in new/libkscreen-1.0.3/src/kscreen.pc.in --- old/libkscreen-1.0.2/src/kscreen.pc.in 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/kscreen.pc.in 2014-05-04 19:25:33.000000000 +0200 @@ -4,7 +4,7 @@ Name: kscreen Description: Qt Based library to manage screens with backends (xrandr, whatevercomesnext) -Version: @VERSION@ +Version: @libkscreen_VERSION@ Libs: -L${libdir} -lkscreen Cflags: -I${includedir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/output.cpp new/libkscreen-1.0.3/src/output.cpp --- old/libkscreen-1.0.2/src/output.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/output.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -31,6 +31,7 @@ public: Private(): id(0), + type(Unknown), rotation(None), connected(false), enabled(false), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/screen.cpp new/libkscreen-1.0.3/src/screen.cpp --- old/libkscreen-1.0.2/src/screen.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/screen.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -24,11 +24,13 @@ { public: Private(): - id(0) + id(0), + maxActiveOutputsCount(0) { } Private(const Private &other): id(other.id), + maxActiveOutputsCount(other.maxActiveOutputsCount), currentSize(other.currentSize), minSize(other.minSize), maxSize(other.maxSize) @@ -36,6 +38,7 @@ } int id; + int maxActiveOutputsCount; QSize currentSize; QSize minSize; QSize maxSize; @@ -111,6 +114,16 @@ d->minSize = minSize; } +int Screen::maxActiveOutputsCount() const +{ + return d->maxActiveOutputsCount; +} + +void Screen::setMaxActiveOutputsCount(int maxActiveOutputsCount) +{ + d->maxActiveOutputsCount = maxActiveOutputsCount; +} + } //KScreen namespace #include "screen.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/src/screen.h new/libkscreen-1.0.3/src/screen.h --- old/libkscreen-1.0.2/src/screen.h 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/src/screen.h 2014-05-04 19:25:33.000000000 +0200 @@ -35,6 +35,7 @@ Q_PROPERTY(QSize currentSize READ currentSize WRITE setCurrentSize NOTIFY currentSizeChanged) Q_PROPERTY(QSize minSize READ minSize CONSTANT) Q_PROPERTY(QSize maxSize READ maxSize CONSTANT) + Q_PROPERTY(int maxActiveOutputsCount READ maxActiveOutputsCount CONSTANT) explicit Screen(QObject *parent = 0); virtual ~Screen(); @@ -53,6 +54,9 @@ QSize maxSize() const; void setMaxSize(const QSize& maxSize); + int maxActiveOutputsCount() const; + void setMaxActiveOutputsCount(int maxActiveOutputsCount); + Q_SIGNALS: void currentSizeChanged(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/multipleclone.json new/libkscreen-1.0.3/tests/configs/multipleclone.json --- old/libkscreen-1.0.2/tests/configs/multipleclone.json 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/multipleclone.json 2014-05-04 19:25:33.000000000 +0200 @@ -13,7 +13,8 @@ "currentSize" : { "width" : 1024, "height" : 768 - } + }, + "maxActiveOutputsCount": 2 }, "outputs" : [ @@ -120,4 +121,4 @@ "edid" : "AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg==" } ] -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/multipleoutput.json new/libkscreen-1.0.3/tests/configs/multipleoutput.json --- old/libkscreen-1.0.2/tests/configs/multipleoutput.json 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/multipleoutput.json 2014-05-04 19:25:33.000000000 +0200 @@ -13,7 +13,8 @@ "currentSize" : { "width" : 3200, "height" : 1880 - } + }, + "maxActiveOutputsCount": 2 }, "outputs" : [ @@ -119,4 +120,4 @@ "edid" : "AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg==" } ] -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/singleOutputWithoutPreferred.json new/libkscreen-1.0.3/tests/configs/singleOutputWithoutPreferred.json --- old/libkscreen-1.0.2/tests/configs/singleOutputWithoutPreferred.json 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/singleOutputWithoutPreferred.json 2014-05-04 19:25:33.000000000 +0200 @@ -13,7 +13,8 @@ "currentSize" : { "width" : 1280, "height" : 800 - } + }, + "maxActiveOutputsCount": 2 }, "outputs" : [ @@ -64,4 +65,4 @@ "edid" : "AP///////wBMLcMFMzJGRQkUAQMOMx14Ku6Ro1RMmSYPUFQjCACBAIFAgYCVAKlAswABAQEBAjqAGHE4LUBYLEUA/h8RAAAeAAAA/QA4PB5REQAKICAgICAgAAAA/ABTeW5jTWFzdGVyCiAgAAAA/wBIOU1aMzAyMTk2CiAgAC4=" } ] -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/singleoutput.json new/libkscreen-1.0.3/tests/configs/singleoutput.json --- old/libkscreen-1.0.2/tests/configs/singleoutput.json 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/singleoutput.json 2014-05-04 19:25:33.000000000 +0200 @@ -13,7 +13,8 @@ "currentSize" : { "width" : 1280, "height" : 800 - } + }, + "maxActiveOutputsCount": 2 }, "outputs" : [ @@ -64,4 +65,4 @@ "edid" : "AP///////wBMLcMFMzJGRQkUAQMOMx14Ku6Ro1RMmSYPUFQjCACBAIFAgYCVAKlAswABAQEBAjqAGHE4LUBYLEUA/h8RAAAeAAAA/QA4PB5REQAKICAgICAgAAAA/ABTeW5jTWFzdGVyCiAgAAAA/wBIOU1aMzAyMTk2CiAgAC4=" } ] -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/singleoutputBroken.json new/libkscreen-1.0.3/tests/configs/singleoutputBroken.json --- old/libkscreen-1.0.2/tests/configs/singleoutputBroken.json 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/singleoutputBroken.json 2014-05-04 19:25:33.000000000 +0200 @@ -13,7 +13,8 @@ "currentSize" : { "width" : 1280, "height" : 800 - } + }, + "maxActiveOutputsCount": 2 }, "outputs" : [ @@ -72,4 +73,4 @@ "edid" : "AP///////wBMLcMFMzJGRQkUAQMOMx14Ku6Ro1RMmSYPUFQjCACBAIFAgYCVAKlAswABAQEBAjqAGHE4LUBYLEUA/h8RAAAeAAAA/QA4PB5REQAKICAgICAgAAAA/ABTeW5jTWFzdGVyCiAgAAAA/wBIOU1aMzAyMTk2CiAgAC4=" } ] -} \ No newline at end of file +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/configs/tooManyOutputs.json new/libkscreen-1.0.3/tests/configs/tooManyOutputs.json --- old/libkscreen-1.0.2/tests/configs/tooManyOutputs.json 1970-01-01 01:00:00.000000000 +0100 +++ new/libkscreen-1.0.3/tests/configs/tooManyOutputs.json 2014-05-04 19:25:33.000000000 +0200 @@ -0,0 +1,78 @@ +{ + "screen" : + { + "id" : 1, + "maxSize" : { + "width" : 8192, + "height" : 8192 + }, + "minSize" : { + "width" : 320, + "height" : 200 + }, + "currentSize" : { + "width" : 3200, + "height" : 1880 + }, + "maxActiveOutputsCount": 1 + }, + "outputs" : + [ + { + "id" : 1, + "name" : "LVDS1", + "type" : "LVDS", + "modes" : + [ + { + "id" : 3, + "name" : "1280x800", + "refreshRate" : 59.9, + "size" : { + "width" : 1280, + "height" : 800 + } + } + ], + "pos" : { + "x" : 0, + "y" : 0 + }, + "currentModeId" : 3, + "preferredModes" : [3], + "rotation" : 1, + "connected" : true, + "enabled" : true, + "primary" : true, + "edid" : "AP///////wBMLcMFMzJGRQkUAQMOMx14Ku6Ro1RMmSYPUFQjCACBAIFAgYCVAKlAswABAQEBAjqAGHE4LUBYLEUA/h8RAAAeAAAA/QA4PB5REQAKICAgICAgAAAA/ABTeW5jTWFzdGVyCiAgAAAA/wBIOU1aMzAyMTk2CiAgAC4=" + }, + { + "id" : 2, + "name" : "HDMI1", + "type" : "HDMI", + "modes" : + [ + { + "id" : 4, + "name" : "1920x1080", + "refreshRate" : 60, + "size" : { + "width" : 1920, + "height" : 1080 + } + } + ], + "pos" : { + "x" : 1280, + "y" : 0 + }, + "currentModeId" : 4, + "preferredModes" : [4], + "rotation" : 1, + "connected" : true, + "enabled" : true, + "primary" : false, + "edid" : "AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg==" + } + ] +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-1.0.2/tests/testscreenconfig.cpp new/libkscreen-1.0.3/tests/testscreenconfig.cpp --- old/libkscreen-1.0.2/tests/testscreenconfig.cpp 2013-11-19 12:45:12.000000000 +0100 +++ new/libkscreen-1.0.3/tests/testscreenconfig.cpp 2014-05-04 19:25:33.000000000 +0200 @@ -181,6 +181,21 @@ QVERIFY(!Config::canBeApplied(brokenConfig)); primaryBroken->mode(QLatin1String("3"))->setSize(QSize(1280, 800)); QVERIFY(Config::canBeApplied(brokenConfig)); + + + path = TEST_DATA; + path.append("/tooManyOutputs.json"); + setenv("TEST_DATA", path, 1); + brokenConfig = Config::current(); + + int enabledOutputsCount = 0; + Q_FOREACH (Output *output, brokenConfig->outputs()) { + if (output->isEnabled()) { + ++enabledOutputsCount; + } + } + QVERIFY(brokenConfig->screen()->maxActiveOutputsCount() < enabledOutputsCount); + QVERIFY(!Config::canBeApplied(brokenConfig)); } QTEST_MAIN(testScreenConfig) -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de