Zum Inhalt springen

Willkommen zu Planet KDE

Dies ist eine Zusammenstellung von Blogs von Mitgliedern der KDE-Gemeinschaft in verschiedenen Sprachen.

Samstag, 11 März 2023

Samstag, 11 März 2023

Heute gibt KDE die Veröffentlichung der KDE Frameworks 5.104.0 bekannt.

KDE Frameworks sind 83 zusätzliche Bibliotheken für Qt, die eine große Vielfalt an häufig benötigten Funktionen in ausgereiften, von anderen Entwicklern geprüften und gut getesteten Bibliotheken mit liberalen Lizenzbedingungen bieten. Eine Einführung finden Sie in der Ankündigung zur Veröffentlichung der KDE Frameworks.

Dies ist Teil einer Serie von monatlich geplanten Veröffentlichungen, um Verbesserungen schnell und regelmäßig für Entwickler verfügbar zu machen.

Neu in dieser Version

Baloo

  • extactor: add KAboutData

Breeze Icons

  • Add draw-number

Extra CMake Modules

  • Load translations for application-specific language also on Win and Mac (bug 464694)
  • ECMGenerateExportHeader: fix duplicated addition of deprecation macros code
  • Find wayland.xml from wayland-scanner.pc

KConfig

  • Don't include screen connector names in screen position/size data (bug 460260)
  • Fix multimonitor window size restoration (bug 460260)
  • Sort connector names for multi-screen size/position keys (bug 460260)

KConfigWidgets

  • KConfigDialogManager: Fix logs formatting

KCoreAddons

  • Deprecate KPluginMetaData::initialPreference
  • Convert BugReportUrl in desktoptojson (bug 464600)
  • exportUrlsToPortal: stop fusing remote urls (bug 457529)
  • Show deprecation warning about desktoptojson tool

KDeclarative

  • Guard nullable property access, and bind instead of assigning once
  • AbstractKCM: Rewrite padding expressions to be more readable
  • Add import aliases, bump internal import versions as needed
  • Drop unused QML imports
  • [managedconfigmodule] Fix deprecation comments
  • [configmodule] Deprecate constructor without metadata
  • [configmodule] Deprecate setAboutData

KDocTools

  • Install version header

KFileMetaData

  • Mobi extractor: only extract what is asked (bug 465006)

KGlobalAccel

  • Skip reloading global registry settings instead of asserting

KHolidays

  • Add holidays for Dominican Rebublic (bug 324683)
  • Kf5 add cuba holidays (bug 461282)
  • holidayregion variable 'regionCode' shadows outer function

KI18n

  • KI18nLocaleData target: add include dir for version header to interface
  • Load translations for application-specific language also on Win and Mac (bug 464694)

KIconThemes

  • Properly mark panel icon group as deprecated
  • Deprecate KIconLoader overloads in KIconButton and KIconDialog

KIdleTime

  • wayland: Guard wayland object destructors (bug 465801)

KIO

  • DeleteOrTrashJob: when trashing a file in trash:/ delete it instead (bug 459545)
  • Set bug report URL for Windows Shares KCM (bug 464600)
  • OpenFileManagerWindowJob: fix opening multiple instances under Wayland [KF5] (bug 463931)
  • Add missing URLs in KCMs for reporting bugs (bug 464600)
  • kshorturifilter: return directly if cmd is empty
  • [kprocessrunner] Use aliased desktop file name for xdg-activation

Kirigami

  • Dialog: Don't let user interact with footer during transitions
  • For styling and recoloring, use down property instead of pressed
  • Fix mistyping of Kirigami.Settings.isMobile

KItemModels

  • KDescendantProxyModel: Do not remove indexes from mapping before announcing the removal

KNewStuff

  • DownloadItemsSheet: Fix scrolling (bug 448800)

KPackage Framework

  • Check pluginId contains '/' before using it as package type (bug 449727)

KPeople

  • Install version header

KRunner

  • KF5KRunnerMacros: Add compat code and warning for in KF6 renamed configure_krunner_test macro

KService

  • Fix deprecation ifdef
  • Deprecate KService::serviceTypes and KService::hasServiceType
  • application: Add X-SnapInstanceName
  • Add method to query supported protocols for a service

KTextEditor

  • Improve cstyle performance (bug 466531)
  • Improve performance of rendering spaces with dyn wrap disabled (bug 465841)
  • documentSaveCopyAs: Use async job api (bug 466571)
  • Optimize rendering spaces with dyn wrapping (bug 465841)

KWindowSystem

  • Remove extra semicolon
  • Deprecated KWindowSystem::allowExternalProcessWindowActivation
  • [kstartupinfo] Deprecate setWindowStartupId
  • [kstartupinfo] Deprecate KStartupInfo::currentStartupIdEnv
  • [kstartupinfo] Fix API docs for currentStartupIdEnv

NetworkManagerQt

  • settings: fix -Wlto-type-mismatch in NetworkManager::checkVersion decl

Prison

  • KPrisonScanner target: add include dir for version header to interface

Purpose

  • Place Purpose::Menu headers into C++ namespace subdir, w/ compat headers

QQC2StyleBridge

  • ProgressBar: Pause indeterminate animation when invisible
  • Added flat combobox without outline unless hovered
  • TextField: Fix password-protection code from affecting normal text fields (bug 453828)
  • Drawer: Fix RTL by copying sizing code from upstream Default style
  • Drawer: Use simpler sizing expressions from upstream Default style
  • Don't check for selectByMouse on a non-existent root for TextArea
  • use again the palette coming from Kirigami.Theme (bug 465054)
  • Only enable TextArea context menu when able to select by mouse

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

Sonntag, 12 Februar 2023

Sonntag, 12 Februar 2023

Heute gibt KDE die Veröffentlichung der KDE Frameworks 5.103.0 bekannt.

KDE Frameworks sind 83 zusätzliche Bibliotheken für Qt, die eine große Vielfalt an häufig benötigten Funktionen in ausgereiften, von anderen Entwicklern geprüften und gut getesteten Bibliotheken mit liberalen Lizenzbedingungen bieten. Eine Einführung finden Sie in der Ankündigung zur Veröffentlichung der KDE Frameworks.

Dies ist Teil einer Serie von monatlich geplanten Veröffentlichungen, um Verbesserungen schnell und regelmäßig für Entwickler verfügbar zu machen.

Neu in dieser Version

Baloo

  • Fix automoc issues on generated DBus source files
  • Don't skip automoc for DBus interfaces

Extra CMake Modules

  • ECMAddQtDesignerPlugin: use correct plugin IID
  • ECMAddQch: support doc linking also against Qt6 docs
  • KDEPackageAppTemplates: add "_kapptemplate" postfix to target names
  • Fix compatibility with newer Gradle provided with Qt 5.15.8

KArchive

  • Limit size of file to be added by what the tar header supports

KCalendarCore

  • Add Q_PROPERTY for IncidenceBase::url as well
  • Avoid calling twice update() in setAttendees()
  • Unbreak static build consumers

KCMUtils

  • KCModuleQml: Specify URL for root component's QML context
  • Set systemsettings as alias when generating desktop files

KCodecs

  • Remove winsami2 from codecs list
  • Replace jis7 with ISO-2022-JP in offered codecs
  • Fix name for CP 949 in KCharsets::encodingsByScript (bug 463848)

KConfig

  • kconf_update: use standard exit status code
  • kconf_update: use CMAKE_INSTALL_FULL_LIBDIR (bug 465125)
  • KCoreConfigSkeleton::ItemEnum::Choice2: add deprecation warning markup
  • KCoreConfigSkeleton::ItemEnum::choices2(): add deprecation markup
  • Android: Fix a bug where new file wouldn't be created

KConfigWidgets

  • [kcodecaction] Deprecate QTextCodec and mib-based API (bug 463421)
  • [kcodecaction] Add name-based trigger signal
  • kcommandbar: Fix positioning when no mainwindow parent
  • kcommandbar: Fix no central widget crashes app (bug 463251)

KCoreAddons

  • don't needlessly copy urls while iterating
  • KSandbox: Warn when running without flatpak-spawn privileges

KDeclarative

  • Remove unused QtGraphicalEffects import
  • Fix anchors error in AbstractKCM & SimpleKCM types
  • QML/JS: Prefer const over let, and use strict === equality

KDED

  • Only recreate icons if an icon dir changed (bug 463353)

KDELibs 4 Support

  • Fix transparent borders on the right and bottom sides of Italy flag

KFileMetaData

  • Also add external extractors to vector of all plugins (bug 463598)
  • Fix loading of external extractors and writers (bug 463598)

KGlobalAccel

  • Send X11 startup id when invoking service actions

KDE GUI Addons

  • waylandinhibition singleton pattern for ShortcutsInhibitManager
  • waylandclipboard: roundtrip to get accurate focus state (bug 463199)
  • KColorSchemeWatcherMac: do not use new NSAppearance API on older macOS versions (bug 463752)

KImageFormats

  • psd: conversion speed improvements (kf5)
  • Fix writing TGA alpha depth flag
  • HDR support removed from RAW plugin
  • heif: reject invalid files with zero size

KInit

  • kdeinit: Use close_range for cleanup_fds if available

KIO

  • CommandLauncher: Emit error when command was not found
  • Add KUrlNavigator::supportedSchemes, to replace customProtocols
  • Add missing copyFromFile entries to http.json for webdav and webdavs (bug 464450)
  • Mark WorkerBase::needSubUrlData as deprecated
  • [commandlauncherjob] Deprecate setIcon
  • job_error: add missing space between sentences for one string (bug 464631)
  • Correct setDesktopName() docs regarding optionality of .desktop suffix
  • Drop outdated docs for mailto kioslave
  • Add deprecation warnings for KDirOperator::setView(KFile::FileView)
  • Deprecate unused Scheduler::connect/disconnects methods
  • Deprecate Slave::isConnected/setConnected
  • Restore old behavior for KFileFilterCombo::setFilter (bug 463309)
  • KCoreDirListerCache: Remove unnecessary assert
  • KFilePlacesView: Set transientParent on context menu (bug 453532)
  • KURISearchFilterEngine: Use DuckDuckGo as a default shortcut
  • widgets/renamefiledialog: remove bulk rename number limit

Kirigami

  • PageHeader: Fix title's leading padding in RTL environment
  • PageHeader: Factor out common sub-expressions
  • PageHeader: Break down long and complex expression into multiple lines
  • Take into account the extra spacing nav buttons have
  • Take into account more button after is visible (bug 464988)
  • private/PrivateActionToolButton: Remove unused icon component
  • Fix escape key closing non-modal OverlayDrawers
  • Take into account side margins (bug 465052)
  • Disable HoverHandler (bug 464829)
  • BasicListItem: Patch tooltip tests for Qt5
  • BasicListItem: Add test for tooltip feature
  • tests: Sort tests alphabetically in CMake
  • Add hover-tooltip to the labels of BasicListItem
  • Remove examples for components which are going to be removed in KF6
  • ForwardButton: Remove unused initial properties
  • SwipeNavigator: Hotfix failure to load the component
  • OverlayDrawer: Remove unused object id
  • Fix the only compile-time warning left in KF5
  • OverlaySheet: Switch from int to real as appropriate
  • Fix last instances of imports without aliases
  • Explicitly specify arguments in signal handlers (x2)
  • Explicitly specify arguments in signal handlers
  • Fix some code style/formatting
  • Avatar: Add tests for action triggering
  • Avatar: Fix triggering main action
  • ColumnView: Explicitly support RTL in leading separator
  • ColumnView: Use Kirigami.Theme.Window colorSet for separators
  • ColumnView: Remove obsolete code
  • ColumnView: Use RTL-friendly name for internal method
  • ColumnView: Make consistent calls to shared instance
  • Optimize connections on parent change, and make sure to unbind if target set to null
  • WheelHandler: Fix scrolling over ScrollBars on ScrollablePage (bug 438526)
  • ScrollablePage: Enhance code style
  • ScrollablePage: Drop extra rounding code
  • a11y: Ignore action buttons for invisible actions
  • Page: Split default page title delegate into separate component
  • Page: Fix title delegate elision glitch
  • ActionToolButton: Replace hack with Accessible role
  • ShadowedTexture: Fix crash in cases where QSGTextureProvider::textureChanged.
  • Move license file of template to correct location

KNewStuff

  • Fix crash in QQuickQuestionListener (bug 464624)
  • Install desktop file for knewstuff-dialog (bug 464668)

KPackage Framework

  • Update README with new json metadata
  • Show deprecation message about the desktop to json conversion being removed

KParts

  • PartLoader: move UI strings out of template code in header
  • Deprecate class PartSelectEvent
  • Deprecate PartBase::setPluginInterfaceVersion(int)

KTextEditor

  • Fix indent failing due to unknown method 'replace'
  • Don't show selection count when there are none

KWidgetsAddons

  • Restore ABI compatibility broken in 29bb6d

KXMLGUI

  • Prevent user from expanding tooltips by key, if they weren't expandable
  • Remove duplicate "Whats This?" tooltips

NetworkManagerQt

  • Fix remaining 5 compile warnings (unused parameters)

Plasma Framework

  • Dialog: Fix calculation of distance between dialog and parent applet (bug 464513)
  • Refactor glowbar SVG
  • QMenuProxy & Plasma::Types::PopupPlacement: Reverse direction for RTL
  • QMenuProxy: Fix relative positioning with embedded/off-screen parent windows
  • IconItemTest: Wait for rendering before capturing an image of IconItem
  • iconitem: Use InOutCubic for the animation's easing curve
  • iconitem: Adjust fade animation to not flicker as much (bug 463685)

QQC2StyleBridge

  • ScrollBar: Add feature that Alt+Click inverts scrollToClickPosition behavior
  • ScrollBar: Fix glitch when animating back in transient mode
  • ScrollBar: React to style changes property
  • ScrollBar: Fix visuals in edge cases of rounding errors
  • ScrollBar: Fix visuals in overshoot state
  • ScrollBar: Never mirror horizontal scroll bars, even in RTL layout
  • ScrollBar: Remove duplicate property assignment
  • ScrollBar: Reduce string comparisons
  • ScrollBar,ScrollView: Use Control::mirrored property for RTL
  • ScrollView: Factor out subexpression in a way that actually works reliably
  • ScrollBar: Fix active control state after mouse release
  • ScrollBar: Fix jump target position for horizontal scrollbars
  • ScrollBar: Use newer shorthand properties to make code shorter
  • ScrollBar: Shuffle components around and flatten code
  • ScrollBar: Optimize for non-interactive mode: use property interceptor syntax
  • ScrollBar: Optimize for interactive mode: don't run invisible animations
  • ScrollBar: Factor constants out of Math.round()
  • Deduplicate identical pixelMetric call
  • ScrollView: Remove custom background-colored rectangle
  • Switch: Fix broken object id reference
  • Workaround for QTBUG-106489
  • Replace icon.color.a > 0 check with proper Qt.colorEqual
  • Refactor DefaultListItemBackground with a grain of type-safety
  • DelayButton: Fix hasFocus binding
  • Menu: Factor out property assignment
  • RadioButton: Add support for icons, just like in CheckBox (bug 442986)
  • TabBar: Fix glitchy overlap
  • TabButton: Refactor expressions using modern QQC2 attached properties
  • TabButton: Fix/add icons rendering
  • Revisit usages of QtQuick.Controls/AbstractButton::icon grouped property
  • Optimize loading icons from properties

Sonnet

  • Change underscores to spaces in Esperanto trigrams

Syntax Highlighting

  • Log: fix slow search regex ; add Critical section ; some improvement in Log File (advanced) (bug 464424)
  • Cobol: add extensions ; add exec sql block ; picture clause more permissive
  • Cobol: replace tab with 2 spaces
  • Add Zig language
  • Add Cabal syntax
  • Add Log File syntax
  • avoid copies of Theme and QString in functions that manipulate themes
  • FormatPrivate now contains a definition name rather than a reference to a definition
  • add noexcept
  • Theme::m_data is now always initialized with a valid pointer
  • optimize ThemeData::textStyleOverride
  • Replace DefinitionRef in StateData with a definition id
  • Add COBOL syntax
  • Indexer: suggest more minimal=1 or other rule for RegExpr with lookhaed=1 and .*
  • Indexer: check xml validity
  • feat: Add new syntax for Earthfile

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

Samstag, 14 Januar 2023

Samstag, 14 Januar 2023

Heute gibt KDE die Veröffentlichung der KDE Frameworks 5.102.0 bekannt.

KDE Frameworks sind 83 zusätzliche Bibliotheken für Qt, die eine große Vielfalt an häufig benötigten Funktionen in ausgereiften, von anderen Entwicklern geprüften und gut getesteten Bibliotheken mit liberalen Lizenzbedingungen bieten. Eine Einführung finden Sie in der Ankündigung zur Veröffentlichung der KDE Frameworks.

Dies ist Teil einer Serie von monatlich geplanten Veröffentlichungen, um Verbesserungen schnell und regelmäßig für Entwickler verfügbar zu machen.

Neu in dieser Version

Breeze Icons

  • Revert "Add SimpleScreenRecorder icon" (bug 412490)
  • Add some links for symbolic icons
  • Don't generate BINARY_ICONS_RESOURCE by default with Qt >= 6

Extra CMake Modules

  • FindXCB: remove Xprint and XEvIE
  • Mark translation fetching as deprecated

KDE Doxygen Tools

  • add -u to ensure all variables are defined when used
  • update dependencies and add a script to automate this

KAuth

  • Fix polkit package name in CMake config (bug 463402)

KConfig

  • fix safety issue of multiple threads use KConfig in the same process

KConfigWidgets

  • [kcommandbar] Save last used items in state config
  • [kcodecaction] Deprecate KEncodingProper-based API

KContacts

  • Fix bug 395683 Entry for security-aware messengers (bug 395683)

KCoreAddons

  • Config.cmake.in: workaround Inotify static issue (bug 460656)
  • Better Pluralize 'n minutes ago' (bug 462261)
  • Fix portal urls cache on X11 (bug 460314)

KDeclarative

  • calendarevents: add new alternate date ready signal and deprecate the old one (bug 463196)
  • Support modifierOnlyAllowed in KeySequenceItem

KFileMetaData

  • odfextractor: Add support for Open Document Graphics

KGlobalAccel

  • Don't install kglobalacceld5 service file for KF6
  • Deprecate activateGlobalShortcutContext and shortcut contexts in general

KDE GUI Addons

  • waylandclipboard: Be a bit smarter about when to use the QGuiApplication::clipboard (bug 462979)
  • KeySequenceRecorder: Allow modifier-only shortcuts
  • KColorSchemeWatcherWin: Fix checking for dark mode
  • Correct descriptions for CMake options WITH_WAYLAND and WITH_X11
  • waylandclipboard: Update QClipboard when gaining focus (bug 454379)

KHolidays

  • holidays/plan2/holiday_us_en-us - fix Junetenth date
  • Fix German "Buß- und Bettag" holiday is wrong (SN,BY) (bug 461835)
  • Add holidays for Malaysia (bug 462867)
  • cmake: Use ECMQmlModule for declarative plugin
  • qcalendarsystem condition 'months<0' is always true

KImageFormats

  • raw: tweak seek implementation
  • heif: fix error handling
  • heif: rewrite plugin to use only libheif C API

KInit

  • Fix Windows build

KIO

  • [kprocessrunner] Don't specify which desktop the app should be launched on (bug 462996)
  • Fix crash when dealing with user notification dialog
  • [WidgetsAskUserActionHandler] Add fallbacks for dialog parent windows (bug 463124)
  • [jobuidelegate] Set window when creating delegate
  • kdiroperator: fix full file path not being stripped (bug 459900)
  • Fix integer overflow for large files in AccessManager (bug 452972)
  • Pre-select "Delete" in Delete Confirmation Dialog (bug 462845)
  • Make link against KWindowSystem private
  • [KOpenWithDialog] Save search history in state config
  • file_unix: Fix check for hidden NTFS files
  • Use new nomenclature with socket name; use ".socket" suffix
  • [previewjob] Deprecate overlayIconSize and overlayIconAlpha
  • Replace KIO::SlaveConfig with KIO::WorkerConfig
  • [kpropertiesdialog] Remove UI to set DBus startup type
  • when inside a sandbox use different openwith behavior
  • Don't install service desktop files for KCMs in KF6
  • Don't install KonqPopupMenu service type file for KF6

Kirigami

  • InlineMessage: Downstream and clarify padding expressions that are based on background's border width
  • Calculate CategorizedSettings's width by using word width instead of length (bug 462698)
  • ActionMenuItem: Shorten one binding expression, remove useless check
  • Fix getting tablet mode on application startup (bug 462187)
  • Show tooltip in avatar if available
  • ActionTextField: Specify focus reason for shortcut activation
  • Add text to clear action in search field
  • ColumnView: Resolve assert
  • ActionTextField: Avoid showing empty tooltip for actions without text
  • InlineMessage: Make content text selectable, just like their Widgets counterpart
  • PageRow: Fix potential popping of visible pages with popHiddenPages
  • NavigationTabButton: Support display property
  • DefaultCardBackground: Make basic drop shadow follow the radius
  • NavigationTabBar: Move button width calculation out of NavigationTabButton
  • fix the listitemdraghandle example so it's not a broken mess
  • Dialog: Fix assigning undefined to QObject property, which is a type error in QML
  • Use StandardKey.Find instead of "CTRL+F"
  • ActionTextField: Fix property access error on non-Kirigami actions
  • PasssiveNotificationManager: Use Item instead of Control so that we can use a touchscreen
  • ActionTextField: Remove useless binding
  • Don't accept hover events at the bottom of ApplicationItem
  • PageRow: Rename popNotVisiblePages... to popHiddenPages, and fix null
  • FormLayout: remove excessive spacing above unlabeled separators (bug 462300)
  • Allow closing drawers on non-touch devices (bug 454119)
  • Re-implement PassiveNotification functionality
  • Add appropriate tooltip and accessibility property to GlobalDrawer's menu button
  • Fix double namespace Kirigami.Kirigami.*
  • InlineMessage: Make 1 expression explicit and boolean-valued
  • InlineMessage: Don't bind your logic to the value of .visible property
  • OverlaySheet: Use same heading size as Dialog
  • icon: proceed itemChange in QQuickItem (bug 462630)
  • Icon: repolish on DPR changes
  • Icon: Use correct devicePixelRatio

KNewStuff

  • core: Don't make URL installation a false question
  • KNSCore::Question: Include the entry in the question (bug 460136)

KNotification

  • doc: Tell which is the default value of status and category

KNotifyConfig

  • Fix signal after edit TTS_select

KParts

  • ReadOnlyPart: don't emit urlChanged() from destructor

KService

  • Allow accessing custom properties of KServiceActions
  • Replace QVariant::Type with QMetaType::Type
  • Deprecate KService::dbusStartupType

KTextEditor

  • Fix crash on undo after reload (bug 462793)
  • Update the cursor and anchor to sync with the visual but not scroll for selectAll
  • Implement invokeAction and commit preedit when click outside the preedit
  • Add missing KWindowSystem dependency
  • Fix 1 space indent not detected
  • Added New Script Sort Uniq
  • avoid use of markedAsFoldingStart
  • start to compute indentation based folding on demand
  • Accept event when clearing multicursors
  • Add Dart and Go to katemoderc

KUnitConversion

  • Adapt to HRK being replaced by EUR

KWallet Framework

  • Don't install kwalletd5 service file for KF6

KWayland

  • Make sure that HAVE_MEMFD is defined to 0 if not found

KWidgetsAddons

  • Make Full Screen action use consistent text and icon (bug 240854)

KWindowSystem

  • Merge two KWINDOWSYSTEM_HAVE_X11 sections into one
  • Fix KStartupInfo::appStarted()
  • Deprecate KStartupInfo::startupId()
  • Deprecate KStartupInfo::silenceStartup()
  • KWindowSystemPluginWrapper doesn't need a virtual dtor
  • Make KX11Extras::icon behave like KWindowSytem::icon (bug 462739)

KXMLGUI

  • Decrease minimum height of inactive list widget (bug 461580)

ModemManagerQt

  • Lookup country code during initialization

NetworkManagerQt

  • Explicitly look for Qt::DBus in the CMake config file

Plasma Framework

  • Dialog: Only center panel popup if it still would cover two thirds of its panel widget (bug 462930)
  • containmentinterface: add function to open context menu
  • ExpandableListItem: load custom content when item is expanded
  • PC3/ActionTextField: Specify focus reason for shortcut activation
  • Use StandardKey.Find instead of "CTRL+F"
  • ActionTextField: add property type for focusSequence
  • ActionTextField: show native shortcut text in tooltip
  • ActionTextField: fix StandardKey not working
  • Dialog: Use one std::optional instead of two boolean flags
  • Mark transient applets in config (bug 417114)

Prison

  • Add support for ZXing 2.0

QQC2StyleBridge

  • CheckBox/RadioButton/Switch: update implicit sizing code
  • CheckBox/RadioButton/Switch: center align indicators when no content
  • CheckBox/RadioButton/Switch: align indicators with 1st text line
  • Button/ToolButton: allow menu arrows to be added by Accessible.role

Sonnet

  • Add Esperanto trigram data file

Syntax Highlighting

  • Resolve conflict on .ex file extension
  • Markdown: remove dynamic rules that are not needed
  • Julia: merge hundreds of rules into a single regex ; fix adjoint operator ; includes ##Comments
  • avoid temporary constructions of Definition in AbstractHighlighter::highlightLine
  • GCode: numbers are optional with parameters (bug 462969)
  • cmake: Use ECMQmlModule for qtquick plugin
  • update version and references
  • Add MapCSS highlighting
  • Add testcase to markdown file for Nim code blocks
  • Markdown: Use nim highlighting in nim blocks
  • Add testcase for "\"
  • Nim: Small syntax fixes
  • Add new keywords: get and set

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

Samstag, 10 Dezember 2022

Samstag, 10 Dezember 2022

Heute gibt KDE die Veröffentlichung der KDE Frameworks 5.101.0 bekannt.

KDE Frameworks sind 83 zusätzliche Bibliotheken für Qt, die eine große Vielfalt an häufig benötigten Funktionen in ausgereiften, von anderen Entwicklern geprüften und gut getesteten Bibliotheken mit liberalen Lizenzbedingungen bieten. Eine Einführung finden Sie in der Ankündigung zur Veröffentlichung der KDE Frameworks.

Dies ist Teil einer Serie von monatlich geplanten Veröffentlichungen, um Verbesserungen schnell und regelmäßig für Entwickler verfügbar zu machen.

Neu in dieser Version

BluezQt

  • Expose battery of a DeclarativeDevice via property
  • Fix QML plugin when building project statically (bug 459340)

Breeze Icons

  • Add SimpleScreenRecorder icon (bug 412490)
  • application-x-executable: make symbolic icon follow color scheme
  • Add touchscreen icons to devices and preferences (bug 461562)

Extra CMake Modules

  • Add ZSHAUTOCOMPLETEDIR to KDEInstallDirs
  • Fix ECMQmlModule for static plugins (bug 459340)
  • Watch for language changes to load the new appropiate qm files

KDE Doxygen Tools

  • Update CMakeLists.txt - The majority of frameworks use KF_VERSION to indicate current version

KCodecs

  • Fix KCharset::codecForName deprecation version
  • Deprecate QTextCodec public api

KConfig

  • Apply existing QScreen::name() workaround for Windows to new code (bug 429943)
  • Fix parser treating empty IntList default as a list of single zero element: [0]

KConfigWidgets

  • KHamburgerMenu: Reset when menu bar contents change
  • [KRecentFilesAction] Fix broken recent files list (bug 461448)

KCoreAddons

  • [KJobTrackerInterface] qRegisterMetatype KJob::Unit

KDeclarative

  • Deprecate unused parts of KWindowSystem import
  • SimpleKCM: Account for flickable's margins when deciding to show separators
  • Deprecate QIconItem
  • Use const/let for JS variables as appropriate
  • Sync header and footer separator code to SimpleKCM (bug 461435)

KDED

  • Watch for icons directory changes from KDED (bug 455702)

KDELibs 4 Support

  • Fix dependency name

KDesignerPlugin

  • Fix localization files install path

KDESU

  • Include sys/prctl.h only on Linux

KFileMetaData

  • FFmpegExtrator: Try stream metadata if no global metadata is available
  • office2007extractor: Extract text document line count
  • office2007extractor: Update docx to include more properties
  • Add FictionBook2 extractor

KGlobalAccel

  • Fix key events for modifiers
  • Fix dialog's text
  • Set correct version for kglobalacceld

KDE GUI Addons

  • KeySequenceRecorder: Stop tracking recordings when we stop recording (bug 462100)
  • Make KColorUtils::mix account for alpha properly
  • Don't build/install the geo: URI handler on Android

KI18n

  • kcountrysubdivisiontest fix "Missing reference in range-for"
  • Set the LANG to an actual valid locale

KIdleTime

  • Port KIdleTime to ext_idle_notifier_v1

KImageFormats

  • Fix missing DCI-P3 color space set
  • raw: LibRaw_QIODevice::read: fixed possible partial reading of an item
  • PSD multichannel testcases
  • Support to MCH with 4+ channels (treat as CMYK)
  • avif: Check if encoder/decoder is available in capabilities()
  • Fix condition for installing desktop files

KIO

  • kproxydlg.ui the web page https://konqueror.org does not have a FAQ section
  • Remove default Search items from Places panel
  • Ignore finished() from the timeoutSpecialCommand (bug 459980)
  • KCoreUrlNavigator: fix header include path, add backward-compat headers
  • Deprecate SlaveBase in favour of WorkerBase
  • Fix header install location for KFileFilter
  • Wrap IdleSlave in visibility deprecation macros
  • Introduce KFileFilter class to parse and store filters
  • Deprecate ForwardingSlaveBase in favour of ForwardingWorkerBase
  • Introduce a new ForwardingWorkerBase
  • KUrlNavigatorPlacesSelector: Use protocol icon as fallback
  • Deprecate KProtocolInfo::slaveHandlesNotify()
  • KIO::createDefaultJobUiDelegate Add missing @since
  • Deprecate TCPSlaveBase in favour of TCPWorkerBase
  • KProtocolInfoTest: adapt check for zip protocol support to JSON metadata
  • Deprecate left-over no-op method SimpleJob::storeSSLSessionFromJob(...)
  • Deprecate ThumbCreator and its variants
  • RenameDialog: all widgets should be parented to the dialog itself
  • Add KProtocolManager::workerProtocol() to match new lingo
  • Add Scheduler methods for workers on hold to match new lingo
  • Add KProtocolInfo::maxWorkers()/maxWorkersPerHost() to match new lingo
  • Emit deprecation warning for ioslave_defaults.h
  • Rename http_slave_defaults.h to http_worker_defaults.h, following port

Kirigami

  • InlineMessage: Fix corner case glitch when component is sized almost enough to fix the label
  • Add ToolTip for action in PasswordField
  • ImageColors: load source image asynchronously
  • ImageColors: reset palette when source image is null
  • ImageColors: use OpenMP to count pixels in parallel
  • ImageColors: support url as source
  • OverlaySheet: Fix gaps in footer
  • CardsGridView: Do not set Infinity as an int value
  • ApplicationHeader: Fix not loading
  • Fix many memory leaks caused by Qt.createComponent
  • UrlButton: improve accessible properties when text is different from url
  • LinkButton: allow focus and add keyboard navigation
  • More checks when not to diplay fabs
  • PageRow: Introduce ability to automatically pop invisible pages
  • icon: account window dpi when calculating actualSize
  • Fix pushing pagerow to layers
  • DefaultListItemBackground: remove unused leadingWidth property
  • CardsGridView: remove unnecessary code
  • ActionTextField: allow to focus on action icons
  • ActionTextField: show native shortcut text in tooltip
  • ActionTextField: fix StandardKey not working
  • src/controls/About*.qml correct web page for KDE donations
  • Adjust to qrc file changes from https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/303
  • Card: By default, decorate the card background as pressed if checked
  • AboutItem: Make "Report a Bug" button also be a link
  • AboutItem: Add Donate link
  • ActionButton: Fix broken attached properties due to import changes
  • Revert "icon: itemSize should be size"
  • Add alias Kirigami for units calls where missing
  • ContextIcon: add missing namespace for Kirigami
  • OverlayDrawer + ContextDrawerActionItem: add missing namespace for Units
  • UrlButton: import Kirigami for the base class

KItemModels

  • Also remove the custom target in BUILD_TESTING
  • Make use of ecm_add_qml_module()

KNewStuff

  • Fix static compilation of KF5NewStuffWidgets module (bug 459125)
  • Perform initialization in initialization list

KNotification

  • KNotification: Add hints property

KQuickCharts

  • Add CLASSNAME in ecm_add_qml_module method call

KRunner

  • QueryMatch: Avoid unneeded QVariant conversion to string when setting data
  • cppcheck: Do not shadow outer functions with local variables
  • cppcheck: Make constructors explicit
  • Fix crash when deleting RunnerManager while jobs are running (bug 448825)

KService

  • KApplicationTrader: New method setPreferredService

KTextEditor

  • Convert part metadata to JSON
  • Kate:TextLine: switch to std::shared_ptr
  • Fix setting default mark when ctrl is pressed
  • Fix caret with inline notes
  • Add "Character" the "Insert Tab" action name
  • Fix condition for installing desktop file

KTextWidgets

  • Fix double delete crash

KWayland

  • client: Add F_SEAL_SHRINK seal to shm pool backing file
  • client: Expose concrete xdg-shell class implementations

KWidgetsAddons

  • Extend KRecentFilesMenu

KWindowSystem

  • Deprecate KWindowSystem::demandAttention
  • Deprecate KWindowSystem::setIcons
  • Move X11-specific KWindowSystem functions to new KX11Extras class
  • xcb/kwindoweffects: Fix stripes when dpr is not an integer
  • Deprecate KWindowSystem::setUserTime
  • Deprecate KWindowSystem::setBlockingCompositing
  • Deprecate KWindowSystem::icccmCompliantMappingState
  • Deprecate KWindowSystem::lowerWindow
  • Deprecate KWindowSystem::constrainViewportRelativePosition

KXMLGUI

  • Better/corrected wording as suggested by Felix Ernst
  • Added a doc note how to get a menu's action

Plasma Framework

  • PC3: allow touch scrolling even when tablet mode is off (bug 461016)
  • Import ManagedTextureNode from KDeclarative
  • Expose minimum drawing size for FrameSvg and FrameSvgItem
  • Fix the left element of dialogs background
  • pc3: Simplify Button{Focus,Hover,Shadow}.qml
  • pc3: Simplify Flat/RaisedButtonBackground
  • extracomponents: Only create a button in PlaceholderMessage if needed
  • pc3: Don't create an SVG in TextField just to check if a certain element exists
  • Expose FrameSvg::hasElement on FrameSvgItem
  • FrameSvg: Replace a bunch of check-and-fetch with fetch-and-validate
  • extracomponents: Use attached property for ActionTextField tooltip
  • FrameSvg: Store a few unchanging strings in updateSizes as static const
  • FrameSvg: Use a single QString buffer when building names to look up in the SVG
  • Rework Plasma theme mask corners and outlines (bug 417511)
  • Support horizontal scroll in containmentactions
  • appletquickitem 'ownLayout' local variable has same name as one of the class members
  • IconItem: Fix icons after context loss events
  • svgitem: do not upscale svg when using fractional scaling (bug 461682)
  • Remove workaround for QTBUG-70481
  • PC3: remove obsolete workaround in TextArea
  • ToolTip: Do not show when empty
  • declarative/core: Use two opacity nodes for fading in IconItem (bug 432999)
  • availableScreenRect only for valid screens
  • appletinterface: Expose the QAction::Priority enum values
  • Handle tooltips with disabled (negative) timeout properly (bug 397336)

Prison

  • Fix copy/pasted license header, this needs to be MIT

Purpose

  • Don't delete config when job finishes

QQC2StyleBridge

  • TextArea: allow touch scrolling even when tablet mode is off (bug 461016)
  • Redraw KQuickStyleItem when DPR changes
  • Switch: Improve background contrast when in unchecked state
  • styleitem: Don't destroy and recreate the style on every instance creation
  • Fix blurry controls in QQuickWidget
  • DislogButtonBox: Fix url value comparison with non-strict ==
  • ToolTip: Do not show tooltips without text
  • BusyIndicator: Synchronize to implementation in PlasmaComponents3

Solid

  • upower: Support UP_DEVICE_KIND_BLUETOOTH_GENERIC
  • imobiledevice: Check error returned by idevice_new (bug 448329)
  • UDisks2::DeviceBackend add udi in trace when failing to to get prop
  • imobiledevice: Handle events in correct thread
  • imobiledevice: Don't call udiPrefix() from constructor

Syntax Highlighting

  • TOML: add number prefix, inf, nan and more datetime format ; fix multi-strings closing (bug 462178)
  • Python: add pyi extension (python interface)
  • Javascript: remove previousDibling keyword (probably a typo for previousSibling)
  • Add GPS Exchange Format (GPX) type
  • CSS family: add properties, functions and fr unit ; remove FPWD and old proposed properties
  • install a index.katesyntax when QRC_SYNTAX is OFF
  • Make the Rust language mode use the cstyle indenter
  • C23: missing wN length modifiers with d and i in printf_like
  • CMake: remove duplicate and
  • CMake: optimize by adding DetectIdentifier and DetectSpaces (~20% faster)
  • CMake: replace some with
  • Add syntax definition for CSV and TSV
  • JSON: small optimization on number regex
  • Go: improved support for literal numbers, add unicode escape characters and new predefined type (bug 459291)
  • Dynamic RegExpr has its own type (~2.2% faster)
  • XML: replace a dynamic StringDetect with DetectIdentifier contextually equivalent
  • XML: character < in an ENTITY is highlighted as an error

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

Samstag, 3 Dezember 2022

In wenigen Tagen wird Dolphin 22.12 veröffentlicht, also ist es höchste Zeit, dass ich von der neuen Funktion berichte, die ich dafür programmiert habe: Der Auswahlmodus. In diesem hoffentlich unterhaltsamen Video stelle ich ihn vor neben anderen Probleme, deren Lösungen noch nicht implementiert wurden.

Sonntag, 30 Oktober 2022

Von meinen Aufgaben bei KDE bin ich am ehesten dadurch bekannt, dass ich seit neuerem zusammen mit Méven Car “Dolphin Maintainer” wurde. “Dolphin” heißt übersetzt Delphin und “Maintainer” sind die Betreuer oder Hauptverantwortlichen für etwas.

Der Plan war, bei Barcelona ein Dolphin Treffen zu veranstalten, also machte ich mich auf den Weg.

Ich denke, das Wichtigste für eine sich selbst organisierende international agierende Gruppe wie uns, die in allen sieben Weltmeeren schwimmt, ist, dass man sich ab und zu gemeinsam an Küsten trifft, um sich über gemeinsame Ziele auszutauschen. Jeder surft oder browst sonst wohin einen die Strömung gerade hinverschlägt. Jeder hat eine Idee, was wohl gerade am Wichtigsten ist, woran gearbeitet werden sollte, und schwimmt dann direkt darauf zu. Doch manchmal ist es sinnvoll, sich darüber auszutauschen, wo denn wirklich die wichtigsten Bereiche sind, in denen Verbesserungsbedarf besteht. Und genau das war dann auch das Thema, das ich für unser Dolphin Treffen gewählt habe.

Es war neu für mich, innerhalb von KDE eine organisatorisch leitende Rolle einzunehmen. Nicht nur was Dolphin angeht, sondern auch was uns Pinguin-Fans allgemein angeht.

Okay, ich glaube ab hier muss ich das mit der Zweideutigkeit lassen, denn technische Begriffe werden notwendig. Um eventuelle Verwirrungen aufzulösen, eine kurze Klarstellung: Dolphin ist ein Programm, genauer gesagt der Standard-Dateimanager von KDE. Ich bin zusammen mit Méven Car für es verantwortlich. Der obige Text hatte nicht wirklich mit Tieren zu tun.

Jedenfalls trafen wir uns in Barcelona und sprachen darüber, was denn jeder meinte, was die wichtigsten Bereiche zur Verbesserung von Dolphin seien.

Zeitreisen für Dateien und Ordner?

Neal Grompa, der sich für KDE auf Fedora, aber auch andere Distributionen einsetzt, hatte die Idee, dass Dolphin die Fähigkeit haben sollte, Dateien und Ordner auf einen älteren Stand von sich selbst zurückzusetzen. Die praktische Anwendung wäre, dass wenn man zum Beispiel einen Report oder Aufsatz ruiniert hat, man einfach eine ältere Version davon wiederherstellen könnte. Oder dass man, nachdem versehentlich eine Datei gelöscht wurde, den Ordner, der diese enthält, samt der Datei wiederherstellen könnte.

Klingt das wie Magie für Sie? Ist das überhaupt so einfach möglich? Müssten dafür die alten Daten nicht irgendwo gesichert sein?

Die Antwort auf all diese Fragen ist “Ja”. Aber was Sie vielleicht noch nicht wussten, ist, dass es bei manchen modernen Dateisystemen, die Sie eventuell sogar bereits in diesem Moment verwenden, normal ist, dass ältere Daten behalten werden, damit Ihr Computer in einen funktionierenden Zustand zurückversetzt werden kann, falls denn jemals etwas so richtig schief geht. Bekannte Dateisysteme die so etwas integriert haben heißen BTRFS und ZFS.

Beim Erkunden von Barcelona konnte ich mit Luca Weiss und Arjen Hiemstra darüber reden, wie diese Idee realisiert werden könnte. Ich habe auch selbst ein paar Nachforschungen angestellt: Das Problem, das ich derzeit sehe, ist, dass es schwer fällt herauszufinden, wo sich denn genau die älteren Versionen von Dateien und Ordnern auf der Festplatte befinden. Es stellt sich heraus, dass es zumindest auf BTRFS kein verpflichtendes Schema gibt, in welchen Ordnerstrukturen sich die alten Versionen wiederfinden lassen. Zwar ist die Benennung für Menschen häufig verständlich (z.B. auf openSuse “/.snapshot/SNAPSHOTNUMMER/snapshot”), aber es könnte auch ganz anders heißen und der Zeitpunkt bei dem die “Sicherung” erstellt wurde und welche Daten zusammengehören, ist auch nicht so einfach herauszufinden. Und was ist, wenn die Dateien, die man wiederherstellen will, in der Zwischenzeit in einen anderen Ordner verschoben wurden?

Vielleicht irre ich mich auch, aber ich habe zumindest Schwierigkeiten, eine solide bzw. reliable Vorgehensweise zu erfinden, selbst wenn ich für den Moment all die technischen Feinheiten außer Acht lasse. Das bedeutet nicht, dass das Projekt unmöglich zu realisieren wäre – nein nein, denn im schlimmsten Fall könnte man auch einfach die gesamte Festplatte durchsuchen – aber zumindest muss ich für mich feststellen, dass das Projekt zu aufwendig ist, um es mal eben nebenher zu programmieren. Falls Sie Interesse hätten oder in der Lage wären, das auf geschickte Weise zu verwirklichen, wären Sie der/die Held/in für manche Nutzer. Da bin ich mir sicher.

Es ließe sich wohl als sogenanntes KAbstractFileItemActionPlugin implementieren, das dann ein Fenster öffnet, in dem Nutzer auswählen können, welche Version der Datei wiederhergestellt werden soll.

Dolphin könnte besser mit langsamen Festplatten umgehen

Im Grunde ist das vielleicht Wichtigste für einen Dateimanager wie Dolphin, dass er sehr schnell darin ist, die Daten der Festplatten anzuzeigen. Man will ja auch dem Namen alle Ehre machen: Ein Delphin ist schnell unterwegs und wird im Wasser von nichts aufgehalten.

Anders ist es mit Festplatten. Die brauchen manchmal eine Weile, um Daten abzurufen, vor allem wenn der Zugriff über das Internet oder ein anderes “langsames” Netzwerk erfolgt. Aber nur weil der Zugriff langsam ist, sollte das nicht bedeuten, dass deswegen auch Dolphin ins Stocken gerät. Natürlich kann das Laden eine Weile dauern, aber deswegen sollte Dolphin trotzdem noch flüssig funktionieren.

Weitere Details zu diesem Thema finden sich in unseren Aufzeichungen zum Treffen: https://invent.kde.org/system/dolphin/-/issues/35#note_535555

Kopiervorgänge werden fälschlicherweise als abgeschlossen angezeigt

Nutzer klagen mit einer gewissen Regelmäßigkeit über Datenverlust, wenn Sie eine Festplatte oder einen USB-Stick entfernen, nachdem eine Dateiübertragung als “abgeschlossen” gemeldet wurde.

In KDE melden wir eine Übertragung als abgeschlossen, wenn der Linux-Kern uns mitteilt, dass die Übertragung abgeschlossen sei. Nur leider ist das häufig nicht ganz richtig, denn der Linux-Kern ist in dieser Hinsicht etwas voreilig, da er die Übertragung als “abgeschlossen” erklärt, sobald die Daten wieder verfügbar sind. Das ist jedoch in der Regel eine ganze Weile, bevor sie tatsächlich vollständig übertragen wurden.

Hier sehe ich drei Möglichkeiten: 1. Der Linux-Kern erhält eine neue Option, die es uns ermöglicht, genauere Aussagen über den Fortschritt weiterzugeben. 2. Wir stellen selbst sicher, dass die Übertragung abgeschlossen ist. 3. Wir zeigen eine besonders eindringliche Warnmeldung, wenn Nutzer ein Speichermedium entfernen, ohne es zuvor ordentlich “sicher entfernt” zu haben.

Dolphin sollte Nutzern ermöglichen, root-Dateien/Ordner zu verändern

Wie Sie vielleicht wissen, kennt das Linux Sicherheitsmodell verschiedene Nutzer oder Accounts, die auf demselben Computer agieren können. Man kann dabei einstellen, welche Personen auf welche Daten zugreifen, sie verändern oder ausführen können.

Der Account, der auf alle Daten eines Computers vollen Zugriff hat, wird üblicherweise “root” genannt. Es ist der Administrator-Account an so ziemlich jedem Computer.

Wenn man derzeit als Nutzer versucht, mithilfe des Programmes “sudo” Dolphin mit den Rechten eines Administrators auszuführen, um damit alle Daten ändern zu können, dann weigert sich Dolphin, dies zu tun, weil es potentiell dazu führen kann, dass Hacker den Computer übernehmen können. Dieser Sperrriegel wurde eingeführt bevor ich bei KDE war, aber Nutzer sind auch heute noch unglücklich darüber, weil dieser Sperrriegel ihnen in manchen Situationen das Leben erschwert. Wie können wir diese Situation verbessern, ohne dabei die Sicherheit von Firmen und Nutzern zu gefährden?

Harald Sitter hat eine alternative, sicherere Methode entwickelt (https://apachelog.wordpress.com/2022/08/04/kio-admin/), die es Nutzern erlaubt, alle Daten zu manipulieren. Sie wird eventuell in Dolphin integriert werden.

Einen weiteren sofortigeren Lösungsansatz habe ich neulich mit Nate Graham besprochen: Wie wir sehen, wurden in den vergangenen Jahren bereits mehrere Methoden entwickelt, um den von meinen Vorgängern gut gemeinten Sicherheitsriegel zu umgehen. Diese, die Sicherheit der Nutzer reduzierenden Methoden, sind recht populär. Der Sicherheitsriegel hält Nutzer also derzeit nicht wirklich davon ab, das potentielle Sicherheitsrisiko einzugehen. So gesehen ist meine Meinung, dass wir, anstatt zu versuchen, die Funktion zu verbieten, die Chance nutzen sollten, die Nutzer über die Gefahren aufzuklären. Wenn sie trotz unserer Erklärung der Risiken fortfahren wollen, dann sollten und können wir sie nicht aufhalten. Es könnte eine gute Idee sein, den Sperrriegel für Nutzer leichter lösbar zu machen.


Das war dann alles zum Dolphin Treffen. Der Rest dieses Artikels ist über andere für mich relevante Themen.

Dolphin fürs Handy?

Ich habe in Barcelona viel mit den jungen Entwicklern geredet, die sich bemühen, dass KDE Plasma ein Erfolg auf Mobiltelefonen wird und Googles Android hoffentlich bald mächtig Konkurrenz macht. Es besteht der Wunsch einen tollen Dateimanager wie Dolphin auf dem Handy verfügbar zu haben.

Was sie und vielleicht auch Sie nicht wussten, ist, dass Dolphin bereits dermaßen flexibel und touch-freundlich ist, dass wohl gar nicht viel Arbeit nötig wäre, damit es wie geschaffen für Handys ist:

Wir bräuchten wohl eine separate Konfiguration für Handys, die es erlaubt, Dolphin ganz einfach fürs Handy angepasst zu installieren. Haben Sie Interesse, Dolphin für all diese Handynutzer einfach verwendbar zu machen? Unterstützung ist immer gern gesehen!

Dolphin mit dem blauen Engel

Mit Joseph P. De Veaugh-Geiss, der die umweltfreundliche “Blauer Engel”-Zertifizierung von KDE Software vorantreibt, sprach ich über die Möglichkeit auch Dolphin zu zertifizieren. Die Frage ist, welchen direkten Nutzen wir uns davon versprächen. Eventuell könnte es staatliche Einrichtungen dazu bewegen, Dolphin zu verwenden, aber Joseph war der Meinung, dass sie wohl nicht deswegen allein zu Linux wechseln würden. Zu seiner und vielleicht auch Ihrer Überraschung funktioniert Dolphin bereits auf Microsoft Windows und meines Wissens sogar macOs. Es hat ein paar Macken auf Windows und niemand kümmert sich aktuell darum, diese auszumerzen. Würde es sich lohnen das zu tun? Wenn wir die Windows-Version mehr ins öffentliche Bewusstsein schieben, wäre das eine Möglichkeit mehr Nutzer zu freier und umweltfreundlicher Computer-Nutzung zu bewegen? Für mich ist unklar, ob wir unsere Kapazitäten nicht besser für anderes verwenden.

Sie merken aber, dass es viel mehr sinnvolle Arbeit allein bei Dolphin zu tun gibt, als wir realistisch mit unseren wenigen ehrenamtlichen Entwicklern leisten können. Auch hier wären mehr freundliche Mitwirkende eine Bereicherung. :)

Dokumentation in der Anwendung

Ein weiteres Thema, das mir sehr am Herzen liegt, ist, dass wir unsere Software auch für unbeholfene Nutzer verwendbar machen, indem wir Anleitungen und Hilfstexte zur Verfügung stellen. Manche meiner Bemühungen in dieser Richtung waren sehr erfolgreich. Zum Beispiel gibt es mittlerweile an vielen Stellen in KDE kleine Hilfsknöpfe, nachdem ich diese vor nur zwei Jahren als Komponente in KDE Software erstmals integriert habe (https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/51). In ähnlicher Weise habe ich auch in vielen Anwendungen die Funktionalität eingebaut, dass man Nutzern ausführliche Hilfe direkt in der Anwendung zur Verfügung stellen kann. Sie kennen vielleicht die kleinen “Umschalt drücken für mehr Informationen” Hinweise, die erscheinen, wenn Sie den Mauszeiger auf einem Knopf in Dolphin ruhen lassen. Meiner Meinung nach sollte jede KDE Anwendung mehr Hilfe dieser Art zur Verfügung stellen.

Ich war in dem Treffen über das Schreiben von Anleitungen und Hilfstexten für die Webseite https://userbase.kde.org/Welcome_to_KDE_UserBase und versuchte dort den Anstoß zu geben, dass es meiner Meinung nach in einigen Fällen sinnvoller wäre, Hilfe direkt dort zur Verfügung zu stellen, wo sie gebraucht wird: Am besten also direkt in der Anwendung. Ich hatte leider nicht den Eindruck, als ob ich in der Lage war, die dort Versammelten davon zu überzeugen. Hier möchte ich aber wiederholen, dass jeder zusätzliche Schritt, der zwischen den Nutzern und der verfügbaren Hilfe liegt, dazu führt, dass die Nutzer die Hilfe mit geringerer Wahrscheinlichkeit verwenden werden. Wenn Nutzer nicht wissen, was ein Knopf tut, dann sollte die Hilfe für den Knopf direkt vom Knopf aus oder daneben aufgerufen werden können.

Im Positiven habe ich bemerkt, dass manche KDE-Leute bereits die Nützlichkeit dieser Funktionalität verstanden haben. Kai Uwe Broulik hat sich als Fan geoutet. Ich hoffe, es ist nur eine Frage der Zeit, bis diese neue Art Hilfe anzubieten, für jeden genauso selbstverständlich wird, wie die zwei Jahre jungen, kleinen Hilfsknöpfe in den Systemeinstellungen.

So viel zu meinen Bemühungen. Wenn Sie bis hierhin interessiert gelesen haben, dann interessieren Sie sich vielleicht auch für meine Videos zur KDE Entwicklung: https://tube.tchncs.de/c/felix_ernst/videos

Dank an KDE e.V. und dessen Spender

Die bunte Truppe, die zu Akademy 2022 nach Barcelona reisten, zu treffen, war ein großer Gewinn für unsere weitere Zusammenarbeit und damit auch letztendlich für unsere Software. Der obige Text ist ja bereits viel zu lang und doch habe ich bislang fast nur über Dolphin geredet, obwohl noch so viele andere Themen in Barcelona von Bedeutung waren. Allen voran wie schön es war, andere KDE Mitwirkende zum ersten Mal persönlich zu treffen.

Ich möchte hier dem KDE e.V. und den vielen Spendern an diese Organisation danken, denn durch sie wurde ein Großteil der Gesamtkosten meiner Reise bezahlt. Nachdem ich nun die Verwalter dieser Spenden persönlich kennengelernt habe, kann ich mit voller Überzeugung sagen, dass Spenden an den KDE e.V. in guten Händen sind und mit großer Sorgfalt und Strategie ausgegeben werden, um den Fortbestand und das Wachstum der größeren KDE Gemeinschaft zu sichern. Wenn Sie auch eine gemeinnützige Spende tätigen möchten, gehen Sie zu: https://kde.org/de/community/donations/.

Dienstag, 5 Juli 2022

KDE Dev-Vlog 4: Zu viel Spektakel!

Manchmal sind es die kleinsten Dinge, die für unsere Nutzer den größten Vorteil bringen. In diesem Video werden die Ursachen und Überlegungen hinter einer solchen kleinen Änderung an einer kleinen Anwendung aufgezeigt. Normalerweise würde niemand daraus ein großes Spektakel machen, was mich nicht davon abhält, es zu versuchen.

Dienstag, 31 August 2021

KDE Dev-Vlog 3: Das Finale der Gwenview Trilogie

Seit einigen Wochen arbeiten wir an der Benutzeroberfläche des Standard Bild-Betrachters Gwenview und jetzt steht der Termin für die Veröffentlichung vor der Tür. Dieses Video zeigt eine Reihe von bestehenden Problemen auf und wie wir die meisten von ihnen rechtzeitig für Gwenview 21.08 lösen können.

Mittwoch, 28 Juli 2021

KDE Dev-Vlog 2: Im Auge des Betrachters

„Dev-Vlog“ ist eine Abkürzung für „developer video log“, was so viel bedeutet wie „Videoprotokoll über die [Software] Entwicklung“. Das mag vom Namen her etwas trocken klingen, aber das muss es wirklich nicht sein.

„KDE Dev-Vlog 2: Im Auge des Betrachters“ knüpft direkt an das Vorgängervideo an: Es geht um die Verbesserung der Benutzeroberfläche von Gwenview, dem Standard-Bildbetrachter von KDE.

Wie geplant ist dieses Video stellenweise etwas verrückter als das vorige. Es zeigt auch etwas mehr die Vorgehensweise bei der Überarbeitung anstatt nur Ergebnisse und Vorüberlegungen zu präsentieren. Viel Spaß!

Donnerstag, 10 Juni 2021

Gwenview wird schöner

Ich habe ein leicht verständliches Video über die Verbesserung der Benutzeroberfläche des Standard-KDE-Bildbetrachters „Gwenview“ gemacht. Meiner Meinung nach ist es toll geworden und ich hoffe es wird Ihnen gefallen.

Seltsamerweise ist das hier für ganz KDE die erste Möglichkeit, bewegte Bilder von mir zu sehen, obwohl ich schon seit über zwei Jahren hier mitwirke: Ich hatte bislang keine Webcam und wegen Corona waren persönliche Treffen nicht möglich.