I Use This!
Activity Not Available

News

Analyzed 3 months ago. based on code collected 8 months ago.
Posted about 2 years ago by Srirupa's Blog
Perspective Ellipse Assistant in Krita Hello, this is my second blogpost for SoK 2022. In my previous blogpost, I wrote that I’ll be working on extending the Ellipse Assistant Tool to add support for Perspective Ellipse in Krita. However, last week ... [More] my mentors and I decided that as of now, it makes more sense to add a new Assistant Tool for Perspective Ellipse instead of extending the Ellipse Assistant Tool. My Progress so far Adding a new Assistant Tool Here’s the Tools Option Docker after the new Perspective Ellipse Assistant is selected! Creating an adjustable Four Cornered Convex Quadrilateral Anyone familiar with Assistant Tools in Krita would have noticed that the current Perspective Assistant Tool draws an adjustable convex quadrilateral with grid lines. I decided to take advantage of that and reused the existing code, got rid off the grid lines, and voila! I’ve a four cornered mesh for my Perspective Ellipse Assistant. For people who are familiar with Krita’s codebase: I added PerspectiveEllipseAssistant.h and PerspectiveEllipseAssistant.cc to the ktita/plugins/assistants/Assistants directory which currently contanis files for all the other assistant tools in the form XAssistant.h/cc, where X is the Assistant name. Then, I registered my Assistant by including the following piece of code in the assistant_tool.cc file. KisPaintingAssistantFactoryRegistry::instance()->add(new PerspectiveEllipseAssistantFactory); And there, my four cornered mesh works exactly how it’s expected too! ;) Next Steps I would spend the next few weeks creating an inscribed ellipse inside my four cornered mesh. This, however, is going to take some time as I am not yet fully comfortable with the mathematics involved. For this part, I want to transform a circle to an ellipse using a transformation matrix, given that the equation for the circle and the transformation matrix is given. I’m looking for a way to obtain the coefficients of the equation for the corresponding transformed ellipse. Anyone having any leads on this can feel free to mail me here. Thanks in advance! [Less]
Posted about 2 years ago by KDE Community
Sunday, 13 February 2022 KDE today announces the release of KDE Frameworks 5.91.0. KDE Frameworks are 83 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with ... [More] friendly licensing terms. For an introduction see the KDE Frameworks release announcement. This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner. New in this version 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 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 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 [email protected] Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB [Less]
Posted about 2 years ago by Volker Krause
Here’s another small update on the progress around KDE Frameworks 6, a lot has happened again since last month’s post. Only a few modules aren’t building yet, and the vast majority of building modules now also has passing unit tests. Building against ... [More] Qt6 Only three frameworks don’t build out of the box yet. KTextEditor, due to QTextStream::setCodec gone and needing a manual replacement, as well as due to issues with the first attempt of porting from QDesktopWidget to QScreen for completion popup placement. Plasma Frameworks, due to changes in the low-level X11 and OpenGL APIs of Qt and a few remaining uses of deprecated KPluginInfo API. KQuickCharts, due to needing to be ported to QtShaderTools. Note that this is only about compilation, this doesn’t automatically mean things are also expected to run yet, especially for QML code that isn’t the case yet. Task T15127 tracks the progress of this. Unit tests With things building the next step is to make all unit tests pass (or at least behave identical to a Qt5 build). Numerous fixes have gone in over the past weeks for this, and we are down to just four modules that have additional failures compared to KF5, and two more with at this point still expected QML test failures (due to QML code not being portable prior to branching). There are some recurring patterns we might also hit again in Plasma or application code: QHash is no longer a node-based container, which means its iterators can more easily become invalid. QVariant::isNull is now just a “shallow” check, ie. it no longer checks whether the payload is a null value of the corresponding type, but only checks whether there is a payload at all. Qt container sizes are no longer int but qsizetype, which is a 64 bit value on 64 bit systems. While mostly a compile-time problem, this can also have implications at runtime, e.g. when serializing container sizes into a QDataStream. Task T15232 tracks the progress on this. Continuous integration Linux/Qt6 continuous integration has meanwhile also been set up for some Plasma modules. Plasma modules include important parts of the platform integration, such as the Breeze style or the Qt platform plugin that brings you KIO file dialogs, which are relevant to actually use a KF6 application eventually. Plasma 6 Sprint For the bigger picture Qt6/KF6 porting plans for Plasma there’s a sprint being planned, see this mailing list thread. For anyone working on KF6 this is probably worth attending, as there’s plenty of overlap and inter-dependencies in those efforts. Contribute Obviously all of the above is the result of a big team effort, and you can be part of that! The KF6 workboard is the central place for coordinating the work related to Frameworks 6. There’s also a weekly one hour call on Tuesday 17:00 CET. It’s also worth joining the kde-frameworks-devel mailing list and the #kde-devel channel on Matrix. [Less]
Posted about 2 years ago by Nate Graham
Plasma 5.24 was released a few days ago, and so far it’s been the smoothest release in memory. There have been a few regressions, but fewer than other recent releases. I’m sure all of you who have experienced new issues will speak up in the comments ... [More] , of course. But overall it has gone quite well! 15-Minute Bugs Resolved Current number of bugs: 83, same as last week. Current list of bugs In the Plasma Wayland session, panels no longer sometimes randomly freeze especially right after login (Vlad Zahorodnii, as soon as your distro updates their KDE Qt patch collection to include this patch) Closing your laptop lid when an external monitor plugged in no longer causes the computer to inappropriately go to sleep when the setting to disable this has been used (Somebody awesome, Plasma 5.24) New Features Konsole now supports Sixel, allowing it to display .sixel images right inside the window (Matan Ziv-Av, Konsole 22.04) Konsole now has a new plugin that stores saved commands and pieces of text for you (Tao Guo, Konsole 22.04) Bugfixes & Performance Improvements When using Kate’s feature to stash and restore unsaved changes to open files when closing the app, those changes are now actually saved as expected rather than being silently destroyed if you happen to quit the app using the “Quit” action or Ctrl+Q keyboard shortcut instead of clicking on the window’s close button (Waqar Ahmed, Kate 21.12.3) Canceling an in-progress archive job now automatically deletes the temporary file that was being created (Méven Car, Ark 22.04) Konsole’s text re-flow feature now works for lines of text that have no whitespace or newline characters at all (Luis Javier Merino Morán, Konsole 22.04) System Settings no longer crashes when the active color scheme doesn’t exist on disk for some reason; now it falls back to Breeze Light (the default color scheme) and doesn’t crash (Nicolas Fella, Plasma 5.24.1) In the Plasma Wayland session, Plasma no longer always crashes when you screencast in certain circumstances (David Edmundson, Plasma 5.24.1) In the Plasma Wayland session, using custom splash screens once again works (Linus Dierheimer, Plasma 5.24.1) The Scale effect is once again configurable (Alexander Lohnau, Plasma 5.24.1) Links to System Settings pages added to the desktop using the “Add to Desktop” context menu item in Kickoff once again actually appear on the Desktop as expected (Alexander Lohnau, Plasma 5.24.1) Certain types of large buttons with text no longer make their text half-invisible when they’re focused with the keyboard (Ingo Klöcker, Plasma 5.24.1) Info Center’s “Devices” page once again works as expected if the command-line lspci program lives in /sbin/, /usr/sbin, or /usr/local/sbin on your computer (Fabian Vogt, Plasma 5.24.1) Dragging desktop files over a Sticky Note applet no longer makes the files temporarily disappear (Severin von Wnuck, Plasma 5.24.1) In the Plasma X11 session, the cursor no longer disappears while using the “Zoom” effect (Vlad Zahorodnii, Plasma 5.24.1) The Fall Apart effect once again works and no longer interacts strangely with the Overview effect (Vlad Zahorodnii, Plasma 5.24.1) In the Plasma Wayland session, fixed one way that tooltips could be mis-positioned (Vlad Zahorodnii, Plasma 5.24.1) The Overview effect no longer inappropriately shows minimized windows in the desktop thumbnails for moment before immediately hiding them again (Vlad Zahorodnii, Plasma 5.24.1) When using certain 3rd-party window decoration themes, quick-tiling a maximized window no longer unexpectedly de-maximizes the window instead of quick-tiling it (Vlad Zahorodnii, Plasma 5.24.1) System Settings is now faster to launch, especially when using the legacy Icons View mode (Fushan Wen, Plasma 5.24.1) Dolphin no longer crashes when you close its “Create New File” file dialog in a remote location (Nicolas Fella, Frameworks 5.92) Fixed a memory leak when canceling in-process move/copy archive (etc) jobs (David Faure, Frameworks 5.92) Scrollable views with text in QtQuick-based software no longer exhibit visual glitches with text being cut off or squished at the top or bottom when the view is scrolled very slowly a pixel at a time (Noah Davis, Frameworks 5.92) Font changes now take effect instantly in QtQuick-based apps (Nicolas Fella, Frameworks 5.92) Buttons in System Tray applets that open Info Center pages now work if you don’t happen to have Info Center installed; they instead open the requested page in a separate window (me: Nate Graham, Frameworks 5.92) All QtQuick-based apps now use slightly fewer CPU resources (Aleix Pol Gonzalez, Frameworks 5.92) User Interface Improvements When an app is installed more than once from different sources (e.g. one version from distro repos, and another version from Flatpak), The context menu for that app in Kickoff no longer has multiple entries saying, “Uninstall or manage add-ons” (Alexander Lohnau, Plasma 5.24.1) Searching for apps that are not yet installed no longer returns duplicate entries for matched apps that are available from multiple sources (Alexander Lohnau, Plasma 5.24.1) In the Overview effect, apps’ selection highlight effects now disappear when you start to drag them (Vlad Zahorodnii, Plasma 5.24.1) System Settings’ Quick Settings page has received some UI polish for the alignment and spacing of its elements and the clarity of its labels (me: Nate Graham, Plasma 5.25): Kate, KDevelop, and other KTextEditor-based apps now do a much better job of differentiating files opened in tabs that have the same filename (Waqar Ahmed, Frameworks 5.92): Dragging a file or folder over an item in the Places panel now causes that location to be opened and displayed in the main view so you can drag the thing into a folder inside it. And if the Places panel item you dragged over was an unmounted disk, it is now automatically mounted first! (Kai Uwe Broulik, Frameworks 5.92) Errors in the open/save dialogs are now shown inline as in Dolphin, rather than with a separate dialog window (Kai Uwe Broulik, Frameworks 5.92) …And everything else Keep in mind that this blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org/, where you can find blog posts by other KDE contributors detailing the work they’re doing. How You Can Help If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly! Otherwise, have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite! Finally, consider making a tax-deductible donation to the KDE e.V. foundation. [Less]
Posted about 2 years ago by Kevin Ottens (ervin)
Let’s go for my web review for the week 2022-06. Mark Zuckerberg and team consider shutting down Facebook and Instagram in Europe if Meta can not process Europeans’ data on US servers Tags: tech, facebook, surveillance That sounds great to me. Could ... [More] they do it already please? https://www.cityam.com/mark-zuckerberg-and-team-consider-shutting-down-facebook-and-instagram-in-europe-if-meta-can-not-process-europeans-data-on-us-servers/ Thank you, Valve Tags: tech, valve, linux, gaming Thank you indeed. The amount of upstream contributions their efforts fostered is enormous at this point. https://kinduff.com/2022/02/06/thank-you-valve/ KDE: A Nice Tiling Environment and a Surprisingly Awesome DE Tags: tech, KDE It is nice to hear from a happy user from time to time. And yes, KWin is a very nice tiling environment once you have the right extensions (I use Bismuth and dynamic virtual desktops nowadays). I’m fairly happy with those. https://changelog.complete.org/archives/10338-kde-a-nice-tiling-envieonment-and-a-surprisingly-awesome-de On finding the average of two unsigned integers without overflow Tags: tech, c++, assembly, programming You thought averaging two unsigned was trivial? Think again, here what needs to happen in all its glory. https://devblogs.microsoft.com/oldnewthing/20220207-00/?p=106223 What’s in a Good Error Message? Tags: tech, programming, logging Excellent article about best practices for logging errors, most of it applies for other type of logs though. https://www.morling.dev/blog/whats-in-a-good-error-message/ Exposing a web service with Cloudflare Tunnel Tags: tech, cloudflare, networking, self-hosting This looks like a nice way to somewhat safely expose self-hosted services to the outside. https://erisa.dev/exposing-a-web-service-with-cloudflare-tunnel/ The Fall of Scrum? Tags: tech, agile, scrum This asks very valid questions. I’m a bit less optimistic than in the conclusion though… I suspect that if it truly falls, it will be replaced by another cargo cult. https://ronjeffries.com/articles/-z022/01121/fall-of-scrum/ Interview Questions to Ask Your Interviewer Tags: hr, interviews As I keep saying to people I interview… it’s also about you interviewing us! I wish I had more questions from them. This list is a bit biased to some type of companies but that’s a good starting point. https://daveceddia.com/interview-questions-to-ask-company/ Bye for now! [Less]
Posted about 2 years ago by Qt Dev Loop
We are happy to announce the release of Qt Creator 7 Beta!
Posted about 2 years ago by Qt Dev Loop
Qt Creator 7 comes with an updated CMake project configuration settings page.
Posted about 2 years ago by Weng Xuetian (csslayer)
Relationship between the input method server and applications under Fcitx5+KWin/Wayland With the latest release of Plasma 5.24, the native wayland input method support in KWin is improved to support non-virtual keyboard input method like Fcitx 5. ... [More] (There are lots of issues if you try to use zwp_input_method_v1 in 5.23). This leads to a outcome that non-Gtk/Qt application using text-input-v3 can be used flawlessly under KWin Wayland. Though, there is some small step that you’ll need to follow. First of all, I suggest you have most up-to-date Plasma 5.24 and Fcitx 5.0.14. I believe the distribution that picks up Plasma 5.24 should also have up-to-date Fcitx 5. Next, you’ll need to make KWin Wayland to launch Fcitx 5. This is required because only the privileged client is allowed to talk to KWin on input method protocol. KWin will send a socket file descriptor to the input method and input method service need to use this socket to connect to KWin. Thanks to a simple KCM, which is accessible from systemettings -> Virtual keyboard (Naming of the KCM is not so good, because it was designed for mobile phone to launch maliit initially.) From there, just select Fcitx 5. This requires you to have up-to-date Fcitx 5 to make it show up in this KCM, because it requires a special new field in the Fcitx 5 desktop file. Although kwin will launch input method in a pretty early stage, but there might still be some race condition if there is another mechanism (Like XDG autostart) to launch Fcitx 5. You can try to re-login to see if if works, if not, you may want to disable Fcitx 5’s own XDG autostart or what ever mechanism you’re using to launch Fcitx 5. Theoretically you don’t need to re-login, KWin can reload it immediately after you apply the setting in systemsettings. I would just re-login to make sure everything it properly launched, then you should be good to go. Hello world from Chinese Pinyin! Should I keep setting GTK_IM_MODULE / QT_IM_MODULE / XMODIFIERS? QT_IM_MODULEQt has text-input-v2 support which can be used if QT_IM_MODULE is empty, but it has some small issue regarding the preedit. Also, with current version of wayland input method protocol, there can be only one global input context for wayland. So right now it can be a problem if you want to use the “per-application” input state supported by Fcitx 5. But using Qt’s text-input protocol has one benefit, is that visually there won’t be blinking for input window. GTK_IM_MODULEGtk has text-input-v3 support, but it’s preedit is poorly styled with bold font for highlight. Also, its surrounding text support is poorly implemented. So for now, using GTK_IM_MODULE=fcitx might still be good option if you want to have all Fcitx features. XMODIFIERSIt’s required to support XWayland. [Less]
Posted about 2 years ago by KDE Dot News
Falkon Falkon Our web browser Falkon has been quickly gathering new features, and this month saw the 3.2 release. It adds in-screen capture functionality so you can easily grab a screenshot, it now comes with a inbuilt PDF viewer, and downloads can ... [More] be paused and resumed. Best of all, you can Download themes from the KDE Store. Who wants to customize their browser? Falkon is available from the Snap store or your Linux distro. If you are interested in packaging or developing Falkon, please contact the devs to get involved. More contributions are always appreciated! Kalendar 0.4.0 Kalendar Kalendar is a new calendar application that allows you to manage your tasks and events. Kalendar supports both local calendars as well as a multitude of online calendars: Nextcloud, Google® Calendar, Outlook®, Caldav, and many more. Kalendar was built with the idea to be usable on desktop, on mobile and everything in between. There have been monthly releases recently each adding a bunch of new features and improvements, including drag and drop for calendar items. In the new 0.4 release, there are two new views: the three-day and single-day views. These are based on the week view, presenting events and tasks according to their times. These new views should make it much easier to check your calendars when the window is width-constrained, or when you have lots of overlapping events. In the prior release, Kalendar aligned with Plasma’s motto of ‘simple by default, powerful when needed’. The developers tweaked the default configuration to make the application as clean and simple as it needs to be. They also changed the month view so the weeks would not be numbered by default, and for tasks to be arranged in ascending date order. This should save users from fiddling around with the settings! The app comes on the PinePhone Pro or you can get it from your Linux distro. It will likely be added to Plasma Mobile Gear releases in future. Ruqola 1.6 Ruqola Ruqola (Italian for the salad leaf "rocket") is KDE's cross platform Rocket.chat app. Rocket.chat is a secure chat app and platform. Their slogan is: real-time conversations with your colleagues, other companies or customers. Rocket.Chat does everything other platforms do, but doesn't expose your data. Ruqola’s recent 1.6 release settles the UI on tranditional QWidgets, adds team support and includes the all important emoji support. Download it from your Linux distro or grab installers for Windows and Mac. GCompris 2 GCompris 2 Our comprehensive educational games app GCompris released version 2, adding a bunch of new activities and improving a bunch more. Baby mouse is for children learning to interact with a computer for the first time. Oware is a traditional African strategy game, it can be played against the computer or with a friend. In Path encoding (absolute or relative) children need to give a set of directions to follow a defined path in a grid. Path decoding (absolute or relative) is the opposite. Children have to create the path corresponding to a defined set of directions. In Learn quantities, the goal is to count how many items are needed to represent a quantity. In Learn decimal numbers, children cut units in pieces to learn the concept of decimal numbers. Learn decimal additions and Learn decimal subtractions use the same principles as Learn decimal numbers, but this time to practice these operations. With Ordering numbers, children can practice ordering numbers in ascending or descending order. With Ordering letters, children can practice ordering letters in alphabetical order or in reverse order. Ordering sentences is a step up in which children can practice reading and grammar by sorting out parts of a sentence. Positions is an activity to learn the terms describing the relative position of an object. You can get it for Windows Store, Android on the Play Store, Download Mac or Linux, Flathub, Snap Store or even Raspberry Pi. Heaptrack 1.3 Heaptrack One for the developers, Heaptrack is an app to monitor memory usage. It can attach to running apps and tracks all calls to the core memory allocation functions and log these occurrences. The Heaptrack v1.3.0 release is packed with quite some important new features. Most importantly, it is now possible to filter by time ranges. To do so, simply select a time range in one of the plots and right click to filter by time. Once analysis is complete, you will see the delta between the two time points; a very useful addition to the heap memory analysis workflow! You can get it from your Linux distro or just use the AppImage. Kid3 Kid3 on Android Version 3.9 of Kid3, a music file tag editor, brings new features. It is now possible to add custom frames to the quick access frames, which are always directly editable in the frame table. Standard frame values can now be edited directly in columns of the file list. Users of the command line version kid3-cli now have the possibility to run QML scripts. Customization of the quick access frames is now also possible on Android. It also comes with translations to new languages and bug fixes. Kid3 is available all over. Chocolatey for Windows, Flathub on Linux, Homebrew for Mac, F-Droid for Android and any Linux distro. BugFixes Tellico 3.4.3 Our collection manager app updated its Kinopoisk data source KGeoTag 1.2 updated its build system and now talks updated to GPX files Mime Type. KDiff 1.9.4 fixed DOS/Wndows line ending handling regression and a race condition during teardown. New Beta Software Kodaskanna Kodaskanna is a utility for reading data from 1D/2D codes (e.g. QR codes or bar codes) and making the data available for further processing. The long-term vision for Kodaskanna is to be a simple utility to integrate in workflows where some data processing expects a data blob (or a series of those) to be taken from a machine readable source by the user. It should have reusable general purpose extensions both for reading all kind of encoded data in all kind of sources (e.g. graphical, acoustical) or straight from dedicated input devices, as well as for validating and previewing the extracted data for the expected data format. The invoking instance should be able to filter/define what is possible. The utility should be usable both in-process and out-of-process, and ideally itself be replaceable by other solutions providing the same interface. ARM64 Coming to the Snap Store KBlocks KDE publishes over 100 apps on the Snap store, an app store for all Linux distros. In the last 30 days there are 181,750 machines using them in 209 territories. Launching today we have published the first Snap for ARM64 so you can use KBlocks on your Raspberry PI or PinePhone Pro. This architecture will become more important once laptops using the chips become more prominent, so it's great to see KDE becoming available on another platform. [Less]
Posted about 2 years ago by Jan Grulich
There was a blog post from Peter Hutterer about Flatpak portals posted few months back. Peter explained what are portals and how do they work. Portals are used mostly because of security and sandbox/Wayland restrictions. Many times your only way to ... [More] get access outside (opening a file, sending a notification, sharing a screen, etc.) is to use a portal. For most use-cases applications or developers don’t need to care about them as their support is usually implemented in libraries they use. For example Qt and GTK use portals internally so apps can use still the same APIs as before and they don’t need to worry about their apps not working in sandboxed environments. BUT there are still scenarios where libraries have unsufficient or none portal support, or a different options are desired so what are the options in this case if you still need to use portals? Do everything yourself, which means you will implement all the DBus calls and handling yourself. Use a library. Most logic choice would be libportal, but there is also a project called ASHPD for Rust users. What is libportal and libportal-qt? The libportal library provides GIO-style async APIs for Flatpak portals. It hides all the DBus complexity users would face in case of using portals directly and provides a user-friendly library instead. You might think that the libportal-qt is the same thing, just with Qt-style APIs, but the idea behind it is that each toolkit (Gtk3, Gtk4, Qt5, Qt6) has a different way to get a window handle which is needed to associate portal dialogs with the app that invoked them. So libportal-qt just provides a way to get a XdpParent object from a QWindow. As a C++/Qt developer I don’t mind using C/Glib APIs and I used it many times, but there is still one speciality I fail to use everytime, my friend GVariant. Some of the portal APIs in libportal expects a GVariant for all the complex structures, for example to specify a filter option for OpenFile() call from the fillechooser portal, you have to build a very complex GVariant based on the DBus specification. Remember I told you libportal-qt doesn’t offer Qt-style APIs? This is not necessarily true, because I implemented all the complex structures you will have to pass in most of the portals and implemented functions that will return them as GVariants so you don’t need to get in touch with GVariants at all. How to use libportal-qt? First of all, all libportal flavours have pkgconfig file installed so it’s easy to use them from any build system and you just need to search for libportal-qt5 (we don’t have -qt6 version yet). And how does the code look like? For example let’s say you want to open an image: // Creates a filter rule, this can be a Mimetype or Pattern. XdpQt::FileChooserFilterRule rule; rule.type = XdpQt::FileChooserFilterRuleType::Mimetype; rule.rule = QStringLiteral("image/jpeg"); // Create a filter with our rules, we will then pass it to OpenFile() call as GVariant. XdpQt::FileChooserFilter filter; filter.label = QStringLiteral("Images"); filter.rules << rule; // Create a GVariant from our filter. This will result into variant in form of: // "[('Images', [(1, 'image/jpeg')])]" g_autoptr(GVariant) filterVariant = XdpQt::filechooserFiltersToGVariant({filter}); // Get XdpParent to associate this call (portal dialog) with our window. XdpParent *parent = xdp_parent_new_qt(m_mainWindow->windowHandle()); // Finally open a file. XdpQt::globalPortalObject() is another convenient function // that creates a global instance of XdpPortal object so you don't need to take care // of creating it yourself. For some of the arguments we just pass a nullptr to don't // specify them. xdp_portal_open_file(XdpQt::globalPortalObject() /*XdpPortal object*/, parent /*XdpParent object*/, "Title", filterVariant /*filters*/, nullptr /*current_filter*/, nullptr /*choices*/, XDP_OPEN_FILE_FLAG_NONE /*flags*/, nullptr /*cancellable*/, openedFile /*callback*/, this /*data*/); xdp_parent_free(parent); // Then the callback would look like this, eg. static void openedFile(GObject *object, GAsyncResult *result, gpointer data) { g_autoptr(GError) error; g_autoptr(GVariant) ret = xdp_portal_open_file_finish(XdpQt::globalPortalObject(), result, &error); if (ret) { // Another convenient function that will get you uris and choices from // GVariant returned by xdp_portal_open_file() call. XdpQt::FileChooserResult result = filechooserResultFromGVariant(ret); // Do whatever you want to do with the result. Here we just print opened selected files. qDebug() << result.uris; } } As you can see, no GVariant got hurt and you can easily open a file without any GVariant knowledge. Besides FileChooser portal helpers, we also have Notification portal helpers, because serializing icons and buttons is also something that is not trivial. For the rest of the portals you either don’t need to use complex GVariants so you can use them easily without helper functions same way as shown above, or some portals like ScreenCast or RemoteDesktop are not used that often and we don’t have helper functions for those just yet. I hope you can find this helpful in case you want to join this world. The libportal project is hosted on GitHub in case you want to try it just now, because this is still not part of any stable release (will be in libportal 0.6), or report a bug or just look at my GVariant helpers to see what I spare you of. [Less]