Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
  • native
  • packaging
  • release-0.2.x
  • release/201808
  • release/201811
  • release/201812
  • release/201901
  • release/201902
  • release/201903
  • release/201904
  • release/201905
  • release/201906
  • release/201908
  • release/201910
  • release/201911
  • release/201912
  • release/202001
  • release/202005
  • releases/beta1
  • 0.1.0
  • 0.1.1
  • 0.2.0
  • 1.0.0
24 results

Target

Select target project
  • savoirfairelinux/jami-client-windows
1 result
Select Git revision
  • master
  • native
  • packaging
  • release-0.2.x
  • release/201808
  • release/201811
  • release/201812
  • release/201901
  • release/201902
  • release/201903
  • release/201904
  • release/201905
  • release/201906
  • release/201908
  • release/201910
  • release/201911
  • release/201912
  • release/202001
  • release/202005
  • releases/beta1
  • 0.1.0
  • 0.1.1
  • 0.2.0
  • 1.0.0
24 results
Show changes
Commits on Source (228)
Showing
with 679 additions and 6720 deletions
---
Language: Cpp
# BasedOnStyle: WebKit
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: All
BreakBeforeBraces: WebKit
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 0
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: false
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeCategories:
- Regex: '^"config\.h"'
Priority: -1
# The main header for a source file automatically gets category 0
- Regex: '.*'
Priority: 1
- Regex: '^<.*\.h>'
Priority: 2
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
UseTab: Never
...
......@@ -8,12 +8,12 @@ x86/
.qmake.stash
debug/
release/
beta/
qrencode-win32/
*.dll
.gitignore
*.qm
build/
nuget.exe
JamiInstaller/bin/
JamiInstaller/obj/
*.autosave
changelog.html
obj/
/obj
/bin
Components.wxs
<?xml version="1.0" encoding="utf-8"?>
<!--
Generated with WiX's heat tool and modified afterwards using the command:
heat.exe dir x64\Release -ag -cg ProductComponents -dr APPLICATIONFOLDER -srd -var var.ReleaseDir -out JamiInstaller\Components.wxs
the api-ms-win dlls are the missing parts of vc merge module
Modifications made: remove all irrelevant files (*.tlog, *.obj, etc), add Win64="yes" to every component.
Running heat in the prebuild step would work (with an XSLT file), but is not recommended. It is better to have the build fail
if a specific file is not found than to try to debug why the installed application doesn't work properly.
-->
<?include Config.wxi?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="APPLICATIONFOLDER">
<Directory Id="dirCFD5DCDF1CAB22CF8B4B7E1E01E79D36" Name="imageformats" />
<Directory Id="dir908DFC228501FBE723FC009E659CB04F" Name="platforms" />
<Directory Id="dir6BEF5EA0D72E144566D3B5034E8EBD40" Name="ringtones" />
<Directory Id="dir2B882A2C0828718F11D164F0487238A7" Name="share" />
<Directory Id="dir4AD0B3BC5E5530AF4A888ED31F98A3AB" Name="sqldrivers" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents">
<Component Id="cmp9C61F84AF9761955FBF397AFAE21C11B" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2089BEC9A7AB899CED5A5EE501789299" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l1-2-0.dll" />
</Component>
<Component Id="cmp03BB2697EE10869C4A329E3EA987EFAA" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil44C27F2C97596734BB3BEB7C21F7B71C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l2-1-0.dll" />
</Component>
<Component Id="cmp6B6AA7AEA5A4D324A4EE7DAE1B1193E0" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1D16BE23D323A1E37FC1FC7354A9305F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-localization-l1-2-0.dll" />
</Component>
<Component Id="cmpB5454FB66442C9BFD2145AE30B32D7A9" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil031B78DF53F7A3AC109410907624FC3E" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-processthreads-l1-1-1.dll" />
</Component>
<Component Id="cmp9F6D22CD9B1739E4F75F92F3A07E4CA1" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE9A3672FA504AA8E518DD72A02CD3E77" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-synch-l1-2-0.dll" />
</Component>
<Component Id="cmp9451422B7074D46F019614C3DE73BD17" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil3C902CA2889BB8855D285C3FBABB334F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-timezone-l1-1-0.dll" />
</Component>
<Component Id="cmp349250459EC2D8C328EED5138B073E7A" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2466F3D9FBA095A007D0909040D4D688" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-conio-l1-1-0.dll" />
</Component>
<Component Id="cmpCC880F2B054A87EF5FC68232652231BF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil605A691486569535A1C3548F7DCE753C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-convert-l1-1-0.dll" />
</Component>
<Component Id="cmpD6CB40D5A5AFF2161B7B4B4F06F03301" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil09AE032A32E2E542A232F7941AC77320" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-environment-l1-1-0.dll" />
</Component>
<Component Id="cmpC02538029646A27A9F786AD690EB3C8E" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil7DE9C3CADCA188356922B0CBD8E313E7" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-filesystem-l1-1-0.dll" />
</Component>
<Component Id="cmp8E50197B377636123F0F1F94FFB004E7" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil584F158D11B8A380C73F1EFE8BBA92B4" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-heap-l1-1-0.dll" />
</Component>
<Component Id="cmp7F729C94A363C73DC4D91B6F48E4F859" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil4BE19B924B98D56F3155B66496D574E5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-locale-l1-1-0.dll" />
</Component>
<Component Id="cmp7C573E66B0904BA73880788F7057AF88" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE8495C446FA1237E92562498D20261AA" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-math-l1-1-0.dll" />
</Component>
<Component Id="cmp7A91CED53D8F6E5F20F2049B3B5CD143" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil06951EB208628753677745AF15CC12A5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-multibyte-l1-1-0.dll" />
</Component>
<Component Id="cmp1CE713C705A95306A1D246AC3AB9DE25" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil8D102BB81768F998470C34797459E306" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-private-l1-1-0.dll" />
</Component>
<Component Id="cmp35840DFBF4D6AE827AFC4EF2A17BB3EB" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filC6C457BD901F940DCB673D271728F9FE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-process-l1-1-0.dll" />
</Component>
<Component Id="cmpEBB86BDA48FE3B9E2043C1A80D26ACD5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE1B2095225B01DEFA5DA9895B432FBCB" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-runtime-l1-1-0.dll" />
</Component>
<Component Id="cmp80C8534B553078EA8B86F100FF542776" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filDAFE58019AD70832B8304DCEA534B5EE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-stdio-l1-1-0.dll" />
</Component>
<Component Id="cmpCFC348111B5343749A2273A62421C07C" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1F1B38DB330CA413655F715578D4BE1A" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-string-l1-1-0.dll" />
</Component>
<Component Id="cmp7D5450E04EC419244107942A00DF7DDF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filEB03BCF3155C5BAE2C2EDBF036EB659D" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-time-l1-1-0.dll" />
</Component>
<Component Id="cmp5456679BDCC818B2E9476B416F71AAA5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil5B120DD384CABED37DFC2652C6462666" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-utility-l1-1-0.dll" />
</Component>
<Component Id="cmpF23755F862A15FFCBD109C85599B7F20" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filD6887AD9110E4A8D49143C9A8F0B5843" KeyPath="yes" Source="$(var.UcrtDir)\ucrtbase.dll" />
</Component>
<Component Id="cmp3BE7F5162150D73A8A31AC4EBC5065CE" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil19F5C64500F14D4D7EAC0A4F937B5CF2" KeyPath="yes" Source="$(var.ReleaseDir)\avcodec-58.dll" />
</Component>
<Component Id="cmp2E63CB6C2A579B11BF424D20A491FFB6" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil0F0D517344A4EF76FF9E7DA49A50FF37" KeyPath="yes" Source="$(var.ReleaseDir)\avdevice-58.dll" />
</Component>
<Component Id="cmpD52D4D53A1B09E38AAFFC5226D0182B2" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil06F9A4E69D0D1D99C19EB9B347120096" KeyPath="yes" Source="$(var.ReleaseDir)\avfilter-7.dll" />
</Component>
<Component Id="cmpAE2934B4AF40AE6FC21B254ABA434BD9" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil8B4613152A4548D3FD408F542CB13D85" KeyPath="yes" Source="$(var.ReleaseDir)\avformat-58.dll" />
</Component>
<Component Id="cmp8D4CB0CAB9711FD978FE9ACB15CE64CC" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil6376245C3F7E850D9DC4623A80C4E0C8" KeyPath="yes" Source="$(var.ReleaseDir)\avutil-56.dll" />
</Component>
<Component Id="cmp41DC9741013CA4AD62A4A5FF421F08BC" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil84B847A9F8DABE6B95AF875695C9E6D1" KeyPath="yes" Source="$(var.ReleaseDir)\d3dcompiler_47.dll" />
</Component>
<Component Id="cmpBDBA16CBEE531189F4ADEB44F36FA9CA" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil22B9AE685C747A265E9A4BC34E90558B" KeyPath="yes" Source="$(var.ReleaseDir)\icudtl.dat" />
</Component>
<Component Id="cmp7B6BE3D8A094656C2A1CCFFCC05C4508" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<!-- Renamed to ease referencing -->
<File Id="fileMain.exe" KeyPath="yes" Source="$(var.ReleaseDir)\Jami.exe" />
</Component>
<Component Id="cmp475B44C5672AA8866893DEE6BA7D7ED1" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filA53F42A4214B7C9390E9228816B2C35F" KeyPath="yes" Source="$(var.ReleaseDir)\jami.ico" />
</Component>
<Component Id="cmp5305EA43A743E27D1937F4B78BD4161D" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filC095BF8491486ED2C60A86451FC1704A" KeyPath="yes" Source="$(var.ReleaseDir)\libeay32.dll" />
</Component>
<Component Id="cmp363F691415DD37B081CFC985FD89E1ED" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filE4A8517FAA43FB8132ED89D5B5EB797C" KeyPath="yes" Source="$(var.ReleaseDir)\libEGL.dll" />
</Component>
<Component Id="cmp8A64E7CE3EE5BD2D11823B3C59FDDE7C" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil65C8C2AF07D3CA4AE7D7A2844A4D914E" KeyPath="yes" Source="$(var.ReleaseDir)\libGLESv2.dll" />
</Component>
<Component Id="cmp1349A3A7B89410051DCA3842795982E1" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil99A7B83ABC540978B1363CAE428AA5EC" KeyPath="yes" Source="$(var.ReleaseDir)\License.rtf" />
</Component>
<Component Id="cmp31149127A8D559E47A8412500CDB93C1" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil388A71944B6369AB5D5428137DFB5520" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Core.dll" />
</Component>
<Component Id="cmpD4E52BD163861D1696633E739938CAB2" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil9A5E6DFFEBA29C9841B357D815ED5661" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Gui.dll" />
</Component>
<Component Id="cmp3592BD10E2CD4F1F2E37A416F0C7C420" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil43CD6E238903BF44E4468AD398C449C2" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Multimedia.dll" />
</Component>
<Component Id="cmpE847527393045E39F90D9C09DAC67457" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filA28ED7829F4325F0273C10B85B6035B9" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5MultimediaWidgets.dll" />
</Component>
<Component Id="cmpCBE98F9FD89C8F118FBAA62F96FAD058" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filA8DBE181741601EDA88DDD2DF88922FF" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Network.dll" />
</Component>
<Component Id="cmp26C47E7608E156A3B19569AC948A192E" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil6A61C9520707EF44B49432BD19BC9039" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5OpenGL.dll" />
</Component>
<Component Id="cmp132447CFD89BBA4372D5BEFA5F8AAE23" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil49043AE9069A60CAD0924CB43602366B" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Positioning.dll" />
</Component>
<Component Id="cmp9B336C9C2D11E977F4D90C865B4B6000" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil56DF0F398893E7C4160149711A709C5D" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5PrintSupport.dll" />
</Component>
<Component Id="cmpD88D50645CEEC7E0EEAAF33C365EE9CC" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filB46539D52C976046A6901918C6C5A5DD" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Qml.dll" />
</Component>
<Component Id="cmpD7C4174900152FDB7067354F762787CB" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil01EFAE549CBFD7F63CE42DAB660ADAC1" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Quick.dll" />
</Component>
<Component Id="cmp5B4D450E74D5685B10B5079A03F711D6" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filF861962A22353A343F8FF154A477D54E" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5QuickWidgets.dll" />
</Component>
<Component Id="cmp1F542BC8D5D7C757D2C8BCE0DD94AD31" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil8226117DC6D5CC77A7264993472F5AB0" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Sql.dll" />
</Component>
<Component Id="cmpAE841C8195F43246787C9E4E5D217176" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil41B3C4D018B27DB945274E6CF9EDA0F7" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Svg.dll" />
</Component>
<Component Id="cmp37D0B1C7D07C4394262EB8AA0E0430BB" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil10A9F38C1B014500B6C14E0D30CF3BB3" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5WebChannel.dll" />
</Component>
<Component Id="cmpB34A4FC1461F650BE31D9FEB5B5DD53D" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil3A07C115AD5DE25897727388594FA483" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5WebEngine.dll" />
</Component>
<Component Id="cmp871EC3FADA053F66605BA9394A415B7D" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil356AA8C00CC084594E653812965782CD" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5WebEngineCore.dll" />
</Component>
<Component Id="cmp12478D09CF35C19C8F5478E57CA9879A" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil5CBA4CD14DFC4B789412B05AAB849540" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5WebEngineWidgets.dll" />
</Component>
<Component Id="cmpFDF139B06EE6566BF84B5869FC85B426" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filB90F43F2D685AA4EB9010FB81C1EF27C" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Widgets.dll" />
</Component>
<Component Id="cmp0F58238051ED942D4D3859698C5D2B47" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil5DF0712628327EAAAFA1D1232DF07101" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5WinExtras.dll" />
</Component>
<Component Id="cmpEA85DF8E84CD8A6B076858A2C6812805" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filD2547DDFEB7189D65D01B726ECB939C2" KeyPath="yes" Source="$(var.ReleaseDir)\Qt5Xml.dll" />
</Component>
<Component Id="cmp63A52F5A47293F175104D8ECC9694BB7" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil156A2FE6B6FABA1B026CAD632EB08D29" KeyPath="yes" Source="$(var.ReleaseDir)\QtWebEngineProcess.exe" />
</Component>
<Component Id="cmpC62287732736BF56B50AFA5C5999B271" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filA03BB44276F0A77F02C9C79E0847368D" KeyPath="yes" Source="$(var.ReleaseDir)\qtwebengine_resources.pak" />
</Component>
<Component Id="cmp9F354DE030A171E73E91E04DB9E5E903" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="filA82DF4B19380200061F5DB4C0C32D6B5" KeyPath="yes" Source="$(var.ReleaseDir)\qtwebengine_resources_100p.pak" />
</Component>
<Component Id="cmpFEB699F8CA7C2A48B56562583CE7C97B" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil1FB5FBEDB11B5A0044B8B29EC0F546BF" KeyPath="yes" Source="$(var.ReleaseDir)\qtwebengine_resources_200p.pak" />
</Component>
<Component Id="cmpC2C70BB31476FAF8E71FDC8B1E036204" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil3FA2FA76E667D1561CD336D35BD3AF24" KeyPath="yes" Source="$(var.ReleaseDir)\ssleay32.dll" />
</Component>
<Component Id="cmp0E71904B3EDBAE24E1A31017CDD6DAF0" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil86A69C988BBDEBEFF4B83BA75330AAE9" KeyPath="yes" Source="$(var.ReleaseDir)\swresample-3.dll" />
</Component>
<Component Id="cmpF0B5FD817150488EB9ACF9EFDE0EBD56" Directory="APPLICATIONFOLDER" Guid="*" Win64="yes">
<File Id="fil40E5A8E132500B03BAD6B19B7B30958B" KeyPath="yes" Source="$(var.ReleaseDir)\swscale-5.dll" />
</Component>
<Component Id="cmp5039B4AD5D8C909EA17EA732417A9C05" Directory="dirCFD5DCDF1CAB22CF8B4B7E1E01E79D36" Guid="*" Win64="yes">
<File Id="fil62B8A9B874DF63AF7B042EA31508DB37" KeyPath="yes" Source="$(var.ReleaseDir)\imageformats\qgif.dll" />
</Component>
<Component Id="cmpA0EF29ADE625F5F0AF74857F24490FAA" Directory="dirCFD5DCDF1CAB22CF8B4B7E1E01E79D36" Guid="*" Win64="yes">
<File Id="fil23BAD857F9821D47B99B0E5A5970605D" KeyPath="yes" Source="$(var.ReleaseDir)\imageformats\qico.dll" />
</Component>
<Component Id="cmpB0C5211DA6E53C209721B2356D26D8DF" Directory="dirCFD5DCDF1CAB22CF8B4B7E1E01E79D36" Guid="*" Win64="yes">
<File Id="fil13CC9E600BAF85CDCC2C53A86DBF115F" KeyPath="yes" Source="$(var.ReleaseDir)\imageformats\qjpeg.dll" />
</Component>
<Component Id="cmpF5B60B50089C330D8DB07C2E94148BCA" Directory="dirCFD5DCDF1CAB22CF8B4B7E1E01E79D36" Guid="*" Win64="yes">
<File Id="filE22D27FB377D1334F37D5F798DDA6681" KeyPath="yes" Source="$(var.ReleaseDir)\imageformats\qsvg.dll" />
</Component>
<Component Id="cmp3E80143A725EE7380FA78AA9E8BD2283" Directory="dir908DFC228501FBE723FC009E659CB04F" Guid="*" Win64="yes">
<File Id="fil702C83C4DEF82CE8980ED1100FE61CE2" KeyPath="yes" Source="$(var.ReleaseDir)\platforms\qwindows.dll" />
</Component>
<Component Id="cmp84792556F8AE67E56EDFF3DEB8934D78" Directory="dir6BEF5EA0D72E144566D3B5034E8EBD40" Guid="*" Win64="yes">
<File Id="fil1520DA6D55EDA40C2449BC9C60B3F477" KeyPath="yes" Source="$(var.ReleaseDir)\ringtones\default.wav" />
</Component>
<Component Id="cmp84792556F8AE67E56EDFF3DEB8934D79" Directory="dir6BEF5EA0D72E144566D3B5034E8EBD40" Guid="*" Win64="yes">
<File Id="fil1520DA6D55EDA40C2449BC9C60B3F478" KeyPath="yes" Source="$(var.ReleaseDir)\ringtones\default.opus" />
</Component>
<Component Id="cmp5CCC1EB5F82E4ADDD432CC31BFAF1B45" Directory="dir6BEF5EA0D72E144566D3B5034E8EBD40" Guid="*" Win64="yes">
<File Id="fil6AA759A6B6A1CAFE29AF2BA0270CFE61" KeyPath="yes" Source="$(var.ReleaseDir)\ringtones\konga.ul" />
</Component>
<Component Id="cmp282CECBB021AB0A3C417607039EC39E0" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil0EEFA2272BA149C720BA4ED7A79CA075" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ar.qm" />
</Component>
<Component Id="cmpE4961D1752C81D53AF82360294170ED6" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil6F29EF63C557A8AC1ACFDD75749BBFC8" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_bg.qm" />
</Component>
<Component Id="cmp6B2890B291740C40ED16623DAFD7BFC2" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil3268DFF93AF08ABF2BE526F57B934AF2" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ca.qm" />
</Component>
<Component Id="cmp80313146F4A7FDD7BCF43F53DFB30BBE" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filDC66A2B76AB2FA0288C83D0DF0F9822C" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_cs_CZ.qm" />
</Component>
<Component Id="cmp504FBEB15A1D78CBBE281B8AAC465E0C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil448FC5CF5BD5B095E780FBF52B280C34" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_da.qm" />
</Component>
<Component Id="cmpEDA4D13A33C3B317B0845EFDA0C2B34A" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil4C4952165A5EA9A58F284803BFF6B64D" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_da_DK.qm" />
</Component>
<Component Id="cmp8E7DD401DFDAD9887D3A5CCFBDC6B6FD" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil12B4DA68EC3FD41FC9E8D8A930DEC355" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_de.qm" />
</Component>
<Component Id="cmp4492CDAC3839B87661AE3BDFD3953A13" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil003FA4AB2F05F2FAEADB38A2137AC80F" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_de_DE.qm" />
</Component>
<Component Id="cmp19A5A9F87CAEF7B820D26456EFC75F26" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filCE695E071875B77E82064F1EDAD778AF" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_el.qm" />
</Component>
<Component Id="cmp8C24BDA76A4B52AB88A5FE8AE229B26D" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filB31C08A36D51ED5B34CD308C18FBD8FE" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_en.qm" />
</Component>
<Component Id="cmp20A52D60F62C4E15DAAB8B6F29127317" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil2906806FBE015DA26D22F368BBCC8C31" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_en_GB.qm" />
</Component>
<Component Id="cmpC6D4ADD3FDCC6F04B8899837204A245B" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil8000A8111821A57FEC59289608A8C8AC" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_eo.qm" />
</Component>
<Component Id="cmpFDB4379150A56859441BBF64ED81485D" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil74A7014221A5EF882E19958010C0193C" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_es.qm" />
</Component>
<Component Id="cmpD07719CF76297931697DF82B76B8D41C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil278ABEAB59182CFB8EFBFCC8C8B091B3" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_es_AR.qm" />
</Component>
<Component Id="cmp9CCCFE942B4871217C857E50C346B837" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil58D69A783C6AFE55E2C57859CD3C2947" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_et_EE.qm" />
</Component>
<Component Id="cmp79E8AF8C2531A90EC77A213EE3AA4DEB" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil3C29BE6DC265375A7511E80E1652D6AD" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_eu.qm" />
</Component>
<Component Id="cmp928E1007358E959C1DA52E68F60F19E8" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil248FF59DDB131F40BF34771ED124CD6C" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fa_IR.qm" />
</Component>
<Component Id="cmpC536B9F14AC797BC541477EA4935566D" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filE3178FC6B88A6FA8201518866B4B4AEA" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fi.qm" />
</Component>
<Component Id="cmp4B0D13292A81BB83519C254107206F19" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil5DE5E27F7D9B4A27FB4384EE7868BE06" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fr.qm" />
</Component>
<Component Id="cmpD8EF700B56BF30FE0E313290D1814768" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filBF82C4B323015983AF34D2EFBCA08C93" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fr_CA.qm" />
</Component>
<Component Id="cmp4630DEFD6D7A5397BD0D5C2DA77D17AC" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil31E9CFCA419DD848D45CD2B75971FC85" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fr_CH.qm" />
</Component>
<Component Id="cmp33AFAFD04DC97437FA7F844F940BA2B5" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil312024878DB9FF700C7FC80E6C5A9E81" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_fr_FR.qm" />
</Component>
<Component Id="cmp1874892C72F9C219487B2EA6D2FED117" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil059F0E57F1D45D9D38301C1F27A30EB3" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_he.qm" />
</Component>
<Component Id="cmpD14B687554EECE7DEEADC48420CC3A6C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil0854F851958419F756ECDB203745D14B" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_hi_IN.qm" />
</Component>
<Component Id="cmpD536C0C062C6FCB355ADD1BF9992BD1C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filA0FEFEA427E1EEF8EE7BA289570D244B" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_hr.qm" />
</Component>
<Component Id="cmpCBCF66BEECB323613908BDBE9EE181BC" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil4DEE0FFD9CE234C696F8F7C310071C53" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_hu.qm" />
</Component>
<Component Id="cmp73325164C76B0FABB5A6A7B8F5B9D034" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil66BCC3150960E258271E3E21184197E2" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_id.qm" />
</Component>
<Component Id="cmpFEB7320148EB0C19850608FE25A01F9C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filAD1A7600BFDAE8CAF7AC450EBC0936B0" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_it.qm" />
</Component>
<Component Id="cmp1A8EFFDB39AA77D81304E301865B9C9A" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filD29B5106518AF7E6BF1EDB70636A954D" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_it_IT.qm" />
</Component>
<Component Id="cmp96E50FFD6F368BE3BDDF437DB2F38529" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil4DDA6539BC03BA7AA1FAAC88D8F16C59" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ja.qm" />
</Component>
<Component Id="cmp6A84212955A50D1CB27E440F848E2483" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil94A9F9B22CB24910967D0A2A6E146EDF" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ko_KR.qm" />
</Component>
<Component Id="cmp3D01F289F5EBAC8FF429990D9617CA52" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filCBC4FC5B22AFC48F280C3B5D9F1FEC8A" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_lt.qm" />
</Component>
<Component Id="cmpC9D06F5A92B392B12DF32F6AEFC0216E" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil2034211723EA2B8701C6FCD2A237307B" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ms.qm" />
</Component>
<Component Id="cmp218DF282D70F07985AF2787B0EB074D3" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil79E1F0D54CCEE5425E4F5FCDD1686D35" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_nb.qm" />
</Component>
<Component Id="cmp282281F51ECBAB33FC9E14519FA2D13A" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filCE87F757A8B00B2C7D76D18F0BE3B9D4" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_nl.qm" />
</Component>
<Component Id="cmp1A68C3A103ABC6CC89913AE57AD35474" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil0C158D23BCF8F38B408C047C3E40F0DF" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_nl_BE.qm" />
</Component>
<Component Id="cmpFCFD717F7912487EA8AE4B58C5BFCA0E" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filB5DCD598E0705F48D864C0FE016C4EF0" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_nl_NL.qm" />
</Component>
<Component Id="cmp0942D40325FA688E963348C65D86B4E0" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filE34D140B23987B189D37E84429EE3BF7" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_pa.qm" />
</Component>
<Component Id="cmp64437A1DC4EE73D29850DBCB1058C42A" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil1D852ADE79369037DBB5DAC53F01D8F5" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_pl.qm" />
</Component>
<Component Id="cmp6BBA455BEE546705A30256FB6021C849" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil114B0FA9D485CB2988E7E544C6CEAA56" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_pt.qm" />
</Component>
<Component Id="cmp0F90C34ADB4A52E889AEAB308C3435D7" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil40522E683EA412A80CBC9776B7F5C8DD" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_pt_BR.qm" />
</Component>
<Component Id="cmp44561C3B9250A1D6420A2BE0DF4D4317" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil0799A914DF31738A9FA3DC3A8CB48D24" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_pt_PT.qm" />
</Component>
<Component Id="cmp473BD249BDCA03BC67D52FA5D87229C3" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filF208466317923D94BF006C47548AD4F7" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ro.qm" />
</Component>
<Component Id="cmp4DDB585E3F0DC1F0F8597091247B0C8C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil668D3BAC81A22D4450E90CC2D793BE6B" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ru.qm" />
</Component>
<Component Id="cmp32AB08891FA4B6928DA108ED7FEA384C" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filD1C3FB5739A9A5501908C185447FCA04" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_ru_RU.qm" />
</Component>
<Component Id="cmpAF5ADDE54D9AD1C5F4A60950D0127860" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil706F6A1BD8A412A7E7E40FE95DBBC088" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_sk_SK.qm" />
</Component>
<Component Id="cmpE44A66FA431B77F474077F7C5D28E045" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil39FC3055F8CD57D0D54729E0983B1523" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_sl.qm" />
</Component>
<Component Id="cmpCED94EC537D51CF50F283AF2DB12C8BC" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filD3948F393C841615DF3EFABCF02C49F1" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_sq_AL.qm" />
</Component>
<Component Id="cmpDD574529111021C8271B717AB5AE4CCF" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil6273E5FC4644168AC330DDCDF1016F90" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_sv.qm" />
</Component>
<Component Id="cmpEF693CDD30DD18B9AAA437A3AA6EFFF4" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filA015916F147814A2786F10347E758835" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_tr.qm" />
</Component>
<Component Id="cmp5EB8C374F56EA6719B27E6130A2BC225" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil3DB402E759655AA9259A63453B68764B" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_uk.qm" />
</Component>
<Component Id="cmpC8112C91F73708075A37753970F60746" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="filCC99EDAB6CE337DE1FB7EB1E1DDE28CF" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_zh.qm" />
</Component>
<Component Id="cmp74155C8FE940B1A32D42CA2CF8D78D64" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil213D978DC6F3C7A0C9C6F8E8698464C9" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_zh_CN.qm" />
</Component>
<Component Id="cmp628FFEB683796CBA64DC3A7F0E5B4905" Directory="dir6F93A1A3A62B19C02CBF9547434EA16F" Guid="*" Win64="yes">
<File Id="fil48AD810830B5FFEB33BFB573D6E4C8D5" KeyPath="yes" Source="$(var.ReleaseDir)\share\libringclient\translations\lrc_zh_TW.qm" />
</Component>
<Component Id="cmp503B817423FBDF7DC8A75EC64634D393" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filD7BA00DD8A5C09C1CD3AA4EC08B46F20" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows.qm" />
</Component>
<Component Id="cmp0C7FA57220E8E635E759323C8113EA0C" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil0F73F9D732351F8B9A6C06F065BB89AE" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ar.qm" />
</Component>
<Component Id="cmp9D871A033C213176E730FAD6F7D46BF8" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil467728CB2952FB1083E7F0E8A4EDC572" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_bg.qm" />
</Component>
<Component Id="cmpD5FAD14AB0A5C9C5CAEA3E0A6B430196" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil47F4BF3EC52C015CE735A0EADC23E463" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ca.qm" />
</Component>
<Component Id="cmpCB75F214C7C64A4657F942A5BB1EDE37" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil0B9DD763B289D95DEB32CD1A6DE2B1BD" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_cs_CZ.qm" />
</Component>
<Component Id="cmp2F8AC52F1F6BD5150FB38ED802EB79D2" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filFBC0A15D183523906C4D1C2BED03D30D" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_da.qm" />
</Component>
<Component Id="cmp3106411034128C49E36555559417638C" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil0801355B6121CAC8A686C785255D1E69" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_da_DK.qm" />
</Component>
<Component Id="cmp36DDC27CE6CC9BA4E9DC0AC4D5C647E2" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil12B3DB85F12959244EB3733C0D9DB528" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_de.qm" />
</Component>
<Component Id="cmpE14CB4D257D0E5E97BCCDC968409C6DB" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil7843BB4A2356054B93088C4328EA813B" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_de_DE.qm" />
</Component>
<Component Id="cmp92007DD837DE3A9EF6BB65542F379A03" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil96D143A8FEB282BE9BF740E8B42536C3" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_el.qm" />
</Component>
<Component Id="cmp1F0B0FC8F0FB0863A0ACBAB727BEB6A7" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil639AE1BC1FC30FE25F5362D932015BCB" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_en_GB.qm" />
</Component>
<Component Id="cmpD62ECFA6E2574CF6E334FAC20B10F207" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filE2109BDB52401E61FE8CD19D260DB3A9" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_eo.qm" />
</Component>
<Component Id="cmpDE3F21A97F986B02F4FC2B2389EAEDE5" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filD17BC65DD9E24C8CB520508B10500DE4" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_es.qm" />
</Component>
<Component Id="cmpB61A8826CD325B29D1708912C7E5FF4D" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filE8FC1AB0EA4AF039A70CC612E0BF6A25" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_es_AR.qm" />
</Component>
<Component Id="cmp6E61BBD66C5D67A43ADCCE8FFCAC0F48" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil299A8D9AC9F94072AA51392EC6FF4EC2" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_et_EE.qm" />
</Component>
<Component Id="cmpC83555049B7B22927F767F7C38170B27" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filCB1368B1F0FB618DDBC36077B8813948" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_eu.qm" />
</Component>
<Component Id="cmpED08C735E0A18600C77452B5413D6AF3" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil9A98867F4DB785DA349784DF389FD68C" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_fa_IR.qm" />
</Component>
<Component Id="cmpE6FDB607D50C38C19C99F42F3B5A2376" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filD43367B389830E286401F2AB41574499" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_fi.qm" />
</Component>
<Component Id="cmp891708AB91FD297ACED67FD520518B39" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filDBE345C2036A12713CA4E6370E778FD0" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_fr.qm" />
</Component>
<Component Id="cmpF74EBAAECF5883259196557FB7A40E95" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil2D3ED6B35928C481BB0081C3961582A5" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_fr_CA.qm" />
</Component>
<Component Id="cmp0BCAE2FE458A62E0C5BEC2F742D67E6A" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filCF6D22476522F6CD69CC58B8D189CF4E" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_fr_FR.qm" />
</Component>
<Component Id="cmpFF7F5E35FF21E46C9374A13050AE0A59" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filBB62CE25302A5A8E0F81D5C025B89460" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_he.qm" />
</Component>
<Component Id="cmp19E17A877CBB21E5A8120AD8B8C91744" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil04519BD7F137E4CFE68495206CE0031F" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_hi_IN.qm" />
</Component>
<Component Id="cmp28535EE3F00944B2DFB0C398F38EE429" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil431389DB20F5701DD0CBF56DF1E598A6" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_hr.qm" />
</Component>
<Component Id="cmp54227DB515AB84EEEF6D07CFD26B39E7" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filF011F85FF6BD16DD4B9E3247627CDEC8" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_hu.qm" />
</Component>
<Component Id="cmpF5AC7DE763516743A03E5BF7C263BC5D" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil15CA67D8EA300F3FBDBCE523039007F9" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_id.qm" />
</Component>
<Component Id="cmpBCBC5498E53336151E837E4112283034" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filF3408F456330C908090860C1CC5FDEEC" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_it.qm" />
</Component>
<Component Id="cmpAD329F9D61F9751C09A59D3853D9BD1B" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filF7812CCA0333AD872E9EBC32CBDA0051" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_it_IT.qm" />
</Component>
<Component Id="cmp5D4458C25A5D570D58D9AF8CAD885735" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filB36EF74277EC680250D6046F6A38EA7F" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ja.qm" />
</Component>
<Component Id="cmp4F3B21BC2F1550F5A1E93392148D4147" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil8DD2316A7B1C4D83F1DD631245240787" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ko_KR.qm" />
</Component>
<Component Id="cmp368EF01998D273384BAA2F9C5D1B59E6" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filB3288F7A9CE0F3FB52BB6ECC42BB9F37" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_lt.qm" />
</Component>
<Component Id="cmpE0FF30F60FE6C079BF585D3CEA0114BD" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil9A1E430F8884B1268FD2CEA0D4212710" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ms.qm" />
</Component>
<Component Id="cmpBC8C9A3BD688CCA543B92ACDFF2DE498" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filDB3CBA0E8D593176926BDE70CFF30D46" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_nb.qm" />
</Component>
<Component Id="cmpCABE04D8734802A65E2819F1BCA6A9FF" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil8CDC341521FE5AE3DB447BDCF551D1FD" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_nl.qm" />
</Component>
<Component Id="cmp660973DFAE1BA03643B1D500E9F393DD" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filDB348FF8C3FBB97AEC27477BA0AE0EAF" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_nl_BE.qm" />
</Component>
<Component Id="cmp4BF9EC314F2D98D4EC68E1442554BC91" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil21996D26FB334713C76ABA41369B4C7C" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_nl_NL.qm" />
</Component>
<Component Id="cmpD0A24E2333D679D1B705B2BA2409F823" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filB69A01E8BAD0AB9FA59DE91F459FC839" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_pa.qm" />
</Component>
<Component Id="cmpBBEC9CAD969751A2EB24C1C7D2ED96DA" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil752DB00DADF6ED66274217DA3C2CF76C" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_pl.qm" />
</Component>
<Component Id="cmpE0FEFE56B36D2F9900372DA18AD9734D" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil5BC2AF9E39B32B44948A7A41BAF345E0" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_pt.qm" />
</Component>
<Component Id="cmp19884FE22854C91849E5DC451D31EC11" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filF7E102426B52FF45DA75B5A2C2917931" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_pt_BR.qm" />
</Component>
<Component Id="cmpEE8326E9B07EAF25A23317BEE54AB95D" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filE5BC5ABCBCEFF811BD9B61013117CED8" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_pt_PT.qm" />
</Component>
<Component Id="cmp27DE7C4FCEBF7BECC56E43188D8F7418" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filFC13EF3FDFB42B8FD2811820A7E1D65D" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ro.qm" />
</Component>
<Component Id="cmpCC6223EEC7E8D51D93968E5FD46CF454" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil2B47576AF8EAFDC73F312BEE86211CC8" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ru.qm" />
</Component>
<Component Id="cmp51A913000704DF62F053747E0DB047C1" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil9EA89DDC9726C130764D4B05DADE2ED4" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_ru_RU.qm" />
</Component>
<Component Id="cmpB27580941C9EDA75F739AAF55BB3344F" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil7B5605A1E49D6716E4AFB4910EB24B3A" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_sk_SK.qm" />
</Component>
<Component Id="cmp4F59AA560906165698D454F19A1609A4" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil29147E679F942236BF3C86C1240F2089" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_sl.qm" />
</Component>
<Component Id="cmp8D25CE638EE82CFB10C635AF8F355BED" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil226D0656424C1A8B0BBB517C85F16CB0" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_sq_AL.qm" />
</Component>
<Component Id="cmpD0A1B53E98F352C1F08149E13053CB89" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil446CB074267AFA5F5426B92325D61280" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_sv.qm" />
</Component>
<Component Id="cmp213C4EC775EA34D7CD087F0B65A9E7F1" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil8EC7BF6D5A6E98326A86BED76A0CADAB" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_tr.qm" />
</Component>
<Component Id="cmp430499AE8276A746CEF24EB1E0CC1A23" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filA69BD4B9F3A0AABA05F694231A03E484" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_uk.qm" />
</Component>
<Component Id="cmpEEB6EED8C3BBA3B94DCD7A2CEDB17ABE" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil2DA6C3CCE7784D534A183E34E04B9810" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_zh.qm" />
</Component>
<Component Id="cmpD33DA63F94A0397C6073B7E23F7849E2" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="filE9D8D2C165D4B65F7A822CEC1EBDA136" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_zh_CN.qm" />
</Component>
<Component Id="cmpC6AC64F49A6A2605822D2E25306EDD4D" Directory="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Guid="*" Win64="yes">
<File Id="fil02FC161441CBF1BBB4167B701770C6B0" KeyPath="yes" Source="$(var.ReleaseDir)\share\ring\translations\ring_client_windows_zh_TW.qm" />
</Component>
<Component Id="cmpA1B072A3F5973EDB840EE2C55B536ABC" Directory="dir4AD0B3BC5E5530AF4A888ED31F98A3AB" Guid="*" Win64="yes">
<File Id="fil496D906F2E0EED544EF0590DC0C01E38" KeyPath="yes" Source="$(var.ReleaseDir)\sqldrivers\qsqlite.dll" />
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="dir2B882A2C0828718F11D164F0487238A7">
<Directory Id="dir5AA3A44E12BE285CC8CA0EFB70CEAA2A" Name="ring" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirF91ED4317D7EB2BB4152FBEC7D7BEC8B">
<Directory Id="dir6F93A1A3A62B19C02CBF9547434EA16F" Name="translations" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir5AA3A44E12BE285CC8CA0EFB70CEAA2A">
<Directory Id="dir7DFB5C82C3D80E5487E243AD8C4D4DB2" Name="translations" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dir2B882A2C0828718F11D164F0487238A7">
<Directory Id="dirF91ED4317D7EB2BB4152FBEC7D7BEC8B" Name="libringclient" />
</DirectoryRef>
</Fragment>
</Wix>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?if $(var.Configuration) = Release ?>
<?define Name="Jami" ?>
<?define Manufacturer="Savoir-Faire Linux"?>
<?else?>
<?define Name="Jami (BETA)" ?>
<?endif ?>
<?if $(var.Configuration) = Release ?>
<?define ReleaseDir="..\x64\Release"?>
<?else?>
<?define ReleaseDir="..\x64\Beta"?>
<?endif ?>
<?define AppName="Jami" ?>
<?define Manufacturer="Savoir-Faire Linux"?>
<?define UcrtDir="C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64"?>
</Include>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<xsl:output method="xml" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:key name="service-search" match="wix:Component[contains(wix:File/@Source, 'Jami.exe')]" use="@Id" />
<xsl:key name="vc-service-search" match="wix:Component[contains(wix:File/@Source, 'vcredist_x64.exe')]" use="@Id" />
<xsl:key name="pdb-search" match="wix:Component[contains(wix:File/@Source, '.pdb')]" use="@Id" />
<xsl:key name="lib-search" match="wix:Component[contains(wix:File/@Source, 'Jami.lib')]" use="@Id" />
<xsl:key name="exp-search" match="wix:Component[contains(wix:File/@Source, 'Jami.exp')]" use="@Id" />
<xsl:key name="qmake-search" match="wix:Component[contains(wix:File/@Source, 'qmake')]" use="@Id" />
<xsl:key name="obj-search" match="wix:Component[contains(wix:File/@Source, '.obj')]" use="@Id" />
<xsl:key name="tlog-search" match="wix:Component[contains(wix:File/@Source, '.tlog')]" use="@Id" />
<xsl:key name="log-search" match="wix:Component[contains(wix:File/@Source, '.log')]" use="@Id" />
<xsl:template match="wix:Component[key('service-search', @Id)]" />
<xsl:template match="wix:Component[key('vc-service-search', @Id)]" />
<xsl:template match="wix:Component[key('pdb-search', @Id)]" />
<xsl:template match="wix:Component[key('lib-search', @Id)]" />
<xsl:template match="wix:Component[key('exp-search', @Id)]" />
<xsl:template match="wix:Component[key('qmake-search', @Id)]" />
<xsl:template match="wix:Component[key('obj-search', @Id)]" />
<xsl:template match="wix:Component[key('tlog-search', @Id)]" />
<xsl:template match="wix:Component[key('log-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('service-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('vc-service-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('pdb-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('lib-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('exp-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('qmake-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('obj-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('tlog-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('log-search', @Id)]" />
</xsl:stylesheet>
\ No newline at end of file
......@@ -6,33 +6,41 @@
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>dbbfbc55-1c20-4d21-ae3b-6e8b14c4fe48</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Jami</OutputName>
<OutputName Condition="'$(Configuration)' == 'Release'">jami.release.$(Platform)</OutputName>
<OutputName Condition="'$(Configuration)' == 'Beta'">jami.beta.$(Platform)</OutputName>
<OutputType>Package</OutputType>
<Name>JamiInstaller</Name>
<InstallerPlatform>x64</InstallerPlatform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<DefineConstants>HarvestPath=..\x64\Release</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Beta|x64' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>
</DefineConstants>
<DefineConstants>HarvestPath=..\x64\Beta</DefineConstants>
<SuppressPdbOutput>True</SuppressPdbOutput>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<WixVariables>
</WixVariables>
</PropertyGroup>
<ItemGroup>
<Compile Include="Components.wxs" />
<Compile Include="Product.wxs" />
<Compile Include="StandardComponents.wxs" />
<Compile Include="Components.wxs" />
</ItemGroup>
<ItemGroup>
<Content Include="Config.wxi" />
<Content Include="HarvestFilter.xslt" />
<Content Include="JamiInstaller.wax" />
<Content Include="jamites.bmp" />
<Content Include="main-banner.bmp" />
<Content Include="top-banner.bmp" />
</ItemGroup>
......@@ -47,19 +55,16 @@
</WixExtension>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="BuildinChang.wxl" />
<EmbeddedResource Include="Localization.wxl" />
</ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
<HeatDirectory Directory="..\x64\$(Configuration)" PreprocessorVariable="var.HarvestPath" OutputFile="Components.wxs" ComponentGroupName="HeatGenerated" DirectoryRefId="APPLICATIONFOLDER" AutogenerateGuids="true" ToolPath="$(WixToolPath)" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" Transforms="HarvestFilter.xslt" />
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<WixLocalization Culture="en-us"
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="AdvancedWelcomeEulaDlgDescriptionPerMachine">By installing this software you agree to the terms in the license agreement</String>
<UI Dialog="ExitDialog" Control="OptionalCheckBox" Width="10" Height="10" X="135" Y="110" />
<UI Dialog="ExitDialog" Control="OptionalText" X="150" Y="110" />
......
......@@ -13,37 +13,23 @@
<Property Id="ARPNOMODIFY" Value="1" />
<Feature Id="ProductFeature" Title="Main" Level="1" Absent="disallow">
<ComponentGroupRef Id="ProductComponents" Primary="yes" />
<ComponentGroupRef Id="StandardComponents" Primary="yes" />
<ComponentGroupRef Id="HeatGenerated" />
<ComponentRef Id="ApplicationShortcutDesktop" />
<ComponentRef Id="ApplicationShortcutStartMenu" />
<ComponentRef Id="RegistryEntries" />
</Feature>
<!--Visual C++-->
<!--Visual C++ Redist merge module-->
<DirectoryRef Id="TARGETDIR">
<Merge Id="VCRedist" SourceFile="$(env.VCRedistMergeModule)" DiskId="1" Language="0" />
</DirectoryRef>
<Feature Id="VCRedist"
Title="Visual C++ Runtime"
AllowAdvertise="no"
Display="hidden"
Level="1">
<Feature Id="VCRedist" Title="Visual C++ Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<MergeRef Id="VCRedist"/>
</Feature>
<!--Find User Defined Installition Registry If User changes the Default Registry-->
<Property Id="APPLICATIONFOLDER" Secure="yes">
<RegistrySearch Id="FindInstallLocation"
Root="HKLM"
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[WIX_UPGRADE_DETECTED]"
Name="InstallLocation"
Type="raw"
Win64="yes" />
</Property>
<!--SetDirectory of APPLICATIONFOLDER -->
<SetDirectory
Id="APPLICATIONFOLDER"
Value="[ProgramFiles64Folder][ApplicationFolderName]">APPLICATIONFOLDER=""</SetDirectory>
<SetDirectory Id="APPLICATIONFOLDER" Value="[ProgramFiles64Folder][ApplicationFolderName]">APPLICATIONFOLDER=""</SetDirectory>
<SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]" After="CostFinalize" />
<UIRef Id="CustomUI" />
......@@ -52,10 +38,14 @@
<WixVariable Id="WixUIDialogBmp" Value="main-banner.bmp" />
<WixVariable Id="WixUISupportPerUser" Value="0" />
<CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER"
ExeCommand="cmd /c &quot;del vc_redist.x64.exe; del uninstall.exe;&quot;"
Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />
<CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER" ExeCommand="cmd /c &quot;del vc_redist.x64.exe; del uninstall.exe; del WinSparkle.dll;&quot;" Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />
<Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM QtWebEngineProcess.exe /IM Jami.exe'/>
<CustomAction Id="JamiProcesses.TaskKill"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="immediate"
Return="ignore"/>
</Product>
<Fragment Id="DirectoryStructure">
......@@ -67,14 +57,14 @@
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" />
</Directory>
<Directory Id="WindowsFolder" Name="WINDOWS"/>
</Directory>
</Fragment>
<Fragment Id="Shortcuts">
<DirectoryRef Id="DesktopFolder">
<Component Id="ApplicationShortcutDesktop" Guid="*" Win64="yes">
<Shortcut Id="ApplicationShortcutDesktop" Name="$(var.Name)" Description="Launch $(var.Name)"
Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<Shortcut Id="ApplicationShortcutDesktop" Name="$(var.Name)" Description="Launch $(var.Name)" Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="DesktopFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.Name)" Name="desktop" Type="integer" Value="1" KeyPath="yes" />
</Component>
......@@ -82,12 +72,17 @@
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcutStartMenu" Guid="*" Win64="yes">
<Shortcut Id="ApplicationShortcutStartMenu" Name="$(var.Name)" Description="Launch $(var.Name)"
Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<Shortcut Id="ApplicationShortcutStartMenu" Name="$(var.Name)" Description="Launch $(var.Name)" Target="[#fileMain.exe]" WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="StartMenuFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.Name)" Name="startmenu" Type="integer" Value="1" KeyPath="yes" />
<RemoveRegistryKey Id='removeBadShortcutRegKey' Root='HKLM' Key='Software/$(var.Name)' Action='removeOnInstall'/>
<RemoveRegistryKey Id='removeOldUninstRegKey' Root='HKLM' Key='SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\$(var.Manufacturer) $(var.Name)' Action='removeOnInstall'/>
</Component>
</DirectoryRef>
</Fragment>
<Fragment Id="OtherRegistryEntries">
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntries" Guid="*" Win64="yes">
<RegistryValue Root="HKCU" Key="Software\jami.net\$(var.AppName)" Name="hasRun" Type="integer" Value="0" KeyPath="yes" />
</Component>
</DirectoryRef>
</Fragment>
......@@ -97,7 +92,7 @@
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<!--APPLICATIONFOLDER required by WixUI_Advanced, ApplicationFolderName reset APPLICATIONFOLDER path-->
<Property Id="ApplicationFolderName" Value="$(var.Manufacturer)\$(var.Name)" />
<Property Id="ApplicationFolderName" Value="$(var.Manufacturer)\$(var.AppName)" />
<UIRef Id="WixUI_Advanced" />
<!--Remove User Exit Dialog-->
......@@ -107,7 +102,7 @@
<Publish Dialog="MaintenanceWelcomeDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Cancel" Property="AbortInstall" Value="1">1</Publish>
<!--Launch Programme If Checkbos is clicked-->
<!--Launch Program If Checkbox is clicked-->
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<InstallUISequence>
......@@ -116,12 +111,13 @@
</InstallUISequence>
</UI>
<InstallExecuteSequence>
<Custom Action='JamiProcesses.TaskKill' Before='InstallValidate'/>
<Custom Action="removeOldJamiFiles" After="RemoveFiles" />
<Custom Action="LaunchApplication_nonUI" After="InstallFinalize"> WIXNONUILAUNCH </Custom>
<Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" />
</InstallExecuteSequence>
<!--Lisence check box text, Lanch check box text (auto check)-->
<!--License check box text, Launch check box text (auto check)-->
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Launch $(var.Name)" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.Name)" />
<!--CheckBox Default Set to One-->
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Generated with WiX's heat tool using the command:
heat.exe dir x64\Release -ag -cg ProductComponents -dr APPLICATIONFOLDER -srd -var var.ReleaseDir -out JamiInstaller\Components.wxs
Includes:
- the api-ms-win dlls missing parts of vc merge module for windows 7 support
- Jami.exe with a named Id so we can reference it in Product.wxs to launch after install
We run heat in the prebuild step on x64\Release without Jami.exe (instead of an XSLT file), to harvest everything else.
-->
<?include Config.wxi?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<ComponentGroup Id="StandardComponents">
<Component Id="cmp9C61F84AF9761955FBF397AFAE21C11B" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2089BEC9A7AB899CED5A5EE501789299" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l1-2-0.dll" />
</Component>
<Component Id="cmp03BB2697EE10869C4A329E3EA987EFAA" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil44C27F2C97596734BB3BEB7C21F7B71C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-file-l2-1-0.dll" />
</Component>
<Component Id="cmp6B6AA7AEA5A4D324A4EE7DAE1B1193E0" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1D16BE23D323A1E37FC1FC7354A9305F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-localization-l1-2-0.dll" />
</Component>
<Component Id="cmpB5454FB66442C9BFD2145AE30B32D7A9" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil031B78DF53F7A3AC109410907624FC3E" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-processthreads-l1-1-1.dll" />
</Component>
<Component Id="cmp9F6D22CD9B1739E4F75F92F3A07E4CA1" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE9A3672FA504AA8E518DD72A02CD3E77" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-synch-l1-2-0.dll" />
</Component>
<Component Id="cmp9451422B7074D46F019614C3DE73BD17" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil3C902CA2889BB8855D285C3FBABB334F" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-core-timezone-l1-1-0.dll" />
</Component>
<Component Id="cmp349250459EC2D8C328EED5138B073E7A" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil2466F3D9FBA095A007D0909040D4D688" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-conio-l1-1-0.dll" />
</Component>
<Component Id="cmpCC880F2B054A87EF5FC68232652231BF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil605A691486569535A1C3548F7DCE753C" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-convert-l1-1-0.dll" />
</Component>
<Component Id="cmpD6CB40D5A5AFF2161B7B4B4F06F03301" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil09AE032A32E2E542A232F7941AC77320" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-environment-l1-1-0.dll" />
</Component>
<Component Id="cmpC02538029646A27A9F786AD690EB3C8E" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil7DE9C3CADCA188356922B0CBD8E313E7" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-filesystem-l1-1-0.dll" />
</Component>
<Component Id="cmp8E50197B377636123F0F1F94FFB004E7" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil584F158D11B8A380C73F1EFE8BBA92B4" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-heap-l1-1-0.dll" />
</Component>
<Component Id="cmp7F729C94A363C73DC4D91B6F48E4F859" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil4BE19B924B98D56F3155B66496D574E5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-locale-l1-1-0.dll" />
</Component>
<Component Id="cmp7C573E66B0904BA73880788F7057AF88" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE8495C446FA1237E92562498D20261AA" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-math-l1-1-0.dll" />
</Component>
<Component Id="cmp7A91CED53D8F6E5F20F2049B3B5CD143" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil06951EB208628753677745AF15CC12A5" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-multibyte-l1-1-0.dll" />
</Component>
<Component Id="cmp1CE713C705A95306A1D246AC3AB9DE25" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil8D102BB81768F998470C34797459E306" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-private-l1-1-0.dll" />
</Component>
<Component Id="cmp35840DFBF4D6AE827AFC4EF2A17BB3EB" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filC6C457BD901F940DCB673D271728F9FE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-process-l1-1-0.dll" />
</Component>
<Component Id="cmpEBB86BDA48FE3B9E2043C1A80D26ACD5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filE1B2095225B01DEFA5DA9895B432FBCB" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-runtime-l1-1-0.dll" />
</Component>
<Component Id="cmp80C8534B553078EA8B86F100FF542776" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filDAFE58019AD70832B8304DCEA534B5EE" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-stdio-l1-1-0.dll" />
</Component>
<Component Id="cmpCFC348111B5343749A2273A62421C07C" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil1F1B38DB330CA413655F715578D4BE1A" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-string-l1-1-0.dll" />
</Component>
<Component Id="cmp7D5450E04EC419244107942A00DF7DDF" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filEB03BCF3155C5BAE2C2EDBF036EB659D" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-time-l1-1-0.dll" />
</Component>
<Component Id="cmp5456679BDCC818B2E9476B416F71AAA5" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fil5B120DD384CABED37DFC2652C6462666" KeyPath="yes" Source="$(var.UcrtDir)\api-ms-win-crt-utility-l1-1-0.dll" />
</Component>
<Component Id="cmpF23755F862A15FFCBD109C85599B7F20" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="filD6887AD9110E4A8D49143C9A8F0B5843" KeyPath="yes" Source="$(var.UcrtDir)\ucrtbase.dll" />
</Component>
<Component Id="cmp9CFEE34E3A162AB05264E8B756EC1DEC" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="fileMain.exe" KeyPath="yes" Source="$(var.ReleaseDir)\Jami.exe" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
\ No newline at end of file
JamiInstaller/jamites.bmp

25.4 KiB

......@@ -11,58 +11,178 @@ For more information about the jami project, see the following:
- Bug tracker: https://git.jami.net/
- Repositories: https://gerrit-ring.savoirfairelinux.com
## Requirements
## Building On Native Windows
---
- Jami client library and Jami daemon
- Mingw-w64 build environment
- Qt5 (we link against Qt5Core, Qt5Widgets, Qt5Gui) built with Mingw
- Qt5 Svg, Qt5 ImageFormats & Qt5 WinExtras built with Mingw
Only 64-bit MSVC build can be compiled.
## Get the source code
> Note: command ```./make-ring.py --init``` is not required on the Windows build <br>
- `git clone https://gerrit-ring.savoirfairelinux.com/ring-client-windows`
**Setup Before Building:**
- Download [Qt (Open Source)](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5)<br>
## Build instructions
| | Prebuild | Module |
|---|---|---|
| Components: | msvc2017_64 | Qt WebEngine |
**NOTE: The build process is currently under a full refactorization. This section will be updated soon**
- Download [Visual Studio](https://visualstudio.microsoft.com/) (version >= 2015) <br>
- Install Qt Vs Tools under extensions, and configure msvc2017_64 path under Qt Options <br>
## Windows
| | Qt Version | SDK | Toolset |
|---|---|---|---|
| Minimum requirement: | 5.9.4 | 10.0.16299.0 | V141 |
TBD
- Install [Python3](https://www.python.org/downloads/) for Windows
**Start Building**
- Using Command Prompt
```sh
git clone https://review.jami.net/ring-project
cd ring-project/
git submodule update --init daemon lrc client-windows
git submodule update --recursive --remote daemon lrc client-windows
```
- Using **Elevated Command Prompt**
```sh
python make-ring.py --dependencies
```
> Note:
> 1. This command will install **chocolatey** which may require you to restart the Command Prompt to be able to use it.
> 2. This command will install **msys2 (64 bit)** by using chocolatey command which may cause issues below: <br>
> a. Choco may require you to restart the Command Prompt after finishing installing msys2. <br>
> b. Only if you have already installed msys2 (64 bit) under the default installation folder, we will use the existing one.
> 3. This command will install **strawberry perl** by using chocolatey command which may fail if you have already installed it.
> 4. This command will install **cmake** by using chocolatey command which will not add cmake into PATH (environment variable). <br>
>
> The issue 1, 2(a), 3 can be solved by restarting the Command Prompt under Administrator right and re-run the command. <br>
> The issue 3 can be solved by uninstalling your current strawberry perl and re-run the command. <br>
> The issue 4 can be solved by adding the location of the cmake.exe into PATH. <br>
- Using a new **Non-Elevated Command Prompt**
```sh
python make-ring.py --install
```
- Then you should be able to use the Visual Studio Solution file in client-windows folder **(Configuration = Release, Platform = x64)**
> Note: <br>
> To control the toolset and the sdk version that are used by msbuild, you can use ```--toolset``` and ```--sdk``` options <br>
> To control which Qt version should be used (qmake, windeployqt), uou can use ```--qtver``` option <br>
> By default: ```toolset=v141```, ```sdk=10.0.16299.0```, ```qtver=5.9.4``` <br>
> For example:
```sh
python make-ring.py --install --toolset v142 --sdk 10.0.18362.0 --qtver 5.12.0
```
### Build Module individually
---
- Jami-qt also support building each module (daemon, lrc, jami-qt) seperately
**Daemon**
### Packaging
- Make sure that dependencies is built by make-ring.py
- On MSVC folder (ring-project\daemon\MSVC):
```sh
cmake -DCMAKE_CONFIGURATION_TYPES="ReleaseLib_win32" -DCMAKE_VS_PLATFORM_NAME="x64" -G "Visual Studio 16 2019" -A x64 -T '$(DefaultPlatformToolset)' ..
python winmake.py -b daemon
```
- This will generate a ```.lib``` file in the path of ring-project\daemon\MSVC\x64\ReleaseLib_win32\bin
> Note: each dependencies contrib for daemon can also be updated individually <br>
> For example:
```bash
python winmake.py -b opendht
```
**Lrc**
* Nsis : Nullsoft Scriptable Install System :http://nsis.sourceforge.net/Main_Page.
- Make sure that daemon is built first
```bash
cd lrc
python make-lrc.py -gb
```
cd build/release
makensis ring.nsi
**Jami-qt**
- Make sure that daemon, lrc are built first
```bash
cd client-windows
pandoc -f markdown -t html5 -o changelog.html changelog.md
python make-client.py -d
python make-client.py -b
powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1
```
**Note**
- For all python scripts, both ```--toolset``` and ```--sdk``` options are available.
- For more available options, run scripts with ```-h``` option.
- ```--qtver``` option is available on ```make-lrc.py``` and ```make-client.py```.
## Packaging On Native Windows
---
- To be able to generate a msi package, first download and install [Wixtoolset](https://wixtoolset.org/releases/).
- In Visual Studio, download WiX Toolset Visual Studio Extension.
- Build client-windows project first, then the JamiInstaller project, msi package should be stored in ring-project\client-windows\JamiInstaller\bin\Release
## Linux
---
> For now, this process is experimental.
- LibRing and LibRingClient
must be installed first. If you have not already done so, go to the
[\#How to Build LibRing (or
Daemon)](#How_to_Build_LibRing_(or_Daemon) "wikilink") and [\#How to
Build LibRingClient (or
LRC)](#How_to_Build_LibRingClient_(or_LRC) "wikilink") sections.
- Building the whole ring-project is recommended, however, lrc might need to be rebuilt with cmake option ```-DCMAKE_INSTALL_PREFIX=/usr```
#### Other Requirements
For now, this process is experimental. The best way to do that is:
- Qt 5.9.4 (qt open source)
- libqt5svg*, qtwebengine5-dev, qtmultimedia5-dev, qtdeclarative5-dev, pandoc
#### Getting the Source Code
1. Compile the daemon and LRC as specified in these projects (see the respective repositories or https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions).
2. Install needed dependencies (TBD):
+ For Fedora:
```bash
sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-multimedia-devel
git clone https://review.jami.net/ring-client-windows
```
3. If you are not using the `ring-project` repository, you have to define the `LRC` environment variable to contains the install directory for `LRC`. Also, you will have to setup `LD_LIBRARY_PATH` if your install directory is a custom one.
4. Then, build the client:
#### Build Instructions
**Windows Client dependencies**
- For Debian based:
```bash
sudo apt install qtmultimedia5-dev libqt5svg5* qtwebengine5-dev qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick* pandoc
```
- For Fedora:
```bash
sudo dnf install qt5-qtsvg-devel qt5-qtwebengine-devel qt5-qtmultimedia-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel pandoc
```
**Build Windows Client**
```bash
cd ring-client-windows
pandoc -f markdown -t html5 -o changelog.html changelog.md
mkdir build
cd build
qmake-qt5 ../jami-qt.pro
qmake -qt=qt5 ../jami-qt.pro
make -j9
```
- Then, you are finally ready to launch jami-qt in your build directory.
#### Debugging
5. Then, you are finally ready to launch `jami-qt` in your `build` directory.
Compile the client with `BUILD=Debug` and compile LibRingClient with
`-DCMAKE_BUILD_TYPE=Debug`
### Known issues
#### Known issues
1. The build system is not straight forward
2. Video doesn't work
......@@ -70,10 +190,5 @@ make -j 9
4. Crash if the daemon is not started and installed.
## Mac OS
---
TBD
## Debugging
Compile the client with 'BUILD=Debug' and libRingClient with '-DCMAKE_BUILD_TYPE=Debug'
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AccountDetails</class>
<widget class="QWidget" name="AccountDetails">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>847</width>
<height>760</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string/>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="gen_tab">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>General</string>
</attribute>
<attribute name="toolTip">
<string>General account info configuration</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea_2">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>829</width>
<height>912</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="accountLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Account</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="aliasLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Displayed name</string>
</property>
<property name="buddy">
<cstring>lrcfg_alias</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lrcfg_alias">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Displayed alias input</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="typeLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="typeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="paramLabel">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Parameters</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="hostnameLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Hostname</string>
</property>
<property name="buddy">
<cstring>lrcfg_hostname</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lrcfg_hostname">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Hostname URL for DHT bootstrap or SIP</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="registeredNameLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Public username</string>
</property>
<property name="buddy">
<cstring>lrcfg_registeredName</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QLineEdit" name="lrcfg_registeredName">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Public registered username</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="registerButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Register username on blockchain button</string>
</property>
<property name="text">
<string>Register on blockchain</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="nameServiceURLLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Name service URL</string>
</property>
<property name="buddy">
<cstring>lrcfg_nameServiceURL</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lrcfg_nameServiceURL">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Nameservice URL input</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="usernameLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Username</string>
</property>
<property name="buddy">
<cstring>lrcfg_username</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lrcfg_username">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>SIP username input</string>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QLabel" name="passwordLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Password</string>
</property>
<property name="buddy">
<cstring>lrcfg_password</cstring>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="QLineEdit" name="lrcfg_password">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>SIP password input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::PasswordEchoOnEdit</enum>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="proxyLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Proxy</string>
</property>
<property name="buddy">
<cstring>lrcfg_proxy</cstring>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QLineEdit" name="lrcfg_proxy">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>SIP proxy URL input</string>
</property>
</widget>
</item>
<item row="14" column="0">
<widget class="QLabel" name="voicemailLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Voicemail number</string>
</property>
<property name="buddy">
<cstring>lrcfg_mailbox</cstring>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QLineEdit" name="lrcfg_mailbox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>SIP voicemail number</string>
</property>
</widget>
</item>
<item row="15" column="0">
<widget class="QCheckBox" name="lrcfg_autoAnswer">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>Autoanswer call checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Auto-answer calls</string>
</property>
</widget>
</item>
<item row="16" column="0">
<widget class="QCheckBox" name="lrcfg_upnpEnabled">
<property name="enabled">
<bool>true</bool>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>UPnP enabled checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>UPnP enabled</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="oldPasswordLineEdit">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Old password input line</string>
</property>
<property name="inputMask">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>Input old password</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="oldPasswordLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Old Password</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="newPasswordLineEdit">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>New password text input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>Input new password</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="newPasswordLabel">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>New password</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLineEdit" name="newPassConfirmationLineEdit">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Password confirmation text input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>Input confirmation </string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="newPassConfirmationLabel">
<property name="font">
<font>
<family>Cantarell</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>New pass confirmation</string>
</property>
</widget>
</item>
<item row="9" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="changePassBtn">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>100</height>
</size>
</property>
<property name="text">
<string>Change password</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="confirmChangeBtn">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Ok</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelChangeBtn">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Cancel password change button</string>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="8" column="1">
<widget class="QLabel" name="changePassInfo">
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Changing password ...</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_27">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Account Settings</string>
</property>
<property name="buddy">
<cstring>lrcfg_allowIncomingFromUnknown</cstring>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="lrcfg_allowIncomingFromUnknown">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>Allow call from unknown checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Allow Call From Unknown</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="lrcfg_allowIncomingFromHistory">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>Allow Call From History checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Allow Call From History</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="lrcfg_allowIncomingFromContact">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>Allow Call From Contact checkbox</string>
</property>
<property name="text">
<string>Allow Call From Contact</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_28">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Ringtone Selection</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="playButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>86</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Play ringtone button</string>
</property>
<property name="text">
<string>Play</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="ringtonesBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>ringtone file selector</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="audio_codec_tab">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Audio/Video</string>
</attribute>
<attribute name="toolTip">
<string>Audio/video codecs preferences configuration</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0">
<widget class="QListView" name="audioCodecView">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QListView" name="videoCodecView">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
</widget>
</item>
<item row="1" column="4">
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="upVideoButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_arrow_drop_up_black_18dp_2x.png</normaloff>:/images/icons/ic_arrow_drop_up_black_18dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="downVideoButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_arrow_drop_down_black_18dp_2x.png</normaloff>:/images/icons/ic_arrow_drop_down_black_18dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="2">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="upAudioButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_arrow_drop_up_black_18dp_2x.png</normaloff>:/images/icons/ic_arrow_drop_up_black_18dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="downAudioButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_arrow_drop_down_black_18dp_2x.png</normaloff>:/images/icons/ic_arrow_drop_down_black_18dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_29">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Audio codecs</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="label_30">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Video codecs</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="advancedTab">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Advanced</string>
</attribute>
<attribute name="toolTip">
<string>Account advanced configuration</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>811</width>
<height>956</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Registration</string>
</property>
<property name="buddy">
<cstring>lrcfg_registrationExpire</cstring>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Registration expire timeout (seconds):</string>
</property>
<property name="buddy">
<cstring>lrcfg_registrationExpire</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="lrcfg_registrationExpire">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Registration timeout selector spinbox</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Network Interface</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Local Port:</string>
</property>
<property name="buddy">
<cstring>lrcfg_localPort</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QSpinBox" name="lrcfg_localPort">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>local port selector spinbox</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Published Address</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="puslishedSameAsLocalRadio">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>same as local radio button</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Same as local parameters</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">publishGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="customPublishedRadio">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>personalise address and ports radio button</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Set published address and port:</string>
</property>
<attribute name="buttonGroup">
<string notr="true">publishGroup</string>
</attribute>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="publishAdressLayout">
<property name="leftMargin">
<number>30</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_12">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Address</string>
</property>
<property name="buddy">
<cstring>lrcfg_publishedAddress</cstring>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lrcfg_publishedAddress">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>ip address text input</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_11">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Port</string>
</property>
<property name="buddy">
<cstring>lrcfg_publishedPort</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lrcfg_publishedPort">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>port selector spinbox</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QCheckBox" name="lrcfg_sipStunEnabled">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>use STUN checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Use STUN</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lrcfg_sipStunServer">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="placeholderText">
<string>Server URL</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout_6">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="lrcfg_turnEnabled">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>use TURN checkbox</string>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Use TURN</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lrcfg_turnServer">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>TURN server URL input</string>
</property>
<property name="placeholderText">
<string>Server URL</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lrcfg_turnServerUsername">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>TURN server username input</string>
</property>
<property name="placeholderText">
<string>Username</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lrcfg_turnServerPassword">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>TURN server password input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>Password</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lrcfg_turnServerRealm">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>TURN server Realm input</string>
</property>
<property name="placeholderText">
<string>Realm</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>SDP Session Negotiation (ICE Fallback)</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>These settings are only used during SDP session negotiation in case ICE is not supported by the server or peer.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_12">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Audio RTP Port Range</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_11">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="leftMargin">
<number>30</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_13">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Min</string>
</property>
<property name="buddy">
<cstring>lrcfg_audioPortMin</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lrcfg_audioPortMin">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Lower boundary for audio RTP port range selector</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_14">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Max</string>
</property>
<property name="buddy">
<cstring>lrcfg_audioPortMax</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lrcfg_audioPortMax">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>higher boundary for audio RTP port range selector</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_13">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Video RTP Port Range</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="leftMargin">
<number>30</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_15">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Min</string>
</property>
<property name="buddy">
<cstring>lrcfg_videoPortMin</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lrcfg_videoPortMin">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Lower boundary for audio RTP port range selector</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_16">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Max</string>
</property>
<property name="buddy">
<cstring>lrcfg_videoPortMax</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="lrcfg_videoPortMax">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>higher boundary for audio RTP port range selector</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_14">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="securityTab">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Security</string>
</attribute>
<attribute name="toolTip">
<string>Account security configuration</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea_3">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>829</width>
<height>760</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13">
<item>
<widget class="QWidget" name="accountEncry" native="true">
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>20</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="negoEncry_2" native="true">
<layout class="QFormLayout" name="formLayout_5">
<item row="0" column="0">
<widget class="QLabel" name="label_20">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>CA certificate</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="RingButton" name="lrcfg_tlsCaListCertificate">
<property name="minimumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::WheelFocus</enum>
</property>
<property name="toolTip">
<string>Certificate authaurity certificate selector</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_21">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>User certificate</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="RingButton" name="lrcfg_tlsCertificate">
<property name="minimumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>User certificate selector</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_22">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Private key</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_23">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(77, 77, 77);</string>
</property>
<property name="text">
<string>Private key password</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="lrcfg_tlsPassword">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>private key password input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="RingButton" name="lrcfg_tlsPrivateKeyCertificate">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>User private key selector</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QCheckBox" name="srtpEnabledChkBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>Encrypt media stream (SRTP) checkbox</string>
</property>
<property name="text">
<string>Media Stream Encryption (SRTP)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="defaultCipherCheckBox">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="toolTip">
<string>use default ciphers checkbox</string>
</property>
<property name="text">
<string>Use default ciphers</string>
</property>
</widget>
</item>
<item>
<widget class="QListView" name="cipherListView">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="devicesTab">
<attribute name="title">
<string>Devices</string>
</attribute>
<attribute name="toolTip">
<string>Account devices management</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_15">
<item>
<widget class="QStackedWidget" name="devicesStackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="devicesListPage">
<layout class="QVBoxLayout" name="verticalLayout_16">
<item>
<widget class="QTableView" name="tableView">
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>255</number>
</attribute>
<attribute name="horizontalHeaderHighlightSections">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
<item>
<widget class="QPushButton" name="addDeviceButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Add device button</string>
</property>
<property name="text">
<string>Add device</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="passwordAskingPage">
<layout class="QVBoxLayout" name="verticalLayout_17">
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_18">
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>To add a new device to your Jami account, you export your account on the network. This will generate a pin that must be entered on your new device within 5 minutes of its generation.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="passwordArchiveEdit">
<property name="toolTip">
<string>Password text input</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>Password (required)</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="cancelAddButton">
<property name="minimumSize">
<size>
<width>80</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Cancel account export for linking button</string>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="exportOnRingButton">
<property name="minimumSize">
<size>
<width>150</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Validate export on DHT for device linking button</string>
</property>
<property name="text">
<string>Export on the network</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pinDisplayPage">
<layout class="QVBoxLayout" name="verticalLayout_18">
<item>
<spacer name="verticalSpacer_15">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_24">
<property name="text">
<string>Your generated pin:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="pinLabel">
<property name="font">
<font>
<pointsize>30</pointsize>
<stylestrategy>PreferAntialias</stylestrategy>
</font>
</property>
<property name="toolTip">
<string>Generated PIN for linking</string>
</property>
<property name="text">
<string>PIN</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_25">
<property name="text">
<string>This pin should be entered on your new device within 5 minutes. You may generate a new one at any moment.</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QPushButton" name="exportEndedOkButton">
<property name="minimumSize">
<size>
<width>40</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Accept PIN generation and quit button</string>
</property>
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_16">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="bannedContactsTab">
<attribute name="title">
<string>Banned Contacts</string>
</attribute>
<attribute name="toolTip">
<string>Account banned contacts management tab</string>
</attribute>
<widget class="BannedContactsWidget" name="bannedContactsWidget" native="true">
<property name="geometry">
<rect>
<x>0</x>
<y>-1</y>
<width>841</width>
<height>691</height>
</rect>
</property>
</widget>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>RingButton</class>
<extends>QPushButton</extends>
<header>ringbutton.h</header>
</customwidget>
<customwidget>
<class>BannedContactsWidget</class>
<extends>QWidget</extends>
<header location="global">bannedcontactswidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="ressources.qrc"/>
</resources>
<connections>
<connection>
<sender>lrcfg_sipStunEnabled</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_sipStunServer</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>33</x>
<y>355</y>
</hint>
<hint type="destinationlabel">
<x>252</x>
<y>355</y>
</hint>
</hints>
</connection>
<connection>
<sender>customPublishedRadio</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_publishedPort</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>386</x>
<y>277</y>
</hint>
<hint type="destinationlabel">
<x>390</x>
<y>305</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_turnEnabled</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_turnServer</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>71</x>
<y>396</y>
</hint>
<hint type="destinationlabel">
<x>196</x>
<y>393</y>
</hint>
</hints>
</connection>
<connection>
<sender>customPublishedRadio</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_publishedAddress</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>120</x>
<y>277</y>
</hint>
<hint type="destinationlabel">
<x>131</x>
<y>311</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_turnEnabled</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_turnServerUsername</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>90</x>
<y>380</y>
</hint>
<hint type="destinationlabel">
<x>187</x>
<y>432</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_turnEnabled</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_turnServerPassword</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>51</x>
<y>375</y>
</hint>
<hint type="destinationlabel">
<x>164</x>
<y>468</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_turnEnabled</sender>
<signal>toggled(bool)</signal>
<receiver>lrcfg_turnServerRealm</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>39</x>
<y>378</y>
</hint>
<hint type="destinationlabel">
<x>170</x>
<y>503</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_allowIncomingFromUnknown</sender>
<signal>clicked(bool)</signal>
<receiver>lrcfg_allowIncomingFromHistory</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>169</x>
<y>584</y>
</hint>
<hint type="destinationlabel">
<x>171</x>
<y>616</y>
</hint>
</hints>
</connection>
<connection>
<sender>lrcfg_allowIncomingFromUnknown</sender>
<signal>clicked(bool)</signal>
<receiver>lrcfg_allowIncomingFromContact</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>115</x>
<y>584</y>
</hint>
<hint type="destinationlabel">
<x>117</x>
<y>648</y>
</hint>
</hints>
</connection>
</connections>
<buttongroups>
<buttongroup name="publishGroup"/>
</buttongroups>
</ui>
/***************************************************************************
* Copyright (C) 2019-2019 by Savoir-faire Linux *
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/
#include "animationhelpers.h"
#include "ui_animatedoverlay.h"
#include <QTimer>
#include <QtMath>
OpacityAnimation::OpacityAnimation(QWidget* target, QObject* parent)
: QObject(parent),
target_(target),
timer_(nullptr),
frameTime_((1.0 / 24.0) * 1000),
startValue_(0.0),
endValue_(1.0),
t_(0),
value_(0),
duration_(1000)
{
timer_ = new QTimer(this);
connect(timer_, SIGNAL(timeout()), this, SLOT(updateAnimation()));
effect_ = new QGraphicsOpacityEffect(this);
effect_->setOpacity(startValue_);
target_->setGraphicsEffect(effect_);
target_->setAutoFillBackground(true);
}
OpacityAnimation::~OpacityAnimation()
{
}
void
OpacityAnimation::setFPS(const int& fps)
{
frameTime_ = (1.0 / static_cast<double>(fps)) * 1000;
}
void
OpacityAnimation::setFrameTime(const int& milliseconds)
{
frameTime_ = milliseconds;
}
void
OpacityAnimation::setDuration(const int& milliseconds)
{
duration_ = milliseconds;
}
void
OpacityAnimation::setStartValue(const double& value)
{
startValue_ = value;
effect_->setOpacity(startValue_);
}
void
OpacityAnimation::setEndValue(const double& value)
{
endValue_ = value;
}
void
OpacityAnimation::start()
{
timer_->start(frameTime_);
}
void
OpacityAnimation::stop()
{
timer_->stop();
}
void
OpacityAnimation::updateAnimation()
{
double d = (startValue_ + endValue_) * 0.5;
double a = abs(startValue_ - endValue_) * 0.5;
t_ += frameTime_;
value_ = a * sin(2 * M_PI * t_ * duration_ * .000001) + d;
effect_->setOpacity(value_);
target_->update();
}
AnimatedOverlay::AnimatedOverlay(QColor color, QWidget* parent) :
QWidget(parent),
ui(new Ui::AnimatedOverlay)
{
ui->setupUi(this);
ui->backgroundLabel->setAutoFillBackground(true);
auto values = QString("%1,%2,%3,255")
.arg(color.red())
.arg(color.green())
.arg(color.blue());
ui->backgroundLabel->setStyleSheet("background-color: rgba(" + values + ");");
oa_ = new OpacityAnimation(this, this);
oa_->setFPS(16);
oa_->setDuration(1000);
oa_->setStartValue(0.0);
oa_->setEndValue(0.25);
oa_->start();
}
AnimatedOverlay::~AnimatedOverlay()
{
disconnect(this);
delete ui;
}
:: Jami - native Windows client project build script
@echo off
setlocal
if "%1" == "/?" goto Usage
if "%~1" == "" goto Usage
set doDeps=N
set doCompile=N
set doBuild=N
set SCRIPTNAME=%~nx0
if "%1"=="compile" (
set doCompile=Y
) else if "%1"=="build" (
set doBuild=Y
) else if "%1"=="deps" (
set doDeps=Y
) else (
goto Usage
)
set arch=N
shift
:ParseArgs
if "%1" == "" goto FinishedArgs
if /I "%1"=="x86" (
set arch=x86
) else if /I "%1"=="x64" (
set arch=x64
) else (
goto Usage
)
shift
goto ParseArgs
:FinishedArgs
if "%arch%"=="x86" (
set MSBUILD_ARGS=/nologo /p:useenv=true /p:Platform=Win32 /maxcpucount:%NUMBER_OF_PROCESSORS%
) else if "%arch%"=="x64" (
set MSBUILD_ARGS=/nologo /p:useenv=true /p:Platform=x64 /maxcpucount:%NUMBER_OF_PROCESSORS%
)
@setlocal
set VSInstallerFolder="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
if %PROCESSOR_ARCHITECTURE%==x86 set VSInstallerFolder="%ProgramFiles%\Microsoft Visual Studio\Installer"
pushd %VSInstallerFolder%
for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set VSLATESTDIR=%%i
)
popd
echo VS Installation folder: %VSLATESTDIR%
if not exist "%VSLATESTDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
echo:
echo VSInstallDir not found or not installed correctly.
goto cleanup
)
if %PROCESSOR_ARCHITECTURE%==x86 (
set Comp_x86=x86 10.0.15063.0
set Comp_x64=x86_amd64 10.0.15063.0
) else (
set Comp_x86=amd64_x86 10.0.15063.0
set Comp_x64=amd64 10.0.15063.0
)
set path=%path:"=%
if "%arch%"=="x86" (
call "%VSLATESTDIR%"\\VC\\Auxiliary\\Build\\vcvarsall.bat %Comp_x86%
) else if "%arch%"=="x64" (
call "%VSLATESTDIR%"\\VC\\Auxiliary\\Build\\vcvarsall.bat %Comp_x64%
)
if "%arch%" neq "N" (
if "%doCompile%" neq "N" (
goto compileClient
) else if "%doBuild%" neq "N" (
goto buildClient
) else if "%doDeps%" neq "N" (
goto buildDeps
)
goto :eof
)
goto Usage
:buildDeps
set TOBUILD=qrencode-win32\qrencode-win32\vc8\qrcodelib\qrcodelib.vcxproj
msbuild %TOBUILD% /verbosity:normal /p:Configuration=Release-Lib %MSBUILD_ARGS%
set WGET_CMD=wget --no-check-certificate --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=4
goto cleanup
:compileClient
msbuild ring-client-windows.vcxproj /verbosity:normal /p:Configuration=ReleaseCompile %MSBUILD_ARGS%
goto cleanup
:buildClient
msbuild ring-client-windows.vcxproj /verbosity:normal /p:Configuration=Release %MSBUILD_ARGS%
goto cleanup
@endlocal
:Usage
echo:
echo The correct usage is:
echo:
echo %0 [action] [architecture]
echo:
echo where
echo:
echo [action] is: compile ^| build
echo [architecture] is: x86 ^| x64
echo:
echo For example:
echo %0 compile x86 - compile only x86 (for CI)
echo %0 build x64 - build x64 client
echo:
goto :eof
:cleanup
endlocal
exit /B %ERRORLEVEL%
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CallWidget</class>
<widget class="QWidget" name="CallWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1440</width>
<height>664</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="containerWidget" native="true">
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_6" stretch="5,16">
<property name="spacing">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="sidePanelLayoutWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>380</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>380</width>
<height>16777215</height>
</size>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12" stretch="0,0">
<property name="spacing">
<number>0</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="CurrentAccountComboBox" name="currentAccountComboBox" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="smartListWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13" stretch="0,0">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="ConversationsFilterWidget" name="conversationsFilterWidget" native="true">
<layout class="QHBoxLayout" name="conversationFilterLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>15</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>15</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="btnConversations">
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="toolTip">
<string>Show conversations</string>
</property>
<property name="text">
<string>Conversations</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnInvites">
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="toolTip">
<string>Show invites</string>
</property>
<property name="text">
<string>Invites</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="smartListOuterWidget" native="true">
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="smartListOuterWidgetLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="searchBarLayoutWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>60</height>
</size>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="1" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>16</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>16</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="BezierConnectorWidget" name="searchTopRightWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>15</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:purple;</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="RingContactLineEdit" name="ringContactLineEdit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>266</width>
<height>30</height>
</size>
</property>
<property name="baseSize">
<size>
<width>244</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="cursor">
<cursorShape>IBeamCursor</cursorShape>
</property>
<property name="toolTip">
<string>Search contact text input</string>
</property>
<property name="maxLength">
<number>100</number>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="placeholderText">
<string>Find a new or existing contact</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="BezierConnectorWidget" name="searchTopLeftWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>15</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background:purple;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SmartListView" name="smartList">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="autoScrollMargin">
<number>16</number>
</property>
<property name="indentation">
<number>0</number>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="itemsExpandable">
<bool>false</bool>
</property>
<property name="expandsOnDoubleClick">
<bool>false</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<attribute name="headerMinimumSectionSize">
<number>0</number>
</attribute>
<attribute name="headerDefaultSectionSize">
<number>42</number>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="mainLayoutWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="mainLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string/>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="welcomePage">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_16">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<property name="spacing">
<number>0</number>
</property>
<property name="topMargin">
<number>7</number>
</property>
<property name="rightMargin">
<number>7</number>
</property>
<item>
<spacer name="horizontalSpacer_11">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="ringLogo">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="descLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
<property name="baseSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Jami is free software for universal communication which respects the freedoms and privacy of its users.</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="thisIsYourLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<underline>false</underline>
<strikeout>false</strikeout>
<kerning>true</kerning>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: #aeaeae</string>
</property>
<property name="text">
<string>
This is your ID.
Copy and share it with your friends!
</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="topMargin">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="IdLabel" name="ringIdLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="text">
<string notr="true">id</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="margin">
<number>5</number>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="qrButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Show ring ID QR code</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/qrcode.png</normaloff>:/images/qrcode.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="shareButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Share ring ID button</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_share_black_48dp_2x.png</normaloff>:/images/icons/ic_share_black_48dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="copyLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: #aeaeae</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="text">
<string>Double-click to copy</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="qrLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">color: #aeaeae</string>
</property>
<property name="text">
<string>Error while generating QR Code</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="mainActivityWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QSplitter" name="mainActivitySplitter">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="handleWidth">
<number>2</number>
</property>
<property name="childrenCollapsible">
<bool>true</bool>
</property>
<widget class="QStackedWidget" name="callStackWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="videoPage">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="VideoView" name="videoWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="outgoingCallPage">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="outgoingCall" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>244</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>244</width>
<height>16777215</height>
</size>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="spinnerLayout_3">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="callingPhoto">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="baseSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="callingBestNameLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<family>Segoe UI Emoji</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(128, 128, 128);</string>
</property>
<property name="text">
<string>best name</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="callingBestIdLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string>best Id</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="spinnerLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="callingStatusLabel">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string> Incoming...</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>20</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="cancelButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>56</width>
<height>56</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>56</width>
<height>56</height>
</size>
</property>
<property name="baseSize">
<size>
<width>56</width>
<height>56</height>
</size>
</property>
<property name="toolTip">
<string>Cancel outgoing call</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_close_white_24dp.png</normaloff>:/images/icons/ic_close_white_24dp.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="cancelCallLabel">
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string>Cancel</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="incomingCallPage">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_8">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="callInvite" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>420</height>
</size>
</property>
<property name="baseSize">
<size>
<width>200</width>
<height>420</height>
</size>
</property>
<layout class="QVBoxLayout" name="callInviteLayout" stretch="0,2,1,2,1,9">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="callerPhoto">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="baseSize">
<size>
<width>166</width>
<height>166</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="callerBestNameLabel">
<property name="font">
<font>
<family>Segoe UI Emoji</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(128, 128, 128);</string>
</property>
<property name="text">
<string>best name</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="wantToTalkLabel">
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string>Wants to talk to you!</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>50</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="2">
<property name="spacing">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="acceptButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>56</width>
<height>56</height>
</size>
</property>
<property name="toolTip">
<string>Answer incoming call button</string>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_done_white_24dp.png</normaloff>:/images/icons/ic_done_white_24dp.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="acceptLabel">
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string>Answer</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_21">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QPushButton" name="refuseButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>56</width>
<height>56</height>
</size>
</property>
<property name="toolTip">
<string>Ignore incoming call button</string>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_close_white_24dp.png</normaloff>:/images/icons/ic_close_white_24dp.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="refuseLabel">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(174, 174, 174);</string>
</property>
<property name="text">
<string>Ignore</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QWidget" name="messagesWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>460</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="messagingHeaderWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>60</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_10">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>14</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>14</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QPushButton" name="imBackButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Back to homepage button</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_arrow_back_24px.svg</normaloff>:/images/icons/ic_arrow_back_24px.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_17">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="imNameLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(63,63,63);</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="imIdLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(192,192,192);</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<spacer name="horizontalSpacer_13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnAudioCall">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_phone_24px.svg</normaloff>:/images/icons/ic_phone_24px.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnVideoCall">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_video_call_24px.svg</normaloff>:/images/icons/ic_video_call_24px.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="sendContactRequestButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Add to contacts</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ressources.qrc">
<normaloff>:/images/icons/ic_person_add_black_24dp_2x.png</normaloff>:/images/icons/ic_person_add_black_24dp_2x.png</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="messageViewLayoutWidget" native="true">
<layout class="QHBoxLayout" name="messagesHBoxLayout" stretch="0,0,0">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Maximum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="MessageWebView" name="messageView" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>1000</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">b</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Maximum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QWebEngineView</class>
<extends>QWidget</extends>
<header location="global">QtWebEngineWidgets/QWebEngineView</header>
</customwidget>
<customwidget>
<class>VideoView</class>
<extends>QWidget</extends>
<header>videoview.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>IdLabel</class>
<extends>QLabel</extends>
<header>idlabel.h</header>
</customwidget>
<customwidget>
<class>MessageWebView</class>
<extends>QWebEngineView</extends>
<header>messagewebview.h</header>
</customwidget>
<customwidget>
<class>RingContactLineEdit</class>
<extends>QLineEdit</extends>
<header>ringcontactlineedit.h</header>
</customwidget>
<customwidget>
<class>SmartListView</class>
<extends>QTreeView</extends>
<header>smartlistview.h</header>
</customwidget>
<customwidget>
<class>ConversationsFilterWidget</class>
<extends>QWidget</extends>
<header>conversationsfilterwidget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>CurrentAccountComboBox</class>
<extends>QWidget</extends>
<header>currentaccountcombobox.h</header>
</customwidget>
<customwidget>
<class>BezierConnectorWidget</class>
<extends>QWidget</extends>
<header>bezierconnectorwidget.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="ressources.qrc"/>
</resources>
<connections/>
</ui>
# 2020-03-16
## Bug Fixes
+ Fixed the bug that the system notification cannot be disabled
+ Fixed video device enumeration for higher framerates
+ More reliable high dpi adaption
+ Prevent crash when video device events happen with no account
## New Features
+ Add type indicator
+ Movable splitter in main view
+ Connectivity improvement for calls and messages
# 2019-12-13
## Bug Fixes
+ Fixed the bug that caused lag on call overlay
+ Fixed a typo on about dialog
## New Features
+ Add various useful shortcuts
# 2019-11-20
## Bug Fixes
+ Fixed bug that prevented pasting multiline text into chat
## New Features
+ Calls now automatically un-hold when the conversation is selected
+ SIP dialpad now has A,B,C,D dtmf options
# 2019-11-19
## Bug Fixes
+ Fixed notifications popping up for outgoing calls
+ Removing conference participant selects a remaining participant conversation
# 2019-11-15
## Notes
Change version name to 'Free as in Freedom'
Linux: ffmpeg now embedded in official package for auto bitrate + hardware acceleration
## Features
+ callview: rework conference ui ([#1052](https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/1052))
+ JAMS: support login to an account manager
+ wizard: re-work account creation
+ chatview: add video recorder
+ chatview: add audio recorder
+ conversation: automatically accepts < 20Mb files
+ video: auto adapt bitrate
+ Beta version
+ Change logs
+ Save draft text messages
## Bugfixes
+ Fix multiple crash with SIP accounts
+ Fix DTMF for SIP
+ chatview: show generated avatar into the chatview ([#947](https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/947))
+ Fix account migration
+ Fix alignment in settings view
+ call: handle PEER_BUSY state
+ lrc: fix clearAllHistory
+ avmodel: sort framerates
+ sip: fix temporary item removal
+ avmodel: getCurrentRenderedDevice support conferences
+ upnp: now async
+ some deadlocks are fixed
+ some segfault are fixed
+ sip_transport: avoid PJ_ENOTSUITABLE when ipv4<->ipv6
+ sipcall: fix rotation
+ ffmpeg: handle ebusy when opening devices
+ file transfer: fix cancel
+ conference: fix color inversion during conferences
+ lan: improve pjsip behavior in a LAN
+ [trustrequests: handle removed contacts](https://git.jami.net/savoirfairelinux/ring-daemon/issues/129)
+ dbus: only authorize one daemon per DBUS_SESSION_BUS_ADDRESS
+ Fixed crash when user has no account
+ Fixed display name changes not saving
+ Fixed not being able to change back to camera from screen share
+ Fixed utf-8 handling on display names
## Internal changes
+ chatview code is now in LRC and shared with the desktop clients
+ database: migrate to per account database
+ avmodel: optionally switchInput using a callId
+ video sender: send only 1 keyframe at start
+ contrib: various bump (opendht, upnp, ffmpeg, etc)
+ p2p: use one IceTransport by sub transfer
+ decoder: set fpsprobesize, use default probesize
+ ice: enable aggressive nomination to avoid latencies
+ accel: remove libdrm code
+ sipvoiplink: remove wait for completed transactions in dtor
+ Remove some thread creations
+ replace restbed by restinio
+ namedirectory: don't create temporary items during lookup
+ file transfer: use different ice for each transfer
+ manager: allow switchInput on conference
# 2019-08-24
## Features
+ [Erase data securely before removing account](https://git.jami.net/savoirfairelinux/ring-daemon/issues/60)
+ [Negotiate calls in TCP and UDP and prefer TCP if necessary](https://git.jami.net/savoirfairelinux/ring-daemon/issues/103)
+ Improve negotiation for p2p file transfer
+ Auto change the video quality
+ Add hardware acceleration support for NVidia
+ SIP fix SMS issues
## Bugfixes
+ Improve connectivityChange detection and account switching.
+ Translate strings from daemon.
+ Sort resolutions by width
+ [Sort conversations when clearing history](https://git.jami.net/savoirfairelinux/ring-lrc/issues/411)
+ Fix subscriptions for new contacts
+ Hangup if contact is deleted
+ [Various deadlocks](https://git.jami.net/savoirfairelinux/ring-daemon/issues/120)
## Internal changes
+ LRC remove unused code
+ Change from enableAccount() to setAccountEnabled()
+ Update msgpack, gnutls, opendht
+ Rewrite code for UPnP support
# 2019-06-20
## Bugfixes
+ Improve name registration errors detection
+ Improve SIP text/plain detection
+ Fix temporary item when copy/paste a full ring id
+ SIP: Fix online status
+ [Fix audio recorder](https://git.jami.net/savoirfairelinux/ring-daemon/issues/95)
+ Fix some deadlocks
+ [Fix calls via TURN](https://git.jami.net/savoirfairelinux/ring-daemon/issues/105)
+ [Fix multi devices support for calls](https://git.jami.net/savoirfairelinux/ring-daemon/issues/120)
## Internal changes
+ Cleanup daemon side
+ Update restbed
+ Update opendht to 1.9.5
+ [Improve UPnP implementation](https://git.jami.net/savoirfairelinux/ring-daemon/issues/96)
+ Increase default video bitrate
# 2019-05-16
## Features
+ [Add peer to peer file transfer support](https://git.jami.net/savoirfairelinux/ring-project/issues/486)
+ Advanced settings: add DHT peer discovery support
+ Media Settings: add hardware acceleration support
+ [UPnP add TCP mapping support](https://git.jami.net/savoirfairelinux/ring-daemon/issues/86)
## Bugfixes
+ Name registration: better handling for wrong archive password
+ tls_session: close transport after cleanup
+ sip: check message utf8 validity before emitting signal
## Internal changes
+ Bump OpenDHT to 1.9.4
+ Bump GNUTls to 3.6.7
+ Bump Pjsip to (6b9212dcb4b3f781c1e922ae544b063880bc46ac + patches)
+ Internal renaming from Ring to Jami
+ Use new methods from LRC
+ Fix some data races
+ dring/dbus: unregister signals on exit
# 2019-04-12
## Features
+ (Not linked to the UI for now) Hardware encoding support
## Bugfixes
+ Sets up video streams upon receiving the first video frame.
+ Pulseaudio: start streams when ready
## Internal changes
+ Continue name migration, change data locations, binary names and methods names.
+ Nettle 3.4.1 is now required
+ Support video rotation when recording
+ Some code clean
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ContactPicker</class>
<widget class="QDialog" name="ContactPicker">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>256</width>
<height>343</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string/>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="contactPickerWidget" native="true">
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QWidget" name="smartListOuterWidget" native="true">
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="smartListOuterWidgetLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="searchBarLayoutWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>60</height>
</size>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="2" column="1">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>16</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>16</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="RingContactLineEdit" name="ringContactLineEdit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>30</height>
</size>
</property>
<property name="baseSize">
<size>
<width>244</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="cursor">
<cursorShape>IBeamCursor</cursorShape>
</property>
<property name="toolTip">
<string>Search contact</string>
</property>
<property name="maxLength">
<number>100</number>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="placeholderText">
<string>Search contacts</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SmartListView" name="smartList">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="autoScrollMargin">
<number>16</number>
</property>
<property name="indentation">
<number>0</number>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="itemsExpandable">
<bool>false</bool>
</property>
<property name="expandsOnDoubleClick">
<bool>false</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<attribute name="headerMinimumSectionSize">
<number>0</number>
</attribute>
<attribute name="headerDefaultSectionSize">
<number>0</number>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="title">
<property name="font">
<font>
<family>Microsoft Tai Le</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Add contact to conference</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="spikeLabel">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>:/images/spike.png</pixmap>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>RingContactLineEdit</class>
<extends>QLineEdit</extends>
<header>ringcontactlineedit.h</header>
</customwidget>
<customwidget>
<class>SmartListView</class>
<extends>QTreeView</extends>
<header>smartlistview.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
[cmdletbinding()]
param (
[string]$mode,
[string]$qtver,
[string]$daemonDir,
[string]$lrcDir
......@@ -9,11 +10,12 @@ write-host "Copying runtime files..." -ForegroundColor Green
# default values
$qtver = If ($qtver) {$qtver} Else {"5.9.4"}
$mode = If ($mode) {$mode} Else {"Release"}
$QtDir = "C:\Qt\$qtver\msvc2017_64"
$ClientDir = split-path -parent $MyInvocation.MyCommand.Definition
$OutDir = $ClientDir + "\x64\Release"
$OutDir = $ClientDir + "\x64\" + $mode
If(!(test-path $OutDir)) { New-Item -ItemType directory -Path $OutDir -Force }
if (!$daemonDir) { $daemonDir = $ClientDir + '\..\daemon' }
......@@ -25,7 +27,7 @@ write-host "using lrcDir: " $lrcDir -ForegroundColor Magenta
write-host "using QtDir: " $QtDir -ForegroundColor Magenta
write-host "********************************************************************************" -ForegroundColor Magenta
# dependency bin files
# dependency bin files and misc
$FilesToCopy = @(
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avcodec-58.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avutil-56.dll",
......@@ -34,84 +36,22 @@ $FilesToCopy = @(
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swresample-3.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\swscale-5.dll",
"$daemonDir\contrib\build\ffmpeg\Build\win32\x64\bin\avfilter-7.dll",
"$daemonDir\contrib\build\restbed\dependency\openssl\out32dll\libeay32.dll",
"$daemonDir\contrib\build\restbed\dependency\openssl\out32dll\ssleay32.dll",
"$ClientDir\ring.nsi",
"$ClientDir\images\jami.ico"
"$daemonDir\contrib\build\openssl\out32dll\libeay32.dll",
"$daemonDir\contrib\build\openssl\out32dll\ssleay32.dll",
"$ClientDir\qt.conf",
"$ClientDir\images\jami.ico",
"$ClientDir\License.rtf"
)
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $OutDir -Force
Copy-Item -Path $i -Recurse -Destination $OutDir -Force -Container
}
############
# qt
############
# qt bin files
$FilesToCopy = @(
"$QtDir\bin\Qt5Core.dll",
"$QtDir\bin\Qt5Gui.dll",
"$QtDir\bin\Qt5Network.dll",
"$QtDir\bin\Qt5Positioning.dll",
"$QtDir\bin\Qt5PrintSupport.dll",
"$QtDir\bin\Qt5Qml.dll",
"$QtDir\bin\Qt5Quick.dll",
"$QtDir\bin\Qt5QuickWidgets.dll",
"$QtDir\bin\Qt5Sql.dll",
"$QtDir\bin\Qt5Svg.dll",
"$QtDir\bin\Qt5WebChannel.dll",
"$QtDir\bin\Qt5WebEngine.dll",
"$QtDir\bin\Qt5WebEngineCore.dll",
"$QtDir\bin\Qt5WebEngineWidgets.dll",
"$QtDir\bin\Qt5Widgets.dll",
"$QtDir\bin\Qt5WinExtras.dll",
"$QtDir\bin\Qt5Xml.dll",
"$QtDir\bin\Qt5Multimedia.dll",
"$QtDir\bin\Qt5MultimediaWidgets.dll",
"$QtDir\bin\Qt5OpenGL.dll",
"$QtDir\bin\libEGL.dll",
"$QtDir\bin\libGLESv2.dll",
"$QtDir\bin\d3dcompiler_47.dll",
"$QtDir\bin\QtWebEngineProcess.exe",
"$QtDir\resources\qtwebengine_resources.pak",
"$QtDir\resources\qtwebengine_resources_100p.pak",
"$QtDir\resources\qtwebengine_resources_200p.pak",
"$QtDir\resources\icudtl.dat"
)
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $OutDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $OutDir -Force
}
# qt imageformats
$FilesToCopy = @(
"$QtDir\plugins\imageformats\qgif.dll",
"$QtDir\plugins\imageformats\qico.dll",
"$QtDir\plugins\imageformats\qjpeg.dll",
"$QtDir\plugins\imageformats\qsvg.dll"
)
$CopyDir = $OutDir + "\imageformats"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
foreach ($i in $FilesToCopy) {
write-host "copying: " $i " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $i -Destination $CopyDir -Force
}
# qt platform dll for windows
$CopyDir = $OutDir + "\platforms"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
$file = "$QtDir\plugins\platforms\qwindows.dll"
write-host "copying: " $file " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $file -Destination $CopyDir -Force
# qt sql driver
$CopyDir = $OutDir + "\sqldrivers"
If(!(test-path $CopyDir)) { New-Item -ItemType directory -Path $CopyDir -Force }
$file = "$QtDir\plugins\sqldrivers\qsqlite.dll"
write-host "copying: " $file " => " $CopyDir -ForegroundColor Cyan
Copy-Item -Path $file -Destination $CopyDir -Force
$windeployqt = "$QtDir\bin\windeployqt.exe --qmldir $ClientDir\src --release $OutDir\Jami.exe"
iex $windeployqt
# ringtones
$CopyDir = $OutDir + "\ringtones"
......
FROM fedora:27
ENV LANG en_US.utf8
ENV LC_ALL en_US.utf8
RUN dnf -y upgrade
# General
RUN dnf -y install \
unzip \
openssh \
rsync
# Mingw 32/64
RUN dnf -y install \
mingw32-binutils \
mingw32-gcc \
mingw32-headers \
mingw32-crt \
mingw32-gcc-c++ \
mingw32-pkg-config \
mingw32-nsis \
mingw64-binutils \
mingw64-gcc \
mingw64-headers \
mingw64-crt \
mingw64-gcc-c++ \
mingw64-pkg-config
# Build environment
RUN dnf -y install \
git \
gawk \
yasm \
gettext-devel \
cmake \
patch \
libtool \
automake \
make \
xz \
bzip2 \
which \
sudo
# LRC Req
RUN dnf -y install \
mingw32-qt5-qtbase \
mingw32-qt5-qttools \
mingw64-qt5-qtbase \
mingw64-qt5-qttools
# Client Req
RUN dnf -y install \
mingw32-qt5-qtsvg \
mingw64-qt5-qtsvg \
mingw32-qt5-qtwinextras \
mingw64-qt5-qtwinextras \
mingw32-libidn \
mingw64-libidn \
mingw32-xz-libs \
mingw64-xz-libs