1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-11-07 03:22:33 +01:00

Add MonitorSelection

This commit is contained in:
Daniel Schukies 2017-07-11 22:25:12 +02:00
parent 6258672716
commit 776bf9191e
7 changed files with 616 additions and 135 deletions

401
debug/moc_predefs.h Normal file
View File

@ -0,0 +1,401 @@
#define __DBL_MIN_EXP__ (-1021)
#define __FLT32X_MAX_EXP__ 1024
#define __cpp_attributes 200809
#define __UINT_LEAST16_MAX__ 0xffff
#define __ATOMIC_ACQUIRE 2
#define __FLT128_MAX_10_EXP__ 4932
#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
#define __GCC_IEC_559_COMPLEX 2
#define __cpp_aggregate_nsdmi 201304
#define __UINT_LEAST8_TYPE__ unsigned char
#define __SIZEOF_FLOAT80__ 16
#define _WIN32 1
#define __INTMAX_C(c) c ## LL
#define __CHAR_BIT__ 8
#define __UINT8_MAX__ 0xff
#define _WIN64 1
#define __WINT_MAX__ 0xffff
#define __FLT32_MIN_EXP__ (-125)
#define __cpp_static_assert 200410
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __SIZE_MAX__ 0xffffffffffffffffULL
#define __WCHAR_MAX__ 0xffff
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_IEC_559 2
#define __FLT32X_DECIMAL_DIG__ 17
#define __FLT_EVAL_METHOD__ 0
#define __cpp_binary_literals 201304
#define __FLT64_DECIMAL_DIG__ 17
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __x86_64 1
#define __cpp_variadic_templates 200704
#define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
#define __SIG_ATOMIC_TYPE__ int
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __cpp_variable_templates 201304
#define __GNUC_PATCHLEVEL__ 0
#define __FLT32_HAS_DENORM__ 1
#define __UINT_FAST8_MAX__ 0xff
#define __has_include(STR) __has_include__(STR)
#define _stdcall __attribute__((__stdcall__))
#define __DEC64_MAX_EXP__ 385
#define __INT8_C(c) c
#define __INT_LEAST8_WIDTH__ 8
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
#define __SHRT_MAX__ 0x7fff
#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
#define __FLT64X_MAX_10_EXP__ 4932
#define __UINT_LEAST8_MAX__ 0xff
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
#define __UINTMAX_TYPE__ long long unsigned int
#define __DEC32_EPSILON__ 1E-6DF
#define __FLT_EVAL_METHOD_TS_18661_3__ 0
#define __UINT32_MAX__ 0xffffffffU
#define __GXX_EXPERIMENTAL_CXX0X__ 1
#define __LDBL_MAX_EXP__ 16384
#define __FLT128_MIN_EXP__ (-16381)
#define __WINT_MIN__ 0
#define __FLT128_MIN_10_EXP__ (-4931)
#define __INT_LEAST16_WIDTH__ 16
#define __SCHAR_MAX__ 0x7f
#define __FLT128_MANT_DIG__ 113
#define __WCHAR_MIN__ 0
#define __INT64_C(c) c ## LL
#define __DBL_DIG__ 15
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __FLT64X_MANT_DIG__ 64
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 8
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __USER_LABEL_PREFIX__
#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
#define __STDC_HOSTED__ 1
#define __WIN32 1
#define __LDBL_HAS_INFINITY__ 1
#define __WIN64 1
#define __FLT32_DIG__ 6
#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
#define __GXX_WEAK__ 1
#define __SHRT_WIDTH__ 16
#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
#define __DEC32_MAX__ 9.999999E96DF
#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
#define __MINGW32__ 1
#define __FLT32X_HAS_INFINITY__ 1
#define __INT32_MAX__ 0x7fffffff
#define __INT_WIDTH__ 32
#define __SIZEOF_LONG__ 4
#define __UINT16_C(c) c
#define __PTRDIFF_WIDTH__ 64
#define __DECIMAL_DIG__ 21
#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
#define __INTMAX_WIDTH__ 64
#define __FLT64_MIN_EXP__ (-1021)
#define __has_include_next(STR) __has_include_next__(STR)
#define __FLT64X_MIN_10_EXP__ (-4931)
#define __LDBL_HAS_QUIET_NAN__ 1
#define __FLT64_MANT_DIG__ 53
#define _REENTRANT 1
#define __GNUC__ 7
#define _cdecl __attribute__((__cdecl__))
#define __GXX_RTTI 1
#define __MMX__ 1
#define __cpp_delegating_constructors 200604
#define __FLT_HAS_DENORM__ 1
#define __SIZEOF_LONG_DOUBLE__ 16
#define __BIGGEST_ALIGNMENT__ 16
#define __STDC_UTF_16__ 1
#define __FLT64_MAX_10_EXP__ 308
#define __FLT32_HAS_INFINITY__ 1
#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
#define _thiscall __attribute__((__thiscall__))
#define __cpp_raw_strings 200710
#define __INT_FAST32_MAX__ 0x7fffffff
#define __WINNT 1
#define __DBL_HAS_INFINITY__ 1
#define __INT64_MAX__ 0x7fffffffffffffffLL
#define __WINNT__ 1
#define __DEC32_MIN_EXP__ (-94)
#define __INTPTR_WIDTH__ 64
#define __FLT32X_HAS_DENORM__ 1
#define __INT_FAST16_TYPE__ short int
#define _fastcall __attribute__((__fastcall__))
#define __LDBL_HAS_DENORM__ 1
#define __cplusplus 201402L
#define __cpp_ref_qualifiers 200710
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
#define __INT_LEAST32_MAX__ 0x7fffffff
#define __DEC32_MIN__ 1E-95DF
#define __DEPRECATED 1
#define __cpp_rvalue_references 200610
#define __DBL_MAX_EXP__ 1024
#define __WCHAR_WIDTH__ 16
#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
#define __DEC128_EPSILON__ 1E-33DL
#define __SSE2_MATH__ 1
#define __ATOMIC_HLE_RELEASE 131072
#define __WIN32__ 1
#define __PTRDIFF_MAX__ 0x7fffffffffffffffLL
#define __amd64 1
#define __tune_core2__ 1
#define __ATOMIC_HLE_ACQUIRE 65536
#define __FLT32_HAS_QUIET_NAN__ 1
#define __GNUG__ 7
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
#define __SIZEOF_SIZE_T__ 8
#define __cpp_rvalue_reference 200610
#define __cpp_nsdmi 200809
#define __FLT64X_MIN_EXP__ (-16381)
#define __SIZEOF_WINT_T__ 2
#define __LONG_LONG_WIDTH__ 64
#define __cpp_initializer_lists 200806
#define __FLT32_MAX_EXP__ 128
#define __cpp_hex_float 201603
#define __GCC_HAVE_DWARF2_CFI_ASM 1
#define __GXX_ABI_VERSION 1011
#define __FLT128_HAS_INFINITY__ 1
#define __FLT_MIN_EXP__ (-125)
#define __cpp_lambdas 200907
#define __FLT64X_HAS_QUIET_NAN__ 1
#define __INT_FAST64_TYPE__ long long int
#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
#define __DECIMAL_BID_FORMAT__ 1
#define __GXX_TYPEINFO_EQUALITY_INLINE 0
#define __FLT64_MIN_10_EXP__ (-307)
#define __FLT64X_DECIMAL_DIG__ 21
#define __DEC128_MIN__ 1E-6143DL
#define __REGISTER_PREFIX__
#define __UINT16_MAX__ 0xffff
#define __DBL_HAS_DENORM__ 1
#define __cdecl __attribute__((__cdecl__))
#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
#define __UINT8_TYPE__ unsigned char
#define __NO_INLINE__ 1
#define __FLT_MANT_DIG__ 24
#define __LDBL_DECIMAL_DIG__ 21
#define __VERSION__ "7.1.0"
#define __UINT64_C(c) c ## ULL
#define __cpp_unicode_characters 200704
#define __cpp_decltype_auto 201304
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __FLT128_MAX_EXP__ 16384
#define __FLT32_MANT_DIG__ 24
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLT128_HAS_DENORM__ 1
#define __FLT128_DIG__ 33
#define __SCHAR_WIDTH__ 8
#define __INT32_C(c) c
#define __DEC64_EPSILON__ 1E-15DD
#define __ORDER_PDP_ENDIAN__ 3412
#define __DEC128_MIN_EXP__ (-6142)
#define __FLT32_MAX_10_EXP__ 38
#define __INT_FAST32_TYPE__ int
#define __UINT_LEAST16_TYPE__ short unsigned int
#define __FLT64X_HAS_INFINITY__ 1
#define __INT16_MAX__ 0x7fff
#define __cpp_rtti 199711
#define __SIZE_TYPE__ long long unsigned int
#define __UINT64_MAX__ 0xffffffffffffffffULL
#define __FLT64X_DIG__ 18
#define __INT8_TYPE__ signed char
#define __cpp_digit_separators 201309
#define __GCC_ASM_FLAG_OUTPUTS__ 1
#define __FLT_RADIX__ 2
#define __INT_LEAST16_TYPE__ short int
#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
#define __UINTMAX_C(c) c ## ULL
#define __GLIBCXX_BITSIZE_INT_N_0 128
#define __SEH__ 1
#define __SIG_ATOMIC_MAX__ 0x7fffffff
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __cpp_sized_deallocation 201309
#define __SIZEOF_PTRDIFF_T__ 8
#define __FLT32X_MANT_DIG__ 53
#define __x86_64__ 1
#define __FLT32X_MIN_EXP__ (-1021)
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
#define __MSVCRT__ 1
#define __INT_FAST16_MAX__ 0x7fff
#define __FLT64_DIG__ 15
#define __UINT_FAST32_MAX__ 0xffffffffU
#define __UINT_LEAST64_TYPE__ long long unsigned int
#define __FLT_HAS_QUIET_NAN__ 1
#define __FLT_MAX_10_EXP__ 38
#define __LONG_MAX__ 0x7fffffffL
#define __FLT64X_HAS_DENORM__ 1
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
#define __FLT_HAS_INFINITY__ 1
#define __cpp_unicode_literals 200710
#define __UINT_FAST16_TYPE__ short unsigned int
#define __DEC64_MAX__ 9.999999999999999E384DD
#define __INT_FAST32_WIDTH__ 32
#define __CHAR16_TYPE__ short unsigned int
#define __PRAGMA_REDEFINE_EXTNAME 1
#define __SIZE_WIDTH__ 64
#define __SEG_FS 1
#define __INT_LEAST16_MAX__ 0x7fff
#define __DEC64_MANT_DIG__ 16
#define __UINT_LEAST32_MAX__ 0xffffffffU
#define __SEG_GS 1
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __SIG_ATOMIC_WIDTH__ 32
#define __INT_LEAST64_TYPE__ long long int
#define __INT16_TYPE__ short int
#define __INT_LEAST8_TYPE__ signed char
#define __DEC32_MAX_EXP__ 97
#define __INT_FAST8_MAX__ 0x7f
#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
#define __INTPTR_MAX__ 0x7fffffffffffffffLL
#define __GXX_MERGED_TYPEINFO_NAMES 0
#define __cpp_range_based_for 200907
#define __FLT64_HAS_QUIET_NAN__ 1
#define __stdcall __attribute__((__stdcall__))
#define __FLT32_MIN_10_EXP__ (-37)
#define __SSE2__ 1
#define __EXCEPTIONS 1
#define __LDBL_MANT_DIG__ 64
#define __DBL_HAS_QUIET_NAN__ 1
#define __FLT64_HAS_INFINITY__ 1
#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
#define __cpp_return_type_deduction 201304
#define __INTPTR_TYPE__ long long int
#define __UINT16_TYPE__ short unsigned int
#define __WCHAR_TYPE__ short unsigned int
#define __SIZEOF_FLOAT__ 4
#define __pic__ 1
#define __UINTPTR_MAX__ 0xffffffffffffffffULL
#define __INT_FAST64_WIDTH__ 64
#define __DEC64_MIN_EXP__ (-382)
#define __cpp_decltype 200707
#define __FLT32_DECIMAL_DIG__ 9
#define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __FLT_DIG__ 6
#define __FLT64X_MAX_EXP__ 16384
#define __UINT_FAST64_TYPE__ long long unsigned int
#define __INT_MAX__ 0x7fffffff
#define __amd64__ 1
#define WIN32 1
#define __nocona 1
#define __code_model_medium__ 1
#define __INT64_TYPE__ long long int
#define __FLT_MAX_EXP__ 128
#define WIN64 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __DBL_MANT_DIG__ 53
#define __cpp_inheriting_constructors 201511
#define __SIZEOF_FLOAT128__ 16
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
#define __DEC64_MIN__ 1E-383DD
#define __WINT_TYPE__ short unsigned int
#define __UINT_LEAST32_TYPE__ unsigned int
#define __SIZEOF_SHORT__ 2
#define __SSE__ 1
#define __LDBL_MIN_EXP__ (-16381)
#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
#define __WINT_WIDTH__ 16
#define __INT_LEAST8_MAX__ 0x7f
#define __FLT32X_MAX_10_EXP__ 308
#define __SIZEOF_INT128__ 16
#define __WCHAR_UNSIGNED__ 1
#define __LDBL_MAX_10_EXP__ 4932
#define __ATOMIC_RELAXED 0
#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
#define __thiscall __attribute__((__thiscall__))
#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
#define __UINT8_C(c) c
#define __FLT64_MAX_EXP__ 1024
#define __INT_LEAST32_TYPE__ int
#define __SIZEOF_WCHAR_T__ 2
#define __FLT128_HAS_QUIET_NAN__ 1
#define __INT_FAST8_TYPE__ signed char
#define __fastcall __attribute__((__fastcall__))
#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
#define __GNUC_STDC_INLINE__ 1
#define __FLT64_HAS_DENORM__ 1
#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
#define __DBL_DECIMAL_DIG__ 17
#define __STDC_UTF_32__ 1
#define __INT_FAST8_WIDTH__ 8
#define __FXSR__ 1
#define __DEC_EVAL_METHOD__ 2
#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
#define __MINGW64__ 1
#define __cpp_runtime_arrays 198712
#define __UINT64_TYPE__ long long unsigned int
#define __UINT32_C(c) c ## U
#define __INTMAX_MAX__ 0x7fffffffffffffffLL
#define __cpp_alias_templates 200704
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define WINNT 1
#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
#define __INT8_MAX__ 0x7f
#define __LONG_WIDTH__ 32
#define __PIC__ 1
#define __UINT_FAST32_TYPE__ unsigned int
#define __CHAR32_TYPE__ unsigned int
#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
#define __cpp_constexpr 201304
#define __INT32_TYPE__ int
#define __SIZEOF_DOUBLE__ 8
#define __cpp_exceptions 199711
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
#define __INT_LEAST32_WIDTH__ 32
#define __INTMAX_TYPE__ long long int
#define _INTEGRAL_MAX_BITS 64
#define __DEC128_MAX_EXP__ 6145
#define __FLT32X_HAS_QUIET_NAN__ 1
#define __ATOMIC_CONSUME 1
#define __nocona__ 1
#define __GNUC_MINOR__ 1
#define __GLIBCXX_TYPE_INT_N_0 __int128
#define __INT_FAST16_WIDTH__ 16
#define __UINTMAX_MAX__ 0xffffffffffffffffULL
#define __DEC32_MANT_DIG__ 7
#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
#define __INT16_C(c) c
#define __cpp_generic_lambdas 201304
#define __STDC__ 1
#define __FLT32X_DIG__ 15
#define __PTRDIFF_TYPE__ long long int
#define __ATOMIC_SEQ_CST 5
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
#define __UINT32_TYPE__ unsigned int
#define __FLT32X_MIN_10_EXP__ (-307)
#define __UINTPTR_TYPE__ long long unsigned int
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
#define __DEC128_MANT_DIG__ 34
#define __LDBL_MIN_10_EXP__ (-4931)
#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
#define __SSE_MATH__ 1
#define __SIZEOF_LONG_LONG__ 8
#define __cpp_user_defined_literals 200809
#define __FLT128_DECIMAL_DIG__ 36
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
#define __LDBL_DIG__ 18
#define __FLT_DECIMAL_DIG__ 9
#define __UINT_FAST16_MAX__ 0xffff
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __INT_LEAST64_WIDTH__ 64
#define __SSE3__ 1
#define __UINT_FAST8_TYPE__ unsigned char
#define __WIN64__ 1
#define __cpp_init_captures 201304
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_RELEASE 3
#define __declspec(x) __attribute__((x))

View File

@ -40,5 +40,6 @@
<file>settings.json</file> <file>settings.json</file>
<file>qml/Components/Create.qml</file> <file>qml/Components/Create.qml</file>
<file>assets/icons/icon_plus.svg</file> <file>assets/icons/icon_plus.svg</file>
<file>qml/Components/MonitorSelection.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -0,0 +1,120 @@
import QtQuick 2.0
MouseArea {
id: mouseArea
anchors.rightMargin: -11
anchors.bottomMargin: 282
anchors.leftMargin: 26
anchors.topMargin: 486
anchors.fill: parent
Rectangle {
id: rect
color: "#dfdfdf"
anchors.bottom: parent.bottom
anchors.bottomMargin: -158
anchors.right: parent.right
anchors.rightMargin: 42
anchors.left: parent.left
anchors.leftMargin: -7
anchors.top: parent.top
anchors.topMargin: 20
Item {
id:monitorListCenter
width:0
height:0
anchors.centerIn: parent
}
Repeater {
id:rp
anchors.fill: parent
anchors.centerIn: parent
anchors.margins: 30
model:monitorListModel
Component.onCompleted: {
// Absolute availableVirtualGeometry
var size = monitorListModel.getAbsoluteDesktopSize();
// Width of the Sidebar or Space that should be used
var sidebarSize = 200
for(var i = 0; i < rp.count; i++)
{
// Height that is left to draw this monitor
var availableHeight = ((sidebarSize / size.height) * rp.itemAt(i).height)
// Delta (height/width)
var monitorHeightRationDelta = 0;
// Scale
if(rp.itemAt(i).height < rp.itemAt(i).width )
{
monitorHeightRationDelta = ( rp.itemAt(i).height / rp.itemAt(i).width)
rp.itemAt(i).height = monitorHeightRationDelta * availableHeight
rp.itemAt(i).width = (sidebarSize / size.width) * rp.itemAt(i).width
}
else
{
monitorHeightRationDelta = ( rp.itemAt(i).width / rp.itemAt(i).height)
rp.itemAt(i).height = availableHeight
rp.itemAt(i).width = (sidebarSize / size.width) * monitorHeightRationDelta
}
// Position
rp.itemAt(i).x = (sidebarSize / size.width) * rp.itemAt(i).x + sidebarSize/2
rp.itemAt(i).y = (sidebarSize / size.height) * rp.itemAt(i).y + sidebarSize/2
}
}
delegate: Rectangle {
color:"red"
height: monitorAvailableGeometry.height
width: monitorAvailableGeometry.width
x: monitorAvailableGeometry.x
y: monitorAvailableGeometry.y
// height: (150 / monitorAvailableVirtualGeometry.height) * monitorAvailableGeometry.height
// width: (150 / monitorAvailableVirtualGeometry.width) * monitorAvailableGeometry.width
// x: (150 / monitorAvailableVirtualGeometry.width) * monitorAvailableGeometry.x
// y: (150 / monitorAvailableVirtualGeometry.height) * monitorAvailableGeometry.y
anchors.margins: 10
Column {
spacing: 5
Text {
text: monitorNumber
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorName
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorSize.width + " " + monitorSize.height
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorAvailableGeometry.x + " " + monitorAvailableGeometry.y
anchors.horizontalCenter: parent.horizontalCenter
}
}
}
}
}
}

View File

@ -1,6 +1,8 @@
import QtQuick 2.0 import QtQuick 2.0
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
Item { Item {
id: monitors id: monitors
state:"inactive" state:"inactive"
@ -35,77 +37,76 @@ Item {
radius: 6 radius: 6
z:99 z:99
anchors.centerIn: parent anchors.centerIn: parent
// MouseArea {
// id: mouseArea
// anchors.fill: parent
MouseArea { // Rectangle {
id: mouseArea // id: rectangle
anchors.fill: parent // height: 464
// color: "#dfdfdf"
// anchors.right: parent.right
// anchors.rightMargin: 20
// anchors.left: parent.left
// anchors.leftMargin: 20
// anchors.top: parent.top
// anchors.topMargin: 20
Rectangle { // Item {
id: rectangle // id:monitorListCenter
height: 464 // width:0
color: "#dfdfdf" // height:0
anchors.right: parent.right // anchors.centerIn: parent
anchors.rightMargin: 20 // }
anchors.left: parent.left
anchors.leftMargin: 20
anchors.top: parent.top
anchors.topMargin: 20
Item {
id:monitorListCenter
width:0
height:0
anchors.centerIn: parent
}
Repeater { // Repeater {
id:rp // id:rp
anchors.fill: parent // anchors.fill: parent
anchors.centerIn: parent // anchors.centerIn: parent
anchors.margins: 30 // anchors.margins: 30
model:monitorListModel // model:monitorListModel
delegate: Rectangle { // delegate: Rectangle {
color:"steelblue" // color:"steelblue"
height: monitorSize.height / 10 // height: monitorSize.height / 10
width: monitorSize.width / 10 // width: monitorSize.width / 10
x:monitorAvailableGeometry.x /10 // x:monitorAvailableGeometry.x /10
y: monitorAvailableGeometry.y / 10 // y: monitorAvailableGeometry.y / 10
anchors.margins: 10 // anchors.margins: 10
Column { // Column {
spacing: 5 // spacing: 5
Text { // Text {
text: monitorNumber // text: monitorNumber
anchors.horizontalCenter: parent.horizontalCenter // anchors.horizontalCenter: parent.horizontalCenter
} // }
Text { // Text {
text: monitorName // text: monitorName
anchors.horizontalCenter: parent.horizontalCenter // anchors.horizontalCenter: parent.horizontalCenter
} // }
Text { // Text {
text: monitorSize.width + " " + monitorSize.height // text: monitorSize.width + " " + monitorSize.height
anchors.horizontalCenter: parent.horizontalCenter // anchors.horizontalCenter: parent.horizontalCenter
} // }
Text { // Text {
text: monitorAvailableGeometry.x + " " + monitorAvailableGeometry.y // text: monitorAvailableGeometry.x + " " + monitorAvailableGeometry.y
anchors.horizontalCenter: parent.horizontalCenter // anchors.horizontalCenter: parent.horizontalCenter
} // }
} // }
} // }
} // }
} // }
} // }
} }
DropShadow { DropShadow {

View File

@ -107,81 +107,11 @@ Item {
} }
} }
MouseArea { MonitorSelection{
id: mouseArea Component.onCompleted: {
anchors.rightMargin: -11 print("height: ")
anchors.bottomMargin: 282 }
anchors.leftMargin: 26 }
anchors.topMargin: 486
anchors.fill: parent
Rectangle {
id: rect
color: "#dfdfdf"
anchors.bottom: parent.bottom
anchors.bottomMargin: -158
anchors.right: parent.right
anchors.rightMargin: 42
anchors.left: parent.left
anchors.leftMargin: -7
anchors.top: parent.top
anchors.topMargin: 20
Item {
id:monitorListCenter
width:0
height:0
anchors.centerIn: parent
}
Repeater {
id:rp
anchors.fill: parent
anchors.centerIn: parent
anchors.margins: 30
model:monitorListModel
delegate: Rectangle {
color:"steelblue"
height: 100
width: 100
x:monitorAvailableGeometry.x /10
y: monitorAvailableGeometry.y / 10
anchors.margins: 10
Column {
spacing: 5
Text {
text: monitorNumber
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorName
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorSize.width + " " + monitorSize.height
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
text: monitorAvailableGeometry.x + " " + monitorAvailableGeometry.y
anchors.horizontalCenter: parent.horizontalCenter
}
}
}
}
}
}
Text { Text {
id: text1 id: text1

View File

@ -13,11 +13,17 @@ QHash<int, QByteArray> MonitorListModel::roleNames() const
{ NameRole, "monitorName" }, { NameRole, "monitorName" },
{ SizeRole, "monitorSize" }, { SizeRole, "monitorSize" },
{ AvailableGeometryRole, "monitorAvailableGeometry" }, { AvailableGeometryRole, "monitorAvailableGeometry" },
{ AvailableVirtualGeometryRole, "monitorAvailableVirtualGeometry"},
{ NumberRole, "monitorNumber" }, { NumberRole, "monitorNumber" },
}; };
return roles; return roles;
} }
QRect MonitorListModel::getAbsoluteDesktopSize()
{
return _monitorList.at(0)._availableVirtualGeometry;
}
QVariant MonitorListModel::headerData(int section, Qt::Orientation orientation, int role) const QVariant MonitorListModel::headerData(int section, Qt::Orientation orientation, int role) const
{ {
// FIXME: Implement me! // FIXME: Implement me!
@ -56,6 +62,8 @@ QVariant MonitorListModel::data(const QModelIndex &index, int role) const
return _monitorList.at(index.row())._size; return _monitorList.at(index.row())._size;
case AvailableGeometryRole: case AvailableGeometryRole:
return _monitorList.at(index.row())._availableGeometry; return _monitorList.at(index.row())._availableGeometry;
case AvailableVirtualGeometryRole:
return _monitorList.at(index.row())._availableVirtualGeometry;
case NumberRole: case NumberRole:
return _monitorList.at(index.row())._number; return _monitorList.at(index.row())._number;
default: default:
@ -102,27 +110,40 @@ void MonitorListModel::loadMonitors()
for (int i = 0; i < QApplication::screens().count(); i++) { for (int i = 0; i < QApplication::screens().count(); i++) {
QScreen* screen = QApplication::screens().at(i); QScreen* screen = QApplication::screens().at(i);
_monitorList.append(Monitor(screen->manufacturer(), _monitorList.append(Monitor(screen->manufacturer(),
screen->model(), screen->model(),
screen->name(), screen->name(),
screen->size(), screen->size(),
screen->availableGeometry(), screen->availableGeometry(),
// More convenient for the user if the first monitor == 1 // More convenient for the user if the first monitor == 1
i + 1)); i + 1,
screen->availableVirtualGeometry())
);
} }
} }
float MonitorListModel::GetHighestMonitorYValue()
{
/*for (int i = 0; i < vector.size(); ++i)
{
_monitorList.at(i).screen->availableVirtualGeometry().x();
_monitorList.at(i).screen->availableGeometry().y();
}*/
// _monitorList.
return 0.0f;
}
Monitor::Monitor() Monitor::Monitor()
{ {
} }
Monitor::Monitor(QString manufacturer, QString model, QString name, QSize size, QRect availableGeometry, int number) Monitor::Monitor(QString manufacturer, QString model, QString name, QSize size, QRect availableGeometry, int number, QRect availableVirtualGeometry)
{ {
_name = name; _name = name;
_size = size; _size = size;
_availableGeometry = availableGeometry; _availableGeometry = availableGeometry;
_availableVirtualGeometry = availableVirtualGeometry;
_number = number; _number = number;
// FIXME: Use a better way to create an id // FIXME: Use a better way to create an id
// because name and manufacturer are allways empty // because name and manufacturer are allways empty

View File

@ -22,11 +22,13 @@ public:
explicit MonitorListModel(QObject *parent = nullptr); explicit MonitorListModel(QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE QRect getAbsoluteDesktopSize();
enum MonitorRole { enum MonitorRole {
NameRole, NameRole,
SizeRole, SizeRole,
AvailableGeometryRole, AvailableGeometryRole,
AvailableVirtualGeometryRole,
NumberRole, NumberRole,
}; };
Q_ENUM(MonitorRole) Q_ENUM(MonitorRole)
@ -54,6 +56,9 @@ public:
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
void loadMonitors(); void loadMonitors();
float GetHighestMonitorYValue();
private: private:
QVector<Monitor> _monitorList; QVector<Monitor> _monitorList;
}; };
@ -62,13 +67,15 @@ class Monitor {
public: public:
Monitor(); Monitor();
Monitor(QString manufacturer, QString model, QString name, QSize size, QRect availableGeometry, int number); Monitor(QString manufacturer, QString model, QString name, QSize size, QRect availableGeometry, int number, QRect availableVirtualGeometry);
QString _id; QString _id;
QString _name; QString _name;
QSize _size; QSize _size;
QRect _availableGeometry; QRect _availableGeometry;
QRect _availableVirtualGeometry;
int _number; int _number;
bool _isVirtualDesktop; bool _isVirtualDesktop;
}; };
#endif // MONITORLISTMODEL_H #endif // MONITORLISTMODEL_H