aboutsummaryrefslogtreecommitdiff
path: root/autotests/kconfig_compiler
diff options
context:
space:
mode:
Diffstat (limited to 'autotests/kconfig_compiler')
-rw-r--r--autotests/kconfig_compiler/CMakeLists.txt19
-rw-r--r--autotests/kconfig_compiler/kconfigcompiler_test.cpp4
-rw-r--r--autotests/kconfig_compiler/test13.cpp.ref4
-rw-r--r--autotests/kconfig_compiler/test_param_minmax.cpp.ref41
-rw-r--r--autotests/kconfig_compiler/test_param_minmax.h.ref64
-rw-r--r--autotests/kconfig_compiler/test_param_minmax.kcfg17
-rw-r--r--autotests/kconfig_compiler/test_param_minmax.kcfgc4
-rw-r--r--autotests/kconfig_compiler/test_param_minmax_main.cpp29
-rw-r--r--autotests/kconfig_compiler/test_properties_minmax.cpp.ref35
-rw-r--r--autotests/kconfig_compiler/test_properties_minmax.h.ref80
-rw-r--r--autotests/kconfig_compiler/test_properties_minmax.kcfg15
-rw-r--r--autotests/kconfig_compiler/test_properties_minmax.kcfgc5
-rw-r--r--autotests/kconfig_compiler/test_properties_minmax_main.cpp28
-rw-r--r--autotests/kconfig_compiler/test_signal.cpp.ref16
14 files changed, 356 insertions, 5 deletions
diff --git a/autotests/kconfig_compiler/CMakeLists.txt b/autotests/kconfig_compiler/CMakeLists.txt
index c459243d..93ab9b09 100644
--- a/autotests/kconfig_compiler/CMakeLists.txt
+++ b/autotests/kconfig_compiler/CMakeLists.txt
@@ -218,6 +218,25 @@ ecm_add_test(${kconfigcompiler_test_signals_SRCS}
LINK_LIBRARIES Qt5::Test KF5::ConfigGui
)
+########### next target ###############
+
+set(test_properties_minmax_SRCS test_properties_minmax_main.cpp)
+gen_kcfg_test_source(test_properties_minmax test_properties_minmax_SRCS GENERATE_MOC)
+
+ecm_add_test(${test_properties_minmax_SRCS}
+ TEST_NAME test-properties-minmax
+ LINK_LIBRARIES KF5::ConfigGui
+)
+
+########### next target ###############
+
+set(test_param_minmax_SRCS test_param_minmax_main.cpp)
+gen_kcfg_test_source(test_param_minmax test_param_minmax_SRCS GENERATE_MOC)
+
+ecm_add_test(${test_param_minmax_SRCS}
+ TEST_NAME test-param-minmax
+ LINK_LIBRARIES KF5::ConfigGui
+)
########### next target ###############
diff --git a/autotests/kconfig_compiler/kconfigcompiler_test.cpp b/autotests/kconfig_compiler/kconfigcompiler_test.cpp
index d5b7baa2..e4892e4f 100644
--- a/autotests/kconfig_compiler/kconfigcompiler_test.cpp
+++ b/autotests/kconfig_compiler/kconfigcompiler_test.cpp
@@ -53,6 +53,8 @@ static CompilerTestSet testCases = {
"test_translation_kde_domain.cpp", "test_translation_kde_domain.h",
"test_translation_qt.cpp", "test_translation_qt.h",
"test_emptyentries.cpp", "test_emptyentries.h",
+ "test_properties_minmax.cpp", "test_properties_minmax.h",
+ "test_param_minmax.cpp", "test_param_minmax.h",
nullptr
};
@@ -78,6 +80,8 @@ static CompilerTestSet testCasesToRun = {
"test_translation_kde_domain",
"test_translation_qt",
"test_emptyentries",
+ "test_properties_minmax",
+ "test_param_minmax",
nullptr
};
diff --git a/autotests/kconfig_compiler/test13.cpp.ref b/autotests/kconfig_compiler/test13.cpp.ref
index 3fa79b18..c038c93c 100644
--- a/autotests/kconfig_compiler/test13.cpp.ref
+++ b/autotests/kconfig_compiler/test13.cpp.ref
@@ -14,7 +14,9 @@ Test13::Test13( )
itemPicturesDir = new KConfigSkeleton::ItemUrl( currentGroup(), QStringLiteral( "picturesDir" ), mPicturesDir );
addItem( itemPicturesDir, QStringLiteral( "picturesDir" ) );
KConfigCompilerSignallingItem *itemBrightness;
- itemBrightness = new KConfigCompilerSignallingItem(new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "brightness" ), mBrightness ), this, notifyFunction, signalBrightnessChanged);
+ KConfigSkeleton::ItemDouble *innerItemBrightness;
+ innerItemBrightness = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "brightness" ), mBrightness );
+ itemBrightness = new KConfigCompilerSignallingItem(innerItemBrightness, this, notifyFunction, signalBrightnessChanged);
addItem( itemBrightness, QStringLiteral( "brightness" ) );
KConfigSkeleton::ItemBool *itemStartsWithUppercase;
itemStartsWithUppercase = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "StartsWithUppercase" ), mStartsWithUppercase );
diff --git a/autotests/kconfig_compiler/test_param_minmax.cpp.ref b/autotests/kconfig_compiler/test_param_minmax.cpp.ref
new file mode 100644
index 00000000..ceb224b2
--- /dev/null
+++ b/autotests/kconfig_compiler/test_param_minmax.cpp.ref
@@ -0,0 +1,41 @@
+// This file is generated by kconfig_compiler_kf5 from test_param_minmax.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test_param_minmax.h"
+
+TestParamMinMax::TestParamMinMax( KSharedConfig::Ptr config )
+ : KConfigSkeleton( std::move( config ) )
+{
+ setCurrentGroup( QStringLiteral( "Something" ) );
+
+ KConfigSkeleton::ItemDouble *itemFoo[6];
+ itemFoo[0] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#0" ), mFoo[0], 1.23 );
+ itemFoo[0]->setMinValue(0.01);
+ itemFoo[0]->setMaxValue(89898.23);
+ addItem( itemFoo[0], QStringLiteral( "Foo0" ) );
+ itemFoo[1] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#1" ), mFoo[1], 1.23 );
+ itemFoo[1]->setMinValue(0.01);
+ itemFoo[1]->setMaxValue(89898.23);
+ addItem( itemFoo[1], QStringLiteral( "Foo1" ) );
+ itemFoo[2] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#2" ), mFoo[2], 1.23 );
+ itemFoo[2]->setMinValue(0.01);
+ itemFoo[2]->setMaxValue(89898.23);
+ addItem( itemFoo[2], QStringLiteral( "Foo2" ) );
+ itemFoo[3] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#3" ), mFoo[3], 1.23 );
+ itemFoo[3]->setMinValue(0.01);
+ itemFoo[3]->setMaxValue(89898.23);
+ addItem( itemFoo[3], QStringLiteral( "Foo3" ) );
+ itemFoo[4] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#4" ), mFoo[4], 1.23 );
+ itemFoo[4]->setMinValue(0.01);
+ itemFoo[4]->setMaxValue(89898.23);
+ addItem( itemFoo[4], QStringLiteral( "Foo4" ) );
+ itemFoo[5] = new KConfigSkeleton::ItemDouble( currentGroup(), QStringLiteral( "foo_#5" ), mFoo[5], 1.23 );
+ itemFoo[5]->setMinValue(0.01);
+ itemFoo[5]->setMaxValue(89898.23);
+ addItem( itemFoo[5], QStringLiteral( "Foo5" ) );
+}
+
+TestParamMinMax::~TestParamMinMax()
+{
+}
+
diff --git a/autotests/kconfig_compiler/test_param_minmax.h.ref b/autotests/kconfig_compiler/test_param_minmax.h.ref
new file mode 100644
index 00000000..3cc8717c
--- /dev/null
+++ b/autotests/kconfig_compiler/test_param_minmax.h.ref
@@ -0,0 +1,64 @@
+// This file is generated by kconfig_compiler_kf5 from test_param_minmax.kcfg.
+// All changes you do to this file will be lost.
+#ifndef TESTPARAMMINMAX_H
+#define TESTPARAMMINMAX_H
+
+#include <qglobal.h>
+#include <kconfigskeleton.h>
+#include <QCoreApplication>
+#include <QDebug>
+
+class TestParamMinMax : public KConfigSkeleton
+{
+ public:
+
+ TestParamMinMax( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
+ ~TestParamMinMax();
+
+ /**
+ Set foo_#$(myparam)
+ */
+ void setFoo( int i, double v )
+ {
+ if (v < 0.01)
+ {
+ qDebug() << "setFoo: value " << v << " is less than the minimum value of 0.01";
+ v = 0.01;
+ }
+
+ if (v > 89898.23)
+ {
+ qDebug() << "setFoo: value " << v << " is greater than the maximum value of 89898.23";
+ v = 89898.23;
+ }
+
+ if (!isFooImmutable( i ))
+ mFoo[i] = v;
+ }
+
+ /**
+ Get foo_#$(myparam)
+ */
+ double foo( int i ) const
+ {
+ return mFoo[i];
+ }
+
+ /**
+ Is foo_#$(myparam) Immutable
+ */
+ bool isFooImmutable( int i ) const
+ {
+ return isImmutable( QStringLiteral( "Foo%1" ).arg( i ) );
+ }
+
+ protected:
+
+ // Something
+ double mFoo[6];
+
+ private:
+};
+
+#endif
+
diff --git a/autotests/kconfig_compiler/test_param_minmax.kcfg b/autotests/kconfig_compiler/test_param_minmax.kcfg
new file mode 100644
index 00000000..32046fd3
--- /dev/null
+++ b/autotests/kconfig_compiler/test_param_minmax.kcfg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Author: Henri Chain -->
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile arg="true"/>
+ <group name="Something">
+ <entry name="Foo$(myparam)" type="double" key="foo_#$(myparam)">
+ <parameter name="myparam" type="Int" max="5"/>
+ <default>1.23</default>
+ <min>0.01</min>
+ <max>89898.23</max>
+ </entry>
+ </group>
+</kcfg>
+
diff --git a/autotests/kconfig_compiler/test_param_minmax.kcfgc b/autotests/kconfig_compiler/test_param_minmax.kcfgc
new file mode 100644
index 00000000..3d9d2768
--- /dev/null
+++ b/autotests/kconfig_compiler/test_param_minmax.kcfgc
@@ -0,0 +1,4 @@
+ClassName=TestParamMinMax
+File=test_param_minmax.kcfgc
+Mutators=true
+
diff --git a/autotests/kconfig_compiler/test_param_minmax_main.cpp b/autotests/kconfig_compiler/test_param_minmax_main.cpp
new file mode 100644
index 00000000..57fc26a7
--- /dev/null
+++ b/autotests/kconfig_compiler/test_param_minmax_main.cpp
@@ -0,0 +1,29 @@
+/*
+Copyright (c) 2020 Henri chain <henri.chain@enioka.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+#include "test_param_minmax.h"
+
+int main(int, char **)
+{
+ TestParamMinMax *t = new TestParamMinMax();
+ delete t;
+ return 0;
+}
+
diff --git a/autotests/kconfig_compiler/test_properties_minmax.cpp.ref b/autotests/kconfig_compiler/test_properties_minmax.cpp.ref
new file mode 100644
index 00000000..1736889b
--- /dev/null
+++ b/autotests/kconfig_compiler/test_properties_minmax.cpp.ref
@@ -0,0 +1,35 @@
+// This file is generated by kconfig_compiler_kf5 from test_properties_minmax.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test_properties_minmax.h"
+
+TestPropertiesMinMax::TestPropertiesMinMax( KSharedConfig::Ptr config )
+ : KConfigSkeleton( std::move( config ) )
+{
+ KConfigCompilerSignallingItem::NotifyFunction notifyFunction = static_cast<KConfigCompilerSignallingItem::NotifyFunction>(&TestPropertiesMinMax::itemChanged);
+
+ setCurrentGroup( QStringLiteral( "Something" ) );
+
+ KConfigCompilerSignallingItem *itemBar;
+ KConfigSkeleton::ItemInt *innerItemBar;
+ innerItemBar = new KConfigSkeleton::ItemInt( currentGroup(), QStringLiteral( "bar" ), mBar, 42 );
+ itemBar = new KConfigCompilerSignallingItem(innerItemBar, this, notifyFunction, signalBarChanged);
+ innerItemBar->setMinValue(36);
+ innerItemBar->setMaxValue(102);
+ addItem( itemBar, QStringLiteral( "bar" ) );
+}
+
+TestPropertiesMinMax::~TestPropertiesMinMax()
+{
+}
+
+
+void TestPropertiesMinMax::itemChanged(quint64 flags) {
+
+ if ( flags & signalBarChanged ) {
+ Q_EMIT barChanged();
+ }
+}
+
+#include "test_properties_minmax.moc"
+
diff --git a/autotests/kconfig_compiler/test_properties_minmax.h.ref b/autotests/kconfig_compiler/test_properties_minmax.h.ref
new file mode 100644
index 00000000..26b79e63
--- /dev/null
+++ b/autotests/kconfig_compiler/test_properties_minmax.h.ref
@@ -0,0 +1,80 @@
+// This file is generated by kconfig_compiler_kf5 from test_properties_minmax.kcfg.
+// All changes you do to this file will be lost.
+#ifndef TESTPROPERTIESMINMAX_H
+#define TESTPROPERTIESMINMAX_H
+
+#include <qglobal.h>
+#include <kconfigskeleton.h>
+#include <QCoreApplication>
+#include <QDebug>
+
+class TestPropertiesMinMax : public KConfigSkeleton
+{
+ Q_OBJECT
+ public:
+
+ TestPropertiesMinMax( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
+ ~TestPropertiesMinMax();
+
+ /**
+ Set bar
+ */
+ void setBar( int v )
+ {
+ if (v < 36)
+ {
+ qDebug() << "setBar: value " << v << " is less than the minimum value of 36";
+ v = 36;
+ }
+
+ if (v > 102)
+ {
+ qDebug() << "setBar: value " << v << " is greater than the maximum value of 102";
+ v = 102;
+ }
+
+ if (v != mBar && !isBarImmutable()) {
+ mBar = v;
+ Q_EMIT barChanged();
+ }
+ }
+
+ Q_PROPERTY(int bar READ bar WRITE setBar NOTIFY barChanged)
+ Q_PROPERTY(bool isBarImmutable CONSTANT)
+ /**
+ Get bar
+ */
+ int bar() const
+ {
+ return mBar;
+ }
+
+ /**
+ Is bar Immutable
+ */
+ bool isBarImmutable() const
+ {
+ return isImmutable( QStringLiteral( "bar" ) );
+ }
+
+
+ enum {
+ signalBarChanged = 0x1
+ };
+
+ Q_SIGNALS:
+ void barChanged();
+
+ private:
+ void itemChanged(quint64 flags);
+
+ protected:
+
+ // Something
+ int mBar;
+
+ private:
+};
+
+#endif
+
diff --git a/autotests/kconfig_compiler/test_properties_minmax.kcfg b/autotests/kconfig_compiler/test_properties_minmax.kcfg
new file mode 100644
index 00000000..621a793a
--- /dev/null
+++ b/autotests/kconfig_compiler/test_properties_minmax.kcfg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Author: Henri Chain -->
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile arg="true"/>
+ <group name="Something">
+ <entry name="bar" type="Int">
+ <default>42</default>
+ <min>36</min>
+ <max>102</max>
+ </entry>
+ </group>
+</kcfg>
diff --git a/autotests/kconfig_compiler/test_properties_minmax.kcfgc b/autotests/kconfig_compiler/test_properties_minmax.kcfgc
new file mode 100644
index 00000000..5cda329b
--- /dev/null
+++ b/autotests/kconfig_compiler/test_properties_minmax.kcfgc
@@ -0,0 +1,5 @@
+ClassName=TestPropertiesMinMax
+GenerateProperties=true
+File=test_properties_minmax.kcfgc
+Mutators=true
+
diff --git a/autotests/kconfig_compiler/test_properties_minmax_main.cpp b/autotests/kconfig_compiler/test_properties_minmax_main.cpp
new file mode 100644
index 00000000..6d789718
--- /dev/null
+++ b/autotests/kconfig_compiler/test_properties_minmax_main.cpp
@@ -0,0 +1,28 @@
+/*
+Copyright (c) 2020 Henri Chain <henri.chain@enioka.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+#include "test_properties_minmax.h"
+
+int main(int, char **)
+{
+ TestPropertiesMinMax *t = new TestPropertiesMinMax();
+ delete t;
+ return 0;
+}
diff --git a/autotests/kconfig_compiler/test_signal.cpp.ref b/autotests/kconfig_compiler/test_signal.cpp.ref
index be06a745..71ab7a09 100644
--- a/autotests/kconfig_compiler/test_signal.cpp.ref
+++ b/autotests/kconfig_compiler/test_signal.cpp.ref
@@ -37,16 +37,24 @@ TestSignal::TestSignal( )
setCurrentGroup( QStringLiteral( "Appearance" ) );
KConfigCompilerSignallingItem *itemEmoticonTheme;
- itemEmoticonTheme = new KConfigCompilerSignallingItem(new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "emoticonTheme" ), mEmoticonTheme, QStringLiteral( "Default" ) ), this, notifyFunction, signalEmoticonSettingsChanged);
+ KConfigSkeleton::ItemString *innerItemEmoticonTheme;
+ innerItemEmoticonTheme = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "emoticonTheme" ), mEmoticonTheme, QStringLiteral( "Default" ) );
+ itemEmoticonTheme = new KConfigCompilerSignallingItem(innerItemEmoticonTheme, this, notifyFunction, signalEmoticonSettingsChanged);
addItem( itemEmoticonTheme, QStringLiteral( "emoticonTheme" ) );
KConfigCompilerSignallingItem *itemUseEmoticon;
- itemUseEmoticon = new KConfigCompilerSignallingItem(new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "useEmoticon" ), mUseEmoticon, true ), this, notifyFunction, signalEmoticonSettingsChanged);
+ KConfigSkeleton::ItemBool *innerItemUseEmoticon;
+ innerItemUseEmoticon = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "useEmoticon" ), mUseEmoticon, true );
+ itemUseEmoticon = new KConfigCompilerSignallingItem(innerItemUseEmoticon, this, notifyFunction, signalEmoticonSettingsChanged);
addItem( itemUseEmoticon, QStringLiteral( "useEmoticon" ) );
KConfigCompilerSignallingItem *itemEmoticonRequireSpace;
- itemEmoticonRequireSpace = new KConfigCompilerSignallingItem(new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "emoticonRequireSpace" ), mEmoticonRequireSpace, true ), this, notifyFunction, signalEmoticonSettingsChanged);
+ KConfigSkeleton::ItemBool *innerItemEmoticonRequireSpace;
+ innerItemEmoticonRequireSpace = new KConfigSkeleton::ItemBool( currentGroup(), QStringLiteral( "emoticonRequireSpace" ), mEmoticonRequireSpace, true );
+ itemEmoticonRequireSpace = new KConfigCompilerSignallingItem(innerItemEmoticonRequireSpace, this, notifyFunction, signalEmoticonSettingsChanged);
addItem( itemEmoticonRequireSpace, QStringLiteral( "emoticonRequireSpace" ) );
KConfigCompilerSignallingItem *itemStylePath;
- itemStylePath = new KConfigCompilerSignallingItem(new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "stylePath" ), mStylePath ), this, notifyFunction, signalStyleChanged);
+ KConfigSkeleton::ItemString *innerItemStylePath;
+ innerItemStylePath = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "stylePath" ), mStylePath );
+ itemStylePath = new KConfigCompilerSignallingItem(innerItemStylePath, this, notifyFunction, signalStyleChanged);
addItem( itemStylePath, QStringLiteral( "stylePath" ) );
KConfigSkeleton::ItemString *itemStyleCSSVariant;
itemStyleCSSVariant = new KConfigSkeleton::ItemString( currentGroup(), QStringLiteral( "styleVariant" ), mStyleCSSVariant );