message/call views: ui overhaul

This patch:
- implements QWebEngineView as the view for interactions
- reorganizes the main widget's layout in order to share views
  between in-call and out-of-call messaging views
- fixes behavioral bugs and crashes
- cannot be built with the mingw compiler due to lack of support for
  QWebEngine, and must be built natively with msvc and includes some
  build script modifications
- should be thought of as a new client

Change-Id: I59d8c68dc8384e85fb006f30d8313482c00d6c85
60 files changed
tree: 7159668d779024291f3bd7c2eb475030c207a7fb
  1. .tx/
  2. docker/
  3. images/
  4. translations/
  5. web/
  6. .gitignore
  7. .gitmodules
  8. .gitreview
  9. aboutdialog.cpp
  10. aboutdialog.h
  11. aboutdialog.ui
  12. accountdetails.cpp
  13. accountdetails.h
  14. accountdetails.ui
  15. accountitemdelegate.cpp
  16. accountitemdelegate.h
  17. accountlistmodel.cpp
  18. accountlistmodel.h
  19. accountserializationadapter.cpp
  20. accountserializationadapter.h
  21. accountstatedelegate.cpp
  22. accountstatedelegate.h
  23. animatedoverlay.ui
  24. animationhelpers.cpp
  25. animationhelpers.h
  26. bannedcontactswidget.cpp
  27. bannedcontactswidget.h
  28. bannedcontactswidget.ui
  29. build-client.bat
  30. callutilsdialog.cpp
  31. callutilsdialog.h
  32. callutilsdialog.ui
  33. callwidget.cpp
  34. callwidget.h
  35. callwidget.ui
  36. configurationwidget.cpp
  37. configurationwidget.h
  38. configurationwidget.ui
  39. contactdialog.ui
  40. contactpicker.cpp
  41. contactpicker.h
  42. contactpicker.ui
  43. contactrequestwidget.cpp
  44. contactrequestwidget.h
  45. contactrequestwidget.ui
  46. conversationitemdelegate.cpp
  47. conversationitemdelegate.h
  48. conversationsfilterwidget.cpp
  49. conversationsfilterwidget.h
  50. currentaccountcombobox.cpp
  51. currentaccountcombobox.h
  52. deleteaccountdialog.cpp
  53. deleteaccountdialog.h
  54. deleteaccountdialog.ui
  55. fetch-deps.bat
  56. globalsystemtray.cpp
  57. globalsystemtray.h
  58. ico.rc
  59. idlabel.cpp
  60. idlabel.h
  61. invitebuttonswidget.cpp
  62. invitebuttonswidget.h
  63. invitebuttonswidget.ui
  64. License.rtf
  65. linkify.js
  66. lrcinstance.h
  67. main.cpp
  68. mainwindow.cpp
  69. mainwindow.h
  70. mainwindow.ui
  71. messagewebpage.cpp
  72. messagewebpage.h
  73. messagewebview.cpp
  74. messagewebview.h
  75. navwidget.cpp
  76. navwidget.h
  77. photoboothdialog.cpp
  78. photoboothdialog.h
  79. photoboothdialog.ui
  80. photoboothwidget.cpp
  81. photoboothwidget.h
  82. photoboothwidget.ui
  83. pixbufmanipulator.cpp
  84. pixbufmanipulator.h
  85. qualitydialog.cpp
  86. qualitydialog.h
  87. qualitydialog.ui
  88. quickactcontactrequestwidget.ui
  89. README.md
  90. ressources.qrc
  91. ring-client-windows.sln
  92. ring-client-windows.vcxproj
  93. ring-client-windows.vcxproj.filters
  94. ring.nsi
  95. ringbutton.cpp
  96. ringbutton.h
  97. ringbutton.ui
  98. ringcontactlineedit.cpp
  99. ringcontactlineedit.h
  100. ringthemeutils.h
  101. RingWinClient.pro
  102. selectareadialog.cpp
  103. selectareadialog.h
  104. sendcontactrequestwidget.cpp
  105. sendcontactrequestwidget.h
  106. sendcontactrequestwidget.ui
  107. settingskey.h
  108. shmclient.cpp
  109. shmclient.h
  110. smartlistmodel.cpp
  111. smartlistmodel.h
  112. smartlistselectorbuttonnotifier.cpp
  113. smartlistselectorbuttonnotifier.h
  114. smartlistview.cpp
  115. smartlistview.h
  116. stylesheet.css
  117. touch_res.bat
  118. update-translations.py
  119. utils.cpp
  120. utils.h
  121. version.h
  122. videooverlay.cpp
  123. videooverlay.h
  124. videooverlay.ui
  125. videoview.cpp
  126. videoview.h
  127. videoview.ui
  128. videowidget.cpp
  129. videowidget.h
  130. webchathelpers.cpp
  131. webchathelpers.h
  132. windowscontactbackend.cpp
  133. windowscontactbackend.h
  134. wizarddialog.cpp
  135. wizarddialog.h
  136. wizarddialog.ui
  137. wizardwidget.cpp
  138. wizardwidget.h
  139. wizardwidget.ui
README.md

Windows client for Ring

For more information about the ring project, see the following:

Requirements

  • Ring client library and Ring daemon
  • Mingw-w64 build environment
  • Qt5 (we link against Qt5Core, Qt5Widgets, Qt5Gui) built with Mingw
  • Qt5 Svg, Qt5 ImageFormats & Qt5 WinExtras built with Mingw

Get the source code

  • git clone https://gerrit-ring.savoirfairelinux.com/ring-client-windows

Build instructions

USE THE QMAKE OF Qt BUILT WITH MINGW (e.g. /usr/bin/[i686 | x86_64]-w64-mingw32-qmake-qt5)

cd ring-client-windows
mkdir build && cd build
export QTDIR=<path to mingw qt> (e.g. /usr/[i686 | x86_64]-w64-mingw32/lib/qt)
git submodule init && git submodule update
cd libqrencode
./autogen.sh && ./configure --host=[i686 | x86_64]-w64-mingw32 --prefix=<Install dir of Ring and LRC>
make
make install
cd ..
qmake ../RingWinClient.pro -r -spec win32-g++ RING=<Install dir of Ring and LRC> [BUILD=Debug]
make
make install

You will find all files in ./release directory.

#Auto update

If you want to enable auto-update

  • Build winsparkle In the client directory after having initialized the submodule
    cd winsparkle
    mkdir build && cd build
    cmake -DCMAKE_TOOLCHAIN_FILE=<LRC Directory>/cmake/winBuild.cmake -DCMAKE_INSTALL_PREFIX=Install dir of Ring and LRC> ../cmake",
    make
    make install
    
  • Compile the client with ENABLE_AUTOUPDATE=True

Debugging

Compile the client with 'BUILD=Debug' and libRingClient with '-DCMAKE_BUILD_TYPE=Debug'

Packaging

cd build/release
makensis ring.nsi