diff --git a/.gitignore b/.gitignore index c64c2ff..56a16f4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ moc_*.cpp qrc_*.cpp .qmake.stash Makefile +.DS_Store \ No newline at end of file diff --git a/moc_predefs.h b/moc_predefs.h new file mode 100644 index 0000000..b262c27 --- /dev/null +++ b/moc_predefs.h @@ -0,0 +1,546 @@ +#define TARGET_IPHONE_SIMULATOR 0 +#define TARGET_OS_ARROW 1 +#define TARGET_OS_BRIDGE 0 +#define TARGET_OS_DRIVERKIT 0 +#define TARGET_OS_EMBEDDED 0 +#define TARGET_OS_IOS 0 +#define TARGET_OS_IOSMAC 0 +#define TARGET_OS_IPHONE 0 +#define TARGET_OS_LINUX 0 +#define TARGET_OS_MAC 1 +#define TARGET_OS_MACCATALYST 0 +#define TARGET_OS_NANO 0 +#define TARGET_OS_OSX 1 +#define TARGET_OS_SIMULATOR 0 +#define TARGET_OS_TV 0 +#define TARGET_OS_UEFI 0 +#define TARGET_OS_UIKITFORMAC 0 +#define TARGET_OS_UNIX 0 +#define TARGET_OS_VISION 0 +#define TARGET_OS_WATCH 0 +#define TARGET_OS_WIN32 0 +#define TARGET_OS_WINDOWS 0 +#define TARGET_OS_XR 0 +#define _HAS_BUILTIN_AVAILABLE_FEATS 1 +#define _LP64 1 +#define __AARCH64EL__ 1 +#define __AARCH64_CMODEL_SMALL__ 1 +#define __AARCH64_SIMD__ 1 +#define __APPLE_CC__ 6000 +#define __APPLE__ 1 +#define __ARM64_ARCH_8__ 1 +#define __ARM_64BIT_STATE 1 +#define __ARM_ACLE 202420 +#define __ARM_ACLE_VERSION(year,quarter,patch) (100 * (year) + 10 * (quarter) + (patch)) +#define __ARM_ALIGN_MAX_STACK_PWR 4 +#define __ARM_ARCH 8 +#define __ARM_ARCH_8_2__ 1 +#define __ARM_ARCH_8_3__ 1 +#define __ARM_ARCH_8_4__ 1 +#define __ARM_ARCH_8_5__ 1 +#define __ARM_ARCH_ISA_A64 1 +#define __ARM_ARCH_PROFILE 'A' +#define __ARM_FEATURE_AES 1 +#define __ARM_FEATURE_ATOMICS 1 +#define __ARM_FEATURE_BTI 1 +#define __ARM_FEATURE_CLZ 1 +#define __ARM_FEATURE_COMPLEX 1 +#define __ARM_FEATURE_CRC32 1 +#define __ARM_FEATURE_CRYPTO 1 +#define __ARM_FEATURE_DIRECTED_ROUNDING 1 +#define __ARM_FEATURE_DIV 1 +#define __ARM_FEATURE_DOTPROD 1 +#define __ARM_FEATURE_FMA 1 +#define __ARM_FEATURE_FP16_FML 1 +#define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC 1 +#define __ARM_FEATURE_FP16_VECTOR_ARITHMETIC 1 +#define __ARM_FEATURE_FRINT 1 +#define __ARM_FEATURE_IDIV 1 +#define __ARM_FEATURE_JCVT 1 +#define __ARM_FEATURE_LDREX 0xF +#define __ARM_FEATURE_NUMERIC_MAXMIN 1 +#define __ARM_FEATURE_PAUTH 1 +#define __ARM_FEATURE_QRDMX 1 +#define __ARM_FEATURE_RCPC 1 +#define __ARM_FEATURE_SHA2 1 +#define __ARM_FEATURE_SHA3 1 +#define __ARM_FEATURE_SHA512 1 +#define __ARM_FEATURE_UNALIGNED 1 +#define __ARM_FP 0xE +#define __ARM_FP16_ARGS 1 +#define __ARM_FP16_FORMAT_IEEE 1 +#define __ARM_NEON 1 +#define __ARM_NEON_FP 0xE +#define __ARM_NEON_SVE_BRIDGE 1 +#define __ARM_NEON__ 1 +#define __ARM_PCS_AAPCS64 1 +#define __ARM_SIZEOF_MINIMAL_ENUM 4 +#define __ARM_SIZEOF_WCHAR_T 4 +#define __ARM_STATE_ZA 1 +#define __ARM_STATE_ZT0 1 +#define __ATOMIC_ACQUIRE 2 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_CONSUME 1 +#define __ATOMIC_RELAXED 0 +#define __ATOMIC_RELEASE 3 +#define __ATOMIC_SEQ_CST 5 +#define __BIGGEST_ALIGNMENT__ 8 +#define __BITINT_MAXWIDTH__ 128 +#define __BLOCKS__ 1 +#define __BOOL_WIDTH__ 1 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __CHAR16_TYPE__ unsigned short +#define __CHAR32_TYPE__ unsigned int +#define __CHAR_BIT__ 8 +#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 +#define __CLANG_ATOMIC_INT_LOCK_FREE 2 +#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_LONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 +#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 +#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __CONSTANT_CFSTRINGS__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +#define __DBL_DIG__ 15 +#define __DBL_EPSILON__ 2.2204460492503131e-16 +#define __DBL_HAS_DENORM__ 1 +#define __DBL_HAS_INFINITY__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __DBL_MANT_DIG__ 53 +#define __DBL_MAX_10_EXP__ 308 +#define __DBL_MAX_EXP__ 1024 +#define __DBL_MAX__ 1.7976931348623157e+308 +#define __DBL_MIN_10_EXP__ (-307) +#define __DBL_MIN_EXP__ (-1021) +#define __DBL_MIN__ 2.2250738585072014e-308 +#define __DBL_NORM_MAX__ 1.7976931348623157e+308 +#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +#define __DEPRECATED 1 +#define __DYNAMIC__ 1 +#define __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ 140000 +#define __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ 140000 +#define __EXCEPTIONS 1 +#define __FINITE_MATH_ONLY__ 0 +#define __FLT16_DECIMAL_DIG__ 5 +#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 +#define __FLT16_DIG__ 3 +#define __FLT16_EPSILON__ 9.765625e-4F16 +#define __FLT16_HAS_DENORM__ 1 +#define __FLT16_HAS_INFINITY__ 1 +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __FLT16_MANT_DIG__ 11 +#define __FLT16_MAX_10_EXP__ 4 +#define __FLT16_MAX_EXP__ 16 +#define __FLT16_MAX__ 6.5504e+4F16 +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT16_MIN_EXP__ (-13) +#define __FLT16_MIN__ 6.103515625e-5F16 +#define __FLT16_NORM_MAX__ 6.5504e+4F16 +#define __FLT_DECIMAL_DIG__ 9 +#define __FLT_DENORM_MIN__ 1.40129846e-45F +#define __FLT_DIG__ 6 +#define __FLT_EPSILON__ 1.19209290e-7F +#define __FLT_HAS_DENORM__ 1 +#define __FLT_HAS_INFINITY__ 1 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MANT_DIG__ 24 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT_MAX_EXP__ 128 +#define __FLT_MAX__ 3.40282347e+38F +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT_MIN_EXP__ (-125) +#define __FLT_MIN__ 1.17549435e-38F +#define __FLT_NORM_MAX__ 3.40282347e+38F +#define __FLT_RADIX__ 2 +#define __FPCLASS_NEGINF 0x0004 +#define __FPCLASS_NEGNORMAL 0x0008 +#define __FPCLASS_NEGSUBNORMAL 0x0010 +#define __FPCLASS_NEGZERO 0x0020 +#define __FPCLASS_POSINF 0x0200 +#define __FPCLASS_POSNORMAL 0x0100 +#define __FPCLASS_POSSUBNORMAL 0x0080 +#define __FPCLASS_POSZERO 0x0040 +#define __FPCLASS_QNAN 0x0002 +#define __FPCLASS_SNAN 0x0001 +#define __FP_FAST_FMA 1 +#define __FP_FAST_FMAF 1 +#define __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL 202430 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __GCC_DESTRUCTIVE_SIZE 256 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __GNUC_GNU_INLINE__ 1 +#define __GNUC_MINOR__ 2 +#define __GNUC_PATCHLEVEL__ 1 +#define __GNUC__ 4 +#define __GNUG__ 4 +#define __GXX_ABI_VERSION 1002 +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __GXX_RTTI 1 +#define __GXX_WEAK__ 1 +#define __HAVE_FUNCTION_MULTI_VERSIONING 1 +#define __INT16_C(c) c +#define __INT16_C_SUFFIX__ +#define __INT16_FMTd__ "hd" +#define __INT16_FMTi__ "hi" +#define __INT16_MAX__ 32767 +#define __INT16_TYPE__ short +#define __INT32_C(c) c +#define __INT32_C_SUFFIX__ +#define __INT32_FMTd__ "d" +#define __INT32_FMTi__ "i" +#define __INT32_MAX__ 2147483647 +#define __INT32_TYPE__ int +#define __INT64_C(c) c##LL +#define __INT64_C_SUFFIX__ LL +#define __INT64_FMTd__ "lld" +#define __INT64_FMTi__ "lli" +#define __INT64_MAX__ 9223372036854775807LL +#define __INT64_TYPE__ long long int +#define __INT8_C(c) c +#define __INT8_C_SUFFIX__ +#define __INT8_FMTd__ "hhd" +#define __INT8_FMTi__ "hhi" +#define __INT8_MAX__ 127 +#define __INT8_TYPE__ signed char +#define __INTMAX_C(c) c##L +#define __INTMAX_C_SUFFIX__ L +#define __INTMAX_FMTd__ "ld" +#define __INTMAX_FMTi__ "li" +#define __INTMAX_MAX__ 9223372036854775807L +#define __INTMAX_TYPE__ long int +#define __INTMAX_WIDTH__ 64 +#define __INTPTR_FMTd__ "ld" +#define __INTPTR_FMTi__ "li" +#define __INTPTR_MAX__ 9223372036854775807L +#define __INTPTR_TYPE__ long int +#define __INTPTR_WIDTH__ 64 +#define __INT_FAST16_FMTd__ "hd" +#define __INT_FAST16_FMTi__ "hi" +#define __INT_FAST16_MAX__ 32767 +#define __INT_FAST16_TYPE__ short +#define __INT_FAST16_WIDTH__ 16 +#define __INT_FAST32_FMTd__ "d" +#define __INT_FAST32_FMTi__ "i" +#define __INT_FAST32_MAX__ 2147483647 +#define __INT_FAST32_TYPE__ int +#define __INT_FAST32_WIDTH__ 32 +#define __INT_FAST64_FMTd__ "lld" +#define __INT_FAST64_FMTi__ "lli" +#define __INT_FAST64_MAX__ 9223372036854775807LL +#define __INT_FAST64_TYPE__ long long int +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST8_FMTd__ "hhd" +#define __INT_FAST8_FMTi__ "hhi" +#define __INT_FAST8_MAX__ 127 +#define __INT_FAST8_TYPE__ signed char +#define __INT_FAST8_WIDTH__ 8 +#define __INT_LEAST16_FMTd__ "hd" +#define __INT_LEAST16_FMTi__ "hi" +#define __INT_LEAST16_MAX__ 32767 +#define __INT_LEAST16_TYPE__ short +#define __INT_LEAST16_WIDTH__ 16 +#define __INT_LEAST32_FMTd__ "d" +#define __INT_LEAST32_FMTi__ "i" +#define __INT_LEAST32_MAX__ 2147483647 +#define __INT_LEAST32_TYPE__ int +#define __INT_LEAST32_WIDTH__ 32 +#define __INT_LEAST64_FMTd__ "lld" +#define __INT_LEAST64_FMTi__ "lli" +#define __INT_LEAST64_MAX__ 9223372036854775807LL +#define __INT_LEAST64_TYPE__ long long int +#define __INT_LEAST64_WIDTH__ 64 +#define __INT_LEAST8_FMTd__ "hhd" +#define __INT_LEAST8_FMTi__ "hhi" +#define __INT_LEAST8_MAX__ 127 +#define __INT_LEAST8_TYPE__ signed char +#define __INT_LEAST8_WIDTH__ 8 +#define __INT_MAX__ 2147483647 +#define __INT_WIDTH__ 32 +#define __LDBL_DECIMAL_DIG__ 17 +#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L +#define __LDBL_DIG__ 15 +#define __LDBL_EPSILON__ 2.2204460492503131e-16L +#define __LDBL_HAS_DENORM__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __LDBL_MANT_DIG__ 53 +#define __LDBL_MAX_10_EXP__ 308 +#define __LDBL_MAX_EXP__ 1024 +#define __LDBL_MAX__ 1.7976931348623157e+308L +#define __LDBL_MIN_10_EXP__ (-307) +#define __LDBL_MIN_EXP__ (-1021) +#define __LDBL_MIN__ 2.2250738585072014e-308L +#define __LDBL_NORM_MAX__ 1.7976931348623157e+308L +#define __LITTLE_ENDIAN__ 1 +#define __LLONG_WIDTH__ 64 +#define __LONG_LONG_MAX__ 9223372036854775807LL +#define __LONG_MAX__ 9223372036854775807L +#define __LONG_WIDTH__ 64 +#define __LP64__ 1 +#define __MACH__ 1 +#define __MEMORY_SCOPE_DEVICE 1 +#define __MEMORY_SCOPE_SINGLE 4 +#define __MEMORY_SCOPE_SYSTEM 0 +#define __MEMORY_SCOPE_WRKGRP 2 +#define __MEMORY_SCOPE_WVFRNT 3 +#define __NO_MATH_ERRNO__ 1 +#define __OBJC_BOOL_IS_BOOL 1 +#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 +#define __OPENCL_MEMORY_SCOPE_DEVICE 2 +#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 +#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 +#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 +#define __OPTIMIZE__ 1 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __ORDER_PDP_ENDIAN__ 3412 +#define __PIC__ 2 +#define __POINTER_WIDTH__ 64 +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __PTRDIFF_FMTd__ "ld" +#define __PTRDIFF_FMTi__ "li" +#define __PTRDIFF_MAX__ 9223372036854775807L +#define __PTRDIFF_TYPE__ long int +#define __PTRDIFF_WIDTH__ 64 +#define __REGISTER_PREFIX__ +#define __SCHAR_MAX__ 127 +#define __SHRT_MAX__ 32767 +#define __SHRT_WIDTH__ 16 +#define __SIG_ATOMIC_MAX__ 2147483647 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __SIZEOF_DOUBLE__ 8 +#define __SIZEOF_FLOAT__ 4 +#define __SIZEOF_INT128__ 16 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_LONG_DOUBLE__ 8 +#define __SIZEOF_LONG_LONG__ 8 +#define __SIZEOF_LONG__ 8 +#define __SIZEOF_POINTER__ 8 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __SIZEOF_SHORT__ 2 +#define __SIZEOF_SIZE_T__ 8 +#define __SIZEOF_WCHAR_T__ 4 +#define __SIZEOF_WINT_T__ 4 +#define __SIZE_FMTX__ "lX" +#define __SIZE_FMTo__ "lo" +#define __SIZE_FMTu__ "lu" +#define __SIZE_FMTx__ "lx" +#define __SIZE_MAX__ 18446744073709551615UL +#define __SIZE_TYPE__ long unsigned int +#define __SIZE_WIDTH__ 64 +#define __SSP__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL +#define __STDCPP_THREADS__ 1 +#define __STDC_EMBED_EMPTY__ 2 +#define __STDC_EMBED_FOUND__ 1 +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __STDC_HOSTED__ 1 +#define __STDC_NO_THREADS__ 1 +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 +#define __STDC__ 1 +#define __UINT16_C(c) c +#define __UINT16_C_SUFFIX__ +#define __UINT16_FMTX__ "hX" +#define __UINT16_FMTo__ "ho" +#define __UINT16_FMTu__ "hu" +#define __UINT16_FMTx__ "hx" +#define __UINT16_MAX__ 65535 +#define __UINT16_TYPE__ unsigned short +#define __UINT32_C(c) c##U +#define __UINT32_C_SUFFIX__ U +#define __UINT32_FMTX__ "X" +#define __UINT32_FMTo__ "o" +#define __UINT32_FMTu__ "u" +#define __UINT32_FMTx__ "x" +#define __UINT32_MAX__ 4294967295U +#define __UINT32_TYPE__ unsigned int +#define __UINT64_C(c) c##ULL +#define __UINT64_C_SUFFIX__ ULL +#define __UINT64_FMTX__ "llX" +#define __UINT64_FMTo__ "llo" +#define __UINT64_FMTu__ "llu" +#define __UINT64_FMTx__ "llx" +#define __UINT64_MAX__ 18446744073709551615ULL +#define __UINT64_TYPE__ long long unsigned int +#define __UINT8_C(c) c +#define __UINT8_C_SUFFIX__ +#define __UINT8_FMTX__ "hhX" +#define __UINT8_FMTo__ "hho" +#define __UINT8_FMTu__ "hhu" +#define __UINT8_FMTx__ "hhx" +#define __UINT8_MAX__ 255 +#define __UINT8_TYPE__ unsigned char +#define __UINTMAX_C(c) c##UL +#define __UINTMAX_C_SUFFIX__ UL +#define __UINTMAX_FMTX__ "lX" +#define __UINTMAX_FMTo__ "lo" +#define __UINTMAX_FMTu__ "lu" +#define __UINTMAX_FMTx__ "lx" +#define __UINTMAX_MAX__ 18446744073709551615UL +#define __UINTMAX_TYPE__ long unsigned int +#define __UINTMAX_WIDTH__ 64 +#define __UINTPTR_FMTX__ "lX" +#define __UINTPTR_FMTo__ "lo" +#define __UINTPTR_FMTu__ "lu" +#define __UINTPTR_FMTx__ "lx" +#define __UINTPTR_MAX__ 18446744073709551615UL +#define __UINTPTR_TYPE__ long unsigned int +#define __UINTPTR_WIDTH__ 64 +#define __UINT_FAST16_FMTX__ "hX" +#define __UINT_FAST16_FMTo__ "ho" +#define __UINT_FAST16_FMTu__ "hu" +#define __UINT_FAST16_FMTx__ "hx" +#define __UINT_FAST16_MAX__ 65535 +#define __UINT_FAST16_TYPE__ unsigned short +#define __UINT_FAST32_FMTX__ "X" +#define __UINT_FAST32_FMTo__ "o" +#define __UINT_FAST32_FMTu__ "u" +#define __UINT_FAST32_FMTx__ "x" +#define __UINT_FAST32_MAX__ 4294967295U +#define __UINT_FAST32_TYPE__ unsigned int +#define __UINT_FAST64_FMTX__ "llX" +#define __UINT_FAST64_FMTo__ "llo" +#define __UINT_FAST64_FMTu__ "llu" +#define __UINT_FAST64_FMTx__ "llx" +#define __UINT_FAST64_MAX__ 18446744073709551615ULL +#define __UINT_FAST64_TYPE__ long long unsigned int +#define __UINT_FAST8_FMTX__ "hhX" +#define __UINT_FAST8_FMTo__ "hho" +#define __UINT_FAST8_FMTu__ "hhu" +#define __UINT_FAST8_FMTx__ "hhx" +#define __UINT_FAST8_MAX__ 255 +#define __UINT_FAST8_TYPE__ unsigned char +#define __UINT_LEAST16_FMTX__ "hX" +#define __UINT_LEAST16_FMTo__ "ho" +#define __UINT_LEAST16_FMTu__ "hu" +#define __UINT_LEAST16_FMTx__ "hx" +#define __UINT_LEAST16_MAX__ 65535 +#define __UINT_LEAST16_TYPE__ unsigned short +#define __UINT_LEAST32_FMTX__ "X" +#define __UINT_LEAST32_FMTo__ "o" +#define __UINT_LEAST32_FMTu__ "u" +#define __UINT_LEAST32_FMTx__ "x" +#define __UINT_LEAST32_MAX__ 4294967295U +#define __UINT_LEAST32_TYPE__ unsigned int +#define __UINT_LEAST64_FMTX__ "llX" +#define __UINT_LEAST64_FMTo__ "llo" +#define __UINT_LEAST64_FMTu__ "llu" +#define __UINT_LEAST64_FMTx__ "llx" +#define __UINT_LEAST64_MAX__ 18446744073709551615ULL +#define __UINT_LEAST64_TYPE__ long long unsigned int +#define __UINT_LEAST8_FMTX__ "hhX" +#define __UINT_LEAST8_FMTo__ "hho" +#define __UINT_LEAST8_FMTu__ "hhu" +#define __UINT_LEAST8_FMTx__ "hhx" +#define __UINT_LEAST8_MAX__ 255 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __USER_LABEL_PREFIX__ _ +#define __VERSION__ "Apple LLVM 21.0.0 (clang-2100.1.1.101)" +#define __WCHAR_MAX__ 2147483647 +#define __WCHAR_TYPE__ int +#define __WCHAR_WIDTH__ 32 +#define __WINT_MAX__ 2147483647 +#define __WINT_TYPE__ int +#define __WINT_WIDTH__ 32 +#define __aarch64__ 1 +#define __apple_build_version__ 21000101 +#define __arm64 1 +#define __arm64__ 1 +#define __block __attribute__((__blocks__(byref))) +#define __clang__ 1 +#define __clang_literal_encoding__ "UTF-8" +#define __clang_major__ 21 +#define __clang_minor__ 0 +#define __clang_patchlevel__ 0 +#define __clang_version__ "21.0.0 (clang-2100.1.1.101)" +#define __clang_wide_literal_encoding__ "UTF-32" +#define __cplusplus 201703L +#define __cpp_aggregate_bases 201603L +#define __cpp_aggregate_nsdmi 201304L +#define __cpp_alias_templates 200704L +#define __cpp_aligned_new 201606L +#define __cpp_attributes 200809L +#define __cpp_binary_literals 201304L +#define __cpp_capture_star_this 201603L +#define __cpp_constexpr 201603L +#define __cpp_constexpr_in_decltype 201711L +#define __cpp_decltype 200707L +#define __cpp_decltype_auto 201304L +#define __cpp_deduction_guides 201703L +#define __cpp_delegating_constructors 200604L +#define __cpp_deleted_function 202403L +#define __cpp_digit_separators 201309L +#define __cpp_enumerator_attributes 201411L +#define __cpp_exceptions 199711L +#define __cpp_fold_expressions 201603L +#define __cpp_generic_lambdas 201304L +#define __cpp_guaranteed_copy_elision 201606L +#define __cpp_hex_float 201603L +#define __cpp_if_constexpr 201606L +#define __cpp_impl_destroying_delete 201806L +#define __cpp_inheriting_constructors 201511L +#define __cpp_init_captures 201304L +#define __cpp_initializer_lists 200806L +#define __cpp_inline_variables 201606L +#define __cpp_lambdas 200907L +#define __cpp_named_character_escapes 202207L +#define __cpp_namespace_attributes 201411L +#define __cpp_nested_namespace_definitions 201411L +#define __cpp_noexcept_function_type 201510L +#define __cpp_nontype_template_args 201411L +#define __cpp_nontype_template_parameter_auto 201606L +#define __cpp_nsdmi 200809L +#define __cpp_pack_indexing 202311L +#define __cpp_placeholder_variables 202306L +#define __cpp_range_based_for 201603L +#define __cpp_raw_strings 200710L +#define __cpp_ref_qualifiers 200710L +#define __cpp_return_type_deduction 201304L +#define __cpp_rtti 199711L +#define __cpp_rvalue_references 200610L +#define __cpp_static_assert 202306L +#define __cpp_static_call_operator 202207L +#define __cpp_structured_bindings 202411L +#define __cpp_template_auto 201606L +#define __cpp_template_template_args 201611L +#define __cpp_threadsafe_static_init 200806L +#define __cpp_unicode_characters 200704L +#define __cpp_unicode_literals 200710L +#define __cpp_user_defined_literals 200809L +#define __cpp_variable_templates 201304L +#define __cpp_variadic_friend 202403L +#define __cpp_variadic_templates 200704L +#define __cpp_variadic_using 201611L +#define __llvm__ 1 +#define __nonnull _Nonnull +#define __null_unspecified _Null_unspecified +#define __nullable _Nullable +#define __pic__ 2 +#define __private_extern__ extern +#define __strong +#define __unsafe_unretained +#define __weak __attribute__((objc_gc(weak))) diff --git a/omawrite.app/Contents/Info.plist b/omawrite.app/Contents/Info.plist new file mode 100644 index 0000000..6f966f3 --- /dev/null +++ b/omawrite.app/Contents/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleAllowMixedLocalizations + + CFBundleDevelopmentRegion + en + CFBundleExecutable + omawrite + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.omawrite + CFBundlePackageType + APPL + CFBundleSignature + ???? + LSMinimumSystemVersion + 14.0 + NOTE + This file was generated by Qt/QMake. + NSPrincipalClass + NSApplication + NSSupportsAutomaticGraphicsSwitching + + + diff --git a/omawrite.app/Contents/MacOS/omawrite b/omawrite.app/Contents/MacOS/omawrite new file mode 100755 index 0000000..e3132ab Binary files /dev/null and b/omawrite.app/Contents/MacOS/omawrite differ diff --git a/omawrite.app/Contents/PkgInfo b/omawrite.app/Contents/PkgInfo new file mode 100644 index 0000000..6f749b0 --- /dev/null +++ b/omawrite.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? diff --git a/src/backend.cpp b/src/backend.cpp index 90e279e..107b874 100644 --- a/src/backend.cpp +++ b/src/backend.cpp @@ -163,7 +163,7 @@ void Backend::setTextScale(qreal textScale) { return; m_textScale = textScale; - emit textScaleChanged(); + emit textScaleChanged(m_textScale); } void Backend::attachDocument(QObject *textDocument) { @@ -181,6 +181,7 @@ void Backend::attachDocument(QObject *textDocument) { m_highlighter = new MarkdownHighlighter(m_document); m_highlighter->setDarkMode(m_darkMode); m_highlighter->setColors(m_themeBackground, m_themeForeground, m_themeAccent); + m_highlighter->setTextScale(m_textScale); connect(m_document, &QTextDocument::contentsChange, this, [this](int position, int, int charsAdded) { @@ -192,6 +193,9 @@ void Backend::attachDocument(QObject *textDocument) { applyDocumentTypography(); restoreRecovery(); + + connect(this, &Backend::textScaleChanged, m_highlighter, + &MarkdownHighlighter::setTextScale); } void Backend::openDialog() { diff --git a/src/backend.h b/src/backend.h index 2429590..6794bfc 100644 --- a/src/backend.h +++ b/src/backend.h @@ -81,7 +81,7 @@ class Backend : public QObject { void statusChanged(); void wordCountChanged(); void darkModeChanged(); - void textScaleChanged(); + void textScaleChanged(qreal textScale); void themeColorsChanged(); void closeAfterSave(); void openDialogRequested(); diff --git a/src/markdownhighlighter.cpp b/src/markdownhighlighter.cpp index 99bc5de..8993694 100644 --- a/src/markdownhighlighter.cpp +++ b/src/markdownhighlighter.cpp @@ -40,6 +40,14 @@ void MarkdownHighlighter::setSearch(const QString &query, int currentMatchStart) rehighlight(); } +void MarkdownHighlighter::setTextScale(qreal textScale) { + if (qFuzzyCompare(m_textScale, textScale)) + return; + m_textScale = textScale; + rebuildFormats(); + rehighlight(); +} + void MarkdownHighlighter::rebuildFormats() { const QColor marker = m_darkMode ? QColor(QStringLiteral("#4f525a")) : QColor(QStringLiteral("#aeb1b5")); @@ -75,6 +83,13 @@ void MarkdownHighlighter::rebuildFormats() { m_headingFormat.setForeground(text); m_headingFormat.setFontWeight(QFont::Bold); + // Heading sizes are relative to the base font size (20px) scaled by textScale. + // Multipliers: H1=2.3, H2=2.1, H3=1.9, H4=1.7, H5=1.5, H6=1.3 + static const qreal headingSizeMultipliers[] = {2.3, 2.1, 1.9, 1.7, 1.5, 1.3}; + const qreal baseFontSize = 20.0; + for (int i = 0; i < 6; ++i) + m_headingSizes[i] = baseFontSize * headingSizeMultipliers[i] * m_textScale; + m_boldFormat = QTextCharFormat(); m_boldFormat.setFontWeight(QFont::Bold); m_boldFormat.setForeground(text); @@ -142,11 +157,19 @@ void MarkdownHighlighter::highlightMarkers(const QString &text) { static const QRegularExpression headingRe(QStringLiteral("^(#{1,6})(\\s+)(.*)$")); const QRegularExpressionMatch heading = headingRe.match(text); if (heading.hasMatch()) { - setFormat(0, heading.capturedLength(1) + heading.capturedLength(2), - m_markerFormat); - setFormat(heading.capturedStart(3), heading.capturedLength(3), - m_headingFormat); - return; + int headingLevel = heading.capturedLength(1); + if (headingLevel > 0) { + // Use QTextCharFormat on the entire block to apply the format in one call, + // eliminating the need for invisible marker characters and multiple setFormat() calls. + QTextCharFormat blockFormat = m_headingFormat; + blockFormat.setFontPointSize(m_headingSizes[headingLevel - 1]); + setFormat(heading.capturedStart(3), heading.capturedLength(3), blockFormat); + + QTextCharFormat markerBlockFormat = m_markerFormat; + markerBlockFormat.setFontPointSize(m_headingSizes[headingLevel - 1]); + setFormat(0, heading.capturedLength(1) + heading.capturedLength(2), markerBlockFormat); + return; + } } } diff --git a/src/markdownhighlighter.h b/src/markdownhighlighter.h index 59e969f..fe0a913 100644 --- a/src/markdownhighlighter.h +++ b/src/markdownhighlighter.h @@ -13,6 +13,7 @@ class MarkdownHighlighter : public QSyntaxHighlighter { void setDarkMode(bool darkMode); void setColors(const QString &background, const QString &foreground, const QString &accent); void setSearch(const QString &query, int currentMatchStart); + void setTextScale(qreal textScale); struct Span { int start; @@ -55,6 +56,8 @@ class MarkdownHighlighter : public QSyntaxHighlighter { QTextCharFormat m_linkFormat; QString m_searchQuery; int m_currentMatchStart = -1; + qreal m_textScale = 1.0; + qreal m_headingSizes[6]; QTextCharFormat m_searchFormat; QTextCharFormat m_currentSearchFormat; };