Compare commits

...

7 commits

Author SHA1 Message Date
pajlada
0296b9b673
Merge branch 'master' into dependabot/github_actions/jurplel/install-qt-action-4.1.1 2024-11-17 12:39:32 +01:00
pajlada
9e73ba2919
dev: Default building with Qt6 on all platforms (#5716) 2024-11-17 12:39:22 +01:00
dependabot[bot]
d04f607ebf
chore(deps): bump jurplel/install-qt-action from 4.0.0 to 4.1.1
Bumps [jurplel/install-qt-action](https://github.com/jurplel/install-qt-action) from 4.0.0 to 4.1.1.
- [Release notes](https://github.com/jurplel/install-qt-action/releases)
- [Commits](https://github.com/jurplel/install-qt-action/compare/v4.0.0...v4.1.1)

---
updated-dependencies:
- dependency-name: jurplel/install-qt-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-17 10:58:58 +00:00
pajlada
50b51b2351
fix: codecov v5 (#5715) 2024-11-17 10:57:54 +00:00
dependabot[bot]
6b5cc5f8d9
chore(deps): bump codecov/codecov-action from 4.6.0 to 5.0.0 (#5713)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.6.0 to 5.0.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.6.0...v5.0.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-17 11:18:05 +01:00
nerix
eeb797c03f
chore: keep GDI fontengine on Windows for now (#5710) 2024-11-12 22:20:40 +00:00
Ilya Zlobintsev
63f363e5a9
Deduplicate emotes by name in smart tab emote completion strategy (#5705) 2024-11-12 14:41:12 +00:00
22 changed files with 35 additions and 34 deletions

View file

@ -29,7 +29,6 @@ cmake \
-DCMAKE_EXPORT_COMPILE_COMMANDS=On \
-DCHATTERINO_PLUGINS="$C2_PLUGINS" \
-DCMAKE_PREFIX_PATH="$Qt6_DIR/lib/cmake" \
-DBUILD_WITH_QT6="$C2_BUILD_WITH_QT6" \
-DCHATTERINO_STATIC_QT_BUILD=On \
-DCMAKE_CXX_FLAGS="-fno-sized-deallocation" \
.

View file

@ -19,7 +19,6 @@ cmake -S. -Bbuild-clang-tidy \
-DCMAKE_EXPORT_COMPILE_COMMANDS=On \
-DCHATTERINO_LTO=Off \
-DCHATTERINO_PLUGINS=On \
-DBUILD_WITH_QT6=On \
-DBUILD_TESTS=On \
-DBUILD_BENCHMARKS=On

View file

@ -20,7 +20,6 @@ task:
-DUSE_SYSTEM_QTKEYCHAIN="ON" \
-DCMAKE_BUILD_TYPE="release" \
-DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
-DBUILD_WITH_QT6="ON" \
..
cat compile_commands.json
make -j $(getconf _NPROCESSORS_ONLN)

View file

@ -3,7 +3,6 @@ ARG UBUNTU_VERSION=22.04
FROM ubuntu:$UBUNTU_VERSION
ARG QT_VERSION=6.2.4
ARG BUILD_WITH_QT6=ON
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
@ -48,7 +47,6 @@ RUN mkdir /src/build
# cmake
RUN cd /src/build && \
CXXFLAGS=-fno-sized-deallocation cmake \
-DBUILD_WITH_QT6=$BUILD_WITH_QT6 \
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
-DCMAKE_PREFIX_PATH=/opt/qt/$QT_VERSION/gcc_64/lib/cmake \
-DBUILD_WITH_QTKEYCHAIN=OFF \

View file

@ -62,7 +62,6 @@ jobs:
C2_ENABLE_LTO: ${{ matrix.force-lto }}
C2_PLUGINS: ${{ matrix.plugins }}
C2_ENABLE_CRASHPAD: ${{ matrix.skip-crashpad == false }}
C2_BUILD_WITH_QT6: ${{ startsWith(matrix.qt-version, '6.') }}
steps:
- uses: actions/checkout@v4
@ -87,7 +86,6 @@ jobs:
-DCHATTERINO_LTO="$C2_ENABLE_LTO" \
-DCHATTERINO_PLUGINS="$C2_PLUGINS" \
-DCMAKE_PREFIX_PATH="$Qt6_DIR/lib/cmake" \
-DBUILD_WITH_QT6="$C2_BUILD_WITH_QT6" \
-DCHATTERINO_STATIC_QT_BUILD=On \
..
make -j"$(nproc)"
@ -163,7 +161,7 @@ jobs:
- name: Install Qt5
if: startsWith(matrix.qt-version, '5.')
uses: jurplel/install-qt-action@v4.0.0
uses: jurplel/install-qt-action@v4.1.1
with:
cache: true
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2
@ -171,7 +169,7 @@ jobs:
- name: Install Qt6
if: startsWith(matrix.qt-version, '6.')
uses: jurplel/install-qt-action@v4.0.0
uses: jurplel/install-qt-action@v4.1.1
with:
cache: true
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2

View file

@ -30,7 +30,7 @@ jobs:
- name: Install Qt6
if: startsWith(matrix.qt-version, '6.')
uses: jurplel/install-qt-action@v4.0.0
uses: jurplel/install-qt-action@v4.1.1
with:
cache: true
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2

View file

@ -48,7 +48,7 @@ jobs:
fetch-depth: 0 # allows for tags access
- name: Install Qt
uses: jurplel/install-qt-action@v4.0.0
uses: jurplel/install-qt-action@v4.1.1
with:
cache: true
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2

View file

@ -58,7 +58,7 @@ jobs:
fetch-depth: 0 # allows for tags access
- name: Install Qt
uses: jurplel/install-qt-action@v4.0.0
uses: jurplel/install-qt-action@v4.1.1
with:
cache: true
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2

View file

@ -33,7 +33,6 @@ jobs:
fail-fast: false
env:
C2_PLUGINS: ${{ matrix.plugins }}
C2_BUILD_WITH_QT6: ${{ startsWith(matrix.qt-version, '6.') }}
steps:
- uses: actions/checkout@v4
@ -57,7 +56,6 @@ jobs:
-DBUILD_APP=OFF \
-DCHATTERINO_PLUGINS="$C2_PLUGINS" \
-DCMAKE_PREFIX_PATH="$Qt6_DIR/lib/cmake" \
-DBUILD_WITH_QT6="$C2_BUILD_WITH_QT6" \
-DCHATTERINO_STATIC_QT_BUILD=On \
-DCHATTERINO_GENERATE_COVERAGE=On \
-DCMAKE_BUILD_TYPE=Debug \
@ -98,9 +96,9 @@ jobs:
working-directory: build-test
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.6.0
uses: codecov/codecov-action@v5.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
plugin: gcov
plugins: gcov
fail_ci_if_error: true
verbose: true

View file

@ -17,7 +17,7 @@ FreeBSD 15.0-SNAP.
```
1. Generate build files. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
```sh
cmake -DBUILD_WITH_QT6=ON ..
cmake ..
```
1. Build the project
```sh

View file

@ -53,7 +53,7 @@ nix-shell -p openssl boost qt6.full pkg-config cmake
```
1. Generate build files. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
```sh
cmake -DBUILD_WITH_QT6=ON -DBUILD_WITH_QTKEYCHAIN=OFF ..
cmake -DBUILD_WITH_QTKEYCHAIN=OFF ..
```
1. Build the project
```sh

View file

@ -10,7 +10,7 @@ Local dev machines for testing are available on Apple Silicon on macOS 13.
1. Install [Homebrew](https://brew.sh/#install)
We use this for dependency management on macOS
1. Install all dependencies:
`brew install boost openssl@1.1 rapidjson cmake qt@5`
`brew install boost openssl@3 rapidjson cmake qt@6`
## Building
@ -21,7 +21,7 @@ Local dev machines for testing are available on Apple Silicon on macOS 13.
1. Create a build directory and go into it:
`mkdir build && cd build`
1. Run CMake. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
`cmake -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt@5 -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@1.1 ..`
`cmake -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt@6 ..`
1. Build:
`make`

View file

@ -42,6 +42,7 @@
- Minor: Tabs unhighlight when their content is read in other tabs. (#5649)
- Minor: Made usernames in bits and sub messages clickable. (#5686)
- Minor: Mentions of FrankerFaceZ and BetterTTV in settings are standardized as such. (#5698)
- Minor: Emote names are no longer duplicated when using smarter emote completion. (#5705)
- Bugfix: Fixed tab move animation occasionally failing to start after closing a tab. (#5426, #5612)
- Bugfix: If a network request errors with 200 OK, Qt's error code is now reported instead of the HTTP status. (#5378)
- Bugfix: Fixed restricted users usernames not being clickable. (#5405)
@ -72,6 +73,7 @@
- Bugfix: Fixed incorrect messages getting replaced visually. (#5683)
- Bugfix: Fixed rendering of multi-line selection that starts at a trailing space. (#5691)
- Bugfix: Fixed pause indicator not appearing in certain cases. (#5707)
- Dev: Default build with Qt6 on all platforms. (#5716)
- Dev: Update Windows build from Qt 6.5.0 to Qt 6.7.1. (#5420)
- Dev: Update vcpkg build Qt from 6.5.0 to 6.7.0, boost from 1.83.0 to 1.85.0, openssl from 3.1.3 to 3.3.0. (#5422)
- Dev: Unsingletonize `ISoundController`. (#5462)
@ -128,6 +130,7 @@
- Dev: Fixed some compiler warnings. (#5672)
- Dev: Unified parsing of historic and live IRC messages. (#5678)
- Dev: 7TV's `entitlement.reset` is now explicitly ignored. (#5685)
- Dev: Qt 6.8 and later now default to the GDI fontengine. (#5710)
## 2.5.1

View file

@ -21,17 +21,14 @@ option(BUILD_WITH_QTKEYCHAIN "Build Chatterino with support for your system key
option(USE_SYSTEM_MINIAUDIO "Build Chatterino with your system miniaudio" OFF)
option(BUILD_WITH_CRASHPAD "Build chatterino with crashpad" OFF)
option(USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
if(WIN32)
option(BUILD_WITH_QT6 "Build with Qt6, default on for Windows" On)
else()
option(BUILD_WITH_QT6 "Use Qt6 instead of default Qt5" OFF)
endif()
option(BUILD_WITH_QT6 "Build with Qt6" On)
option(CHATTERINO_GENERATE_COVERAGE "Generate coverage files" OFF)
# We don't use translations, and we don't want qtkeychain to build translations
option(BUILD_TRANSLATIONS "" OFF)
option(BUILD_SHARED_LIBS "" OFF)
option(CHATTERINO_LTO "Enable LTO for all targets" OFF)
option(CHATTERINO_PLUGINS "Enable ALPHA plugin support in Chatterino" OFF)
option(CHATTERINO_USE_GDI_FONTENGINE "Use the legacy GDI fontengine instead of the new DirectWrite one on Windows (Qt 6.8.0 and later)" ON)
option(CHATTERINO_UPDATER "Enable update checks" ON)
mark_as_advanced(CHATTERINO_UPDATER)

View file

@ -88,6 +88,15 @@ if (WIN32)
list(APPEND RES_AUTOGEN_FILES "${CMAKE_BINARY_DIR}/autogen/windows.rc")
endif ()
set(WINDOWS_ARGUMENTS "@Invalid()") # empty QVariant() in QSettings
if (CHATTERINO_USE_GDI_FONTENGINE AND Qt${MAJOR_QT_VERSION}_VERSION VERSION_GREATER_EQUAL "6.8.0")
message(STATUS "Using legacy GDI fontengine")
set(WINDOWS_ARGUMENTS "fontengine=gdi")
endif ()
configure_file("${CMAKE_CURRENT_LIST_DIR}/qt.conf.in" "${CMAKE_SOURCE_DIR}/resources/qt.conf")
list(APPEND RES_AUTOGEN_FILES "${CMAKE_SOURCE_DIR}/resources/qt.conf")
list(APPEND RES_AUTOGEN_FILES
"${CMAKE_SOURCE_DIR}/resources/resources_autogenerated.qrc"
"${CMAKE_BINARY_DIR}/autogen/ResourcesAutogen.cpp"

View file

@ -0,0 +1,2 @@
[Platforms]
WindowsArguments = ${WINDOWS_ARGUMENTS}

View file

@ -6,4 +6,7 @@
<qresource prefix="/">
@RES_RESOURCES_CONTENT@
</qresource>
<qresource prefix="/qt/etc">
<file>qt.conf</file>
</qresource>
</RCC>

View file

@ -1 +1,2 @@
linuxinstall
/qt.conf

View file

@ -1,2 +0,0 @@
[Platforms]
WindowArguments = dpiawareness=2

View file

@ -1,5 +0,0 @@
<RCC>
<qresource prefix="/qt/etc">
<file>qt.conf</file>
</qresource>
</RCC>

View file

@ -740,8 +740,6 @@ set(SOURCE_FILES
widgets/splits/SplitInput.hpp
widgets/splits/SplitOverlay.cpp
widgets/splits/SplitOverlay.hpp
${CMAKE_SOURCE_DIR}/resources/resources.qrc
)
if (APPLE)

View file

@ -43,11 +43,15 @@ void TabCompletionModel::updateResults(const QString &query,
query, fullTextContent, cursorPosition, isFirstWord);
if (done)
{
auto uniqueResults = std::unique(results.begin(), results.end());
results.erase(uniqueResults, results.end());
this->setStringList(results);
return;
}
#endif
this->source_->addToStringList(results, 0, isFirstWord);
auto uniqueResults = std::unique(results.begin(), results.end());
results.erase(uniqueResults, results.end());
this->setStringList(results);
}
}