From 1c6422b52477758e2ab0453c9477d7c858399431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Thu, 28 Jul 2022 15:47:52 +0200 Subject: [PATCH 1/3] Fix release workflows --- .github/workflows/Release_tag_stable.yml | 4 +- .github/workflows/Release_tag_stable.yml.bak | 222 +++++++++++++++++++ 2 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/Release_tag_stable.yml.bak diff --git a/.github/workflows/Release_tag_stable.yml b/.github/workflows/Release_tag_stable.yml index b9442b6..82bf600 100644 --- a/.github/workflows/Release_tag_stable.yml +++ b/.github/workflows/Release_tag_stable.yml @@ -63,7 +63,7 @@ jobs: PC_Application_Windows: needs: PC_Application_Ubuntu - runs-on: windows-latest + runs-on: windows-2019 steps: - uses: actions/checkout@v1 - uses: msys2/setup-msys2@v2 @@ -173,7 +173,7 @@ jobs: Embedded_Firmware: needs: PC_Application_Ubuntu - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 diff --git a/.github/workflows/Release_tag_stable.yml.bak b/.github/workflows/Release_tag_stable.yml.bak new file mode 100644 index 0000000..eb3ce50 --- /dev/null +++ b/.github/workflows/Release_tag_stable.yml.bak @@ -0,0 +1,222 @@ +name: Upload release for tag stable + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + + PC_Application_Ubuntu: + runs-on: ubuntu-18.04 + outputs: + upload_url: ${{ steps.bump_release.outputs.upload_url }} + steps: + - uses: actions/checkout@v1 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y libusb-1.0-0-dev qt5-default qt5-qmake qtbase5-dev zip + + - name: Get app version + id: id_version + run: | + cd Software/PC_Application + fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro` + fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro` + fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro` + echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch" + + - name: Build application + run: | + cd Software/PC_Application + qmake LibreVNA-GUI.pro + make -j9 + zip LibreVNA-GUI.zip LibreVNA-GUI + shell: bash + + - name: Bump release page + id: bump_release + uses: actions/create-release@v1 + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{env.LIBREVNA_VERSION}} + release_name: ${{env.LIBREVNA_VERSION}} + body: | + See [CHANGELOG](https://github.com/${{github.repository}}/blob/${{env.LIBREVNA_VERSION}}/CHANGELOG.md) for more information. + draft: false + prerelease: false + + - name: 'Upload release asset' + uses: actions/upload-release-asset@v1 + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.bump_release.outputs.upload_url }} + asset_path: ./Software/PC_Application/LibreVNA-GUI.zip + asset_name: LibreVNA-GUI-Ubuntu-${{env.LIBREVNA_VERSION}}.zip + asset_content_type: application/tar+gzip + + PC_Application_Windows: + needs: PC_Application_Ubuntu + runs-on: windows-2019 + steps: + - uses: actions/checkout@v1 + - uses: msys2/setup-msys2@v2 + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '5.15.1' + arch: 'win64_mingw81' + + - name: Download libusb + run: | + curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z + 7z x libusb.7z -r -olibusb + Xcopy /E /I /Y libusb\include ..\Qt\5.15.1\mingw81_64\include + Xcopy /E /I /Y libusb\MinGW64\static Software\PC_Application + shell: cmd + + - name: Get app version + id: id_version + shell: msys2 {0} + run: | + cd Software/PC_Application + fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro` + fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro` + fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro` + echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch" + + - name: Build application + run: | + cd Software/PC_Application + qmake LibreVNA-GUI.pro + make -j9 + shell: cmd + + - name: Deploy application + run: | + cd Software/PC_Application/release + del *.o *.cpp + windeployqt.exe . + copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libwinpthread-1.dll . + copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libgcc_s_seh-1.dll . + copy "..\..\..\..\Qt\5.15.1\mingw81_64\bin\libstdc++-6.dll" . + copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\Qt5OpenGL.dll . + shell: cmd + + - name: Zip app + shell: cmd + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + run: | + 7z a LibreVNA-GUI_Windows-${{env.LIBREVNA_VERSION}}.zip ./Software/PC_Application/release + + - name: 'Upload release asset' + uses: actions/upload-release-asset@v1 + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }} + asset_path: ./LibreVNA-GUI_Windows-${{env.LIBREVNA_VERSION}}.zip + asset_name: LibreVNA-GUI_Windows-${{env.LIBREVNA_VERSION}}.zip + asset_content_type: application/tar+gzip + + PC_Application_OSX: + needs: PC_Application_Ubuntu + runs-on: macos-10.15 + steps: + - uses: actions/checkout@v1 + + - name: Install dependencies + run: | + brew install qt@5 libusb + + - name: Set Environment + run: | + echo "/usr/local/opt/qt@5/bin" >> $GITHUB_PATH + + - name: Get app version + id: id_version + run: | + cd Software/PC_Application + fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro` + fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro` + fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro` + echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch" + + - name: Build application + run: | + cd Software/PC_Application + qmake LibreVNA-GUI.pro + make -j9 + macdeployqt LibreVNA-GUI.app + zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app + shell: bash + + - name: 'Upload release asset' + uses: actions/upload-release-asset@v1 + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }} + asset_path: ./Software/PC_Application/LibreVNA-GUI.zip + asset_name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}.zip + asset_content_type: application/tar+gzip + + Embedded_Firmware: + needs: PC_Application_Ubuntu + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + + - name: Install toolchain + run: | + sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi + + - name: Get app version + id: id_version + run: | + cd Software/VNA_embedded + fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' Makefile` + fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' Makefile` + fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' Makefile` + hw_revision=`grep "DHW_REVISION=" Makefile | sed "s/-DHW_REVISION=\"'//" | sed "sr'\" [\]rr"` + echo "::set-output name=app_version::hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch" + + - name: Build application + run: | + cd Software/VNA_embedded + make -j9 + cp build/VNA_embedded.elf ../../ + shell: bash + + - name: Combine with FPGA bitstream + run: | + python3 AssembleFirmware.py + shell: bash + + - name: Zip firmware + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + run: | + zip EmbeddedFirmware-${{env.LIBREVNA_VERSION}}.zip VNA_embedded.elf combined.vnafw + shell: bash + + - name: 'Upload release asset' + uses: actions/upload-release-asset@v1 + env: + LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }} + asset_path: ./EmbeddedFirmware-${{env.LIBREVNA_VERSION}}.zip + asset_name: EmbeddedFirmware-${{env.LIBREVNA_VERSION}}.zip + asset_content_type: application/tar+gzip From 6a27d394447adc628014d75a146fd7a844a0f34b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Thu, 28 Jul 2022 15:51:18 +0200 Subject: [PATCH 2/3] update contextmenu after editing smith chart settings --- Software/PC_Application/Traces/tracesmithchart.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Software/PC_Application/Traces/tracesmithchart.cpp b/Software/PC_Application/Traces/tracesmithchart.cpp index e690320..846e907 100644 --- a/Software/PC_Application/Traces/tracesmithchart.cpp +++ b/Software/PC_Application/Traces/tracesmithchart.cpp @@ -123,6 +123,7 @@ void TraceSmithChart::axisSetupDialog() connect(ui->buttonBox, &QDialogButtonBox::accepted, [=](){ limitToSpan = ui->displayModeFreq->currentIndex() == 1; limitToEdge = ui->displayModeImp->currentIndex() == 1; + updateContextMenu(); triggerReplot(); }); connect(ui->zoomFactor, &SIUnitEdit::valueChanged, [=](){ @@ -140,6 +141,8 @@ void TraceSmithChart::axisSetupDialog() checkIfStillSupported(t.first); } } + // depending on the preferences, the Z0 value may have been changed to match the active traces, + // overwrite again without causing an additional signal ui->impedance->setValueQuiet(Z0); }); connect(ui->lineTable, &QTableView::clicked, [=](const QModelIndex &index){ @@ -287,6 +290,7 @@ bool TraceSmithChart::configureForTrace(Trace *t) enableTrace(t.first, false); } } + updateContextMenu(); return true; } return false; From 4d818db64ccb5f0d2e3eb59a4c65c37b3abf3af1 Mon Sep 17 00:00:00 2001 From: Kiara Navarro Date: Sat, 6 Aug 2022 20:11:43 -0500 Subject: [PATCH 3/3] tile: minimize full screen if its enabled when adding new graph --- .../CustomWidgets/tilewidget.cpp | 18 ++++++++++++------ .../PC_Application/CustomWidgets/tilewidget.h | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Software/PC_Application/CustomWidgets/tilewidget.cpp b/Software/PC_Application/CustomWidgets/tilewidget.cpp index 2c8e1cb..e5e935a 100644 --- a/Software/PC_Application/CustomWidgets/tilewidget.cpp +++ b/Software/PC_Application/CustomWidgets/tilewidget.cpp @@ -130,6 +130,7 @@ void TileWidget::splitVertically(bool moveContentToSecondChild) isSplit = true; splitter = new QSplitter(Qt::Vertical); split(moveContentToSecondChild); + tryMinimize(); } void TileWidget::splitHorizontally(bool moveContentToSecondChild) @@ -140,6 +141,7 @@ void TileWidget::splitHorizontally(bool moveContentToSecondChild) isSplit = true; splitter = new QSplitter(Qt::Horizontal); split(moveContentToSecondChild); + tryMinimize(); } void TileWidget::closeTile() @@ -295,19 +297,23 @@ void TileWidget::on_bXYplot_clicked() void TileWidget::plotDeleted() { - if (isFullScreen) - { - auto rootTile = findRootTile(); - rootTile->ui->stack->setCurrentWidget(rootTile->ui->ContentPage); - } + tryMinimize(); ui->stack->setCurrentWidget(ui->TilePage); hasContent = false; content = nullptr; } +void TileWidget::tryMinimize() +{ + if (isFullScreen) + { + auto rootTile = findRootTile(); + rootTile->ui->stack->setCurrentWidget(rootTile->ui->ContentPage); + } +} + void TileWidget::on_bWaterfall_clicked() { setContent(new TraceWaterfall(model)); } - diff --git a/Software/PC_Application/CustomWidgets/tilewidget.h b/Software/PC_Application/CustomWidgets/tilewidget.h index 66e385b..07e2364 100644 --- a/Software/PC_Application/CustomWidgets/tilewidget.h +++ b/Software/PC_Application/CustomWidgets/tilewidget.h @@ -54,6 +54,7 @@ private: void setChild(); TileWidget* findRootTile(); void setFullScreen(); + void tryMinimize(); TracePlot *fullScreenPlot; Ui::TileWidget *ui; QSplitter *splitter;