Неділя, 13 лютого 2022
Сьогодні KDE оголошено про випуск KDE Frameworks 5.91.0.
KDE Frameworks складається з 83 додаткових бібліотек, які розширюють можливості Qt і реалізують багато широковживаних функціональних можливостей, є зрілими, належним чином рецензованими та добре перевіреними, а також надаються за дотримання розробниками достатньо дружніх щодо них умов. Вступні зауваження щодо цих бібліотек можна знайти у оголошенні щодо випуску KDE.
Цей випуск є частиною запланованої послідовності щомісячних випусків, яка надасть змогу розробникам використовувати поліпшення у бібліотеках швидко і без проблем.
Нове у поточній версії
Baloo
- Static libs linked into shared libs need -fPIC
Breeze Icons
- start-here-kde: Make icon adaptable to dark themes (bug 416302)
- Fix icon colors to be consistent across all sizes
- Check executables exist in PATH before passing them to QProcess
- Declare namespace for kongress icon
- Fix naming of brightness icons
Extra CMake Modules
- kde_package_app_templates: drop atime,ctime, consistently set mtime
- kde_package_app_templates: use numeric owner/group with tar
- Set the right @since version for ECMQmlModule
- Only enable -bsymbolic-functions when Qt is built in a compatible way
- Introduce ECMFindQmlModule.cmake
- Add ecm_set_deprecation_versions cmake function
Framework Integration
- Install plugin in kf
- Fix wrong porting of KNSCore::Engine::configSearchLocations (bug 448237)
KActivitiesStats
- reduce boost
KActivities
- Use uppercase includes
- Unharcode Qt major version
KAuth
- Move plugins in kf
directory - Correct the dependencies specified for KAuth
- Bump minimum required version of Polkit-Qt-1 to 0.112.0
- Remove Polkit-Qt build support, Polkit-Qt-1 replaced it a long time ago
- Adjust CMake code to find PolkitQt{5,6}-1
KCalendarCore
- Revert "Honour STATUS:CANCELLED"
- Serialize container sizes as 32bit integers
- Compare timeSpec() for the due date/time, too
- Fix generate pkg file
- T12270: create an inheritance hierarchy of private types
KCMUtils
- Add KPluginWidget::load()
- Remove assertion for KPluginMetaData param in KCModuleLoader::loadModule
- KCModuleProxy: Use std::optional to check if we have a KPluginMetaData object
- KCModuleProxy: Replace space with underscore when registering DBus service
- Switch header style to ToolBar for system settings
- kpluginmodel: Also copy plugin Id from KService to json object
- KCMUtils can be built on Windows too
KConfig
- Introduce StandardShortcutWatcher to watch for runtime changes (bug 426656)
- Extract isNonDeletedKey() helper function
- Look for entries with common group prefix in entryMap's subrange
- KConfigPrivate::copyGroup: remove redundant entryMap lookup
- groupList: convert each group name from UTF-8 once
- Exclude deleted groups from groupList() (bug 384039)
KConfigWidgets
- KLanguageButton: Don't insert duplicates
- KLanguageButton: Adapt to new .desktop filenames
- Change shortcuts of standard actions if standard shortcut changes (bug 426656)
- Use BUILD* deprecation wrapper for virtual method (bug 448680)
- Simplify KHamburgerMenu menu items
- Only require KAuth on Linux/FreeBSD
- Don't use KAuth on Windows
KCoreAddons
- Search in kf
plugin - kcoreaddons_target_static_plugins: Use private linking for plugin registration file
- klibexec helper to resolve libexec path relative
- KPluginMetaDataTest: Fix check for service type querying error essage
- desktopfileparser: Avoid a run-time string concatenation
- KF5CoreAddonsConfig: check desktoptojson version when cross-compiling
- desktoptojson: Further improvements to cross-compilation mode
- Fix kcoreaddons_desktop_to_json when cross-compiling
- Add KPluginMetaData::fromJsonFile()
- KPluginMetadata: store all paths as absolute ones
- KPluginMetaData::metaDataFileName: Fix broken check if we have the metaDataFileName value set
- kcoreaddons_add_plugin: Throw error when we have unparsed args
- Improve formatRelativeDateTime
- Improve error message for KPluginFactory::loadFactory
- Add missing copying of error text in KPluginFactory::instantiatePlugin
KDAV
- Fix header installation path to include module prefix
- Use uppercase "KDAV" name as qmake identifier, to be match KF standards
- Fix pri file to also note KCoreAddons dependency
- Fix non-existing include path set in pri file
KDeclarative
- proper position for top separator
- [KeySequenceItem] Make keySequence «non-null», «non-undefined» and «non-""»
- [KeySequenceItem] Fix code style and bump QML imports
- Make QML code depend less on the
kcm
context property - Fix QT_NO_OPENGL build after 66c5bb0efa
- kquickcontrols: Improve accessibility in ColorButton.qml (bug 449282)
- GridDelegate: Focus on the delegate after a menu is closed
- GridDelegate: Open menu when Menu key is pressed
- Exclude epoxy in qt6 => exclude plotter class
- Deprecate KDeclarative::ConfigPropertyMap in favor of KConfigPropertyMap
- It's not necessary now as "the Frameworks that actually require
- Don't use KGlobalAccel on Windows
KDED
- install plugins in kf
- Set order of kded launching with systemd boot
- kded supports building on Windows, make sure we have our dependencies available
KDELibs 4 Support
- Link against KF5::Auth
- Also add the KAuth dependency in the CI metadata
KDESU
- Check executables exist in PATH before passing them to QProcess
- Port from KToolInvocation::kdeinitExecWait (deprecated) to QProcess
- kdesud: close all file descriptors > 3 on exec()
KDocTools
- Check executables exist in PATH before passing them to QProcess
- Don't hardcode "kf5" for the catalog search path
KFileMetaData
- make TypInfo comparison const
- Install plugins in kf
- deprecate image extraction via embeddedimagedata
KGlobalAccel
- Fix action registration and unregistration order (bug 448369)
- Check executables exist in PATH before passing them to QProcess
KDE GUI Addons
- Add Google Maps Geo URI handler
- Add Qwant Maps to CMakeLists
- Add Qwant Maps Geo URI handler
- Add a fallback handler for the geo: URI scheme
- Install plugins in kf
KHolidays
- Update Taiwanese holidays
- UK holiday change 2022 (Spring bank holiday) (bug 448305)
KHTML
- fix khtml crash in wayland session
- [ci] Fix phonon dep
KI18n
- Default initialize QVariants as such, not as a QString
- install plugins in kf
- Fix warning info
- KuitSetup: fix setting classification of tags
KIconThemes
- Check executables exist in PATH before passing them to QProcess
- Don't create a new KColorScheme for each KIconColors
KIdleTime
- Change plugin install dir on macOS
- Install plugins in kf
KImageFormats
- Check executables exist in PATH before passing them to QProcess
KIO
- [KFilePlacesView] Use helpEvent for teardown action tooltip
- KPropertiesDialog: only load plugins suitable for mime type of file
- Use new KLibexec to locate kioslave5
- Consider slow files as remote files in previewjob (bug 372849)
- [KFilePlacesView] Elide section header if needed
- exec line is not necessary now
- [desktopexecparser] Consider associations from mimeapps.list to determine whether an app supports a scheme (bug 439132)
- [kopenwithdialog] Fix filtering (bug 449330)
- [KFilePlacesView] Adjust entire delegate height during (dis)appear animation
- kdirmodel: Allow using full path for Icon in .desktop file (bug 448596)
- Deprecate class KNTLM & methods, no users known outside of kio-http
- [previewjob] Don't recreate same regex
- KDirOperator: on first show, don't display files in dir-only mode
- Group configure_file and kcoreaddons_add_plugin
- Install plugins in kf
- Officially deprecate kcoredirlister methods that use QRegExp
- Utilize KPluginMetaData::value overloads
- Install kio_version.h in the KIO include prefix
- Add option of using DBus activation for ApplicationLauncherJob
- [KFilePlacesView] Don't highlight delegate when hovering header area
- [KFilePlacesView] Call teardownFunction from inline eject button, too
- [KFilePlacesView] Don't hide hidden entries when clicking one
- [KFilePlacesView] Add inline eject button
- [KFilePlacesModel] Introduce TeardownAllowedRole
- [KFilePlacesView] Wire up QAbstractItemView::iconSize
- [KFilePlacesView] Add getter and change signal for showAll
- [KFilePlacesView] Allow to provide a teardown function
- [KFilePlacesView] Add middle click support and signals for item activation
- [KFilePlacesView] Refactor context menu
- file_unix: Do not try to preserve ownership when permission is -1 (bug 447779)
- KPropertiesDialog: use the KFileItem when checkig if the url is local (bug 444624)
- Deprecate the "connected slave" feature
Kirigami
- OverlaySheet: Accommodate the left and right padding
- OverlaySheet: Initialise the view with sound values
- FormLayout: Replace heuristic approach with an instanceof check
- Fix install plugin in kf
- libkirigami: Port to target_sources and other target-specific properties
- Disable BUILD_EXAMPLES/TESTING when BUILD_SHARED_LIBS is off
- Add Chip Component
- Add android related files to template
- Add BasicListItem.iconSelected property and use it in CheckableListItem
- Take in count difference in bottom and top padding in search icon
- API dox: document CamelCase include headers
- KF5Kirigami2: install headers to path prefix matching C++ namespace Kirigami
- Introduce "InputMethod" singleton and supporting code to detect virtual keyboard
- Properly document ShadowedRectangle and co
- Deprecate TabBar toolbar style
- Dialog: Smoothen enter/exit animation, and ensure themes don't add footer background
- Improve search icon inside SearchField
- Give the NavigationTabBar component an ocean style
- Add a search icon to the SearchField
- template: remove title from AboutPage
- examples/PageRouter: don't introduce applicationWindow id
- Make enter/key presses "click" BasicListItems
- Improve default template
- Dialog: Use performant shadow
- Use version-less/non-deprecated install location variables
- Fix find_dependency
- change color when card is highlighted
- Kirigami supports Windows, ensure we have our dependencies there too
KItemModels
- Rework removeParentMappings() to not rely on stable QHash iterators
- Don't cache end iterator when modifying the container
KJobWidgets
- Check executables exist in PATH before passing them to QProcess
KJS
- Revert "Install kjs_version.h in /usr/include/KF5/KJS/"
KNewStuff
- Update code snippet for NewStuff.Action
- Register KNSCore::Entry under name "Entry" as a Q_GADGET to QML
- Consume string views before they become invalid
- Focus search field by default unless doing so would show the virtual keyboard (bug 444727)
- Deprecate KNS3::Button class in favor of KNSWidgets::Button
- Introduce KNSWidgets::Button class for better compatibility with KF6 changes
- KNSWidgets::Action add compatibility for unified entry class in KF6
- Unify how kpackageType is determined for the addons
- Button.qml Fix binding for engine property
- Button.qml: Use QML loaders for dialog component
- Fix broken usage example for NewStuff.Action
- Remove QProcess::ExitStatus parameter from signal handler parameter list if we don't need it
KNotification
- Remove Phonon from Linux CI
- Add KStatusNotifierItem::hideAssociatedWidget()
- KStatusNotifierItem: use actions instead of Yes/No in Quit confirm dialog
KPackage Framework
- Simplify code using KPluginMetaData::fromJsonFile
- Explicitly call KPluginMetaData::fromJsonFile when constructing metadata objects
- Fix unintended result in readKPackageTypes (bug 448625)
- Use ecm_mark_nongui_executable() for mock:// handler
- PackageJob: Use QStandardPaths::findExecutable() to find resolvers
- QueryTest: validate the install() result
- Build static libs which are linked into shared libs as PIC
KQuickCharts
- ModelSource: Don't use QPointer for storing the model
- ModelSource: Cache minimum/maximum properties of the model
KRunner
- search plugins in kf
- Put aliased classes in "KRunner"-namespace
- Fix flickering in Application Launcher for every character typed (bug 423161)
- Port to KDEDeprecationSettings cmake function
- KF5RunnerConfig.cmake.in: Explicitly require QtGui and KCoreAddons, exclude Plasma on deprecation free builds
- Add compatibility type definitions for classes without 'Plasma' namespace
- Fixups for building without including KService/KIO/Plasma-Frameworks (bug 447908)
- Silence deprecation warning for KPluginInfo/KServiceTypeTrader in compatibility blocks
KService
- Install kservice_version.h in KService include prefix
- Make parseLayoutNode function const
- Make "missing merge tag" error actionable
KTextEditor
- Abort completion on view scroll on wayland
- Avoid flicker on refresh
- install plugin in kf
- Use QDir::temp().filepath() instead of manually creating temp file paths
- KateModOnHdPrompt::slotDiff: Create diff file in temp folder (bug 448257)
- avoid flicker for border on size changes (bug 435361)
- Fix undo manager leaks more properly
- When using tabs, use tabs to auto indent (bug 367966 375529)
- Fix @since for aboutToSave
- Fix leaks in undo manager
- Don't scroll on select all (bug 435855)
- Fix auto-reloading files in git repositories
- Handle single statement condition blocks better (bug 385472)
- Fix cstyle for cases where there is a func in param
- Reload doc on OnDiskCreated
- Allow disabling focus frame (bug 418657)
- Fix selection scrolling from line border works only downwards (bug 419076)
- Fix camel cursor when last word is of one letter only (bug 448692)
- only execute diff in path
- only start programs in user's path
- completion: Use scored fuzzy matching
- Do proper fuzzy matching in completion (bug 401509)
- Fix undo history wrongfully restored in some cases
- Revert "Do not cancel mouse selection when using the keyboard" (bug 446189)
- don't let auto-detection overwrite user settings
- Introduce auto indent detection
- Restore undo history when document is same (bug 297883)
- Fix drag pixmap highlight sometimes does not match original text (bug 438567)
- Find: Update working range when replacing (bug 447972)
- set QClipboard::Selection for select all (bug 428099)
- Fix rash when switching between tabs while search is running (bug 445683)
- improve wording for modified on disk warnings (bug 372638)
- KTextEditor has a hard dependency on KAuth - ensure it is available
- Introduce Document::aboutToSave signal
- Fix creative QString constructions from numerical values
- Use version-less install target default arguments
- Use non-deprecated style option initialization
- Combine keys and modifiers using the | operator
- Disambiguate QStringBuilder to QByteArray conversion for hashing
- Make comparison operator const
- Don't pass a QString pointer to QString::compare
- Automatically determine iterator type
- Fix QChar conversion ambiguities
KWallet Framework
- Fix install headers
KWayland
- Ensure when unmapped is emitted, ::windows() will not contain unmapped window
- Don't use hard-coded versions with targets and variables
- Install pkg-config file
- Deprecate PlasmaWindowModel::requestVirtualDesktop()
- kwayland server has been moved to plasma kwayland-server since 5.73
- src/client: wrap deprecated methods in deprecation macros
KWindowSystem
- Check executables exist in PATH before passing them to QProcess
- install plugins in kf
- Avoid XKeycodeToKeysym in KKeyServer::initializeMods (bug 426684)
- Remove placeholder wayland platform plugin
- [kwindowinfo] Add support for reading _GTK_APPLICATION_ID
- Add KWindowSystem::updateStartupId(QWindow *window)
KXMLGUI
- Check executables exist in PATH before passing them to QProcess
- Use uppercase includes
- Allow KToolBar to be in other places than MainWindow's ToolBarArea
- Fix i18n comment not being properly extracted
ModemManagerQt
- Explicitly register QDBusObjectPath type
NetworkManagerQt
- Don't write to QByteArray out of bounds
- Make de/serializing of the parity option symmetric
- Add support for WPA3-Enterprise 192-bit mode
Oxygen Icons
- Check executables exist in PATH before passing them to QProcess
Plasma Framework
- Check executables exist in PATH before passing them to QProcess
- ExpandableListItem: Deprecate custom isEnabled property and alias it to enabled (bug 449539)
- PC3 ButtonContent: Move property defaultIconSize to the top-level component
- Identify containments using X-Plasma-ContainmentType instead of service types
- Native interface always available
- ModelContextMenu: drop Accessible.role property
- Do not use Control for PC3::IconLabel (bug 445899)
- Corona::containmentForScreen: Ignore activities when an empty string is used (bug 448590)
- Change where add_feature_info(EGL) is called
- Fix detection of GLX support in QtGui
- PC3 ScrollView: set step sizes based on devicePixelRatio
- ConfigModel: Expose Roles enum to QML
- Adapt build system for building against qt6 + fix some compile errors
- Don't fallback to EGL::EGL, just don't link to EGL when it's not found
- Always sync the setPanelBehavior to wayland (bug 448373)
- PlasmaQuick::Dialog - Fix flickering issues when resizing (specially in krunner) (bug 427672)
- Always sync the setPanelBehavior to wayland (bug 426969)
- PC3 ScrollView: Avoid importing QtQuick.Controls.2
- Doc: Improve descriptions of Plasma::DataSource methods
- Don't crash when a screen gets disabled and enabled again (bug 447752)
- PC3 RadioIndicator: use radiobutton.svg for breeze-light and breeze-dark
- KWayland does not make sense outside of Linux/FreeBSD, so don't try to depend on it there
- Add Yakuake panel icon (bug 427485)
- Deprecated PlasmaExtras.ScrollArea component
- PC3 SwipeView: use longDuration for highlight animation
Prison
- Prison supports Windows
QQC2StyleBridge
- Avoid needlessly reading font settings
- StyleItem: emit signal on style changes
- install plugins in kf
- take icon width into account
- adapt width of combobox to its content (bug 403153)
- Theme placeholderTextColor
- Make menu items taller in Tablet Mode
- Fix find_package
- Remove QStyle::State_Horizontal when it's not horizontal
- Adapt build system for building against qt6
- Slider: handle scrolling (bug 417211)
- Use upstream scroll implementations for Combobox and SpinBox
- Use metrics from Breeze for menu items (bug 447289)
Solid
- Convert some connect to new signature style
- [UDisks2 Backend] Don't do media check for loop devices
- [upower] Properly round up battery's capacity (bug 448372)
- [UPower Backend] Check for Bluez for any unknown battery type
- [UDisks2] Ignore file systems mounted with x-gdu.hide option
Sonnet
- Allow to install plugin in kf5 or kf6 directory
Syntax Highlighting
- Python: fix line continuation starting with a string
- CSS: add some values and functions
- CSS: fix nested function call (bug 444506)
- Zsh: fix line-break and pattern in double bracket condition
- Bash: fix line-break in double bracket condition (bug 448126)
- Bash: fix parameter expansion replacement with extended glob
- [R] Add support for new pipe from R 4.1
- Update Stan highlighting
Security information
The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure faure@kde.org Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB
Встановлення бінарних пакунків
У Linux рекомендованим шляхом встановлення KDE Frameworks є пакунки вашого улюбленого дистрибутива. Настанови щодо встановлення програмного забезпечення KDE у вашому дистрибутиві Linux.
Збирання з початкових кодів
Увесь початковий код програм KDE Frameworks 5.91.0 можна отримати безкоштовно. Настанови щодо збирання та встановлення доступні на інформаційній сторінці програми KDE Frameworks 5.91.0.
Бібліотеки також можна зібрати з початкових кодів за допомогою базової системи команд cmake .; make; make install. Цей спосіб є найпростішим, якщо вам потрібні лише окремі бібліотеки шару 1. Зацікавленим в удосконаленні бібліотек та стеженні за розробкою загального набору варто скористатися скриптом kdesrc-build. Для роботи Frameworks 5.91.0 потрібна версія Qt 5.15.2.
Із докладним списком усіх бібліотек Frameworks можна ознайомитися на api.kde.org.
Приєднатися до команди
Ті, кому цікаво стежити за розробкою Frameworks і взяти участь у його розробці, можуть ознайомитися із вмістом сховищ git і стежити за обговореннями у списку листування розробників KDE Frameworks. Правила і поточний стан проєкту і плани наведено у вікі Frameworks. Інтерактивні обговорення проводять на каналі IRC #kde-devel у Libera Chat.
Підтримка KDE
KDE — спільнота з розробки вільного програмного забезпечення, яка розвивається лише завдяки допомозі багатьох добровольців, які працюють у вільний від інших занять час. KDE завжди шукає нових учасників, які можуть допомогти розробці, виправленні і сповіщенні про вади, створенні документації, перекладі, просуванні, фінансуванні тощо. Будь-який внесок буде з вдячністю сприйнято спільнотою. Будь ласка, ознайомтеся зі сторінкою підтримки KDE, щоб дізнатися більше, або станьте спонсором KDE e.V. за допомогою нашої ініціативи Join the Game.