diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 06f3dda2..b3d82217 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,9 @@ on: - main workflow_dispatch: +env: + APP_NAME: codepointer + jobs: build-cmake: name: Build ${{ matrix.config.name }} Qt ${{ matrix.qt_version }} @@ -76,120 +79,117 @@ jobs: platform: x64 - name: Install missing packages (linux) if: matrix.config.os == 'ubuntu-22.04' - run: sudo apt install libcups2-dev + run: sudo apt install -y libcups2-dev - name: Setup MSVC (Windows) - if: ${{ matrix.config.cxx == 'cl' }} + if: matrix.config.cxx == 'cl' uses: ilammy/msvc-dev-cmd@v1 - name: Configure - working-directory: ${{ github.workspace }} - id: runcmake - run: cmake -B "build/${{ matrix.config.build_dir }}" -G "${{ matrix.generators }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DBUILD_VERSION=OFFICIAL + run: > + cmake + -B build/${{ matrix.config.build_dir }} + -G "${{ matrix.generators }}" + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + -DCMAKE_C_COMPILER=${{ matrix.config.cc }} + -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} + -DBUILD_VERSION=OFFICIAL - name: Build - working-directory: ${{ github.workspace }} - id: runcmakebuild - run: | - cmake --build "build/${{ matrix.config.build_dir }}" --parallel --verbose + run: cmake --build build/${{ matrix.config.build_dir }} --parallel --verbose - name: Install - working-directory: ${{ github.workspace }} - id: runcmakeinstall - run: | - cmake --install "build/${{ matrix.config.build_dir }}" --prefix="dist/${{ matrix.config.build_dir }}/usr" - + run: > + cmake --install build/${{ matrix.config.build_dir }} + --prefix dist/${{ matrix.config.build_dir }}/usr - name: Set version tag or commit SHA - id: version + shell: bash run: | if [[ "${GITHUB_REF}" == refs/tags/* ]]; then echo "version=${GITHUB_REF##refs/tags/}" >> $GITHUB_ENV else echo "version=${GITHUB_SHA::7}" >> $GITHUB_ENV fi - shell: bash - name: Create TGZ archive (Linux) if: matrix.config.os == 'ubuntu-22.04' && matrix.config.cc == 'gcc' - run: | - mkdir -p dist/qtedit4/ - ln -s ../${{ matrix.config.build_dir }}/usr/ "dist/qtedit4/qtedit4-${{ matrix.config.build_dir }}-${{ env.version }}" - tar -czhf "dist/qtedit4-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz" -C "dist/qtedit4/" . shell: bash + run: | + mkdir -p dist/${{ env.APP_NAME }} + ln -s ../${{ matrix.config.build_dir }}/usr \ + dist/${{ env.APP_NAME }}/${{ env.APP_NAME }}-${{ matrix.config.build_dir }}-${{ env.version }} + tar -czhf \ + dist/${{ env.APP_NAME }}-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz \ + -C dist/${{ env.APP_NAME }} . - name: Create AppImage (Linux) if: matrix.config.os == 'ubuntu-22.04' && matrix.config.cc == 'gcc' run: | - mkdir -p "dist/${{ matrix.config.build_dir }}/usr/plugins/iconengines/" - mkdir -p "dist/${{ matrix.config.build_dir }}/usr/plugins/platforms/" - cp -arv ${QT_ROOT_DIR}/plugins/iconengines/* "dist/${{ matrix.config.build_dir }}/usr/plugins/iconengines/" - cp -arv ${QT_ROOT_DIR}/plugins/platforms/libqwayland*.so "dist/${{ matrix.config.build_dir }}/usr/plugins/platforms/" - + sudo apt install -y fuse libxkbcommon-x11-0 libxcb-cursor-dev libxkbcommon-dev + mkdir -p dist/${{ matrix.config.build_dir }}/usr/plugins/{iconengines,platforms} + cp -av ${QT_ROOT_DIR}/plugins/iconengines/* dist/${{ matrix.config.build_dir }}/usr/plugins/iconengines/ + cp -av ${QT_ROOT_DIR}/plugins/platforms/libqwayland*.so dist/${{ matrix.config.build_dir }}/usr/plugins/platforms/ export LD_LIBRARY_PATH=dist/${{ matrix.config.build_dir }}/usr/lib:$LD_LIBRARY_PATH - export OUTPUT=build/qtedit4-${{ env.version }}-x86_64.AppImage - - sudo apt install fuse libxkbcommon-x11-0 libxcb-cursor-dev libxkbcommon-dev - - wget --no-verbose "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" - wget --no-verbose "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" - + export OUTPUT=build/${{ env.APP_NAME }}-${{ env.version }}-x86_64.AppImage + wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage chmod +x linuxdeploy*.AppImage - - ./linuxdeploy-x86_64.AppImage --appdir "dist/${{ matrix.config.build_dir }}" --plugin qt --output appimage + ./linuxdeploy-x86_64.AppImage \ + --appdir dist/${{ matrix.config.build_dir }} \ + --plugin qt \ + --output appimage - name: Upload AppImage (Linux) if: matrix.config.os == 'ubuntu-22.04' && matrix.config.cc == 'gcc' uses: actions/upload-artifact@v4 with: - name: qtedit4-${{ env.version }}-x86_64.AppImage - path: build/qtedit4-${{ env.version }}-x86_64.AppImage + name: ${{ env.APP_NAME }}-${{ env.version }}-x86_64.AppImage + path: build/${{ env.APP_NAME }}-${{ env.version }}-x86_64.AppImage - name: Upload TGZ archive (Linux) if: matrix.config.os == 'ubuntu-22.04' && matrix.config.cc == 'gcc' uses: actions/upload-artifact@v4 with: - name: qtedit4-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz - path: "dist/qtedit4-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz" + name: ${{ env.APP_NAME }}-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz + path: dist/${{ env.APP_NAME }}-${{ matrix.config.build_dir }}-qt${{ matrix.qt_version }}-${{ env.version }}.tar.gz - name: windeployqt (Windows) - working-directory: ${{ github.workspace }} if: matrix.config.os == 'windows-2022' && matrix.config.cc == 'cl' + shell: cmd run: | - windeployqt --release --no-translations --no-system-d3d-compiler --no-compiler-runtime --no-opengl-sw dist/${{ matrix.config.build_dir }}/usr/bin/qtedit4.exe + windeployqt --release --no-translations --no-system-d3d-compiler --no-compiler-runtime --no-opengl-sw dist/${{ matrix.config.build_dir }}/usr/bin/${{ env.APP_NAME }}.exe - name: Create setup (Windows) if: matrix.config.os == 'windows-2022' && matrix.config.cc == 'cl' uses: Minionguyjpro/Inno-Setup-Action@v1.2.7 with: - path: "setup_script.iss" + path: setup_script.iss options: /O+ - name: Rename and upload setup (Windows) if: matrix.config.os == 'windows-2022' && matrix.config.cc == 'cl' - run: | - copy dist\qtedit4-win64.exe dist\qtedit4-${{ env.version }}-x86_64.exe shell: cmd + run: | + copy dist\${{ env.APP_NAME }}-win64.exe dist\${{ env.APP_NAME }}-${{ env.version }}-x86_64.exe - name: Upload renamed setup (Windows) if: matrix.config.os == 'windows-2022' && matrix.config.cc == 'cl' uses: actions/upload-artifact@v4 with: - name: qtedit4-${{ env.version }}-x86_64.exe - path: dist/qtedit4-${{ env.version }}-x86_64.exe + name: ${{ env.APP_NAME }}-${{ env.version }}-x86_64.exe + path: dist/${{ env.APP_NAME }}-${{ env.version }}-x86_64.exe create-release: - name : Draft GitHub Release - needs : build-cmake - runs-on : ubuntu-latest - env : - GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} - if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - steps : - - uses : actions/checkout@v4 - - name : Download all artifacts - uses : actions/download-artifact@v4 - with : - merge-multiple : true - path : ./artifacts - - name : Create Draft Release - run : | - gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --generate-notes --draft - - name : Upload assets to release - run : | - gh release upload ${{ github.ref_name }} ./artifacts/* + name: Draft GitHub Release + needs: build-cmake + runs-on: ubuntu-latest + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + merge-multiple: true + path: ./artifacts + - name: Create Draft Release + run: gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --generate-notes --draft + - name: Upload assets to release + run: gh release upload ${{ github.ref_name }} ./artifacts/* diff --git a/CMakeLists.txt b/CMakeLists.txt index fb7112a8..2213485b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,27 +1,27 @@ cmake_minimum_required(VERSION 3.20) -project (qtedit4) +project (codepointer) set(BUILD_VERSION "DEV" CACHE STRING "Build version (DEV, CE, OFFICIAL)") set_property(CACHE BUILD_VERSION PROPERTY STRINGS DEV CE OFFICIAL) if(BUILD_VERSION STREQUAL "DEV") set(APP_SUFFIX "-dev") - set(ICON_NAME "qtedit4-dev") - set(BUILD_APP_NAME "qtedit4-dev") + set(ICON_NAME "codepointer-dev") + set(BUILD_APP_NAME "codepointer-dev") elseif(BUILD_VERSION STREQUAL "CE") set(APP_SUFFIX "-ce") - set(ICON_NAME "qtedit4-ce") - set(BUILD_APP_NAME "qtedit4-ce") + set(ICON_NAME "codepointer-ce") + set(BUILD_APP_NAME "codepointer-ce") else() set(APP_SUFFIX "") - set(ICON_NAME "qtedit4") - set(BUILD_APP_NAME "qtedit4") + set(ICON_NAME "codepointer") + set(BUILD_APP_NAME "codepointer") endif() -set(QTEDIT4_APP_NAME "${BUILD_APP_NAME}") -set(QTEDIT4_BINARY "qtedit4${APP_SUFFIX}") -set(QTEDIT4_ICON "${ICON_NAME}") -set(QTEDIT4_MACHINE_NAME "${MACHINE_IDENTIFIER}") +set(CODEPOINTER_APP_NAME "${BUILD_APP_NAME}") +set(CODEPOINTER_BINARY "codepointer${APP_SUFFIX}") +set(CODEPOINTER_ICON "${ICON_NAME}") +set(CODEPOINTER_MACHINE_NAME "${MACHINE_IDENTIFIER}") set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -39,9 +39,9 @@ set(QUTEPART_USE_CMAKEFORMAT OFF) set(QHEXVIEW_ENABLE_DIALOGS ON) set(COMMAND_PALLETE_ENABLE_TESTS OFF) -option(QTEDIT4_WORK_OFFLINE OFF) +option(CODEPOINTER_WORK_OFFLINE OFF) -if (QTEDIT4_WORK_OFFLINE) +if (CODEPOINTER_WORK_OFFLINE) # For this to work, you need to make these libraries available yourself. # On Linux/macOS, you can run the script `get-code.sh`. This might work on Windows using # git-bash, but is untested. @@ -72,7 +72,7 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -set(qtedit4_sources +set(codepointer_sources ${qmdilib_SOURCE_DIR}/demos/common/common.qrc ${qmdilib_SOURCE_DIR}/demos/plugin-demo/iplugin.cpp ${qmdilib_SOURCE_DIR}/demos/plugin-demo/pluginmodel.cpp @@ -155,44 +155,44 @@ set(qtedit4_sources src/AnsiToHTML.cpp src/AnsiToHTML.hpp src/main.cpp - ${CMAKE_BINARY_DIR}/qtedit4.qrc + ${CMAKE_BINARY_DIR}/codepointer.qrc ) file(COPY "${CMAKE_SOURCE_DIR}/${ICON_NAME}.svg" DESTINATION "${CMAKE_BINARY_DIR}") file(COPY "${CMAKE_SOURCE_DIR}/${ICON_NAME}.ico" DESTINATION "${CMAKE_BINARY_DIR}") -configure_file(qtedit4.qrc.in ${CMAKE_BINARY_DIR}/qtedit4.qrc) -configure_file(qtedit4.desktop.in ${CMAKE_BINARY_DIR}/${QTEDIT4_APP_NAME}.desktop) +configure_file(codepointer.qrc.in ${CMAKE_BINARY_DIR}/codepointer.qrc) +configure_file(codepointer.desktop.in ${CMAKE_BINARY_DIR}/${CODEPOINTER_APP_NAME}.desktop) if (WIN32) - add_executable(qtedit4 WIN32 ${qtedit4_sources} qtedit4.rc) + add_executable(codepointer WIN32 ${codepointer_sources} codepointer.rc) else() - add_executable(qtedit4 ${qtedit4_sources}) + add_executable(codepointer ${codepointer_sources}) endif() if (!MINGW) - set_property(TARGET qtedit4PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + set_property(TARGET codepointerPROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -target_compile_definitions(qtedit4 PRIVATE -DQTEDIT4_APP_NAME="${QTEDIT4_APP_NAME}") -target_compile_definitions(qtedit4 PRIVATE -DQTEDIT4_ICON=":${QTEDIT4_ICON}.ico") -target_compile_definitions(qtedit4 PRIVATE -DQTEDIT4_SVG_ICON=":${QTEDIT4_ICON}.svg") -target_compile_definitions(qtedit4 PRIVATE -DQTEDIT4_MACHINE_NAME="${QTEDIT4_MACHINE_NAME}") +target_compile_definitions(codepointer PRIVATE -DCODEPOINTER_APP_NAME="${CODEPOINTER_APP_NAME}") +target_compile_definitions(codepointer PRIVATE -DCODEPOINTER_ICON=":${CODEPOINTER_ICON}.ico") +target_compile_definitions(codepointer PRIVATE -DCODEPOINTER_SVG_ICON=":${CODEPOINTER_ICON}.svg") +target_compile_definitions(codepointer PRIVATE -DCODEPOINTER_MACHINE_NAME="${CODEPOINTER_MACHINE_NAME}") if(BUILD_VERSION STREQUAL "DEV") - target_compile_definitions(qtedit4 PRIVATE -DBUILD_DEV) + target_compile_definitions(codepointer PRIVATE -DBUILD_DEV) elseif(BUILD_VERSION STREQUAL "CE") - target_compile_definitions(qtedit4 PRIVATE -DBUILD_CE) + target_compile_definitions(codepointer PRIVATE -DBUILD_CE) else() - target_compile_definitions(qtedit4 PRIVATE -DBUILD_OFFICIAL) + target_compile_definitions(codepointer PRIVATE -DBUILD_OFFICIAL) endif() -target_include_directories(qtedit4 PUBLIC +target_include_directories(codepointer PUBLIC ${qmdilib_SOURCE_DIR}/demos/plugin-demo ${qutepart_SOURCE_DIR}/include src ) -target_link_libraries(qtedit4 PUBLIC Qt6::Core Qt6::Widgets Qt6::Concurrent Qt6::Network Qt6::Svg Qt6::Xml +target_link_libraries(codepointer PUBLIC Qt6::Core Qt6::Widgets Qt6::Concurrent Qt6::Network Qt6::Svg Qt6::Xml qmdilib qutepart CommandPaletteWidget @@ -201,21 +201,21 @@ target_link_libraries(qtedit4 PUBLIC Qt6::Core Qt6::Widgets Qt6::Concurrent Qt6: QSimpleUpdater QJsonModelStatic ) -set_target_properties(qtedit4 PROPERTIES OUTPUT_NAME ${QTEDIT4_BINARY}) +set_target_properties(codepointer PROPERTIES OUTPUT_NAME ${CODEPOINTER_BINARY}) if(MSVC) # if we don't do this - file will be under Debug/Relase subdir - set_target_properties(qtedit4 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}$<0:>) - target_compile_options(qtedit4 PRIVATE /W4) + set_target_properties(codepointer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}$<0:>) + target_compile_options(codepointer PRIVATE /W4) else() - set_target_properties(qtedit4 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - target_compile_options(qtedit4 PRIVATE -Wall -Wextra -Wpedantic) + set_target_properties(codepointer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + target_compile_options(codepointer PRIVATE -Wall -Wextra -Wpedantic) endif() -install(TARGETS qtedit4 +install(TARGETS codepointer RUNTIME DESTINATION bin) -if (NOT QTEDIT4_WORK_OFFLINE) +if (NOT CODEPOINTER_WORK_OFFLINE) install(DIRECTORY ${CMAKE_BINARY_DIR}/share/ DESTINATION share/ DIRECTORY_PERMISSIONS @@ -225,21 +225,20 @@ if (NOT QTEDIT4_WORK_OFFLINE) endif() if (WIN32) - install(FILES ${CMAKE_SOURCE_DIR}/${QTEDIT4_ICON}.svg + install(FILES ${CMAKE_SOURCE_DIR}/${CODEPOINTER_ICON}.svg DESTINATION /) - install(FILES ${CMAKE_SOURCE_DIR}/${QTEDIT4_ICON}.ico + install(FILES ${CMAKE_SOURCE_DIR}/${CODEPOINTER_ICON}.ico DESTINATION /) else() - install(FILES ${CMAKE_SOURCE_DIR}/${QTEDIT4_ICON}.svg + install(FILES ${CMAKE_SOURCE_DIR}/${CODEPOINTER_ICON}.svg DESTINATION share/icons/hicolor/scalable/apps) - install(FILES ${CMAKE_BINARY_DIR}/${QTEDIT4_APP_NAME}.desktop + install(FILES ${CMAKE_BINARY_DIR}/${CODEPOINTER_APP_NAME}.desktop DESTINATION share/applications - RENAME org.diegoiast.${QTEDIT4_APP_NAME}.desktop) + RENAME org.codepointerapp.${CODEPOINTER_APP_NAME}.desktop) - install(FILES ${CMAKE_SOURCE_DIR}/${QTEDIT4_ICON}.svg + install(FILES ${CMAKE_SOURCE_DIR}/${CODEPOINTER_ICON}.svg DESTINATION share/icons/hicolor/scalable/apps - RENAME org.diegoiast.${QTEDIT4_APP_NAME}.svg) - install(FILES org.diegoiast.qtedit4.appdata.xml + RENAME org.codepointerapp.${CODEPOINTER_APP_NAME}.svg) + install(FILES org.codepointerapp.codepointer.appdata.xml DESTINATION share/metainfo) - endif() diff --git a/README.md b/README.md index 46dacf15..6ec339ad 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,21 @@ -# qtedit4 - an IDE for Rust, Go, C++ and more +# CodePointer - an IDE for Rust, Go, C++ and more -![qtedit4](qtedit4.png) +![CodePointer](codepointer.png) -![Build Status](https://github.com/diegoiast/qtedit4/actions/workflows/build.yml/badge.svg) -![Clang Format](https://github.com/diegoiast/qtedit4/actions/workflows/clang-format.yml/badge.svg) -![Code spell](https://github.com/diegoiast/qtedit4/actions/workflows/codespell.yml/badge.svg) -![Activity](https://img.shields.io/github/commit-activity/m/diegoiast/qtedit4) -![Open Issues](https://img.shields.io/github/issues-raw/diegoiast/qtedit4) +![Build Status](https://github.com/diegoiast/CodePointer/actions/workflows/build.yml/badge.svg) +![Clang Format](https://github.com/diegoiast/CodePointer/actions/workflows/clang-format.yml/badge.svg) +![Code spell](https://github.com/diegoiast/CodePointer/actions/workflows/codespell.yml/badge.svg) +![Activity](https://img.shields.io/github/commit-activity/m/diegoiast/CodePointer) +![Open Issues](https://img.shields.io/github/issues-raw/diegoiast/CodePointer) - -qtedit4 is an IDE for Rust, Go, C++ Python and more. Its focus is local development, +CodePointer is an IDE for Rust, Go, C++ Python and more. Its focus is local development, not web development. Its currently on early development. There are releases for Windows (exe installer) and Linux (AppImage). -[![Download latest stable version](https://img.shields.io/github/v/release/diegoiast/qtedit4)](https://github.com/diegoiast/qtedit4/releases/latest) -[![Download testing version](https://img.shields.io/github/v/release/diegoiast/qtedit4?include_prereleases)](https://github.com/diegoiast/qtedit4/releases) -![GitHub All Releases](https://img.shields.io/github/downloads/diegoiast/qtedit4/total) +[![Download latest stable version](https://img.shields.io/github/v/release/diegoiast/CodePointer)](https://github.com/diegoiast/CodePointer/releases/latest) +[![Download testing version](https://img.shields.io/github/v/release/diegoiast/CodePointer?include_prereleases)](https://github.com/diegoiast/CodePointer/releases) +![GitHub All Releases](https://img.shields.io/github/downloads/diegoiast/CodePointer/total) Want to contribue? Look at [hack.md](hack.md) for guideance (TLDR: clone this repo, and `cmake -S build -B build; cmake --build build`, you will need a C++ compiler @@ -41,35 +29,16 @@ Kanban is avialble at https://github.com/users/diegoiast/projects/2 Feel free to open new issues, and work on whatever makes you happy. ## Status - * Basic editor working. Supports only UTF8. (need other? [request for it](https://github.com/diegoiast/qtedit4/issues) + * Basic editor working. Supports only UTF8. (need other? [request for it](https://github.com/codepointerapp/codepointer/issues) * Can load/build projects: CMake, Meson, Go, Cargo * Preview for XML, JSON, SVG (!), Markdown * Binary/HEX editor * Simple image viewer * Auto update with stable and testing channels - * Command pallete (contorl+P - open files, control+shift+P commands) + * Command pallete (`contorl+P` - open files, `control+shift+P` commands) * Auto save (modified files are restored on next app start) Want to see it in action? Live coding videos here: https://www.youtube.com/playlist?list=PLQeAIMKe60pMtZp3KZTmYoYXySy6UlvD3 ## License Code is GPLv2 or higher. Read each file's as some files have a less-restrictive license. - -## History - -The code was (once) hosted under [GoogleCode svn](https://code.google.com/archive/p/qtedit4/). Since, -Google [killed this project](https://killedbygoogle.com/) the code has been migrated to git, and is -hosted in github. Each of the sub tools got its own git repo, (which was not trivial! but doable, -using `svndumpfilter` if you ask). Now, sub tools are loaded using CPM, -as child CMake projects. - -Why `qtedit4`? When Qt3 was a thing QtDesginer had the ability to edit text, and was looking -like the idea was to make it a VisualBasic kind of IDE. Back then, the designer -had an internal text editor, I think the idea was to make QtCreator more like -VisualBasic. That was abandoned. - -When Qt4 was released, my original code broke and I needed a soft reboot. I -started a new project, called qtedit4. - -This means that some of the code originated in Qt3, and got migrated to Qt6 over the last -(too much) years. diff --git a/build-appimage.sh b/build-appimage.sh index eb9074a4..78bf5c3f 100755 --- a/build-appimage.sh +++ b/build-appimage.sh @@ -11,7 +11,7 @@ if [ "$1" = "--ce" ]; then NAME_SUFFIX="-ce" fi -APP_NAME="qtedit4" +APP_NAME="codepointer" APP_VERSION="0.0.16" QT_VERSION="6.10.1" diff --git a/qtedit4-ce.ico b/codepointer-ce.ico similarity index 100% rename from qtedit4-ce.ico rename to codepointer-ce.ico diff --git a/qtedit4-ce.svg b/codepointer-ce.svg similarity index 100% rename from qtedit4-ce.svg rename to codepointer-ce.svg diff --git a/qtedit4-dev.ico b/codepointer-dev.ico similarity index 100% rename from qtedit4-dev.ico rename to codepointer-dev.ico diff --git a/qtedit4-dev.svg b/codepointer-dev.svg similarity index 100% rename from qtedit4-dev.svg rename to codepointer-dev.svg diff --git a/qtedit4.desktop.in b/codepointer.desktop.in similarity index 63% rename from qtedit4.desktop.in rename to codepointer.desktop.in index 0c7e13a4..427f1e5a 100644 --- a/qtedit4.desktop.in +++ b/codepointer.desktop.in @@ -1,9 +1,9 @@ [Desktop Entry] -Exec=@QTEDIT4_BINARY@ %f +Exec=@CODEPOINTER_BINARY@ %f Comment=Text editor Type=Application -Icon=@QTEDIT4_ICON@ -Name=@QTEDIT4_APP_NAME@ +Icon=@CODEPOINTER_ICON@ +Name=@CODEPOINTER_APP_NAME@ StartupNotify=true Terminal=false Categories=Qt;TextEditor;Utility; diff --git a/qtedit4.ico b/codepointer.ico similarity index 100% rename from qtedit4.ico rename to codepointer.ico diff --git a/qtedit4.png b/codepointer.png similarity index 100% rename from qtedit4.png rename to codepointer.png diff --git a/codepointer.qrc.in b/codepointer.qrc.in new file mode 100644 index 00000000..88493207 --- /dev/null +++ b/codepointer.qrc.in @@ -0,0 +1,7 @@ + + + @CODEPOINTER_ICON@.svg + @CODEPOINTER_ICON@.ico + + + diff --git a/codepointer.rc b/codepointer.rc new file mode 100644 index 00000000..ec519490 --- /dev/null +++ b/codepointer.rc @@ -0,0 +1,3 @@ +#include + +IDI_ICON1 ICON "codepointer.ico" diff --git a/qtedit4.svg b/codepointer.svg similarity index 100% rename from qtedit4.svg rename to codepointer.svg diff --git a/org.diegoiast.qtedit4.appdata.xml b/org.codepointerapp.codepointer.appdata.xml similarity index 63% rename from org.diegoiast.qtedit4.appdata.xml rename to org.codepointerapp.codepointer.appdata.xml index 601e5bb1..087110c5 100644 --- a/org.diegoiast.qtedit4.appdata.xml +++ b/org.codepointerapp.codepointer.appdata.xml @@ -1,8 +1,8 @@ - org.diegoiast.qtedit4 + org.codepointerapp.codepointer - qtedit4 + codepointer IDE for Rust, Go, C++ and more @@ -14,13 +14,13 @@ CC0-1.0 GPL-2.0-or-later - qtedit4 Developers - - qtedit4 Developers + CodePointer Developers + + CodePointer Developers - https://github.com/diegoiast/qtedit4 - https://github.com/diegoiast/qtedit4/issues + https://github.com/codepointerapp/codepointer + https://github.com/codepointerapp/codepointer/issues Development @@ -33,7 +33,7 @@ - org.diegoiast.qtedit4.desktop + org.codepointerapp.codepointer.desktop diff --git a/org.diegoiast.qtedit4.yml b/org.codepointerapp.codepointer.yml similarity index 100% rename from org.diegoiast.qtedit4.yml rename to org.codepointerapp.codepointer.yml diff --git a/qtedit4.qrc.in b/qtedit4.qrc.in deleted file mode 100644 index a06a5c69..00000000 --- a/qtedit4.qrc.in +++ /dev/null @@ -1,7 +0,0 @@ - - - @QTEDIT4_ICON@.svg - @QTEDIT4_ICON@.ico - - - diff --git a/qtedit4.rc b/qtedit4.rc deleted file mode 100644 index 39abe1ea..00000000 --- a/qtedit4.rc +++ /dev/null @@ -1,3 +0,0 @@ -#include - -IDI_ICON1 ICON "qtedit4.ico" diff --git a/setup_script.iss b/setup_script.iss index e78b742b..06c76d8e 100644 --- a/setup_script.iss +++ b/setup_script.iss @@ -1,9 +1,7 @@ #define VersionString "0.0.16" #define AppId "1f7e9ebf-ed92-4d88-8eac-89e3fe53282c" #define VC_Redist_URL "https://aka.ms/vs/17/release/vc_redist.x64.exe" -#define AppName "qtedit4" -;OutputBaseFilename=qtedit4-qt6.8.1-v{#VersionString}-x86_64 -;OutputBaseFilename=qtedit4-win64 +#define AppName "codepointer" [Setup] AppName={#AppName} diff --git a/src/main.cpp b/src/main.cpp index be4ffcfb..31173d39 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ /** * \file main.cpp - * \brief Entry point of application - qtedit4 + * \brief Entry point of application - CodePointer * \author Diego Iastrubni diegoiast@gmail.com */ @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) { Q_INIT_RESOURCE(qutepart_theme_data); QApplication app(argc, argv); - QCoreApplication::setApplicationName(QTEDIT4_APP_NAME); + QCoreApplication::setApplicationName(CODEPOINTER_APP_NAME); QCoreApplication::setApplicationVersion("0.0.16"); #if defined(WIN32) @@ -93,8 +93,8 @@ int main(int argc, char *argv[]) { PluginManager pluginManager; auto filePath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); - auto iniFilePath = filePath + QString("/%1.ini").arg(QTEDIT4_APP_NAME); - auto windowIcon = QIcon(QTEDIT4_ICON); + auto iniFilePath = filePath + QString("/%1.ini").arg(CODEPOINTER_APP_NAME); + auto windowIcon = QIcon(CODEPOINTER_ICON); auto textEditorPlugin = new TextEditorPlugin; auto split = new SplitTabsPlugin(textEditorPlugin); diff --git a/src/plugins/ProjectManager/ProjectManagerPlg.cpp b/src/plugins/ProjectManager/ProjectManagerPlg.cpp index 00d34188..e5a10773 100644 --- a/src/plugins/ProjectManager/ProjectManagerPlg.cpp +++ b/src/plugins/ProjectManager/ProjectManagerPlg.cpp @@ -603,7 +603,7 @@ void ProjectManagerPlugin::on_client_merged(qmdiHost *host) { connect(gui->editBuildConfig, &QAbstractButton::clicked, this, [this]() { auto buildConfig = this->getCurrentConfig(); if (buildConfig->fileName.isEmpty()) { - auto path = buildConfig->sourceDir + "/" + "qtedit4.json"; + auto path = buildConfig->sourceDir + "/" + "codepointer.json"; buildConfig->saveToFile(path); configWatcher.addPath(buildConfig->fileName); } @@ -1055,6 +1055,11 @@ void ProjectManagerPlugin::runCommand(const QString &workingDirectory, const QSt } void ProjectManagerPlugin::do_runExecutable(const ExecutableInfo *info) { + if (!info) { + qDebug() << "ProjectManagerPlugin::do_runExecutable() - info is null"; + return; + } + auto project = getCurrentConfig(); auto executablePath = QDir::toNativeSeparators(findExecForPlatform(info->executables)); auto workingDirectory = info->runDirectory.isEmpty() ? project->buildDir : info->runDirectory; @@ -1280,7 +1285,7 @@ auto ProjectManagerPlugin::processBuildOutput(const QString &line) -> void { auto cursor = this->outputPanel->commandOuput->textCursor(); auto lineNumber = cursor.blockNumber(); - // see https://github.com/diegoiast/qtedit4/issues/88 + // see https://github.com/codepointerapp/codepointer/issues/88 // Ninja likes printing "\r" to clear line. Lets not deal with that auto fixedAnsi = line; #if 1 diff --git a/src/plugins/ProjectManager/kitdetector.cpp b/src/plugins/ProjectManager/kitdetector.cpp index 2ce0d820..26a859e5 100644 --- a/src/plugins/ProjectManager/kitdetector.cpp +++ b/src/plugins/ProjectManager/kitdetector.cpp @@ -41,7 +41,7 @@ constexpr auto ENV_SEPARATOR = ';'; constexpr auto SCRIPT_EXTENSION_UNIX = ".sh"; constexpr auto SCRIPT_HEADER_UNIX = R"(#! /bin/sh -# This is a kit definition for qtedit4. All your tasks +# This is a kit definition for CodePointer. All your tasks # will run through this file. # available environment variables: @@ -51,9 +51,9 @@ constexpr auto SCRIPT_HEADER_UNIX = R"(#! /bin/sh # the task's definition in the JSON file # ${task} - the actual code to be run -# The following meta variables are for qtedit4. Note the prefix: +# The following meta variables are for CodePointer. Note the prefix: # @@ name = @@NAME@@ -# @@ author = auto generated - by qtedit4 +# @@ author = auto generated - by CodePointer # from this point on - echo is on. Every command will be displayed # in the build output. @@ -73,7 +73,7 @@ eval "${task}" constexpr auto SCRIPT_EXTENSION_WIN32 = ".bat"; constexpr auto SCRIPT_HEADER_WIN32 = R"(@echo off -rem This is a kit definition for qtedit4. All your tasks +rem This is a kit definition for CodePointer. All your tasks rem will run through this file. rem available environment variables: @@ -85,7 +85,7 @@ rem %task% - the actual code to be run rem The following meta variables are for qtedit4. Note the prefix: rem @@ name = @@NAME@@ -rem @@ author = auto generated - by qtedit4 +rem @@ author = auto generated - by CodePointer rem from this point on - echo is on. Every command will be displayed rem in the build output. diff --git a/src/plugins/help/help_plg.cpp b/src/plugins/help/help_plg.cpp index 71f0e736..dd2b1731 100644 --- a/src/plugins/help/help_plg.cpp +++ b/src/plugins/help/help_plg.cpp @@ -175,7 +175,7 @@ auto static refreshSystemMenus() -> void { } auto updatesUrl = - "https://raw.githubusercontent.com/diegoiast/qtedit4/refs/heads/main/updates.json"; + "https://raw.githubusercontent.com/codepointerapp/codepointer/refs/heads/main/updates.json"; HelpPlugin::HelpPlugin() { name = tr("Help system browser"); @@ -235,15 +235,16 @@ void HelpPlugin::on_client_merged(qmdiHost *host) { connect(actionAbout, &QAction::triggered, this, &HelpPlugin::actionAbout_triggered); auto actionVisitHomePage = new QAction(tr("Visit homepage"), this); - connect(actionVisitHomePage, &QAction::triggered, this, - []() { QDesktopServices::openUrl(QUrl("https://github.com/diegoiast/qtedit4/")); }); + connect(actionVisitHomePage, &QAction::triggered, this, []() { + QDesktopServices::openUrl(QUrl("https://github.com/codepointerapp/codepointer/")); + }); auto actionAboutQt = new QAction(tr("About Qt"), this); connect(actionAboutQt, &QAction::triggered, this, []() { QApplication::aboutQt(); }); if (canInstallDesktopFile()) { auto installDesktopFile = new QAction(tr("Install desktop file"), this); connect(installDesktopFile, &QAction::triggered, this, [this]() { - auto svgResourcePath = QTEDIT4_SVG_ICON; + auto svgResourcePath = CODEPOINTER_SVG_ICON; auto exe = getExecutablePath(); auto svgFile = QFile(QString::fromStdString(svgResourcePath)); if (!svgFile.open(QIODevice::ReadOnly)) { @@ -252,7 +253,6 @@ void HelpPlugin::on_client_merged(qmdiHost *host) { } auto svgContent = svgFile.readAll().toStdString(); svgFile.close(); - auto desktopFile = createDesktopMenuItem( QApplication::applicationName().toStdString(), QApplication::applicationVersion().toStdString(), exe, svgContent); @@ -485,8 +485,8 @@ void HelpPlugin::actionAbout_triggered() { auto contentWidget = new QWidget; auto contentLayout = new QVBoxLayout(contentWidget); - auto textLabel = - new QLabel(aboutText.arg(appName).arg(version).arg("https://github.com/diegoiast/qtedit4")); + auto textLabel = new QLabel( + aboutText.arg(appName).arg(version).arg("https://github.com/codepointerapp/codepointer")); textLabel->setWordWrap(true); textLabel->setOpenExternalLinks(true); textLabel->setTextFormat(Qt::RichText);