diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 33e91370..8a55b30c 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -375,18 +375,23 @@ jobs: - name: Smoke test ( QSkinny ) on MacOS if: startsWith(matrix.config.name, 'macOS') + env: + QT_DEBUG_PLUGINS: "1" run: | echo "starting iotdashboard" - DYLD_LIBRARY_PATH=./qskinny_install/lib:./qskinny_install/plugins/skins ./qskinny_build/examples/bin/iotdashboard.app/Contents/MacOS/iotdashboard -qwindowgeometry 1024x600+75+100 --screenshot & + DYLD_LIBRARY_PATH=./qskinny_install/lib:./qskinny_install/plugins/skins ./qskinny_build/examples/bin/iotdashboard.app/Contents/MacOS/iotdashboard -qwindowgeometry 1024x600+75+100 --screenshot ${{ matrix.config.screenshot_filename }} & sleep 10 # TODO remove 'qskinny_build\skins\material3\Release' when skin install is fixed - name: Smoke Test ( QSkinny ) on Windows if: startsWith(matrix.config.name, 'Windows') + env: + QT_DEBUG_PLUGINS: "1" run: | $env:Path += ";./qskinny_install/bin;./qskinny_install/lib;./qskinny_install/plugins/skins;./qskinny_build/skins/material3/Release;./qskinny_build/skins/squiek/Release" echo "starting iotdashboard" - Start-Process qskinny_build\examples\bin\Release\iotdashboard.exe -ArgumentList "-qwindowgeometry 1024x600+0+0" --screenshot + Start-Process qskinny_build\examples\bin\Release\iotdashboard.exe -ArgumentList "-qwindowgeometry 1024x600+0+0 --screenshot ${{ matrix.config.screenshot_filename }}" + Start-Sleep -Seconds 10 - name: Smoke test ( QSkinny ) on Ubuntu if: startsWith(matrix.config.name, 'Ubuntu') @@ -398,7 +403,7 @@ jobs: Xvfb :1 & sleep 10 echo starting iotdashboard - ./qskinny_build/examples/bin/iotdashboard & + ./qskinny_build/examples/bin/iotdashboard --screenshot ${{ matrix.config.screenshot_filename }} & sleep 10 - uses: actions/upload-artifact@v3 diff --git a/.gitignore b/.gitignore index 32698b35..143647df 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ qskinny.pro.user html tags .vscode +CMakeLists.txt.user diff --git a/examples/iotdashboard/main.cpp b/examples/iotdashboard/main.cpp index 86d42373..64f0353b 100644 --- a/examples/iotdashboard/main.cpp +++ b/examples/iotdashboard/main.cpp @@ -19,6 +19,7 @@ #include #include +#include namespace { @@ -86,6 +87,19 @@ int main( int argc, char* argv[] ) MainWindow window; window.show(); + for(int i = 1; i < argc; ++i) + { + if(argv[i] == QStringLiteral("--screenshot") && i + 1 < argc) + { + QTimer::singleShot(500, &window, [&app, &window, filename = QString(argv[i + 1])](){ + auto image = window.grabWindow(); + image.save(filename); + app.exit(); + }); + break; + } + } + return app.exec(); }