add contact and fix stack
This commit is contained in:
parent
9b72f49ef0
commit
2d5e583579
27 changed files with 531 additions and 181 deletions
|
@ -10,6 +10,7 @@ set(QPACKAGE Core Gui Qml Quick QuickControls2 Test)
|
|||
find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS ${QPACKAGE} )
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS ${QPACKAGE})
|
||||
|
||||
option(DEBUG "Enaable asan debug" OFF)
|
||||
# lazy add file
|
||||
#file(GLOB_RECURSE BASE_DIR "src/base/*.cpp" "src/base/*.h")
|
||||
#file(GLOB_RECURSE INCLUDE_DIR "include/*.h" )
|
||||
|
@ -55,7 +56,7 @@ add_executable(chat
|
|||
src/model/chat/contact/contactproxymodel.h src/model/chat/contact/contactproxymodel.cpp
|
||||
src/model/chat/contact/contactmodel.h src/model/chat/contact/contactmodel.cpp
|
||||
src/model/chat/contact/contactchecklistmodel.h src/model/chat/contact/contactchecklistmodel.cpp
|
||||
)
|
||||
)
|
||||
|
||||
target_include_directories(chat PRIVATE "./include" "./src")
|
||||
|
||||
|
@ -71,3 +72,10 @@ install(TARGETS chat
|
|||
|
||||
find_package(Deltachat REQUIRED)
|
||||
target_link_libraries(chat Deltachat)
|
||||
|
||||
#for debug
|
||||
if ( DEBUG )
|
||||
# target_compile_definitions(chat PRIVATE -fsanitize=address)
|
||||
list(APPEND CMAKE_C_FLAG PRIVATE -fsanitize=address -g )
|
||||
target_link_libraries(chat asan)
|
||||
endif()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 15.0.1, 2025-04-04T01:00:55. -->
|
||||
<!-- Written by QtCreator 15.0.1, 2025-04-08T01:02:19. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
@ -106,16 +106,16 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DLINPHONE_SDK:STRING=/home/amneiht/app/workspace/lib/linphone/release/x64
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX};/home/amneiht/app/workspace/lib/delta_chat/rls_1.157.2/x64
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/deltachat/Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
|
@ -165,15 +165,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/deltachat/Desktop_Qt_5_15_2_GCC_64bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -220,15 +220,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/deltachat/Desktop_Qt_5_15_2_GCC_64bit-RelWithDebInfo</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -275,15 +275,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/deltachat/Desktop_Qt_5_15_2_GCC_64bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
|
@ -331,15 +331,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/deltachat/Desktop_Qt_5_15_2_GCC_64bit-MinSizeRel</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -467,17 +467,17 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX};/home/amneiht/app/workspace/lib/delta_chat/arm64
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Arm64_Qt_5_15-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -526,17 +526,17 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Arm64_Qt_5_15-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -583,17 +583,17 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Arm64_Qt_5_15-RelWithDebInfo</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -640,17 +640,17 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Arm64_Qt_5_15-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
|
@ -698,17 +698,17 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_CXX_FLAGS:STRING="--sysroot=/home/amneiht/app/workspace/toolchain/mip10dv/sysroots/aarch64-poky-linux"
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Arm64_Qt_5_15-MinSizeRel</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -834,15 +834,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX};/home/amneiht/app/workspace/lib/delta_chat/rls_1.157.2/x64
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Desktop_Qt_6_5_0_GCC_64bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
|
@ -892,15 +892,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Desktop_Qt_6_5_0_GCC_64bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -947,15 +947,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Desktop_Qt_6_5_0_GCC_64bit-RelWithDebInfo</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
@ -1002,15 +1002,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Desktop_Qt_6_5_0_GCC_64bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
|
@ -1058,15 +1058,15 @@
|
|||
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_GENERATOR:STRING=Ninja
|
||||
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
|
||||
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||
-DCMAKE_GENERATOR:STRING=Ninja</value>
|
||||
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
|
||||
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
|
||||
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
|
||||
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/ramdisk/build/chat/Desktop_Qt_6_5_0_GCC_64bit-MinSizeRel</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
|
|
|
@ -2,27 +2,51 @@ import QtQuick 2.15
|
|||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
Item {
|
||||
|
||||
required property string $text
|
||||
height: parent.height
|
||||
|
||||
TextIcon {
|
||||
id: icon
|
||||
y:5
|
||||
size: parent.height - 10
|
||||
dptext: $text
|
||||
anchors.left: parent.left
|
||||
}
|
||||
Text {
|
||||
anchors{
|
||||
right: parent.right
|
||||
}
|
||||
height: parent.height
|
||||
width: parent.width - icon.width -3
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
// horizontalAlignment: Text.AlignHCenter
|
||||
text: $text
|
||||
elide: Text.ElideRight
|
||||
font.pixelSize: height/3
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
TextIcon {
|
||||
id: icon
|
||||
y:5
|
||||
size: parent.height - 10
|
||||
dptext: $text
|
||||
|
||||
}
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
height: parent.height
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
// horizontalAlignment: Text.AlignHCenter
|
||||
text: $text
|
||||
elide: Text.ElideRight
|
||||
// font.pixelSize: height/3
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* old code
|
||||
TextIcon {
|
||||
id: icon
|
||||
y:5
|
||||
size: parent.height - 10
|
||||
dptext: $text
|
||||
anchors.left: parent.left
|
||||
}
|
||||
Text {
|
||||
anchors{
|
||||
right: parent.right
|
||||
}
|
||||
height: parent.height
|
||||
width: parent.width - icon.width -3
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
// horizontalAlignment: Text.AlignHCenter
|
||||
text: $text
|
||||
elide: Text.ElideRight
|
||||
font.pixelSize: height/3
|
||||
|
||||
}
|
||||
//*/
|
||||
}
|
||||
|
|
|
@ -32,8 +32,12 @@ Rectangle {
|
|||
}
|
||||
function setView(component , property)
|
||||
{
|
||||
|
||||
if(property !== undefined)
|
||||
{
|
||||
load.setSource(component , property )
|
||||
stack.pushMap(component , property )
|
||||
}
|
||||
else
|
||||
load.setSource(component)
|
||||
}
|
||||
|
@ -58,12 +62,16 @@ Rectangle {
|
|||
target: _view
|
||||
function onCloseView()
|
||||
{
|
||||
// clear old data
|
||||
load.source = ""
|
||||
stack.popMap(load.source );
|
||||
// pop stack data
|
||||
var ssource = stack.popView()
|
||||
var data = stack.popMap(ssource);
|
||||
if(ssource !== "")
|
||||
{
|
||||
load.active = false
|
||||
Qt.callLater(showView,ssource);
|
||||
Qt.callLater(showView,ssource,data);
|
||||
} else {
|
||||
virtual.visible = false
|
||||
load.active = false
|
||||
|
|
|
@ -22,9 +22,9 @@ function leaveGroup(){
|
|||
model.leaveGroup()
|
||||
}
|
||||
|
||||
function showView(dir)
|
||||
function showView(dir , obj )
|
||||
{
|
||||
// append url
|
||||
var url = "qrc:/qml/chat/" + dir
|
||||
mess_area.showView(url)
|
||||
var url = "qrc:/qml/chat/message/" + dir
|
||||
mess_area.showView(url , obj)
|
||||
}
|
||||
|
|
|
@ -16,10 +16,10 @@ PanelView{
|
|||
Layout.fillWidth: true
|
||||
ChatRoomModel {
|
||||
id:model
|
||||
// chatid: chat_id
|
||||
}
|
||||
MessageModel {
|
||||
id:mess
|
||||
chatId: chat_id
|
||||
}
|
||||
Menu {
|
||||
id: menu
|
||||
|
@ -69,13 +69,13 @@ PanelView{
|
|||
spacing: 3
|
||||
ContactIcon {
|
||||
$text : model.chatName()
|
||||
Layout.fillWidth: true
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
MS.showView("popup/GroupContact.qml")
|
||||
}
|
||||
}
|
||||
Layout.fillWidth: true
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
MS.showView("popup/GroupContact.qml",{ chat_id : chat_id })
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
TextIcon {
|
||||
|
@ -152,6 +152,7 @@ PanelView{
|
|||
z:2
|
||||
Layout.fillWidth: true
|
||||
height: 30
|
||||
visible: model.active
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
TextArea {
|
||||
|
|
|
@ -50,7 +50,8 @@ Item{
|
|||
wrapMode: Text.WordWrap
|
||||
onLinkActivated:
|
||||
{
|
||||
console.debug(link)
|
||||
var obj = { qrcode:link , stext:$text }
|
||||
mess_area.showView("qrc:/qml/chat/popup/JoinChatPopup.qml",obj)
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
|
|
|
@ -4,12 +4,14 @@ import QtQuick.Layouts 1.3
|
|||
import DCStyle 1.0
|
||||
|
||||
import Dcchat 1.0
|
||||
import "MessPopup.js" as MP
|
||||
Rectangle {
|
||||
id : ct
|
||||
height: 50
|
||||
required property string $name
|
||||
required property int $id
|
||||
|
||||
required property int chat_id
|
||||
// mess_area.model : call model from parent
|
||||
RowLayout {
|
||||
id: row
|
||||
width: parent.width
|
||||
|
@ -25,12 +27,15 @@ Rectangle {
|
|||
// radius: 4
|
||||
// color: "lightgray"
|
||||
// }
|
||||
visible: $id != 1
|
||||
visible: $id != 1 && mess_area.model.isGroup()
|
||||
id:btn
|
||||
text: qsTr("rm")
|
||||
|
||||
onClicked: {
|
||||
ChatMediator.setContactId($id);
|
||||
mess_area.showView("qrc:/qml/chat/popup/RemovePopup.qml",{ contact_id:$id })
|
||||
// ChatMediator.setContactId($id);
|
||||
var dir = MP.build_dir("RemovePopup.qml")
|
||||
console.debug(" chat id " + chat_id)
|
||||
mess_area.showView(dir,{ contact_id:$id , chat_id : chat_id })
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,15 +4,18 @@ import QtQuick.Layouts 1.3
|
|||
import Dcchat 1.0
|
||||
|
||||
import DCStyle 1.0
|
||||
|
||||
import "MessPopup.js" as MP
|
||||
Rectangle {
|
||||
|
||||
width: 400
|
||||
color: "white"
|
||||
height: 500
|
||||
radius: 5
|
||||
|
||||
required property int chat_id
|
||||
ChatContact {
|
||||
id : model
|
||||
chatId: chat_id
|
||||
}
|
||||
Rectangle {
|
||||
id: contact
|
||||
|
@ -29,12 +32,13 @@ Rectangle {
|
|||
width: parent.width
|
||||
height: 30
|
||||
Text {
|
||||
text: qsTr("Group")
|
||||
text: mess_area.model.isGroup() ? qsTr("Group") : qsTr("Contact")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Button {
|
||||
width: 20
|
||||
text: qsTr("edit")
|
||||
visible: false
|
||||
}
|
||||
Button {
|
||||
width: 20
|
||||
|
@ -55,11 +59,11 @@ Rectangle {
|
|||
spacing: 10
|
||||
|
||||
TextIcon {
|
||||
dptext: model.chatName()
|
||||
dptext: model.chatName
|
||||
size:50
|
||||
}
|
||||
Text {
|
||||
text: model.chatName()
|
||||
text: model.chatName
|
||||
height: 50
|
||||
font.pixelSize: 50 / 2
|
||||
}
|
||||
|
@ -70,6 +74,7 @@ Rectangle {
|
|||
color: "lightgray"
|
||||
Layout.fillWidth: true
|
||||
z:2
|
||||
visible: mess_area.model.isGroup()
|
||||
Text{
|
||||
anchors.fill: parent
|
||||
text: qsTr("Number in Group: ")+model.nuser
|
||||
|
@ -80,6 +85,7 @@ Rectangle {
|
|||
height: 50
|
||||
Layout.fillWidth: true
|
||||
z:1
|
||||
visible: mess_area.model.isGroup() && mess_area.model.active
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
TextIcon {
|
||||
|
@ -95,14 +101,21 @@ Rectangle {
|
|||
}
|
||||
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
var dir = MP.build_dir("GroupContactAdd.qml")
|
||||
mess_area.showView(dir)
|
||||
}
|
||||
}
|
||||
}
|
||||
ListView {
|
||||
id: view
|
||||
|
||||
Layout.fillWidth: true
|
||||
height: 250
|
||||
model: model
|
||||
delegate: ContactItem {
|
||||
chat_id: model.chatId
|
||||
width: contact.width
|
||||
}
|
||||
}
|
98
qml/chat/message/popup/GroupContactAdd.qml
Normal file
98
qml/chat/message/popup/GroupContactAdd.qml
Normal file
|
@ -0,0 +1,98 @@
|
|||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
import DCStyle 1.0
|
||||
|
||||
import Dcchat 1.0
|
||||
Rectangle {
|
||||
width: 400
|
||||
height: 640
|
||||
ContactCheckListModel {
|
||||
id:model
|
||||
chatId: mess_area.chat_id
|
||||
}
|
||||
ColumnLayout {
|
||||
x:5
|
||||
y:5
|
||||
width: parent.width -10
|
||||
height: parent.height - 10
|
||||
spacing: 5
|
||||
Text {
|
||||
Layout.fillWidth: true
|
||||
text:qsTr("Group")
|
||||
}
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
height: icon.height
|
||||
z:1
|
||||
|
||||
ContactIcon {
|
||||
id: icon
|
||||
$text : mess_area.model.chatName()
|
||||
height: 40
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
color: "gray"
|
||||
height: 3
|
||||
z:1
|
||||
}
|
||||
ListView {
|
||||
id:view
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: 2
|
||||
model : model
|
||||
delegate: Rectangle {
|
||||
required property string $name
|
||||
required property int $id
|
||||
required property bool $check
|
||||
required property int index
|
||||
width: view.width
|
||||
height: 40
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
ContactIcon {
|
||||
Layout.fillWidth: true
|
||||
height: parent.height
|
||||
$text: $name
|
||||
}
|
||||
CheckBox {
|
||||
id: _checkbox
|
||||
checked: $check
|
||||
onCheckStateChanged: {
|
||||
// console.debug("index is"+index)
|
||||
model.setData(model.index(index,0),checkState,model.editRole())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
height: 30
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
height: parent.height
|
||||
text: qsTr("Exit")
|
||||
onClicked: {
|
||||
mess_area.closeView()
|
||||
}
|
||||
}
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
height: parent.height
|
||||
text: qsTr("Add")
|
||||
onClicked: {
|
||||
// lmodel.createChat(tf.text)
|
||||
model.addContactToChat(mess_area.chat_id)
|
||||
mess_area.closeView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
43
qml/chat/message/popup/JoinChatPopup.qml
Normal file
43
qml/chat/message/popup/JoinChatPopup.qml
Normal file
|
@ -0,0 +1,43 @@
|
|||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtQuick.Controls 2.0
|
||||
import Dcchat 1.0
|
||||
Rectangle {
|
||||
width: 300
|
||||
height: 100
|
||||
required property string stext
|
||||
required property string qrcode
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
Text {
|
||||
id: name
|
||||
text: stext
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 20
|
||||
}
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
implicitHeight: btn.implicitHeight
|
||||
Button {
|
||||
id: btn
|
||||
text: qsTr("Yes")
|
||||
onClicked: {
|
||||
ChatMediator.chatWithQrCode(qrcode)
|
||||
mess_area.closeView()
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Button {
|
||||
text: qsTr("No")
|
||||
onClicked: {
|
||||
mess_area.closeView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
5
qml/chat/message/popup/MessPopup.js
Normal file
5
qml/chat/message/popup/MessPopup.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
.pragma library
|
||||
|
||||
function build_dir(path){
|
||||
return "qrc:/qml/chat/message/popup/"+path
|
||||
}
|
|
@ -7,6 +7,7 @@ Rectangle {
|
|||
width:250
|
||||
height: 100
|
||||
|
||||
required property int chat_id
|
||||
required property int contact_id
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
@ -22,7 +23,7 @@ Rectangle {
|
|||
text:qsTr("Yes")
|
||||
onClicked: {
|
||||
clearContact()
|
||||
mess_area.closeView()
|
||||
// mess_area.closeView()
|
||||
}
|
||||
}
|
||||
Button {
|
||||
|
@ -36,7 +37,7 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
function clearContact(){
|
||||
var chat_id = ChatMediator.getChatId()
|
||||
ChatMediator.clearContact(chat_id , contact_id);
|
||||
|
||||
ChatMediator.removeContactFromChat(chat_id , contact_id);
|
||||
}
|
||||
}
|
11
resource.qrc
11
resource.qrc
|
@ -10,17 +10,20 @@
|
|||
<file>qml/chat/ChatListView.js</file>
|
||||
<file>qml/DCStyle/view/PanelView.qml</file>
|
||||
<file>qml/chat/popup/ChatContact.qml</file>
|
||||
<file>qml/chat/popup/ContactItem.qml</file>
|
||||
<file>qml/chat/popup/RemovePopup.qml</file>
|
||||
<file>qml/DCStyle/icon/TextIcon.qml</file>
|
||||
<file>qml/chat/popup/GroupContact.qml</file>
|
||||
<file>qml/chat/message/MessageArea.js</file>
|
||||
<file>qml/chat/message/MessageArea.qml</file>
|
||||
<file>qml/chat/message/MessageItem.qml</file>
|
||||
<file>qml/chat/popup/QrCodePopup.qml</file>
|
||||
<file>qml/chat/contact/ContactList.qml</file>
|
||||
<file>qml/DCStyle/icon/ContactIcon.qml</file>
|
||||
<file>qml/chat/contact/RmContact.qml</file>
|
||||
<file>qml/chat/contact/CreateGroup.qml</file>
|
||||
<file>qml/chat/message/popup/ContactItem.qml</file>
|
||||
<file>qml/chat/message/popup/GroupContact.qml</file>
|
||||
<file>qml/chat/message/popup/GroupContactAdd.qml</file>
|
||||
<file>qml/chat/message/popup/JoinChatPopup.qml</file>
|
||||
<file>qml/chat/message/popup/QrCodePopup.qml</file>
|
||||
<file>qml/chat/message/popup/RemovePopup.qml</file>
|
||||
<file>qml/chat/message/popup/MessPopup.js</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -34,8 +34,20 @@ QString ChatMediator::getQrCode()
|
|||
return qrCode;
|
||||
}
|
||||
|
||||
void ChatMediator::chatWithQrCode(const QString& qrcode)
|
||||
{
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->joinSecurejoin(qrcode);
|
||||
}
|
||||
|
||||
void ChatMediator::removeContact(int id)
|
||||
{
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->deleteContact(id);
|
||||
}
|
||||
|
||||
void ChatMediator::removeContactFromChat(int chat_id, int contact_id)
|
||||
{
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->removeContactFromChat(chat_id, contact_id);
|
||||
}
|
||||
|
|
|
@ -20,8 +20,10 @@ public:
|
|||
// for qt Code
|
||||
Q_INVOKABLE void createQrCode(uint32_t chat_id);
|
||||
Q_INVOKABLE QString getQrCode();
|
||||
|
||||
Q_INVOKABLE void chatWithQrCode(const QString& qrcode);
|
||||
//
|
||||
Q_INVOKABLE void removeContact(int id);
|
||||
Q_INVOKABLE void removeContactFromChat(int chat_id, int contact_id);
|
||||
};
|
||||
|
||||
#endif // CHATMEDIATOR_H
|
||||
|
|
|
@ -14,17 +14,19 @@ ChatRoomModel::ChatRoomModel(QObject* parent)
|
|||
mess_count = 10;
|
||||
|
||||
auto acc = dc::Account::getInstance();
|
||||
// signal connect
|
||||
connect(acc.get(), &dc::Account::incomingMessage, this, &ChatRoomModel::onIncomingMessage);
|
||||
connect(acc.get(), &dc::Account::outGoingMessage, this, &ChatRoomModel::onOutGoingMessage);
|
||||
connect(this, &ChatRoomModel::updateData, this, &ChatRoomModel::rowChange, Qt::DirectConnection);
|
||||
connect(acc.get(), &dc::Account::removeContactFromChat, this, &ChatRoomModel::onContactRemove);
|
||||
connect(acc.get(), &dc::Account::messagesDelevery, this, &ChatRoomModel::onMessageDelivered);
|
||||
connect(acc.get(), &dc::Account::messageFalse, this, &ChatRoomModel::onMessageDelivered);
|
||||
connect(acc.get(), &dc::Account::chatListItemChange, this, &ChatRoomModel::onChatListChange);
|
||||
|
||||
time = new QTimer(this);
|
||||
connect(time, &QTimer::timeout, this, &ChatRoomModel::markAsRead); // get chat ip
|
||||
auto med = ChatCore::getMediator();
|
||||
setChatid(med->getChatId());
|
||||
|
||||
// test = new QAbstractItemModelTester(this, QAbstractItemModelTester::FailureReportingMode::Warning, this);
|
||||
}
|
||||
|
||||
|
@ -38,6 +40,7 @@ void ChatRoomModel::setChatid(int newChatid)
|
|||
if (m_chatid == newChatid)
|
||||
return;
|
||||
m_chatid = newChatid;
|
||||
beginResetModel();
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
chatlist = ctx->getMsgIdList(m_chatid);
|
||||
// limit mess display
|
||||
|
@ -53,6 +56,7 @@ void ChatRoomModel::setChatid(int newChatid)
|
|||
auto chat = ctx->getChat(m_chatid);
|
||||
m_group = chat->getType() == DC_CHAT_TYPE_GROUP;
|
||||
time->start(3000);
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
bool ChatRoomModel::checkSignal(uint32_t accountId, int chatId)
|
||||
|
@ -77,7 +81,7 @@ QString ChatRoomModel::displayQrCode(const std::shared_ptr<dc::Lot>& lot, bool&
|
|||
ret = QObject::tr("Chat with : ") + ctx->getContact(id)->getAddr();
|
||||
break;
|
||||
case DC_QR_ASK_VERIFYGROUP:
|
||||
ret = QObject::tr("Tap to join group: ") + lot->getText1();
|
||||
ret = QObject::tr("Chat with group: ") + lot->getText1();
|
||||
break;
|
||||
default:
|
||||
valid = false;
|
||||
|
@ -221,6 +225,14 @@ void ChatRoomModel::onMessageDelivered(uint32_t accountId, int chatId, int msg_i
|
|||
}
|
||||
}
|
||||
|
||||
void ChatRoomModel::onChatListChange(uint32_t accountId, int chatId)
|
||||
{
|
||||
if (!checkSignal(accountId, chatId)) {
|
||||
return;
|
||||
}
|
||||
emit this->activeChanged();
|
||||
}
|
||||
|
||||
void ChatRoomModel::rowChange()
|
||||
{
|
||||
|
||||
|
@ -341,3 +353,9 @@ ChatRoomModel::~ChatRoomModel()
|
|||
delete time;
|
||||
chatlist.clear();
|
||||
}
|
||||
|
||||
bool ChatRoomModel::getActive() const
|
||||
{
|
||||
auto chat = dc::Account::getInstance()->getSelectedAccount()->getChat(m_chatid);
|
||||
return chat->canSend();
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
class ChatRoomModel : public QAbstractListModel {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(bool active READ getActive NOTIFY activeChanged FINAL)
|
||||
|
||||
private:
|
||||
int mess_count = 20;
|
||||
int current_count;
|
||||
|
@ -49,15 +51,20 @@ public:
|
|||
Q_INVOKABLE void clearAllMsg();
|
||||
// QAbstractItemModel interface
|
||||
QHash<int, QByteArray> roleNames() const;
|
||||
bool getActive() const;
|
||||
|
||||
public slots:
|
||||
void onIncomingMessage(uint32_t accountId, int chatId, int msgId);
|
||||
void onOutGoingMessage(uint32_t accountId, int chatId, int msgid);
|
||||
// void onChatListItemChange(uint32_t accountId, int chatId);
|
||||
void onContactRemove(uint32_t accountId, int chatId, int contact_id);
|
||||
void onMessageDelivered(uint32_t accountId, int chatId, int msg_id);
|
||||
void onChatListChange(uint32_t accountId, int chatId);
|
||||
signals:
|
||||
void updateData();
|
||||
|
||||
void activeChanged();
|
||||
|
||||
private:
|
||||
void rowChange();
|
||||
void markAsRead();
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
ChatContact::ChatContact(QObject* parent)
|
||||
: QAbstractListModel { parent }
|
||||
{
|
||||
m_chatid = ChatCore::getMediator()->getChatId();
|
||||
m_contacts = dc::Account::getInstance()->getSelectedAccount()->getChatContacts(m_chatid);
|
||||
// m_chatid = ChatCore::getMediator()->getChatId();
|
||||
// m_contacts = dc::Account::getInstance()->getSelectedAccount()->getChatContacts(m_chatid);
|
||||
}
|
||||
|
||||
int ChatContact::rowCount(const QModelIndex& parent) const
|
||||
|
@ -41,12 +41,6 @@ QHash<int, QByteArray> ChatContact::roleNames() const
|
|||
return res;
|
||||
}
|
||||
|
||||
QString ChatContact::chatName()
|
||||
{
|
||||
auto chat = dc::Account::getInstance()->getSelectedAccount()->getChat(m_chatid);
|
||||
return chat->getName();
|
||||
}
|
||||
|
||||
int ChatContact::getNuser() const
|
||||
{
|
||||
return m_contacts.size();
|
||||
|
@ -63,6 +57,32 @@ void ChatContact::removeContact(int id)
|
|||
emit this->nuserChanged();
|
||||
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->removeContactFromChat(m_chatid, id);
|
||||
ctx->removeContactFromChat(m_chatId, id);
|
||||
}
|
||||
}
|
||||
|
||||
int ChatContact::getChatId() const
|
||||
{
|
||||
return m_chatId;
|
||||
}
|
||||
|
||||
void ChatContact::setChatId(int newChatId)
|
||||
{
|
||||
if (m_chatId == newChatId)
|
||||
return;
|
||||
m_chatId = newChatId;
|
||||
beginResetModel();
|
||||
m_contacts = dc::Account::getInstance()->getSelectedAccount()->getChatContacts(m_chatId);
|
||||
endResetModel();
|
||||
emit chatNameChanged();
|
||||
emit chatIdChanged();
|
||||
}
|
||||
|
||||
QString ChatContact::getChatName() const
|
||||
{
|
||||
if (m_chatId >= 0) {
|
||||
auto chat = dc::Account::getInstance()->getSelectedAccount()->getChat(m_chatId);
|
||||
return chat->getName();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
@ -7,8 +7,9 @@ class ChatContact : public QAbstractListModel {
|
|||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(int nuser READ getNuser NOTIFY nuserChanged FINAL)
|
||||
Q_PROPERTY(int chatId READ getChatId WRITE setChatId NOTIFY chatIdChanged FINAL)
|
||||
Q_PROPERTY(QString chatName READ getChatName NOTIFY chatNameChanged FINAL)
|
||||
private:
|
||||
int m_chatid;
|
||||
QList<uint32_t> m_contacts;
|
||||
|
||||
enum ChatRole {
|
||||
|
@ -16,6 +17,8 @@ private:
|
|||
Id
|
||||
};
|
||||
|
||||
int m_chatId = -1;
|
||||
|
||||
public:
|
||||
explicit ChatContact(QObject* parent = nullptr);
|
||||
|
||||
|
@ -25,12 +28,18 @@ public:
|
|||
QVariant data(const QModelIndex& index, int role) const;
|
||||
QHash<int, QByteArray> roleNames() const;
|
||||
|
||||
Q_INVOKABLE QString chatName();
|
||||
int getNuser() const;
|
||||
|
||||
Q_INVOKABLE void removeContact(int id);
|
||||
int getChatId() const;
|
||||
void setChatId(int newChatId);
|
||||
|
||||
QString getChatName() const;
|
||||
|
||||
signals:
|
||||
void nuserChanged();
|
||||
void chatIdChanged();
|
||||
void chatNameChanged();
|
||||
};
|
||||
|
||||
#endif // CHATCONTACT_H
|
||||
|
|
|
@ -41,7 +41,7 @@ bool ContactCheckListModel::setData(const QModelIndex& index, const QVariant& va
|
|||
if (role == Role::Check) {
|
||||
|
||||
bool data = value.toBool();
|
||||
qDebug() << "data change to " + QString::number(data);
|
||||
// qDebug() << "data change to " + QString::number(data);
|
||||
int row = index.row();
|
||||
check_list.removeAt(row);
|
||||
check_list.insert(row, data);
|
||||
|
@ -67,7 +67,7 @@ void ContactCheckListModel::createChat(const QString& name, bool sercure)
|
|||
if (!sercure) {
|
||||
|
||||
// add memner in check list if not sercure
|
||||
for (int i = 0; i < check_list.size(); i++) {
|
||||
for (int i = 0; i < contact_list.size(); i++) {
|
||||
if (check_list.at(i)) {
|
||||
ctx->addContactToChat(id, contact_list.at(i));
|
||||
d++;
|
||||
|
@ -76,7 +76,44 @@ void ContactCheckListModel::createChat(const QString& name, bool sercure)
|
|||
}
|
||||
}
|
||||
|
||||
void ContactCheckListModel::addContactToChat(int id)
|
||||
{
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
for (int i = 0; i < contact_list.size(); i++) {
|
||||
if (check_list.at(i)) {
|
||||
ctx->addContactToChat(id, contact_list.at(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ContactCheckListModel::editRole()
|
||||
{
|
||||
return Role::Check;
|
||||
}
|
||||
|
||||
int ContactCheckListModel::getChatId() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
void ContactCheckListModel::setChatId(int newId)
|
||||
{
|
||||
if (m_id == newId)
|
||||
return;
|
||||
m_id = newId;
|
||||
// remove all contact in chat
|
||||
beginResetModel();
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
contact_list = ctx->getContacts(0, "");
|
||||
auto rlist = ctx->getChatContacts(m_id);
|
||||
for (auto rid : rlist) {
|
||||
int pos = contact_list.indexOf(rid);
|
||||
if (pos >= 0)
|
||||
contact_list.removeAt(pos);
|
||||
}
|
||||
for (int i = 0; i < contact_list.size(); i++) {
|
||||
check_list.append(false);
|
||||
}
|
||||
endResetModel();
|
||||
emit chatIdChanged();
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
// show contact and ckecklist box
|
||||
class ContactCheckListModel : public QAbstractListModel {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int chatId READ getChatId WRITE setChatId NOTIFY chatIdChanged FINAL)
|
||||
private:
|
||||
enum Role {
|
||||
Id = Qt::UserRole + 1,
|
||||
|
@ -15,7 +16,7 @@ private:
|
|||
|
||||
QList<int> contact_list;
|
||||
QList<bool> check_list;
|
||||
int chat_id = -1;
|
||||
int m_id;
|
||||
|
||||
public:
|
||||
explicit ContactCheckListModel(QObject* parent = nullptr);
|
||||
|
@ -28,7 +29,12 @@ public:
|
|||
QHash<int, QByteArray> roleNames() const;
|
||||
|
||||
Q_INVOKABLE void createChat(const QString& name, bool sercure = false);
|
||||
Q_INVOKABLE void addContactToChat(int id);
|
||||
Q_INVOKABLE int editRole();
|
||||
int getChatId() const;
|
||||
void setChatId(int newId);
|
||||
signals:
|
||||
void chatIdChanged();
|
||||
};
|
||||
|
||||
#endif // CONTACTCHECKLISTMODEL_H
|
||||
|
|
|
@ -6,23 +6,30 @@ MessageModel::MessageModel(QObject* parent)
|
|||
: QObject { parent }
|
||||
{
|
||||
auto med = ChatCore::getMediator();
|
||||
setId(med->getChatId());
|
||||
// setId(med->getChatId());
|
||||
}
|
||||
|
||||
MessageModel::~MessageModel()
|
||||
{
|
||||
}
|
||||
|
||||
void MessageModel::setId(int newId)
|
||||
{
|
||||
if (m_id == newId)
|
||||
return;
|
||||
m_id = newId;
|
||||
emit idChanged();
|
||||
}
|
||||
|
||||
void MessageModel::sendText(const QString& Text)
|
||||
{
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->sendTextMessage(m_id, Text);
|
||||
if (m_chatId > 0) {
|
||||
auto ctx = dc::Account::getInstance()->getSelectedAccount();
|
||||
ctx->sendTextMessage(m_chatId, Text);
|
||||
}
|
||||
}
|
||||
|
||||
int MessageModel::getChatId() const
|
||||
{
|
||||
return m_chatId;
|
||||
}
|
||||
|
||||
void MessageModel::setChatId(int newChatId)
|
||||
{
|
||||
if (m_chatId == newChatId)
|
||||
return;
|
||||
m_chatId = newChatId;
|
||||
emit chatIdChanged();
|
||||
}
|
||||
|
|
|
@ -6,18 +6,21 @@
|
|||
class MessageModel : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(int chatId READ getChatId WRITE setChatId NOTIFY chatIdChanged FINAL)
|
||||
public:
|
||||
explicit MessageModel(QObject* parent = nullptr);
|
||||
~MessageModel();
|
||||
|
||||
Q_INVOKABLE void sendText(const QString& Text);
|
||||
int getChatId() const;
|
||||
void setChatId(int newChatId);
|
||||
|
||||
signals:
|
||||
void idChanged();
|
||||
|
||||
void chatIdChanged();
|
||||
|
||||
private:
|
||||
// chat id
|
||||
void setId(int newId);
|
||||
int m_id;
|
||||
int m_chatId = -1;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(MessageModel*);
|
||||
|
|
|
@ -7,6 +7,8 @@ ChatStack::ChatStack(QObject* par)
|
|||
|
||||
ChatStack::~ChatStack()
|
||||
{
|
||||
map.clear();
|
||||
stack.clear();
|
||||
}
|
||||
|
||||
void ChatStack::pushView(const QString& url)
|
||||
|
@ -29,3 +31,15 @@ void ChatStack::clearStackView()
|
|||
{
|
||||
stack.clear();
|
||||
}
|
||||
|
||||
void ChatStack::pushMap(const QString& key, const QVariant& data)
|
||||
{
|
||||
map[key] = data;
|
||||
}
|
||||
|
||||
QVariant ChatStack::popMap(const QString& key)
|
||||
{
|
||||
auto data = map[key];
|
||||
map.remove(key);
|
||||
return data;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef CHATSTACK_H
|
||||
#define CHATSTACK_H
|
||||
|
||||
#include <QHash>
|
||||
#include <QList>
|
||||
#include <QObject>
|
||||
|
||||
|
@ -9,6 +10,7 @@ class ChatStack : public QObject {
|
|||
Q_OBJECT
|
||||
private:
|
||||
QList<QString> stack;
|
||||
QHash<QString, QVariant> map;
|
||||
|
||||
public:
|
||||
ChatStack(QObject* par = nullptr);
|
||||
|
@ -17,6 +19,9 @@ public:
|
|||
Q_INVOKABLE void pushView(const QString& url);
|
||||
Q_INVOKABLE QString popView();
|
||||
Q_INVOKABLE void clearStackView();
|
||||
|
||||
Q_INVOKABLE void pushMap(const QString& key, const QVariant& data);
|
||||
Q_INVOKABLE QVariant popMap(const QString& key);
|
||||
};
|
||||
|
||||
#endif // CHATSTACK_H
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue