• Stars
    star
    259
  • Rank 154,467 (Top 4 %)
  • Language
    C++
  • Created about 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

KDAB's collection of miscellaneous useful C++ classes and stuff

KDToolBox

KDAB's collection of miscellaneous useful C++ classes and stuff.

Generic Tools

C++ Tools

  • future-backports Backports of future C++ library components to C++11:
    • k20::erase/k20::erase_if - C++20's uniform container erasure
  • DuplicateTracker A helper class to keep track of "seen" elements, e.g. to avoid processing duplicate elements in a collection. It transparently uses std::pmr::monotonic_buffer_resource to improve its memory usage (compared to a 'plain' set implementation).
  • toContainer Helper functions to convert a container to another container, using a convenient pipeline style.
  • propagate_const A backport of propagate_const from the C++ Extensions for Library Fundamentals version 3.

Qt Tools

  • Ui Watchdog A header-only tool to break the program when the main-thread event loop is blocked for more than 300ms.
  • Qml Stacktrace Helper A function for retrieving a QML backtrace with gdb.
  • Qml PropertySelector A QML Item to easily set property values based on a combination of conditions
  • Model/View ModelIterator A set of (template) classes to allow iteratating over QAbstractItemModels using std algorithms
  • Model/View SortProxyModel A QSortFilterProxyModel replacement that just does sorting, but properly signals moves due to sorts.
  • Model/View UpdateableModel A template class to make defining a model that sends proper update signals easy
  • Model/View Table to List Proxy A proxy model flattening a table model into a list model (mainly for Qt Quick 2).
  • Functional Sort/Filter Proxy A QSortFilterProxyModel convenience subclass that allows to set filtering/sorting functions, removing the need for subclassing.
  • TabWindow widget A tab widget that allows extracting a tab to a new window, like modern web browsers.
  • EventFilter A way for "connecting" a QEvent to lambda with two lines of code.
  • MessageHandler An API to help you intercept the output going through qDebug()/qWarning()/etc.
  • QStringTokenizer A universal, safe, zero-allocation string splitter.
  • Signal/Slot Connection Throttlers An implementation of throttler/debouncer classes for signal/slot connections.
  • Single Shot Connect A header only version of QObject::connect, that establishes a single shot connection.
  • Qt Hasher A header-only hasher object for using Qt types together with unordered_map, unordered_set, etc.
  • NotifyGuard A RAII guard object to make sure object notification signals are properly emitted.
  • asan_assert_fail_qt Intercept Q_ASSERT failures with ASAN and print a backtrace.
  • KDSqlDatabaseTransaction A RAII wrapper for database transactions when using the Qt SQL APIs.
  • pointer_cast Tools to ease migrating from QSharedPointer to std::shared_ptr.
  • qt_fmt Convenience for printing Qt classes through libfmt.
  • cmake-project A replacement for qmake -project, generating a ready-to-use CMakeLists.txt.
  • includemocs A script to add inclusion of moc files to all .cpp files in the project.
  • qt6_natvis Natvis file for Qt6 debugging with Visual Studio and VS Code, with a test project.
  • KDStlContainerAdaptor Classes to ease the transition from Qt containers to the C++ Standard Library containers.

Other Code Snippets

Squish Tools

  • kdrunsquish.py Runs squish tests in parallel via the Qt offscreen QPA.

Licensing

KDToolBox is (C) 2019-2023, Klarälvdalens Datakonsult AB, and is available under the terms of the MIT license (see the LICENSE.MIT.txt file in this repository).

Contact KDAB at [email protected] if you need different licensing options.

Exceptions

The qt6_natvis project is available under the terms of the GPLv3 license (see the LICENSE.GPLv3.txt in this repository)

For the "Other code snippets", which are hosted outside of this repo, please consult their own license.

Get Involved

KDAB will happily accept external contributions.

Please submit your contributions or issue reports from our GitHub space at https://github.com/KDAB/KDToolBox

About KDAB

KDToolBox is supported and maintained by Klarälvdalens Datakonsult AB (KDAB).

The KDAB Group is the global No.1 software consultancy for Qt, C++ and OpenGL applications across desktop, embedded and mobile platforms.

The KDAB Group provides consulting and mentoring for developing Qt applications from scratch and in porting from all popular and legacy frameworks to Qt. We continue to help develop parts of Qt and are one of the major contributors to the Qt Project. We can give advanced or standard trainings anywhere around the globe on Qt as well as C++, OpenGL, 3D and more.

Please visit https://www.kdab.com to meet the people who write code like this.

Stay up-to-date with KDAB product announcements:

More Repositories

1

hotspot

The Linux perf GUI for performance analysis.
C++
3,925
star
2

GammaRay

GammaRay is a tool to poke around in a Qt-application and also to manipulate the application to some extent.
C++
1,410
star
3

codebrowser

Woboq CodeBrowser
C++
1,077
star
4

cxx-qt

Safe interop between Rust and Qt
Rust
941
star
5

KDDockWidgets

KDAB's Dock Widget Framework for Qt
C++
623
star
6

android_openssl

OpenSSL scripts and bins for Android (useful for Qt on Android apps)
C
291
star
7

KDBindings

Reactive programming & data binding in C++
C++
208
star
8

Charm

The Cross-Platform Time Tracker
C++
192
star
9

kdabtv

This repository contains the code of the examples showcased in the KDAB TV video series.
C++
186
star
10

DeclarativeWidgets

Library and tools for creating QtWidget UIs using QML
C++
168
star
11

KDStateMachineEditor

A framework for creating Qt State Machine metacode using a graphical user interface
C++
159
star
12

KDSoap

A Qt-based client-side and server-side SOAP component
C++
140
star
13

kuesa

Professional 3D asset creation and integration workflow for Qt
C++
137
star
14

qt3d-examples

Qt3D Examples
C++
131
star
15

KDReports

Qt library for generating printable and exportable reports from code and from XML descriptions.
C++
115
star
16

KDChart

A Qt tool for creating business and scientific charts. This is the canonical repository for KDChart.
C++
99
star
17

KDAlgorithms

Algorithm wrappers
C++
77
star
18

sqlate

C++
58
star
19

android

KDAB's Android gems
C++
45
star
20

KDSingleApplication

KDAB's helper class for single-instance policy applications
CMake
45
star
21

integrating-qq2-with-opengl

C++
43
star
22

virtual-keyboard-demo

Example source code for the implementation of a virtual keyboard based on Qt input method framework
C++
42
star
23

Qt4to5

C++
40
star
24

KDMacTouchBar

KDAB's Qt Widget for the Mac Touch Bar
Objective-C++
37
star
25

KDTools

KDTools aims to ease the daily work of Qt programmers by providing a number of well-designed, easy-to-use widgets and non-gui classes.
C++
30
star
26

FatCRM

Desktop Application for SugarCRM
C++
28
star
27

qsslint

Linter for Qt stylesheet files
C++
21
star
28

ctf2ctf

Common Trace Format to Chrome Trace Format converter
C++
18
star
29

eglinfo

Provides information about available EGL configurations.
C++
16
star
30

GammaRay-plugin-examples

Example plug-ins for GammaRay
C++
14
star
31

perfparser

fork of qt-creator/perfparser.git with not-yet upstreamed changes required for hotspot
C++
14
star
32

homebrew-tap

Homebrew formulas for KDAB projects
Ruby
11
star
33

OpenEmbedded-Archos

An Angstrom distro for the Archos 101IT tablet based on OpenEmbedded, with Qt4 and Qt5 support including multitouch and OpenGL/ES2
C
11
star
34

QMemstat

Inspect Pagemaps of Programs
C++
8
star
35

KDBoatDemo

KDAB Nautical UI - concept of the next generation UI for sailing boats
QML
8
star
36

KDUtils

A set of C++ helpers and wrappers around the C++ standard library
C++
7
star
37

autogen

Common build system code for KDAB products
Python
5
star
38

clang-format-rs

clang-format wrapper for rust
Rust
4
star
39

patent_defense

Defensive Patent Publications
C
3
star
40

qnxtools

Python
3
star
41

KDGpu

KDGpu is a thin wrapper around Vulkan to make modern graphics easier to learn and use
C++
3
star
42

WebKit

QtWebkit clone
C++
2
star
43

event_loop_watchdog

A class to detect whenever your main event loop gets blocked for more than x milliseconds
Dart
2
star
44

cabin-demo

KDAB Flutter demo application.
Dart
1
star
45

GammaRayPlatformProbe

GammaRay Platform Probe
C++
1
star
46

kdab-overlay

Gentoo Portage overlay containing KDAB software
Shell
1
star
47

kuserfeedbackdocker

Docker container for the KUserFeedback server.
PHP
1
star
48

unicode_view

Playground repo for unicode view
C++
1
star
49

blog-vscode-template

vscode template for C++ projects (Cross referenced by the blog, do not delete)
CMake
1
star
50

vscode-qttest

VSCode extension for supporting Qt tests in the "Testing" sidebar
TypeScript
1
star