The output directory for windows builds currently matches either Release
or Beta. This does not work as Beta is only a build option, not a build
type. Changes :
- Change build output directory to match the cmake build type (Release
or Debug)
- Change Beta output path references to Release
Change-Id: Ib513f177d93e3c9fb529e00aa160443ac2e804b5
Implement the hunspell spellchecker for Windows and MacOS. It also
changes the base implementation for Linux. The system dictionaries
(if any) are aggregated with those installed from the LibreOffice
repository via Jami's dictionary management interface.
This commit implements a major refactoring of the spellcheck system
to improve UI responsiveness and user experience:
Core Changes:
- Used QAbstractListModel to represent the list of dictionaries
- Added new QML components:
- DictionaryInstallView.qml
- ManageDictionariesDialog.qml
- SpellCheckLanguageComboBox.qml
- Updated property names for clarity
- Fixed a bug in the settings combo box custom component that caused
out-of-range errors for filtered models
GitLab: #1997
Change-Id: Ibd0879f957f27f4c7c5720762ace553ca84e2bc3
We need the EXCLUDE_FROM_ALL argument to prevent Hunspell's headers from
being installed by Jami's "install" make target.
GitLab: #1997
Change-Id: Ie60c6f4dc8dc8b33fbccb95d667b4b2eafefecb6
Implement a first version of the spellcheck for linux that use the
systemwide installed dictionaries.
GitLab: #1997
Change-Id: I7158e6c61061e7d0a7fe651069247227bbe399a4
Brings in some build fixes. Also prevents applying the qmsetup patch
on Windows, and calls build-windows.py --init with the qt parameter
which is required if when using Qt installed in a non-standard location.
Change-Id: I40facbdc93289792130a15b0f4151f78137bc1ef
This commit adds a patch for QWindowKit to ensure that it always
installs its dependency QMSetup in a directory where CMake will be able
to find it. This makes the previous QWindowKit patch unnecessary and
fixes a build issue when packaging Jami on Debian and Ubuntu that
started occurring when QWindowKit was updated in commit 6b70ffc.
GitLab: #1976
Change-Id: I5f23fcbb612aa6d0eb0e77e9a5a006b24a5af082
We need the EXCLUDE_FROM_ALL argument when adding git submodules via
add_subdirectory in the CMakeLists file. Without it, the "install" make
target for Jami will also install the submodule's files.
GitLab: #1947
Change-Id: I477c4733951ac5a9fa2b6a52a1463c4a585ab8b7
This commit adds a basic crash-report system that can be optionally
configured to automatically send minidump crash-reports in addition
to product versions and a platform description including the OS
name and CPU architecture. Reports can be received at a configured
REST endpoint(POST). This endpoint URL can be configured using
a CMake variable `CRASH_REPORT_URL` which defaults to
"http://localhost:8080/submit".
- Introduces a new CMake option `ENABLE_CRASHREPORTS`, defaulting
to OFF. This allows developers to enable crash reporting features
at build time selectively. We also define a new macro with the
same name to expose the state to QML in order to hide the UI
components if needed.
- Implemented conditional inclusion of crashpad dependencies using
`ENABLE_CRASHREPORTS`. If set, `ENABLE_CRASHPAD` is also enabled
(other crash reporters exist and we may want to use them).
- 2 new application settings are added: `EnableCrashReporting` and
`EnableAutomaticCrashReporting`. Default settings make it so
crash-reports are generated but not automatically sent. With this
default configuration, users will be prompted upon application
start to confirm the report upload. Additionally, users may
opt-in in order to have reports sent automatically at crash-time.
Gitlab: #1454
Change-Id: I53edab2dae210240a99272479381695fce1e221b
The AppStream specification includes both a "metainfo" file format,
which can be used (among other things) to provide metadata about a
specific application, as well as a "catalog" file format used to provide
information about the contents of a repository. This patch adds a
"catalog" file for the Jami repos, which seems to be necessary in order
for some graphical package management applications to be able to launch
or uninstall Jami. In particular, this was an issue with GNOME Software
on all the rpm-based distributions supported by Jami (Fedora, openSUSE,
AlmaLinux).
This patch also fixes a few minor noncompliance issues with the existing
metainfo and .desktop files:
- the metainfo and .desktop files were renamed so that the names'
prefixes match the application's ID as defined by the <id> tag in the
metainfo file (in our case "net.jami.Jami") [1];
- the <br/> tags in the metainfo file were removed (they are not
supported -- metainfo files only allow a very limited number of tags,
not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are
now used instead;
- the invalid categories "Communication" and "Productivity" were removed
[3, 4].
[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/
[2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description
[3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories
[4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html
GitLab: #1842
Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
Currently, the user-facing version number in the about dialog, is a
build-time timestamp that does help us isolate the project versions
accurately. Ultimately, we need to be able to reproduce issues
present in specific versions of Jami. This commit introduces a new
version number in the form: <client_sha>.<jamicore_sha>, allowing
us to reproduce builds more accurately.
Gitlab: #1820
Change-Id: Ie7e20b20da65284e33e745996c410f539b65080c
This will prevent a graphical issue present when disabling QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS to avoid the Windows 10 top border issue for the frameless window option. This allows us to remove the temp workaround that likely introduces side effects.
Gitlab: #1581
Change-Id: I36801064d31e2380312d73f88233e8ed9b757403
- Declares global logging categories for libclient and the app
- Introduces some macros for categorized logging
- Removes the noisy namedirectory logs by default
- Logs file/line number URIs in debug mode
Change-Id: I9dadadc6e93ef91cc70d206b7225aeb7a06f8773
This commit makes the necessary changes to migrate from Qt 6.5.3 to
Qt 6.6.1 and fixes the following issues:
- EditedPopup.qml: "layout polish loop" and "recursive rearrange"
errors (GitLab: #1510) as well as an unreported bug where text was
clipped instead of elided
- BaseContextMenu.qml: QML warning ("Created graphical object was not
placed in the graphics scene.")
The daemon is also bumped in order to include a patch for a build issue
on openSUSE Leap (GitLab: #1552).
GitLab: #1466
Change-Id: I12df2f84067ebe961368879e08ff7ef275d93395
Broken by https://review.jami.net/c/jami-client-qt/+/26560.
This moves some logic that has been previously duplicated between the app and tests into a common routine.
Change-Id: I40f1af38893cfcef751578d3e4db7d7ba040505b
Several major changes to the layout have been made.
- The chat search bar is moved into the message search layout.
- The Searchbar component is stripped of unused features.
- Some remaining logic that was used to switch main loader components is removed.
- ViewCoordinator.getView gets a "force create" parameter and we no longer preload low-cost views.
NOTE: the option to use a frameless window is available within general settings
Gitlab: #1524 (Frameless Window)
Change-Id: Iec6bdf162cb0335d3ae3d9bd09dd9783991a4a57
WebEngine view destruction crashes on Windows 10 when using Vulkan. Disable the preference for now. It will default to D3D11.
Gitlab: #1515
Change-Id: I8396163a937b3b439569115887020d49e3a8e751
It works with a Pimpl which the right pttlistener.cpp depending
on the platform you are on (macOs, windows or X11). It is a
global PTT which listen to key events during calls. If the
global PTT is not supported, a local PTT is set.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1402
Change-Id: I8399800966c737bb8e8a656ecbb6af7ac7cdde8c
The current check only fails if the major and minor version are less than the minimum.
This simplifies the check even removing the major version check which is a find requirement already.
Gitlab: #1330
Change-Id: Id066953c50ef4a925713dbd9203ebe7a3a36f4a1
To be able to use an update manager for the plugins store, a refactor of windows update manager is done. The windows and macos update manager is used for updating jami. The plugins store update manager is to update plugins to the newest version.
Gitlab: #1229
Change-Id: I0541b6191401f2aa2c6d6034722796455e9c18d2
Introduces MessageParser to encapsulate text treatment for raw text messages.
The async parsing sequence is as follows:
- Markdown -> HTML (md4c)
- link coloration (tidy-html5)
- notify UI
- request link preview info from PreviewEngine for the first link
- Preview engine uses QtNetwork instead of QtWebengine
- Linkification is handled by MessageParser instead of linkify.js
QtWebengine is no longer required for message parsing.
Gitlab: #1033
Gitlab: #855
Change-Id: Ief9b91aa291caf284f08230acaf57976f80fa05b
Python2 is removed from Debian stable/unstable and
latest Ubuntu. So, we need to use a newest version of
Qt (here Qt 6.4.3).
Change-Id: I6c8b1eee644aab787d54e467f64011762ffd7548
The commit was reverted in 2b7a421e due to breaking some of the
packaging builds. This has now been rectified.
Change-Id: I3ea67962cc65f243f106fe00316634d580f51a52
This is a big time saver in the context of CI testing where we only need to supply some env vars instead.
It would also be nice to also have the env vars filled out for CMake-generated project runtime configs to prevent unnecessary deployment for development builds, but that's not done in this commit.
Change-Id: I338827cb87c9fc71c9a6b4b3076b22aa7cf7cfa3
Adds a `--with-engine` option for the resource generator script which will prevent packaging unused resources when building without webengine support.
Change-Id: If2f31284ef59166615221235427a53d0df8da2ce