1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-23 00:45:29 +02:00
Commit graph

44 commits

Author SHA1 Message Date
agsantos
7fe8843317 plugins: preferences per account
+ code cleanup

GitLab: #539

Change-Id: I3f85a4760f60f47f2557016a88bc17c41062ee4e
2022-04-26 09:27:10 -04:00
agsantos
6c88b623b3 video split: move participants overlay from calloverlay to callparticipants
fix preview visibility
add yellow margin to active conference participant

GitLab: #435
Change-Id: I865140631b69e9a09f5f88ce314d4d55058cf53c
2022-04-05 16:16:07 -04:00
Sébastien Blin
5bfe0851cd
swarm: show role in details page
GitLab: #340
Change-Id: I641bca14d459ce359fca612044e1d98b15f03db2
2022-03-23 13:52:04 -04:00
Andreas Traczyk
e7cc0497ce video: use QVideoSink/VideoOutput and QVideoFrame instead of QImage
Removes the rendermanager and framewrapper objects along with any
QQuickPaintedItem-based QML render widget classes. This simplifies
the video widget stack implementation.

The new mechanism uses the VideoOutput component of QtMultimedia.
By accessing the VideoOutput's QVideoSink object, we update the
mapped buffer data of a sink's QVideoFrame when new frames are
published. Updates to frames and component sink subscriptions are
managed by a new class called VideoProvider.

Gitlab: #500
Also https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/536

Change-Id: I2391a32294922ea435ab80ac1f876c004ff6c21e
2022-03-08 11:49:43 -05:00
Andreas Traczyk
70a6972b7e mainwindow: save/restore window geometry
Save virtual desktop geometry and window visibility state settings
and set them for the application window when loading.

Gitlab: #604
Change-Id: I053716d9c7b5d23e1bd7f33a1c41aedefb6cf9c8
2022-01-21 14:23:25 -05:00
Amin Bandali
db0fd56763 misc: update (and fix) copyright years to 2022
Change-Id: I8eb66c1c3cddb3bf73b6784a9876dd9dc9c12481
2022-01-06 11:24:13 -05:00
Ming Rui Zhang
3c7d03220f accountMigration: use the existing loader mechanism to avoid crash
1. Avoid direct window declaration under ApplicationWindow
2. UI refactor

Change-Id: I7991e22d3f85b1c17d85475000ab8b8c2fbc3391
2021-12-21 14:21:36 -05:00
Ming Rui Zhang
be41f0e7a6 misc: Qt 6.2.0 initial migration
Remove unsupported QtQuick One component and it will be
added back in the following patches

Change-Id: Iad206a880096cf956a4220a81dca85a993721fbd
2021-12-21 14:21:36 -05:00
Andreas Traczyk
e85d4506de chatview: implement side-by-side styling
+ fix multiline richtext
+ add SBS msg bubbles
+ limit timestamp visibility
+ render link previews
+ render data transfer interactions

Gitlab: #467
Change-Id: I80b6db33d786180d479730213855b9816bea4793
2021-10-06 15:55:24 -04:00
Trevor Tabah
2e67dc1bd8 chatview: replace web chat view with qml listview
Introduces a primitive QML ListView based chat view lacking
features present in the previous web chat view, that will be added
in subsequent commits(styling, preview/media/link/file-transfer
message type support, etc.).

Gitlab: #467
Change-Id: Iedc40f6172a6cdacc48cda6f4187053fbf226713
2021-10-06 15:51:20 -04:00
Ming Rui Zhang
e0737f4b70 settings: refactor for SettingsView - stage two
1. Remove redundant functions in AvAdapter
2. Add CurrentDevice for video device treatment
   Audio device treatment should be improved in the next
   stage
3. Add QSortFilterProxyModel to all video list models and
   manage them together to avoid redundant function calls
4. Video device call action should be responsive to device
   change as well

Gitlab: #508

Change-Id: I3df949a08bc19042b73f033139cd6ab06925c0b6
2021-09-14 16:52:45 -04:00
Ming Rui Zhang
a196513d2e settings: refactor for SettingsView - stage one
1. Add account config QML properties and use them
   in settings directly to avoid manual update
2. Rough clean up for video/audio settings
3. Remove settingsAdapter entirely and split the
   responsibility

Change-Id: Icf81b91d5a3a0dd9f2a52824159cd222367b801f
2021-09-14 16:52:30 -04:00
Ming Rui Zhang
66edc82b82 settingsview: LinkedDevices view refactor
1. Remove deviceModel from AccountAdapter
2. Use QSortFilterProxyModel to make sure that
   current device is always on top and the rest are
   in alphabetical order
3. Elide device name properly in DeviceItemDelegate

Change-Id: Ic66a11fb4a4a8cca65916653e0981b15c939bce6
2021-08-30 11:45:17 -04:00
Andreas Traczyk
0521bd21f7 qmlengine: homogenize qml module registration
Make sure all the calls to register are using the same versions
from qmlregister.h.

Change-Id: I1b6d2b168778fa91d16342765c93ad732de596e0
2021-08-23 14:28:23 -04:00
Andreas Traczyk
f2ba34ca51 accounts: introduce currentaccount
A structure to represent the currently selected account and it's
properties as observables.

Change-Id: I6b4ae92e15b492a4c4d61ec5da019e2c7e937401
2021-08-17 10:14:57 -04:00
Andreas Traczyk
6b3bf5149f misc: add a qml adapter class to represent the current conversation
Provides observable property representations of a conversation info
structure. Is updated when the selected conversation Id changes.

This object is only exposed in this commit, and will be used in
subsequent commits to introduce a more declarative approach in the
UI code.

Change-Id: I25be0f6b82cf9341b67fbf04fdeb04bffbf8ab24
2021-08-06 11:56:01 -04:00
Ming Rui Zhang
234ee7a2e9 wizardview: refactor account creation ui and enhance flow
1. Use MaterialToolTip in MaterialButton
2. Add BubbleLabel and BackButton
3. Add WizardViewStepModel
4. Focus re-visit

Gitlab: #470

Change-Id: I818da76c4b97cb08d2b6df6b2c8e2752d7a522f2
2021-07-29 10:48:39 -04:00
Andreas Traczyk
1a61af02f3 resources: remove unused images and icons
gen-resources.py should be used to generate resources.qrc and
JamiResources.qml. Steps to add an image resource:
- add the resource file to the appropriate path under resources/
- run gen-resources.py
- use the newly available resource

Note: only icons and images will be represented by Qml properties.

The resource file generation may be made to run during CMake
configuration in a subsequent commit.

Some unused components were also removed during the refactor.

Gitlab: #477
Change-Id: I8e7f13d465031666be2bbadd5f29f9afc94d210d
2021-07-20 21:57:27 -04:00
Ming Rui Zhang
14661adac6 tests: add FilesToSendContainer and MessageWebViewFooter tests
1. Adjust QML main setup
2. Add resources.qrc for test and Qt Creator display
3. Change LRCInstance and ScreenInfo to QML Singletons
4. Move QML type registration entirely to qmlregister

Change-Id: I5c8a854173a2ec1f85ffa971707af262fa344505
2021-07-20 09:45:42 -04:00
Ming Rui Zhang
f8d5ab7fe7 messagewebview: chatview message bar qml replacement - logic completion
Functionalities checklist:
  1. Emoji picker refinement
  2. DropArea on messageWebView
  3. Record box
  4. Send message button visibility
  5. TextArea paste (can paste image, files directly)
  6. TextArea content draft
  7. TextArea - Enter key -> Send message
  8. TextArea - Shift + Enter key -> New line
  9. TextArea - Composing indicator
  10. TextArea - Placeholder text

Change-Id: I115ad2927b74264dd396aa55b77a8f003dcd746b
2021-07-09 12:04:32 -04:00
Ming Rui Zhang
14620f8bc8 messagewebview: chatview message bar qml replacement - ui
1. New emoji picker by customizing emoji.js
2. New message bar ui (textarea, buttons, tooltips)
3. New pending files transfer container
4. Use MaterialToolTip for all PushButton

Change-Id: I05d0531c65c019ced42b04668a780919c8a4fac3
2021-07-09 10:06:42 -04:00
Andreas Traczyk
712f2c3b30 smartlist: adjust draw/filter for swarm items
Removes profile type filter entirely. Treats swarm and non-swarm
differently when accessing role data.

depends on https://review.jami.net/c/ring-lrc/+/18656 for changes to
helper function names in conversation::Info

Change-Id: Ife69d4c70072ea524fed873136fd9ec39632d6d8
2021-07-06 14:38:29 -04:00
Ming Rui Zhang
9a5afd3918 accountcombobox: use QSortFilterProxyModel to filter out current account
Gitlab: #405

Change-Id: I364d7945739ef45319e0bb7834075ac52ec5c009
2021-05-11 14:56:30 -04:00
Andreas Traczyk
e64a9e7ee7 sidepanel: improve smartlist interface with underlying models
Minor cosmetic changes to the account combo box, search bar, filter
tabs, and smartlist.

Change-Id: Ie8173504859b325374e42f0dbb4e0ae75f3ed740
Gitlab: #373
Gitlab: #374
Gitlab: #388
2021-05-07 15:41:28 -04:00
Andreas Traczyk
2539eb715c misc: circumvent QtCreator "module not found" bug
When registering into QML namespaces from a non-global context,
certain QtCreator versions fail to find import modules. The only
effect is a lack of correct "intellisense". We can register dummy
namespace into the QML module namespaces we use to quiet the IDE.

Change-Id: Ideb06541475788c669619be82c30d993554435a9
2021-04-27 13:51:49 -04:00
Andreas Traczyk
ac87d33d9f misc: put lrcinstance implementation into cpp file
Change-Id: I46c4e17124b2c0cbf6e92c696d3d47e1b0ad2d0d
2021-04-09 16:00:33 -04:00
Andreas Traczyk
4ce208ec33 injection: remove the remaining c++ singleton classes
- refactor qml object registration
- inject AppSettingsManager and SystemTray

Gitlab: #320
Change-Id: Ic8232a290003245d09ad9452c9f5518fd260af78
2021-04-02 15:37:33 -04:00
Ming Rui Zhang
7951764b2e misc: remove LRC singleton
GitLab: #337

Change-Id: Ifb671d38d364714818650a8154c43a5787460039
2021-03-22 15:47:14 -05:00
Andreas Traczyk
28aa5aab6d settings: use default audio devices
Refactors audio settings to avoid list model code duplication. This code
could be greatly simplified by using string lists, however the combo-box
component design is highly dependent on QAbstractItemModel based models.

Also translates the handlebarred strings upon presentation, which is
currently used to translate the "Default" prefix for the first device
item.

Gitlab: #346
Change-Id: I5ed282d29cc4ec6a090a9cdf47b0459f0db2a99b
2021-03-22 15:59:24 -04:00
agsantos
a5ec0c8e65 plugins: add ChatHandler API
Change-Id: I415fc953b9111ca7e3d899c1531a42bd43716ab2
2021-02-03 09:09:26 -05:00
ababi
7450350348 settings: add support for default and local moderators
- add configurable list of default moderators
- add option for enabling local moderators
- indicate when participant is locally muted on moderation overlay
- small typo fixes

Change-Id: I1669c903be3c3a3f2344f1d95d8b618e62b9d412
2021-01-15 18:37:18 +01:00
Andreas Traczyk
c472fe83ae video: fix rendering on linux
Change-Id: If6a2deda08663f7edf9fa527bc1c592f60e6a371
2020-12-10 09:46:52 -05:00
ababi
7bd7b2e9ee misc: move JamiTheme and JamiStrings to net.jami.Constants namespace
Change-Id: Ief728a8bd36f6c29a906686988b28b0640b2065c
2020-12-07 17:02:00 -05:00
Andreas Traczyk
3da2361c86 mainwindow: include "beta" in app title
Change-Id: Ie22e7bcadc0f0a19a0050670bc087d761acba5a9
2020-10-02 17:00:35 -04:00
Andreas Traczyk
3b6bbe772a misc: implement update system
- re-introduce a genericized NetworkManager
- isolate update logic into a qml accessible class derived from
  NetworkManager
- fix QtWebEngineProcess missing when re-installing over existing
  version
- provide a command line option to override the base url
  for testing local and remote updates
- clean-up manual update-check UI

Gitlab: #101
Change-Id: I9c8d2badae59ec31cab12d38b8470edf2bcad401
2020-09-24 12:48:29 -04:00
ababi
5f869b589f misc: avoid using magic numbers
- register SmartListModel
- acces to AccountListModel and SmartListModel registered enumerations

Change-Id: Idbc943a3b6a6f2989be7d20f5fe4259402a5adeb
2020-09-23 03:15:01 -04:00
agsantos
f0ad12c8fc misc: string refactoring
Gitlab: #72
Gitlab: #75
Change-Id: I0aa4049df3d293a0988842bf2a37daaab816cfcf
2020-09-15 14:58:33 -04:00
agsantos
d191f86b9c settings: optimize code
Change-Id: Ib12382a9292852f404b1a588a7b5a6e29cb06cf9
2020-09-15 14:58:24 -04:00
Andreas Traczyk
ae058405a5 qml interop: remove clientwrapper
The clientwrapper class masks granular object registration within
qml, and encourages code duplication between viewmodels(adapters)
and code lasagnafication and the misuse of declarative Qml.

Change-Id: I85fef214363e62e54fc0681282323ea4861000d6
Gitlab: #66
2020-09-10 14:55:07 -04:00
Andreas Traczyk
88816940fb qml interop: refactor and remove utilsadapter from clientwrapper
- Separate utilsadapter into files and expose it to Qml so it can
  be used without passing through clientwrapper.

Change-Id: I7c351d7191cd166521b6e0a685ea9d4a9731f165
Gitlab: #66
2020-09-10 14:54:58 -04:00
agsantos
90a1dbce27 plugin: implement PATH preference
Change-Id: If86856104409c9c6f8402e0c9229481d18c5b84f
2020-09-09 12:43:07 -04:00
Andreas Traczyk
eb53a622b7 qml interop: start replacing QMetaObject::invokeMethod with signals
It seems concurrent calls to invokeMethod using qml component
object pointers can lead to access violations. These method
invocations can be replaced with a signal/slot mechanism.

This patch replaces only the invocations in conversationsadapter
and accountsadapter that are known to be problematic for now.

Some code cleanup is done for QmlAdapterBase derived classes.

Gitlab: #61
Change-Id: I72f47c9229a9bf42299ae52822c3a1a8c04eb423
2020-09-03 16:25:59 -04:00
Ming Rui Zhang
346b255c77 wizardview: UI refinement
Partially optimized the wizardview related UI code and UI performance.
Note: Since some common components are changed, UI changes in settings
view are also required to keep the original style.

Gitlab: #59
Change-Id: Ib77868bac3a6479700e81f3361b67a8403725661
2020-09-03 15:37:12 -04:00
Andreas Traczyk
84dec083e2
mainview: support close to systray
- Introduces a C++/Qml common mechanic for accessing system settings
- Refactors a good chunk of application wide settings management code
- Refactors the onboarding and quit-suppression logic
- Makes a first stab at cleaning the Qml object registration
- Removes some 'ClientWrapper' use
- Fixes some file name spelling errors and inconsistencies

Gitlab: #51
Gitlab: #53
Change-Id: I3dd1085aca72a38827ec004e347bd91106be2bcb
2020-09-03 12:23:14 -04:00