aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-04-13Add standard shortcut for "Show/Hide Hidden Files"Nate Graham
Summary: Add a standard shortcut for this action so it can be synchronized between different apps and the file dialog; see https://bugs.kde.org/show_bug.cgi?id=262551. The action in Dolphin also has F8 bound to this, but the definition here only accept two default shortcuts, and F8 seems kind of random. CCBUG: 262551 Test Plan: Apply D28803 to KIO and D28804 to Dolphin and test there Reviewers: dfaure, #frameworks Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D28802
2020-03-30QAtomicInteger::loadRelaxed/storeRelaxed() are available since Qt 5.14Ahmad Samir
A similar patch was approved in https://phabricator.kde.org/D26102
2020-03-23[KConfigGui] Check font weight when clearing styleName propertyAhmad Samir
Summary: This is an addendum for commit a2774ff5b41987c3919a9e; making the check tighter. Test Plan: make && ctest Reviewers: #frameworks, dfaure, davidedmundson, cfeck, ervin, meven, bport Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27811
2020-03-22KConfig: Convert to SPDX license statementsAndreas Cord-Landwehr
Summary: Convert license headers to SPDX statements and add license files as required by REUSE specification. Reviewers: cgiboudeaux Reviewed By: cgiboudeaux Subscribers: ognarb, cgiboudeaux, kde-frameworks-devel Tags: #frameworks Maniphest Tasks: T11550 Differential Revision: https://phabricator.kde.org/D27601
2020-03-08KconfigXT: Add a value attribute to Enum field choicesMéven Car
Summary: Allow to write choices such as : ``` <choices> <choice name="enum_name" value="I can't containt (anything)"></choice> <choice name="normal_choice"></choice> </choices> ``` Test Plan: ctest Reviewers: ervin, bport, crossi, #frameworks Reviewed By: ervin Subscribers: ngraham, davidre, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27463
2020-03-03Make it compile against qt5.15. SkipEmptyParts is part of Qt::.Laurent Montel
2020-03-02[KConfigGui] Clear styleName font property for Regular font sytlesAhmad Samir
Summary: If the styleName property is set for a QFont, using setBold(true) would lead to Qt using an "emboldended"/synthetic font style instead of using the bold style provided by the font itself (usually as a standalone font file), the former looks ugly (IIUC, Freetype emboldens fonts as a last resort for fonts that don't provide a bold style at all). Accoring to upstream[1] the styleName property is useful for fonts with fancy style names, and also it shouldn't be set if it's not needed; and indeed using styleName with e.g. "Regular" doesn't make sense, as there is no "Regular Bold" style AFAICS. Checking for "Regular|Normal|Book|Roman" is based on examining the font styles provided by the font packages available on OpenSuse Tumbleweed ATM, (I didn't include some of the weird/non-common ones e.g. I've seen "Roma" and "Rounded"). Some statistics about the "Regular"-like font styles from my testing: Regular: 2486 Normal: 66 Book: 20 Roman: 13 For more details see: [1] https://bugreports.qt.io/browse/QTBUG-63792 https://bugs.kde.org/show_bug.cgi?id=378523 BUG: 378523 FIXED-IN: 5.68 Test Plan: All unit tests still pass. Changing the fonts via e.g. the fonts KCM doesn't append the font sytleName, to the relevant font config entry, if the "Regular" style or co. is used. A simple test, look at the current dir name in the Dolphin url bar with and without ",Regular" appended to the font= entry (assuming you're using Noto Sans or DejaVu Sans as the styleName varies from font to font). Reviewers: #frameworks, dfaure, davidedmundson, cfeck, ervin Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27735
2020-02-28fix min/max entries with dpointerHenri Chain
Summary: D27497 was causing cases with dpointer + min/max to fail Specifically, this okular build: https://build.kde.org/job/Applications/job/okular/job/kf5-qt5 SUSEQt5.12/175/console Test Plan: Added min/max to dpointer autotest Reviewers: meven, ervin Subscribers: kde-frameworks-devel, aacid Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27717
2020-02-25Fix code generation for entries with min/maxHenri Chain
Summary: - When GenerateProperties and Mutators are activated, the generated code did not handle min/max properly - In the case of a parameterized entry, generated code also did not handle min/max BUG: 418146 Test Plan: - auto tests included Reviewers: meven, crossi, ervin, bport, tcanabrava Reviewed By: meven, ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27497
2020-02-24KConfigSkeletonItem : allow to set a KconfigGroup to read and write items in ↵Cyril Rossi
nested groups Summary: Currently KConfgiSkeleton cannot manage item entry in subgroup, like ``` [General][Colors] MyItem=foo ``` Example of use ``` // Generated Class with KConfig compiler, inherits KConfigSkeleton KConfigGroup generalGroup( &config, "General" ); KConfigGroup colorsGroup = config.group( "Colors" ) myItem->setGroup(cg); // Now can take a KConfigGroup addItem(myItem, "MyItem"); ``` Evolution of kconfig compiler will follow to consider this. Reviewers: ervin, dfaure, #frameworks, mdawson Reviewed By: ervin, dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27059
2020-02-19Fix is<PropertyName>Immutable generated propertyMéven Car
Summary: Relates to D26368 Test Plan: ctest Reviewers: hchain, ervin, bport, crossi, #frameworks Reviewed By: hchain, crossi Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27496
2020-02-14Make it compile against last qt5.15 without deprecated method. endl is ↵Laurent Montel
namespaced
2020-02-12Use ecm_qt_install_logging_categories over manual categories fileFriedrich W. H. Kossebau
2020-02-12Add setNotifyFunction to KPropertySkeletonItemBenjamin Port
Summary: This function will be called when the property value change Reviewers: ervin, meven, crossi Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27342
2020-02-08[KConfigLoader] Code cleanupAhmad Samir
Summary: - Drop redundant args to startElement()/endEelement() - Use range-for - Drop ConfigLoaderHandler methods that weren't used anywhere AFAICS and ConfigLoaderHandler is private API Test Plan: make && ctest Reviewers: #frameworks, apol, dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27157
2020-02-04Add an is<PropertyName>Immutable to know if a property is immutableMéven Car
Summary: Add a utility function is<Parameter>Immutable to access immutability quickly. Generated classes uses them internally to avoid code redundance. Sample: ``` /** Set blocked-by-default */ void setBlockedByDefault( bool v ) { if (v != mBlockedByDefault && !isBlockedByDefaultImmutable() ) { mBlockedByDefault = v; Q_EMIT blockedByDefaultChanged(); } } /** Is blocked-by-default Immutable */ bool isBlockedByDefaultImmutable() { return isImmutable( QStringLiteral( "blockedByDefault" ) ); } ``` ``` /** Set org.kde.ActivityManager.ResourceScoringEnabled */ void setResourceScoringEnabled( bool v ) { if (!isResourceScoringEnabledImmutable() ) mResourceScoringEnabled = v; } /** Is org.kde.ActivityManager.ResourceScoringEnabled Immutable */ bool isResourceScoringEnabledImmutable() { return isImmutable( QStringLiteral( "resourceScoringEnabled" ) ); } ``` Reviewers: ervin, #frameworks, dfaure Reviewed By: ervin Subscribers: dfaure, tcanabrava, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26368
2020-01-27QXmlInputSource is deprecated in qt5.15. Port it to QXmlStreamReaderLaurent Montel
Summary: QXmlInputSource is deprecated in qt5.15 Test Plan: autotest ok Reviewers: dfaure, apol Reviewed By: apol Subscribers: apol, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26890
2020-01-24Port endl to \n as it's qt namespaced.Laurent Montel
Port "dec"/"hex" as it's Qt namespaced too
2020-01-23Port endl to "\n" as it's qt namespaced. Use directlyLaurent Montel
std::cout/std::cerr Summary: Port endl to "\n" as it's qt namespaced Test Plan: autotest ok Reviewers: dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26860
2020-01-22Refactor KConfigXTTomaz Canabrava
Summary: The current KConfigXT compiler is in a sad state: It's a massive file with loads of global variables that handle state, the generator is done within the main() function and it seems to have grown organically. There are no classes to separate logic / state / generation, what exists is code that generates code from a xml / ini pair, but it's hard to even discover what a bit of code is doing. The code istyle is C++ / Java from the nineties, which is not bad per see but it also uses quite a few things that are going to be deprecated in Qt 6 so I'm also taking the time make the code more streamlined with newer code style (no iterators, lambdas, auto usage, etc). The code that generates the files simplly pushes strings to a text stream, and it's hard to figure out when something starts or something ends: for instance, the code that generates the Constructor has more than sixty lines of code englobing some nested if - for - if - for constructs. Currently the code is "done" - there's one bug that I still need to find & fix regarding Translations, but the rest seems sane. The current testcode generates incorrect *whitespaces* regarding the old code (there's some parts that I feel that it's important to fix before merging, but overall, the whitespace changes are not bad and easier to handle, old code had a hand-counted amount of spaces before each line, new code has a function whitespace() that adds the current-and-correct amount of whitespaces based on indentation level that you start by startScope() and ends with endScope(). rest of the code still needs to be ported to it. I plan to fix the testcases whitespace by manually adding them, I'v fougth with the code for a while and added a few hacks there but I don't want to make the code hackish again. New code is not perfect by any means, but is a good step in the right direction. This code tries to Separate the compiler code into many different files / classes to be more obvious what's happening, and each class also has many helper methods to minimize copypaste. - CodeGenerator: Has base code for the header and source files that can be shared - HeaderGenerator: Logic for generating the header file - SourceGenerator: Logic for generating the source file - KcfgParser: Logic for parsing the kcfg file and extracting the information from the Xml file - CommonStructs: a header that contains the structs that are currently used everywhere. - KConfigParameters: (was CfgConfig - ConfigConfig, wat) - Has information passed via the kcfgc file - kcfg_compiler - will be renamed to main - start the other classes and generates the files. This code here currently has the begining of this separation, with the CodeGenerator and the HeaderGenerator in a ~good~ state, but unfinished. Test Plan: - Run the test cases, - Compare the diffs generated by the testcases and fix in the code the errors / differences - Run and compare real kde source with the new and old generators to look for errors Reviewers: #frameworks, ervin, bport, dfaure Reviewed By: dfaure Subscribers: davidre, bcooksley, cgiboudeaux, kossebau, bport, ngraham, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26202
2020-01-17Revert "WIP: Refactor KConfigXT"Tomaz Canabrava
This reverts commit 98c32e29f50465d4d4e16bafdf0491edbfb422b0. This broke kdevelop and kmymoney. I'm workin on the fixes and more unittests for them.
2020-01-16WIP: Refactor KConfigXTTomaz Canabrava
Summary: The current KConfigXT compiler is in a sad state: It's a massive file with loads of global variables that handle state, the generator is done within the main() function and it seems to have grown organically. There are no classes to separate logic / state / generation, what exists is code that generates code from a xml / ini pair, but it's hard to even discover what a bit of code is doing. The code istyle is C++ / Java from the nineties, which is not bad per see but it also uses quite a few things that are going to be deprecated in Qt 6 so I'm also taking the time make the code more streamlined with newer code style (no iterators, lambdas, auto usage, etc). The code that generates the files simplly pushes strings to a text stream, and it's hard to figure out when something starts or something ends: for instance, the code that generates the Constructor has more than sixty lines of code englobing some nested if - for - if - for constructs. Currently the code is "done" - there's one bug that I still need to find & fix regarding Translations, but the rest seems sane. The current testcode generates incorrect *whitespaces* regarding the old code (there's some parts that I feel that it's important to fix before merging, but overall, the whitespace changes are not bad and easier to handle, old code had a hand-counted amount of spaces before each line, new code has a function whitespace() that adds the current-and-correct amount of whitespaces based on indentation level that you start by startScope() and ends with endScope(). rest of the code still needs to be ported to it. I plan to fix the testcases whitespace by manually adding them, I'v fougth with the code for a while and added a few hacks there but I don't want to make the code hackish again. New code is not perfect by any means, but is a good step in the right direction. This code tries to Separate the compiler code into many different files / classes to be more obvious what's happening, and each class also has many helper methods to minimize copypaste. - CodeGenerator: Has base code for the header and source files that can be shared - HeaderGenerator: Logic for generating the header file - SourceGenerator: Logic for generating the source file - KcfgParser: Logic for parsing the kcfg file and extracting the information from the Xml file - CommonStructs: a header that contains the structs that are currently used everywhere. - KConfigParameters: (was CfgConfig - ConfigConfig, wat) - Has information passed via the kcfgc file - kcfg_compiler - will be renamed to main - start the other classes and generates the files. This code here currently has the begining of this separation, with the CodeGenerator and the HeaderGenerator in a ~good~ state, but unfinished. Test Plan: - Run the test cases, - Compare the diffs generated by the testcases and fix in the code the errors / differences - Run and compare real kde source with the new and old generators to look for errors Reviewers: #frameworks, ervin, bport, dfaure Reviewed By: dfaure Subscribers: bport, ngraham, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26202
2020-01-07Fix API doc, usrSave is called from save not deprecated writeConfigBenjamin Port
Reviewers: ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26495
2020-01-05Add KSharedConfig::openStateConfig for storing state informationNicolas Fella
Summary: A common complaint is that our apps store 'state' information such as recent files or window sizes in their configuration files, making it ugly to store them in version control systems. Therefore we should not store such information in XDG_CONFIG_DIR but instead use XDG_DATA_DIR for this. This patch adds a utility method that creates a KSharedConfig backed by a file in such a suitable location. For e.g. dolphin the file .local/share/dolphin/dolphinstaterc would be created. See T12246 for some context Reviewers: #frameworks, dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26440
2020-01-05Port QRegExp to QRegularExpressionAhmad Samir
Summary: Port QRegExp::exactMatch() by using QRegularExpression::anchoredPattern() to match the entire subject string. Remove filenameOnly(), it's been broken for a long time (QStringLiteral("[/\\]") is not a valid QRegExp pattern); besides it's not needed as QFileInfo::fileName() is used to get the filename. Test Plan: make && ctest Reviewers: #frameworks, dfaure, ervin, apol Reviewed By: dfaure, ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D26177
2020-01-05dec and hex as namespaced in qt5.15Laurent Montel
2020-01-03Remove endl at the end of qdebugLaurent Montel
2019-12-19Port deprecated methodsLaurent Montel
2019-12-11kconfig EBN transport protocol cleanupJohn Hayes
Summary: Change and test transport protocol from http to https while correcting dead link Reviewers: apol Reviewed By: apol Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25829
2019-12-10update @sinceDavid Edmundson
2019-12-10Expose getter to KConfigWatcher's configDavid Edmundson
Summary: It can help save users having to member variables for the config and the watcher. Reviewers: broulik Reviewed By: broulik Subscribers: broulik, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25833
2019-12-10Fix writeFlags with KConfigCompilerSignallingItemDavid Edmundson
Summary: KConfigCompilerSignallingItem both inherits KConfigSkeletonItem and internally is powered by a separate KConfigSkeletonItem The generated code calls setWriteFlags on the outer KConfigCompilerSignallingItem instance, but the real writing is performed by the internal version. We need to set the flags in the right place. Ideally we would do this in an overload of KConfigSkeletonItem, but given we can't, I've shadowed the method. This isn't pretty, but given the docs say it should generally only be used from auto generated code, should be fine. Test Plan: Used in workspace KCM Reviewers: ervin Reviewed By: ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25791
2019-12-10Fix URL: use the stable redirect commits.kde.orgLuigi Toscano
cgit.kde.org may go away at a certain point, while commits.kde.org is meant to stay around.
2019-12-09Add a comment pointing to the history of Cut and Delete sharing a shortcutNate Graham
2019-12-04Don't use nullptr as flag. Make it compile against qt5.15Laurent Montel
2019-12-03Document Notifiers settingKai Uwe Broulik
Differential Revision: https://phabricator.kde.org/D25678
2019-12-01API dox: fixes (prevent linebreak after . in auto-brief begin, more @c)Friedrich W. H. Kossebau
GIT_SILENT
2019-11-26Only create a session config when actually restoring a sessionNate Graham
Summary: This allows manually invoking session restoration logic without creating duplicate configs, in support of D25106 and https://invent.kde.org/kde/okular/merge_requests/58/ Test Plan: Apply either of the above patches and verify that it works Reviewers: #frameworks, davidedmundson Reviewed By: davidedmundson Subscribers: anthonyfieroni, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25219
2019-11-14kwriteconfig: add delete optionEon S. Jeon
Summary: Add a simple delete option to kwriteconfig. A possible usecase of this option is to delete unused shortcut bindings. Reviewers: #frameworks, davidre, dfaure, meven, cfeck, davidedmundson Reviewed By: davidedmundson Subscribers: davidedmundson, ngraham, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25307
2019-11-12Add KPropertySkeletonItemKevin Ottens
Summary: This new item allows to use a QObject property as a source for a setting. This is especially convenient for using with KCMs present in systemsettings which tend to store information outside of KConfig (for interfacing deeper with the system). Reviewers: #frameworks, dfaure, davidedmundson, bport, crossi Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25211
2019-11-12Prepare KConfigSkeletonItem to allow inheriting its private classKevin Ottens
Reviewers: #frameworks, dfaure, davidedmundson, bport, crossi Subscribers: vkrause, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25210
2019-10-31These methods were adding in qt5.15Laurent Montel
2019-10-30kconfig_compiler: Move the KSharedConfig::Ptr when using themAlbert Astals Cid
Summary: The generated classes of kconfig_compiler take a KSharedConfig::Ptr by value, one possibility would be to make them const & but that is BIC so instead what we do is just move them to the only place the config is used so the cheaper move constructor can be used instead of the copy constructor Reviewers: ervin, apol Reviewed By: ervin, apol Subscribers: kde-frameworks-devel, ervin, apol Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25061
2019-10-30Make it compile against qt5.15 without deprecated methodLaurent Montel
2019-10-22API dox: adapt kapidox & ecm_add_qch settings to new deprecation macrosFriedrich W. H. Kossebau
GIT_SILENT
2019-10-20Enable KF_* group deprecation macrosFriedrich W. H. Kossebau
GIT_SILENT
2019-10-18Use ECMGenerateExportHeader to manage deprecated API betterFriedrich W. H. Kossebau
Summary: Allows * projects linking to KConfigCore/Gui to hide deprecated API up to a given version or silence deprecation warnings after a given version, using * -DKCONFIGCORE_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKCONFIGCORE_NO_DEPRECATED * -DKCONFIGCORE_DEPRECATED_WARNINGS_SINCE * -DKCONFIGCORE_NO_DEPRECATED_WARNINGS * -DKCONFIGGUI_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKCONFIGGUI_NO_DEPRECATED * -DKCONFIGGUI_DEPRECATED_WARNINGS_SINCE * -DKCONFIGGUI_NO_DEPRECATED_WARNINGS or * -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKF_NO_DEPRECATED * -DKF_DEPRECATED_WARNINGS_SINCE * -DKF_NO_DEPRECATED_WARNINGS * to build KConfigCore/Gui optionally with deprecated API excluded from the build, using "EXCLUDE_DEPRECATED_BEFORE_AND_AT" cmake argument. Test Plan: Builds with EXCLUDE_DEPRECATED_BEFORE_AND_AT set to 0, 4.0.0, 5.0.0, 5.11.0, 5.24.0, 5.39.0, 5.42.0, CURRENT. Reviewers: #frameworks, mlaurent Reviewed By: mlaurent Subscribers: mlaurent, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24496
2019-10-16Expose isImmutable to introspection (e.g. QML)Kevin Ottens
Reviewers: #plasma, #frameworks, mart, dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24697
2019-10-10Add convenience for defaults/dirty states to KCoreConfigSkeletonKevin Ottens
Summary: It allows to verify if all the items of the skeleton are in their default values or if they hold any value deviating from the latest loaded values from KConfig. We didn't really need this during the KCModule/QtWidgets time since we could write KConfigDialogManager just fine without it. But for use with QML and aiming at having similar magic in KQuickAddons::ConfigModule such convenience functions will be needed. Reviewers: #plasma, #frameworks, dfaure, mart Subscribers: apol, kossebau, davidedmundson, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24494
2019-10-08Make kconfig_compiler generate ctors with the optional parent argKevin Ottens
Reviewers: #plasma, #frameworks, dfaure, mart, apol Reviewed By: apol Subscribers: kossebau, apol, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24490