Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
ea0d8bb
Fixed #527 - updateDockWidgetFocusStyle() function error
githubuser0xFFFF Jun 23, 2023
0951613
Fixed nullptr access in DockWidgetTab
githubuser0xFFFF Jun 27, 2023
61fd450
Added QQuickWidget to demo application for testing OpenGl QtQuick on …
githubuser0xFFFF Jun 30, 2023
46517bf
Fixed mouse pressed state for Linux (use memeber variable instead of …
githubuser0xFFFF Jun 30, 2023
1b9e532
Updated Linux install requirements in README.md for building the demo…
githubuser0xFFFF Jun 30, 2023
87265af
Updated cmake build for demo to use quick and quickwidgets
githubuser0xFFFF Jun 30, 2023
bc855f7
Update PyQt bindings to 4.0.4 (#532)
n-elie Jul 3, 2023
797d52c
Started implementing autohide drag functionality
githubuser0xFFFF Jun 27, 2023
9e116cb
Tested various pin buttons
githubuser0xFFFF Jun 27, 2023
39be0aa
Implemented new dock overlay icons for sidebar areas
githubuser0xFFFF Jun 27, 2023
fe1ddf0
Removed drop icons for sidebar drops
githubuser0xFFFF Jun 28, 2023
d3af446
Added dropIntoAutoHideSideBar() function
githubuser0xFFFF Jun 28, 2023
5df9311
Improved dragging of widgets into AutoHideArea
githubuser0xFFFF Jun 28, 2023
30a7827
Fixed DockContainerWidget.cpp contentRect() function to work properly…
githubuser0xFFFF Jun 28, 2023
4442782
Added support for make auto hide widget floating via double click or …
githubuser0xFFFF Jul 7, 2023
8ac1e88
Implemented Pin To functionality for Auto Hide Tabs
githubuser0xFFFF Jul 7, 2023
69184fd
Implemented initial support for dragging auto hide tabs
githubuser0xFFFF Jul 7, 2023
841f990
Improved support for AutoHideTab drag and drop
githubuser0xFFFF Jul 7, 2023
3df5e0a
Properly implemented drag and drop of auto hide tabs
githubuser0xFFFF Jul 10, 2023
35e392a
Fixed detaching of auto hide widgets in a floating widget
githubuser0xFFFF Jul 10, 2023
42d3ef4
Added Auto-Hide tab unpin context menu entry
githubuser0xFFFF Jul 10, 2023
e2650c0
Added "Close" action to AutoHideTab context menu
githubuser0xFFFF Jul 10, 2023
4da5dac
Removed debug output and fixed painting of SideBar drag overlays
githubuser0xFFFF Jul 10, 2023
9e5cce9
AutoHide dock area now always shows pin button independently from Doc…
githubuser0xFFFF Jul 11, 2023
c956c88
Changed default auto hide config - added flag AutoHideCloseButtonColl…
githubuser0xFFFF Jul 11, 2023
2a487f7
Removed some std::cout debug output
githubuser0xFFFF Jul 11, 2023
64c251b
Properly consider pinnable flag of dock widget when painting the drop…
githubuser0xFFFF Jul 11, 2023
0d3d167
Added support for dropping dock widget to a certain tab postion of a …
githubuser0xFFFF Jul 12, 2023
d71d2a2
Added initial support for inserting dropped dock widgets at a certain…
githubuser0xFFFF Jul 12, 2023
8f6161a
Fixed tab insertion when dragging side tab
githubuser0xFFFF Jul 12, 2023
2612c19
Properly handle dragging of dock widget into DockWidgetTabBar and Aut…
githubuser0xFFFF Jul 12, 2023
d0345a8
Improved sizing of AutoHideWidgets when dragging between side bars
githubuser0xFFFF Jul 12, 2023
3f119cb
Removed debug output
githubuser0xFFFF Jul 13, 2023
99d482e
Updated README.md for 4.1 release
githubuser0xFFFF Jul 13, 2023
12773b1
Added missing README images
githubuser0xFFFF Jul 13, 2023
728fb34
Removed unimolemented superfluous function definitions
githubuser0xFFFF Jul 14, 2023
8b16d04
Fixed issue #544 - crash in CDockAreaTabBar::currentTab()
githubuser0xFFFF Aug 3, 2023
6a69e8e
Update PyQt bindings to 4.1.1 (#542)
n-elie Aug 2, 2023
29afca6
Fix various typos (#547)
luzpaz Aug 8, 2023
7824cff
Fix CMake scripts for FreeBSD (#550)
Tectu Aug 17, 2023
f150213
Fix crash in auto hide tab (#552)
SyarifFakhri Aug 24, 2023
9612e73
Delete implicit ScrollArea when content Widget is deleted in hideDock…
AndreMeyerRMC Aug 24, 2023
dd2f634
CMake Script - Add debug postfix "d" (#406) (#558)
603185423 Sep 11, 2023
e2e328c
Enabled modifying MSVC runtime in cmake (#559)
vhutter Sep 11, 2023
832fe04
Implemented #554 - Add a configuration that avoid tab label eliding
githubuser0xFFFF Sep 19, 2023
09b97bc
Fixed documentation issue - wrong location of picture
githubuser0xFFFF Sep 19, 2023
9078557
Fix empty floating widget on linux (#563)
iam-peter Sep 22, 2023
7888c46
Improve Python Support (#567)
nateskulic Oct 5, 2023
f8fa463
Add ability to set user defined toggle view action (#562)
uggas Oct 19, 2023
3b21033
Added minimize and close action to Auto Hide context menu
githubuser0xFFFF Oct 19, 2023
68b4fd4
Added support for global dock manager toolbar style and custom dock w…
githubuser0xFFFF Oct 19, 2023
9ba2f31
Added optional Minimize button to AutoHide dock widget title bar
githubuser0xFFFF Nov 6, 2023
a0d5837
Added documentation for new Auto Hide Minimize button
githubuser0xFFFF Nov 6, 2023
88ebae1
Improved disabled pin button
githubuser0xFFFF Nov 6, 2023
a808c77
Fix memory leak in CDockContainerWidget::restoreState (#576)
gafusss Nov 4, 2023
b690c95
Updated documentation
githubuser0xFFFF Nov 7, 2023
9eef3b0
Fixed #581 - FocusHighlighting is broken after detaching a dock widget
githubuser0xFFFF Nov 24, 2023
4385e74
Added parentSplitter() fucntion to DockArea and removed dead code fro…
githubuser0xFFFF Nov 27, 2023
7ba4d20
Fixed bug in focus_highlighting.css stylesheet
githubuser0xFFFF Nov 27, 2023
0108f11
Fix DockWidget crach when area is a nullptr. (#582)
tmartsum Dec 1, 2023
9dc8c6d
Updated gitignore
githubuser0xFFFF Dec 4, 2023
b015d08
Updated default AutoHide config to use Minimize button
githubuser0xFFFF Dec 4, 2023
42f64b2
new configuration of icon only tabs
nitramr Dec 2, 2023
a697157
Added documentation for new "ShowTabTextOnlyForActiveTab" config flag
githubuser0xFFFF Dec 4, 2023
f35d7b8
Fix https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/is…
jporcher Dec 5, 2023
de5200b
Avoid dock manager double delete (crashes) (#587)
tmartsum Dec 6, 2023
6db5c69
Update documentation regarding central widget (#589)
tmartsum Dec 7, 2023
7506c8f
Improve safety in code (#588)
tmartsum Dec 8, 2023
c7484e6
Fixed some compiler warnings on Ubuntu 22.04
githubuser0xFFFF Dec 8, 2023
7eff779
Added .clang-format file
githubuser0xFFFF Jan 2, 2024
5afcf0f
Fixed debug output issues and improved debug output for CDockWidget d…
githubuser0xFFFF Jan 4, 2024
5ce7ce0
Fixed #594 - Destruction of CDockWidget inside a CFloatingDockContainer
githubuser0xFFFF Jan 4, 2024
b45e7de
respect customized CMake install locations (#593)
bebuch Dec 12, 2023
a719155
Fixed issue #597 - Crashes when the floating widget moves to the dock…
githubuser0xFFFF Jan 16, 2024
242f93f
Fix 'zero as null pointer constant' warning (#598)
gerlachs Jan 16, 2024
021b12e
Added CDockManager::lockDockWidgetFeaturesGlobally functionality to g…
githubuser0xFFFF Jan 23, 2024
1250526
Fixed crash caused by changes related to issue #594 - deletion of CFl…
githubuser0xFFFF Jan 26, 2024
e0f15e9
Fixed wrong hiding/showing of dock area title bar buttons when DockAr…
githubuser0xFFFF Feb 12, 2024
edd59fa
Fixed #604 - AutoHide widgets disapears when last open DockWidget is …
githubuser0xFFFF Feb 12, 2024
63ede64
fix forward declarations of `QXmlStreamWriter` (#608)
tnixeu Feb 27, 2024
f73c690
Fix ODR violations when using CMake unity builds. (#609)
tnixeu Feb 28, 2024
c918016
readme: small wording improvements (#610)
NeroBurner Feb 28, 2024
a69cb56
Ensure that TabWidget was not deleted by using it as context object (…
UnlimitedStack Mar 16, 2024
2d0376d
Fixed problem in AutoHideSideBar that prevented the dock container, t…
githubuser0xFFFF May 8, 2024
ddd1b2f
Update PyQt bindings to 4.3.0 (#622)
n-elie Apr 3, 2024
087fd20
Include GNUInstallDirs for CMAKE_INSTALL_* vars to be defined (#621)
n-elie Apr 3, 2024
349af10
Fix "extra ;" warning (#624)
gerlachs Apr 8, 2024
8509982
Added configflags example to test use of CDockManager config flags
githubuser0xFFFF May 21, 2024
7794d20
Update DockAreaTabBar.cpp (#640)
invisibleGG Jun 3, 2024
f4b194e
Fixed issue #641 - Unexpected behaviour with tab drag on scrollable t…
githubuser0xFFFF Jul 8, 2024
ff0f777
Fixed #653 - DisablingTabTextEliding not letting DockAreaDynamicTabsM…
githubuser0xFFFF Jul 8, 2024
3d83ae5
Fixed #642 - The floating window can not back to normal size after ma…
githubuser0xFFFF Jul 8, 2024
b78329f
Fixed issue #654 - Wheel event on DockAreaTabBar
githubuser0xFFFF Jul 25, 2024
22c4bbd
Make startDragging public (#658)
gavininfinity Aug 19, 2024
d1e333b
Add open auto-hide dock on hover from drag and drop (#663)
TheBoje Oct 4, 2024
6bc3862
Fix formatting (#663)
TheBoje Oct 4, 2024
0b8d8d1
Fix formatting#2 (#663)
TheBoje Oct 4, 2024
9997187
Add AutoHideDragNDrop example
TheBoje Oct 22, 2024
6affbd6
Added support for setting config parameters to CDockManager
githubuser0xFFFF Oct 28, 2024
1901986
Refactored, fixed and improved drag hover functionality
githubuser0xFFFF Oct 28, 2024
27fc51d
Improved autohidedragndrop example to check, if it also works when dr…
githubuser0xFFFF Oct 28, 2024
c708c2e
Added all build* subfolders to .gitignore
githubuser0xFFFF Oct 28, 2024
9126d76
Fixed Qt5 build issues
githubuser0xFFFF Nov 20, 2024
9e81a4e
Fix missing declarations
studiofuga Nov 8, 2024
5d62a19
Add ability to customize the DockArea Title Bar and DockWidget Tab co…
studiofuga Nov 8, 2024
177f9a6
Improved tab bar scrolling (#678)
Servall4 Dec 12, 2024
d5eba43
CDockAreaTitleBar::resizeEvent function to fix issue #656
githubuser0xFFFF Dec 12, 2024
c8054cc
Added new config flag DoubleClickUndocksWidget to configure if double…
githubuser0xFFFF Dec 12, 2024
291abbc
Added support for componentsFactory per dock manager
githubuser0xFFFF Dec 20, 2024
bd0515c
Add factory method to Dock manager as an alternative method to create…
githubuser0xFFFF Dec 20, 2024
de037d0
Adjusted MyDockAreaTitleBar source code style
githubuser0xFFFF Dec 20, 2024
6219f5f
Fix issue with windeployqt (#683)
nolankramer Dec 13, 2024
0fc8b57
Updated README.md to use the new factory function CDockManager::creat…
githubuser0xFFFF Dec 20, 2024
15fc72d
Imporved user guide - added documentation for some undocumented flags.
githubuser0xFFFF Dec 20, 2024
0d5088e
Implemented issue #694 - added auto hide configuration flag AutoHideC…
githubuser0xFFFF Jan 15, 2025
ed661ec
Improved user-guide.md
githubuser0xFFFF Jan 16, 2025
88c154d
Fix various typos (#692)
luzpaz Jan 15, 2025
96460f0
update minimum CMake version to 3.16 (#710)
anoymouserver Feb 5, 2025
b268051
DOC: Update DREAM3D-NX information and screen shot (#712)
imikejackson Feb 7, 2025
36615fa
Mention pyqt6 bindings in readme (#723)
tlambert03 Mar 3, 2025
dfaab3d
Update linux-builds.yml
githubuser0xFFFF Mar 6, 2025
328b059
Fixed #711 - Focus loss when closing other dock widgets
githubuser0xFFFF Mar 6, 2025
32503bd
Fixed crash caused by unparented widgets after restoring layout. (#724)
obsgolem Mar 7, 2025
375f03b
Always show TitleBar if it contains any explicit actions (#720)
AndreMeyerRMC Mar 7, 2025
3e3316c
Fixed #722 - Ensure that application is in front of other application…
githubuser0xFFFF Mar 7, 2025
584c3aa
Improved fix #722 - it now works always even if focus highlighting is
githubuser0xFFFF Mar 13, 2025
bddeccb
Bring all floating widgets to foreground on Linux if a dockwidget is
githubuser0xFFFF Mar 14, 2025
f83db72
Fix nasty and still unclear bug with "Close Other" not closing all ta…
studiofuga Mar 17, 2025
bbc07d3
fix compile with Qt 6.9.0 - qplatformnativeinterface.h missing (#736)
FelixBer Apr 23, 2025
af4e212
Remove dangling pointer to tab widget when a dock widget is removed f…
pylessard May 8, 2025
ba0b1e4
Update linux-builds.yml
githubuser0xFFFF May 8, 2025
e602343
Update linux-builds.yml
githubuser0xFFFF May 8, 2025
c0fe5b7
Update linux-builds.yml
githubuser0xFFFF May 8, 2025
e16459c
Update linux-builds.yml
githubuser0xFFFF May 8, 2025
3ef06c6
LIC: Move installation of license file to share/ads folder (#748)
imikejackson May 30, 2025
0a4f125
Add workflow to build with CMake and MSVC / MinGW on Windows
githubuser0xFFFF Jun 1, 2025
3b8f781
Updated workflow file to fix wrong CMake detection of MSVC
githubuser0xFFFF Jun 1, 2025
c3cbf92
Removed non working windows-cmake.yml workflow
githubuser0xFFFF Jun 1, 2025
f129aeb
Added windows-cmake.yml file
githubuser0xFFFF Jun 11, 2025
12a3e98
Updated run command in yaml for MSVC
githubuser0xFFFF Jun 1, 2025
dbabc8e
Updated windows-cmake.yml
githubuser0xFFFF Jun 1, 2025
fdc1773
Updated workflow
githubuser0xFFFF Jun 1, 2025
d5eea23
And another try
githubuser0xFFFF Jun 1, 2025
2f1fdaa
And another try
githubuser0xFFFF Jun 1, 2025
0a862b4
An another try
githubuser0xFFFF Jun 1, 2025
2142638
Updated MinGW build to work properly
githubuser0xFFFF Jun 1, 2025
a76030f
And another try
githubuser0xFFFF Jun 1, 2025
da62aa5
Workaround bug in install-qt-action
githubuser0xFFFF Jun 1, 2025
fa7b34b
Updated windows-cmake.yml
githubuser0xFFFF Jun 1, 2025
4f3f40c
Updated CI MinGW Qt version to 6.8.2
githubuser0xFFFF Jun 1, 2025
c58732b
Updated arch
githubuser0xFFFF Jun 1, 2025
ef160be
Swicthed MinGW build from Ninja to MinGW
githubuser0xFFFF Jun 1, 2025
dd13251
Updated windows-cmake.yml to use bundled Qt MinGW toolchain
githubuser0xFFFF Jun 1, 2025
1d96cdc
Updated the MinGW build
githubuser0xFFFF Jun 1, 2025
d761558
Updated MinGW build
githubuser0xFFFF Jun 1, 2025
2f9a9ad
Removed caching from MinGW build
githubuser0xFFFF Jun 1, 2025
4ad0265
Updated Windows workflow to use Qt MinGW 9
githubuser0xFFFF Jun 1, 2025
947fca6
Updated mingw tool to mingw1310
githubuser0xFFFF Jun 11, 2025
05221f3
Updated README.md with workflow badges
githubuser0xFFFF Jun 11, 2025
55267b5
Added showcase image for scrutiny
githubuser0xFFFF Jun 12, 2025
6b87f01
Added Scrutiny Debugger to showcase section
githubuser0xFFFF Jun 12, 2025
b6e177f
Added documentation for xfce4 focus stealing issue
githubuser0xFFFF Jun 12, 2025
a9f4d02
Updated examples and demo to use createDockWidget() function for dock…
githubuser0xFFFF Jun 12, 2025
f1d3945
Documented the use of Qt::AA_ShareOpenGLContexts when using OpenGL wi…
githubuser0xFFFF Jun 12, 2025
c9cc80f
Updated documentation link in README.md
githubuser0xFFFF Jun 12, 2025
a50e0e0
Fixed typo in DockContainerWidget.h (#750)
colebeezley Jun 12, 2025
4ab9669
BUG: Fixes Linux + Qt 6.9 cmake configuration and linker errors (#752)
imikejackson Jun 13, 2025
395204d
Fixed issue #762 - Context menu entries for DockWidget tab missing fo…
githubuser0xFFFF Aug 22, 2025
0e904dc
Removed color from release badge because orange is used for releases …
githubuser0xFFFF Aug 22, 2025
8ce6290
Fix C++23 Warnings (#764)
TheComet Aug 25, 2025
0650751
Add gui-private include dirs for Qt5 (#768)
n-elie Sep 3, 2025
0157ef1
Introduce SOVERSION for ABI compatibility (#771)
grulja Sep 10, 2025
ba37e86
Added PySoWorks to showcase section
githubuser0xFFFF Sep 17, 2025
9b68661
Support tabs at the bottom of dock widgets.
Sep 23, 2025
673409d
Don't show title bar for floating widgets with tabs at bottom.
Sep 24, 2025
cdcdbc6
Updated the title label styling in all of the stylesheets.
Sep 24, 2025
da6120e
Updated autohidedragndrop example to use new TabsAtBottom config flag
githubuser0xFFFF Sep 26, 2025
02aa4f3
Added documentation for TabsAtBottom flag
githubuser0xFFFF Sep 26, 2025
2b43999
Remove GuiPrivate dependency for Windows builds (#777)
anoymouserver Oct 9, 2025
fbea2a7
Fix qApp connection (#778)
hormnek Oct 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
AlignConsecutiveDeclarations: None
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments: true

AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: false

AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes

BinPackArguments: true
BinPackParameters: true

BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false

BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: AfterColon
BreakStringLiterals: true

ColumnLimit: 82
CommentPragmas: '^(!.*|@c)'

CompactNamespaces: false

ConstructorInitializerAllOnOneLineOrOnePerLine: true
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true

FixNamespaceComments: true

IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<windows(\.h)?>' # windows headers
Priority: -1
- Regex: '^<labbcan[[:alnum:]._/]+' # labbcan headers
Priority: 1
- Regex: '^<diag[[:alnum:]._/]+' # usl headers
Priority: 1
- Regex: '^<usl[[:alnum:]._/]+' # usl headers
Priority: 1
- Regex: '^<qt5compat[[:alnum:]._/]+' # qtlabb headers
Priority: 2
- Regex: '^<qtcoreaddons[[:alnum:]._/]+' # qtlabb headers
Priority: 2
- Regex: '^<qtlabb[[:alnum:]._/]+' # qtlabb headers
Priority: 2
- Regex: '<Q[[:alnum:].]+>' # Qt headers
Priority: 3
- Regex: '^<sila_cpp[[:alnum:]._/]+' # sila_cpp headers
Priority: 4
- Regex: '<[[:alnum:]._/]+\.h>' # other headers
Priority: 5
- Regex: '<[[:alnum:]._/]+>' # system headers
Priority: 6
- Regex: '.*'
Priority: 7

IncludeIsMainRegex: '(_p)?$'

IndentCaseBlocks: false
IndentCaseLabels: false
IndentPPDirectives: AfterHash
IndentWidth: 4
IndentWrappedFunctionNames: false

KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1

NamespaceIndentation: None

PenaltyBreakAssignment: 20
PenaltyBreakBeforeFirstCallParameter: 15
PenaltyBreakComment: 10
PenaltyBreakFirstLessLess: 5
# PenaltyBreakOpenParenthesis: 30
PenaltyBreakString: 150
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 100
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 150

PointerAlignment: Left
ReflowComments: true

SortIncludes: CaseSensitive
SortUsingDeclarations: true

SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false

SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false

SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

Standard: c++17

StatementMacros: [ 'Q_UNUSED', 'PIMPL_D', 'PIMPL_Q', 'OD_ENTRY', 'OD_ENTRY_PROCIMG' ]

TabWidth: 4
UseTab: Never
63 changes: 44 additions & 19 deletions .github/workflows/linux-builds.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,59 @@
name: linux-builds

on: [push]
on:
push:
workflow_dispatch:

jobs:
build:
strategy:
matrix:
os: [ubuntu-20.04]
jobs:
build_ubuntu_2204_cmake:
runs-on: ubuntu-22.04

env:
QT_VERSION: 6.4.2
QT_DIR: ${{ github.workspace }}/Qt

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v1
- name: install qt
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history and tags

- name: Install dependencies
run: |
sudo apt-get update --fix-missing
sudo apt-get install qt5-default
sudo apt-get install qtbase5-private-dev
- name: qmake
run: qmake
- name: make
run: make -j4

sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build libgl1-mesa-dev libxkbcommon-x11-0 libx11-dev

- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ env.QT_VERSION }}
target: desktop
host: linux
arch: gcc_64
dir: ${{ env.QT_DIR }}
setup-python: false

- name: Configure with CMake
run: |
cmake -S . -B build \
-DCMAKE_PREFIX_PATH="${{ env.QT_DIR }}/Qt/${{ env.QT_VERSION }}/gcc_64" \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install \
-DCMAKE_BUILD_TYPE=Release \
-G Ninja

- name: Build
run: cmake --build build

- name: Run CMake install (optional)
run: cmake --install build

build_ubuntu_2204:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Cache Qt
id: cache-qt-6-4
uses: actions/cache@v1 # not v2!
uses: actions/cache@v3
with:
path: ../Qt/6.4.2
key: ${{ runner.os }}-QtCache-Qt6-4
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/windows-cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: windows-builds

on:
push:
workflow_dispatch:

jobs:
build_windows_msvc:
name: Build with MSVC and Ninja
runs-on: windows-2022

env:
QT_VERSION: 6.4.2
QT_DIR: ${{ github.workspace }}\Qt

steps:
- name: 📦 Checkout source code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: ⚙️ Install Ninja build system
run: choco install ninja --no-progress

- name: 📥 Install Qt for MSVC
uses: jurplel/install-qt-action@v3
with:
version: ${{ env.QT_VERSION }}
target: desktop
host: windows
arch: win64_msvc2019_64
dir: ${{ env.QT_DIR }}
setup-python: false

- name: 🏗️ Setup MSVC Developer Environment
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: x64

- name: 🛠️ Configure CMake with Ninja + MSVC
run: |
cmake -S . -B build -G Ninja `
-DCMAKE_PREFIX_PATH="${{ env.QT_DIR }}\Qt\${{ env.QT_VERSION }}\msvc2019_64" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}\install" `
-DCMAKE_BUILD_TYPE=Release
shell: powershell

- name: 🔨 Build with Ninja + MSVC
run: cmake --build build
shell: powershell

- name: 📦 Install built files
run: cmake --install build
shell: powershell

build_windows_mingw:
name: Build with Qt's MinGW and CMake (no Ninja)
runs-on: windows-2022

env:
QT_VERSION: 6.8.3
QT_DIR: ${{ github.workspace }}\Qt

steps:
- name: 📦 Checkout source code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 📥 Install Qt + MinGW
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==3.1.19'
version: ${{ env.QT_VERSION }}
target: desktop
host: windows
arch: win64_mingw
dir: ${{ env.QT_DIR }}
tools: 'tools_mingw1310'
setup-python: false

- name: ➕ Add Qt-bundled MinGW to PATH
shell: powershell
run: |
echo "${{ env.QT_DIR }}\Tools\mingw1310_64\bin" >> $env:GITHUB_PATH

- name: 🛠️ Configure CMake (MinGW)
shell: powershell
run: |
cmake -S . -B build-mingw `
-DCMAKE_PREFIX_PATH="${{ env.QT_DIR }}\Qt\${{ env.QT_VERSION }}\mingw_64" `
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}\install `
-DCMAKE_BUILD_TYPE=Release `
-G "MinGW Makefiles"

- name: 🔨 Build with CMake (MinGW)
shell: powershell
run: cmake --build build-mingw -- -j2

- name: 📦 Install built files (MinGW)
shell: powershell
run: cmake --install build-mingw
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*.pro.user
*.pro.user*
/build
*.o
*.dylib
Expand All @@ -7,6 +7,9 @@ qrc_*
moc_*
ui_*
Makefile
*.dll
*.a
build*

# IDEs
.idea
Expand Down
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (POLICY CMP0091)
cmake_policy(SET CMP0091 NEW)
endif (POLICY CMP0091)

# By default, the version information is extracted from the git index. However,
# we can override this behavior by explicitly setting ADS_VERSION and
Expand All @@ -12,11 +16,13 @@ if(NOT ADS_VERSION)
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GitTagVersion}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GitTagVersion}")
set(VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
set(VERSION_SONAME "${VERSION_MAJOR}")
else()
string(REGEX MATCHALL "[\.]" VERSION_DOT_MATCHES ${ADS_VERSION})
list(LENGTH VERSION_DOT_MATCHES VERSION_DOT_COUNT)
if(VERSION_DOT_COUNT EQUAL 2)
set(VERSION_SHORT ${ADS_VERSION})
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_SONAME "${ADS_VERSION}")
else()
message(FATAL_ERROR "ADS_VERSION must be in major.minor.patch format, e.g. 3.8.1. Got ${ADS_VERSION}")
endif()
Expand Down
Loading
Loading