diff --git a/OTHERS/Jarvis/Iron_Template_1.gif b/OTHERS/Jarvis/Iron_Template_1.gif
new file mode 100644
index 00000000..5c17d3e4
Binary files /dev/null and b/OTHERS/Jarvis/Iron_Template_1.gif differ
diff --git a/OTHERS/Jarvis/README.md b/OTHERS/Jarvis/README.md
new file mode 100644
index 00000000..b8238524
--- /dev/null
+++ b/OTHERS/Jarvis/README.md
@@ -0,0 +1,6 @@
+The project aims to develop a desktop assistant using Python that can assist users
+in performing a variety of tasks, streamline their workflow, and provide useful information.
+The desktop assistant should serve as a virtual helper, enhancing user productivity and convenience on a desktop or laptop computer.
+The desktop assistant should have a user-friendly interface and voice-based interactions. Users should be able to type commands or speak to the assistant to initiate actions.
+Implement voice recognition capabilities to allow users to communicate with the assistant using natural language.
+The assistant should be capable of automating common desktop tasks such as opening applications, creating files, searching information , setting reminders.
diff --git a/OTHERS/Jarvis/initial.gif b/OTHERS/Jarvis/initial.gif
new file mode 100644
index 00000000..949af7fe
Binary files /dev/null and b/OTHERS/Jarvis/initial.gif differ
diff --git a/OTHERS/Jarvis/jarvis.py b/OTHERS/Jarvis/jarvis.py
new file mode 100644
index 00000000..f30607e0
--- /dev/null
+++ b/OTHERS/Jarvis/jarvis.py
@@ -0,0 +1,275 @@
+from email.mime import audio
+from importlib.resources import path
+from logging import exception
+from random import Random, random
+from re import S
+import sys
+from typing_extensions import Self
+import pyttsx3
+import speech_recognition as sr
+import datetime
+import os
+import cv2
+import random
+from requests import get
+import wikipedia
+import webbrowser
+import pywhatkit as kit
+import smtplib
+import sys
+import pyjokes
+from PyQt5 import QtWidgets, QtCore, QtGui
+from PyQt5.QtCore import QTimer, QTime, QDate, Qt
+from PyQt5.QtGui import QMovie
+from PyQt5.QtCore import *
+from PyQt5.QtGui import *
+from PyQt5.QtWidgets import *
+from PyQt5.uic import loadUiType
+from jarvisUi import Ui_jarvisUi
+
+
+engine = pyttsx3.init('sapi5')
+voices = engine.getProperty('voices')
+print(voices[0].id)
+engine.setProperty('voices', voices[0].id)
+
+
+# text to speech
+def speak(audio):
+ engine.say(audio)
+ print(audio)
+ engine.runAndWait()
+
+
+# wish function
+def wish():
+ hour = int(datetime.datetime.now().hour)
+ #tt = time.strftime("%I:%M:%p")
+
+ if hour >= 0 and hour <= 12:
+ speak("Good morning,sir")
+ elif hour > 12 and hour < 18:
+ speak("Good afternoon,sir")
+ else:
+ speak("Good Evening,sir")
+ speak("I am Jarvis sir,How can I help you?")
+
+
+# to define send email
+def sendEmail(to, content):
+ server = smtplib.SMTP('smtp.gmail.com', 587)
+ server.ehlo()
+ server.starttls()
+ server.login('vedantgaikwad@gmail.com', 'Tata@1234')
+ server.sendmail('vedantgaikwad@gmail.com', to, content)
+ server.close()
+
+# to convert voice into text
+class Mainthread(QThread):
+ def __init__(self):
+ super(Mainthread,self).__init__()
+
+ def run(self):
+ self.TaskExecution()
+
+ def takecommand(self):
+
+ r = sr.Recognizer()
+ with sr.Microphone() as source:
+ print("Listening...")
+ r.pause_threshold = 1
+ r.adjust_for_ambient_noise(source)
+ audio = r.listen(source, timeout=2, phrase_time_limit=5)
+
+ try:
+ print("Recognizng..")
+ query = r.recognize_google(audio, language='en-in')
+ print(f"user said: {query}")
+
+ except exception as e:
+ speak("could you please repeat...")
+ return "none"
+ query = query.lower()
+ return query
+
+ #if __name__ == "__main__":
+ def TaskExecution(self):
+ #def start():
+ wish()
+
+ while True:
+
+ self.query = self.takecommand()
+
+ # logic building for tasks
+
+ if "open notepad" in self.query:
+ npath = "C:\\Windows\\System32\\notepad.exe"
+ os.startfile(npath)
+
+ elif "open adobe reader" in self.query:
+ apath = "C:\\Program Files (x86)\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe"
+ os.startfile(apath)
+
+ elif "open command prompt" in self.query:
+ os.system("start cmd")
+
+ elif "open camera" in self.query:
+ cap = cv2.VideoCapture(0)
+ while True:
+ ret, img = cap.read()
+ cv2.inshow('webcam', img)
+ k = cv2.waitKey(50)
+ if k == 27:
+ break
+ cap.release()
+ cv2.destroyAllWindows()
+
+ elif "play music" in self.query:
+ music_dir = "C:\\Users\\vijay\\Music"
+ songs = os.listdir(music_dir)
+ rd = Random.choice(songs)
+ # for song in songs:
+ # if song.endswith('.mp3'):
+ os.startfile(os.path.join(music_dir, rd))
+ # os.startfile(os.path.join(music_dir,song))
+
+ elif "ip address" in self.query:
+ ip = get('https://api.ipify.org').text
+ speak(f"your IP Address is {ip}")
+
+ elif "wikipedia" in self.query:
+ speak("Searching wikipedia...")
+ query = query.replace("wikipedia", "")
+ result = wikipedia.summary(query, sentence=2)
+ speak("According to wikipedia")
+ speak(result)
+ # print(result)
+
+ elif "open youtube" in self.query:
+ webbrowser.open("www.youtube.com")
+
+ elif "open facebook" in self.query:
+ webbrowser.open("www.facebook.com")
+
+ elif "open stack overflow" in self.query:
+ webbrowser.open("www.stackoverflow.com")
+
+ elif "open google" in self.query:
+ # to search something specific on google
+ speak("Sir what should i search on google")
+ cm = self.takecommand()
+ webbrowser.open(f"{cm}")
+
+ elif "send message" in self.query:
+ #speak("Sir,to whom should i send message")
+ #wmsg = takecommand().lower()
+ # 2.25 is time at which you send
+ kit.sendwhatmsg("+919920309439", "this is a testing message", 2.25)
+
+ elif "play songs on youtube" in self.query:
+ speak("Sir what should i play on youtube")
+ play = self.takecommand()
+ kit.playonyt(f"{play}")
+
+ elif "send email" in self.query:
+ try:
+ speak("what should i say?")
+ content = self.takecommand()
+ to = "sanjayg1973@gmail.com"
+ sendEmail(to, content)
+ speak("Email has been sent")
+
+ except exception as e:
+ print(e)
+ speak("sorry sir, i am not able to send the email")
+
+ # to close application
+ elif "close notepad" in self.query:
+ speak("okay sir,closing notepad")
+ os.system("taskkill /f/im notepad.exe")
+
+ elif "set alarm" in self.query:
+ nn = int(datetime.datetime.now().hour)
+ if nn == 11:
+ music_dir = "Libraries\\Music"
+ songs = os.listdir(music_dir)
+ os.startfile(os.path.join(music_dir, songs[0]))
+
+ elif "joke" in self.query:
+ joke = pyjokes.get_joke()
+ speak(joke)
+
+ elif "shutdown the system" in self.query:
+ os.system("shutdown /s /t 5")
+
+ elif "restart the system" in self.query:
+ os.system("shutdown /r /t 5")
+
+ elif "sleep the system" in self.query:
+ os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0")
+
+ elif "thank you" in self.query:
+ speak("thankyou sir,have a good day")
+ sys.exit()
+
+ speak("sir,do you have any other work")
+
+
+
+#if __name__ == "__main__" :
+# TaskExecution()
+
+startExecution = Mainthread()
+
+class Main(QMainWindow):
+ def __init__(self):
+ super().__init__()
+ self.ui = Ui_jarvisUi()
+ self.ui.setupUi(self)
+ self.ui.pushButton.clicked.connect(self.startTask)
+ self.ui.pushButton_2.clicked.connect(self.close)
+
+ def startTask(self):
+ #self.ui.movie = QtGui.QMovie("Black_Template.jpg")
+ #self.ui.label.setMovie(self.ui.movie)
+ #self.ui.movie.start()
+ self.ui.movie = QtGui.QMovie("Iron_Template_1.gif")
+ self.ui.label_2.setMovie(self.ui.movie)
+ self.ui.movie.start()
+ self.ui.movie = QtGui.QMovie("jarvis_jj.gif")
+ self.ui.label_3.setMovie(self.ui.movie)
+ self.ui.movie.start()
+ self.ui.movie = QtGui.QMovie("initial.gif")
+ self.ui.label_4.setMovie(self.ui.movie)
+ self.ui.movie.start()
+ self.ui.movie = QtGui.QMovie("Health_Template.gif")
+ self.ui.label_5.setMovie(self.ui.movie)
+ self.ui.movie.start()
+ self.ui.movie = QtGui.QMovie("B.G_Template_1.gif")
+ self.ui.label_6.setMovie(self.ui.movie)
+ self.ui.movie.start()
+ timer = QTimer(self)
+ timer.timeout.connect(self.showTime)
+ timer.start(1000)
+ startExecution.start()
+
+ def showTime(self):
+ current_time = QTime.currentTime()
+ current_date = QDate.currentDate()
+ label_time = current_time.toString('hh:mm:ss')
+ label_date = current_date.toString(Qt.ISODate)
+ self.ui.textBrowser.setText(label_date)
+ self.ui.textBrowser_2.setText(label_time)
+
+
+
+app = QApplication(sys.argv)
+jarvis = Main()
+jarvis.show()
+exit(app.exec_())
+
+
+
+
+
diff --git a/OTHERS/Jarvis/jarvis.zip b/OTHERS/Jarvis/jarvis.zip
new file mode 100644
index 00000000..cab33d93
Binary files /dev/null and b/OTHERS/Jarvis/jarvis.zip differ
diff --git a/OTHERS/Jarvis/jarvisUi.py b/OTHERS/Jarvis/jarvisUi.py
new file mode 100644
index 00000000..642b6f0b
--- /dev/null
+++ b/OTHERS/Jarvis/jarvisUi.py
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'jarvisUi.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.4
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_jarvisUi(object):
+ def setupUi(self, jarvisUi):
+ jarvisUi.setObjectName("jarvisUi")
+ jarvisUi.resize(997, 533)
+ self.centralwidget = QtWidgets.QWidget(jarvisUi)
+ self.centralwidget.setObjectName("centralwidget")
+ self.label = QtWidgets.QLabel(self.centralwidget)
+ self.label.setGeometry(QtCore.QRect(-170, -10, 1211, 541))
+ self.label.setText("")
+ self.label.setPixmap(QtGui.QPixmap("Black_Template.jpg"))
+ self.label.setScaledContents(True)
+ self.label.setObjectName("label")
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
+ self.label_2.setGeometry(QtCore.QRect(630, 10, 371, 281))
+ self.label_2.setText("")
+ self.label_2.setPixmap(QtGui.QPixmap("Iron_Template_1.gif"))
+ self.label_2.setScaledContents(True)
+ self.label_2.setObjectName("label_2")
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
+ self.label_3.setGeometry(QtCore.QRect(20, 180, 261, 181))
+ self.label_3.setText("")
+ self.label_3.setPixmap(QtGui.QPixmap("jarvis_jj.gif"))
+ self.label_3.setScaledContents(True)
+ self.label_3.setObjectName("label_3")
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
+ self.label_4.setGeometry(QtCore.QRect(16, 12, 521, 181))
+ self.label_4.setText("")
+ self.label_4.setPixmap(QtGui.QPixmap("initial.gif"))
+ self.label_4.setScaledContents(True)
+ self.label_4.setObjectName("label_4")
+ self.label_5 = QtWidgets.QLabel(self.centralwidget)
+ self.label_5.setGeometry(QtCore.QRect(20, 370, 281, 151))
+ self.label_5.setText("")
+ self.label_5.setPixmap(QtGui.QPixmap("Health_Template.gif"))
+ self.label_5.setScaledContents(True)
+ self.label_5.setObjectName("label_5")
+ self.label_6 = QtWidgets.QLabel(self.centralwidget)
+ self.label_6.setGeometry(QtCore.QRect(730, 320, 251, 181))
+ self.label_6.setText("")
+ self.label_6.setPixmap(QtGui.QPixmap("B.G_Template_1.gif"))
+ self.label_6.setScaledContents(True)
+ self.label_6.setObjectName("label_6")
+ self.pushButton = QtWidgets.QPushButton(self.centralwidget)
+ self.pushButton.setGeometry(QtCore.QRect(420, 360, 101, 51))
+ self.pushButton.setStyleSheet("color: rgb(0, 0, 255);\n"
+"background-color: rgb(85, 255, 255);\n"
+"font: 14pt \"MS UI Gothic\";")
+ self.pushButton.setObjectName("pushButton")
+ self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
+ self.pushButton_2.setGeometry(QtCore.QRect(530, 360, 101, 51))
+ self.pushButton_2.setStyleSheet("color: rgb(0, 0, 255);\n"
+"background-color: rgb(85, 255, 255);\n"
+"font: 14pt \"MS UI Gothic\";\n"
+"")
+ self.pushButton_2.setObjectName("pushButton_2")
+ self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
+ self.textBrowser.setGeometry(QtCore.QRect(330, 470, 191, 51))
+ self.textBrowser.setStyleSheet("background-color: transparent;\n"
+ "border-radius:none;\n"
+ "color:white;\n"
+ "font-size:20px;")
+ self.textBrowser.setObjectName("textBrowser")
+ self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
+ self.textBrowser_2.setGeometry(QtCore.QRect(520, 470, 191, 51))
+ self.textBrowser_2.setStyleSheet("background-color: transparent;\n"
+ "border-radius:none;\n"
+ "color:white;\n"
+ "font-size:20px;")
+ self.textBrowser_2.setObjectName("textBrowser_2")
+ jarvisUi.setCentralWidget(self.centralwidget)
+
+ self.retranslateUi(jarvisUi)
+ QtCore.QMetaObject.connectSlotsByName(jarvisUi)
+
+ def retranslateUi(self, jarvisUi):
+ _translate = QtCore.QCoreApplication.translate
+ jarvisUi.setWindowTitle(_translate("jarvisUi", "MainWindow"))
+ self.pushButton.setText(_translate("jarvisUi", "START"))
+ self.pushButton_2.setText(_translate("jarvisUi", "EXIT"))
+
+
+if __name__ == "__main__":
+ import sys
+ app = QtWidgets.QApplication(sys.argv)
+ jarvisUi = QtWidgets.QMainWindow()
+ ui = Ui_jarvisUi()
+ ui.setupUi(jarvisUi)
+ jarvisUi.show()
+ sys.exit(app.exec_())
diff --git a/OTHERS/Jarvis/jarvisUi.ui b/OTHERS/Jarvis/jarvisUi.ui
new file mode 100644
index 00000000..5f51452c
--- /dev/null
+++ b/OTHERS/Jarvis/jarvisUi.ui
@@ -0,0 +1,198 @@
+
+
+ jarvisUi
+
+
+
+ 0
+ 0
+ 997
+ 533
+
+
+
+ MainWindow
+
+
+
+
+
+ -170
+ -10
+ 1211
+ 541
+
+
+
+
+
+
+ Black_Template.jpg
+
+
+ true
+
+
+
+
+
+ 630
+ 10
+ 371
+ 281
+
+
+
+
+
+
+ Iron_Template_1.gif
+
+
+ true
+
+
+
+
+
+ 20
+ 180
+ 261
+ 181
+
+
+
+
+
+
+ jarvis_jj.gif
+
+
+ true
+
+
+
+
+
+ 16
+ 12
+ 521
+ 181
+
+
+
+
+
+
+ initial.gif
+
+
+ true
+
+
+
+
+
+ 20
+ 370
+ 281
+ 151
+
+
+
+
+
+
+ Health_Template.gif
+
+
+ true
+
+
+
+
+
+ 730
+ 320
+ 251
+ 181
+
+
+
+
+
+
+ B.G_Template_1.gif
+
+
+ true
+
+
+
+
+
+ 420
+ 360
+ 101
+ 51
+
+
+
+ color: rgb(0, 0, 255);
+background-color: rgb(85, 255, 255);
+font: 14pt "MS UI Gothic";
+
+
+ START
+
+
+
+
+
+ 530
+ 360
+ 101
+ 51
+
+
+
+ color: rgb(0, 0, 255);
+background-color: rgb(85, 255, 255);
+font: 14pt "MS UI Gothic";
+
+
+
+ EXIT
+
+
+
+
+
+ 330
+ 470
+ 191
+ 51
+
+
+
+ background-color: transparent;
+
+
+
+
+
+ 520
+ 470
+ 191
+ 51
+
+
+
+ background-color: transparent;
+
+
+
+
+
+
+
diff --git a/OTHERS/Jarvis/jarvis_jj.gif b/OTHERS/Jarvis/jarvis_jj.gif
new file mode 100644
index 00000000..33401916
Binary files /dev/null and b/OTHERS/Jarvis/jarvis_jj.gif differ
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/INSTALLER b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/METADATA b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/METADATA
new file mode 100644
index 00000000..9046b895
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/METADATA
@@ -0,0 +1,65 @@
+Metadata-Version: 2.1
+Name: PyQt5
+Version: 5.15.6
+Requires-Python: >=3.6
+Summary: Python bindings for the Qt cross platform application toolkit
+Home-Page: https://www.riverbankcomputing.com/software/pyqt/
+Author: Riverbank Computing Limited
+Author-Email: info@riverbankcomputing.com
+License: GPL v3
+Requires-Dist: PyQt5-sip (>=12.8, <13)
+Requires-Dist: PyQt5-Qt5 (>=5.15.2)
+
+PyQt5 - Comprehensive Python Bindings for Qt v5
+===============================================
+
+Qt is set of cross-platform C++ libraries that implement high-level APIs for
+accessing many aspects of modern desktop and mobile systems. These include
+location and positioning services, multimedia, NFC and Bluetooth connectivity,
+a Chromium based web browser, as well as traditional UI development.
+
+PyQt5 is a comprehensive set of Python bindings for Qt v5. It is implemented
+as more than 35 extension modules and enables Python to be used as an
+alternative application development language to C++ on all supported platforms
+including iOS and Android.
+
+PyQt5 may also be embedded in C++ based applications to allow users of those
+applications to configure or enhance the functionality of those applications.
+
+
+Author
+------
+
+PyQt5 is copyright (c) Riverbank Computing Limited. Its homepage is
+https://www.riverbankcomputing.com/software/pyqt/.
+
+Support may be obtained from the PyQt mailing list at
+https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
+
+
+License
+-------
+
+PyQt5 is released under the GPL v3 license and under a commercial license that
+allows for the development of proprietary applications.
+
+
+Documentation
+-------------
+
+The documentation for the latest release can be found
+`here `__.
+
+
+Installation
+------------
+
+The GPL version of PyQt5 can be installed from PyPI::
+
+ pip install PyQt5
+
+``pip`` will also build and install the bindings from the sdist package but
+Qt's ``qmake`` tool must be on ``PATH``.
+
+The ``sip-install`` tool will also install the bindings from the sdist package
+but will allow you to configure many aspects of the installation.
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/RECORD b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/RECORD
new file mode 100644
index 00000000..b0c4a48d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/RECORD
@@ -0,0 +1,987 @@
+../../bin/pylupdate5.exe,sha256=tcpdqPOyrI-30uwVlokFs7I3C52zVFEm3XJbX4BaT98,106329
+../../bin/pyrcc5.exe,sha256=4oJhB5lGxPhjN43gk74ohZ-sj30zsg0VsOtxdM2LmGQ,106325
+../../bin/pyuic5.exe,sha256=umgDdaXJNpsiMRlWLr9YgXnHkXbPskYdYmPb7x_RGdc,106324
+PyQt5-5.15.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+PyQt5-5.15.6.dist-info/METADATA,sha256=AidiD9POqp4uR806NRnG4dLxKxXe2bizx-djI1tKIvk,2175
+PyQt5-5.15.6.dist-info/RECORD,,
+PyQt5-5.15.6.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+PyQt5-5.15.6.dist-info/WHEEL,sha256=9iIqRJHCeYrFi6y778MPZ90xOvfYPKfUpAR2Dr4-xlY,98
+PyQt5-5.15.6.dist-info/entry_points.txt,sha256=Qif0K5dtSx55Jy85ruKNbDlFdMdcekmMavb6lQz49g0,116
+PyQt5/QAxContainer.pyd,sha256=_kA_JqvaF4Hjz_56cxRmoajgAEdsSNSgdmAmr2ORRKQ,275456
+PyQt5/QAxContainer.pyi,sha256=Aok42_YeHb890tvoTWrrJ75_mgVZM3Vggw8FtYjDkP0,4800
+PyQt5/Qt.pyd,sha256=euPHGaIVwfkAqXxS6CjAmo4zw8ilqFML4b2PWz1Sn-4,11776
+PyQt5/Qt5/qsci/api/python/PyQt5.api,sha256=gHeZuY4O6afx1GueDN7LqpNPDf0vErVZEEcP27u-9rU,1791066
+PyQt5/QtBluetooth.pyd,sha256=l3UEITpk_4rbam_mdILmAYiYF5_tZ8H9EgReSLaxoyE,336384
+PyQt5/QtBluetooth.pyi,sha256=84shk9ebtrhAyS3WsOkIYVkv0RToD9rapdBBQufR5a0,76450
+PyQt5/QtCore.pyd,sha256=FN0O6-Nz070jISKDbVOUresa0QRI0W3Vuvyd5OOwxcI,2424832
+PyQt5/QtCore.pyi,sha256=G7ZBXdAaqUPVSUHzYVPtgLGQLBPrf4GnBOQ8IRzzQuk,424680
+PyQt5/QtDBus.pyd,sha256=IHGpPtWF11ucGZnUXFiaOUEK9vjuQIboO2tEQH1Twsk,172032
+PyQt5/QtDBus.pyi,sha256=zUyQN-Mr-e4IYTZ3xciaMR6HCskTfHkf9JwQ96f_cHg,23797
+PyQt5/QtDesigner.pyd,sha256=4mptTIx5nC6jk0x_qOwO45XGC2PEcHR1JK7AEx8NYIY,308224
+PyQt5/QtDesigner.pyi,sha256=Dx56qM-cQ_DfNenr0_CCg9iXCXqBby4f5KhyaIJRztE,22954
+PyQt5/QtGui.pyd,sha256=BnLg4_NtGyaqdB9cOEGTYbSvxV89a4jDf4WSiAarKZI,2438144
+PyQt5/QtGui.pyi,sha256=5W_d9mF6ew80hwdziXB-nrHb6RCDItjkAaBWkWhxojU,434552
+PyQt5/QtHelp.pyd,sha256=e8Fgdx65OyvV0_OHYmlf9R7-jycdBCJjOOeZHFutIxk,195584
+PyQt5/QtHelp.pyi,sha256=E9Xm6SFqOFql9kpKECn1IiSyABfEQ5OKEXVEWqY5s6s,13352
+PyQt5/QtLocation.pyd,sha256=XUkgHawdNlfqTgAhbWKOfVP6fr-THFHPSkTw_Pg2S6c,436736
+PyQt5/QtLocation.pyi,sha256=nMPuSYRRYydkMdBxItXAkM_ViQUxzBFQRoFee7aiPLY,55314
+PyQt5/QtMultimedia.pyd,sha256=0SDSljgrekvG-ugkt77d3bjhVDeUyhDBp5RbM9TqhfE,903168
+PyQt5/QtMultimedia.pyi,sha256=blT86oude2Y47L9kppFuNr2gMgEDfVzhfHjsKHb1rdA,119301
+PyQt5/QtMultimediaWidgets.pyd,sha256=w3i9yNCYqQpFH8Ziz6icK_gjYa30bNRXC0i1wy8iwDU,140800
+PyQt5/QtMultimediaWidgets.pyi,sha256=xaWc39aRu6Iig1r_Hoyrcanndro_D4uCdqXR5WC34uw,5938
+PyQt5/QtNetwork.pyd,sha256=NxAnpjSrYaBs2qeu8cbIBm7AhneMPlleLXicf2IsrNo,689152
+PyQt5/QtNetwork.pyi,sha256=jUvXmMFEPWfVjQ28bPlBUF-Lvn1VI2D86T7u-TAplU0,107892
+PyQt5/QtNfc.pyd,sha256=fsQ-wvW_CJJhHMRwFU6j_Wl359KuxR_3S7FLti4igYU,138752
+PyQt5/QtNfc.pyi,sha256=f-AkrkA4dxwmhB4ji3-7vdOkl8a40ZyTMgrFerdrfcs,19752
+PyQt5/QtOpenGL.pyd,sha256=FEpmJ7ztuCdvt5HNGHTIUDwgyGBKYsuNhzQAwZmI1Wg,123904
+PyQt5/QtOpenGL.pyi,sha256=bNxzfKtN3qmh-qX6MgWubHPMeojuZF5o7nHlY1aGiOY,16231
+PyQt5/QtPositioning.pyd,sha256=cVN_o4Tzr-F9XJAZv3zQJUf3QDYKez9LY8Hp6y9w_VI,178176
+PyQt5/QtPositioning.pyi,sha256=8uT5BgIJnG_gK52DGeLxdVe-Mr7wUzprfbjlqncVWuc,24881
+PyQt5/QtPrintSupport.pyd,sha256=CLA_IJISPTiY1QSRRCH4bzDY9x2eF_pHH2G_ejl4Wnc,253440
+PyQt5/QtPrintSupport.pyi,sha256=IdYG1k0jpEYhCjloFo2W2aK59MgkxhRPer9K6Llfr30,20672
+PyQt5/QtQml.pyd,sha256=0OeZHIXDnt4k-EQZbtSBsYIAealRYxFUBk2om6tQrPg,462848
+PyQt5/QtQml.pyi,sha256=Ccwtc1fkArP5twEmdTX1DgKejpO7i7Y_I2uXM5OqM0Q,29332
+PyQt5/QtQuick.pyd,sha256=IFcB3d7DHNIaifSTxAi13QIrkhtiTC59OFiR3GYGRXo,916992
+PyQt5/QtQuick.pyi,sha256=mBr_p1Mch7oPilgsh_JeQkiNv_viT8RcjqTYe-YHZHo,73480
+PyQt5/QtQuick3D.pyd,sha256=4BdX4Vb6KMLxq0pJhVBHFS-o-jKNEMtvcGDvwkkRRrg,37888
+PyQt5/QtQuick3D.pyi,sha256=7wkgVOTv0SlAQgWhnGzHg_aR77YYy0TEMCPqFrhxhwY,5562
+PyQt5/QtQuickWidgets.pyd,sha256=vWjcwuVCWCm3NAF6kQ8rrAs2XRdV-swujX-K6RQN8ew,61952
+PyQt5/QtQuickWidgets.pyi,sha256=lOLTrL7liVsH0Q1jm7NFBB8HhmBDvIuQexnC7zUpTs8,4812
+PyQt5/QtRemoteObjects.pyd,sha256=SSBXBIpUQDIanrcj1vwisTnphFr98AffutKOmQ2gmRU,92672
+PyQt5/QtRemoteObjects.pyi,sha256=7uDPm8uxotJ3ma7oiRF0AjRS-H6itpaoMF36UR9UcVk,9419
+PyQt5/QtSensors.pyd,sha256=LY3GWFUgZslaYKfpbgDlUg92wz6IiqLjCUi7jwR4r6s,249344
+PyQt5/QtSensors.pyi,sha256=vWLwpPRv_97Zgi9HCrHqBe7IE5Awl06Kuy-T3hSWSls,21360
+PyQt5/QtSerialPort.pyd,sha256=R3paxgem2kXX_zuYoRP2Ebx090yOgwSh_zjakyZh4Qg,73216
+PyQt5/QtSerialPort.pyi,sha256=LaEbHOmtyj7PLWbmM-hkBrP5SZnZTivoyueUhkZS8kA,11468
+PyQt5/QtSql.pyd,sha256=TMBfEHUsYMFgdfRHa40STZJg0Hm3qfPSkSsUb-GPtbc,309760
+PyQt5/QtSql.pyi,sha256=wouG0ybeOL07Uq_cbHQjgTnJIs_CDactos4ICB_Fp4k,29881
+PyQt5/QtSvg.pyd,sha256=uHu4ZOWfSpRadjBGcVjS-gIMPNAuos7FQDaNMcWnXyE,115712
+PyQt5/QtSvg.pyi,sha256=thR8RB7ttqcB_2K21rcPZNfOtnxFnXqQShtzIaxrQdw,6285
+PyQt5/QtTest.pyd,sha256=BW1ZPuLoUFEIlllyRPUgXyM-23s7tknbM-xK_u8l6Fs,83968
+PyQt5/QtTest.pyi,sha256=d4N3MsYHpCdNH-JgRgqrBC8c59m-u6Voi4j8ga-OC90,11447
+PyQt5/QtTextToSpeech.pyd,sha256=FfToWXTP79gxm_L26uqxix5j739tU-j49j0ckZ-XBWM,39936
+PyQt5/QtTextToSpeech.pyi,sha256=OCmAKGrYL7l27khavjwbJsdh-D4EmdJ4scuJReunBDs,3887
+PyQt5/QtWebChannel.pyd,sha256=Cub-3v1moPAaBeaEE7rGIs7RqVd3TZsEM4wKTj-ARS4,36864
+PyQt5/QtWebChannel.pyi,sha256=cUkBWmcWvg7iEmh2MB63LLQoPACMmUg-5ieEiCqxNdM,2577
+PyQt5/QtWebSockets.pyd,sha256=K4iCVH2YxKQLA0YpMoAjyRK8pCD8UAq8YVaxQhZNarY,76800
+PyQt5/QtWebSockets.pyi,sha256=Czl4qBgmR1MbEillwiulgdSdbNefM4uhGOO-ls4ly-I,10650
+PyQt5/QtWidgets.pyd,sha256=in7iZtGssy4w5FytMDNoHr2hO6dQB_XmSyN-SyiNfa8,5020160
+PyQt5/QtWidgets.pyi,sha256=5Ly7vB-S7VfEZhLTt_FFOIK8N4ASWMVUpsoSI2tt8f8,521870
+PyQt5/QtWinExtras.pyd,sha256=D9mm1pAoAHUsB6WtDiiKouOrqx9_j-ZcU_VZQU-92LE,109056
+PyQt5/QtWinExtras.pyi,sha256=PCbz2UJ6eXQ3wfrJL--7LvTiFBaV9P5pIwgwiepTD_s,13703
+PyQt5/QtXml.pyd,sha256=JeyhjiTS1gfvtw8x6-RP-aE6L3XJeifYUtLLt6VtJF8,216064
+PyQt5/QtXml.pyi,sha256=CshkEImrTQGfWWKHaw8RzJLhOm6AUdEecry_81CK5Cg,28419
+PyQt5/QtXmlPatterns.pyd,sha256=JvXJNcfYBoIUKN9e0s167UGK2VaLcXY_M35jYNu4u7s,132608
+PyQt5/QtXmlPatterns.pyi,sha256=hGsCTY8n-Pppc2lEjIbrNwCjRwChFjdJwGzvpLOiU94,15573
+PyQt5/_QOpenGLFunctions_2_0.pyd,sha256=lCzKLCdysa5XhlV00IbjI17CMLGIDArzq16177QBy3k,240640
+PyQt5/_QOpenGLFunctions_2_1.pyd,sha256=G46VH0Pw-wAx7P_rd0I9gn0-Yw6qsWmaVUDlRk9yZWI,242688
+PyQt5/_QOpenGLFunctions_4_1_Core.pyd,sha256=eteKTi5I2FBqtn8daeI8i4rPOErA2KpXikOUnykV2oU,128512
+PyQt5/__init__.py,sha256=4gsunB-0MdECmpLHiOgfL4sV3vrGKja--IpEaG9VXj0,1691
+PyQt5/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/__pycache__/pylupdate_main.cpython-37.pyc,,
+PyQt5/__pycache__/pyrcc_main.cpython-37.pyc,,
+PyQt5/bindings/QAxContainer/QAxContainer.toml,sha256=hFLzF2Q0A-D8F1y6o-EiZ4lIgjufhi8A77GIjGeKFIY,186
+PyQt5/bindings/QAxContainer/QAxContainermod.sip,sha256=l71SYftW3BYSrGxgQ_sQHAB-ydzTyUYEdH_uQic4-9M,2010
+PyQt5/bindings/QAxContainer/qaxbase.sip,sha256=6LC3S8oi5iB9yEBrPBC5lBs_FtmwMGt9CkVtSfTWeKY,5361
+PyQt5/bindings/QAxContainer/qaxobject.sip,sha256=0ygBwNwtT1ViFBkNL1Am0s72u3Mf9cX7aGPFCAuIv30,1951
+PyQt5/bindings/QAxContainer/qaxwidget.sip,sha256=7Cry44y8NoDCgy_VcCi-fG9Y_stF74p6n8KhKgql7rc,1786
+PyQt5/bindings/QtBluetooth/QtBluetooth.toml,sha256=r04PQt9rSKLnddScCI_wSxfGqa_fayCpoCq9xUyRhGY,185
+PyQt5/bindings/QtBluetooth/QtBluetoothmod.sip,sha256=j20toMKWHYAFrYr5rLJv5I6DOoK8kq-ZMdLA-iZP11w,2883
+PyQt5/bindings/QtBluetooth/qbluetooth.sip,sha256=oHYVeV-rQVbqRWnFEYCekCLGfRCa124QyD9z6ztf8zM,1881
+PyQt5/bindings/QtBluetooth/qbluetoothaddress.sip,sha256=KRijrRpsWfu-kA2AmKJB5HO5Ondt3XRNUkz-VQMWqrU,1611
+PyQt5/bindings/QtBluetooth/qbluetoothdevicediscoveryagent.sip,sha256=21Rc7xR0XBF7qYKDwTwXg4eoTwxykEkxGpo8d9l6FKw,3372
+PyQt5/bindings/QtBluetooth/qbluetoothdeviceinfo.sip,sha256=zDbu4fnK3gIb-3Zc-eaLk7SPWvaoR9Ae7qQpUh_lI28,7390
+PyQt5/bindings/QtBluetooth/qbluetoothhostinfo.sip,sha256=sQioikE1iENFChui0jovwrWbJ_lD-q_wSBHC_2iD3LM,1558
+PyQt5/bindings/QtBluetooth/qbluetoothlocaldevice.sip,sha256=4-afwnugJZTVmvGv16X64el6U-HtuAgqB_cC4yZUhTE,2999
+PyQt5/bindings/QtBluetooth/qbluetoothserver.sip,sha256=iIvSONJ4ZNoQuQrPSP8FqaL56n1dm9qpTmu9buUfl5U,3721
+PyQt5/bindings/QtBluetooth/qbluetoothservicediscoveryagent.sip,sha256=2plhyIsv5z5BVaLYmZd_wnnrLkDcXKzzY9n8ocb0QNg,2622
+PyQt5/bindings/QtBluetooth/qbluetoothserviceinfo.sip,sha256=b7Jbz2lEx5Trq0-jnDUFA8WXdEAf6Ggi6ufgij0mwHM,3412
+PyQt5/bindings/QtBluetooth/qbluetoothsocket.sip,sha256=ctdLHc91QFWPw8a3yhenu2UN7tVxPayYjuxWfTpa93s,5191
+PyQt5/bindings/QtBluetooth/qbluetoothtransfermanager.sip,sha256=eXyo0AdzC3p6PhrN3MaaQ4HYuCfHS7RY-k1wCyvRfJA,1432
+PyQt5/bindings/QtBluetooth/qbluetoothtransferreply.sip,sha256=v7IFdBC48U6r7ugp5ZEOOeNWRF-uItRBvLsaJq3LF3A,2276
+PyQt5/bindings/QtBluetooth/qbluetoothtransferrequest.sip,sha256=LZTK3yfGcOBYCaJ24EnK_7DrXj5jvpDZ6MZ8akOO9r4,1886
+PyQt5/bindings/QtBluetooth/qbluetoothuuid.sip,sha256=HH6ZXEi3i1aott21Nn4MoOyA3Nbt-1IAdAg7QLg7-AE,11907
+PyQt5/bindings/QtBluetooth/qlowenergyadvertisingdata.sip,sha256=5EQ4iW1f-ZfmLEE2RLKXQTqnDiWH9NIUVI1m8l6UHmE,2400
+PyQt5/bindings/QtBluetooth/qlowenergyadvertisingparameters.sip,sha256=vEK8DSHD6cjVIaUlMRdoam5W9HwjHbOFTwwdH5Xrd0E,2930
+PyQt5/bindings/QtBluetooth/qlowenergycharacteristic.sip,sha256=kgaAkvTbYixWdtK1R-mQa7hHAgp0xfdzQLcjgUVihE8,2224
+PyQt5/bindings/QtBluetooth/qlowenergycharacteristicdata.sip,sha256=qpcnry8yj6yvbhMsPJmEaj59kWRBSH5dApiTrOI7aDM,2533
+PyQt5/bindings/QtBluetooth/qlowenergyconnectionparameters.sip,sha256=qI3jKxeWwI2UcIdTXcjmLXwh32a3Nno2DgQBIa_wY_4,1894
+PyQt5/bindings/QtBluetooth/qlowenergycontroller.sip,sha256=yvpwkavLpbu94yai0C2mTsZ41O7KUtx8rH-D8sHbnPs,4733
+PyQt5/bindings/QtBluetooth/qlowenergydescriptor.sip,sha256=VogWscuueAIcwDBKsFYRT4Xbv1toRVC5Eaa7LdnC6Tg,1572
+PyQt5/bindings/QtBluetooth/qlowenergydescriptordata.sip,sha256=ig_Gf9-b7w-FF2fIKdi9LZHB-dNVO53hBb16z2tZ4S0,2257
+PyQt5/bindings/QtBluetooth/qlowenergyservice.sip,sha256=KHEkEdGpXp-tjylVwSYYAW4a0Yo3lTj_hmss9scH-hc,3855
+PyQt5/bindings/QtBluetooth/qlowenergyservicedata.sip,sha256=sY1D29yGSTJPgI_RfjR7HVPHippADrqRPEzC8NDt4Sc,2263
+PyQt5/bindings/QtBluetooth/qpybluetooth_qlist.sip,sha256=HuSZNzqryajpbCAVBZh2BPGRBYBaOR7lUB4d-zVLQKA,5611
+PyQt5/bindings/QtBluetooth/qpybluetooth_quint128.sip,sha256=I73mJPxvt9RwZnNiG1Ie6UjMIdUEhVu-O1mYHdbaFjQ,3041
+PyQt5/bindings/QtCore/QtCore.toml,sha256=YfpFyxCOoAFuspIFYKo1uc3QSURN0B_JDO1k1C4-4BI,180
+PyQt5/bindings/QtCore/QtCoremod.sip,sha256=c5AQNTw9buS0rlyrBnPPGWNXdPWggjnBERxYQjJQlR4,7142
+PyQt5/bindings/QtCore/qabstractanimation.sip,sha256=OAUpuNiky-3EA4pjQvGUz27XUV42UmsmDYHxPgj1kak,2639
+PyQt5/bindings/QtCore/qabstracteventdispatcher.sip,sha256=ZR-s4iJQR4a4WlZ4Tl9ZdMrAfTebIoqr3Oud5VjAxXE,2911
+PyQt5/bindings/QtCore/qabstractitemmodel.sip,sha256=-rhcwE_JChdwVXygLGgJLiLbOve9Gi7j5gUuyMRJQ6U,14579
+PyQt5/bindings/QtCore/qabstractnativeeventfilter.sip,sha256=ytO818DkCPrmmbyS8FnW9QXensaeYTPwRHNuIoP4kfU,1362
+PyQt5/bindings/QtCore/qabstractproxymodel.sip,sha256=Yt1AGMeGYURxss8YRKnkamyZPJQ95kKQsQbVzqC2TSc,3733
+PyQt5/bindings/QtCore/qabstractstate.sip,sha256=7XRu_PzVQZgbs3T8pSH3sHrQ63sRKVOujmM-fXCq1N8,1542
+PyQt5/bindings/QtCore/qabstracttransition.sip,sha256=V89nHP_-mnIc5AmYJTt11ex7u-HPnAkgi2YCZlA3Az0,3602
+PyQt5/bindings/QtCore/qanimationgroup.sip,sha256=6CYtDPptazqsvNis_K7FfO8PyS_AYEkyf5kdaWUVy9g,1692
+PyQt5/bindings/QtCore/qbasictimer.sip,sha256=032yGYZKBIlYbzw-KnTDmtf9C6aoGO_04CoqNb5f39A,1417
+PyQt5/bindings/QtCore/qbitarray.sip,sha256=pQ4pV_kNlkZ1V9QN5JO05LireZGa-YxpDf-UsMCbURc,3106
+PyQt5/bindings/QtCore/qbuffer.sip,sha256=RcN4fh22qfNok2LHQ87OEpOPthGFvXbVTqvt_17zEdk,3098
+PyQt5/bindings/QtCore/qbytearray.sip,sha256=ArGZq7iEeQ3NJSDwHAZC675DEdnJtVEJj_S3d_owTyc,17417
+PyQt5/bindings/QtCore/qbytearraymatcher.sip,sha256=KQkvW6rEAYCeRgSu3iPvyVpUHWNy0clEo5T4tuIwG0I,1387
+PyQt5/bindings/QtCore/qcalendar.sip,sha256=TYY9HAwM8la4ey_U-07nFsyaKU45wFMn6rFKo73tdE8,3571
+PyQt5/bindings/QtCore/qcborcommon.sip,sha256=jwZZHTnHh-H3ikEwPpnSVvozW3OPM3FTLq4glNYWaKY,2490
+PyQt5/bindings/QtCore/qcborstream.sip,sha256=WMpV8CNZVXKcrXXnJm9ZoI8U8MFMLrhbqAmnnC0L4VA,6687
+PyQt5/bindings/QtCore/qchar.sip,sha256=2RFAU6oyitnOSX-oowvIvgIOdsZf3eqFn--Q3mnfOIE,1637
+PyQt5/bindings/QtCore/qcollator.sip,sha256=mww_tFl6Umy2PDeoU0WDzzJ8-SIARgtLEZOpYpqYGmc,2126
+PyQt5/bindings/QtCore/qcommandlineoption.sip,sha256=U9_RKtnnzAp6m6-XhzgzaxlRL7DC7xkYAwYZqBvTf7E,3090
+PyQt5/bindings/QtCore/qcommandlineparser.sip,sha256=yGgSWjkeUqc70jcaV45r3ZyRSBQUzzFQTBPbqwogNoo,3024
+PyQt5/bindings/QtCore/qconcatenatetablesproxymodel.sip,sha256=JjuW5_ilsYL0vQ2hHBZzMHbF7dd7M5iW6ck53bHmVvI,4272
+PyQt5/bindings/QtCore/qcoreapplication.sip,sha256=D_x4-O1Gs2E9x0wsvfwn05CltTZAi_pozC9ZX8HamR8,11408
+PyQt5/bindings/QtCore/qcoreevent.sip,sha256=QT6BDrKD6Ri2MMtLRGFMCHxtPbTm60P3lutPncU0jGA,6702
+PyQt5/bindings/QtCore/qcryptographichash.sip,sha256=TEL1kwTX4yUHAwj-sRAvlGCdkYS4y_N2hZihgApOcKE,2127
+PyQt5/bindings/QtCore/qdatastream.sip,sha256=p2PKPYlIlyX7W4uqAsg3sWKbEm7R8gQagdsUNpQrrkU,10188
+PyQt5/bindings/QtCore/qdatetime.sip,sha256=qyfRl_jFlPFuLrKUP0WdgFwN6pvhhC9tSi04C6Hiids,20512
+PyQt5/bindings/QtCore/qdeadlinetimer.sip,sha256=2RSijLZcxj16WQ-U4_qTqqHV3WPos4lue11mfi1gzNU,3123
+PyQt5/bindings/QtCore/qdir.sip,sha256=3DWtxJyC4Q-gdgw7OmJhBLZWjSZHyyiTa9Q5UUBJwCQ,6420
+PyQt5/bindings/QtCore/qdiriterator.sip,sha256=gIOB328WGaXb58oLnz2xmIIcfsKuzsrXzfHlsFLBX6E,2109
+PyQt5/bindings/QtCore/qeasingcurve.sip,sha256=xQfwtnCj1GRMeuVS-1pkjOxGRtsMYKRRPW0cRk9-2Y8,6957
+PyQt5/bindings/QtCore/qelapsedtimer.sip,sha256=n0zeJ_tzxJxWElsFIKBijwtimozn7OWOfe4fWD3c6J8,1886
+PyQt5/bindings/QtCore/qeventloop.sip,sha256=xfmsNs4CAN8qWvxsHUTucctR4kMRdibep4RU-j92-bM,2586
+PyQt5/bindings/QtCore/qeventtransition.sip,sha256=5Qc6fEalLi50qYKDr0CMN94njZXaNpYAETbKwpMVD3E,1628
+PyQt5/bindings/QtCore/qfile.sip,sha256=2D1JXyBh-1IQhYEjlwWPf_5HfzLLPPzfngS5z1jhMNg,3033
+PyQt5/bindings/QtCore/qfiledevice.sip,sha256=WCKbndF43aEfH8OV_SC-jBPftuhK7CurdzngYQ1nIuo,5888
+PyQt5/bindings/QtCore/qfileinfo.sip,sha256=qMi4ga8zCwMwXZTL6x1Sa4IOzAIzlNkZLpth4bM9HR8,3521
+PyQt5/bindings/QtCore/qfileselector.sip,sha256=BSFSoE37oUcPlpiYeLQZ-NypY8AWnEO1oKjoZxHSi_s,1430
+PyQt5/bindings/QtCore/qfilesystemwatcher.sip,sha256=1mXHRgT8qiJH27L04FBxYDTduN50GnHcJ2AY6iW-x2Q,1640
+PyQt5/bindings/QtCore/qfinalstate.sip,sha256=dsxunkyFHZLbnqgIy9pc-cpRSNuNwEqqnnZkv6hfrdw,1290
+PyQt5/bindings/QtCore/qglobal.sip,sha256=YZqMID_hM2Wuu90HsLQnK8eB-WzzfDqZT0UrkcvGV8o,7249
+PyQt5/bindings/QtCore/qhistorystate.sip,sha256=frcljbdvx1OIY-opiYLAi0aT2e80WhorlmDypeUWY6Q,2091
+PyQt5/bindings/QtCore/qidentityproxymodel.sip,sha256=Bhvkx3SlNuJ0WtjpvGtyCe-KT8IkTlDFlLOBx1yngWE,3318
+PyQt5/bindings/QtCore/qiodevice.sip,sha256=xcEwFr0Rq0KLr-6aU_YgDi9bqAWLETee-Lhv_rbGZwE,10032
+PyQt5/bindings/QtCore/qitemselectionmodel.sip,sha256=SV9DW9Uzl7JZYVcIxjHNqPYtJAdZv8x1VnaxsxDuhgo,10238
+PyQt5/bindings/QtCore/qjsonarray.sip,sha256=MXkZrUVbwY2YtFN6xGUotQK2t6AjPWpDGFXgtyX4JxQ,3486
+PyQt5/bindings/QtCore/qjsondocument.sip,sha256=oczLm9OuceO0MmWtFjMXQ1uFgz2W_GZ2aDGVTufuZTo,3585
+PyQt5/bindings/QtCore/qjsonobject.sip,sha256=AObw5r3OvXJLMZmtyWANLW-byiX7izTD9eRZ7XpHfIs,3636
+PyQt5/bindings/QtCore/qjsonvalue.sip,sha256=OX90xc0btWIOea2lWgb0w5lHAlLMTrpxoVFk7z19n8c,3204
+PyQt5/bindings/QtCore/qlibrary.sip,sha256=QSUFo2uQw6IA6oC--cH2MoaUGWM82Plo6xA2zszrtCU,2581
+PyQt5/bindings/QtCore/qlibraryinfo.sip,sha256=PhN-h-KXBbLgMy2pBnDcBkBgwY0eAXbKuXyyLRJTyj0,1767
+PyQt5/bindings/QtCore/qline.sip,sha256=Yq2qxj5np1AIRsciIdFM_5JgAwXz-xyxfckevUg9s2M,6678
+PyQt5/bindings/QtCore/qlocale.sip,sha256=b1Ez4SXYYj011O6vEM32YT_McQUHxeS7M5U6QNcXKlk,34464
+PyQt5/bindings/QtCore/qlockfile.sip,sha256=Kh8eS72qkFc1YhMBMteuMxfOmxsBo5GjEy6iRjhGkjU,1722
+PyQt5/bindings/QtCore/qlogging.sip,sha256=hexXobOcs4YRnge1J7L5Xhxw8mYKAB4JBv9eRHyoeWc,6174
+PyQt5/bindings/QtCore/qloggingcategory.sip,sha256=KRP5t4Dh2aJRwrWUWOQg69qLcIkx_9T1Q_pNqugGz_I,1726
+PyQt5/bindings/QtCore/qmargins.sip,sha256=AqNmQfVTusGZfz61ywejAZ8KshMtB1ejp9wWcc9PIZM,5292
+PyQt5/bindings/QtCore/qmessageauthenticationcode.sip,sha256=lX90ZEmctE4XdzVisZwO8sL_L3DkcuSmueVobsuO6WM,1696
+PyQt5/bindings/QtCore/qmetaobject.sip,sha256=aYlrJzDPXUEDWCA5T_pJfg1-Y8Bx5jOqJM9eQ3ByCvs,8172
+PyQt5/bindings/QtCore/qmetatype.sip,sha256=Hgk2jvTQjR2Phw-3eXSG4Us-nZfK17bkDXMIXTbpnBk,4007
+PyQt5/bindings/QtCore/qmimedata.sip,sha256=9yG5WLOrXNo5EfS5L1Hq1aQ6DisqpV496rVsZ2Bhesw,2062
+PyQt5/bindings/QtCore/qmimedatabase.sip,sha256=b2XI4Z-70JIPPBznnl0hO-LJm0DdzFo8UftLYhzdQZA,2136
+PyQt5/bindings/QtCore/qmimetype.sip,sha256=y6NNNzGCE7fTKIXp1UvD7DcxfzrI3UTI3Vvzn_mhEKk,1887
+PyQt5/bindings/QtCore/qmutex.sip,sha256=4dDiuCWwhJ3b_uF1xFreWWfFPJ233gWe1wtke_Gbcl4,2368
+PyQt5/bindings/QtCore/qnamespace.sip,sha256=8_sixxwcg0PFyQ7gyk13KEhIzdj_XpgTZbSdm0QkVgc,39318
+PyQt5/bindings/QtCore/qnumeric.sip,sha256=fBMAN1y_uFd2ggYW3qseTHKTXFrf0kkCdDDpu5750Bc,1207
+PyQt5/bindings/QtCore/qobject.sip,sha256=D6EtQa-6HeZfgqbJmk_KHk3Rdq7Xbbz3QLDGZex_Qr4,25277
+PyQt5/bindings/QtCore/qobjectcleanuphandler.sip,sha256=s8uLoNa2CUOYR8J4RiSxhwYr9dr7l1NH4bPpsQpu2B8,1284
+PyQt5/bindings/QtCore/qobjectdefs.sip,sha256=HWH375IR_5NZ9A6gGR1ez8lUqXNOquVlioewFvYKVfc,7914
+PyQt5/bindings/QtCore/qoperatingsystemversion.sip,sha256=z8x1zYvnQ-u2upD3FgZaRhI4PNnzNQmqwRu4En7ltCk,3616
+PyQt5/bindings/QtCore/qparallelanimationgroup.sip,sha256=7_7ep3oBLsacOZ9RA9w8DvdoZhZU2AiVi6AOILafyBA,1541
+PyQt5/bindings/QtCore/qpauseanimation.sip,sha256=vhAwsFytXpVdUurUR00GQ_2v4JH2mlx-57F6QO_hMi0,1412
+PyQt5/bindings/QtCore/qpluginloader.sip,sha256=sxs-3_Z7U2wJuDT7iTBi-wXpthIusvTmHOQA830HPXw,1598
+PyQt5/bindings/QtCore/qpoint.sip,sha256=HSsCvy4zJ2eAMkhVeKJlvj47u2tx3iq7f8l4rWElLcc,6649
+PyQt5/bindings/QtCore/qprocess.sip,sha256=MsLmKtVGGqYL8w1WuNY1LWVxsA4kcyVjshrKd3ocIgQ,7926
+PyQt5/bindings/QtCore/qpropertyanimation.sip,sha256=VVbBfu1XBQK8YYl86JPyKVtUZdpt1tJxQunXG9Njchw,1737
+PyQt5/bindings/QtCore/qpycore_qhash.sip,sha256=DmRxn9zvTWsce-CtpBRMzLUGElgmovIlGN6KGhp2c2k,11683
+PyQt5/bindings/QtCore/qpycore_qlist.sip,sha256=EOsv8ClJ49AILLVeeTs3Rt3-ALifLl8daldoRLsMO8s,21174
+PyQt5/bindings/QtCore/qpycore_qmap.sip,sha256=X8iK1CXQWX2FgbLp-y49CpJGuyroIZ_3SZDPqp-YC8k,8550
+PyQt5/bindings/QtCore/qpycore_qpair.sip,sha256=tg4WL4fPk2Fqd424fdLNBbYD_X3MmQG9V9yXY6DOrDs,8489
+PyQt5/bindings/QtCore/qpycore_qset.sip,sha256=Is-3Escw2N9DfSX7gar15a6-8X465TjLAMGW8u6jZZc,5661
+PyQt5/bindings/QtCore/qpycore_qvariantmap.sip,sha256=5-7zwQGTOcqEgj2rOGnQVgNWEnSI01itBH-GxWRPTcY,1425
+PyQt5/bindings/QtCore/qpycore_qvector.sip,sha256=aMJFny1_Y-DJxr_649HhZ6-6cHIau3YSEut06osgTow,14035
+PyQt5/bindings/QtCore/qpycore_virtual_error_handler.sip,sha256=dbbwoTNZo_Awee8g0l4ndJceOQduoTf8asF7RFgtCaw,999
+PyQt5/bindings/QtCore/qrandom.sip,sha256=XZuAlibBPUoDmeXBSPA_mQWRXTfNbZ6wy5I9XRx-Q0Y,2000
+PyQt5/bindings/QtCore/qreadwritelock.sip,sha256=pH51UlRiEJ8dqgsxl3ZHhZZ79KyJyWTVP9oPRkEkVPk,2810
+PyQt5/bindings/QtCore/qrect.sip,sha256=FxQGnI8tQEAiwzcboBdyODZ61vrsNfVSW5-xFG4dHaM,11291
+PyQt5/bindings/QtCore/qregexp.sip,sha256=KWvOcXtH0X7DwuJ_-wvbvzuOSqZTlqglGYEj219ypb8,5016
+PyQt5/bindings/QtCore/qregularexpression.sip,sha256=WjR1j7JSL4eFBf2OlsPgNfoyHCTpLO8-7VQDWKhAU5Q,7379
+PyQt5/bindings/QtCore/qresource.sip,sha256=z0oa2QmdLz9KiE5mhrRMS_3QaeIPxVCB3QqOlZ0z86U,2909
+PyQt5/bindings/QtCore/qrunnable.sip,sha256=342t-gIZezXbMdq_l1lcQopPikpGWn94Dfawkgmu3wQ,1747
+PyQt5/bindings/QtCore/qsavefile.sip,sha256=-EdrJ_5W6Rnjd5YcpYePTmBnqysTkOCJZHShXrLAaZw,1725
+PyQt5/bindings/QtCore/qsemaphore.sip,sha256=4_dMj7I6Nyhv2nFU1rQ2gfH57yfw_RcyVszxp6KrcN0,1704
+PyQt5/bindings/QtCore/qsequentialanimationgroup.sip,sha256=bLdH8XIWhRdOgEzyKTsPQo2vXRGHPsXCt_MiZhN6UF4,1766
+PyQt5/bindings/QtCore/qsettings.sip,sha256=DC_rEOJviJ1UiG7YmQfp2i28mU75Jyx1HTg_gJfkms4,4238
+PyQt5/bindings/QtCore/qsharedmemory.sip,sha256=U5-r83G0MF6NyoZm3adKA_PJKb3Fd40xctsmfangrAM,2395
+PyQt5/bindings/QtCore/qsignalmapper.sip,sha256=awYTzFY9yj0LzA-xLZ8DUFi4WSFQOGAnFecmV9ZHnOQ,2186
+PyQt5/bindings/QtCore/qsignaltransition.sip,sha256=ZClviYStbuvuLtSlhN33dl9YdCNs4fuVf4ICvfWi7so,2235
+PyQt5/bindings/QtCore/qsize.sip,sha256=_djUMrr8AmKao_290v3-B_7KcUOVAmPjTYJCPe_1cSY,6215
+PyQt5/bindings/QtCore/qsocketnotifier.sip,sha256=pcghiteXhQtbwVRtDCHIFL21c1Oi5f4jl-aLv_Ty-kg,1531
+PyQt5/bindings/QtCore/qsortfilterproxymodel.sip,sha256=vSDu7r5K_UNL6EDkgi5TPWuUB8aOOh4R_pK3Cc1_ax0,6342
+PyQt5/bindings/QtCore/qstandardpaths.sip,sha256=6Zaq7hkBtfkz4XnN0EwqRWxqmHkUZ27WsxEpxzKjqzY,2942
+PyQt5/bindings/QtCore/qstate.sip,sha256=HzxtV6B2KEbL8jI9ivasaXoz66X8L1_coB5pNvROOHo,2943
+PyQt5/bindings/QtCore/qstatemachine.sip,sha256=7an1-0T4XejuwbW05Cga0M8vhy-PXktnLIsfaLxir2o,4749
+PyQt5/bindings/QtCore/qstorageinfo.sip,sha256=ohAOQBO71F7UXZBSTybQLig8MH6IFHcMhj-erjEscds,2145
+PyQt5/bindings/QtCore/qstring.sip,sha256=gJIoZgY6zzNMlrukQZ6ngpbycU7Smm24zFYS0Fh1qeI,2063
+PyQt5/bindings/QtCore/qstringlist.sip,sha256=1CLGJj6PdOBCfWee18CzqnMYL4qRB4enhuI91dhejjQ,3714
+PyQt5/bindings/QtCore/qstringlistmodel.sip,sha256=XMxG_KdQI2bYgx72jAA4s5SWYXXjbOBMdKS3KiZx1ZQ,2448
+PyQt5/bindings/QtCore/qsysinfo.sip,sha256=l2YwsvrJgC6lwkMq5_kc5mlXsVlZLduabb0xxMO2UyY,4005
+PyQt5/bindings/QtCore/qsystemsemaphore.sip,sha256=uHB_l3m8wCoBMqPcN0aJCpK5S5OCE9tK4NXS4CaDyTQ,1848
+PyQt5/bindings/QtCore/qtemporarydir.sip,sha256=Gjy0q5koM7FjzzCmFEILe6WxDOW8814fEqZd2g8vRA4,1495
+PyQt5/bindings/QtCore/qtemporaryfile.sip,sha256=JAZJAVaO9gyq--T0pbcso_CahrL8PNX8BKLDgx_6NuA,1866
+PyQt5/bindings/QtCore/qtextboundaryfinder.sip,sha256=K11rwHjGYVlaGiXsMl1gzhFdXKN3fHx702jFdyBNFkA,2169
+PyQt5/bindings/QtCore/qtextcodec.sip,sha256=OY-rTzVVthCoG2PC_7hgGIyXqcdXvPPseCB6fOiv54s,4228
+PyQt5/bindings/QtCore/qtextstream.sip,sha256=-chiktaUHnvxk0hUKrwb8DSgyBdwoKIuJFCI9Z-QFng,6053
+PyQt5/bindings/QtCore/qthread.sip,sha256=-8mIsC0QL9xEMdSYthoAwj7Eof6aauNYvCM3mFynWLg,2985
+PyQt5/bindings/QtCore/qthreadpool.sip,sha256=BJMQ8Cy1IN7o_FYSHM9Zy9WKlvv1eIlzlCCkyVv5pdE,4141
+PyQt5/bindings/QtCore/qtimeline.sip,sha256=XSDQDkYDdWDBXXOL7vwFGT0hfwLTjANnnkgHSk-kn0s,2789
+PyQt5/bindings/QtCore/qtimer.sip,sha256=UdkbX9M4qxEkr_E0wiJwgLiDox1D1zZkUy9KxP38ndQ,2668
+PyQt5/bindings/QtCore/qtimezone.sip,sha256=welh8-WCQH3hfWNDnt3UAxKQmscyk63dK7cfaDO4rrk,4380
+PyQt5/bindings/QtCore/qtranslator.sip,sha256=ULj_GPfCMKzemAuQsnxTrSNh3Z320OqtcAupfbGkDSc,1926
+PyQt5/bindings/QtCore/qtransposeproxymodel.sip,sha256=9mNwjb_PBVTxtYNTUxlWsSUUbJCKSUgwrGvdY8h_Ip0,3053
+PyQt5/bindings/QtCore/qurl.sip,sha256=FnIspCfEE0k12WNVGqe6sMURCJeQMMKQuINSk7JkczI,11703
+PyQt5/bindings/QtCore/qurlquery.sip,sha256=G5BX6drlnoNTwZwqUsm_PLgumEoWY03pY0avgiESSRA,2685
+PyQt5/bindings/QtCore/quuid.sip,sha256=lpG4p9cS5hkeJqKFxJypzNq1lsKsDZ_QkS4pAFn6rsY,3632
+PyQt5/bindings/QtCore/qvariant.sip,sha256=_OSZYfKP8CuKajvX4Bz1idr3B1YL3Ou1xusVmRi4v-E,4727
+PyQt5/bindings/QtCore/qvariantanimation.sip,sha256=jzXnH15gNt8S73UrEMxNc2cG9i3dLau1DOADNO6qUcU,2252
+PyQt5/bindings/QtCore/qversionnumber.sip,sha256=Vpicng8LttM7GEDw-skFoLThw2MrdUf0UThXm0_Lf9E,2836
+PyQt5/bindings/QtCore/qwaitcondition.sip,sha256=0Svb3LarwZRhqnaca3c4vpxZZxXyrCV9eoAlEuSZvFk,1599
+PyQt5/bindings/QtCore/qwineventnotifier.sip,sha256=BcMKvZZ_g6USHZNYOlfZFzeWVyqeSeGgoDniNY_KjCI,1630
+PyQt5/bindings/QtCore/qxmlstream.sip,sha256=9nSIjQb_Ve9ncGTYvINqzouiPARNHzHYwzU9z8HENfw,14468
+PyQt5/bindings/QtDBus/QtDBus.toml,sha256=18CPiQd0_1nazWXdR7eH3ntYrfjqUVGcfrz8EpiQCCQ,180
+PyQt5/bindings/QtDBus/QtDBusmod.sip,sha256=ZyJXZsOjwYlNi1el6QFpwFky632sIjoArjyj99To5dI,2395
+PyQt5/bindings/QtDBus/qdbusabstractadaptor.sip,sha256=4Bl9psdz6Mt3C_b3IvvcNwTrvAeTfAOMtKJsmTQbiN8,1309
+PyQt5/bindings/QtDBus/qdbusabstractinterface.sip,sha256=Dc1uBrPGtQeCEnvsDnEZ8vU1hsyUG8dm8Jf2tiaGOoU,6844
+PyQt5/bindings/QtDBus/qdbusargument.sip,sha256=6CihN48LtFV_7C0D5uvcTXdUqyIeVqph9euIVHNtOyw,5238
+PyQt5/bindings/QtDBus/qdbusconnection.sip,sha256=vupH4sOq5DMUnQs2TSImO44L2OccZgmz6NALLT8eV8U,10165
+PyQt5/bindings/QtDBus/qdbusconnectioninterface.sip,sha256=O_APn3PGesXnOLiF1hRr3j2eel9ILWDR_8rlGb90Cxc,3073
+PyQt5/bindings/QtDBus/qdbuserror.sip,sha256=maIe-ZF87UGsCafrMRW9HBopqGnVc7UkaA1C8Cch_BA,2026
+PyQt5/bindings/QtDBus/qdbusextratypes.sip,sha256=QsTriPComlClnYVoXXOdAie_rZwp0Ge79Q9MArkrPss,2652
+PyQt5/bindings/QtDBus/qdbusinterface.sip,sha256=LEYPqen5yDzZpNE_bHiXtZg_eDdnvhauEfeTr5bnQWY,1331
+PyQt5/bindings/QtDBus/qdbusmessage.sip,sha256=WkisJ-pcmV6L7NgK_YMI3I3dCbV98lbSgJM6RO9VHsg,3184
+PyQt5/bindings/QtDBus/qdbuspendingcall.sip,sha256=XXr-QCbzalngaLSd6lNl8GsxP6c15i5yOa_sJERK-DQ,1901
+PyQt5/bindings/QtDBus/qdbusservicewatcher.sip,sha256=UyPch-aXQkzveXU4s74dSzyIsjoemVuVBoFPimvlLOc,2539
+PyQt5/bindings/QtDBus/qdbusunixfiledescriptor.sip,sha256=FnbH_xdThOQb6rOMD1xiUc00aeU91jnxnAIHBCWA4OY,1489
+PyQt5/bindings/QtDBus/qpydbuspendingreply.sip,sha256=7ZiyWP7tcAIWwqRitjZfOGzGUeq6CQJqgPFiyd01tq0,1783
+PyQt5/bindings/QtDBus/qpydbusreply.sip,sha256=fkWtLTx3E2hJ5807uBhowrg6gxOfK4KQMeXd9-Ih6GE,5529
+PyQt5/bindings/QtDesigner/QtDesigner.toml,sha256=klPmxODmBCixJKNnuD8wYosuKYADn5rvX7mO3XFUwLo,184
+PyQt5/bindings/QtDesigner/QtDesignermod.sip,sha256=Fz99XM3egrL8Az22GV6GimKaq1_J62SkeKVeJjMxlkA,2848
+PyQt5/bindings/QtDesigner/abstractactioneditor.sip,sha256=l6v9QMymL5umRgtlkKOKC7XPZdwNZkPu3Yihyj5AvSU,1530
+PyQt5/bindings/QtDesigner/abstractformbuilder.sip,sha256=jKcrH0reurvOfgjT1v07RwuDJiTfG0Mllrv8Z2jJ0Bo,1502
+PyQt5/bindings/QtDesigner/abstractformeditor.sip,sha256=E_Dk9xSdWbyrXz8VGS0xfSbNt69x0tqrCfGsCE7zNH0,2191
+PyQt5/bindings/QtDesigner/abstractformwindow.sip,sha256=1ePGWBmaNNksC5XsZg7-kiPzRrRRnw8Cz2iPoCaW4ZI,4826
+PyQt5/bindings/QtDesigner/abstractformwindowcursor.sip,sha256=nJC2CE8LIkt8Uu0ZeyFhp5sBsJtS9K7RxpqOWBp5PAU,2460
+PyQt5/bindings/QtDesigner/abstractformwindowmanager.sip,sha256=5WzUhE3mEYr-B6MfNZAqSxZhBM2PZswowFJAx0LK5cE,3358
+PyQt5/bindings/QtDesigner/abstractobjectinspector.sip,sha256=M2TtCVjNTsW1_dkK6AtOjglFcGzriHfua7AaPCYpzw4,1437
+PyQt5/bindings/QtDesigner/abstractpropertyeditor.sip,sha256=mW9Hs-2y0pITj3xfKbyI48FWqx_xqVnRdrjjgaHgAcM,1779
+PyQt5/bindings/QtDesigner/abstractwidgetbox.sip,sha256=THkS3vK9ktd_W15lH_sf8EOPTpTLeIxXyNCDgvNI__4,1417
+PyQt5/bindings/QtDesigner/container.sip,sha256=yaib4pIQPjxWjdACn-VIKoRwj_GpRBaMBZCqAsf5iUQ,1550
+PyQt5/bindings/QtDesigner/customwidget.sip,sha256=vGdepQh5tklqjS0rTvlxGdeU8nGVPsh1Halscao90-o,1938
+PyQt5/bindings/QtDesigner/default_extensionfactory.sip,sha256=JY_tz-s_-UUuKnKNSgmsxGZ35i-JOt86mb2LDWTMEpc,1594
+PyQt5/bindings/QtDesigner/extension.sip,sha256=eV9TfYq04Rq5mmfvkr08gg-taF3Fq6xVMaG9QzBpgkc,1616
+PyQt5/bindings/QtDesigner/formbuilder.sip,sha256=yYf3rArb215Ht6RhfyLF18wfWOv11F30LmZOnM5_1ek,1382
+PyQt5/bindings/QtDesigner/membersheet.sip,sha256=EVLsZ2bWYPeAldEQS57cDTiyxITy4bIEVq2DlzFqGM8,1917
+PyQt5/bindings/QtDesigner/propertysheet.sip,sha256=grGNGDSTgSnv5oXtFkbs8pqxa-R3nUjYxMnfQfvH37w,2000
+PyQt5/bindings/QtDesigner/qextensionmanager.sip,sha256=sZh5jZefxC5VyDIP2pB2-ChAK58jphEZzrJ1x-Ii8vw,3582
+PyQt5/bindings/QtDesigner/qpydesignercontainerextension.sip,sha256=zD2xLMtu_McWSHVE8s90GkFXcv9k7PR664PqRLdTvhY,1260
+PyQt5/bindings/QtDesigner/qpydesignercustomwidgetcollectionplugin.sip,sha256=k8O5PcVMbxW9xuPMqxgJom59laGBTx8d80p12toEZDM,1341
+PyQt5/bindings/QtDesigner/qpydesignercustomwidgetplugin.sip,sha256=qq5_EWgPvOsUyquB0D1eiplkWjjkTnGDBKIZli3O41g,1267
+PyQt5/bindings/QtDesigner/qpydesignermembersheetextension.sip,sha256=0V8gXz_s-RV-GY5V13SetbzkhxwRwQIo-Cq5HzTCMPk,1274
+PyQt5/bindings/QtDesigner/qpydesignerpropertysheetextension.sip,sha256=K6DVQ20f3hkO7lM4WsjY5yc2829LFUPwHbbyU1suP9s,1292
+PyQt5/bindings/QtDesigner/qpydesignertaskmenuextension.sip,sha256=nU7Ho6oNIXKWAb3FpU1gx4QLf-4SqGapP2_WfvV2_vc,1253
+PyQt5/bindings/QtDesigner/taskmenu.sip,sha256=569dv7VKEWJsoySrfupMHEzhLnLWCIslJidXfAfVg-0,1221
+PyQt5/bindings/QtGui/QtGui.toml,sha256=050Hmhh0wkIHTse3zOlbUWrYlVN6SKK7BOjq87xmDaQ,179
+PyQt5/bindings/QtGui/QtGuimod.sip,sha256=yoJAwx2LMGO2I4OHw2G-b5ENtDhpu-qb5L5LtY3wD40,4639
+PyQt5/bindings/QtGui/opengl_types.sip,sha256=O3BAGaZPYMjNN4FrvI4UHiqW9HWL_G_26jKsSKehf94,1450
+PyQt5/bindings/QtGui/qabstracttextdocumentlayout.sip,sha256=4bDGvt7p45Dzqt5XxPV8aDPVDqqXMlR5hGiOClHxiqE,3924
+PyQt5/bindings/QtGui/qbackingstore.sip,sha256=J7MuKzuCX3wgXLtB-W-oAeTF37ZIsdB8Lbd_l5urlxU,1611
+PyQt5/bindings/QtGui/qbitmap.sip,sha256=UvOrsGodAs45FKIc80cqVa4FrWg1m9WJMmdTLbOo6KU,1932
+PyQt5/bindings/QtGui/qbrush.sip,sha256=CH1TALi0SvMK4WWdg0o4QopksrQfIVbW6GtIk6Lt2KI,11361
+PyQt5/bindings/QtGui/qclipboard.sip,sha256=5RNN3A_LuaTxZ-RQz6JOS1qgxe6zzrrYW9B6lmyHT4I,3633
+PyQt5/bindings/QtGui/qcolor.sip,sha256=0kI056xKggdQDGz9U0_hI9Hxk1dtLJmvQ2nzPQkfVo8,12487
+PyQt5/bindings/QtGui/qcolorspace.sip,sha256=YVU6Aaivr2g5rT2g6HKO5NLQGEgrEh9OdLrA1cZWk2A,3243
+PyQt5/bindings/QtGui/qcolortransform.sip,sha256=Y0JtiPOffCo-P02sOQyOYLnUWRIEOqDbRsWx-BfJPNg,1378
+PyQt5/bindings/QtGui/qcursor.sip,sha256=vWeq5F1siRwGW6wqx-i8iEvdbQVMTuRyjOvQagUnue0,3162
+PyQt5/bindings/QtGui/qdesktopservices.sip,sha256=s3eXfClQ7c4yYNAJdWWUuVnXNX-gT0kmjnY8_ZBez5M,2485
+PyQt5/bindings/QtGui/qdrag.sip,sha256=x47wNAaUVA5LoD5HQW52z_qlBM8I4G7J4FVxZoNpTZw,2266
+PyQt5/bindings/QtGui/qevent.sip,sha256=eDRqdw_WNtVoTE-S5vsOPFkWBYpbfp_CULK7LOWRY4g,24977
+PyQt5/bindings/QtGui/qfont.sip,sha256=yUVYFeO0-u-ViJJJXC7h6fElKQW38mFE5nRYwmQRP3A,6343
+PyQt5/bindings/QtGui/qfontdatabase.sip,sha256=7fvl_2Nj4BPa8o4VpWcArXKebO_RY39JDETkwWxbsg4,3821
+PyQt5/bindings/QtGui/qfontinfo.sip,sha256=TC8xTzg5JYwTlMs84DTyQjY5VADjkPtlNdkct_jfbrE,1568
+PyQt5/bindings/QtGui/qfontmetrics.sip,sha256=HyUakOG_crOYZuYffyeJ3u5gR3tI6Bwcydv1BDFcmGo,6552
+PyQt5/bindings/QtGui/qgenericmatrix.sip,sha256=8rRxzNh0yv1mB14RPjLDDVY_5HW5fQBv4MFXEkQbMJc,32592
+PyQt5/bindings/QtGui/qglyphrun.sip,sha256=FXEl1LxtNIkI7dWw4lJJKtc0_CcwFBnXyW_bb8MacTs,2388
+PyQt5/bindings/QtGui/qguiapplication.sip,sha256=erS0apz3qVR8MG8lEU-jjW4_u5aiOEghnXZFK4OusOg,11884
+PyQt5/bindings/QtGui/qicon.sip,sha256=lHYS-K9C02rkOEimd28jvrvWg_a0nQQ2-PdesD-jxmc,4828
+PyQt5/bindings/QtGui/qiconengine.sip,sha256=wP5JjrzKYpPSzTU_VWWbWozED1HAgDWhhszywC2-wl4,2835
+PyQt5/bindings/QtGui/qimage.sip,sha256=EexU71y1TGZIs0VFxtMqNra-FSO4DgcQr8d5tk74qFs,10734
+PyQt5/bindings/QtGui/qimageiohandler.sip,sha256=sELAWuxWx8WgkX3CZuMZZjZeTdXFfZaFxMASzpz3jrI,3022
+PyQt5/bindings/QtGui/qimagereader.sip,sha256=O0iImh1K2myCqbJm4W96sPqGctBufzAdR3Tl9D8p1JA,3767
+PyQt5/bindings/QtGui/qimagewriter.sip,sha256=ZQTN9g_VoLqO4WBtE5rAgnnygxALk4hiRD-koo2XXKw,3088
+PyQt5/bindings/QtGui/qinputmethod.sip,sha256=oGDTPg01buLkBH9yO9NUmReEeqpAAHg812E4Ub1e3CA,2541
+PyQt5/bindings/QtGui/qkeysequence.sip,sha256=qV5qZr5RFhN6u5UXSzmpY6SDybaCStfKtTa7yg7CJ8U,7097
+PyQt5/bindings/QtGui/qmatrix4x4.sip,sha256=ggKm1yBnAbb9rmtyYnWluGdNl18Ex0zuTN3IOke5pi0,10969
+PyQt5/bindings/QtGui/qmovie.sip,sha256=Yvidf-4I-APxvG333j9HHMjTYU0_-oZu5s7El9CCgoE,2998
+PyQt5/bindings/QtGui/qoffscreensurface.sip,sha256=cr339WR4UhU94NO880JEh6AJmmsm02Igm2y-OYb_5Jo,1862
+PyQt5/bindings/QtGui/qopenglbuffer.sip,sha256=sMPjfzSOIly5iFR2tW0L_X5HmGqTK3nUWl1Uv_eOOP8,2939
+PyQt5/bindings/QtGui/qopenglcontext.sip,sha256=ygi4nLHAarekRL1w7G4OzoDq4nLqCXTaUfSxN7rNNFY,4123
+PyQt5/bindings/QtGui/qopengldebug.sip,sha256=occhcgJAHzL8QpqdPng8tqeJwK7CvCOGtWZEH_4V5gU,5517
+PyQt5/bindings/QtGui/qopenglframebufferobject.sip,sha256=Cy6w8j-HbTO2P-HhT9mowsuxphylzhLMQKNvoXMpBGA,5540
+PyQt5/bindings/QtGui/qopenglpaintdevice.sip,sha256=jk3a_3m8bBHUwPOrFKWG_M1_cQshjoPd5fAO4-0ESZA,1939
+PyQt5/bindings/QtGui/qopenglpixeltransferoptions.sip,sha256=JpqH6bIyTNT-F6iL7dKIn-sFGY6_xCYlik6tc_UmAuo,1965
+PyQt5/bindings/QtGui/qopenglshaderprogram.sip,sha256=5bb1gAwNM0t-4sQSvO_qRUI_SJXsVXjsWksLgKOHTyU,16834
+PyQt5/bindings/QtGui/qopengltexture.sip,sha256=yH_iowJHJWah-l5jjfVX_QhW_0pc4BQ28o1_F3ZIZPU,18884
+PyQt5/bindings/QtGui/qopengltextureblitter.sip,sha256=-9t87m6KgJgAcXGuFW2xQMhFgP0FeeEXnSia-5oeTEY,2050
+PyQt5/bindings/QtGui/qopengltimerquery.sip,sha256=29hOdgffvcxl-kWyWo1vLCLEH3_GVNGROKHFtGUAy3s,2217
+PyQt5/bindings/QtGui/qopenglversionfunctions.sip,sha256=Ik6AywB45eKq4oMR0QlOrQW8JqjhsRPCkHcLw945Csc,1242
+PyQt5/bindings/QtGui/qopenglvertexarrayobject.sip,sha256=eDl5VBuRyvu3A7O_aON4yk4ZyUD7xvvgRPHLTek78rU,2024
+PyQt5/bindings/QtGui/qopenglwindow.sip,sha256=uYvqoHeaERuv-BPYLSnXeWRSz0hcsk0QmwTRmYTsLv8,2356
+PyQt5/bindings/QtGui/qpagedpaintdevice.sip,sha256=DA6xbe2yQqv-zJZ0gElE1yN8skLw8opc4h1zbWLTkiE,7036
+PyQt5/bindings/QtGui/qpagelayout.sip,sha256=UCzrf2ESHuDtAmdEty77pPVDT3u58EJ9dOSEBRA1e9M,3268
+PyQt5/bindings/QtGui/qpagesize.sip,sha256=o4otsCv5nqgPyDjQNH51LW_Wud_dnnu2ecx5MAC92oI,5824
+PyQt5/bindings/QtGui/qpaintdevice.sip,sha256=6bcwj-FSlE0HRut3eoN33h7ZBV9dpUF9Qe4UqB_3v20,2183
+PyQt5/bindings/QtGui/qpaintdevicewindow.sip,sha256=HkgXyFIgCY6ZLPwKSjno0szfITcTFYxmjMmUJOTHikc,1484
+PyQt5/bindings/QtGui/qpaintengine.sip,sha256=rhtbLYP89H0XgLPNOQ2V1f_bPRN8f-OcxWi7DfCdvt8,6092
+PyQt5/bindings/QtGui/qpainter.sip,sha256=QpKH4wXPiC1ocHSl7O5d1XE-t-v-71DX5G6hWMusNN8,21374
+PyQt5/bindings/QtGui/qpainterpath.sip,sha256=x-WpW2Riu07g3MB1J-D-uW0xJ6BkUcvd9sQ23BE-IIw,7180
+PyQt5/bindings/QtGui/qpalette.sip,sha256=Mtn76iUHFxA9Jbwn5xS2wNv0jJpWlOFw2kLNOp_hpTs,4799
+PyQt5/bindings/QtGui/qpdfwriter.sip,sha256=r96dkaLX5F3Hsywo7IUMLSBfOVUO6aRaHEsbHkk5osw,2393
+PyQt5/bindings/QtGui/qpen.sip,sha256=HfgB8dkdu6-bZxV61NaZKeI3cKSaXVC-OorzoJaUI7c,3518
+PyQt5/bindings/QtGui/qpicture.sip,sha256=DfFQlr-gpBq6oePOMYkfAf2sfZHqrk0IOUZI7G9aMfQ,5881
+PyQt5/bindings/QtGui/qpixelformat.sip,sha256=gxRkxtO-NcZwA75lNwCofSpLBvkYji7v-uPOtKSb1ao,5944
+PyQt5/bindings/QtGui/qpixmap.sip,sha256=BE1xX7VA23q9SqozdaxmaOptekBVdBMFfigMZU-UW1E,4987
+PyQt5/bindings/QtGui/qpixmapcache.sip,sha256=cmgkNaQ7QCIggQiMLH3rnIRHpW-fzLzBpGONJ9IbnWU,2364
+PyQt5/bindings/QtGui/qpolygon.sip,sha256=7NU9EzyWkZWbZRl-IS9AkpSsAn8uBaLSjOC2SVijMZQ,13769
+PyQt5/bindings/QtGui/qpygui_qlist.sip,sha256=s6EwWgTVzNhB6MU5O1ax9fdvmTNKaHCMFPrYaUHlHgE,2890
+PyQt5/bindings/QtGui/qpygui_qpair.sip,sha256=7LI8dyG0SHOKM5Ichp-JQVHPXad0b1GWIZrO1gVd5wg,5478
+PyQt5/bindings/QtGui/qpygui_qvector.sip,sha256=LMhWWUA2U7Ixhesdv-G87mJUXGulJNZP24HJBOW5aQc,9158
+PyQt5/bindings/QtGui/qquaternion.sip,sha256=Pb9mynkrS2zva-W23CqRf0k87mjaa6c_jfIZ3PecVk8,6292
+PyQt5/bindings/QtGui/qrasterwindow.sip,sha256=MoampS64-liWv-pm_09Cgdpuyfb5RqiqHPqEOHrha8M,1317
+PyQt5/bindings/QtGui/qrawfont.sip,sha256=SlMvKkVpweUxb-hHHVNd6UnJeVR6GLyfEiwqwXQm2Ks,3942
+PyQt5/bindings/QtGui/qregion.sip,sha256=ORsE47xRClFWvX40cGT1i-6EaOu3yv7eYioNdMzZzzw,4641
+PyQt5/bindings/QtGui/qrgb.sip,sha256=cTve5UantWtd_E3bL6326qUhoN0eft9lnIyy6N_fcGM,1381
+PyQt5/bindings/QtGui/qrgba64.sip,sha256=TQSllcmkMaJnLd9nVQC0g_WHWMuLNLoTS55gu8qfTI4,2474
+PyQt5/bindings/QtGui/qscreen.sip,sha256=bpE0RHTlo4Ar2DvfKs7KGbrJ-SqW5JwPdpLahjbiGIc,3482
+PyQt5/bindings/QtGui/qsessionmanager.sip,sha256=2ubtwvaVC5Z22OMp4wnIUjF-XR_cz03MyZ-bIFvESVo,2052
+PyQt5/bindings/QtGui/qstandarditemmodel.sip,sha256=6HczVz51o0YHoO-Tqpsu6rH-6U3TPk9RBrQHxLhIn1c,10166
+PyQt5/bindings/QtGui/qstatictext.sip,sha256=XZScChkdbL2JeyV3P6VCTsYNxYK8RWcQtc9YqYajkoQ,2097
+PyQt5/bindings/QtGui/qstylehints.sip,sha256=NRk-unD-4QCpHH00nQyBsQh8LzdONpjUya2e-Mlv4Bc,3538
+PyQt5/bindings/QtGui/qsurface.sip,sha256=y4ku1VH1bQA8oNj9TecUjzNg5wR2uomIwS4HS-MjYQQ,1788
+PyQt5/bindings/QtGui/qsurfaceformat.sip,sha256=03YPk7VHHw9tqTj3orvkoWBWnNs2NFGjq-DS2BHBqx8,4382
+PyQt5/bindings/QtGui/qsyntaxhighlighter.sip,sha256=XcreRe7UYC-NhUPg-O8DupYGCWosnbGYjDVTsd5RP-0,3119
+PyQt5/bindings/QtGui/qtextcursor.sip,sha256=WHzCVz809rmnXWeeMsZGPNacGnEkYjXiMqo6zl6ONcM,5533
+PyQt5/bindings/QtGui/qtextdocument.sip,sha256=9psjNsDowX41qcQFv2v--oHGqIV9Cg8PrF2Ci9RbR3A,7516
+PyQt5/bindings/QtGui/qtextdocumentfragment.sip,sha256=ezLfdshXjOfBef6HwO6HylAZsLemQTB5DhQaDB6KOV8,1716
+PyQt5/bindings/QtGui/qtextdocumentwriter.sip,sha256=a6-OslJy1glMp4h9Sj0YnMKEWkq_illIPBu5nSgCkuQ,1847
+PyQt5/bindings/QtGui/qtextformat.sip,sha256=ntHX9a_F8UgmQAYvEvU1zbvoEWQsDVqTJsqMHRS4nj8,20387
+PyQt5/bindings/QtGui/qtextlayout.sip,sha256=j2lr5mPi1_L4GigrFYFXhI3iKE_q9OdNW29fVB2zwFw,5847
+PyQt5/bindings/QtGui/qtextlist.sip,sha256=Ux4avnXdBV1k8-Z0W_MtrMvjujOkYkBxv67agRjfT8w,1550
+PyQt5/bindings/QtGui/qtextobject.sip,sha256=ndrgeUdx6iAFOQjcSKOfYcpZX0T-Fo5l4qD8Ys5-Mjo,8097
+PyQt5/bindings/QtGui/qtextoption.sip,sha256=7-boFukG5kLOc8r3DMVQ4wF1oBIi1mUJQZXxYqoz7Lg,3098
+PyQt5/bindings/QtGui/qtexttable.sip,sha256=DQnlVoChheAdQMTBXhwSL-0522N3Pp_gtosooyxW0LQ,2644
+PyQt5/bindings/QtGui/qtouchdevice.sip,sha256=v18BRTs2vf5F4dSsArD4Ul-6PtHjKkg9Xc4imF-CpXk,2042
+PyQt5/bindings/QtGui/qtransform.sip,sha256=q5JChMJOOjU7KqoNqms2lMiaKDXclfC-75A1kxN83gY,5217
+PyQt5/bindings/QtGui/qvalidator.sip,sha256=16VvWcvEjGoo-ohTg-sJ5ZUHe1ndUHCHSU6oc-2bfns,3904
+PyQt5/bindings/QtGui/qvector2d.sip,sha256=cbQpCcUKnLkyhvzDFeMH6K8EfNFb_qM1ex00Zz1zUmY,4173
+PyQt5/bindings/QtGui/qvector3d.sip,sha256=4eYmP5sfWtFtJm9VcVCEkzkY1_Ou30rzAuFer1KaS-0,5245
+PyQt5/bindings/QtGui/qvector4d.sip,sha256=5GNL7Sz0cTrNaqGD4IJowfsWuB_cm6wpiurzv8MIvbY,4816
+PyQt5/bindings/QtGui/qwindow.sip,sha256=BLfsVzntGDzFQANke4kg4dorwqB5ZFTPzHiAT63o_cQ,7623
+PyQt5/bindings/QtGui/qwindowdefs.sip,sha256=QXQvz0Ibft6Cr37w53rKFq-ehE8r5q2x9QOtkqFxBw4,1033
+PyQt5/bindings/QtHelp/QtHelp.toml,sha256=-nZKJZ0xkArUjnkskP0T2ax0iajcQKeKg6Utyh2Jdp8,180
+PyQt5/bindings/QtHelp/QtHelpmod.sip,sha256=NdzmTVY3Y4NySzHVgDiiOgBRxl6Rtsns8F9grQO87hk,2402
+PyQt5/bindings/QtHelp/qcompressedhelpinfo.sip,sha256=ekc2tQGCqKyNs8MkjlL1aIj4a5QsVajwBlYVZf9SWZU,1522
+PyQt5/bindings/QtHelp/qhelpcontentwidget.sip,sha256=Z6JkaoyetSTha4wNOtVuJRUlEmKi-ebaXap1Soa2X0g,2424
+PyQt5/bindings/QtHelp/qhelpengine.sip,sha256=euFuPc5Xv26n6mXk3bnznKXR45lZ2hXj812J8IWqwxA,1398
+PyQt5/bindings/QtHelp/qhelpenginecore.sip,sha256=xzCaOqjtaru_UJG0C6qsX9F7q8LIOsqQ8xtr-jjQ5Qk,5469
+PyQt5/bindings/QtHelp/qhelpfilterdata.sip,sha256=vMDAR05w6VzOdlXE4hUugGaT0k3Piqayczcb9gzJOLA,1498
+PyQt5/bindings/QtHelp/qhelpfilterengine.sip,sha256=QSAowlXC-oVnSNyJ7iNMEDM1HkXnRmCvh3DK77Qknok,2044
+PyQt5/bindings/QtHelp/qhelpfiltersettingswidget.sip,sha256=kEbMlg8kDEUnodU_fra0j-AxNyc_sFHylsxtSrPI8cE,1522
+PyQt5/bindings/QtHelp/qhelpindexwidget.sip,sha256=FNihlXXx1AvunA4jfwtQvVBCBAWD1dClqq01TWIWTqs,2205
+PyQt5/bindings/QtHelp/qhelplink.sip,sha256=652B4-oc8z7NwEmjIicsWLThnPttS-Lf7DxvbKgGTUg,1108
+PyQt5/bindings/QtHelp/qhelpsearchengine.sip,sha256=206YIlLCc4ghA2xZloqqQHBwIIzfadpAF1IEqSIQEB4,2814
+PyQt5/bindings/QtHelp/qhelpsearchquerywidget.sip,sha256=XE4NLu6mfhLXPDn9z_wyjfLaMQDD-jhwjz0liPpkWD4,1914
+PyQt5/bindings/QtHelp/qhelpsearchresultwidget.sip,sha256=1X0OxgQxNgnoZv8uIdAp8x537U2b0fpTBw5nFFX32Kc,1257
+PyQt5/bindings/QtLocation/QtLocation.toml,sha256=J7zxvSC-Z9YhoW6R6EShbuXvEWpf7BancDlPEh8o4fY,184
+PyQt5/bindings/QtLocation/QtLocationmod.sip,sha256=WWSAsIrn8SWIbsW_hx_kMxTXaFcBAstS-uYXQ9NlJa0,3199
+PyQt5/bindings/QtLocation/qgeocodereply.sip,sha256=MnDdWTmDbeokt5M1IQ9bK0JrSzWeqTa5UIH4sLkHxsU,2409
+PyQt5/bindings/QtLocation/qgeocodingmanager.sip,sha256=RmtR1T3dEJljpw0Qlgwch6oPdABNU9W7vdcJ0AsWEpc,1828
+PyQt5/bindings/QtLocation/qgeocodingmanagerengine.sip,sha256=fMoXxKm97-WRa_z4BMDab3JkM_7JztyPc5WIphB6qAs,1900
+PyQt5/bindings/QtLocation/qgeomaneuver.sip,sha256=hnuZuzKa8t50tsmeiOLygG7tqBm4gFSLiGr6Jbk9jVM,2469
+PyQt5/bindings/QtLocation/qgeoroute.sip,sha256=UqONHOHcSxYjcBnvbWzhhFsM3OONfkGzcchF8XqP5EE,2655
+PyQt5/bindings/QtLocation/qgeoroutereply.sip,sha256=xID-_zthXEY7hbgqPTa5nFO4FgyjtAMS65X6oiDX3-E,2140
+PyQt5/bindings/QtLocation/qgeorouterequest.sip,sha256=SyuADtbI9qDNrYbAgFMu9KB7FA5n0cHrHK4PtbNabCM,5481
+PyQt5/bindings/QtLocation/qgeoroutesegment.sip,sha256=lCf4xo6axAaWEUn2YnaomnhW6G9H6ya_J-Or81c-q5g,1849
+PyQt5/bindings/QtLocation/qgeoroutingmanager.sip,sha256=1AGqYdgkNRY1pQ_toYFwQulaR01gM6Xnv1Mkp-YpHHg,2208
+PyQt5/bindings/QtLocation/qgeoroutingmanagerengine.sip,sha256=mRoUFcd2v4OBf2_fJsgbAc0KCLMd9iXxQ8Xx3b6-M7o,2859
+PyQt5/bindings/QtLocation/qgeoserviceprovider.sip,sha256=g9zOsEkm2wzWoqPy2MJlLErJC8vTs_IsavdNz8xeHbE,7498
+PyQt5/bindings/QtLocation/qlocation.sip,sha256=nBRVHTEt8pVHYdl549zOs9j9psoobE79RRypihv_Gk4,1417
+PyQt5/bindings/QtLocation/qplace.sip,sha256=DcuyZuuvm8j7AzbOkcfZKyV08OD1Y_u0HQOpJDKMq4A,3368
+PyQt5/bindings/QtLocation/qplaceattribute.sip,sha256=gr-NCyeTGAn_NBAn7IxlyeQvGjj1_f_zBtkgQeKwNi8,1602
+PyQt5/bindings/QtLocation/qplacecategory.sip,sha256=gb7CwKLQRDDbP79F5JzPnTXsLZaPWsu3ywei0CcEZVM,1676
+PyQt5/bindings/QtLocation/qplacecontactdetail.sip,sha256=fUPUFD_YuKAP55IlhGNelfSgh4gRy5eZqa797-Dnv6M,1654
+PyQt5/bindings/QtLocation/qplacecontent.sip,sha256=BTS5Y_cGJx4i8rB0EfuXdDtps8_O4ooShEKM_JVd2Jk,1814
+PyQt5/bindings/QtLocation/qplacecontentreply.sip,sha256=JiGhnAtOKQ1uT2jWDU2PgKJxaEbFrm7zZ4jzAJUMM-8,1811
+PyQt5/bindings/QtLocation/qplacecontentrequest.sip,sha256=eNHPTOL3DcS77ygoEwyD12l509ULi8tStR6-dtskEEo,1707
+PyQt5/bindings/QtLocation/qplacedetailsreply.sip,sha256=a0EeFiPcm_GIhoI4xcO7uJsOZh4tSLkUZ0aHEp4OR_I,1358
+PyQt5/bindings/QtLocation/qplaceeditorial.sip,sha256=zdQDQxkHvqfXB-mB__9bpF9SIf4ZpBk86KwN5HarMmg,1436
+PyQt5/bindings/QtLocation/qplaceicon.sip,sha256=RrTItkQUMn_3sXZ987g-LHqtxacX4tm2KHMZ2xkC5K8,1564
+PyQt5/bindings/QtLocation/qplaceidreply.sip,sha256=U_68YTjjaiz3pDjAb_43UDxgddBC7duFBE8xT9TbdOc,1557
+PyQt5/bindings/QtLocation/qplaceimage.sip,sha256=jdwfZnk_vF8jxOluhhNwRdhLrG4sH-e4Ut_exBgEj5Y,1413
+PyQt5/bindings/QtLocation/qplacemanager.sip,sha256=xyLgSS2slhvBaRzbg_RTPDoRiOY6zPEPra82maCiSp8,2979
+PyQt5/bindings/QtLocation/qplacemanagerengine.sip,sha256=vQaIrkeGLQjiGTdcPP0Y4Uo9WzZWOuT4dMh-uuo1JFE,3279
+PyQt5/bindings/QtLocation/qplacematchreply.sip,sha256=4N2qhJgEaYq7pReU5ujH-5o7CCrU3jOetTD8ApuIVWY,1464
+PyQt5/bindings/QtLocation/qplacematchrequest.sip,sha256=dcJbjPIQ-mZYn4X9uWjfp5akvdwrh-5CQie1Tsg2TVM,1647
+PyQt5/bindings/QtLocation/qplaceproposedsearchresult.sip,sha256=8YyPwMDXZFG65BVGrvLbgF88zuZVZ7JeK5Yqvmju11o,1413
+PyQt5/bindings/QtLocation/qplaceratings.sip,sha256=IkjAbYNGL-n_ODJbJul5ydN2t3BHBpmDqoeGO_qGeEc,1509
+PyQt5/bindings/QtLocation/qplacereply.sip,sha256=hOYitzhxhEo3zmvE5H6kDgZ_jJD6bCAoeEkt-mhQN4U,2208
+PyQt5/bindings/QtLocation/qplaceresult.sip,sha256=_qlRK3YCtHko7FLkHe7T4TGCzWX90UDEUWfGRGP1TtI,1424
+PyQt5/bindings/QtLocation/qplacereview.sip,sha256=wSYyQwEuiLUNc72-MEmQoRwd7qHav8HePor51GJ_9KU,1636
+PyQt5/bindings/QtLocation/qplacesearchreply.sip,sha256=Fhs_7ZeCKkYqZ04WBzfEw1ni6fZRalw1XCzerf5Kvl4,1735
+PyQt5/bindings/QtLocation/qplacesearchrequest.sip,sha256=XkfVu4e1rAqbjnHbIzAklEhXjXJwS4lZ09oUeWQGM0g,2337
+PyQt5/bindings/QtLocation/qplacesearchresult.sip,sha256=75HYEFkygbB9Ddf8QCg1hhaPKE7VlzLP4jxoyPZmzbo,1682
+PyQt5/bindings/QtLocation/qplacesearchsuggestionreply.sip,sha256=stcDRaeC99YOdkCSm_qtuuLElxynz75A7dnQHmPUZRE,1431
+PyQt5/bindings/QtLocation/qplacesupplier.sip,sha256=bkQExRSXekPwugNxW1jaqQECclwNioM-odpwlYOlG6w,1621
+PyQt5/bindings/QtLocation/qplaceuser.sip,sha256=KksT4_LRQ6EfkXpfBU9WLV8rPq5-XEYtzY5B4o1LuZI,1418
+PyQt5/bindings/QtMultimedia/QtMultimedia.toml,sha256=ZCUzhQiZ9lbUg1uNCwBJ6RVE9RqvbL-MUC6xuA2KuKc,186
+PyQt5/bindings/QtMultimedia/QtMultimediamod.sip,sha256=9tOIC-ZvKwDyBdHq3yRkq2sOKSpRZbxOJ91JkwDlGJQ,4600
+PyQt5/bindings/QtMultimedia/qabstractvideobuffer.sip,sha256=vU7NZuRETr9Xf3bfMhs7DoMiHIgz-i_9VJYV3sW6JKk,2558
+PyQt5/bindings/QtMultimedia/qabstractvideofilter.sip,sha256=UzLkjAdlmKD3UWUmkXz5SSW0Nv6FfTpkkZSu8MJzqis,1980
+PyQt5/bindings/QtMultimedia/qabstractvideosurface.sip,sha256=WTGxuBF6XM2Tw0v3scG4BVDrX3amzSIZPUj_s4mHlZ8,7903
+PyQt5/bindings/QtMultimedia/qaudio.sip,sha256=eFZYGHLz476VecGyaqAfLjodhiqopmjDVx_y2KTh0Bo,2067
+PyQt5/bindings/QtMultimedia/qaudiobuffer.sip,sha256=plAQk7-8At1oUwlscetBqJnywPVAfFY7ekQTihzK8Ys,1599
+PyQt5/bindings/QtMultimedia/qaudiodecoder.sip,sha256=D08CbrYDC5VuSsEY2AfPFK9TvwTZzwWlCGn03SA0kHE,2656
+PyQt5/bindings/QtMultimedia/qaudiodecodercontrol.sip,sha256=NZBWv4zMdqcyR0_VbWiTB0rvDHWYy-NaVOq0jZOYSNs,2242
+PyQt5/bindings/QtMultimedia/qaudiodeviceinfo.sip,sha256=xO-d_Hon6r6x7Db1KqPiADgSdsFbcXFEFAvtnMelp5U,2074
+PyQt5/bindings/QtMultimedia/qaudioencodersettingscontrol.sip,sha256=RjmWdSeUMynxGznK1Ajttmaz8QSItSgEdD_8R8y6OFE,1663
+PyQt5/bindings/QtMultimedia/qaudioformat.sip,sha256=NElOflcxP2d7gU-fitQ-J0Mp4aU8lPL8qeB04ecm0W8,2337
+PyQt5/bindings/QtMultimedia/qaudioinput.sip,sha256=dT0LIdBSihbHhcAQ9N9TkBelqrmD85jxU_tAD2LuBpU,1996
+PyQt5/bindings/QtMultimedia/qaudioinputselectorcontrol.sip,sha256=XBMb_qyJhBkfbH73FCAJpmuVRCE0Sb046DlLlOQHPdg,1656
+PyQt5/bindings/QtMultimedia/qaudiooutput.sip,sha256=4wdpww7vqrphLVeHWvio3g4qQWspcqls2XrPo22ppUk,2073
+PyQt5/bindings/QtMultimedia/qaudiooutputselectorcontrol.sip,sha256=FiO3UAx2q91_hQhp9ROMp1VX-SGGR3LLOJqF0SklSps,1668
+PyQt5/bindings/QtMultimedia/qaudioprobe.sip,sha256=LUcll_EN-4v9-_FMQkku3hKsGA2jxlVA5EFIh6CLKQA,1375
+PyQt5/bindings/QtMultimedia/qaudiorecorder.sip,sha256=OXQ6GfJoc8h64MqpegAE7NL5dfMZnnF0O7I9I0hwiew,1633
+PyQt5/bindings/QtMultimedia/qaudiorolecontrol.sip,sha256=eMJIHGKXH3fJndRLlS9Gx8Vr9qqB1FalCN3DAmkLim0,1473
+PyQt5/bindings/QtMultimedia/qcamera.sip,sha256=523_M92UTTuBAdKaTtyMXV-9Gw-2yLSZMuG1qX2WmOI,5926
+PyQt5/bindings/QtMultimedia/qcameracapturebufferformatcontrol.sip,sha256=J4smHBfuG-ds_JeWKXcCldreNp9DPFd2maGjdVZXSNo,1589
+PyQt5/bindings/QtMultimedia/qcameracapturedestinationcontrol.sip,sha256=v5xAW0DktKQODQ4s7Qjhtn9tMygtw9CrMvrxEJJu-gM,1692
+PyQt5/bindings/QtMultimedia/qcameracontrol.sip,sha256=oK4l6N7xvjhEqB2-ENNlX92Fo0UXdUtQgAcy5zvwwfk,2060
+PyQt5/bindings/QtMultimedia/qcameraexposure.sip,sha256=HGvP7DOwfzjBSUplIdM1VI7KfLaEtA3RQF6gD9hJMXY,4523
+PyQt5/bindings/QtMultimedia/qcameraexposurecontrol.sip,sha256=zSFI-Aj7Pd1-xgC_FyPhPYhII7-lAgfaCdAQ1zVaA0E,2250
+PyQt5/bindings/QtMultimedia/qcamerafeedbackcontrol.sip,sha256=P0SAw9azPF_BjTOHSJUrYUCsRdgRyoqEswdlUPKzpb8,2009
+PyQt5/bindings/QtMultimedia/qcameraflashcontrol.sip,sha256=2Ct8eYOvhTQG1mi1aIYvBEa3N14zQBfqzGDpL5ppAX0,1528
+PyQt5/bindings/QtMultimedia/qcamerafocus.sip,sha256=rFWrH80yigwxATJE9FWKnG9lyx4ZzA2oaZ_HYrOW0F0,3314
+PyQt5/bindings/QtMultimedia/qcamerafocuscontrol.sip,sha256=17Bm493lwMj1ag8W71Wa9L5wG8jVd5ygC2_CMWcXPA4,2072
+PyQt5/bindings/QtMultimedia/qcameraimagecapture.sip,sha256=dcA7fFTE4OEki7W8gTKHq1GIFNZoXVK5gFBnNHQg15I,3644
+PyQt5/bindings/QtMultimedia/qcameraimagecapturecontrol.sip,sha256=QXHiAOK2r6Z-48mEB4oDIxoir2G7lWgJwd7Z8xRqQUA,1983
+PyQt5/bindings/QtMultimedia/qcameraimageprocessing.sip,sha256=h5OGLop6pc7N09-DwoDif8kp_AEJ-D9wJy-JSjJ-u1Y,3154
+PyQt5/bindings/QtMultimedia/qcameraimageprocessingcontrol.sip,sha256=ZeCP9g2vj7jExvOUjGkEvfcLJwpwPudUma004VrFFA0,2153
+PyQt5/bindings/QtMultimedia/qcamerainfo.sip,sha256=9EgNKO0olhY2VwFksxCRzOC7v4LwFRk1_ApRUc5ipFo,1694
+PyQt5/bindings/QtMultimedia/qcamerainfocontrol.sip,sha256=HUbIppzV-kPRQ7Jx5P5G5-rkgiuO5vg7gWecgh9rCSE,1378
+PyQt5/bindings/QtMultimedia/qcameralockscontrol.sip,sha256=CPt4rd3WQuHlQfSbfW4OABI_sUI7q-YgHq5viLOz08c,1611
+PyQt5/bindings/QtMultimedia/qcameraviewfindersettings.sip,sha256=T8jZTTbLMfpqokNQ1FxALcAu2qxtye7YEAqR2ZbENd0,2139
+PyQt5/bindings/QtMultimedia/qcameraviewfindersettingscontrol.sip,sha256=36W9AvWWJ1mURtgrHlS4v6R5Y48u60B7v55bOazGX_Y,2406
+PyQt5/bindings/QtMultimedia/qcamerazoomcontrol.sip,sha256=mxr4kUi-0_ZokJb93UQdLxE7dZthTYlUDfHuabhqT9k,1919
+PyQt5/bindings/QtMultimedia/qcustomaudiorolecontrol.sip,sha256=RHxqIFcE7s04gEwIy0r3XkRCR5JBbfm5aoui5BNDsqI,1519
+PyQt5/bindings/QtMultimedia/qimageencodercontrol.sip,sha256=IAiQAPQIx-t0b0vH8Yx5CVTORnyxPqG3MxEhFNXBjbo,1626
+PyQt5/bindings/QtMultimedia/qmediaaudioprobecontrol.sip,sha256=7p2wp7xccCG0SkQU39qTdwbXxt0p2JH6gwc6KCG-QPU,1334
+PyQt5/bindings/QtMultimedia/qmediaavailabilitycontrol.sip,sha256=eq8K0cXPOiB53PvtLl8CnDAOs89vnXk7bv47WoYK8BQ,1416
+PyQt5/bindings/QtMultimedia/qmediabindableinterface.sip,sha256=0fTtbu9HLZIEFk_YBBpNyHQAnrwhSJ-73qZuQ-BBDko,1267
+PyQt5/bindings/QtMultimedia/qmediacontainercontrol.sip,sha256=RJqM0kPQLub6-ylrUfqxdu8C8ErNZ0sBWghKEN0THgk,1498
+PyQt5/bindings/QtMultimedia/qmediacontent.sip,sha256=IXM53Hk3YyVQwOwFQJgv03aPOzYoL7urv188gfj-zwU,1870
+PyQt5/bindings/QtMultimedia/qmediacontrol.sip,sha256=Vg0m2FHBplf9L-uqGDrnaiFn3tsTiJG4YlmJzGXZ8MA,1294
+PyQt5/bindings/QtMultimedia/qmediaencodersettings.sip,sha256=1g_kBJhKaA4J2lyU6ZzjciN2-XJHl515b9v63JlFISw,4158
+PyQt5/bindings/QtMultimedia/qmediagaplessplaybackcontrol.sip,sha256=5gqVGqdJeQi8aAMCUte9-xsZONThZJVeG4zMyFApVUU,1698
+PyQt5/bindings/QtMultimedia/qmediametadata.sip,sha256=Od3bngNX9nqLaNLqTfRXbx2l6Ptl2PFOBa1adufdT1M,3993
+PyQt5/bindings/QtMultimedia/qmedianetworkaccesscontrol.sip,sha256=cVD6pPowDVrFId7-qu3cdFcgva_WGSkbphj_yx_ua4o,1510
+PyQt5/bindings/QtMultimedia/qmediaobject.sip,sha256=vajWZBVkFVW5TFd-0Mgy0bQWXJLcx8TC9pilJ5lyXuA,2091
+PyQt5/bindings/QtMultimedia/qmediaplayer.sip,sha256=kOPgYRrHufnL2ERUpt0AcPn5J8jGJpORI9nFwPaEo-s,5106
+PyQt5/bindings/QtMultimedia/qmediaplayercontrol.sip,sha256=Gs6E_rDk-qW8vUY7OPOQN7xC_FWdYMJ5MtGPixhWbJ0,2972
+PyQt5/bindings/QtMultimedia/qmediaplaylist.sip,sha256=nUvsP0V4aFCvSwVvAVp1QgZ43dTAhUx8NhoT6LXE28M,3559
+PyQt5/bindings/QtMultimedia/qmediarecorder.sip,sha256=nFvI3pO4tErKmvP7VT4JLaDs7Puq3-cumN9jnZynJM8,4562
+PyQt5/bindings/QtMultimedia/qmediarecordercontrol.sip,sha256=tyhoUJ0qOfNWYgPCEPvF9H80a_qavpaMWNaqTzO4M4c,2134
+PyQt5/bindings/QtMultimedia/qmediaresource.sip,sha256=R1ew797bA3Q2NXbr8rPja3x8oyc3rpGnDoezkPd92P0,2337
+PyQt5/bindings/QtMultimedia/qmediaservice.sip,sha256=E5h_d8vl-ctlXf9oOWgwkgiPW6JsdZ4DtbO7LoZSSpU,1305
+PyQt5/bindings/QtMultimedia/qmediastreamscontrol.sip,sha256=j2oPXdT6HJRoQ76ww_v8QRt_YEfV7ZO6KRv2WGpzMv0,1762
+PyQt5/bindings/QtMultimedia/qmediatimerange.sip,sha256=INgkhQX7BtjXHTqDEdf-IrxB4AYmm2zdiN0sErAijSs,2967
+PyQt5/bindings/QtMultimedia/qmediavideoprobecontrol.sip,sha256=Py-kgkZPhI7mTZ7uQ5sBHnGx__CNVS5e8BkBQjTs_A4,1331
+PyQt5/bindings/QtMultimedia/qmetadatareadercontrol.sip,sha256=BTd1sIyOOh6LGba1AIcL_bjlnN4Ic_Bcz7d-FFuiBJQ,1573
+PyQt5/bindings/QtMultimedia/qmetadatawritercontrol.sip,sha256=asfrj4u7Hx1CkmddYTCYguDbCHkwfASrEYonZKTLik0,1735
+PyQt5/bindings/QtMultimedia/qmultimedia.sip,sha256=U-J8_wDdR6cePqwvzP2uD84b_NRC2s4bidn5LgPhRRE,1661
+PyQt5/bindings/QtMultimedia/qpymultimedia_qlist.sip,sha256=frv8be2hSDA-ftsWYrnXfol-v7P2shPesU2C_b0iTX8,9462
+PyQt5/bindings/QtMultimedia/qradiodata.sip,sha256=_fnvEzTJAFbwK769YbDVRQ8Cua-IhSB5bgyNRailA_o,3284
+PyQt5/bindings/QtMultimedia/qradiodatacontrol.sip,sha256=0YmAQvhRNzw2FPOGu9JDhFi_9BomIva6FVQ0wgssnP4,2076
+PyQt5/bindings/QtMultimedia/qradiotuner.sip,sha256=S1eFBAJo6r6gZwNP_I9_KfQzwtAOOMrO-xp_s1Z2e3Q,3392
+PyQt5/bindings/QtMultimedia/qradiotunercontrol.sip,sha256=aXovR72JLRo1L3jHF5e4Ku5YFXU-8o_bgoPxjOxDTSg,3037
+PyQt5/bindings/QtMultimedia/qsound.sip,sha256=73NnpdfPdUn_aVYkOHRpK5Ric8W39K1D_kPCdxWS0Bg,1452
+PyQt5/bindings/QtMultimedia/qsoundeffect.sip,sha256=_WKs7NVasi3YhTk9Ead3JBD5MS5QYOt_LskUxlKODI8,2268
+PyQt5/bindings/QtMultimedia/qvideodeviceselectorcontrol.sip,sha256=YrHUjq1jWWcRzElIteNqfibttrg4_4p5u82EhXXhrqg,1719
+PyQt5/bindings/QtMultimedia/qvideoencodersettingscontrol.sip,sha256=wkQzvbbLoP4TLHoY2kRKqSbNitXPE7YkF3cGEzbbPK4,1785
+PyQt5/bindings/QtMultimedia/qvideoframe.sip,sha256=LDKEGNYlL7Xlwb4cYlouGXAY19T3wsLE7jT_7pVyhB0,4494
+PyQt5/bindings/QtMultimedia/qvideoprobe.sip,sha256=VZGfZBTauEQKnFo9aikYerB57_0Tb5k7jWnQNUlyRqk,1372
+PyQt5/bindings/QtMultimedia/qvideorenderercontrol.sip,sha256=pI2BmHn-kN6bjNVdUh6KaCyk4T2MZ8MmaartJ5OHpHA,1359
+PyQt5/bindings/QtMultimedia/qvideosurfaceformat.sip,sha256=BlRuXTFEY_m_Sc0Zt909XISMxXxvwI4yGYEFZjF7dfI,2933
+PyQt5/bindings/QtMultimedia/qvideowindowcontrol.sip,sha256=Utgh0s_cPubyTJTwvgQ-EiRykfPIZmsp94SQRmQG5as,2307
+PyQt5/bindings/QtMultimediaWidgets/QtMultimediaWidgets.toml,sha256=rkoti2x_QDJmaMBjNJ-ERq0dVxvZDRPg0joHe6YqM6Y,193
+PyQt5/bindings/QtMultimediaWidgets/QtMultimediaWidgetsmod.sip,sha256=aTwk9df89kNn2C3y3pBH6A-RNSJAUVnIZYpc2Nqt1AY,2194
+PyQt5/bindings/QtMultimediaWidgets/qcameraviewfinder.sip,sha256=0KP7qjP9c2UUlemnpEjS0vxxAgo3N1HGJJMUnDtQplg,1434
+PyQt5/bindings/QtMultimediaWidgets/qgraphicsvideoitem.sip,sha256=Cg0KW_JgJYX-LxAC_fRJmomQfmOMvSU-nUY9hYt0L8s,2301
+PyQt5/bindings/QtMultimediaWidgets/qvideowidget.sip,sha256=0ehjB8E58HCRqWMMmIfSStdo8VlCty8WeQHzm1-icvo,3260
+PyQt5/bindings/QtMultimediaWidgets/qvideowidgetcontrol.sip,sha256=HjWFjaRdXkV4oTeVnsDGZFhx039k2ArvaXEHr7206D8,2071
+PyQt5/bindings/QtNetwork/QtNetwork.toml,sha256=iP4ef6XtaJAx-sYKZNAgP3-CYvS6qKI4m8kEe0lHLzg,183
+PyQt5/bindings/QtNetwork/QtNetworkmod.sip,sha256=Hc5NGfYrAbhKEGF4tS8SAtO0JYe2Uo1cd-rtXh0FBHE,3184
+PyQt5/bindings/QtNetwork/qabstractnetworkcache.sip,sha256=S9q_MGmHPVl6DhsAnJu58uANVJO5PE1PhxkYy_X5YFw,3069
+PyQt5/bindings/QtNetwork/qabstractsocket.sip,sha256=S7ey9iHctO8j3VTnS1b8X5wW_1BoF-dI0wp1yYSKPNk,10800
+PyQt5/bindings/QtNetwork/qauthenticator.sip,sha256=fCI589oD2zf108etVEXUFkyNW3CPZEOsYVxVXMvvnPg,1628
+PyQt5/bindings/QtNetwork/qdnslookup.sip,sha256=EE9qqXg1KcBQTssUhxbUvZFZRkQAePPTlW4PVYKLsHg,4864
+PyQt5/bindings/QtNetwork/qhostaddress.sip,sha256=6GdivwqPph4vBsQ_wG-FvpITkUhWP1Lp9-tXakYO_Lk,6167
+PyQt5/bindings/QtNetwork/qhostinfo.sip,sha256=lFpHv4rsoRN2oQT1UTYa4JT4vW0s3mn8Avs218qhQec,3099
+PyQt5/bindings/QtNetwork/qhstspolicy.sip,sha256=08LZF7o4IW8bQ898WVYr7ex3oxJiZp0BR0IL5DfNae8,2174
+PyQt5/bindings/QtNetwork/qhttp2configuration.sip,sha256=eLxkX9WND3np5TzvE304hcIIxUqUtIhG7cd1TlPIS7A,1987
+PyQt5/bindings/QtNetwork/qhttpmultipart.sip,sha256=XXydVJ_-jH9xWeZeyS-lZCynp8WQtySB9GECq4XoUuI,2175
+PyQt5/bindings/QtNetwork/qlocalserver.sip,sha256=l1o0_xJh013RWMCwuUlDuDXXRZ_JLCk26xUWSW2Oowk,2436
+PyQt5/bindings/QtNetwork/qlocalsocket.sip,sha256=NdifR8nuEGgrVhyHi5V2rKSUP2p-Qje-uj9m5cVRawA,4647
+PyQt5/bindings/QtNetwork/qnetworkaccessmanager.sip,sha256=PYilvH-tTuySo-vEe6yC4jGHNLg_KZjv-OUvrP1lhMQ,6052
+PyQt5/bindings/QtNetwork/qnetworkconfigmanager.sip,sha256=LaNCtJJLt1AsnX5LYfQojnaI-L_JbZPRmfz6tn1A528,2584
+PyQt5/bindings/QtNetwork/qnetworkconfiguration.sip,sha256=W8kPSdFq279CSLdFxpzpo1BGdF85aGyC8-s0ntUUs-8,2906
+PyQt5/bindings/QtNetwork/qnetworkcookie.sip,sha256=JNb9dJahrjEdE2g6o4nZ3dpEmR4yUO8RM75pHI8kDjA,2305
+PyQt5/bindings/QtNetwork/qnetworkcookiejar.sip,sha256=jHP04wqgsFQ5tLajWxIkTBn45Knrq6gQ8IyzfSyXW9Q,1761
+PyQt5/bindings/QtNetwork/qnetworkdatagram.sip,sha256=9YbjJQXxJYnmWEiORT1Ehb7fLRXDaa0QaudBh4Tv8t8,2020
+PyQt5/bindings/QtNetwork/qnetworkdiskcache.sip,sha256=tcHTetLHiangG5RjTHkVfcg5vTH3DXIhQvs8BDiZgH4,1931
+PyQt5/bindings/QtNetwork/qnetworkinterface.sip,sha256=z7D-_dFtsqwtOI4X2wMwDxedvZfoiAwr1nQOblvrgfk,4334
+PyQt5/bindings/QtNetwork/qnetworkproxy.sip,sha256=lfVNLWZSclb3zKg-iVM33DARWGuinpoCLkRBYjBzhMg,6066
+PyQt5/bindings/QtNetwork/qnetworkreply.sip,sha256=kjicCKIlxGzEPIAIBeY6VxeCsUdBkJlAnVKlEXsZT0k,5309
+PyQt5/bindings/QtNetwork/qnetworkrequest.sip,sha256=SOuOevJmWWs1bDrmWUjqe48sb1rPFULLd7NqiP1VJUA,5549
+PyQt5/bindings/QtNetwork/qnetworksession.sip,sha256=Ok7p6oOxuCClCNISO6jV1ERENyISrVcwF9rnWe3Ym7E,3012
+PyQt5/bindings/QtNetwork/qocspresponse.sip,sha256=a1eyGI_1evm8KNwKzXge4XCh8YyAl5tJMCK8fmruKdA,2264
+PyQt5/bindings/QtNetwork/qpassworddigestor.sip,sha256=Wm7Ne1CG0eoBVKe9Y4rVCVg6eTowMqCZ5OTaC7TxHac,1439
+PyQt5/bindings/QtNetwork/qpynetwork_qhash.sip,sha256=T3gNXUk95aJLSlaLeC0UU5O4MRwXRtVWTc-2i2yZyb0,3590
+PyQt5/bindings/QtNetwork/qpynetwork_qmap.sip,sha256=fT5L0hM4Kkbv5pA46TiukfGBzpP0mkP-QZdlBZ8sJAk,4045
+PyQt5/bindings/QtNetwork/qssl.sip,sha256=WDKELwdCBzbmfOE50zhZ9CsiQlGFiivPLD7lZtuGWvI,2771
+PyQt5/bindings/QtNetwork/qsslcertificate.sip,sha256=JN74Axq6u7DryJ7iUr44YB5KQnobyLl3gkevfzt6IPg,3964
+PyQt5/bindings/QtNetwork/qsslcertificateextension.sip,sha256=3x8RrXMS0uaZKx3rWkvNBqGhoF-TsIRGL7sPvU-SWBs,1469
+PyQt5/bindings/QtNetwork/qsslcipher.sip,sha256=Gaa7D5PNJVmXLUgP7iklVZAQ3x2VOqYnkZerX-nnnPQ,1769
+PyQt5/bindings/QtNetwork/qsslconfiguration.sip,sha256=ombGKG_NHhvf-DcNV6VwgvmDXaa7hz67GcpIWHP2SIY,5450
+PyQt5/bindings/QtNetwork/qssldiffiehellmanparameters.sip,sha256=xFYxqvayss2gUAWEJjfy9FEzE9TxP9juQp_3vVh3MBQ,2345
+PyQt5/bindings/QtNetwork/qsslellipticcurve.sip,sha256=mePPO2SKLaY-VpU_Ye7mwgkrO-rSdMTGnzhu-xHqNv4,1712
+PyQt5/bindings/QtNetwork/qsslerror.sip,sha256=lIBrPaoO8QB5biXNnsm78Gdp7RGX-sAIFrE_9BU42HM,3206
+PyQt5/bindings/QtNetwork/qsslkey.sip,sha256=GWnU1Rzf506aLUG2jfYBTUPU6wh-G4XVtQe_6CtMspQ,2072
+PyQt5/bindings/QtNetwork/qsslpresharedkeyauthenticator.sip,sha256=xEoJDI45VVvIsxBWEfO5MlH79AV237yCu8yCxxIosGg,2006
+PyQt5/bindings/QtNetwork/qsslsocket.sip,sha256=Gh8PF4arJgBNbPYRs5MjDJD_wDjr-W66qvpnNKo5q6s,8303
+PyQt5/bindings/QtNetwork/qtcpserver.sip,sha256=fhPNnfw3HFvc43j4VyuKCqimfdFzo9Vf_ZY1yn_nAlk,2197
+PyQt5/bindings/QtNetwork/qtcpsocket.sip,sha256=-HW5HtataP5jHvDb7AGealdLE7utTMXFB_QqkvEQM-s,1166
+PyQt5/bindings/QtNetwork/qudpsocket.sip,sha256=v0QRvxKEjYXzOhs8ggsTmuAdZOGElM_vb7zmWnAudR4,3105
+PyQt5/bindings/QtNfc/QtNfc.toml,sha256=FACy8YddvrZ_uppTA02d6kTZzcDK5G6JXPqPkp7fANQ,179
+PyQt5/bindings/QtNfc/QtNfcmod.sip,sha256=u76dVn91CxN-0ez3EXDXo-GkZ_BI6hPARqA5peOYLVg,2297
+PyQt5/bindings/QtNfc/qndeffilter.sip,sha256=l8Q1SHGooip3ViIiUw9qhmTtuD6MTrM9cfjVdmdxaK0,1766
+PyQt5/bindings/QtNfc/qndefmessage.sip,sha256=vvUIypnW7IofB6xtHATtNWCplJa9seqfUcHTkkO61WU,2252
+PyQt5/bindings/QtNfc/qndefnfcsmartposterrecord.sip,sha256=0QS7xI62aPlw42TmEvHkX67SxyXX5avpCmcqMbP1Pyo,3441
+PyQt5/bindings/QtNfc/qndefnfctextrecord.sip,sha256=4uRV5-hT1n-vQlPERWzA46Rib26kKreQDyiviAnXzro,1520
+PyQt5/bindings/QtNfc/qndefnfcurirecord.sip,sha256=SwY2osHmhh-rGRvkSRvNQ3Hpu4F5ll38srJxYgVFvl0,1251
+PyQt5/bindings/QtNfc/qndefrecord.sip,sha256=FeqNdkB3zRki4jL66nAa9Q6UeZDw0vaGCJWSUETB8eM,2605
+PyQt5/bindings/QtNfc/qnearfieldmanager.sip,sha256=B3Fot3VMIwfXG3Bld2K1gPHGFAQZ_nBtWdAYjDTmhXM,5384
+PyQt5/bindings/QtNfc/qnearfieldsharemanager.sip,sha256=BOJRfOoZsHVzGfFgLsDqNwTm6YFSwvfQ_DzPG8Kcnxk,2344
+PyQt5/bindings/QtNfc/qnearfieldsharetarget.sip,sha256=cSW0XNdL5OxsDq_k8K4wJwAHZJ6ify0vEwzWqq52l4Q,1550
+PyQt5/bindings/QtNfc/qnearfieldtarget.sip,sha256=UcyX0vrEf1jdfh7k4Zz3fKfrGMQ-oLuQXWTSt4eZCSs,4233
+PyQt5/bindings/QtNfc/qqmlndefrecord.sip,sha256=pwHSNtuJlBPi1X7rlw4V2Y2egWF5qTmySvhw_xV5lUc,1834
+PyQt5/bindings/QtOpenGL/QtOpenGL.toml,sha256=gYyGxOJDGlCmGPerpGn5x5Pcee9l3G8y4SMXe-32aRE,182
+PyQt5/bindings/QtOpenGL/QtOpenGLmod.sip,sha256=Sq99yMnTIzniD2EGf1YoQOyatghVSB6ij_s9Eto4x4Y,2039
+PyQt5/bindings/QtOpenGL/qgl.sip,sha256=H9Ilqdc3I4q4slQIcypYBCySG3BI0jSkJeG2Q0fktCE,11047
+PyQt5/bindings/QtPositioning/QtPositioning.toml,sha256=I5R8UyYExSbLZD2-WUtW8aBPsHbycPhsrHwrqgq5bGk,187
+PyQt5/bindings/QtPositioning/QtPositioningmod.sip,sha256=MH-z7tBfbkZEy7KRBJmn4G0k4a2b2d5nJiOfh1w7c1Q,2387
+PyQt5/bindings/QtPositioning/qgeoaddress.sip,sha256=dZgfHVmLyG0wrxAYX7X_N4vbPULzbhWz3_6kw_1A25U,2045
+PyQt5/bindings/QtPositioning/qgeoareamonitorinfo.sip,sha256=2aGa7LhUfJy55wrCWBnbwdZD135ucmMFcEtVuyW_g0A,2088
+PyQt5/bindings/QtPositioning/qgeoareamonitorsource.sip,sha256=QpIrsIx5M3MjmU6wUTFV89F3qJbcRQ9macdNCBcfC-Y,2971
+PyQt5/bindings/QtPositioning/qgeocircle.sip,sha256=ZUOTZeP7tMkhLAAg8O_kbv1Wtvhl2955124cRD4kZEQ,1836
+PyQt5/bindings/QtPositioning/qgeocoordinate.sip,sha256=tUrMrRIZnkEOH0JnTDrgCS0JvIthdpFn1gXaGWLtn5M,2765
+PyQt5/bindings/QtPositioning/qgeolocation.sip,sha256=ibavWCcPBLL77IxASXR0lGkVbjIvZ1ZO_ecwfoCb-mE,1748
+PyQt5/bindings/QtPositioning/qgeopath.sip,sha256=EsE98Qd1_zTTOUAPbHanXZTKprzqoZVmlssmsSYkhF0,2322
+PyQt5/bindings/QtPositioning/qgeopolygon.sip,sha256=8H3hjqnJaZUXI8wxXy46qPTuNd8sSsIjOBhKFux01xA,2768
+PyQt5/bindings/QtPositioning/qgeopositioninfo.sip,sha256=nXOYcXfAcYTXxAaeW8VXzIZc1N3xMlVeGPdHacb10pA,2318
+PyQt5/bindings/QtPositioning/qgeopositioninfosource.sip,sha256=-zmq181WeRhOnwhFb8ndDvpQci06VDoD4OzEtxo-10c,4504
+PyQt5/bindings/QtPositioning/qgeorectangle.sip,sha256=A15vSNfD9KBHKKu0CZXZ81_5d2BRg4G-gxZbLJvQ_NA,2846
+PyQt5/bindings/QtPositioning/qgeosatelliteinfo.sip,sha256=--JFv52obrnYicwc49jIi6xfsnoNV2rUO2RyKvq9S3w,2321
+PyQt5/bindings/QtPositioning/qgeosatelliteinfosource.sip,sha256=eAvL3CFQ7HhMTnFEQ0WMUew0eQJGjwUF2PIfZNZ6GpM,2666
+PyQt5/bindings/QtPositioning/qgeoshape.sip,sha256=L_dJgYEeBbjX1EUfVe_tBKmZaDTU7PIz6j8wIudgQzk,2684
+PyQt5/bindings/QtPositioning/qnmeapositioninfosource.sip,sha256=zmbdq5TgwBum8mtG1xUzDH2lB-zD3sRn-XxKW-AYC5w,2315
+PyQt5/bindings/QtPrintSupport/QtPrintSupport.toml,sha256=4tBdI7GYouiWNqZmuFrZDniswWj5lAsM-0iPq70o7u0,188
+PyQt5/bindings/QtPrintSupport/QtPrintSupportmod.sip,sha256=2AlLa4XymFQL2zd93L8MkwUqEvO7wTtFFF6teuDk-KA,2313
+PyQt5/bindings/QtPrintSupport/qabstractprintdialog.sip,sha256=YIU9dj1pimmoAuq-S3uplamdduzR7Uc8E4T7tP7HKFc,5150
+PyQt5/bindings/QtPrintSupport/qpagesetupdialog.sip,sha256=Fmc_f5wspllD3k2ne-ZikiCT_6SoGRN7hkd30k2AvyE,3359
+PyQt5/bindings/QtPrintSupport/qprintdialog.sip,sha256=L_Lw4x5IEVDt-_KwTJwlyVChwMFe2tLp-jyDZRSOUZw,3748
+PyQt5/bindings/QtPrintSupport/qprintengine.sip,sha256=O3FGmLvkTwWNG75a8ticnI6UgOA0Qx9ftEzgpcwkctA,2501
+PyQt5/bindings/QtPrintSupport/qprinter.sip,sha256=_VHH0DRS3szaExJoCUoUSxJf4AO1JlsT3JVm_TWXo8I,5949
+PyQt5/bindings/QtPrintSupport/qprinterinfo.sip,sha256=k8ZPmC0dsyjRfwpxx5mMLq_h_w-Kd14CvLzNHHehlcE,2754
+PyQt5/bindings/QtPrintSupport/qprintpreviewdialog.sip,sha256=JGu3BzCJvOUZHfjGK8EbC2z4Kskh33tSBavrkVjT5tU,2093
+PyQt5/bindings/QtPrintSupport/qprintpreviewwidget.sip,sha256=kBxNLTa1mB4MMdiHU5TG07Etcsc8NaMRhwt9Y9YlHUw,2688
+PyQt5/bindings/QtPrintSupport/qpyprintsupport_qlist.sip,sha256=ofVEapZmm0nK9CRquMXWEooCSfaCMNhUEJ5eVOMRtg0,7520
+PyQt5/bindings/QtQml/QtQml.toml,sha256=-CfssHgU8MCeFfKO45YbXAW6A_Hk7OV7X85OWnxF1Ng,179
+PyQt5/bindings/QtQml/QtQmlmod.sip,sha256=WNjxvC2eaxnoWWk21rAJs22pfhj4LrABzrvhRQk0EAw,2714
+PyQt5/bindings/QtQml/qjsengine.sip,sha256=tkQvBOrZlKWmWbtzl1fnymzjp5fz04Rp5RFqA6_Vcfk,4536
+PyQt5/bindings/QtQml/qjsvalue.sip,sha256=wlRCjtcjaPUojxMGUB-ohw-miULdJO69DbruGCPyw1g,3271
+PyQt5/bindings/QtQml/qjsvalueiterator.sip,sha256=5w2SpJbNu54R43eBtKWoNV4BGTmj14uKFDr3Ur3X1h0,1306
+PyQt5/bindings/QtQml/qmlattachedpropertiesobject.sip,sha256=rnOzwpi-FJWIdqKDIltJB9hz7TQABaJAu9DYwmT6qy0,1561
+PyQt5/bindings/QtQml/qmlregistertype.sip,sha256=SQ_5F-fx287qaVunn3ewY4x1kJyPXtzbtkvMl3crNog,3663
+PyQt5/bindings/QtQml/qpyqmllistproperty.sip,sha256=TL_t60kUIVVgR9KEpAVsL5354Nej_iI6KnjB6aGYToQ,1453
+PyQt5/bindings/QtQml/qqml.sip,sha256=U-fDDHYrQR2FmRKPgEGP0d8pbaGkn3vBkQvTnMp3klI,1154
+PyQt5/bindings/QtQml/qqmlabstracturlinterceptor.sip,sha256=NS4rjLdxsyuTSEww3Aln9BHyiNT-LXZGe1PmpjoRvAs,1423
+PyQt5/bindings/QtQml/qqmlapplicationengine.sip,sha256=t-eDzIO8_EnERr98DSYJfcnNooA-IqX1NPQ47WILGQQ,1946
+PyQt5/bindings/QtQml/qqmlcomponent.sip,sha256=NRYHPeGpaawjTSs-sg-c3HBgF21jYEVdUUYUco_UFBY,3092
+PyQt5/bindings/QtQml/qqmlcontext.sip,sha256=fFPUBoSuOmFc75mJ1-V_EfykYPyp_ASnTCgvcOff6rw,2030
+PyQt5/bindings/QtQml/qqmlengine.sip,sha256=lzDSO-VTRZO0Y4gaq2VK_qDXs2yOLb2aweqlvOSgrRY,6009
+PyQt5/bindings/QtQml/qqmlerror.sip,sha256=uZQo4GakgTNZObqLHde_898YZivLvC2pYZbSOkL5lIw,1654
+PyQt5/bindings/QtQml/qqmlexpression.sip,sha256=2DE5Vy6i6DzvgYnOyEvtvCh8pNrv-GNsdhBhzaBT9Ak,1977
+PyQt5/bindings/QtQml/qqmlextensionplugin.sip,sha256=ILCz3GL0ULnEEIgsNw4hQUMsmIA9ZwnG5oRaaaX74CI,1719
+PyQt5/bindings/QtQml/qqmlfileselector.sip,sha256=O9IOCswIiEf5KySsqx-Uo-XsQqHZY2AMqehr4rUFQ1U,1538
+PyQt5/bindings/QtQml/qqmlincubator.sip,sha256=4nJFglZu3xL6fPMtqFuEOHYj5cXg18OLuem3q05eKGg,2442
+PyQt5/bindings/QtQml/qqmllist.sip,sha256=sii6pP5jYNBQtysnToQeAJ2Ames0H4_ZJ1SBZWOxMtw,1868
+PyQt5/bindings/QtQml/qqmlnetworkaccessmanagerfactory.sip,sha256=FeyyJWHBKWDqgXVckQMap8IC2MHcKXY949a1-z3DKFM,1231
+PyQt5/bindings/QtQml/qqmlparserstatus.sip,sha256=YCb-XhusQmsbEMkRzqLpUnAdeDlHobAsA32kRr0xBJo,1269
+PyQt5/bindings/QtQml/qqmlproperty.sip,sha256=UIStmukDtqxZx3CRhQ74IlA_xjCqL4_FzNu25-c_2mo,4127
+PyQt5/bindings/QtQml/qqmlpropertymap.sip,sha256=7plhMbSESitgrwmncqzjonS3UhEvFIGBvbQzPMdsTAk,1708
+PyQt5/bindings/QtQml/qqmlpropertyvaluesource.sip,sha256=lBKTdF2N_f9Gt_uzKEeSqQJpn4X2aJd0Zsz8iQvpWD8,1287
+PyQt5/bindings/QtQml/qqmlscriptstring.sip,sha256=7ezJMcahNXh9buMxMKsukgfPW_0e1JZoPQ3CrjZx0VI,1546
+PyQt5/bindings/QtQuick/QtQuick.toml,sha256=MTYxiyINoydMmeoBy7mpgp6_bo_ac3j9ab13kFT57cY,181
+PyQt5/bindings/QtQuick/QtQuickmod.sip,sha256=Opdxb26V1XF2RSZjdcsGabBZPXUaemn8fim2khJ72bI,2811
+PyQt5/bindings/QtQuick/qquickframebufferobject.sip,sha256=RZjcRhBVfxbCPtRWtRm13z67MYmQ32MAjCWeRvnX2cY,2633
+PyQt5/bindings/QtQuick/qquickimageprovider.sip,sha256=p1RcpAz5irjwEh_Lv_GdfDbjSpD9FZQmcEGPhWY1YBk,2982
+PyQt5/bindings/QtQuick/qquickitem.sip,sha256=_nXBhsIv6t3FX-0MXzxdQEtTxZBNaPjZvpyx6q06w9s,10071
+PyQt5/bindings/QtQuick/qquickitemgrabresult.sip,sha256=D85fKNdxE58mJq4xBfwnW2oWT1zsA8draGyF_Ir2YCE,1487
+PyQt5/bindings/QtQuick/qquickpainteditem.sip,sha256=ZAAR98AeZu6MweGnqpT3JnIpeYSEFtV5c0WH_G6ujfo,3480
+PyQt5/bindings/QtQuick/qquickrendercontrol.sip,sha256=tNDRC4oXeG78NdV-3dTmJ8tZizxag0ihEawWErVFRn4,1781
+PyQt5/bindings/QtQuick/qquicktextdocument.sip,sha256=v6SLSazrV9HJbaKotz9Ozh2cuhjw3_d8GlR-gbXpOSY,1285
+PyQt5/bindings/QtQuick/qquickview.sip,sha256=oVL7msm1wavouBS_HxRGCyowGougvWoPzmtUAe2NJbM,2445
+PyQt5/bindings/QtQuick/qquickwindow.sip,sha256=6Z2xgo6k-CQNifVOJpBaBWFMm0-DasaWCEF1QkdS_0Q,9221
+PyQt5/bindings/QtQuick/qsgabstractrenderer.sip,sha256=71qEIHMEC9z78OxMC1n7mDKLlC70jbDqBKp3wt0CNxs,2559
+PyQt5/bindings/QtQuick/qsgengine.sip,sha256=Ao4pLXcLMQNNbDRx2CZUUqLrYYgfl9CPuvNsIcS6OEQ,2223
+PyQt5/bindings/QtQuick/qsgflatcolormaterial.sip,sha256=3Gl9AR6_ZRxwYbVAk0uk5tLsnkpiPDqKtS7Z67aDtbc,1370
+PyQt5/bindings/QtQuick/qsggeometry.sip,sha256=MwnXouHV66K7uN6YlMQW0nTSilz5jWyYQLZ_brHC4BM,12824
+PyQt5/bindings/QtQuick/qsgimagenode.sip,sha256=mKmp6Oe3kOUcXKX1bgFtCe-vLSOAK10JbgtPs1M2t8w,2891
+PyQt5/bindings/QtQuick/qsgmaterial.sip,sha256=Cejk4Uir5QWS9cus-RLCEM-CRXgGVmsQEe2ovtYgXWA,7874
+PyQt5/bindings/QtQuick/qsgmaterialrhishader.sip,sha256=NGdUGgC_iqvCNBSM1jBFoOKazxFkuj1yhrmJVHuDbE8,4048
+PyQt5/bindings/QtQuick/qsgnode.sip,sha256=xgwOxHO833l1ndtSELRn4nTKDghIwxdqhNBKywOyUG0,9134
+PyQt5/bindings/QtQuick/qsgrectanglenode.sip,sha256=bxDtD__qDKG71zgq3Fx64253DiecjL32pXcINBlOdp8,1407
+PyQt5/bindings/QtQuick/qsgrendererinterface.sip,sha256=f_fcrpjyq7MQarCHC4eX9PwEXgcSuGHf0Pc6sWvDNUs,3601
+PyQt5/bindings/QtQuick/qsgrendernode.sip,sha256=ngakeporv9WPj7HcVENOFqjJgRD1nFeNU0udbG7Qczk,2784
+PyQt5/bindings/QtQuick/qsgsimplerectnode.sip,sha256=VQpjb3ZAPeI0ICLebv2jonqRUaiP7yeqN8ekxntYeAc,1391
+PyQt5/bindings/QtQuick/qsgsimpletexturenode.sip,sha256=MLOds1i5b4Phy4IYlxNPXpRl2sTiEnpOaRuCvqFr7TA,2600
+PyQt5/bindings/QtQuick/qsgtexture.sip,sha256=rBfV3NdSzPk_nLf5QC1BV1P0givpmPrPCP7Nb0j2aJc,3108
+PyQt5/bindings/QtQuick/qsgtexturematerial.sip,sha256=8Mk_Byj9K2gYc39BhD8HLYJYwjR41jp7oiZ5vizS1AA,2226
+PyQt5/bindings/QtQuick/qsgtextureprovider.sip,sha256=UjMcruFSfWQ8Qaj0xDAo9fxp-QxQvOxug1cZjoIAXJw,1186
+PyQt5/bindings/QtQuick/qsgvertexcolormaterial.sip,sha256=FGDIgqQAx8tHQ0cEBBNow3NmJuxlSJH64UFotI5oLtA,1317
+PyQt5/bindings/QtQuick3D/QtQuick3D.toml,sha256=FtzZ7POiAI5J3H2ar_g4aryJ6_VdPilQQwBLhP1iwcU,183
+PyQt5/bindings/QtQuick3D/QtQuick3Dmod.sip,sha256=-uNyL9x_GeRR1tgHLDQf53ljejhn3BPPYbd0ISscBmY,2099
+PyQt5/bindings/QtQuick3D/qquick3d.sip,sha256=6jvDBSrTltl84eLfI3LVPiJX1fd5uYKXHUWsbWnt4os,1146
+PyQt5/bindings/QtQuick3D/qquick3dgeometry.sip,sha256=XwVpa5MUxGY4IDJf_pfgJvQeDUSWLjmTh0Xv7ujw7jA,2989
+PyQt5/bindings/QtQuick3D/qquick3dobject.sip,sha256=8HkjWW7ZsKer0Hm8Lse5OHDLIUAhdFnJuYCgN3PQ8G8,2186
+PyQt5/bindings/QtQuickWidgets/QtQuickWidgets.toml,sha256=sZ0JF7l-cUPLZB-krOYSfxEu9h8BO1PPru1HFw8UMc0,188
+PyQt5/bindings/QtQuickWidgets/QtQuickWidgetsmod.sip,sha256=N8UbOZfSA4I0dC8j0Z2TbFc4n1RMPgKd8wNg8RQuMg0,2126
+PyQt5/bindings/QtQuickWidgets/qquickwidget.sip,sha256=OKb9tEtrJmJJL9rG7yoqsHSvY72X8COYKE1nyH57Z7I,3740
+PyQt5/bindings/QtRemoteObjects/QtRemoteObjects.toml,sha256=b0xHcc8NpkIa76kFNUbOxzGkN61awFjXKLHHcjF_f_A,189
+PyQt5/bindings/QtRemoteObjects/QtRemoteObjectsmod.sip,sha256=hEOYT5rnt8BEERZ9zaPOnabj98mAhB3GfTz_f12Hd8s,2210
+PyQt5/bindings/QtRemoteObjects/qremoteobjectabstractitemmodelreplica.sip,sha256=WwAyUKV_cUezj95v57BM3iWb9rhPIiCnuDwSOAKkhYI,2383
+PyQt5/bindings/QtRemoteObjects/qremoteobjectdynamicreplica.sip,sha256=-5nvKZrC-tGfSiK4UzkdXJygbqmk10NBQYMQRPYiOoU,1260
+PyQt5/bindings/QtRemoteObjects/qremoteobjectnode.sip,sha256=Iyy28TPAd_dvtV2-aHi1cG9Pm-9R0bHItJjL9U5awt4,6707
+PyQt5/bindings/QtRemoteObjects/qremoteobjectregistry.sip,sha256=w6zJGX4Z4x0Jy_81nyQMRhFjJDMCJnb2DRlR4uB2wdc,1473
+PyQt5/bindings/QtRemoteObjects/qremoteobjectreplica.sip,sha256=-XvO0lP4F9l_dlSlP2aFkEN9ZbVYCILup6katFBDGw8,1770
+PyQt5/bindings/QtRemoteObjects/qtremoteobjectglobal.sip,sha256=aLkjT31_-legx_IvFT0Z0iWQAguLnGlLkgBgivaeFmI,2156
+PyQt5/bindings/QtSensors/QtSensors.toml,sha256=ikGjo4FNOndE2KRzZgpNRUpetmsCEEsmj8EiRLWLAjw,183
+PyQt5/bindings/QtSensors/QtSensorsmod.sip,sha256=fg-twvAYCJI0g6iY1TfxuNVAZCvXChpiRljYSQ207zw,2535
+PyQt5/bindings/QtSensors/qaccelerometer.sip,sha256=w2SeVnx3yq99l-J9ZrgAtFPhxUNaY9lFokHED0SSfns,2118
+PyQt5/bindings/QtSensors/qaltimeter.sip,sha256=A8KcDK2nPpXkiHwlX-of3S-pDlIuzgDuprEf7DsLYSo,1689
+PyQt5/bindings/QtSensors/qambientlightsensor.sip,sha256=SUu5miNpuFjaY65qCoG_KmCcwwyohSJEdSBLbIpmH3Q,1916
+PyQt5/bindings/QtSensors/qambienttemperaturesensor.sip,sha256=tIMfwURnw968j_R4OEtZ5HAOfZ5itzFeqVnzAhyhWk4,1869
+PyQt5/bindings/QtSensors/qcompass.sip,sha256=3aJX3PqGNUz5PObxBVojgGWlwGyJbrnxLm9Zo0FK8Bg,1752
+PyQt5/bindings/QtSensors/qdistancesensor.sip,sha256=KCWKDWGAogASiYuVCA1QeYmCuQrnpjdLrBq9wqiQcJ0,1730
+PyQt5/bindings/QtSensors/qgyroscope.sip,sha256=8rj89n9DK2NhxRbxSkLwf5298gbBggJFg6Sb-8MTbV8,1762
+PyQt5/bindings/QtSensors/qholstersensor.sip,sha256=W7n01awRyT9uWoNTQvoJD26nr1DdD8b0TocCe3GaKI0,1718
+PyQt5/bindings/QtSensors/qhumiditysensor.sip,sha256=Ta4oKmPqMGAfoirnwIzfTh41UqVOQJW-KZ5L3M81Yt0,1767
+PyQt5/bindings/QtSensors/qirproximitysensor.sip,sha256=lzlyM-oAZZ1JEZs7iZYs4gQTbcT3q5CV61Ej-xcmJWc,1778
+PyQt5/bindings/QtSensors/qlidsensor.sip,sha256=F2NLc6EiiYttdw00hJUiQl_QzlnAocCuagYmhvlnX14,1789
+PyQt5/bindings/QtSensors/qlightsensor.sip,sha256=jltkxv-zdUfIvenb2TktFqB4HBq4du2m4qT_kScxfAE,1814
+PyQt5/bindings/QtSensors/qmagnetometer.sip,sha256=QOLeh28bgKjqjKnszt0Jq57GdecCBPyCndtoZTcXjVE,2048
+PyQt5/bindings/QtSensors/qorientationsensor.sip,sha256=NUQn8wPDBoCya52_6UFvSe9Afqasbk_QQPxN774yMVA,1996
+PyQt5/bindings/QtSensors/qpressuresensor.sip,sha256=8vs1Deamhx97IERxCx3EAgT7zvVuqVhpq0j_9NEeX1o,1855
+PyQt5/bindings/QtSensors/qproximitysensor.sip,sha256=2xN-ACtJ7y3M7su--I42NNCld0hvkHv-Xubx1sDWfIA,1732
+PyQt5/bindings/QtSensors/qrotationsensor.sip,sha256=YPbEtm2KPSNsQzwGyW2vTlm3VVYLcYJouN5wH2PRkxY,1879
+PyQt5/bindings/QtSensors/qsensor.sip,sha256=wWE1JOBwYYSLkTSlBVIZET8o9mgllhA-zIQIvO_iQAQ,8664
+PyQt5/bindings/QtSensors/qtapsensor.sip,sha256=yrCEGChYFkSEAMmLwzEqQ4mf9xI1GDpxLLWph8gU_cM,2216
+PyQt5/bindings/QtSensors/qtiltsensor.sip,sha256=gSxaZOvKmBbhIdDfy0wbEDgMJl6kX7xhkwXarzIriIM,1759
+PyQt5/bindings/QtSerialPort/QtSerialPort.toml,sha256=_JReUdmcd_P1OhMu2jV8yD8Klo3Qbr0TnDrAEbZ72s0,186
+PyQt5/bindings/QtSerialPort/QtSerialPortmod.sip,sha256=A83APECOCF9R8OkvCg9R97dOTYGtWVbbOfgxo6fUpS4,2025
+PyQt5/bindings/QtSerialPort/qserialport.sip,sha256=FCDiwPGtj2SRT0gNs-2bPl8PF5LLQcECxuZqqf9MVrc,9761
+PyQt5/bindings/QtSerialPort/qserialportinfo.sip,sha256=Xpk6QdqdOEd0UGri0fZTRAkUjz77QJDVWywDulGnHLQ,1897
+PyQt5/bindings/QtSql/QtSql.toml,sha256=i8U1oLfrAHQCJQPoT1geRjlRRE7BJmZ1EO1oCo4Iz6k,179
+PyQt5/bindings/QtSql/QtSqlmod.sip,sha256=RJkk8U7VUoQxg3pUf-xl41u6qfzEru7Ec90xnPniRPI,2361
+PyQt5/bindings/QtSql/qsql.sip,sha256=v2SElccrY6nZKVxQcygR8PtKwPn1pzSDhUI6Oz7jldg,1690
+PyQt5/bindings/QtSql/qsqldatabase.sip,sha256=aKuELnB1ZrqxTsAGcXDJhOKN5CCn8MV3SwPW1EIigd8,3963
+PyQt5/bindings/QtSql/qsqldriver.sip,sha256=xzxnZ-JNSN0vvHW0PBlcAXHs6JD8wVwKFD6sqgDG9-U,5168
+PyQt5/bindings/QtSql/qsqlerror.sip,sha256=SJP8z3VgKgTqmtaXXdhpQwoY2It3DQsWtexDp1jxhVY,2405
+PyQt5/bindings/QtSql/qsqlfield.sip,sha256=bFUVcn2TYWypE6RsZpdwU-ZOoa4sradaHqDpuO1n1rs,2569
+PyQt5/bindings/QtSql/qsqlindex.sip,sha256=1VDMKkVsYEoesoIMPgrAJjkwG6CdyfhSR48XpF4cxFI,1538
+PyQt5/bindings/QtSql/qsqlquery.sip,sha256=kJxGG9Po-Qt6kdUeuxo0v7ku1Q55jDESjTvOV4ksTgo,3258
+PyQt5/bindings/QtSql/qsqlquerymodel.sip,sha256=xm22FLiLLXosF5tANyd_Ac2yIluC6saeriVEiYcW0a8,3033
+PyQt5/bindings/QtSql/qsqlrecord.sip,sha256=BDE3w7M2KywFrEbp-eTxBjfYkNFneQQ4ZB__eS9TyHE,2345
+PyQt5/bindings/QtSql/qsqlrelationaldelegate.sip,sha256=LsTHXB9bgo2_jeHkhEqt4t7SVO756YBBXDU1EbZmb9A,1606
+PyQt5/bindings/QtSql/qsqlrelationaltablemodel.sip,sha256=8ov2RATxqM1YizMFlV8V1oqyC76kocTKFSJ3FL4gXzI,2716
+PyQt5/bindings/QtSql/qsqlresult.sip,sha256=LL_net-CSU1W6MOX73tU6PpQSQn_1KHJ2VR5rm6o2cg,3329
+PyQt5/bindings/QtSql/qsqltablemodel.sip,sha256=DaF2g2UjjPeZ4ZHC-BJ1lnKCCsBeCxbACehiKEnrdtQ,3871
+PyQt5/bindings/QtSql/qtsqlglobal.sip,sha256=5XYzEPWlSCdKzp6hHFlKxVYNR-ZE2Q7mQX48NMitzUc,1704
+PyQt5/bindings/QtSvg/QtSvg.toml,sha256=RrH9I5bHAnGAwr0N8HcAMhmAZdawaRj4SZfZG_S67dw,179
+PyQt5/bindings/QtSvg/QtSvgmod.sip,sha256=w4KC8LfK3926pE21x6kMrsVXNBnQGEUr9E9rG_TtWr8,2123
+PyQt5/bindings/QtSvg/qgraphicssvgitem.sip,sha256=YPeS0VjBPkTs9BHYUiOWpM9AOOUpFW0gORta7dpJN5A,2046
+PyQt5/bindings/QtSvg/qsvggenerator.sip,sha256=7PwSb9UMlx70Kq8Mv3cgFtVvgT0fkcQrRqF5uiFNU7I,1871
+PyQt5/bindings/QtSvg/qsvgrenderer.sip,sha256=R2XuCzEP-pSxxCCWmSohVppYNZjvxqCw2N9C_IeDWbM,3341
+PyQt5/bindings/QtSvg/qsvgwidget.sip,sha256=EdJXmA91Q2ku3tDI140Q7VW7o9M99XHMio6fwQFENXI,1455
+PyQt5/bindings/QtTest/QtTest.toml,sha256=IU-Npi8ibUNSGgYPXfSURfI5D4yrhYZfRdF0KeEv5hk,180
+PyQt5/bindings/QtTest/QtTestmod.sip,sha256=5Rgt5XPDM-mAQZyWaeg87p-LOuv-RF1Yau8YkNjh1qY,2179
+PyQt5/bindings/QtTest/qabstractitemmodeltester.sip,sha256=fLfZQoXTSb6d4EyWQHbXUKwHWH9gK0YXyNIC3cAR_Jo,1702
+PyQt5/bindings/QtTest/qsignalspy.sip,sha256=P4ijqU9KlaflxPtBl9dpYeqsyJzAQrpQKrlq-Rs7O6c,3441
+PyQt5/bindings/QtTest/qtestcase.sip,sha256=L05PsUsX3FHP7F-TrPOJ5WBK5dh09MS6Qehb5MsY4S8,1082
+PyQt5/bindings/QtTest/qtestkeyboard.sip,sha256=eyQ88jP7WFJQNgid14qDNnnTouh7fAfZTWXUVG4hFbE,3433
+PyQt5/bindings/QtTest/qtestmouse.sip,sha256=2vR61Av4DuSx2ECQLvU8UBuNHYrkqxqYixdWRpsSFs4,2485
+PyQt5/bindings/QtTest/qtestsystem.sip,sha256=VHaqwTV0t5hwusIxTO2oL73qdxNgnl9GUz3tbw1m8Nc,1415
+PyQt5/bindings/QtTest/qtesttouch.sip,sha256=duQ9vqHsNtB9bMV4d0KrBiTzuzFuD3urEahpiJm66uw,2849
+PyQt5/bindings/QtTextToSpeech/QtTextToSpeech.toml,sha256=rPQdJeCrNcqJjFj_ZKKqjJ3qSmAEW-uzR7mOqeysHks,188
+PyQt5/bindings/QtTextToSpeech/QtTextToSpeechmod.sip,sha256=UONUkmadShI0nFHUmiQ61HD5ANJZLO7dAqnXork5Vcw,2024
+PyQt5/bindings/QtTextToSpeech/qtexttospeech.sip,sha256=phr767z02VqInFIgfM1dE5P9TELhUMmdQhtR_U3wXHI,2864
+PyQt5/bindings/QtTextToSpeech/qvoice.sip,sha256=UV5SeUkJdXt1lolkANnB3cHO5jt1TkWLlIpOd-PmHRA,1624
+PyQt5/bindings/QtWebChannel/QtWebChannel.toml,sha256=ol-TKfTWYqvKcmfoSJLKnGJzfCjVFjLqGLAfm6_ccnU,186
+PyQt5/bindings/QtWebChannel/QtWebChannelmod.sip,sha256=GtwqluwHIJORravZkVlzlKnQmHeiUoEoXdBBBGSe6ys,2038
+PyQt5/bindings/QtWebChannel/qwebchannel.sip,sha256=rfairBAnBsGAXSWlBOiBpCNlk4ZAZHoEDEDBPh2yTFg,2408
+PyQt5/bindings/QtWebChannel/qwebchannelabstracttransport.sip,sha256=cDKWQKcVX61iyqgpEbXsqvPAds6qC5epzjptIOZN_k8,1467
+PyQt5/bindings/QtWebSockets/QtWebSockets.toml,sha256=n7noLS9S44-Kui4xJM1A6jjRoteDaAv7qEKYoqg6LY8,186
+PyQt5/bindings/QtWebSockets/QtWebSocketsmod.sip,sha256=gQQbvINozuUOJT_MOQwWoW4kT2DzO6YNBj4Ka-5AssM,2165
+PyQt5/bindings/QtWebSockets/qmaskgenerator.sip,sha256=-hxsuraaoIN0dzZs2mfCFkFoAn62cPJ_o-QtWIic9uw,1276
+PyQt5/bindings/QtWebSockets/qwebsocket.sip,sha256=x7FjHRHv3kWkNhUgosJ2zY7M27SAspNqcXAWN0lWbDk,5602
+PyQt5/bindings/QtWebSockets/qwebsocketcorsauthenticator.sip,sha256=JFw0yL-hGzkGI9W-6r0RVkA5jDHS5BvKwLxIHs_gGls,1486
+PyQt5/bindings/QtWebSockets/qwebsocketprotocol.sip,sha256=Jd-8FvutgjFma7ccGMChTnGPjEWe4IWyKLSDSlMDTbQ,1803
+PyQt5/bindings/QtWebSockets/qwebsocketserver.sip,sha256=ktgDuokqIQHaqyO-8vVrxv09IrTqnJcpX-RIl2FGRwU,3456
+PyQt5/bindings/QtWidgets/QtWidgets.toml,sha256=zEu3FuJmwJabF0Szk_uyMeyjZMIHS18vNTsLJT36aKU,183
+PyQt5/bindings/QtWidgets/QtWidgetsmod.sip,sha256=qa17tca977bY8Xo3DB_kGEny9XcM9Z9g40ClRa95LN4,5379
+PyQt5/bindings/QtWidgets/qabstractbutton.sip,sha256=TwBrGYecYdQ7-iWKkf-QV1SLmw7ulEofYqyhAbja4WA,2829
+PyQt5/bindings/QtWidgets/qabstractitemdelegate.sip,sha256=dTyuHsaj6CuazdplFKHntBnC4dq0PLsL2oLp2PAz24E,2676
+PyQt5/bindings/QtWidgets/qabstractitemview.sip,sha256=BIUw1XSNOOMh0d061cJumgtkRS7Zn5esG4f5RQSRgck,10870
+PyQt5/bindings/QtWidgets/qabstractscrollarea.sip,sha256=G1P6b2fUpN93jeystMClI5WZSC3QkoNHubXKEMfLADE,3664
+PyQt5/bindings/QtWidgets/qabstractslider.sip,sha256=nDKERSzabJTFHnSu7PwUg_mJIrvbBwsF7Stn00wi5bY,3107
+PyQt5/bindings/QtWidgets/qabstractspinbox.sip,sha256=RRsuREPPJaGIiHiWAHPFrh2pGlmC2U4oDX1CuIHu9Hw,4336
+PyQt5/bindings/QtWidgets/qaction.sip,sha256=blm9r_kwBs8YGf0YYAsKlrYkmfD7Twa1uJSxf2bo0X4,4454
+PyQt5/bindings/QtWidgets/qactiongroup.sip,sha256=T27F53yZzbPNkBKO4ohsRf8dOAzyWTPDnE3dd7_FChc,2182
+PyQt5/bindings/QtWidgets/qapplication.sip,sha256=_c9gQOIR1wQgVnl8n0bX6GhQcnTH4MHcNKlvEbqaCt8,16292
+PyQt5/bindings/QtWidgets/qboxlayout.sip,sha256=tZRAolJhJHJQf85s37nMbC-RC24MR6a15hQ3IB7SjFc,4928
+PyQt5/bindings/QtWidgets/qbuttongroup.sip,sha256=oEMHE9uzkWqZMGh2MRlQ0mTE1p119--JBWAAHvwr034,2162
+PyQt5/bindings/QtWidgets/qcalendarwidget.sip,sha256=K_sbi_zKv2B_x3BPv1Tll_qhwT0yr4QLNvVxBEYjZdg,4288
+PyQt5/bindings/QtWidgets/qcheckbox.sip,sha256=_guVjx8tgqtn73mfoqcAGNkxVDo8nMcyF4KQM7MyD5s,1842
+PyQt5/bindings/QtWidgets/qcolordialog.sip,sha256=E5MRQwoueeQUDfRS3T8PlNTbm1vaap7ogdN5WNcA6rU,3179
+PyQt5/bindings/QtWidgets/qcolumnview.sip,sha256=bHKquaSwO-8utBzMuJVLZE0waz5iruj2T8ExsKfhB84,2937
+PyQt5/bindings/QtWidgets/qcombobox.sip,sha256=JIrfpqVz4gU_Q4X6R-6rDrkVIh2q3t3hZBv7vMEUKjM,6415
+PyQt5/bindings/QtWidgets/qcommandlinkbutton.sip,sha256=Hial3B4SZNndXQAf7tA7LvIdUceix75e95wzTjsi8_8,1702
+PyQt5/bindings/QtWidgets/qcommonstyle.sip,sha256=C9mjlX5u3Hqoo60ChdDtJg_Z2VYSNUzj8x4nj5-sthc,3191
+PyQt5/bindings/QtWidgets/qcompleter.sip,sha256=e7QswmeUsdxcSRQfquALHAz0XlR1HZbXEbQBDVC7ISw,3458
+PyQt5/bindings/QtWidgets/qdatawidgetmapper.sip,sha256=lIzynTy8Xe0WXACZk7_LVpArIm30Ph6ONQnu1Rbg3UI,2506
+PyQt5/bindings/QtWidgets/qdatetimeedit.sip,sha256=sBKOtl10_2bbR9yvV3uFPXjx8Luxu0wmS83jOgbb2_c,5438
+PyQt5/bindings/QtWidgets/qdesktopwidget.sip,sha256=KJFDKuceTxg4CYgFH2NGhQPaBFZyt5ABspuTv00yqU8,1961
+PyQt5/bindings/QtWidgets/qdial.sip,sha256=fh7XTO0jyC3hRQkhuJxI0D-vsRLHHayHc4bzWs8hETE,1911
+PyQt5/bindings/QtWidgets/qdialog.sip,sha256=78gBSDZFgL5WIYGRI8mKp-mi64xw7wP90rCskSz1sxI,3484
+PyQt5/bindings/QtWidgets/qdialogbuttonbox.sip,sha256=9nTLSVvMnnmuOVpxbS5GhGJggtFKiuu6gskPkdxb-7E,3876
+PyQt5/bindings/QtWidgets/qdirmodel.sip,sha256=vZKxFDvm6JO_7zTNpFjkdIiOt1m0Dla1mi5JuMjlCg4,3734
+PyQt5/bindings/QtWidgets/qdockwidget.sip,sha256=CxhMyAitx8K5dDyd5reOjPLPtvMS8yocLee_yblIxAs,2875
+PyQt5/bindings/QtWidgets/qdrawutil.sip,sha256=A5J0oclpO-5Q5r9jfSyP4BvJ4YnP-cIQLjyS_J0rSjQ,2769
+PyQt5/bindings/QtWidgets/qerrormessage.sip,sha256=ZFoUiC6bCOl9exZmDzwrISnTy6PlBlQlSIAaaN34E38,1430
+PyQt5/bindings/QtWidgets/qfiledialog.sip,sha256=hL2rLzNB7JCT842g9kaHax_mmtpoBA8SsEl14tZBez4,12962
+PyQt5/bindings/QtWidgets/qfileiconprovider.sip,sha256=mn9bTnAvgiTL_rcfSsESVjVHcU4Y4TUDxfFQIBr7ayU,2011
+PyQt5/bindings/QtWidgets/qfilesystemmodel.sip,sha256=asknlpNLBvjthaeCd8cHN0l_S3XbkHuonHS0h5h-kOI,5217
+PyQt5/bindings/QtWidgets/qfocusframe.sip,sha256=Uyhnf6O5ppQ3naQkg3k7RiDH6ja3xIlIsiRmu1PgUtM,1424
+PyQt5/bindings/QtWidgets/qfontcombobox.sip,sha256=ebql53ze5c2c_3v_sDd5r9f8CfSLhzGS8ZThrlRHiP4,1979
+PyQt5/bindings/QtWidgets/qfontdialog.sip,sha256=hF611wEgSG-VcbpfA6qo0DJ-v_h9_n0VSyH3NbXta1s,3205
+PyQt5/bindings/QtWidgets/qformlayout.sip,sha256=VZrTFXuPfkVUeppZjnuGrlDYgyVSL94j5wl0IfPYT_g,4846
+PyQt5/bindings/QtWidgets/qframe.sip,sha256=vHSegfHHydy0mjR18_ogZNOI6_YIPduAKRA0IM9AsP8,2219
+PyQt5/bindings/QtWidgets/qgesture.sip,sha256=qJTYQBYwrBwpXOI4V2jUn5qFjpFWQBdLuERkEwB3N9s,5514
+PyQt5/bindings/QtWidgets/qgesturerecognizer.sip,sha256=YasRQPHaYwm4qNWgjWNKg9oKKC-vl7ikAIQUrohshx4,1907
+PyQt5/bindings/QtWidgets/qgraphicsanchorlayout.sip,sha256=4tdKRv9ZQqVz2omOh3jYmq5PTjoNPUJc2sd-k0WVG10,2807
+PyQt5/bindings/QtWidgets/qgraphicseffect.sip,sha256=CX0qWCEHu0cBKpItxUYfYzGHpnLXnu1ByKEfnM3hLOM,5416
+PyQt5/bindings/QtWidgets/qgraphicsgridlayout.sip,sha256=npUEKxMPThzUl_9kWlRmwqMXz4rVNRjUz94aY0lE3jQ,4307
+PyQt5/bindings/QtWidgets/qgraphicsitem.sip,sha256=sll83OZTmTmn0gbn6sltFYurPcJYdM8TRy4JxSMEihc,27666
+PyQt5/bindings/QtWidgets/qgraphicslayout.sip,sha256=we-fd1KPCuLzPOsVZgyMD1bjMZVPL5MHd3EnzmgBDMc,1775
+PyQt5/bindings/QtWidgets/qgraphicslayoutitem.sip,sha256=l2CaZkI76NBqXg0anZWNnA4RCKfqp_nzFeFTsD2KATU,3163
+PyQt5/bindings/QtWidgets/qgraphicslinearlayout.sip,sha256=XV9TqVQ6Y18778QvTQ5yjN1hz3_e7IzdEiuJSCWhFNM,3229
+PyQt5/bindings/QtWidgets/qgraphicsproxywidget.sip,sha256=uHnwPjiin3vrlS8_EDIXE68-rbZe_0q1vvvRYRySNKo,4008
+PyQt5/bindings/QtWidgets/qgraphicsscene.sip,sha256=sQqT2JS67Lv9C7wO0JrD71SCj2N88RiCYkE0kFWBJjU,9311
+PyQt5/bindings/QtWidgets/qgraphicssceneevent.sip,sha256=sQYjBW6oJOUUfP3yXtC3vtTZVaUyw_joDvoIkO3k-SE,6855
+PyQt5/bindings/QtWidgets/qgraphicstransform.sip,sha256=uJbSksE6g4uUjC-8H9d2uPAS8KDhOso11gsTgQ7wJZ4,2528
+PyQt5/bindings/QtWidgets/qgraphicsview.sip,sha256=s_uRONUqw_pv_CDXdTDfCgGMYpLZI6oX1w4R8vatCzk,8610
+PyQt5/bindings/QtWidgets/qgraphicswidget.sip,sha256=D5QvpJyMdUH3FHSLCbbrTVl6u_aR3gIB0dwKp01v7OQ,5617
+PyQt5/bindings/QtWidgets/qgridlayout.sip,sha256=XjaCSwiSc18e5QE1OZ7BlnZyw7xwmeIwcJeKVT_Vm0A,5681
+PyQt5/bindings/QtWidgets/qgroupbox.sip,sha256=L4e6zMLUsa4KEWv8SiAeKXhXSKuBiLS-Cz2OXzI1d30,2176
+PyQt5/bindings/QtWidgets/qheaderview.sip,sha256=AFVf6LK1XXSesEUrbJMcfAB5Avngw6yL8EtiwRAK0qU,7206
+PyQt5/bindings/QtWidgets/qinputdialog.sip,sha256=Ua9-lSJUe-bRF7r6TsNUuIymWV9X1dZ-poSORpG2Lxc,5919
+PyQt5/bindings/QtWidgets/qitemdelegate.sip,sha256=-r6pQk7YH8pxZGMJv0yHv5Cre4NSgOgNdZbhNs5xgeA,2982
+PyQt5/bindings/QtWidgets/qitemeditorfactory.sip,sha256=jdUbr5A_3jwYXP54GfHdNR7rMr6_rZXjGtw54jnyWZs,1849
+PyQt5/bindings/QtWidgets/qkeyeventtransition.sip,sha256=exaXlWOxOI80oVX1lR5D7YoLGIJgemsRsjpPCBbEPXI,1600
+PyQt5/bindings/QtWidgets/qkeysequenceedit.sip,sha256=1_-kEYHPw5EvHEtcaWOQWUdmrShAOIgKdE2jIJzoYTk,1734
+PyQt5/bindings/QtWidgets/qlabel.sip,sha256=dSTyXvPxg061MlXW3okWt94G-umIL8xBXgBY_TfJ5Zw,3275
+PyQt5/bindings/QtWidgets/qlayout.sip,sha256=XqGRezq-KGlZbQJ1MytJl3TBiZQiOAeA1XEMu_MGEwY,6040
+PyQt5/bindings/QtWidgets/qlayoutitem.sip,sha256=7L1MAuNp3FJErj6Ly88Mekt37jBintx3n6ZfhV0o8Mo,3769
+PyQt5/bindings/QtWidgets/qlcdnumber.sip,sha256=yo5SJv1omQkhNTh23LgBD-BHfyKzMxuTk43eq4qvGyc,2460
+PyQt5/bindings/QtWidgets/qlineedit.sip,sha256=rN-a_RzH1SY8YfzOgsYoTED0DRqjUtSjmJq2zPGIq8g,5603
+PyQt5/bindings/QtWidgets/qlistview.sip,sha256=9TuSfetu7FyrjpM3QQohINnHehz-Ju2ev_1gDmzH8xk,5183
+PyQt5/bindings/QtWidgets/qlistwidget.sip,sha256=Pg2lC73Mx5_eNmWANCo_jbQ2fqlPuF36h-sw9XQldmI,7456
+PyQt5/bindings/QtWidgets/qmaccocoaviewcontainer.sip,sha256=7Q-vaceaSBa3tBwa6hMPxBy0SpkqNo--TLrBxWvBmj4,1467
+PyQt5/bindings/QtWidgets/qmainwindow.sip,sha256=1Eshgfl2xQvKssWIXZge6ocHBssqbUaQT50r4FVJYNk,5032
+PyQt5/bindings/QtWidgets/qmdiarea.sip,sha256=cB1ul3CxVbSll-gsR69_9S_Gct73GgKl-U5dsuBwbqg,4384
+PyQt5/bindings/QtWidgets/qmdisubwindow.sip,sha256=SolkMLDC2nxqXXvqbqY-Noeu-yGbLFNg3KLdB4b-4co,4286
+PyQt5/bindings/QtWidgets/qmenu.sip,sha256=m7ZRb759D7jHRjuEmA_-Nqyc2UAWD8miqez_u0YvhEc,6226
+PyQt5/bindings/QtWidgets/qmenubar.sip,sha256=-300MNjl-ZAeXnehdAYxEPtzAxxblRvm_zyeKNI_R6k,3626
+PyQt5/bindings/QtWidgets/qmessagebox.sip,sha256=1Hq8g_23fpdbJz_9r9L4hoTqgoIaCYDpc1lsMPhQRQE,6668
+PyQt5/bindings/QtWidgets/qmouseeventtransition.sip,sha256=kMCiHLKayqSvoRGpXQiIfVeic-TWOVc1fP424gn9NbQ,1751
+PyQt5/bindings/QtWidgets/qopenglwidget.sip,sha256=5DDGOaEsQlpk03b8rvAX5ejEqDfTHWIJFVCzeH3cvW8,2463
+PyQt5/bindings/QtWidgets/qplaintextedit.sip,sha256=11oJH2JJCe4uK5hswWKIUCx-nR2QpPyCJvh5hW8ysBE,7961
+PyQt5/bindings/QtWidgets/qprogressbar.sip,sha256=CYIQYN7Y71G6DoRAyNBnfUDJAJwXuKEGyMlKQXG7FK8,2312
+PyQt5/bindings/QtWidgets/qprogressdialog.sip,sha256=cK0iy4IDon0qdpFM-UHvBRTsmt5DHycRs8iRSUc5Z9k,2988
+PyQt5/bindings/QtWidgets/qproxystyle.sip,sha256=zk6cejeZdDY0piYkEk5nGsvTlH4BFbVhzRCMNmUW3Uk,4008
+PyQt5/bindings/QtWidgets/qpushbutton.sip,sha256=FVZcv1qXAMewoPJ4-2LDmnSPm72c5GHWVBcjMDq72Zg,2223
+PyQt5/bindings/QtWidgets/qpywidgets_qlist.sip,sha256=O527hZgoe15lQKn5K4obGDNqqu5TcT1oFlhEqHjP9Fw,3094
+PyQt5/bindings/QtWidgets/qradiobutton.sip,sha256=G1H9_WXelL-z_KSwCBLK3RAddKbGE1SZaJc4o8D4IsQ,1589
+PyQt5/bindings/QtWidgets/qrubberband.sip,sha256=E3djN1hJxpM4RLITYanbUpLCGPRQK81DRLa2bBnMSis,1840
+PyQt5/bindings/QtWidgets/qscrollarea.sip,sha256=FYzLTdpTysWjGxYd2IZnA7ce2l4zRQJacEliHZX0WSc,1969
+PyQt5/bindings/QtWidgets/qscrollbar.sip,sha256=pKwPytSOgef9dmYCm7qUPxIXbYJGkSV0eHNz6Uiq_d0,1811
+PyQt5/bindings/QtWidgets/qscroller.sip,sha256=LW67hVRbNT2lsqotCqhElFV9IkSv7c-7Jfu4s9B3GrY,3018
+PyQt5/bindings/QtWidgets/qscrollerproperties.sip,sha256=J8dy68GKZwLXoM-QTgZLX1FkKRH4HbbTkijgndkHFEQ,2565
+PyQt5/bindings/QtWidgets/qshortcut.sip,sha256=wJ_cWCIR_HB-oyESmAVX86Eb6wLnKqrBcamJu2yVOp8,3632
+PyQt5/bindings/QtWidgets/qsizegrip.sip,sha256=ZsNiYxlm_XrBcA4EHPai8_iemtC6H0eWtwtzeUYV5hk,1685
+PyQt5/bindings/QtWidgets/qsizepolicy.sip,sha256=zHyZISdgjgKdZkwBCTsBUyfzDUFJBKyjKN16dFR27Go,3563
+PyQt5/bindings/QtWidgets/qslider.sip,sha256=ozJoEJTfnyyRITbu8zdtok2wi8mQrV3ROou98B-nK8I,1970
+PyQt5/bindings/QtWidgets/qspinbox.sip,sha256=YVUDZ459LwvYlHWk6V8EitiWLBll8LiZs4c0qfJFulY,3687
+PyQt5/bindings/QtWidgets/qsplashscreen.sip,sha256=OBdSRlSDkpqGbHgMO02DmlKgCXwMpozSXTNzmdQIBOc,2027
+PyQt5/bindings/QtWidgets/qsplitter.sip,sha256=4TwSAmTLlZcdc7ncvxea-RrcS_rBm_9BQhMsSkR4o1Q,3551
+PyQt5/bindings/QtWidgets/qstackedlayout.sip,sha256=Ix_E4ILQKIwaNmdheackgpoWsvBk0BbobjnqnZuUaXs,3795
+PyQt5/bindings/QtWidgets/qstackedwidget.sip,sha256=gysa9pJ1uAf8cGFfjoTXFNIX89DURvkTLLF18xEkByA,1707
+PyQt5/bindings/QtWidgets/qstatusbar.sip,sha256=hIKi6Jl9zzUNRvZQ6ZiAC9rOIW8K6rexjAxCApY62OE,2011
+PyQt5/bindings/QtWidgets/qstyle.sip,sha256=gIv_KsTBXxThhZzIsaBfk35sz3Cany2ChevxCUfNvVM,24187
+PyQt5/bindings/QtWidgets/qstyleditemdelegate.sip,sha256=nyf7aPquU8cI9KTNulrxEtQZFnY90Il2y0Zxl1Zj5c8,2472
+PyQt5/bindings/QtWidgets/qstylefactory.sip,sha256=xpe3EtEywCi_cgIhPb4qotYT-0VvGnXYPfylZLNJ5ks,1154
+PyQt5/bindings/QtWidgets/qstyleoption.sip,sha256=FqcbdswyA7twhZ82wqQD6iyt4c7xTB09RJlfuGPKB_4,21855
+PyQt5/bindings/QtWidgets/qstylepainter.sip,sha256=kkVmqIkCplJWMwKZUClP_4BquXv2J0i0OZmQ9yo98nU,1773
+PyQt5/bindings/QtWidgets/qsystemtrayicon.sip,sha256=5eBHX8jCWkDgNh3_pFTq10wiMKal0cO-nh34MS-X4J8,2419
+PyQt5/bindings/QtWidgets/qtabbar.sip,sha256=WTJRa859CLSWQosQU1B-sL2i4cUzyOg70Ph088KxY6g,5616
+PyQt5/bindings/QtWidgets/qtableview.sip,sha256=uV8dvj2ButoKgzsi-YBz7SSC0VTNKmWjbFep4NbZfyc,4956
+PyQt5/bindings/QtWidgets/qtablewidget.sip,sha256=f1vk8A4j1W1bZAbNGQmi_7ahVEvuW7WcMq8Oz3z_awE,9296
+PyQt5/bindings/QtWidgets/qtabwidget.sip,sha256=t7WtVDTjESELe1U4sTzdXVAQR0GHpk5GY2-ZRBby1i8,4504
+PyQt5/bindings/QtWidgets/qtextbrowser.sip,sha256=m5EoK3CzKcrIGuE2sp2FcleztajRKymyu3b4WhRgvSQ,2960
+PyQt5/bindings/QtWidgets/qtextedit.sip,sha256=tkOGp7xx2pkDljFWmrENQutLnwmHtj8wbcy4e7cbDJA,8203
+PyQt5/bindings/QtWidgets/qtoolbar.sip,sha256=G-u20SR5Vl2W_gd7H0biomCCq7Kgi5LHDzsYPKMf7Ps,4342
+PyQt5/bindings/QtWidgets/qtoolbox.sip,sha256=CCEsQZc_EsF5izGzu2xSizFjHq21h6QSlxcImEGmWBk,2479
+PyQt5/bindings/QtWidgets/qtoolbutton.sip,sha256=WY_wJG792xVLGdRw8VCBpxkPK9vGVRUMVc1dYTqk1PE,2560
+PyQt5/bindings/QtWidgets/qtooltip.sip,sha256=i7rsjSRWv_9eoY4fayUTgq-uT5VojPEnREfQZKyBh2g,1630
+PyQt5/bindings/QtWidgets/qtreeview.sip,sha256=MJ7PFg-PAZ5lDVgjCyERgkCMU8rxbBT8DrCL976pods,6708
+PyQt5/bindings/QtWidgets/qtreewidget.sip,sha256=Z_uhH1qHPFJUqrEER_RWF8Q9_1f84gmQyPvvkbwNo7g,10487
+PyQt5/bindings/QtWidgets/qtreewidgetitemiterator.sip,sha256=bx0Ni_b62kpljGj3tUX3MG_TPIBPku8xsrpBRdW8zyY,2362
+PyQt5/bindings/QtWidgets/qundogroup.sip,sha256=u79waBc2Sgej8emKf_IEAyG5sjj4iv-6ouF1rI9cio4,2103
+PyQt5/bindings/QtWidgets/qundostack.sip,sha256=C-jDg6eaOV5yiZs-Hy5yTOKWVn2_G007O8ekzEHYJlQ,3169
+PyQt5/bindings/QtWidgets/qundoview.sip,sha256=vxuWUOLpqIZIP3YPGP0rWhYLQrbiDsOXe6_1i6skdfI,1641
+PyQt5/bindings/QtWidgets/qwhatsthis.sip,sha256=s8uZZ8WDxJJRpnrXzfMaWgDFC3Iew8aEifC-ms7Cpco,1391
+PyQt5/bindings/QtWidgets/qwidget.sip,sha256=XjH4yJ8lC3eZOj6Ysd89zcHyq44pn5V6BeaK1htzqsk,15862
+PyQt5/bindings/QtWidgets/qwidgetaction.sip,sha256=J8Qtskk4UEGOv0cgUnUnJ6F7mKT6Jfv-WDGOdOnKrek,1670
+PyQt5/bindings/QtWidgets/qwizard.sip,sha256=nS07oEnxU1wuHjy_BE_MyYfdape53DjRPPpmKxPIMto,7984
+PyQt5/bindings/QtWinExtras/QtWinExtras.toml,sha256=Xr93iUfIThQPhENB9yU7x45OqzE7NUmkQfkWXUjuqs4,185
+PyQt5/bindings/QtWinExtras/QtWinExtrasmod.sip,sha256=hEdt2woWtcBvuy--NxJ_Fhgd7qX9MNIjOGL2n97PUE0,2198
+PyQt5/bindings/QtWinExtras/qwinfunctions.sip,sha256=RYBN61g-rjwTYPpkn7dUxhvdiPet-JrENbeg6o3kEwk,4424
+PyQt5/bindings/QtWinExtras/qwinjumplist.sip,sha256=QbRDIqYkpqlmTya-gTCiSFRtc-oqGlNQJ4TaHE0ZY1w,2492
+PyQt5/bindings/QtWinExtras/qwinjumplistcategory.sip,sha256=M-YenVv7JlxlsRQFXLUgEK-iw4LnkDI3q1ZEbi3FuOc,2135
+PyQt5/bindings/QtWinExtras/qwinjumplistitem.sip,sha256=U_D2Lq77uTwuB5OF0d8OyrI4Vxs5gsuSX5UoIkUAWuM,1844
+PyQt5/bindings/QtWinExtras/qwintaskbarbutton.sip,sha256=FmBWxf4XL58VTxLI9bYlfMUcuK73pLrgmRidCZYkrS4,1644
+PyQt5/bindings/QtWinExtras/qwintaskbarprogress.sip,sha256=exW3vjYCocDN2-twrlFNnT6wkl3YPioDmzBwJxSHeJU,1923
+PyQt5/bindings/QtWinExtras/qwinthumbnailtoolbar.sip,sha256=7tgjCnvL0NfwEAxVKKHQlRkC7Vx_J2pBj0WpITrCpnY,2111
+PyQt5/bindings/QtWinExtras/qwinthumbnailtoolbutton.sip,sha256=B3l62CyQdxtecRDCUq4WaDkGYd7t_b1QTOyPbWv-cVk,1824
+PyQt5/bindings/QtXml/QtXml.toml,sha256=86sF4oVmRzKDMZEqzMrH3eg7ndlBJC-z4nZKiBjnpYE,179
+PyQt5/bindings/QtXml/QtXmlmod.sip,sha256=Ua0YOYKrY8upAzDD34EBt3Xv2Z6v3kVkTWgo3h8Oj9o,1986
+PyQt5/bindings/QtXml/qdom.sip,sha256=5rQabE_FcdbKwnrH0ABTahqMmfRjGNApVJwXM7n7Qe4,14855
+PyQt5/bindings/QtXml/qxml.sip,sha256=dStfEExHZFfb6aTmsRWtqlaWSVGA7uMgyEHrEDRdaH4,12460
+PyQt5/bindings/QtXmlPatterns/QtXmlPatterns.toml,sha256=ANFSImlE_KSBBeYYxrbvMh0OmGU9Ubxa9qc7UQ6WZkE,187
+PyQt5/bindings/QtXmlPatterns/QtXmlPatternsmod.sip,sha256=pUiz2O3FG0z3-4fOtJ18JSRekIEYnms9CMe9aLS2R4c,2436
+PyQt5/bindings/QtXmlPatterns/qabstractmessagehandler.sip,sha256=56cqbQDx7tJ5nrNbd9Stl7kRlnBMbBLpE55T3u4dZww,2196
+PyQt5/bindings/QtXmlPatterns/qabstracturiresolver.sip,sha256=g1qWAy8f153y4wgyb1xnOxrW001p1LHAysXR6TEN3fg,1283
+PyQt5/bindings/QtXmlPatterns/qabstractxmlnodemodel.sip,sha256=nYCPpBh_lTX8duaFkqmCgjJqVHkiEmvmOY8eZDX3zrc,4353
+PyQt5/bindings/QtXmlPatterns/qabstractxmlreceiver.sip,sha256=6NTZGfA3KbZVjem2k-yilkhzj5Kl8X26Y0EgE3vgQOo,1881
+PyQt5/bindings/QtXmlPatterns/qsimplexmlnodemodel.sip,sha256=xTn6OBOF9R0GTg6GA68PRiOeprDvLdlCe9d0jHo7etk,1619
+PyQt5/bindings/QtXmlPatterns/qsourcelocation.sip,sha256=IUc71rRDE5J2KkL_c7C3nQGNPCS1WBX5tzlt37-1rZA,1659
+PyQt5/bindings/QtXmlPatterns/qxmlformatter.sip,sha256=aYDxJDWlDdXAS_mdpIuqfi7zMFnsr5ThhTaBjyw9C7U,1779
+PyQt5/bindings/QtXmlPatterns/qxmlname.sip,sha256=VezM4I8-qy7mTk4fMM_02eDQtG3QsEN6oStRCSr1Tlo,1860
+PyQt5/bindings/QtXmlPatterns/qxmlnamepool.sip,sha256=LAB7kKK5haAXtiutFJPKeqF_hBP1CMDTMpoEJVRJ0zY,1157
+PyQt5/bindings/QtXmlPatterns/qxmlquery.sip,sha256=rrHy3L-Ywayb_8zHv957F2HKQNy2wvgh4pcaVXTnIp0,4503
+PyQt5/bindings/QtXmlPatterns/qxmlresultitems.sip,sha256=gWOCXm8HNAn5aIc6iwUcsn4DGQR4VndsBivgpAT8WtU,1274
+PyQt5/bindings/QtXmlPatterns/qxmlschema.sip,sha256=3IIryJVVD0Hw4v1GeZutmMNVBcx-LrCV-A0NM9R7gik,1928
+PyQt5/bindings/QtXmlPatterns/qxmlschemavalidator.sip,sha256=tVmwLc5QUEZH_csVBN3-wynprLVfgAwCfsst25PTSCk,2485
+PyQt5/bindings/QtXmlPatterns/qxmlserializer.sip,sha256=x0tVpYrSLZM2lyIEj3J365JeB6HqsSOfyhf0tIL1hh4,1905
+PyQt5/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+PyQt5/pylupdate.pyd,sha256=rx2lG2SFqX37mfN7cxJKwFjF6TsCAZK0hWUCvbqEt8I,116224
+PyQt5/pylupdate_main.py,sha256=TTb7HCt89OLoR_TiGq77CZSnY6JPy5cxvxVOrGWWtrc,7620
+PyQt5/pyrcc.pyd,sha256=jdjIZEZkkH42q4QC7F9Ihx6QcOZGV-wEdk6JDmYllog,49152
+PyQt5/pyrcc_main.py,sha256=XegX9hO-ed_pOMutcnj_UAD0dQf8RV4Efe8cQQFi6_k,5558
+PyQt5/sip.pyi,sha256=zYqshTi3mq7gFSUuKKY2DiuhwMLu5lCD1xZiP8A60u4,3639
+PyQt5/uic/Compiler/__init__.py,sha256=n8PH54jpwQxfjzJFSClsa3eYX9tGS8Hov6KmNxUclKI,1024
+PyQt5/uic/Compiler/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/compiler.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/indenter.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/misc.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/proxy_metaclass.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/qobjectcreator.cpython-37.pyc,,
+PyQt5/uic/Compiler/__pycache__/qtproxies.cpython-37.pyc,,
+PyQt5/uic/Compiler/compiler.py,sha256=THKgZNBUh198NkAh1hLHPsDEMeSLRdOiEKFNvVKfv14,4768
+PyQt5/uic/Compiler/indenter.py,sha256=Z2NZ9Koezh5UjmTAsA0tw4IO3rczWYi0okT4pT4M-X8,2819
+PyQt5/uic/Compiler/misc.py,sha256=Wytpj0Y0TUiLdB2JIot3-UdtOJnpo-mnKF9OWQpTCu4,2433
+PyQt5/uic/Compiler/proxy_metaclass.py,sha256=ou_MjXc_yCksa7cFCVUU3ap7FuqJ2XcoWkxXuc4z90c,4424
+PyQt5/uic/Compiler/qobjectcreator.py,sha256=aQjKwR_EXjAhMHR8f9xWcYniDqcgPdMTWwlV8gIBgCs,6083
+PyQt5/uic/Compiler/qtproxies.py,sha256=Ie9yPzHtnzuT_0dNx8JxBJGkKb-AGzm0WVmLcLnPYBg,16785
+PyQt5/uic/Loader/__init__.py,sha256=n8PH54jpwQxfjzJFSClsa3eYX9tGS8Hov6KmNxUclKI,1024
+PyQt5/uic/Loader/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/uic/Loader/__pycache__/loader.cpython-37.pyc,,
+PyQt5/uic/Loader/__pycache__/qobjectcreator.cpython-37.pyc,,
+PyQt5/uic/Loader/loader.py,sha256=IafHQG6x-dNDeTlgnk1NRKYo2WolIpp2wiIWVvi2Ngc,2924
+PyQt5/uic/Loader/qobjectcreator.py,sha256=AhFPTityPrbXXvE5qT80RL-1HQm_G5za8k2dIaik0s0,5172
+PyQt5/uic/__init__.py,sha256=vLZ9hk0Q1xNbu_eRSMsW5Fh5MO0luSwGgNzv1-Jvmqk,9749
+PyQt5/uic/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/uic/__pycache__/driver.cpython-37.pyc,,
+PyQt5/uic/__pycache__/exceptions.cpython-37.pyc,,
+PyQt5/uic/__pycache__/icon_cache.cpython-37.pyc,,
+PyQt5/uic/__pycache__/objcreator.cpython-37.pyc,,
+PyQt5/uic/__pycache__/properties.cpython-37.pyc,,
+PyQt5/uic/__pycache__/pyuic.cpython-37.pyc,,
+PyQt5/uic/__pycache__/uiparser.cpython-37.pyc,,
+PyQt5/uic/driver.py,sha256=-r8KlpUJcr17DD8wjP4maKx4mDwly10u9TYJEtdPIp4,4797
+PyQt5/uic/exceptions.py,sha256=UNMuvcB7CGpzo5xiscd4XkIBGDdFeVRefMAAEbnDFQI,2332
+PyQt5/uic/icon_cache.py,sha256=tH5wNnxUEyvgdJ4ByelA9k4kCg4qxPm6qiAj_0GM9xY,5181
+PyQt5/uic/objcreator.py,sha256=OBi31Sd9nUSz1N_-Zd0MVhizaBxQhVH_6HgXYW2hwKE,6133
+PyQt5/uic/port_v2/__init__.py,sha256=n8PH54jpwQxfjzJFSClsa3eYX9tGS8Hov6KmNxUclKI,1024
+PyQt5/uic/port_v2/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/uic/port_v2/__pycache__/as_string.cpython-37.pyc,,
+PyQt5/uic/port_v2/__pycache__/ascii_upper.cpython-37.pyc,,
+PyQt5/uic/port_v2/__pycache__/proxy_base.cpython-37.pyc,,
+PyQt5/uic/port_v2/__pycache__/string_io.cpython-37.pyc,,
+PyQt5/uic/port_v2/as_string.py,sha256=hY4SmHGsMvyqyaXJx2TTyPKJvC8VLi9muyms3RLZxYM,1475
+PyQt5/uic/port_v2/ascii_upper.py,sha256=ETEfVt9OTue_8nZhT_gZkG5xRUoVOK9e93RNuplWmmM,1358
+PyQt5/uic/port_v2/proxy_base.py,sha256=nEW9uYRgPwd2XhJASVW72YGkgc-auRP8rXPhiUI8atY,1250
+PyQt5/uic/port_v2/string_io.py,sha256=AUCjtEQP_JBdpdlNjfgH-nBAjHGIqIodMJ9JNxev9JY,1157
+PyQt5/uic/port_v3/__init__.py,sha256=n8PH54jpwQxfjzJFSClsa3eYX9tGS8Hov6KmNxUclKI,1024
+PyQt5/uic/port_v3/__pycache__/__init__.cpython-37.pyc,,
+PyQt5/uic/port_v3/__pycache__/as_string.cpython-37.pyc,,
+PyQt5/uic/port_v3/__pycache__/ascii_upper.cpython-37.pyc,,
+PyQt5/uic/port_v3/__pycache__/proxy_base.cpython-37.pyc,,
+PyQt5/uic/port_v3/__pycache__/string_io.cpython-37.pyc,,
+PyQt5/uic/port_v3/as_string.py,sha256=VE5Yy7KtSuEJZr7-3P5-sF-hi7fHZEbs-orV8Q7L9eA,1452
+PyQt5/uic/port_v3/ascii_upper.py,sha256=8WlrDvrYwbwiAT7wdeMrHIwza9qxBE_YS4f9H4DIVdc,1352
+PyQt5/uic/port_v3/proxy_base.py,sha256=f1IQqeX8f_duiMY9zLhNRQ_VF99drQKhsToaxzVOWfc,1230
+PyQt5/uic/port_v3/string_io.py,sha256=tLeo02pkGHPtzVKIsSQI9jhCXCq1f9ojsRMrjdr9EVU,1084
+PyQt5/uic/properties.py,sha256=3x91MRS8UAloXsLhXW8-_D98IhCWOe2ukyKp2UDj7T4,18284
+PyQt5/uic/pyuic.py,sha256=5dGHLs0l8skCaTgUyyzMexVUjL36zRUFux-uTO5N9vA,3646
+PyQt5/uic/uiparser.py,sha256=XJ_JpQr_6UrLMHT82SZ7LhioVcPDw-bEmWgqgJsKSRI,39202
+PyQt5/uic/widget-plugins/__pycache__/qaxcontainer.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qscintilla.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qtcharts.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qtprintsupport.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qtquickwidgets.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qtwebenginewidgets.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/__pycache__/qtwebkit.cpython-37.pyc,,
+PyQt5/uic/widget-plugins/qaxcontainer.py,sha256=mB8Qvob1p4DWmLPR2InGB3ThmIKo4aZ40e1QHWclagw,1590
+PyQt5/uic/widget-plugins/qscintilla.py,sha256=MaejAePN1q0spV_fXWtVmLe26-B7eTqzKhjVKedNXs0,1586
+PyQt5/uic/widget-plugins/qtcharts.py,sha256=jo_nWqxRNphb4CdSux4yRVm2jrbJ20hoD5Ux5iryLjY,1595
+PyQt5/uic/widget-plugins/qtprintsupport.py,sha256=Wwcs3IFh-8NAZ0MHezkuEWgc6CtgXRQcJKwBjWIp_L0,1621
+PyQt5/uic/widget-plugins/qtquickwidgets.py,sha256=IN5K9ayCjP2sSDUa35-0DhvVJkRMfArDpH55u6C8zzc,1595
+PyQt5/uic/widget-plugins/qtwebenginewidgets.py,sha256=Pt3RVxpq_hp7RFLgQW2HcyoC0qhs9GEv-eMVnlbAZi0,1601
+PyQt5/uic/widget-plugins/qtwebkit.py,sha256=nnByrPhnew7v8mfS502IXU5fE3XghYouMzBn0GtGXUo,2558
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/REQUESTED b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/REQUESTED
new file mode 100644
index 00000000..e69de29b
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/WHEEL b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/WHEEL
new file mode 100644
index 00000000..8f3dba04
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/WHEEL
@@ -0,0 +1,4 @@
+Wheel-Version: 1.0
+Generator: sip-wheel 6.4.0
+Root-Is-Purelib: false
+Tag: cp36-abi3-win_amd64
diff --git a/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/entry_points.txt b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/entry_points.txt
new file mode 100644
index 00000000..8d1e5345
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5-5.15.6.dist-info/entry_points.txt
@@ -0,0 +1,4 @@
+[console_scripts]
+pylupdate5=PyQt5.pylupdate_main:main
+pyrcc5=PyQt5.pyrcc_main:main
+pyuic5=PyQt5.uic.pyuic:main
diff --git a/OTHERS/Jarvis/ools/PyQt5/QAxContainer.pyi b/OTHERS/Jarvis/ools/PyQt5/QAxContainer.pyi
new file mode 100644
index 00000000..542bca33
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/QAxContainer.pyi
@@ -0,0 +1,105 @@
+# The PEP 484 type hints stub file for the QAxContainer module.
+#
+# Generated by SIP 6.4.0
+#
+# Copyright (c) 2021 Riverbank Computing Limited
+#
+# This file is part of PyQt5.
+#
+# This file may be used under the terms of the GNU General Public License
+# version 3.0 as published by the Free Software Foundation and appearing in
+# the file LICENSE included in the packaging of this file. Please review the
+# following information to ensure the GNU General Public License version 3.0
+# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+#
+# If you do not wish to use this file under the terms of the GPL version 3.0
+# then you may purchase a commercial license. For more information contact
+# info@riverbankcomputing.com.
+#
+# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+import typing
+
+import PyQt5.sip
+
+from PyQt5 import QtWidgets
+
+# Support for QDate, QDateTime and QTime.
+import datetime
+
+# Convenient type aliases.
+PYQT_SIGNAL = typing.Union[QtCore.pyqtSignal, QtCore.pyqtBoundSignal]
+PYQT_SLOT = typing.Union[typing.Callable[..., None], QtCore.pyqtBoundSignal]
+
+# Convenient aliases for complicated OpenGL types.
+PYQT_OPENGL_ARRAY = typing.Union[typing.Sequence[int], typing.Sequence[float],
+ PyQt5.sip.Buffer, None]
+PYQT_OPENGL_BOUND_ARRAY = typing.Union[typing.Sequence[int],
+ typing.Sequence[float], PyQt5.sip.Buffer, int, None]
+
+
+class QAxBase(sip.simplewrapper):
+
+ @typing.overload
+ def __init__(self) -> None: ...
+ @typing.overload
+ def __init__(self, a0: 'QAxBase') -> None: ...
+
+ def setClassContext(self, classContext: int) -> None: ...
+ def classContext(self) -> int: ...
+ def disableEventSink(self) -> None: ...
+ def disableClassInfo(self) -> None: ...
+ def disableMetaObject(self) -> None: ...
+ def setControl(self, a0: str) -> bool: ...
+ def clear(self) -> None: ...
+ def exception(self, a0: int, a1: str, a2: str, a3: str) -> None: ...
+ def propertyChanged(self, a0: str) -> None: ...
+ def signal(self, a0: str, a1: int, a2: PyQt5.sip.voidptr) -> None: ...
+ def asVariant(self) -> typing.Any: ...
+ def verbs(self) -> typing.List[str]: ...
+ def isNull(self) -> bool: ...
+ def setPropertyWritable(self, a0: str, a1: bool) -> None: ...
+ def propertyWritable(self, a0: str) -> bool: ...
+ def generateDocumentation(self) -> str: ...
+ def setPropertyBag(self, a0: typing.Dict[str, typing.Any]) -> None: ...
+ def propertyBag(self) -> typing.Dict[str, typing.Any]: ...
+ @typing.overload
+ def querySubObject(self, a0: str, a1: typing.Iterable[typing.Any]) -> 'QAxObject': ...
+ @typing.overload
+ def querySubObject(self, a0: str, value1: typing.Any = ..., value2: typing.Any = ..., value3: typing.Any = ..., value4: typing.Any = ..., value5: typing.Any = ..., value6: typing.Any = ..., value7: typing.Any = ..., value8: typing.Any = ...) -> 'QAxObject': ...
+ @typing.overload
+ def dynamicCall(self, a0: str, a1: typing.Iterable[typing.Any]) -> typing.Any: ...
+ @typing.overload
+ def dynamicCall(self, a0: str, value1: typing.Any = ..., value2: typing.Any = ..., value3: typing.Any = ..., value4: typing.Any = ..., value5: typing.Any = ..., value6: typing.Any = ..., value7: typing.Any = ..., value8: typing.Any = ...) -> typing.Any: ...
+ def control(self) -> str: ...
+
+
+class QAxObject(QtCore.QObject, QAxBase):
+
+ @typing.overload
+ def __init__(self, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...
+ @typing.overload
+ def __init__(self, a0: str, parent: typing.Optional[QtCore.QObject] = ...) -> None: ...
+
+ def connectNotify(self, a0: QtCore.QMetaMethod) -> None: ...
+ def doVerb(self, a0: str) -> bool: ...
+
+
+class QAxWidget(QtWidgets.QWidget, QAxBase):
+
+ @typing.overload
+ def __init__(self, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...
+ @typing.overload
+ def __init__(self, a0: str, parent: typing.Optional[QtWidgets.QWidget] = ..., flags: typing.Union[QtCore.Qt.WindowFlags, QtCore.Qt.WindowType] = ...) -> None: ...
+
+ def connectNotify(self, a0: QtCore.QMetaMethod) -> None: ...
+ def translateKeyEvent(self, a0: int, a1: int) -> bool: ...
+ def resizeEvent(self, a0: QtGui.QResizeEvent) -> None: ...
+ def changeEvent(self, a0: QtCore.QEvent) -> None: ...
+ def createHostWindow(self, a0: bool) -> bool: ...
+ def minimumSizeHint(self) -> QtCore.QSize: ...
+ def sizeHint(self) -> QtCore.QSize: ...
+ def doVerb(self, a0: str) -> bool: ...
+ def clear(self) -> None: ...
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Bluetooth.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Bluetooth.dll
new file mode 100644
index 00000000..0a3f57ef
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Bluetooth.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Core.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Core.dll
new file mode 100644
index 00000000..40e8de13
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Core.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5DBus.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5DBus.dll
new file mode 100644
index 00000000..e06ebf30
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5DBus.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Designer.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Designer.dll
new file mode 100644
index 00000000..5330922f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Designer.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Gui.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Gui.dll
new file mode 100644
index 00000000..bf38dda9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Gui.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Help.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Help.dll
new file mode 100644
index 00000000..a3eccb60
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Help.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Location.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Location.dll
new file mode 100644
index 00000000..c04b8584
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Location.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Multimedia.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Multimedia.dll
new file mode 100644
index 00000000..f4ea511e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Multimedia.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5MultimediaWidgets.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5MultimediaWidgets.dll
new file mode 100644
index 00000000..4bf62eec
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5MultimediaWidgets.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Network.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Network.dll
new file mode 100644
index 00000000..d32644d4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Network.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Nfc.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Nfc.dll
new file mode 100644
index 00000000..8e3c2764
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Nfc.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5OpenGL.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5OpenGL.dll
new file mode 100644
index 00000000..e8187b3b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5OpenGL.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Positioning.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Positioning.dll
new file mode 100644
index 00000000..ec9e17de
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Positioning.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PositioningQuick.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PositioningQuick.dll
new file mode 100644
index 00000000..b78237f2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PositioningQuick.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PrintSupport.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PrintSupport.dll
new file mode 100644
index 00000000..de4c30b8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5PrintSupport.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Qml.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Qml.dll
new file mode 100644
index 00000000..7c2e538a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Qml.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlModels.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlModels.dll
new file mode 100644
index 00000000..a0497d3c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlModels.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlWorkerScript.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlWorkerScript.dll
new file mode 100644
index 00000000..c01c0a05
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QmlWorkerScript.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick.dll
new file mode 100644
index 00000000..4ff0bc60
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3D.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3D.dll
new file mode 100644
index 00000000..67fdb366
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3D.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DAssetImport.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DAssetImport.dll
new file mode 100644
index 00000000..47ac4a11
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DAssetImport.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRender.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRender.dll
new file mode 100644
index 00000000..dff2d76d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRender.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRuntimeRender.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRuntimeRender.dll
new file mode 100644
index 00000000..fca80ef7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DRuntimeRender.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DUtils.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DUtils.dll
new file mode 100644
index 00000000..d4edd7e5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Quick3DUtils.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickControls2.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickControls2.dll
new file mode 100644
index 00000000..03df6ea0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickControls2.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickParticles.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickParticles.dll
new file mode 100644
index 00000000..82dbea70
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickParticles.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickShapes.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickShapes.dll
new file mode 100644
index 00000000..0c332736
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickShapes.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTemplates2.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTemplates2.dll
new file mode 100644
index 00000000..2a7c3f62
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTemplates2.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTest.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTest.dll
new file mode 100644
index 00000000..0b10518b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickTest.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickWidgets.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickWidgets.dll
new file mode 100644
index 00000000..11214e85
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5QuickWidgets.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5RemoteObjects.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5RemoteObjects.dll
new file mode 100644
index 00000000..52ba5d15
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5RemoteObjects.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sensors.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sensors.dll
new file mode 100644
index 00000000..aa537bd9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sensors.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5SerialPort.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5SerialPort.dll
new file mode 100644
index 00000000..b72028e0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5SerialPort.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sql.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sql.dll
new file mode 100644
index 00000000..5fb5f0df
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Sql.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Svg.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Svg.dll
new file mode 100644
index 00000000..edfbf4ac
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Svg.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Test.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Test.dll
new file mode 100644
index 00000000..e3db0056
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Test.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5TextToSpeech.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5TextToSpeech.dll
new file mode 100644
index 00000000..4cecb655
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5TextToSpeech.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebChannel.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebChannel.dll
new file mode 100644
index 00000000..a14cff68
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebChannel.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebSockets.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebSockets.dll
new file mode 100644
index 00000000..1b21504b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebSockets.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebView.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebView.dll
new file mode 100644
index 00000000..16bbdab0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WebView.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Widgets.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Widgets.dll
new file mode 100644
index 00000000..80ae4e3f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Widgets.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WinExtras.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WinExtras.dll
new file mode 100644
index 00000000..906e8542
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5WinExtras.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Xml.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Xml.dll
new file mode 100644
index 00000000..2c685acc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5Xml.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5XmlPatterns.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5XmlPatterns.dll
new file mode 100644
index 00000000..96f5a370
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/Qt5XmlPatterns.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/concrt140.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/concrt140.dll
new file mode 100644
index 00000000..cd412ea8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/concrt140.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/d3dcompiler_47.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/d3dcompiler_47.dll
new file mode 100644
index 00000000..56512f56
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/d3dcompiler_47.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libEGL.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libEGL.dll
new file mode 100644
index 00000000..e910cc99
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libEGL.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libGLESv2.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libGLESv2.dll
new file mode 100644
index 00000000..d357182b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libGLESv2.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libcrypto-1_1-x64.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libcrypto-1_1-x64.dll
new file mode 100644
index 00000000..eb3dfea4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libcrypto-1_1-x64.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libeay32.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libeay32.dll
new file mode 100644
index 00000000..6cefeb1b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libeay32.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libssl-1_1-x64.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libssl-1_1-x64.dll
new file mode 100644
index 00000000..e81c5cc9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/libssl-1_1-x64.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140.dll
new file mode 100644
index 00000000..4fec76d7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_1.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_1.dll
new file mode 100644
index 00000000..a4cae473
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_1.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_2.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_2.dll
new file mode 100644
index 00000000..72cd7732
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/msvcp140_2.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/opengl32sw.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/opengl32sw.dll
new file mode 100644
index 00000000..475e82a4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/opengl32sw.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/ssleay32.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/ssleay32.dll
new file mode 100644
index 00000000..0276bba1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/ssleay32.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140.dll
new file mode 100644
index 00000000..459166dc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140_1.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140_1.dll
new file mode 100644
index 00000000..fc7bad4d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/bin/vcruntime140_1.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/assimp.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/assimp.dll
new file mode 100644
index 00000000..ed96734d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/assimp.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/uip.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/uip.dll
new file mode 100644
index 00000000..50738c3a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/assetimporters/uip.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_wasapi.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_wasapi.dll
new file mode 100644
index 00000000..fe63f63e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_wasapi.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_windows.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_windows.dll
new file mode 100644
index 00000000..f037533d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/audio/qtaudio_windows.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/bearer/qgenericbearer.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/bearer/qgenericbearer.dll
new file mode 100644
index 00000000..56305142
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/bearer/qgenericbearer.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/generic/qtuiotouchplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/generic/qtuiotouchplugin.dll
new file mode 100644
index 00000000..67275c55
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/generic/qtuiotouchplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/defaultgeometryloader.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/defaultgeometryloader.dll
new file mode 100644
index 00000000..7c9759fd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/defaultgeometryloader.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/gltfgeometryloader.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/gltfgeometryloader.dll
new file mode 100644
index 00000000..8c88a1c7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geometryloaders/gltfgeometryloader.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_esri.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_esri.dll
new file mode 100644
index 00000000..1be64ac6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_esri.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_itemsoverlay.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_itemsoverlay.dll
new file mode 100644
index 00000000..78349247
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_itemsoverlay.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_mapbox.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_mapbox.dll
new file mode 100644
index 00000000..30546f23
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_mapbox.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_nokia.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_nokia.dll
new file mode 100644
index 00000000..3913bf89
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_nokia.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_osm.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_osm.dll
new file mode 100644
index 00000000..03c7809f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/geoservices/qtgeoservices_osm.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/iconengines/qsvgicon.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/iconengines/qsvgicon.dll
new file mode 100644
index 00000000..cbca63c2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/iconengines/qsvgicon.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qgif.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qgif.dll
new file mode 100644
index 00000000..b6e56585
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qgif.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qicns.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qicns.dll
new file mode 100644
index 00000000..5b4365f4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qicns.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qico.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qico.dll
new file mode 100644
index 00000000..d89a6378
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qico.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qjpeg.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qjpeg.dll
new file mode 100644
index 00000000..98cdf951
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qjpeg.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qsvg.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qsvg.dll
new file mode 100644
index 00000000..c6b732ba
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qsvg.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtga.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtga.dll
new file mode 100644
index 00000000..d4f77f89
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtga.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtiff.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtiff.dll
new file mode 100644
index 00000000..43cbc0c4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qtiff.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwbmp.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwbmp.dll
new file mode 100644
index 00000000..e1dc12c2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwbmp.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwebp.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwebp.dll
new file mode 100644
index 00000000..3c49ed86
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/imageformats/qwebp.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/dsengine.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/dsengine.dll
new file mode 100644
index 00000000..2f5bcc76
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/dsengine.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/qtmedia_audioengine.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/qtmedia_audioengine.dll
new file mode 100644
index 00000000..adcf5bcc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/qtmedia_audioengine.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/wmfengine.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/wmfengine.dll
new file mode 100644
index 00000000..c7aa07e8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/mediaservice/wmfengine.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qminimal.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qminimal.dll
new file mode 100644
index 00000000..c4bcfd89
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qminimal.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qoffscreen.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qoffscreen.dll
new file mode 100644
index 00000000..ad297839
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qoffscreen.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwebgl.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwebgl.dll
new file mode 100644
index 00000000..5f317e50
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwebgl.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwindows.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwindows.dll
new file mode 100644
index 00000000..e9c319d1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platforms/qwindows.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platformthemes/qxdgdesktopportal.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platformthemes/qxdgdesktopportal.dll
new file mode 100644
index 00000000..34c02318
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/platformthemes/qxdgdesktopportal.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/playlistformats/qtmultimedia_m3u.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/playlistformats/qtmultimedia_m3u.dll
new file mode 100644
index 00000000..17e2d89f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/playlistformats/qtmultimedia_m3u.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_positionpoll.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_positionpoll.dll
new file mode 100644
index 00000000..1c5f7d45
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_positionpoll.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_serialnmea.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_serialnmea.dll
new file mode 100644
index 00000000..3458b8b6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_serialnmea.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_winrt.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_winrt.dll
new file mode 100644
index 00000000..faf88d80
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/position/qtposition_winrt.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/printsupport/windowsprintersupport.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/printsupport/windowsprintersupport.dll
new file mode 100644
index 00000000..2e501718
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/printsupport/windowsprintersupport.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/renderers/openglrenderer.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/renderers/openglrenderer.dll
new file mode 100644
index 00000000..4b7c7ac7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/renderers/openglrenderer.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneexport.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneexport.dll
new file mode 100644
index 00000000..f074e19f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneexport.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneimport.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneimport.dll
new file mode 100644
index 00000000..fd809209
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sceneparsers/gltfsceneimport.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_plugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_plugin.dll
new file mode 100644
index 00000000..9706a62e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_plugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_shakeplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_shakeplugin.dll
new file mode 100644
index 00000000..58e73bd7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensorgestures/qtsensorgestures_shakeplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensors/qtsensors_generic.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensors/qtsensors_generic.dll
new file mode 100644
index 00000000..1c1263f7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sensors/qtsensors_generic.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlite.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlite.dll
new file mode 100644
index 00000000..1d1b2006
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlite.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlodbc.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlodbc.dll
new file mode 100644
index 00000000..ee0620ed
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlodbc.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlpsql.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlpsql.dll
new file mode 100644
index 00000000..2ddeb7b8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/sqldrivers/qsqlpsql.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/styles/qwindowsvistastyle.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/styles/qwindowsvistastyle.dll
new file mode 100644
index 00000000..c97acd62
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/styles/qwindowsvistastyle.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/texttospeech/qtexttospeech_sapi.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/texttospeech/qtexttospeech_sapi.dll
new file mode 100644
index 00000000..c0d42b54
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/texttospeech/qtexttospeech_sapi.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/webview/qtwebview_webengine.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/webview/qtwebview_webengine.dll
new file mode 100644
index 00000000..8603465e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/plugins/webview/qtwebview_webengine.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/WebSockets/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/WebSockets/qmldir
new file mode 100644
index 00000000..a4310d92
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/WebSockets/qmldir
@@ -0,0 +1,4 @@
+module Qt.WebSockets
+plugin declarative_qmlwebsockets ../../QtWebSockets/
+classname QtWebSocketsDeclarativeModule
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/labsanimationplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/labsanimationplugin.dll
new file mode 100644
index 00000000..c208a8e1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/labsanimationplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/plugins.qmltypes
new file mode 100644
index 00000000..7b6112b7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/plugins.qmltypes
@@ -0,0 +1,34 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ file: "qquickboundaryrule_p.h"
+ name: "QQuickBoundaryRule"
+ prototype: "QObject"
+ exports: ["Qt.labs.animation/BoundaryRule 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "OvershootFilter"
+ values: ["None", "Peak"]
+ }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "minimum"; type: "double" }
+ Property { name: "minimumOvershoot"; type: "double" }
+ Property { name: "maximum"; type: "double" }
+ Property { name: "maximumOvershoot"; type: "double" }
+ Property { name: "overshootScale"; type: "double" }
+ Property { name: "currentOvershoot"; type: "double"; isReadonly: true }
+ Property { name: "peakOvershoot"; type: "double"; isReadonly: true }
+ Property { name: "overshootFilter"; type: "OvershootFilter" }
+ Property { name: "easing"; type: "QEasingCurve" }
+ Property { name: "returnDuration"; type: "int" }
+ Method { name: "componentFinalized" }
+ Method { name: "returnToBounds"; type: "bool" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/qmldir
new file mode 100644
index 00000000..b24fc98b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/animation/qmldir
@@ -0,0 +1,3 @@
+module Qt.labs.animation
+plugin labsanimationplugin
+classname QtLabsAnimationPlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qml
new file mode 100644
index 00000000..2fc0d6f7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Labs Calendar module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import Qt.labs.calendar 1.0
+
+AbstractDayOfWeekRow {
+ id: control
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0,
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0,
+ contentItem.implicitHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ topPadding: 6
+ bottomPadding: 6
+ font.bold: true
+
+ //! [delegate]
+ delegate: Text {
+ text: model.shortName
+ font: control.font
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ //! [delegate]
+
+ //! [contentItem]
+ contentItem: Row {
+ spacing: control.spacing
+ Repeater {
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+ //! [contentItem]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qmlc
new file mode 100644
index 00000000..f327499f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/DayOfWeekRow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qml
new file mode 100644
index 00000000..884ce65f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qml
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Labs Calendar module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import Qt.labs.calendar 1.0
+
+AbstractMonthGrid {
+ id: control
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0,
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0,
+ contentItem.implicitHeight + topPadding + bottomPadding)
+
+ spacing: 6
+
+ //! [delegate]
+ delegate: Text {
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ opacity: model.month === control.month ? 1 : 0
+ text: model.day
+ font: control.font
+ }
+ //! [delegate]
+
+ //! [contentItem]
+ contentItem: Grid {
+ rows: 6
+ columns: 7
+ rowSpacing: control.spacing
+ columnSpacing: control.spacing
+
+ Repeater {
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+ //! [contentItem]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qmlc
new file mode 100644
index 00000000..b001dc75
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/MonthGrid.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qml
new file mode 100644
index 00000000..e2c9d98b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Labs Calendar module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import Qt.labs.calendar 1.0
+
+AbstractWeekNumberColumn {
+ id: control
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0,
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0,
+ contentItem.implicitHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ leftPadding: 6
+ rightPadding: 6
+ font.bold: true
+
+ //! [delegate]
+ delegate: Text {
+ text: model.weekNumber
+ font: control.font
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ //! [delegate]
+
+ //! [contentItem]
+ contentItem: Column {
+ spacing: control.spacing
+ Repeater {
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+ //! [contentItem]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qmlc
new file mode 100644
index 00000000..377d274f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/WeekNumberColumn.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/plugins.qmltypes
new file mode 100644
index 00000000..e004d63d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/plugins.qmltypes
@@ -0,0 +1,435 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable Qt.labs.calendar 1.0'
+
+Module {
+ dependencies: ["QtQuick 2.12"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QQuickCalendar"
+ prototype: "QObject"
+ exports: ["Qt.labs.calendar/Calendar 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Month"
+ values: {
+ "January": 0,
+ "February": 1,
+ "March": 2,
+ "April": 3,
+ "May": 4,
+ "June": 5,
+ "July": 6,
+ "August": 7,
+ "September": 8,
+ "October": 9,
+ "November": 10,
+ "December": 11
+ }
+ }
+ }
+ Component {
+ name: "QQuickCalendarModel"
+ prototype: "QAbstractListModel"
+ exports: ["Qt.labs.calendar/CalendarModel 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "from"; type: "QDate" }
+ Property { name: "to"; type: "QDate" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Method {
+ name: "monthAt"
+ type: "int"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "yearAt"
+ type: "int"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "indexOf"
+ type: "int"
+ Parameter { name: "date"; type: "QDate" }
+ }
+ Method {
+ name: "indexOf"
+ type: "int"
+ Parameter { name: "year"; type: "int" }
+ Parameter { name: "month"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickControl"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Property { name: "font"; type: "QFont" }
+ Property { name: "availableWidth"; type: "double"; isReadonly: true }
+ Property { name: "availableHeight"; type: "double"; isReadonly: true }
+ Property { name: "padding"; type: "double" }
+ Property { name: "topPadding"; type: "double" }
+ Property { name: "leftPadding"; type: "double" }
+ Property { name: "rightPadding"; type: "double" }
+ Property { name: "bottomPadding"; type: "double" }
+ Property { name: "spacing"; type: "double" }
+ Property { name: "locale"; type: "QLocale" }
+ Property { name: "mirrored"; type: "bool"; isReadonly: true }
+ Property { name: "focusPolicy"; type: "Qt::FocusPolicy" }
+ Property { name: "focusReason"; type: "Qt::FocusReason" }
+ Property { name: "visualFocus"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "hoverEnabled"; type: "bool" }
+ Property { name: "wheelEnabled"; type: "bool" }
+ Property { name: "background"; type: "QQuickItem"; isPointer: true }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "palette"; revision: 3; type: "QPalette" }
+ Property { name: "horizontalPadding"; revision: 5; type: "double" }
+ Property { name: "verticalPadding"; revision: 5; type: "double" }
+ Property { name: "implicitContentWidth"; revision: 5; type: "double"; isReadonly: true }
+ Property { name: "implicitContentHeight"; revision: 5; type: "double"; isReadonly: true }
+ Property { name: "implicitBackgroundWidth"; revision: 5; type: "double"; isReadonly: true }
+ Property { name: "implicitBackgroundHeight"; revision: 5; type: "double"; isReadonly: true }
+ Property { name: "topInset"; revision: 5; type: "double" }
+ Property { name: "leftInset"; revision: 5; type: "double" }
+ Property { name: "rightInset"; revision: 5; type: "double" }
+ Property { name: "bottomInset"; revision: 5; type: "double" }
+ Signal { name: "paletteChanged"; revision: 3 }
+ Signal { name: "horizontalPaddingChanged"; revision: 5 }
+ Signal { name: "verticalPaddingChanged"; revision: 5 }
+ Signal { name: "implicitContentWidthChanged"; revision: 5 }
+ Signal { name: "implicitContentHeightChanged"; revision: 5 }
+ Signal { name: "implicitBackgroundWidthChanged"; revision: 5 }
+ Signal { name: "implicitBackgroundHeightChanged"; revision: 5 }
+ Signal { name: "topInsetChanged"; revision: 5 }
+ Signal { name: "leftInsetChanged"; revision: 5 }
+ Signal { name: "rightInsetChanged"; revision: 5 }
+ Signal { name: "bottomInsetChanged"; revision: 5 }
+ }
+ Component {
+ name: "QQuickDayOfWeekRow"
+ defaultProperty: "data"
+ prototype: "QQuickControl"
+ exports: ["Qt.labs.calendar/AbstractDayOfWeekRow 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "source"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ name: "QQuickMonthGrid"
+ defaultProperty: "data"
+ prototype: "QQuickControl"
+ exports: ["Qt.labs.calendar/AbstractMonthGrid 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "month"; type: "int" }
+ Property { name: "year"; type: "int" }
+ Property { name: "source"; type: "QVariant" }
+ Property { name: "title"; type: "string" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Signal {
+ name: "pressed"
+ Parameter { name: "date"; type: "QDate" }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "date"; type: "QDate" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "date"; type: "QDate" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "date"; type: "QDate" }
+ }
+ }
+ Component {
+ name: "QQuickWeekNumberColumn"
+ defaultProperty: "data"
+ prototype: "QQuickControl"
+ exports: ["Qt.labs.calendar/AbstractWeekNumberColumn 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "month"; type: "int" }
+ Property { name: "year"; type: "int" }
+ Property { name: "source"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qmldir
new file mode 100644
index 00000000..9b9e9031
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qmldir
@@ -0,0 +1,6 @@
+module Qt.labs.calendar
+plugin qtlabscalendarplugin
+classname QtLabsCalendarPlugin
+DayOfWeekRow 1.0 DayOfWeekRow.qml
+MonthGrid 1.0 MonthGrid.qml
+WeekNumberColumn 1.0 WeekNumberColumn.qml
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qtlabscalendarplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qtlabscalendarplugin.dll
new file mode 100644
index 00000000..e65ddd49
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/calendar/qtlabscalendarplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/plugins.qmltypes
new file mode 100644
index 00000000..6e2a721d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/plugins.qmltypes
@@ -0,0 +1,361 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: [
+ "NoLayoutChangeHint",
+ "VerticalSortHint",
+ "HorizontalSortHint"
+ ]
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: [
+ "NoOption",
+ "IndexIsValid",
+ "DoNotUseParent",
+ "ParentIsInvalid"
+ ]
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method { name: "resetInternalData" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ file: "qquickfolderlistmodel.h"
+ name: "QQuickFolderListModel"
+ prototype: "QAbstractListModel"
+ exports: [
+ "Qt.labs.folderlistmodel/FolderListModel 2.0",
+ "Qt.labs.folderlistmodel/FolderListModel 2.1",
+ "Qt.labs.folderlistmodel/FolderListModel 2.11",
+ "Qt.labs.folderlistmodel/FolderListModel 2.12",
+ "Qt.labs.folderlistmodel/FolderListModel 2.2"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 12, 2]
+ Enum {
+ name: "SortField"
+ values: ["Unsorted", "Name", "Time", "Size", "Type"]
+ }
+ Enum {
+ name: "Status"
+ values: ["Null", "Ready", "Loading"]
+ }
+ Property { name: "folder"; type: "QUrl" }
+ Property { name: "rootFolder"; type: "QUrl" }
+ Property { name: "parentFolder"; type: "QUrl"; isReadonly: true }
+ Property { name: "nameFilters"; type: "QStringList" }
+ Property { name: "sortField"; type: "SortField" }
+ Property { name: "sortReversed"; type: "bool" }
+ Property { name: "showFiles"; revision: 1; type: "bool" }
+ Property { name: "showDirs"; type: "bool" }
+ Property { name: "showDirsFirst"; type: "bool" }
+ Property { name: "showDotAndDotDot"; type: "bool" }
+ Property { name: "showHidden"; revision: 1; type: "bool" }
+ Property { name: "showOnlyReadable"; type: "bool" }
+ Property { name: "caseSensitive"; revision: 2; type: "bool" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "status"; revision: 11; type: "Status"; isReadonly: true }
+ Property { name: "sortCaseSensitive"; revision: 12; type: "bool" }
+ Signal { name: "rowCountChanged" }
+ Signal { name: "countChanged"; revision: 1 }
+ Signal { name: "statusChanged"; revision: 11 }
+ Method {
+ name: "_q_directoryChanged"
+ Parameter { name: "directory"; type: "string" }
+ Parameter { name: "list"; type: "QList" }
+ }
+ Method {
+ name: "_q_directoryUpdated"
+ Parameter { name: "directory"; type: "string" }
+ Parameter { name: "list"; type: "QList" }
+ Parameter { name: "fromIndex"; type: "int" }
+ Parameter { name: "toIndex"; type: "int" }
+ }
+ Method {
+ name: "_q_sortFinished"
+ Parameter { name: "list"; type: "QList" }
+ }
+ Method {
+ name: "_q_statusChanged"
+ Parameter { name: "s"; type: "QQuickFolderListModel::Status" }
+ }
+ Method {
+ name: "isFolder"
+ type: "bool"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "get"
+ type: "QVariant"
+ Parameter { name: "idx"; type: "int" }
+ Parameter { name: "property"; type: "string" }
+ }
+ Method {
+ name: "indexOf"
+ type: "int"
+ Parameter { name: "file"; type: "QUrl" }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmldir
new file mode 100644
index 00000000..18658450
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmldir
@@ -0,0 +1,4 @@
+module Qt.labs.folderlistmodel
+plugin qmlfolderlistmodelplugin
+classname QmlFolderListModelPlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll
new file mode 100644
index 00000000..9bfd3767
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/locationlabsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/locationlabsplugin.dll
new file mode 100644
index 00000000..886f04ad
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/locationlabsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/plugins.qmltypes
new file mode 100644
index 00000000..d69039b1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/plugins.qmltypes
@@ -0,0 +1,252 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable Qt.labs.location 1.0'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "LocationLabsSingleton"
+ prototype: "QObject"
+ exports: ["Qt.labs.location/QtLocationLabs 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Method {
+ name: "mapObjectsAt"
+ type: "QList"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ Parameter { name: "map"; type: "QDeclarativeGeoMap"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QAbstractNavigator"
+ prototype: "QObject"
+ Signal {
+ name: "activeChanged"
+ Parameter { name: "active"; type: "bool" }
+ }
+ Signal {
+ name: "waypointReached"
+ Parameter { name: "pos"; type: "const QDeclarativeGeoWaypoint"; isPointer: true }
+ }
+ Signal { name: "destinationReached" }
+ Signal { name: "currentRouteChanged" }
+ Signal { name: "currentRouteLegChanged" }
+ Signal { name: "currentSegmentChanged" }
+ Signal { name: "nextManeuverIconChanged" }
+ Signal { name: "progressInformationChanged" }
+ Signal { name: "isOnRouteChanged" }
+ Signal { name: "alternativeRoutesChanged" }
+ Method { name: "start"; type: "bool" }
+ Method { name: "stop"; type: "bool" }
+ Method {
+ name: "setTrackPosition"
+ Parameter { name: "trackPosition"; type: "bool" }
+ }
+ }
+ Component {
+ name: "QDeclarativeNavigationBasicDirections"
+ prototype: "QObject"
+ Property { name: "nextManeuverIcon"; type: "QVariant"; isReadonly: true }
+ Property { name: "distanceToNextManeuver"; type: "double"; isReadonly: true }
+ Property { name: "remainingTravelDistance"; type: "double"; isReadonly: true }
+ Property { name: "remainingTravelDistanceToNextWaypoint"; type: "double"; isReadonly: true }
+ Property { name: "traveledDistance"; type: "double"; isReadonly: true }
+ Property { name: "timeToNextManeuver"; type: "int"; isReadonly: true }
+ Property { name: "remainingTravelTime"; type: "int"; isReadonly: true }
+ Property { name: "remainingTravelTimeToNextWaypoint"; type: "int"; isReadonly: true }
+ Property { name: "traveledTime"; type: "int"; isReadonly: true }
+ Property { name: "currentRoute"; type: "QDeclarativeGeoRoute"; isReadonly: true; isPointer: true }
+ Property {
+ name: "currentRouteLeg"
+ type: "QDeclarativeGeoRouteLeg"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "currentSegment"; type: "int"; isReadonly: true }
+ Property {
+ name: "alternativeRoutes"
+ type: "QAbstractItemModel"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal { name: "progressInformationChanged" }
+ Signal {
+ name: "waypointReached"
+ Parameter { name: "pos"; type: "const QDeclarativeGeoWaypoint"; isPointer: true }
+ }
+ Signal { name: "destinationReached" }
+ }
+ Component {
+ name: "QDeclarativeNavigator"
+ defaultProperty: "quickChildren"
+ prototype: "QParameterizableObject"
+ exports: ["Qt.labs.location/Navigator 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "map"; type: "QDeclarativeGeoMap"; isPointer: true }
+ Property { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true }
+ Property { name: "positionSource"; type: "QDeclarativePositionSource"; isPointer: true }
+ Property { name: "active"; type: "bool" }
+ Property { name: "navigatorReady"; type: "bool"; isReadonly: true }
+ Property { name: "trackPositionSource"; type: "bool" }
+ Property { name: "automaticReroutingEnabled"; type: "bool" }
+ Property { name: "isOnRoute"; type: "bool"; isReadonly: true }
+ Property {
+ name: "directions"
+ type: "QDeclarativeNavigationBasicDirections"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "error"; type: "NavigationError"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "engineHandle"; type: "QAbstractNavigator"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "navigatorReadyChanged"
+ Parameter { name: "ready"; type: "bool" }
+ }
+ Signal {
+ name: "trackPositionSourceChanged"
+ Parameter { name: "trackPositionSource"; type: "bool" }
+ }
+ Signal {
+ name: "activeChanged"
+ Parameter { name: "active"; type: "bool" }
+ }
+ Method { name: "recalculateRoutes" }
+ }
+ Component {
+ name: "QGeoMapObject"
+ defaultProperty: "quickChildren"
+ prototype: "QParameterizableObject"
+ Enum {
+ name: "Type"
+ values: {
+ "InvalidType": 0,
+ "ViewType": 1,
+ "RouteType": 2,
+ "RectangleType": 3,
+ "CircleType": 4,
+ "PolylineType": 5,
+ "PolygonType": 6,
+ "IconType": 7,
+ "UserType": 256
+ }
+ }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "type"; type: "Type"; isReadonly: true }
+ Property { name: "geoShape"; type: "QGeoShape" }
+ Signal { name: "selected" }
+ Signal { name: "completed" }
+ }
+ Component {
+ name: "QMapCircleObject"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapCircleObject 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "center"; type: "QGeoCoordinate" }
+ Property { name: "radius"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Property {
+ name: "border"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ name: "QMapIconObject"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapIconObject 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "coordinate"; type: "QGeoCoordinate" }
+ Property { name: "content"; type: "QVariant" }
+ Property { name: "iconSize"; type: "QSizeF" }
+ Signal {
+ name: "contentChanged"
+ Parameter { name: "content"; type: "QVariant" }
+ }
+ Signal {
+ name: "coordinateChanged"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ }
+ Component {
+ name: "QMapObjectView"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapObjectView 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Signal {
+ name: "modelChanged"
+ Parameter { name: "model"; type: "QVariant" }
+ }
+ Signal {
+ name: "delegateChanged"
+ Parameter { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ }
+ Method {
+ name: "addMapObject"
+ Parameter { name: "object"; type: "QGeoMapObject"; isPointer: true }
+ }
+ Method {
+ name: "removeMapObject"
+ Parameter { name: "object"; type: "QGeoMapObject"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QMapPolygonObject"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapPolygonObject 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "QVariantList" }
+ Property { name: "color"; type: "QColor" }
+ Property {
+ name: "border"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ name: "QMapPolylineObject"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapPolylineObject 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "QVariantList" }
+ Property {
+ name: "line"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ name: "QMapRouteObject"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoMapObject"
+ exports: ["Qt.labs.location/MapRouteObject 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true }
+ Signal {
+ name: "routeChanged"
+ Parameter { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QParameterizableObject"
+ defaultProperty: "quickChildren"
+ prototype: "QObject"
+ Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/qmldir
new file mode 100644
index 00000000..ddaf6ebc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/location/qmldir
@@ -0,0 +1,4 @@
+module Qt.labs.location
+plugin locationlabsplugin
+classname QtLocationLabsDeclarativeModule
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/plugins.qmltypes
new file mode 100644
index 00000000..e9312047
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/plugins.qmltypes
@@ -0,0 +1,492 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable Qt.labs.platform 1.1'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QPlatformDialogHelper"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/StandardButton 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "StandardButtons"
+ values: {
+ "NoButton": 0,
+ "Ok": 1024,
+ "Save": 2048,
+ "SaveAll": 4096,
+ "Open": 8192,
+ "Yes": 16384,
+ "YesToAll": 32768,
+ "No": 65536,
+ "NoToAll": 131072,
+ "Abort": 262144,
+ "Retry": 524288,
+ "Ignore": 1048576,
+ "Close": 2097152,
+ "Cancel": 4194304,
+ "Discard": 8388608,
+ "Help": 16777216,
+ "Apply": 33554432,
+ "Reset": 67108864,
+ "RestoreDefaults": 134217728,
+ "FirstButton": 1024,
+ "LastButton": 134217728,
+ "LowestBit": 10,
+ "HighestBit": 27
+ }
+ }
+ Enum {
+ name: "ButtonRole"
+ values: {
+ "InvalidRole": -1,
+ "AcceptRole": 0,
+ "RejectRole": 1,
+ "DestructiveRole": 2,
+ "ActionRole": 3,
+ "HelpRole": 4,
+ "YesRole": 5,
+ "NoRole": 6,
+ "ResetRole": 7,
+ "ApplyRole": 8,
+ "NRoles": 9,
+ "RoleMask": 268435455,
+ "AlternateRole": 268435456,
+ "Stretch": 536870912,
+ "Reverse": 1073741824,
+ "EOL": -1
+ }
+ }
+ Enum {
+ name: "ButtonLayout"
+ values: {
+ "UnknownLayout": -1,
+ "WinLayout": 0,
+ "MacLayout": 1,
+ "KdeLayout": 2,
+ "GnomeLayout": 3,
+ "MacModelessLayout": 4,
+ "AndroidLayout": 5
+ }
+ }
+ Signal { name: "accept" }
+ Signal { name: "reject" }
+ }
+ Component {
+ name: "QQuickPlatformColorDialog"
+ defaultProperty: "data"
+ prototype: "QQuickPlatformDialog"
+ exports: ["Qt.labs.platform/ColorDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "currentColor"; type: "QColor" }
+ Property { name: "options"; type: "QColorDialogOptions::ColorDialogOptions" }
+ }
+ Component {
+ name: "QQuickPlatformDialog"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/Dialog 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "StandardCode"
+ values: {
+ "Rejected": 0,
+ "Accepted": 1
+ }
+ }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "parentWindow"; type: "QWindow"; isPointer: true }
+ Property { name: "title"; type: "string" }
+ Property { name: "flags"; type: "Qt::WindowFlags" }
+ Property { name: "modality"; type: "Qt::WindowModality" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "result"; type: "int" }
+ Signal { name: "accepted" }
+ Signal { name: "rejected" }
+ Method { name: "open" }
+ Method { name: "close" }
+ Method { name: "accept" }
+ Method { name: "reject" }
+ Method {
+ name: "done"
+ Parameter { name: "result"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickPlatformFileDialog"
+ defaultProperty: "data"
+ prototype: "QQuickPlatformDialog"
+ exports: ["Qt.labs.platform/FileDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "FileMode"
+ values: {
+ "OpenFile": 0,
+ "OpenFiles": 1,
+ "SaveFile": 2
+ }
+ }
+ Property { name: "fileMode"; type: "FileMode" }
+ Property { name: "file"; type: "QUrl" }
+ Property { name: "files"; type: "QList" }
+ Property { name: "currentFile"; type: "QUrl" }
+ Property { name: "currentFiles"; type: "QList" }
+ Property { name: "folder"; type: "QUrl" }
+ Property { name: "options"; type: "QFileDialogOptions::FileDialogOptions" }
+ Property { name: "nameFilters"; type: "QStringList" }
+ Property {
+ name: "selectedNameFilter"
+ type: "QQuickPlatformFileNameFilter"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "defaultSuffix"; type: "string" }
+ Property { name: "acceptLabel"; type: "string" }
+ Property { name: "rejectLabel"; type: "string" }
+ }
+ Component {
+ name: "QQuickPlatformFileNameFilter"
+ prototype: "QObject"
+ Property { name: "index"; type: "int" }
+ Property { name: "name"; type: "string"; isReadonly: true }
+ Property { name: "extensions"; type: "QStringList"; isReadonly: true }
+ Signal {
+ name: "indexChanged"
+ Parameter { name: "index"; type: "int" }
+ }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "name"; type: "string" }
+ }
+ Signal {
+ name: "extensionsChanged"
+ Parameter { name: "extensions"; type: "QStringList" }
+ }
+ }
+ Component {
+ name: "QQuickPlatformFolderDialog"
+ defaultProperty: "data"
+ prototype: "QQuickPlatformDialog"
+ exports: ["Qt.labs.platform/FolderDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "folder"; type: "QUrl" }
+ Property { name: "currentFolder"; type: "QUrl" }
+ Property { name: "options"; type: "QFileDialogOptions::FileDialogOptions" }
+ Property { name: "acceptLabel"; type: "string" }
+ Property { name: "rejectLabel"; type: "string" }
+ }
+ Component {
+ name: "QQuickPlatformFontDialog"
+ defaultProperty: "data"
+ prototype: "QQuickPlatformDialog"
+ exports: ["Qt.labs.platform/FontDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "font"; type: "QFont" }
+ Property { name: "currentFont"; type: "QFont" }
+ Property { name: "options"; type: "QFontDialogOptions::FontDialogOptions" }
+ }
+ Component {
+ name: "QQuickPlatformIcon"
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "name"; type: "string" }
+ Property { name: "mask"; type: "bool" }
+ }
+ Component {
+ name: "QQuickPlatformMenu"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/Menu 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "items"; type: "QQuickPlatformMenuItem"; isList: true; isReadonly: true }
+ Property { name: "menuBar"; type: "QQuickPlatformMenuBar"; isReadonly: true; isPointer: true }
+ Property { name: "parentMenu"; type: "QQuickPlatformMenu"; isReadonly: true; isPointer: true }
+ Property {
+ name: "systemTrayIcon"
+ type: "QQuickPlatformSystemTrayIcon"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "menuItem"; type: "QQuickPlatformMenuItem"; isReadonly: true; isPointer: true }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "minimumWidth"; type: "int" }
+ Property { name: "type"; type: "QPlatformMenu::MenuType" }
+ Property { name: "title"; type: "string" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "icon"; revision: 1; type: "QQuickPlatformIcon" }
+ Signal { name: "aboutToShow" }
+ Signal { name: "aboutToHide" }
+ Signal { name: "iconChanged"; revision: 1 }
+ Method {
+ name: "open"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "close" }
+ Method {
+ name: "addItem"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method {
+ name: "insertItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method {
+ name: "removeItem"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method {
+ name: "addMenu"
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method {
+ name: "insertMenu"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method {
+ name: "removeMenu"
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method { name: "clear" }
+ }
+ Component {
+ name: "QQuickPlatformMenuBar"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/MenuBar 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "menus"; type: "QQuickPlatformMenu"; isList: true; isReadonly: true }
+ Property { name: "window"; type: "QWindow"; isPointer: true }
+ Method {
+ name: "addMenu"
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method {
+ name: "insertMenu"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method {
+ name: "removeMenu"
+ Parameter { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ }
+ Method { name: "clear" }
+ }
+ Component {
+ name: "QQuickPlatformMenuItem"
+ prototype: "QObject"
+ exports: [
+ "Qt.labs.platform/MenuItem 1.0",
+ "Qt.labs.platform/MenuItem 1.1"
+ ]
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "menu"; type: "QQuickPlatformMenu"; isReadonly: true; isPointer: true }
+ Property { name: "subMenu"; type: "QQuickPlatformMenu"; isReadonly: true; isPointer: true }
+ Property { name: "group"; type: "QQuickPlatformMenuItemGroup"; isPointer: true }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "separator"; type: "bool" }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "role"; type: "QPlatformMenuItem::MenuRole" }
+ Property { name: "text"; type: "string" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "shortcut"; type: "QVariant" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "icon"; revision: 1; type: "QQuickPlatformIcon" }
+ Signal { name: "triggered" }
+ Signal { name: "hovered" }
+ Signal { name: "iconChanged"; revision: 1 }
+ Method { name: "toggle" }
+ }
+ Component {
+ name: "QQuickPlatformMenuItemGroup"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/MenuItemGroup 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "exclusive"; type: "bool" }
+ Property { name: "checkedItem"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ Property { name: "items"; type: "QQuickPlatformMenuItem"; isList: true; isReadonly: true }
+ Signal {
+ name: "triggered"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Signal {
+ name: "hovered"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method {
+ name: "addItem"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method {
+ name: "removeItem"
+ Parameter { name: "item"; type: "QQuickPlatformMenuItem"; isPointer: true }
+ }
+ Method { name: "clear" }
+ }
+ Component {
+ name: "QQuickPlatformMenuSeparator"
+ prototype: "QQuickPlatformMenuItem"
+ exports: ["Qt.labs.platform/MenuSeparator 1.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickPlatformMessageDialog"
+ defaultProperty: "data"
+ prototype: "QQuickPlatformDialog"
+ exports: ["Qt.labs.platform/MessageDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "text"; type: "string" }
+ Property { name: "informativeText"; type: "string" }
+ Property { name: "detailedText"; type: "string" }
+ Property { name: "buttons"; type: "QPlatformDialogHelper::StandardButtons" }
+ Signal {
+ name: "clicked"
+ Parameter { name: "button"; type: "QPlatformDialogHelper::StandardButton" }
+ }
+ Signal { name: "okClicked" }
+ Signal { name: "saveClicked" }
+ Signal { name: "saveAllClicked" }
+ Signal { name: "openClicked" }
+ Signal { name: "yesClicked" }
+ Signal { name: "yesToAllClicked" }
+ Signal { name: "noClicked" }
+ Signal { name: "noToAllClicked" }
+ Signal { name: "abortClicked" }
+ Signal { name: "retryClicked" }
+ Signal { name: "ignoreClicked" }
+ Signal { name: "closeClicked" }
+ Signal { name: "cancelClicked" }
+ Signal { name: "discardClicked" }
+ Signal { name: "helpClicked" }
+ Signal { name: "applyClicked" }
+ Signal { name: "resetClicked" }
+ Signal { name: "restoreDefaultsClicked" }
+ }
+ Component {
+ name: "QQuickPlatformStandardPaths"
+ prototype: "QObject"
+ exports: ["Qt.labs.platform/StandardPaths 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Method {
+ name: "displayName"
+ type: "string"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ }
+ Method {
+ name: "findExecutable"
+ type: "QUrl"
+ Parameter { name: "executableName"; type: "string" }
+ Parameter { name: "paths"; type: "QStringList" }
+ }
+ Method {
+ name: "findExecutable"
+ type: "QUrl"
+ Parameter { name: "executableName"; type: "string" }
+ }
+ Method {
+ name: "locate"
+ type: "QUrl"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ Parameter { name: "fileName"; type: "string" }
+ Parameter { name: "options"; type: "QStandardPaths::LocateOptions" }
+ }
+ Method {
+ name: "locate"
+ type: "QUrl"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ Parameter { name: "fileName"; type: "string" }
+ }
+ Method {
+ name: "locateAll"
+ type: "QList"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ Parameter { name: "fileName"; type: "string" }
+ Parameter { name: "options"; type: "QStandardPaths::LocateOptions" }
+ }
+ Method {
+ name: "locateAll"
+ type: "QList"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ Parameter { name: "fileName"; type: "string" }
+ }
+ Method {
+ name: "setTestModeEnabled"
+ Parameter { name: "testMode"; type: "bool" }
+ }
+ Method {
+ name: "standardLocations"
+ type: "QList"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ }
+ Method {
+ name: "writableLocation"
+ type: "QUrl"
+ Parameter { name: "type"; type: "QStandardPaths::StandardLocation" }
+ }
+ }
+ Component {
+ name: "QQuickPlatformSystemTrayIcon"
+ prototype: "QObject"
+ exports: [
+ "Qt.labs.platform/SystemTrayIcon 1.0",
+ "Qt.labs.platform/SystemTrayIcon 1.1"
+ ]
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "available"; type: "bool"; isReadonly: true }
+ Property { name: "supportsMessages"; type: "bool"; isReadonly: true }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "menu"; type: "QQuickPlatformMenu"; isPointer: true }
+ Property { name: "geometry"; revision: 1; type: "QRect"; isReadonly: true }
+ Property { name: "icon"; revision: 1; type: "QQuickPlatformIcon" }
+ Signal {
+ name: "activated"
+ Parameter { name: "reason"; type: "QPlatformSystemTrayIcon::ActivationReason" }
+ }
+ Signal { name: "messageClicked" }
+ Signal { name: "geometryChanged"; revision: 1 }
+ Signal { name: "iconChanged"; revision: 1 }
+ Method { name: "show" }
+ Method { name: "hide" }
+ Method {
+ name: "showMessage"
+ Parameter { name: "title"; type: "string" }
+ Parameter { name: "message"; type: "string" }
+ Parameter { name: "iconType"; type: "QPlatformSystemTrayIcon::MessageIcon" }
+ Parameter { name: "msecs"; type: "int" }
+ }
+ Method {
+ name: "showMessage"
+ Parameter { name: "title"; type: "string" }
+ Parameter { name: "message"; type: "string" }
+ Parameter { name: "iconType"; type: "QPlatformSystemTrayIcon::MessageIcon" }
+ }
+ Method {
+ name: "showMessage"
+ Parameter { name: "title"; type: "string" }
+ Parameter { name: "message"; type: "string" }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qmldir
new file mode 100644
index 00000000..9653b7d3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qmldir
@@ -0,0 +1,3 @@
+module Qt.labs.platform
+plugin qtlabsplatformplugin
+classname QtLabsPlatformPlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qtlabsplatformplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qtlabsplatformplugin.dll
new file mode 100644
index 00000000..30c8494e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/platform/qtlabsplatformplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/labsmodelsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/labsmodelsplugin.dll
new file mode 100644
index 00000000..fb47a57e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/labsmodelsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/plugins.qmltypes
new file mode 100644
index 00000000..56f2f213
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/plugins.qmltypes
@@ -0,0 +1,410 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: [
+ "NoLayoutChangeHint",
+ "VerticalSortHint",
+ "HorizontalSortHint"
+ ]
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: [
+ "NoOption",
+ "IndexIsValid",
+ "DoNotUseParent",
+ "ParentIsInvalid"
+ ]
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method { name: "resetInternalData" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractTableModel"; prototype: "QAbstractItemModel" }
+ Component {
+ file: "qqmldelegatecomponent_p.h"
+ name: "QQmlDelegateChoice"
+ defaultProperty: "delegate"
+ prototype: "QObject"
+ exports: ["Qt.labs.qmlmodels/DelegateChoice 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "roleValue"; type: "QVariant" }
+ Property { name: "row"; type: "int" }
+ Property { name: "index"; type: "int" }
+ Property { name: "column"; type: "int" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Signal { name: "changed" }
+ }
+ Component {
+ file: "qqmldelegatecomponent_p.h"
+ name: "QQmlDelegateChooser"
+ defaultProperty: "choices"
+ prototype: "QQmlAbstractDelegateComponent"
+ exports: ["Qt.labs.qmlmodels/DelegateChooser 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "role"; type: "string" }
+ Property { name: "choices"; type: "QQmlDelegateChoice"; isList: true; isReadonly: true }
+ }
+ Component {
+ file: "qqmltablemodel_p.h"
+ name: "QQmlTableModel"
+ defaultProperty: "columns"
+ prototype: "QAbstractTableModel"
+ exports: ["Qt.labs.qmlmodels/TableModel 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "columnCount"; type: "int"; isReadonly: true }
+ Property { name: "rowCount"; type: "int"; isReadonly: true }
+ Property { name: "rows"; type: "QVariant" }
+ Property { name: "columns"; type: "QQmlTableModelColumn"; isList: true; isReadonly: true }
+ Method {
+ name: "appendRow"
+ Parameter { name: "row"; type: "QVariant" }
+ }
+ Method { name: "clear" }
+ Method {
+ name: "getRow"
+ type: "QVariant"
+ Parameter { name: "rowIndex"; type: "int" }
+ }
+ Method {
+ name: "insertRow"
+ Parameter { name: "rowIndex"; type: "int" }
+ Parameter { name: "row"; type: "QVariant" }
+ }
+ Method {
+ name: "moveRow"
+ Parameter { name: "fromRowIndex"; type: "int" }
+ Parameter { name: "toRowIndex"; type: "int" }
+ Parameter { name: "rows"; type: "int" }
+ }
+ Method {
+ name: "moveRow"
+ Parameter { name: "fromRowIndex"; type: "int" }
+ Parameter { name: "toRowIndex"; type: "int" }
+ }
+ Method {
+ name: "removeRow"
+ Parameter { name: "rowIndex"; type: "int" }
+ Parameter { name: "rows"; type: "int" }
+ }
+ Method {
+ name: "removeRow"
+ Parameter { name: "rowIndex"; type: "int" }
+ }
+ Method {
+ name: "setRow"
+ Parameter { name: "rowIndex"; type: "int" }
+ Parameter { name: "row"; type: "QVariant" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "string" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component {
+ file: "qqmltablemodelcolumn_p.h"
+ name: "QQmlTableModelColumn"
+ prototype: "QObject"
+ exports: ["Qt.labs.qmlmodels/TableModelColumn 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "display"; type: "QJSValue" }
+ Property { name: "setDisplay"; type: "QJSValue" }
+ Property { name: "decoration"; type: "QJSValue" }
+ Property { name: "setDecoration"; type: "QJSValue" }
+ Property { name: "edit"; type: "QJSValue" }
+ Property { name: "setEdit"; type: "QJSValue" }
+ Property { name: "toolTip"; type: "QJSValue" }
+ Property { name: "setToolTip"; type: "QJSValue" }
+ Property { name: "statusTip"; type: "QJSValue" }
+ Property { name: "setStatusTip"; type: "QJSValue" }
+ Property { name: "whatsThis"; type: "QJSValue" }
+ Property { name: "setWhatsThis"; type: "QJSValue" }
+ Property { name: "font"; type: "QJSValue" }
+ Property { name: "setFont"; type: "QJSValue" }
+ Property { name: "textAlignment"; type: "QJSValue" }
+ Property { name: "setTextAlignment"; type: "QJSValue" }
+ Property { name: "background"; type: "QJSValue" }
+ Property { name: "setBackground"; type: "QJSValue" }
+ Property { name: "foreground"; type: "QJSValue" }
+ Property { name: "setForeground"; type: "QJSValue" }
+ Property { name: "checkState"; type: "QJSValue" }
+ Property { name: "setCheckState"; type: "QJSValue" }
+ Property { name: "accessibleText"; type: "QJSValue" }
+ Property { name: "setAccessibleText"; type: "QJSValue" }
+ Property { name: "accessibleDescription"; type: "QJSValue" }
+ Property { name: "setAccessibleDescription"; type: "QJSValue" }
+ Property { name: "sizeHint"; type: "QJSValue" }
+ Property { name: "setSizeHint"; type: "QJSValue" }
+ Signal { name: "indexChanged" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/qmldir
new file mode 100644
index 00000000..9c735711
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/qmlmodels/qmldir
@@ -0,0 +1,3 @@
+module Qt.labs.qmlmodels
+plugin labsmodelsplugin
+classname QtQmlLabsModelsPlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/plugins.qmltypes
new file mode 100644
index 00000000..085f0b84
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/plugins.qmltypes
@@ -0,0 +1,37 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ file: "qqmlsettings_p.h"
+ name: "QQmlSettings"
+ prototype: "QObject"
+ exports: ["Qt.labs.settings/Settings 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "category"; type: "string" }
+ Property { name: "fileName"; type: "string" }
+ Method { name: "_q_propertyChanged" }
+ Method {
+ name: "value"
+ type: "QVariant"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "defaultValue"; type: "QVariant" }
+ }
+ Method {
+ name: "value"
+ type: "QVariant"
+ Parameter { name: "key"; type: "string" }
+ }
+ Method {
+ name: "setValue"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method { name: "sync" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmldir
new file mode 100644
index 00000000..93d8e671
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmldir
@@ -0,0 +1,4 @@
+module Qt.labs.settings
+plugin qmlsettingsplugin
+classname QmlSettingsPlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmlsettingsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmlsettingsplugin.dll
new file mode 100644
index 00000000..fa602ab0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/settings/qmlsettingsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/plugins.qmltypes
new file mode 100644
index 00000000..f4710cdd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/plugins.qmltypes
@@ -0,0 +1,10 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/qmldir
new file mode 100644
index 00000000..079399dc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/qmldir
@@ -0,0 +1,3 @@
+module Qt.labs.sharedimage
+plugin sharedimageplugin
+classname QtQuickSharedImagePlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/sharedimageplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/sharedimageplugin.dll
new file mode 100644
index 00000000..c34fcb5a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/sharedimage/sharedimageplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/plugins.qmltypes
new file mode 100644
index 00000000..d139ca95
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/plugins.qmltypes
@@ -0,0 +1,38 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ file: "qwavefrontmesh.h"
+ name: "QWavefrontMesh"
+ prototype: "QQuickShaderEffectMesh"
+ exports: ["Qt.labs.wavefrontmesh/WavefrontMesh 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Error"
+ values: [
+ "NoError",
+ "InvalidSourceError",
+ "UnsupportedFaceShapeError",
+ "UnsupportedIndexSizeError",
+ "FileNotFoundError",
+ "NoAttributesError",
+ "MissingPositionAttributeError",
+ "MissingTextureCoordinateAttributeError",
+ "MissingPositionAndTextureCoordinateAttributesError",
+ "TooManyAttributesError",
+ "InvalidPlaneDefinitionError"
+ ]
+ }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "lastError"; type: "Error"; isReadonly: true }
+ Property { name: "projectionPlaneV"; type: "QVector3D" }
+ Property { name: "projectionPlaneW"; type: "QVector3D" }
+ Method { name: "readData" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmldir
new file mode 100644
index 00000000..fed15dd0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmldir
@@ -0,0 +1,4 @@
+module Qt.labs.wavefrontmesh
+plugin qmlwavefrontmeshplugin
+classname QmlWavefrontMeshPlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmlwavefrontmeshplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmlwavefrontmeshplugin.dll
new file mode 100644
index 00000000..083f5e46
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/labs/wavefrontmesh/qmlwavefrontmeshplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/plugins.qmltypes
new file mode 100644
index 00000000..384cffe2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/plugins.qmltypes
@@ -0,0 +1,23 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ file: "private/quicktest_p.h"
+ name: "QTestRootObject"
+ prototype: "QObject"
+ exports: ["Qt.test.qtestroot/QTestRootObject 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Property { name: "windowShown"; type: "bool"; isReadonly: true }
+ Property { name: "hasTestCase"; type: "bool" }
+ Property { name: "defined"; type: "QObject"; isReadonly: true; isPointer: true }
+ Method { name: "quit" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/qmldir
new file mode 100644
index 00000000..5e9d5e2c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/Qt/test/qtestroot/qmldir
@@ -0,0 +1,2 @@
+module Qt.test.qtestroot
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/declarative_bluetooth.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/declarative_bluetooth.dll
new file mode 100644
index 00000000..160c2b17
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/declarative_bluetooth.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/plugins.qmltypes
new file mode 100644
index 00000000..2aac2df5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/plugins.qmltypes
@@ -0,0 +1,409 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtBluetooth 5.15'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QDeclarativeBluetoothDiscoveryModel"
+ prototype: "QAbstractListModel"
+ exports: [
+ "QtBluetooth/BluetoothDiscoveryModel 5.0",
+ "QtBluetooth/BluetoothDiscoveryModel 5.2"
+ ]
+ exportMetaObjectRevisions: [0, 0]
+ Enum {
+ name: "DiscoveryMode"
+ values: {
+ "MinimalServiceDiscovery": 0,
+ "FullServiceDiscovery": 1,
+ "DeviceDiscovery": 2
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "InputOutputError": 1,
+ "PoweredOffError": 2,
+ "UnknownError": 3,
+ "InvalidBluetoothAdapterError": 4
+ }
+ }
+ Property { name: "error"; type: "Error"; isReadonly: true }
+ Property { name: "discoveryMode"; type: "DiscoveryMode" }
+ Property { name: "running"; type: "bool" }
+ Property { name: "uuidFilter"; type: "string" }
+ Property { name: "remoteAddress"; type: "string" }
+ Signal {
+ name: "serviceDiscovered"
+ Parameter { name: "service"; type: "QDeclarativeBluetoothService"; isPointer: true }
+ }
+ Signal {
+ name: "deviceDiscovered"
+ Parameter { name: "device"; type: "string" }
+ }
+ }
+ Component {
+ name: "QDeclarativeBluetoothService"
+ prototype: "QObject"
+ exports: [
+ "QtBluetooth/BluetoothService 5.0",
+ "QtBluetooth/BluetoothService 5.2"
+ ]
+ exportMetaObjectRevisions: [0, 0]
+ Enum {
+ name: "Protocol"
+ values: {
+ "RfcommProtocol": 2,
+ "L2CapProtocol": 1,
+ "UnknownProtocol": 0
+ }
+ }
+ Property { name: "deviceName"; type: "string"; isReadonly: true }
+ Property { name: "deviceAddress"; type: "string" }
+ Property { name: "serviceName"; type: "string" }
+ Property { name: "serviceDescription"; type: "string" }
+ Property { name: "serviceUuid"; type: "string" }
+ Property { name: "serviceProtocol"; type: "Protocol" }
+ Property { name: "registered"; type: "bool" }
+ Signal { name: "detailsChanged" }
+ Signal { name: "newClient" }
+ Method { name: "nextClient"; type: "QDeclarativeBluetoothSocket*" }
+ Method {
+ name: "assignNextClient"
+ Parameter { name: "dbs"; type: "QDeclarativeBluetoothSocket"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativeBluetoothSocket"
+ prototype: "QObject"
+ exports: [
+ "QtBluetooth/BluetoothSocket 5.0",
+ "QtBluetooth/BluetoothSocket 5.2"
+ ]
+ exportMetaObjectRevisions: [0, 0]
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": -2,
+ "UnknownSocketError": -1,
+ "RemoteHostClosedError": 1,
+ "HostNotFoundError": 2,
+ "ServiceNotFoundError": 9,
+ "NetworkError": 7,
+ "UnsupportedProtocolError": 8
+ }
+ }
+ Enum {
+ name: "SocketState"
+ values: {
+ "Unconnected": 0,
+ "ServiceLookup": 1,
+ "Connecting": 2,
+ "Connected": 3,
+ "Bound": 4,
+ "Closing": 6,
+ "Listening": 5,
+ "NoServiceSet": 100
+ }
+ }
+ Property { name: "service"; type: "QDeclarativeBluetoothService"; isPointer: true }
+ Property { name: "connected"; type: "bool" }
+ Property { name: "error"; type: "Error"; isReadonly: true }
+ Property { name: "socketState"; type: "SocketState"; isReadonly: true }
+ Property { name: "stringData"; type: "string" }
+ Signal { name: "stateChanged" }
+ Signal { name: "dataAvailable" }
+ Method {
+ name: "setService"
+ Parameter { name: "service"; type: "QDeclarativeBluetoothService"; isPointer: true }
+ }
+ Method {
+ name: "setConnected"
+ Parameter { name: "connected"; type: "bool" }
+ }
+ Method {
+ name: "sendStringData"
+ Parameter { name: "data"; type: "string" }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/qmldir
new file mode 100644
index 00000000..2f5b2fac
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtBluetooth/qmldir
@@ -0,0 +1,4 @@
+module QtBluetooth
+plugin declarative_bluetooth
+classname QBluetoothQmlPlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Blend.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Blend.qml
new file mode 100644
index 00000000..e5f4816a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Blend.qml
@@ -0,0 +1,486 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype Blend
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-blend
+ \brief Merges two source items by using a blend mode.
+
+ Blend mode can be selected with the \l{Blend::mode}{mode} property.
+
+ \table
+ \header
+ \li source
+ \li foregroundSource
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image Original_butterfly.png
+ \li \image Blend_bug_and_butterfly.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet Blend-example.qml example
+
+*/
+
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be the base when
+ \l{Blend::foregroundSource}{foregroundSource} is blended over it.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the item that is going to be blended over the
+ \l{Blend::source}{source}.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting foregroundSource to the effect's parent.
+ */
+ property variant foregroundSource
+
+ /*!
+ This property defines the mode which is used when foregroundSource is
+ blended over source. Values are case insensitive.
+
+ \table
+ \header
+ \li mode
+ \li description
+ \row
+ \li normal
+ \li The pixel component values from foregroundSource are written
+ over source by using alpha blending.
+ \row
+ \li addition
+ \li The pixel component values from source and foregroundSource are
+ added together and written.
+ \row
+ \li average
+ \li The pixel component values from source and foregroundSource are
+ averaged and written.
+ \row
+ \li color
+ \li The lightness value from source is combined with hue and
+ saturation from foregroundSource and written.
+ \row
+ \li colorBurn
+ \li The darker pixels from source are darkened more, if both source
+ and foregroundSource pixels are light the result is light.
+ \row
+ \li colorDodge
+ \li The lighter pixels from source are lightened more, if both
+ source and foregroundSource pixels are dark the result is dark.
+ \row
+ \li darken
+ \li The darker pixel component value from source and
+ foregroundSource is written.
+ \row
+ \li darkerColor
+ \li The lower luminance pixel rgb-value from source and
+ foregroundSource is written.
+ \row
+ \li difference
+ \li The absolute pixel component value difference between source and
+ foregroundSource is written.
+ \row
+ \li divide
+ \li The pixel component values from source is divided by the value
+ from foregroundSource and written.
+ \row
+ \li exclusion
+ \li The pixel component value difference with reduced contrast
+ between source and foregroundSource is written.
+ \row
+ \li hardLight
+ \li The pixel component values from source are lightened or darkened
+ according to foregroundSource values and written.
+ \row
+ \li hue
+ \li The hue value from foregroundSource is combined with saturation
+ and lightness from source and written.
+ \row
+ \li lighten
+ \li The lightest pixel component value from source and
+ foregroundSource is written.
+ \row
+ \li lighterColor
+ \li The higher luminance pixel rgb-value from source and
+ foregroundSource is written.
+ \row
+ \li lightness
+ \li The lightness value from foregroundSource is combined with hue
+ and saturation from source and written.
+ \row
+ \li multiply
+ \li The pixel component values from source and foregroundSource are
+ multiplied together and written.
+ \row
+ \li negation
+ \li The inverted absolute pixel component value difference between
+ source and foregroundSource is written.
+ \row
+ \li saturation
+ \li The saturation value from foregroundSource is combined with hue
+ and lightness from source and written.
+ \row
+ \li screen
+ \li The pixel values from source and foregroundSource are negated,
+ then multiplied, negated again, and written.
+ \row
+ \li subtract
+ \li Pixel value from foregroundSource is subracted from source and
+ written.
+ \row
+ \li softLight
+ \li The pixel component values from source are lightened or darkened
+ slightly according to foregroundSource values and written.
+
+ \endtable
+
+ \table
+ \header
+ \li Example source
+ \li Example foregroundSource
+ \row
+ \li \image Original_bug.png
+ \li \image Original_butterfly.png
+ \endtable
+
+ \table
+ \header
+ \li Output examples with different mode values
+ \li
+ \li
+ \row
+ \li \image Blend_mode1.png
+ \li \image Blend_mode2.png
+ \li \image Blend_mode3.png
+ \row
+ \li \b { mode: normal }
+ \li \b { mode: addition }
+ \li \b { mode: average }
+ \row
+ \li \image Blend_mode4.png
+ \li \image Blend_mode5.png
+ \li \image Blend_mode6.png
+ \row
+ \li \b { mode: color }
+ \li \b { mode: colorBurn }
+ \li \b { mode: colorDodge }
+ \row
+ \li \image Blend_mode7.png
+ \li \image Blend_mode8.png
+ \li \image Blend_mode9.png
+ \row
+ \li \b { mode: darken }
+ \li \b { mode: darkerColor }
+ \li \b { mode: difference }
+ \row
+ \li \image Blend_mode10.png
+ \li \image Blend_mode11.png
+ \li \image Blend_mode12.png
+ \row
+ \li \b { mode: divide }
+ \li \b { mode: exclusion }
+ \li \b { mode: hardlight }
+ \row
+ \li \image Blend_mode13.png
+ \li \image Blend_mode14.png
+ \li \image Blend_mode15.png
+ \row
+ \li \b { mode: hue }
+ \li \b { mode: lighten }
+ \li \b { mode: lighterColor }
+ \row
+ \li \image Blend_mode16.png
+ \li \image Blend_mode17.png
+ \li \image Blend_mode18.png
+ \row
+ \li \b { mode: lightness }
+ \li \b { mode: negation }
+ \li \b { mode: multiply }
+ \row
+ \li \image Blend_mode19.png
+ \li \image Blend_mode20.png
+ \li \image Blend_mode21.png
+ \row
+ \li \b { mode: saturation }
+ \li \b { mode: screen }
+ \li \b { mode: subtract }
+ \row
+ \li \image Blend_mode22.png
+ \row
+ \li \b { mode: softLight }
+ \endtable
+ */
+ property string mode: "normal"
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in the
+ cache must be updated. Memory consumption is increased, because an extra
+ buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: backgroundSourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: foregroundSourceProxy
+ input: rootItem.foregroundSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant backgroundSource: backgroundSourceProxy.output
+ property variant foregroundSource: foregroundSourceProxy.output
+ property string mode: rootItem.mode
+ anchors.fill: parent
+
+ fragmentShader: fragmentShaderBegin + blendModeNormal + fragmentShaderEnd
+
+ function buildFragmentShader() {
+ var shader = fragmentShaderBegin
+
+ switch (mode.toLowerCase()) {
+ case "addition" : shader += blendModeAddition; break;
+ case "average" : shader += blendModeAverage; break;
+ case "color" : shader += blendModeColor; break;
+ case "colorburn" : shader += blendModeColorBurn; break;
+ case "colordodge" : shader += blendModeColorDodge; break;
+ case "darken" : shader += blendModeDarken; break;
+ case "darkercolor" : shader += blendModeDarkerColor; break;
+ case "difference" : shader += blendModeDifference; break;
+ case "divide" : shader += blendModeDivide; break;
+ case "exclusion" : shader += blendModeExclusion; break;
+ case "hardlight" : shader += blendModeHardLight; break;
+ case "hue" : shader += blendModeHue; break;
+ case "lighten" : shader += blendModeLighten; break;
+ case "lightercolor" : shader += blendModeLighterColor; break;
+ case "lightness" : shader += blendModeLightness; break;
+ case "negation" : shader += blendModeNegation; break;
+ case "normal" : shader += blendModeNormal; break;
+ case "multiply" : shader += blendModeMultiply; break;
+ case "saturation" : shader += blendModeSaturation; break;
+ case "screen" : shader += blendModeScreen; break;
+ case "subtract" : shader += blendModeSubtract; break;
+ case "softlight" : shader += blendModeSoftLight; break;
+ default: shader += "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);"; break;
+ }
+
+ shader += fragmentShaderEnd
+ fragmentShader = shader
+
+ // Workaraound for a bug just to make sure display gets updated when the mode changes.
+ backgroundSourceChanged()
+ }
+
+ Component.onCompleted: {
+ buildFragmentShader()
+ }
+
+ onModeChanged: {
+ buildFragmentShader()
+ }
+
+ property string blendModeAddition: "result.rgb = min(rgb1 + rgb2, 1.0);"
+ property string blendModeAverage: "result.rgb = 0.5 * (rgb1 + rgb2);"
+ property string blendModeColor: "result.rgb = HSLtoRGB(vec3(RGBtoHSL(rgb2).xy, RGBtoL(rgb1)));"
+ property string blendModeColorBurn: "result.rgb = clamp(1.0 - ((1.0 - rgb1) / max(vec3(1.0 / 256.0), rgb2)), vec3(0.0), vec3(1.0));"
+ property string blendModeColorDodge: "result.rgb = clamp(rgb1 / max(vec3(1.0 / 256.0), (1.0 - rgb2)), vec3(0.0), vec3(1.0));"
+ property string blendModeDarken: "result.rgb = min(rgb1, rgb2);"
+ property string blendModeDarkerColor: "result.rgb = 0.3 * rgb1.r + 0.59 * rgb1.g + 0.11 * rgb1.b > 0.3 * rgb2.r + 0.59 * rgb2.g + 0.11 * rgb2.b ? rgb2 : rgb1;"
+ property string blendModeDifference: "result.rgb = abs(rgb1 - rgb2);"
+ property string blendModeDivide: "result.rgb = clamp(rgb1 / rgb2, 0.0, 1.0);"
+ property string blendModeExclusion: "result.rgb = rgb1 + rgb2 - 2.0 * rgb1 * rgb2;"
+ property string blendModeHardLight: "result.rgb = vec3(channelBlendHardLight(rgb1.r, rgb2.r), channelBlendHardLight(rgb1.g, rgb2.g), channelBlendHardLight(rgb1.b, rgb2.b));"
+ property string blendModeHue: "result.rgb = HSLtoRGB(vec3(RGBtoHSL(rgb2).x, RGBtoHSL(rgb1).yz));"
+ property string blendModeLighten: "result.rgb = max(rgb1, rgb2);"
+ property string blendModeLighterColor: "result.rgb = 0.3 * rgb1.r + 0.59 * rgb1.g + 0.11 * rgb1.b > 0.3 * rgb2.r + 0.59 * rgb2.g + 0.11 * rgb2.b ? rgb1 : rgb2;"
+ property string blendModeLightness: "result.rgb = HSLtoRGB(vec3(RGBtoHSL(rgb1).xy, RGBtoL(rgb2)));"
+ property string blendModeMultiply: "result.rgb = rgb1 * rgb2;"
+ property string blendModeNegation: "result.rgb = 1.0 - abs(1.0 - rgb1 - rgb2);"
+ property string blendModeNormal: "result.rgb = rgb2; a = max(color1.a, color2.a);"
+ property string blendModeSaturation: "lowp vec3 hsl1 = RGBtoHSL(rgb1); result.rgb = HSLtoRGB(vec3(hsl1.x, RGBtoHSL(rgb2).y, hsl1.z));"
+ property string blendModeScreen: "result.rgb = 1.0 - (vec3(1.0) - rgb1) * (vec3(1.0) - rgb2);"
+ property string blendModeSubtract: "result.rgb = max(rgb1 - rgb2, vec3(0.0));"
+ property string blendModeSoftLight: "result.rgb = rgb1 * ((1.0 - rgb1) * rgb2 + (1.0 - (1.0 - rgb1) * (1.0 - rgb2)));"
+
+ property string fragmentCoreShaderWorkaround: (GraphicsInfo.profile === GraphicsInfo.OpenGLCoreProfile ? "#version 150 core
+ #define varying in
+ #define texture2D texture
+ out vec4 fragColor;
+ #define gl_FragColor fragColor
+ " : "")
+
+ property string fragmentShaderBegin: fragmentCoreShaderWorkaround + "
+ varying mediump vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D backgroundSource;
+ uniform lowp sampler2D foregroundSource;
+
+ highp float RGBtoL(highp vec3 color) {
+ highp float cmin = min(color.r, min(color.g, color.b));
+ highp float cmax = max(color.r, max(color.g, color.b));
+ highp float l = (cmin + cmax) / 2.0;
+ return l;
+ }
+
+ highp vec3 RGBtoHSL(highp vec3 color) {
+ highp float cmin = min(color.r, min(color.g, color.b));
+ highp float cmax = max(color.r, max(color.g, color.b));
+ highp float h = 0.0;
+ highp float s = 0.0;
+ highp float l = (cmin + cmax) / 2.0;
+ highp float diff = cmax - cmin;
+
+ if (diff > 1.0 / 256.0) {
+ if (l < 0.5)
+ s = diff / (cmin + cmax);
+ else
+ s = diff / (2.0 - (cmin + cmax));
+
+ if (color.r == cmax)
+ h = (color.g - color.b) / diff;
+ else if (color.g == cmax)
+ h = 2.0 + (color.b - color.r) / diff;
+ else
+ h = 4.0 + (color.r - color.g) / diff;
+
+ h /= 6.0;
+ }
+ return vec3(h, s, l);
+ }
+
+ highp float hueToIntensity(highp float v1, highp float v2, highp float h) {
+ h = fract(h);
+ if (h < 1.0 / 6.0)
+ return v1 + (v2 - v1) * 6.0 * h;
+ else if (h < 1.0 / 2.0)
+ return v2;
+ else if (h < 2.0 / 3.0)
+ return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
+
+ return v1;
+ }
+
+ highp vec3 HSLtoRGB(highp vec3 color) {
+ highp float h = color.x;
+ highp float l = color.z;
+ highp float s = color.y;
+
+ if (s < 1.0 / 256.0)
+ return vec3(l, l, l);
+
+ highp float v1;
+ highp float v2;
+ if (l < 0.5)
+ v2 = l * (1.0 + s);
+ else
+ v2 = (l + s) - (s * l);
+
+ v1 = 2.0 * l - v2;
+
+ highp float d = 1.0 / 3.0;
+ highp float r = hueToIntensity(v1, v2, h + d);
+ highp float g = hueToIntensity(v1, v2, h);
+ highp float b = hueToIntensity(v1, v2, h - d);
+ return vec3(r, g, b);
+ }
+
+ lowp float channelBlendHardLight(lowp float c1, lowp float c2) {
+ return c2 > 0.5 ? (1.0 - (1.0 - 2.0 * (c2 - 0.5)) * (1.0 - c1)) : (2.0 * c1 * c2);
+ }
+
+ void main() {
+ lowp vec4 result = vec4(0.0);
+ lowp vec4 color1 = texture2D(backgroundSource, qt_TexCoord0);
+ lowp vec4 color2 = texture2D(foregroundSource, qt_TexCoord0);
+ lowp vec3 rgb1 = color1.rgb / max(1.0/256.0, color1.a);
+ lowp vec3 rgb2 = color2.rgb / max(1.0/256.0, color2.a);
+ highp float a = max(color1.a, color1.a * color2.a);
+ "
+
+ property string fragmentShaderEnd: "
+ gl_FragColor.rgb = mix(rgb1, result.rgb, color2.a);
+ gl_FragColor.rbg *= a;
+ gl_FragColor.a = a;
+ gl_FragColor *= qt_Opacity;
+ }
+ "
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/BrightnessContrast.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/BrightnessContrast.qml
new file mode 100644
index 00000000..85b38bb2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/BrightnessContrast.qml
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype BrightnessContrast
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Adjusts brightness and contrast.
+
+ This effect adjusts the source item colors.
+ Brightness adjustment changes the perceived luminance of the source item.
+ Contrast adjustment increases or decreases the color
+ and brightness variations.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image BrightnessContrast_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet BrightnessContrast-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels
+ for the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines how much the source brightness is increased or
+ decreased.
+
+ The value ranges from -1.0 to 1.0. By default, the property is set to \c
+ 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different brightness values
+ \li
+ \li
+ \row
+ \li \image BrightnessContrast_brightness1.png
+ \li \image BrightnessContrast_brightness2.png
+ \li \image BrightnessContrast_brightness3.png
+ \row
+ \li \b { brightness: -0.25 }
+ \li \b { brightness: 0 }
+ \li \b { brightness: 0.5 }
+ \row
+ \li \l contrast: 0
+ \li \l contrast: 0
+ \li \l contrast: 0
+ \endtable
+
+ */
+ property real brightness: 0.0
+
+ /*!
+ This property defines how much the source contrast is increased or
+ decreased. The decrease of the contrast is linear, but the increase is
+ applied with a non-linear curve to allow very high contrast adjustment at
+ the high end of the value range.
+
+ \table
+ \header
+ \li Contrast adjustment curve
+ \row
+ \li \image BrightnessContrast_contrast_graph.png
+ \endtable
+
+ The value ranges from -1.0 to 1.0. By default, the property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different contrast values
+ \li
+ \li
+ \row
+ \li \image BrightnessContrast_contrast1.png
+ \li \image BrightnessContrast_contrast2.png
+ \li \image BrightnessContrast_contrast3.png
+ \row
+ \li \b { contrast: -0.5 }
+ \li \b { contrast: 0 }
+ \li \b { contrast: 0.5 }
+ \row
+ \li \l brightness: 0
+ \li \l brightness: 0
+ \li \l brightness: 0
+ \endtable
+
+ */
+ property real contrast: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real brightness: rootItem.brightness
+ property real contrast: rootItem.contrast
+
+ anchors.fill: parent
+ blending: !rootItem.cached
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/brightnesscontrast.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ColorOverlay.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ColorOverlay.qml
new file mode 100644
index 00000000..f3485418
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ColorOverlay.qml
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype ColorOverlay
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Alters the colors of the source item by applying an overlay color.
+
+ The effect is similar to what happens when a colorized glass is put on top
+ of a grayscale image. The color for the overlay is given in the RGBA format.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_butterfly.png
+ \li \image ColorOverlay_butterfly.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet ColorOverlay-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels
+ for the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the RGBA color value which is used to colorize the
+ source.
+
+ By default, the property is set to \c "transparent".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image ColorOverlay_color1.png
+ \li \image ColorOverlay_color2.png
+ \li \image ColorOverlay_color3.png
+ \row
+ \li \b { color: #80ff0000 }
+ \li \b { color: #8000ff00 }
+ \li \b { color: #800000ff }
+ \endtable
+
+ */
+ property color color: "transparent"
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property color color: rootItem.color
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/coloroverlay.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Colorize.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Colorize.qml
new file mode 100644
index 00000000..42f17965
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Colorize.qml
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype Colorize
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Sets the color in the HSL color space.
+
+ The effect is similar to what happens when a colorized glass is put on top
+ of a grayscale image. Colorize uses the hue, saturation, and lightness (HSL)
+ color space. You can specify a desired value for each property. You can
+ shift all HSL values with the
+ \l{QtGraphicalEffects::HueSaturation}{HueSaturation} effect.
+
+ Alternatively, you can use the
+ \l{QtGraphicalEffects::ColorOverlay}{ColorOverlay} effect to colorize the
+ source item in the RGBA color space.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image Colorize_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet Colorize-example.qml example
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels
+ for the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the hue value which is used to colorize the
+ source.
+
+ The value ranges from 0.0 to 1.0. By default, the property is set to \c
+ 0.0, which produces a slightly red color.
+
+ \table
+ \header
+ \li Allowed hue values
+ \row
+ \li \image Colorize_hue_scale.png
+ \endtable
+
+ \table
+ \header
+ \li Output examples with different hue values
+ \li
+ \li
+ \row
+ \li \image Colorize_hue1.png
+ \li \image Colorize_hue2.png
+ \li \image Colorize_hue3.png
+ \row
+ \li \b { hue: 0.2 }
+ \li \b { hue: 0.5 }
+ \li \b { hue: 0.8 }
+ \row
+ \li \l saturation: 1
+ \li \l saturation: 1
+ \li \l saturation: 1
+ \row
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \endtable
+ */
+ property real hue: 0.0
+
+ /*!
+ This property defines the saturation value which is used to colorize the
+ source.
+
+ The value ranges from 0.0 (desaturated) to 1.0 (saturated). By default,
+ the property is set to \c 1.0 (saturated).
+
+ \table
+ \header
+ \li Output examples with different saturation values
+ \li
+ \li
+ \row
+ \li \image Colorize_saturation1.png
+ \li \image Colorize_saturation2.png
+ \li \image Colorize_saturation3.png
+ \row
+ \li \b { saturation: 0 }
+ \li \b { saturation: 0.5 }
+ \li \b { saturation: 1 }
+ \row
+ \li \l hue: 0
+ \li \l hue: 0
+ \li \l hue: 0
+ \row
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \endtable
+ */
+ property real saturation: 1.0
+
+ /*!
+ This property defines how much the source lightness value is increased
+ or decreased.
+
+ Unlike hue and saturation properties, lightness does not set the used
+ value, but it shifts the existing source pixel lightness value.
+
+ The value ranges from -1.0 (decreased) to 1.0 (increased). By default,
+ the property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different lightness values
+ \li
+ \li
+ \row
+ \li \image Colorize_lightness1.png
+ \li \image Colorize_lightness2.png
+ \li \image Colorize_lightness3.png
+ \row
+ \li \b { lightness: -0.75 }
+ \li \b { lightness: 0 }
+ \li \b { lightness: 0.75 }
+ \row
+ \li \l hue: 0
+ \li \l hue: 0
+ \li \l hue: 0
+ \row
+ \li \l saturation: 1
+ \li \l saturation: 1
+ \li \l saturation: 1
+ \endtable
+ */
+ property real lightness: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real hue: rootItem.hue
+ property real saturation: rootItem.saturation
+ property real lightness: rootItem.lightness
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/colorize.frag"
+
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ConicalGradient.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ConicalGradient.qml
new file mode 100644
index 00000000..c8d68b1b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ConicalGradient.qml
@@ -0,0 +1,333 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype ConicalGradient
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-gradient
+ \brief Draws a conical gradient.
+
+ A gradient is defined by two or more colors, which are blended seamlessly.
+ The colors start from the specified angle and end at 360 degrees larger
+ angle value.
+
+ \table
+ \header
+ \li Effect applied
+ \row
+ \li \image ConicalGradient.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet ConicalGradient-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ /*!
+ This property defines the starting angle where the color at the gradient
+ position of 0.0 is rendered. Colors at larger position values are
+ rendered into larger angle values and blended seamlessly. Angle values
+ increase clockwise.
+
+ \table
+ \header
+ \li Output examples with different angle values
+ \li
+ \li
+ \row
+ \li \image ConicalGradient_angle1.png
+ \li \image ConicalGradient_angle2.png
+ \li \image ConicalGradient_angle3.png
+ \row
+ \li \b { angle: 0 }
+ \li \b { angle: 45 }
+ \li \b { angle: 185 }
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+
+ */
+ property real angle: 0.0
+
+ /*!
+ \qmlproperty real QtGraphicalEffects::ConicalGradient::horizontalOffset
+ \qmlproperty real QtGraphicalEffects::ConicalGradient::verticalOffset
+
+ The horizontalOffset and verticalOffset properties define the offset in
+ pixels for the center point of the gradient compared to the item center.
+
+ The value ranges from -inf to inf. By default, the properties are set to \c
+ 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image ConicalGradient_horizontalOffset1.png
+ \li \image ConicalGradient_horizontalOffset2.png
+ \li \image ConicalGradient_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: -50 }
+ \li \b { horizontalOffset: 0 }
+ \li \b { horizontalOffset: 50 }
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \li \l angle: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+ */
+ property real horizontalOffset: 0.0
+ property real verticalOffset: 0.0
+
+ /*!
+ This property defines the item that is going to be filled with gradient.
+ Source item gets rendered into an intermediate pixel buffer and the
+ alpha values from the result are used to determine the gradient's pixels
+ visibility in the display. The default value for source is undefined and
+ in that case whole effect area is filled with gradient.
+
+ \table
+ \header
+ \li Output examples with different source values
+ \li
+ \row
+ \li \image ConicalGradient_maskSource1.png
+ \li \image ConicalGradient_maskSource2.png
+ \row
+ \li \b { source: undefined }
+ \li \b { source: }
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+/*!
+ A gradient is defined by two or more colors, which are blended seamlessly.
+ The colors are specified as a set of GradientStop child items, each of which
+ defines a position on the gradient (from 0.0 to 1.0), and a color.
+ The position of each GradientStop is defined by the position property.
+ The color is defined by the color property.
+
+ \table
+ \header
+ \li Output examples with different gradient values
+ \li
+ \li
+ \row
+ \li \image ConicalGradient_gradient1.png
+ \li \image ConicalGradient_gradient2.png
+ \li \image ConicalGradient_gradient3.png
+ \row
+ \li \b {gradient:} \code
+Gradient {
+ GradientStop {
+ position: 0.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+ GradientStop {
+ position: 0.167
+ color: Qt.rgba(1, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.333
+ color: Qt.rgba(0, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.500
+ color: Qt.rgba(0, 1, 1, 1)
+ }
+ GradientStop {
+ position: 0.667
+ color: Qt.rgba(0, 0, 1, 1)
+ }
+ GradientStop {
+ position: 0.833
+ color: Qt.rgba(1, 0, 1, 1)
+ }
+ GradientStop {
+ position: 1.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+}
+ \endcode
+ \li \b {gradient:} \code
+Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#F0F0F0"
+ }
+ GradientStop {
+ position: 0.5
+ color: "#000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#F0F0F0"
+ }
+}
+ \endcode
+ \li \b {gradient:} \code
+Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#00000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#FF000000"
+ }
+}
+ \endcode
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \li \l angle: 0
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+
+*/
+ property Gradient gradient: Gradient {
+ GradientStop { position: 0.0; color: "white" }
+ GradientStop { position: 1.0; color: "black" }
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.source
+ }
+
+ Rectangle {
+ id: gradientRect
+ width: 16
+ height: 256
+ gradient: rootItem.gradient
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ rotation: shaderItem.rotation
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant gradientSource: ShaderEffectSource {
+ sourceItem: gradientRect
+ smooth: true
+ hideSource: true
+ visible: false
+ }
+ property variant maskSource: maskSourceProxy.output
+ property real startAngle: (rootItem.angle - 90) * Math.PI/180
+ property variant center: Qt.point(0.5 + horizontalOffset / width, 0.5 + verticalOffset / height)
+
+ anchors.fill: parent
+
+ fragmentShader: maskSource == undefined ? noMaskShader : maskShader
+
+ onFragmentShaderChanged: startAngleChanged()
+
+ property string noMaskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/conicalgradient_nomask.frag"
+ property string maskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/conicalgradient_mask.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Desaturate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Desaturate.qml
new file mode 100644
index 00000000..e56de553
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Desaturate.qml
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype Desaturate
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Reduces the saturation of the colors.
+
+ Desaturated pixel values are calculated as averages of the original RGB
+ component values of the source item.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image Desaturate_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet Desaturate-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels to
+ the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines how much the source colors are desaturated.
+
+ The value ranges from 0.0 (no change) to 1.0 (desaturated). By default,
+ the property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different desaturation values
+ \li
+ \li
+ \row
+ \li \image Desaturate_desaturation1.png
+ \li \image Desaturate_desaturation2.png
+ \li \image Desaturate_desaturation3.png
+ \row
+ \li \b { desaturation: 0.0 }
+ \li \b { desaturation: 0.5 }
+ \li \b { desaturation: 1.0 }
+ \endtable
+ */
+ property real desaturation: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real desaturation: rootItem.desaturation
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/desaturate.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DirectionalBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DirectionalBlur.qml
new file mode 100644
index 00000000..42ea0781
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DirectionalBlur.qml
@@ -0,0 +1,293 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype DirectionalBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-motion-blur
+ \brief Applies blur effect to the specified direction.
+
+ Effect creates perceived impression that the source item appears to be
+ moving in the direction of the blur. Blur is applied to both sides of
+ each pixel, therefore setting the direction to 0 and 180 provides the
+ same result.
+
+ Other available motionblur effects are \l{QtGraphicalEffects::ZoomBlur}{ZoomBlur} and
+ \l{QtGraphicalEffects::RadialBlur}{RadialBlur}.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image DirectionalBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet DirectionalBlur-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the perceived amount of movement for each pixel.
+ The movement is divided evenly to both sides of each pixel.
+
+ The quality of the blur depends on \l{DirectionalBlur::samples}{samples}
+ property. If length value is large, more samples are needed to keep the
+ visual quality at high level.
+
+ The value ranges from 0.0 to inf.
+ By default the property is set to \c 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different length values
+ \li
+ \li
+ \row
+ \li \image DirectionalBlur_length1.png
+ \li \image DirectionalBlur_length2.png
+ \li \image DirectionalBlur_length3.png
+ \row
+ \li \b { length: 0.0 }
+ \li \b { length: 32.0 }
+ \li \b { length: 48.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \li \l angle: 0
+ \endtable
+
+ */
+ property real length: 0.0
+
+ /*!
+ This property defines how many samples are taken per pixel when blur
+ calculation is done. Larger value produces better quality, but is slower
+ to render.
+
+ This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+
+ Allowed values are between 0 and inf (practical maximum depends on GPU).
+ By default the property is set to \c 0 (no samples).
+
+ */
+ property int samples: 0
+
+ /*!
+ This property defines the direction for the blur. Blur is applied to
+ both sides of each pixel, therefore setting the direction to 0 and 180
+ produces the same result.
+
+ The value ranges from -180.0 to 180.0.
+ By default the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different angle values
+ \li
+ \li
+ \row
+ \li \image DirectionalBlur_angle1.png
+ \li \image DirectionalBlur_angle2.png
+ \li \image DirectionalBlur_angle3.png
+ \row
+ \li \b { angle: 0.0 }
+ \li \b { angle: 45.0 }
+ \li \b { angle: 90.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l length: 32
+ \li \l length: 32
+ \li \l length: 32
+ \endtable
+
+ */
+ property real angle: 0.0
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real len: rootItem.length
+ property bool transparentBorder: rootItem.transparentBorder
+ property real samples: rootItem.samples
+ property real weight: 1.0 / Math.max(1.0, rootItem.samples)
+ property variant expandPixels: transparentBorder ? Qt.size(rootItem.samples, rootItem.samples) : Qt.size(0,0)
+ property variant expand: transparentBorder ? Qt.size(expandPixels.width / width, expandPixels.height / height) : Qt.size(0,0)
+ property variant delta: Qt.size(1.0 / rootItem.width * Math.cos((rootItem.angle + 90) * Math.PI/180), 1.0 / rootItem.height * Math.sin((rootItem.angle + 90) * Math.PI/180))
+
+ x: transparentBorder ? -expandPixels.width - 1: 0
+ y: transparentBorder ? -expandPixels.height - 1 : 0
+ width: transparentBorder ? parent.width + 2.0 * expandPixels.width + 2 : parent.width
+ height: transparentBorder ? parent.height + 2.0 * expandPixels.height + 2 : parent.height
+
+ property string fragmentShaderSkeleton: "
+ varying highp vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ uniform highp float len;
+ uniform highp float samples;
+ uniform highp float weight;
+ uniform highp vec2 expand;
+ uniform highp vec2 delta;
+
+ void main(void) {
+ highp vec2 shift = delta * len / max(1.0, samples - 1.0);
+ mediump vec2 texCoord = qt_TexCoord0;
+ gl_FragColor = vec4(0.0);
+
+ PLACEHOLDER_EXPAND_STEPS
+
+ texCoord -= shift * max(0.0, samples - 1.0) * 0.5;
+
+ PLACEHOLDER_UNROLLED_LOOP
+
+ gl_FragColor *= weight * qt_Opacity;
+ }
+ "
+
+ function buildFragmentShader() {
+ var shader = ""
+ if (GraphicsInfo.profile === GraphicsInfo.OpenGLCoreProfile)
+ shader += "#version 150 core\n#define varying in\n#define texture2D texture\nout vec4 fragColor;\n#define gl_FragColor fragColor\n"
+ shader += fragmentShaderSkeleton
+ var expandSteps = ""
+
+ if (transparentBorder) {
+ expandSteps += "texCoord = (texCoord - expand) / (1.0 - 2.0 * expand);"
+ }
+
+ var unrolledLoop = "gl_FragColor += texture2D(source, texCoord);\n"
+
+ if (rootItem.samples > 1) {
+ unrolledLoop = ""
+ for (var i = 0; i < rootItem.samples; i++)
+ unrolledLoop += "gl_FragColor += texture2D(source, texCoord); texCoord += shift;\n"
+ }
+
+ shader = shader.replace("PLACEHOLDER_EXPAND_STEPS", expandSteps)
+ fragmentShader = shader.replace("PLACEHOLDER_UNROLLED_LOOP", unrolledLoop)
+ }
+
+ onFragmentShaderChanged: sourceChanged()
+ onSamplesChanged: buildFragmentShader()
+ onTransparentBorderChanged: buildFragmentShader()
+ Component.onCompleted: buildFragmentShader()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Displace.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Displace.qml
new file mode 100644
index 00000000..34002229
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Displace.qml
@@ -0,0 +1,190 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype Displace
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-distortion
+ \brief Moves the pixels of the source item according to the given
+ displacement map.
+
+ \table
+ \header
+ \li Source
+ \li DisplacementSource
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image Displace_map.png
+ \li \image Displace_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet Displace-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item for the pixels that are going to
+ be displaced according to the data from
+ \l{Displace::displacementSource}{displacementSource}.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the item that is going to be used as the
+ displacement map. The displacementSource item gets rendered into the
+ intermediate pixel buffer. The red and green component values from the
+ result determine the displacement of the pixels from the source item.
+
+ The format for the displacement map is similar to the tangent space
+ normal maps, which can be created with most 3D-modeling tools. Many
+ image processing tools include the support for generating normal maps.
+ Alternatively, the displacement map for this effect can also be a QML
+ element which is colored appropriately. Like any QML element, it can be
+ animated. It is recommended that the size of the diplacement map matches
+ the size of the \l{Displace::source}{source}.
+
+ The displace data is interpreted in the RGBA format. For every pixel:
+ the red channel stores the x-axis displacement, and the green channel
+ stores the y-axis displacement. Blue and alpha channels are ignored for
+ this effect.
+
+ Assuming that red channel value 1.0 is fully red (0.0 having no red at
+ all), this effect considers pixel component value 0.5 to cause no
+ displacement at all. Values above 0.5 shift pixels to the left, values
+ below 0.5 do the shift to the right. In a similar way, green channel
+ values above 0.5 displace the pixels upwards, and values below 0.5 shift
+ the pixels downwards. The actual amount of displacement in pixels
+ depends on the \l displacement property.
+
+ */
+ property variant displacementSource
+
+ /*!
+ This property defines the scale for the displacement. The bigger scale,
+ the bigger the displacement of the pixels. The value set to 0.0 causes
+ no displacement.
+
+ The value ranges from -1.0 (inverted maximum shift, according to
+ displacementSource) to 1.0 (maximum shift, according to
+ displacementSource). By default, the property is set to \c 0.0 (no
+ displacement).
+
+ \table
+ \header
+ \li Output examples with different displacement values
+ \li
+ \li
+ \row
+ \li \image Displace_displacement1.png
+ \li \image Displace_displacement2.png
+ \li \image Displace_displacement3.png
+ \row
+ \li \b { displacement: -0.2 }
+ \li \b { displacement: 0.0 }
+ \li \b { displacement: 0.2 }
+ \endtable
+
+ */
+ property real displacement: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: displacementSourceProxy
+ input: rootItem.displacementSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant displacementSource: displacementSourceProxy.output
+ property real displacement: rootItem.displacement
+ property real xPixel: 1.0/width
+ property real yPixel: 1.0/height
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/displace.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DropShadow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DropShadow.qml
new file mode 100644
index 00000000..0f30e5aa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/DropShadow.qml
@@ -0,0 +1,362 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2017 Jolla Ltd, author:
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype DropShadow
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-drop-shadow
+
+ \brief Generates a soft shadow behind the source item.
+
+ The DropShadow effect blurs the alpha channel of the input, colorizes the
+ result and places it behind the source object to create a soft shadow. The
+ shadow's color can be changed using the \l {DropShadow::color}{color}
+ property. The location of the shadow can be changed with the \l
+ horizontalOffset and \l verticalOffset properties.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_butterfly.png
+ \li \image DropShadow_butterfly.png
+ \endtable
+
+ The soft shadow is created by blurring the image live using a gaussian
+ blur. Performing blur live is a costly operation. Fullscreen gaussian blur
+ with even a moderate number of samples will only run at 60 fps on highend
+ graphics hardware.
+
+ When the source is static, the \l cached property can be set to allocate
+ another buffer to avoid performing the blur every time it is drawn.
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet DropShadow-example.qml example
+
+*/
+Item {
+ id: root
+
+ DropShadowBase {
+ id: dbs
+ anchors.fill: parent
+ }
+
+ /*!
+ This property defines the source item that is going to be used as the
+ source for the generated shadow.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property alias source: dbs.source
+
+ /*!
+ \qmlproperty int DropShadow::radius
+
+ Radius defines the softness of the shadow. A larger radius causes the
+ edges of the shadow to appear more blurry.
+
+ The ideal blur is achieved by selecting \c samples and \c radius such
+ that \c {samples = 1 + radius * 2}, such as:
+
+ \table
+ \header \li Radius \li Samples
+ \row \li 0 \e{(no blur)} \li 1
+ \row \li 1 \li 3
+ \row \li 2 \li 5
+ \row \li 3 \li 7
+ \endtable
+
+ By default, the property is set to \c {floor(samples/2)}.
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image DropShadow_radius1.png
+ \li \image DropShadow_radius2.png
+ \li \image DropShadow_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 6 }
+ \li \b { radius: 12 }
+ \row
+ \li \l samples: 25
+ \li \l samples: 25
+ \li \l samples: 25
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+ */
+ property alias radius: dbs.radius;
+
+ /*!
+ This property defines how many samples are taken per pixel when edge
+ softening blur calculation is done. Larger value produces better
+ quality, but is slower to render.
+
+ Ideally, this value should be twice as large as the highest required
+ radius value plus one, such as:
+
+ \table
+ \header \li Radius \li Samples
+ \row \li 0 \e{(no blur)} \li 1
+ \row \li 1 \li 3
+ \row \li 2 \li 5
+ \row \li 3 \li 7
+ \endtable
+
+ By default, the property is set to \c 9.
+
+ This property is not intended to be animated. Changing this property will
+ cause the underlying OpenGL shaders to be recompiled.
+ */
+ property alias samples: dbs.samples
+
+ /*!
+ This property defines the RGBA color value which is used for the shadow.
+
+ By default, the property is set to \c "black".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image DropShadow_color1.png
+ \li \image DropShadow_color2.png
+ \li \image DropShadow_color3.png
+ \row
+ \li \b { color: #000000 }
+ \li \b { color: #0000ff }
+ \li \b { color: #aa000000 }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 17
+ \li \l samples: 17
+ \li \l samples: 17
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+ */
+ property alias color: dbs.color
+
+ /*!
+ \qmlproperty real QtGraphicalEffects::DropShadow::horizontalOffset
+ \qmlproperty real QtGraphicalEffects::DropShadow::verticalOffset
+
+ HorizontalOffset and verticalOffset properties define the offset for the
+ rendered shadow compared to the DropShadow item position. Often, the
+ DropShadow item is anchored so that it fills the source element. In this
+ case, if the HorizontalOffset and verticalOffset properties are set to
+ 0, the shadow is rendered exactly under the source item. By changing the
+ offset properties, the shadow can be positioned relatively to the source
+ item.
+
+ The values range from -inf to inf. By default, the properties are set to
+ \c 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image DropShadow_horizontalOffset1.png
+ \li \image DropShadow_horizontalOffset2.png
+ \li \image DropShadow_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: -20 }
+ \li \b { horizontalOffset: 0 }
+ \li \b { horizontalOffset: 20 }
+ \row
+ \li \l radius: 4
+ \li \l radius: 4
+ \li \l radius: 4
+ \row
+ \li \l samples: 9
+ \li \l samples: 9
+ \li \l samples: 9
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+ */
+ property alias horizontalOffset: dbs.horizontalOffset
+ property alias verticalOffset: dbs.verticalOffset
+
+ /*!
+ This property defines how large part of the shadow color is strengthened
+ near the source edges.
+
+ The value ranges from 0.0 to 1.0. By default, the property is set to \c
+ 0.0.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image DropShadow_spread1.png
+ \li \image DropShadow_spread2.png
+ \li \image DropShadow_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.5 }
+ \li \b { spread: 1.0 }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 17
+ \li \l samples: 17
+ \li \l samples: 17
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \li \l verticalOffset: 20
+ \endtable
+ */
+ property alias spread: dbs.spread
+
+ /*!
+ \internal
+
+ Starting Qt 5.6, this property has no effect. It is left here
+ for source compatibility only.
+
+ ### Qt 6: remove
+ */
+ property bool fast: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance. Every time the source or effect
+ properties are changed, the pixels in the cache must be updated. Memory
+ consumption is increased, because an extra buffer of memory is required
+ for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property alias cached: dbs.cached
+
+ /*!
+ This property determines whether or not the effect has a transparent
+ border.
+
+ When set to \c true, the exterior of the item is padded with a 1 pixel
+ wide transparent edge, making sampling outside the source texture use
+ transparency instead of the edge pixels. Without this property, an
+ image which has opaque edges will not get a blurred shadow.
+
+ In the image below, the Rectangle on the left has transparent borders
+ and has blurred edges, whereas the Rectangle on the right does not:
+
+ By default, this property is set to \c true.
+
+ \snippet DropShadow-transparentBorder-example.qml example
+
+ \image DropShadow-transparentBorder.png
+ */
+ property alias transparentBorder: dbs.transparentBorder
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/FastBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/FastBlur.qml
new file mode 100644
index 00000000..1d8a547d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/FastBlur.qml
@@ -0,0 +1,442 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype FastBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-blur
+ \brief Applies a fast blur effect to one or more source items.
+
+ FastBlur offers lower blur quality than
+ \l{QtGraphicalEffects::GaussianBlur}{GaussianBlur}, but it is faster to
+ render. The FastBlur effect softens the source content by blurring it with
+ algorithm which uses the source content downscaling and bilinear filtering.
+ Use this effect in situations where the source content is rapidly changing
+ and the highest possible blur quality is not
+ needed.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image FastBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+ s
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet FastBlur-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the distance of the neighboring pixels which affect
+ the blurring of an individual pixel. A larger radius increases the blur
+ effect. FastBlur algorithm may internally reduce the accuracy of the radius in order to
+ provide good rendering performance.
+
+ The value ranges from 0.0 (no blur) to inf. Visual quality of the blur is reduced when
+ radius exceeds value 64. By default, the property is set to \c 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different blur values
+ \li
+ \li
+ \row
+ \li \image FastBlur_radius1.png
+ \li \image FastBlur_radius2.png
+ \li \image FastBlur_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 32 }
+ \li \b { radius: 64 }
+ \endtable
+ */
+ property real radius: 0.0
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+
+ \table
+ \header
+ \li Output examples with different transparentBorder values
+ \li
+ \li
+ \row
+ \li \image FastBlur_transparentBorder1.png
+ \li \image FastBlur_transparentBorder2.png
+ \row
+ \li \b { transparentBorder: false }
+ \li \b { transparentBorder: true }
+ \row
+ \li \l radius: 64
+ \li \l radius: 64
+ \endtable
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ smooth: rootItem.radius > 0
+ }
+
+ /*! \internal */
+ property string __internalBlurVertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.vert"
+
+ /*! \internal */
+ property string __internalBlurFragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.frag"
+
+ ShaderEffect {
+ id: level0
+ property variant source: sourceProxy.output
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: level1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: level0
+ hideSource: rootItem.visible
+ sourceRect: transparentBorder ? Qt.rect(-64, -64, shaderItem.width, shaderItem.height) : Qt.rect(0, 0, 0, 0)
+ visible: false
+ smooth: rootItem.radius > 0
+ }
+
+ ShaderEffect {
+ id: effect1
+ property variant source: level1
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level2
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level2
+ width: level1.width / 2
+ height: level1.height / 2
+ sourceItem: effect1
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect2
+ property variant source: level2
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level3
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level3
+ width: level2.width / 2
+ height: level2.height / 2
+ sourceItem: effect2
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect3
+ property variant source: level3
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level4
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level4
+ width: level3.width / 2
+ height: level3.height / 2
+ sourceItem: effect3
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect4
+ property variant source: level4
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level5
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level5
+ width: level4.width / 2
+ height: level4.height / 2
+ sourceItem: effect4
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect5
+ property variant source: level5
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level6
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level6
+ width: level5.width / 2
+ height: level5.height / 2
+ sourceItem: effect5
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ Item {
+ id: dummysource
+ width: 1
+ height: 1
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: dummy
+ width: 1
+ height: 1
+ sourceItem: dummysource
+ visible: false
+ smooth: false
+ live: false
+ }
+
+ ShaderEffect {
+ id: shaderItem
+
+ property variant source1: level1
+ property variant source2: level2
+ property variant source3: level3
+ property variant source4: level4
+ property variant source5: level5
+ property variant source6: level6
+ property real lod: Math.sqrt(rootItem.radius / 64.0) * 1.2 - 0.2
+ property real weight1
+ property real weight2
+ property real weight3
+ property real weight4
+ property real weight5
+ property real weight6
+
+ x: transparentBorder ? -64 : 0
+ y: transparentBorder ? -64 : 0
+ width: transparentBorder ? parent.width + 128 : parent.width
+ height: transparentBorder ? parent.height + 128 : parent.height
+
+ function weight(v) {
+ if (v <= 0.0)
+ return 1.0
+ if (v >= 0.5)
+ return 0.0
+
+ return 1.0 - v * 2.0
+ }
+
+ function calculateWeights() {
+
+ var w1 = weight(Math.abs(lod - 0.100))
+ var w2 = weight(Math.abs(lod - 0.300))
+ var w3 = weight(Math.abs(lod - 0.500))
+ var w4 = weight(Math.abs(lod - 0.700))
+ var w5 = weight(Math.abs(lod - 0.900))
+ var w6 = weight(Math.abs(lod - 1.100))
+
+ var sum = w1 + w2 + w3 + w4 + w5 + w6;
+ weight1 = w1 / sum;
+ weight2 = w2 / sum;
+ weight3 = w3 / sum;
+ weight4 = w4 / sum;
+ weight5 = w5 / sum;
+ weight6 = w6 / sum;
+
+ upateSources()
+ }
+
+ function upateSources() {
+ var sources = new Array();
+ var weights = new Array();
+
+ if (weight1 > 0) {
+ sources.push(level1)
+ weights.push(weight1)
+ }
+
+ if (weight2 > 0) {
+ sources.push(level2)
+ weights.push(weight2)
+ }
+
+ if (weight3 > 0) {
+ sources.push(level3)
+ weights.push(weight3)
+ }
+
+ if (weight4 > 0) {
+ sources.push(level4)
+ weights.push(weight4)
+ }
+
+ if (weight5 > 0) {
+ sources.push(level5)
+ weights.push(weight5)
+ }
+
+ if (weight6 > 0) {
+ sources.push(level6)
+ weights.push(weight6)
+ }
+
+ for (var j = sources.length; j < 6; j++) {
+ sources.push(dummy)
+ weights.push(0.0)
+ }
+
+ source1 = sources[0]
+ source2 = sources[1]
+ source3 = sources[2]
+ source4 = sources[3]
+ source5 = sources[4]
+ source6 = sources[5]
+
+ weight1 = weights[0]
+ weight2 = weights[1]
+ weight3 = weights[2]
+ weight4 = weights[3]
+ weight5 = weights[4]
+ weight6 = weights[5]
+ }
+
+ Component.onCompleted: calculateWeights()
+
+ onLodChanged: calculateWeights()
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GammaAdjust.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GammaAdjust.qml
new file mode 100644
index 00000000..2c3edbb8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GammaAdjust.qml
@@ -0,0 +1,184 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype GammaAdjust
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Alters the luminance of the source item.
+
+ GammaAdjust is applied to each pixel according to the curve which is
+ pre-defined as a power-law expression, where the property gamma is used as the
+ reciprocal scaling exponent. Refer to the property documentation of \l{GammaAdjust::gamma}{gamma}
+ for more details.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image GammaAdjust_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet GammaAdjust-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item for which the luminance is going to be
+ adjusted.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the change factor for how the luminance of each pixel
+ is altered according to the equation:
+
+ \code
+luminance = pow(original_luminance, 1.0 / gamma); // The luminance is assumed to be between 0.0 and 1.0
+ \endcode
+
+ Setting the gamma values under 1.0 makes the image darker, the values
+ above 1.0 lighten it.
+
+ The value ranges from 0.0 (darkest) to inf (lightest). By default, the
+ property is set to \c 1.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different gamma values
+ \li
+ \li
+ \row
+ \li \image GammaAdjust_gamma1.png
+ \li \image GammaAdjust_gamma2.png
+ \li \image GammaAdjust_gamma3.png
+ \row
+ \li \b { gamma: 0.5 }
+ \li \b { gamma: 1.0 }
+ \li \b { gamma: 2.0 }
+ \endtable
+
+ \table
+ \header
+ \li Pixel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image GammaAdjust_gamma1_graph.png
+ \li \image GammaAdjust_gamma2_graph.png
+ \li \image GammaAdjust_gamma3_graph.png
+ \row
+ \li Red curve: default gamma (1.0)
+ \li
+ \li
+ \row
+ \li Yellow curve: effect applied
+ \li
+ \li
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: pixel luminance with effect applied
+ \li
+ \li
+ \endtable
+
+ */
+ property real gamma: 1.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real gamma: 1.0 / Math.max(rootItem.gamma, 0.0001)
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/gammaadjust.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GaussianBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GaussianBlur.qml
new file mode 100644
index 00000000..4af97148
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/GaussianBlur.qml
@@ -0,0 +1,372 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2017 Jolla Ltd, author:
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype GaussianBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-blur
+ \brief Applies a higher quality blur effect.
+
+ GaussianBlur effect softens the image by blurring it with an algorithm that
+ uses the Gaussian function to calculate the effect. The effect produces
+ higher quality than \l{QtGraphicalEffects::FastBlur}{FastBlur}, but is
+ slower to render.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image GaussianBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet GaussianBlur-example.qml example
+
+ Performing blur live is a costly operation. Fullscreen gaussian blur
+ with even a moderate number of samples will only run at 60 fps on highend
+ graphics hardware.
+
+*/
+Item {
+ id: root
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the distance of the neighboring pixels which
+ affect the blurring of an individual pixel. A larger radius increases
+ the blur effect.
+
+ The ideal blur is achieved by selecting \c samples and \c radius such
+ that \c {samples = 1 + radius * 2}, such as:
+
+ \table
+ \header \li Radius \li Samples
+ \row \li 0 \e{(no blur)} \li 1
+ \row \li 1 \li 3
+ \row \li 2 \li 5
+ \row \li 3 \li 7
+ \endtable
+
+ The value ranges from 0.0 (no blur) to inf. By default, the property is
+ set to \c floor(samples / 2.0).
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image GaussianBlur_radius1.png
+ \li \image GaussianBlur_radius2.png
+ \li \image GaussianBlur_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 4 }
+ \li \b { radius: 8 }
+ \row
+ \li \l samples: 16
+ \li \l samples: 16
+ \li \l samples: 16
+ \row
+ \li \l deviation: 3
+ \li \l deviation: 3
+ \li \l deviation: 3
+ \endtable
+
+ */
+ property real radius: Math.floor(samples / 2);
+
+ /*!
+ This property defines how many samples are taken per pixel when blur
+ calculation is done. Larger value produces better quality, but is slower
+ to render.
+
+ Ideally, this value should be twice as large as the highest required
+ radius value plus 1, for example, if the radius is animated between 0.0
+ and 4.0, samples should be set to 9.
+
+ By default, the property is set to \c 9.
+
+ \note This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+
+ */
+ property int samples: 9
+
+ /*!
+ This property is a parameter to the gaussian function that is used when
+ calculating neighboring pixel weights for the blurring. A larger
+ deviation causes image to appear more blurry, but it also reduces the
+ quality of the blur. A very large deviation value causes the effect to
+ look a bit similar to what, for exmple, a box blur algorithm produces. A
+ too small deviation values makes the effect insignificant for the pixels
+ near the radius.
+
+ \inlineimage GaussianBlur_deviation_graph.png
+ \caption The image above shows the Gaussian function with two different
+ deviation values, yellow (1) and cyan (2.7). The y-axis shows the
+ weights, the x-axis shows the pixel distance.
+
+ The value ranges from 0.0 (no deviation) to inf (maximum deviation). By
+ default, devaition is binded to radius. When radius increases, deviation
+ is automatically increased linearly. With the radius value of 8, the
+ deviation default value becomes approximately 2.7034. This value
+ produces a compromise between the blur quality and overall blurriness.
+
+ \table
+ \header
+ \li Output examples with different deviation values
+ \li
+ \li
+ \row
+ \li \image GaussianBlur_deviation1.png
+ \li \image GaussianBlur_deviation2.png
+ \li \image GaussianBlur_deviation3.png
+ \row
+ \li \b { deviation: 1 }
+ \li \b { deviation: 2 }
+ \li \b { deviation: 4 }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 16
+ \li \l samples: 16
+ \li \l samples: 16
+ \endtable
+
+ */
+ property real deviation: (radius + 1) / 3.3333
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+
+ \table
+ \header
+ \li Output examples with different transparentBorder values
+ \li
+ \li
+ \row
+ \li \image GaussianBlur_transparentBorder1.png
+ \li \image GaussianBlur_transparentBorder2.png
+ \row
+ \li \b { transparentBorder: false }
+ \li \b { transparentBorder: true }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 16
+ \li \l samples: 16
+ \row
+ \li \l deviation: 2.7
+ \li \l deviation: 2.7
+ \endtable
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+
+ // private members...
+ /*! \internal */
+ property int _paddedTexWidth: transparentBorder ? width + 2 * radius: width;
+ /*! \internal */
+ property int _paddedTexHeight: transparentBorder ? height + 2 * radius: height;
+ /*! \internal */
+ property int _kernelRadius: Math.max(0, samples / 2);
+ /*! \internal */
+ property int _kernelSize: _kernelRadius * 2 + 1;
+ /*! \internal */
+ property real _dpr: Screen.devicePixelRatio;
+ /*! \internal */
+ property bool _alphaOnly: false;
+ /*! \internal */
+ property var _maskSource: undefined
+
+ /*! \internal */
+ property alias _output: sourceProxy.output;
+ /*! \internal */
+ property alias _outputRect: sourceProxy.sourceRect;
+ /*! \internal */
+ property alias _color: verticalBlur.color;
+ /*! \internal */
+ property real _thickness: 0;
+
+ onSamplesChanged: _rebuildShaders();
+ on_KernelSizeChanged: _rebuildShaders();
+ onDeviationChanged: _rebuildShaders();
+ on_DprChanged: _rebuildShaders();
+ on_MaskSourceChanged: _rebuildShaders();
+ Component.onCompleted: _rebuildShaders();
+
+ /*! \internal */
+ function _rebuildShaders() {
+ var params = {
+ radius: _kernelRadius,
+ // Limit deviation to something very small avoid getting NaN in the shader.
+ deviation: Math.max(0.00001, deviation),
+ alphaOnly: root._alphaOnly,
+ masked: _maskSource != undefined,
+ fallback: root.radius != _kernelRadius
+ }
+ var shaders = ShaderBuilder.gaussianBlur(params);
+ horizontalBlur.fragmentShader = shaders.fragmentShader;
+ horizontalBlur.vertexShader = shaders.vertexShader;
+ }
+
+ SourceProxy {
+ id: sourceProxy
+ interpolation: SourceProxy.LinearInterpolation
+ input: root.source
+ sourceRect: root.transparentBorder
+ ? Qt.rect(-root.radius, 0, root._paddedTexWidth, parent.height)
+ : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffect {
+ id: horizontalBlur
+ width: root.transparentBorder ? root._paddedTexWidth : root.width
+ height: root.height;
+
+ // Used by all shaders
+ property Item source: sourceProxy.output;
+ property real spread: root.radius / root._kernelRadius;
+ property var dirstep: Qt.vector2d(1 / (root._paddedTexWidth * root._dpr), 0);
+
+ // Used by fallback shader (sampleCount exceeds number of varyings)
+ property real deviation: root.deviation
+
+ // Only in use for DropShadow and Glow
+ property color color: "white"
+ property real thickness: Math.max(0, Math.min(0.98, 1 - root._thickness * 0.98));
+
+ // Only in use for MaskedBlur
+ property var mask: root._maskSource;
+
+ layer.enabled: true
+ layer.smooth: true
+ layer.sourceRect: root.transparentBorder
+ ? Qt.rect(0, -root.radius, width, root._paddedTexHeight)
+ : Qt.rect(0, 0, 0, 0)
+ visible: false
+ blending: false
+ }
+
+ ShaderEffect {
+ id: verticalBlur
+ x: transparentBorder ? -root.radius : 0
+ y: x;
+ width: root.transparentBorder ? root._paddedTexWidth: root.width
+ height: root.transparentBorder ? root._paddedTexHeight : root.height;
+ fragmentShader: horizontalBlur.fragmentShader
+ vertexShader: horizontalBlur.vertexShader
+
+ property Item source: horizontalBlur
+ property real spread: horizontalBlur.spread
+ property var dirstep: Qt.vector2d(0, 1 / (root._paddedTexHeight * root._dpr));
+
+ property real deviation: horizontalBlur.deviation
+
+ property color color: "black"
+ property real thickness: horizontalBlur.thickness;
+
+ property var mask: horizontalBlur.mask;
+
+ visible: true
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: verticalBlur
+ visible: root.cached
+ smooth: true
+ sourceItem: verticalBlur
+ hideSource: visible
+ }
+
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Glow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Glow.qml
new file mode 100644
index 00000000..39e69a35
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/Glow.qml
@@ -0,0 +1,294 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2017 Jolla Ltd, author:
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype Glow
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-glow
+ \brief Generates a halo like glow around the source item.
+
+ The Glow effect blurs the alpha channel of the source and colorizes it
+ with \l {Glow::color}{color} and places it behind the source, resulting in a halo or glow
+ around the object. The quality of the blurred edge can be controlled using
+ \l samples and \l radius and the strength of the glow can be changed using
+ \l spread.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_butterfly_black.png
+ \li \image Glow_butterfly.png
+ \endtable
+
+ The glow is created by blurring the image live using a gaussian blur.
+ Performing blur live is a costly operation. Fullscreen gaussian blur with
+ even a moderate number of samples will only run at 60 fps on highend
+ graphics hardware.
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet Glow-example.qml example
+
+*/
+Item {
+ id: root
+
+ DropShadowBase {
+ id: dps
+ anchors.fill: parent
+ color: "white"
+ spread: 0.5
+ horizontalOffset: 0
+ verticalOffset: 0
+ }
+
+ /*!
+ This property defines the source item that is going to be used as source
+ for the generated glow.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property alias source: dps.source
+
+ /*!
+ Radius defines the softness of the glow. A larger radius causes the
+ edges of the glow to appear more blurry.
+
+ Depending on the radius value, value of the \l{Glow::samples}{samples}
+ should be set to sufficiently large to ensure the visual quality.
+
+ The ideal blur is achieved by selecting \c samples and \c radius such
+ that \c {samples = 1 + radius * 2}, such as:
+
+ \table
+ \header \li Radius \li Samples
+ \row \li 0 \e{(no blur)} \li 1
+ \row \li 1 \li 3
+ \row \li 2 \li 5
+ \row \li 3 \li 7
+ \endtable
+
+ By default, the property is set to \c {floor(samples/2)}.
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image Glow_radius1.png
+ \li \image Glow_radius2.png
+ \li \image Glow_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 6 }
+ \li \b { radius: 12 }
+ \row
+ \li \l samples: 25
+ \li \l samples: 25
+ \li \l samples: 25
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+ */
+ property alias radius: dps.radius
+
+ /*!
+ This property defines how many samples are taken per pixel when edge
+ softening blur calculation is done. Larger value produces better
+ quality, but is slower to render.
+
+ Ideally, this value should be twice as large as the highest required
+ radius value plus one, such as:
+
+ \table
+ \header \li Radius \li Samples
+ \row \li 0 \e{(no blur)} \li 1
+ \row \li 1 \li 3
+ \row \li 2 \li 5
+ \row \li 3 \li 7
+ \endtable
+
+ By default, the property is set to \c 9.
+
+ This property is not intended to be animated. Changing this property will
+ cause the underlying OpenGL shaders to be recompiled.
+ */
+ property alias samples: dps.samples
+
+ /*!
+ This property defines how large part of the glow color is strengthened
+ near the source edges.
+
+ The values range from 0.0 to 1.0. By default, the property is set to \c
+ 0.5.
+
+ \note The implementation is optimized for medium and low spread values.
+ Depending on the source, spread values closer to 1.0 may yield visually
+ asymmetrical results.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image Glow_spread1.png
+ \li \image Glow_spread2.png
+ \li \image Glow_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.5 }
+ \li \b { spread: 1.0 }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 17
+ \li \l samples: 17
+ \li \l samples: 17
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \endtable
+ */
+ property alias spread: dps.spread
+
+ /*!
+ This property defines the RGBA color value which is used for the glow.
+
+ By default, the property is set to \c "white".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image Glow_color1.png
+ \li \image Glow_color2.png
+ \li \image Glow_color3.png
+ \row
+ \li \b { color: #ffffff }
+ \li \b { color: #00ff00 }
+ \li \b { color: #aa00ff00 }
+ \row
+ \li \l radius: 8
+ \li \l radius: 8
+ \li \l radius: 8
+ \row
+ \li \l samples: 17
+ \li \l samples: 17
+ \li \l samples: 17
+ \row
+ \li \l spread: 0.5
+ \li \l spread: 0.5
+ \li \l spread: 0.5
+ \endtable
+
+ */
+ property alias color: dps.color
+
+ /*!
+ \internal
+
+ Starting Qt 5.6, this property has no effect. It is left here
+ for source compatibility only.
+
+ ### Qt 6: remove
+ */
+ property bool fast: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property alias cached: dps.cached
+
+ /*!
+ This property determines whether or not the effect has a transparent
+ border.
+
+ When set to \c true, the exterior of the item is padded with a
+ transparent edge, making sampling outside the source texture use
+ transparency instead of the edge pixels. Without this property, an
+ image which has opaque edges will not get a blurred edge.
+
+ By default, the property is set to \c true. Set it to false if the source
+ already has a transparent edge to make the blurring a tiny bit faster.
+
+ In the snippet below, the Rectangle on the left has transparent borders
+ and has blurred edges, whereas the Rectangle on the right does not.
+
+ \snippet Glow-transparentBorder-example.qml example
+
+ \image Glow-transparentBorder.png
+ */
+ property alias transparentBorder: dps.transparentBorder
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/HueSaturation.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/HueSaturation.qml
new file mode 100644
index 00000000..eb13dcb6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/HueSaturation.qml
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype HueSaturation
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Alters the source item colors in the HSL color space.
+
+ HueSaturation is similar to the \l{QtGraphicalEffects::Colorize}{Colorize}
+ effect, but the hue and saturation property values are handled differently.
+ The HueSaturation effect always shifts the hue, saturation, and lightness
+ from the original, instead of setting them.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image HueSaturation_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet HueSaturation-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels
+ for the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source: 0
+
+ /*!
+ This property defines the hue value which is added to the source hue
+ value.
+
+ The value ranges from -1.0 (decrease) to 1.0 (increase). By default, the
+ property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different hue values
+ \li
+ \li
+ \row
+ \li \image HueSaturation_hue1.png
+ \li \image HueSaturation_hue2.png
+ \li \image HueSaturation_hue3.png
+ \row
+ \li \b { hue: -0.3 }
+ \li \b { hue: 0.0 }
+ \li \b { hue: 0.3 }
+ \row
+ \li \l saturation: 0
+ \li \l saturation: 0
+ \li \l saturation: 0
+ \row
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \endtable
+
+ */
+ property real hue: 0.0
+
+ /*!
+ This property defines the saturation value value which is added to the
+ source saturation value.
+
+ The value ranges from -1.0 (decrease) to 1.0 (increase). By default, the
+ property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different saturation values
+ \li
+ \li
+ \row
+ \li \image HueSaturation_saturation1.png
+ \li \image HueSaturation_saturation2.png
+ \li \image HueSaturation_saturation3.png
+ \row
+ \li \b { saturation: -0.8 }
+ \li \b { saturation: 0.0 }
+ \li \b { saturation: 1.0 }
+ \row
+ \li \l hue: 0
+ \li \l hue: 0
+ \li \l hue: 0
+ \row
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \li \l lightness: 0
+ \endtable
+
+ */
+ property real saturation: 0.0
+
+ /*!
+ This property defines the lightness value which is added to the source
+ saturation value.
+
+ The value ranges from -1.0 (decrease) to 1.0 (increase). By default, the
+ property is set to \c 0.0 (no change).
+
+ \table
+ \header
+ \li Output examples with different lightness values
+ \li
+ \li
+ \row
+ \li \image HueSaturation_lightness1.png
+ \li \image HueSaturation_lightness2.png
+ \li \image HueSaturation_lightness3.png
+ \row
+ \li \b { lightness: -0.5 }
+ \li \b { lightness: 0.0 }
+ \li \b { lightness: 0.5 }
+ \row
+ \li \l hue: 0
+ \li \l hue: 0
+ \li \l hue: 0
+ \row
+ \li \l saturation: 0
+ \li \l saturation: 0
+ \li \l saturation: 0
+ \endtable
+
+ */
+ property real lightness: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant hsl: Qt.vector3d(rootItem.hue, rootItem.saturation, rootItem.lightness)
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/huesaturation.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/InnerShadow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/InnerShadow.qml
new file mode 100644
index 00000000..7a388e34
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/InnerShadow.qml
@@ -0,0 +1,386 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype InnerShadow
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-drop-shadow
+ \brief Generates a colorized and blurred shadow inside the
+ source.
+
+ By default the effect produces a high quality shadow image, thus the
+ rendering speed of the shadow might not be the highest possible. The
+ rendering speed is reduced especially if the shadow edges are heavily
+ softened. For use cases that require faster rendering speed and for which
+ the highest possible visual quality is not necessary, property
+ \l{InnerShadow::fast}{fast} can be set to true.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_butterfly.png
+ \li \image InnerShadow_butterfly.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet InnerShadow-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be used as the
+ source for the generated shadow.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ Radius defines the softness of the shadow. A larger radius causes the
+ edges of the shadow to appear more blurry.
+
+ Depending on the radius value, value of the
+ \l{InnerShadow::samples}{samples} should be set to sufficiently large to
+ ensure the visual quality.
+
+ The value ranges from 0.0 (no blur) to inf. By default, the property is
+ set to \c 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image InnerShadow_radius1.png
+ \li \image InnerShadow_radius2.png
+ \li \image InnerShadow_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 6 }
+ \li \b { radius: 12 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+
+ */
+ property real radius: 0.0
+
+ /*!
+ This property defines how many samples are taken per pixel when edge
+ softening blur calculation is done. Larger value produces better
+ quality, but is slower to render.
+
+ Ideally, this value should be twice as large as the highest required
+ radius value, for example, if the radius is animated between 0.0 and
+ 4.0, samples should be set to 8.
+
+ The value ranges from 0 to 32. By default, the property is set to \c 0.
+
+ This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+
+ When \l{InnerShadow::fast}{fast} property is set to true, this property
+ has no effect.
+
+ */
+ property int samples: 0
+
+ /*!
+ This property defines how large part of the shadow color is strengthened
+ near the source edges.
+
+ The value ranges from 0.0 to 1.0. By default, the property is set to \c
+ 0.5.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image InnerShadow_spread1.png
+ \li \image InnerShadow_spread2.png
+ \li \image InnerShadow_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.3 }
+ \li \b { spread: 0.5 }
+ \row
+ \li \l radius: 16
+ \li \l radius: 16
+ \li \l radius: 16
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+
+ */
+ property real spread: 0.0
+
+ /*!
+ This property defines the RGBA color value which is used for the shadow.
+
+ By default, the property is set to \c "black".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image InnerShadow_color1.png
+ \li \image InnerShadow_color2.png
+ \li \image InnerShadow_color3.png
+ \row
+ \li \b { color: #000000 }
+ \li \b { color: #ffffff }
+ \li \b { color: #ff0000 }
+ \row
+ \li \l radius: 16
+ \li \l radius: 16
+ \li \l radius: 16
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l spread: 0.2
+ \li \l spread: 0.2
+ \li \l spread: 0.2
+ \endtable
+ */
+ property color color: "black"
+
+ /*!
+ \qmlproperty real QtGraphicalEffects::InnerShadow::horizontalOffset
+ \qmlproperty real QtGraphicalEffects::InnerShadow::verticalOffset
+
+ HorizontalOffset and verticalOffset properties define the offset for the
+ rendered shadow compared to the InnerShadow item position. Often, the
+ InnerShadow item is anchored so that it fills the source element. In
+ this case, if the HorizontalOffset and verticalOffset properties are set
+ to 0, the shadow is rendered fully inside the source item. By changing
+ the offset properties, the shadow can be positioned relatively to the
+ source item.
+
+ The values range from -inf to inf. By default, the properties are set to
+ \c 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image InnerShadow_horizontalOffset1.png
+ \li \image InnerShadow_horizontalOffset2.png
+ \li \image InnerShadow_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: -20 }
+ \li \b { horizontalOffset: 0 }
+ \li \b { horizontalOffset: 20 }
+ \row
+ \li \l radius: 16
+ \li \l radius: 16
+ \li \l radius: 16
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \endtable
+
+ */
+ property real horizontalOffset: 0
+ property real verticalOffset: 0
+
+ /*!
+ This property selects the blurring algorithm that is used to produce the
+ softness for the effect. Setting this to true enables fast algorithm,
+ setting value to false produces higher quality result.
+
+ By default, the property is set to \c false.
+
+ \table
+ \header
+ \li Output examples with different fast values
+ \li
+ \li
+ \row
+ \li \image InnerShadow_fast1.png
+ \li \image InnerShadow_fast2.png
+ \row
+ \li \b { fast: false }
+ \li \b { fast: true }
+ \row
+ \li \l radius: 16
+ \li \l radius: 16
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l color: #000000
+ \li \l color: #000000
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l spread: 0.2
+ \li \l spread: 0.2
+ \endtable
+ */
+ property bool fast: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance. Every time the source or effect
+ properties are changed, the pixels in the cache must be updated. Memory
+ consumption is increased, because an extra buffer of memory is required
+ for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ Loader {
+ anchors.fill: parent
+ sourceComponent: rootItem.fast ? innerShadow : gaussianInnerShadow
+ }
+
+ Component {
+ id: gaussianInnerShadow
+ GaussianInnerShadow {
+ anchors.fill: parent
+ source: rootItem.source
+ radius: rootItem.radius
+ maximumRadius: rootItem.samples * 0.5
+ color: rootItem.color
+ cached: rootItem.cached
+ spread: rootItem.spread
+ horizontalOffset: rootItem.horizontalOffset
+ verticalOffset: rootItem.verticalOffset
+ }
+ }
+
+ Component {
+ id: innerShadow
+ FastInnerShadow {
+ anchors.fill: parent
+ source: rootItem.source
+ blur: Math.pow(rootItem.radius / 64.0, 0.4)
+ color: rootItem.color
+ cached: rootItem.cached
+ spread: rootItem.spread
+ horizontalOffset: rootItem.horizontalOffset
+ verticalOffset: rootItem.verticalOffset
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LevelAdjust.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LevelAdjust.qml
new file mode 100644
index 00000000..b98facaa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LevelAdjust.qml
@@ -0,0 +1,440 @@
+/*****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Add-On Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+*****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype LevelAdjust
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-color
+ \brief Adjusts color levels in the RGBA color space.
+
+ This effect adjusts the source item colors separately for each color
+ channel. Source item contrast can be adjusted and color balance altered.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_butterfly.png
+ \li \image LevelAdjust_butterfly.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet LevelAdjust-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that provides the source pixels
+ for the effect.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the change factor for how the value of each pixel
+ color channel is altered according to the equation:
+
+ \code
+ result.rgb = pow(original.rgb, 1.0 / gamma.rgb);
+ \endcode
+
+ Setting the gamma values under QtVector3d(1.0, 1.0, 1.0) makes the image
+ darker, the values above QtVector3d(1.0, 1.0, 1.0) lighten it.
+
+ The value ranges from QtVector3d(0.0, 0.0, 0.0) (darkest) to inf
+ (lightest). By default, the property is set to \c QtVector3d(1.0, 1.0,
+ 1.0) (no change).
+
+ \table
+ \header
+ \li Output examples with different gamma values
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_gamma1.png
+ \li \image LevelAdjust_gamma2.png
+ \li \image LevelAdjust_gamma3.png
+ \row
+ \li \b { gamma: Qt.vector3d(1.0, 1.0, 1.0) }
+ \li \b { gamma: Qt.vector3d(1.0, 0.4, 2.0) }
+ \li \b { gamma: Qt.vector3d(1.0, 0.1, 4.0) }
+ \row
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \row
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \row
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \row
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \endtable
+
+ \table
+ \header
+ \li Pixel color channel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_default_curve.png
+ \li \image LevelAdjust_gamma2_curve.png
+ \li \image LevelAdjust_gamma3_curve.png
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: color channel luminance with effect applied
+ \li
+ \li
+ \endtable
+ */
+ property variant gamma: Qt.vector3d(1.0, 1.0, 1.0)
+
+ /*!
+ This property defines the minimum input level for each color channel. It
+ sets the black-point, all pixels having lower value than this property
+ are rendered as black (per color channel). Increasing the value darkens
+ the dark areas.
+
+ The value ranges from "#00000000" to "#ffffffff". By default, the
+ property is set to \c "#00000000" (no change).
+
+ \table
+ \header
+ \li Output examples with different minimumInput values
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_minimumInput1.png
+ \li \image LevelAdjust_minimumInput2.png
+ \li \image LevelAdjust_minimumInput3.png
+ \row
+ \li \b { minimumInput: #00000000 }
+ \li \b { minimumInput: #00000040 }
+ \li \b { minimumInput: #00000070 }
+ \row
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \row
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \row
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \row
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \endtable
+
+ \table
+ \header
+ \li Pixel color channel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_default_curve.png
+ \li \image LevelAdjust_minimumInput2_curve.png
+ \li \image LevelAdjust_minimumInput3_curve.png
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: color channel luminance with effect applied
+ \li
+ \li
+ \endtable
+
+ */
+ property color minimumInput: Qt.rgba(0.0, 0.0, 0.0, 0.0)
+
+ /*!
+ This property defines the maximum input level for each color channel.
+ It sets the white-point, all pixels having higher value than this
+ property are rendered as white (per color channel).
+ Decreasing the value lightens the light areas.
+
+ The value ranges from "#ffffffff" to "#00000000". By default, the
+ property is set to \c "#ffffffff" (no change).
+
+ \table
+ \header
+ \li Output examples with different maximumInput values
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_maximumInput1.png
+ \li \image LevelAdjust_maximumInput2.png
+ \li \image LevelAdjust_maximumInput3.png
+ \row
+ \li \b { maximumInput: #FFFFFFFF }
+ \li \b { maximumInput: #FFFFFF80 }
+ \li \b { maximumInput: #FFFFFF30 }
+ \row
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \row
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \row
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \row
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \endtable
+
+ \table
+ \header
+ \li Pixel color channel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_default_curve.png
+ \li \image LevelAdjust_maximumInput2_curve.png
+ \li \image LevelAdjust_maximumInput3_curve.png
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: color channel luminance with effect applied
+ \li
+ \li
+ \endtable
+
+ */
+ property color maximumInput: Qt.rgba(1.0, 1.0, 1.0, 1.0)
+
+ /*!
+ This property defines the minimum output level for each color channel.
+ Increasing the value lightens the dark areas, reducing the contrast.
+
+ The value ranges from "#00000000" to "#ffffffff". By default, the
+ property is set to \c "#00000000" (no change).
+
+ \table
+ \header
+ \li Output examples with different minimumOutput values
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_minimumOutput1.png
+ \li \image LevelAdjust_minimumOutput2.png
+ \li \image LevelAdjust_minimumOutput3.png
+ \row
+ \li \b { minimumOutput: #00000000 }
+ \li \b { minimumOutput: #00000070 }
+ \li \b { minimumOutput: #000000A0 }
+ \row
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \row
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \row
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \li \l maximumOutput: #ffffff
+ \row
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \endtable
+
+ \table
+ \header
+ \li Pixel color channel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_default_curve.png
+ \li \image LevelAdjust_minimumOutput2_curve.png
+ \li \image LevelAdjust_minimumOutput3_curve.png
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: color channel luminance with effect applied
+ \li
+ \li
+ \endtable
+
+ */
+ property color minimumOutput: Qt.rgba(0.0, 0.0, 0.0, 0.0)
+
+ /*!
+ This property defines the maximum output level for each color channel.
+ Decreasing the value darkens the light areas, reducing the contrast.
+
+ The value ranges from "#ffffffff" to "#00000000". By default, the
+ property is set to \c "#ffffffff" (no change).
+
+ \table
+ \header
+ \li Output examples with different maximumOutput values
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_maximumOutput1.png
+ \li \image LevelAdjust_maximumOutput2.png
+ \li \image LevelAdjust_maximumOutput3.png
+ \row
+ \li \b { maximumOutput: #FFFFFFFF }
+ \li \b { maximumOutput: #FFFFFF80 }
+ \li \b { maximumOutput: #FFFFFF30 }
+ \row
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \li \l minimumInput: #000000
+ \row
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \li \l maximumInput: #ffffff
+ \row
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \li \l minimumOutput: #000000
+ \row
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \li \l gamma: Qt.vector3d(1.0, 1.0, 1.0)
+ \endtable
+
+ \table
+ \header
+ \li Pixel color channel luminance curves of the above images.
+ \li
+ \li
+ \row
+ \li \image LevelAdjust_default_curve.png
+ \li \image LevelAdjust_maximumOutput2_curve.png
+ \li \image LevelAdjust_maximumOutput3_curve.png
+ \row
+ \li X-axis: pixel original luminance
+ \li
+ \li
+ \row
+ \li Y-axis: color channel luminance with effect applied
+ \li
+ \li
+ \endtable
+ */
+ property color maximumOutput: Qt.rgba(1.0, 1.0, 1.0, 1.0)
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ interpolation: input && input.smooth ? SourceProxy.LinearInterpolation : SourceProxy.NearestInterpolation
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant minimumInputRGB: Qt.vector3d(rootItem.minimumInput.r, rootItem.minimumInput.g, rootItem.minimumInput.b)
+ property variant maximumInputRGB: Qt.vector3d(rootItem.maximumInput.r, rootItem.maximumInput.g, rootItem.maximumInput.b)
+ property real minimumInputAlpha: rootItem.minimumInput.a
+ property real maximumInputAlpha: rootItem.maximumInput.a
+ property variant minimumOutputRGB: Qt.vector3d(rootItem.minimumOutput.r, rootItem.minimumOutput.g, rootItem.minimumOutput.b)
+ property variant maximumOutputRGB: Qt.vector3d(rootItem.maximumOutput.r, rootItem.maximumOutput.g, rootItem.maximumOutput.b)
+ property real minimumOutputAlpha: rootItem.minimumOutput.a
+ property real maximumOutputAlpha: rootItem.maximumOutput.a
+ property variant gamma: Qt.vector3d(1.0 / Math.max(rootItem.gamma.x, 0.0001), 1.0 / Math.max(rootItem.gamma.y, 0.0001), 1.0 / Math.max(rootItem.gamma.z, 0.0001))
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/leveladjust.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LinearGradient.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LinearGradient.qml
new file mode 100644
index 00000000..1f73a218
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/LinearGradient.qml
@@ -0,0 +1,323 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype LinearGradient
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-gradient
+ \brief Draws a linear gradient.
+
+ A gradient is defined by two or more colors, which are blended seamlessly.
+ The colors start from the given start point and end to the given end point.
+
+ \table
+ \header
+ \li Effect applied
+ \row
+ \li \image LinearGradient.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet LinearGradient-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the starting point where the color at gradient
+ position of 0.0 is rendered. Colors at larger position values are
+ rendered linearly towards the end point. The point is given in pixels
+ and the default value is Qt.point(0, 0). Setting the default values for
+ the start and \l{LinearGradient::end}{end} results in a full height
+ linear gradient on the y-axis.
+
+ \table
+ \header
+ \li Output examples with different start values
+ \li
+ \li
+ \row
+ \li \image LinearGradient_start1.png
+ \li \image LinearGradient_start2.png
+ \li \image LinearGradient_start3.png
+ \row
+ \li \b { start: QPoint(0, 0) }
+ \li \b { start: QPoint(150, 150) }
+ \li \b { start: QPoint(300, 0) }
+ \row
+ \li \l end: QPoint(300, 300)
+ \li \l end: QPoint(300, 300)
+ \li \l end: QPoint(300, 300)
+ \endtable
+
+ */
+ property variant start: Qt.point(0, 0)
+
+ /*!
+ This property defines the ending point where the color at gradient
+ position of 1.0 is rendered. Colors at smaller position values are
+ rendered linearly towards the start point. The point is given in pixels
+ and the default value is Qt.point(0, height). Setting the default values
+ for the \l{LinearGradient::start}{start} and end results in a full
+ height linear gradient on the y-axis.
+
+ \table
+ \header
+ \li Output examples with different end values
+ \li
+ \li
+ \row
+ \li \image LinearGradient_end1.png
+ \li \image LinearGradient_end2.png
+ \li \image LinearGradient_end3.png
+ \row
+ \li \b { end: Qt.point(300, 300) }
+ \li \b { end: Qt.point(150, 150) }
+ \li \b { end: Qt.point(300, 0) }
+ \row
+ \li \l start: Qt.point(0, 0)
+ \li \l start: Qt.point(0, 0)
+ \li \l start: Qt.point(0, 0)
+ \endtable
+
+ */
+ property variant end: Qt.point(0, height)
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ /*!
+ This property defines the item that is going to be filled with gradient.
+ Source item gets rendered into an intermediate pixel buffer and the
+ alpha values from the result are used to determine the gradient's pixels
+ visibility in the display. The default value for source is undefined and
+ in that case whole effect area is filled with gradient.
+
+ \table
+ \header
+ \li Output examples with different source values
+ \li
+ \li
+ \row
+ \li \image LinearGradient_maskSource1.png
+ \li \image LinearGradient_maskSource2.png
+ \row
+ \li \b { source: undefined }
+ \li \b { source: Image { source: images/butterfly.png } }
+ \row
+ \li \l start: Qt.point(0, 0)
+ \li \l start: Qt.point(0, 0)
+ \row
+ \li \l end: Qt.point(300, 300)
+ \li \l end: Qt.point(300, 300)
+ \endtable
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+
+ /*!
+ A gradient is defined by two or more colors, which are blended
+ seamlessly. The colors are specified as a set of GradientStop child
+ items, each of which defines a position on the gradient from 0.0 to 1.0
+ and a color. The position of each GradientStop is defined by the
+ position property, and the color is definded by the color property.
+
+ \table
+ \header
+ \li Output examples with different gradient values
+ \li
+ \li
+ \row
+ \li \image LinearGradient_gradient1.png
+ \li \image LinearGradient_gradient2.png
+ \li \image LinearGradient_gradient3.png
+ \row
+ \li \b {gradient:} \code
+ Gradient {
+ GradientStop {
+ position: 0.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+ GradientStop {
+ position: 0.167
+ color: Qt.rgba(1, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.333
+ color: Qt.rgba(0, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.500
+ color: Qt.rgba(0, 1, 1, 1)
+ }
+ GradientStop {
+ position: 0.667
+ color: Qt.rgba(0, 0, 1, 1)
+ }
+ GradientStop {
+ position: 0.833
+ color: Qt.rgba(1, 0, 1, 1)
+ }
+ GradientStop {
+ position: 1.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+ }
+ \endcode
+ \li \b {gradient:} \code
+ Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#F0F0F0"
+ }
+ GradientStop {
+ position: 0.5
+ color: "#000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#F0F0F0"
+ }
+ }
+ \endcode
+ \li \b {gradient:} \code
+ Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#00000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#FF000000"
+ }
+ }
+ \endcode
+ \row
+ \li \l start: Qt.point(0, 0)
+ \li \l start: Qt.point(0, 0)
+ \li \l start: Qt.point(0, 0)
+ \row
+ \li \l end: Qt.point(300, 300)
+ \li \l end: Qt.point(300, 300)
+ \li \l end: Qt.point(300, 300)
+ \endtable
+
+ */
+ property Gradient gradient: Gradient {
+ GradientStop { position: 0.0; color: "white" }
+ GradientStop { position: 1.0; color: "black" }
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: gradientSource
+ sourceItem: Rectangle {
+ width: 16
+ height: 256
+ gradient: rootItem.gradient
+ smooth: true
+ }
+ smooth: true
+ hideSource: true
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+
+ anchors.fill: parent
+
+ property variant source: gradientSource
+ property variant maskSource: maskSourceProxy.output
+ property variant startPoint: Qt.point(start.x / width, start.y / height)
+ property real dx: end.x - start.x
+ property real dy: end.y - start.y
+ property real l: 1.0 / Math.sqrt(Math.pow(dx / width, 2.0) + Math.pow(dy / height, 2.0))
+ property real angle: Math.atan2(dx, dy)
+ property variant matrixData: Qt.point(Math.sin(angle), Math.cos(angle))
+
+ vertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/lineargradient.vert"
+
+ fragmentShader: maskSource == undefined ? noMaskShader : maskShader
+
+ onFragmentShaderChanged: lChanged()
+
+ property string maskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/lineargradient_mask.frag"
+ property string noMaskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/lineargradient_nomask.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/MaskedBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/MaskedBlur.qml
new file mode 100644
index 00000000..d777b0ae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/MaskedBlur.qml
@@ -0,0 +1,218 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2017 Jolla Ltd, author:
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype MaskedBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-blur
+ \brief Applies a blur effect with a varying intesity.
+
+ MaskedBlur effect softens the image by blurring it. The intensity of the
+ blur can be controlled for each pixel using maskSource so that some parts of
+ the source are blurred more than others.
+
+ Performing blur live is a costly operation. Fullscreen gaussian blur
+ with even a moderate number of samples will only run at 60 fps on highend
+ graphics hardware.
+
+ \table
+ \header
+ \li Source
+ \li MaskSource
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image MaskedBlur_mask.png
+ \li \image MaskedBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet MaskedBlur-example.qml example
+
+*/
+Item {
+ id: root
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property alias source: blur.source
+
+ /*!
+ This property defines the item that is controlling the final intensity
+ of the blur. The pixel alpha channel value from maskSource defines the
+ actual blur radius that is going to be used for blurring the
+ corresponding source pixel.
+
+ Opaque maskSource pixels produce blur with specified
+ \l{MaskedBlur::radius}{radius}, while transparent pixels suppress the
+ blur completely. Semitransparent maskSource pixels produce blur with a
+ radius that is interpolated according to the pixel transparency level.
+ */
+ property alias maskSource: maskProxy.input
+
+ /*!
+ This property defines the distance of the neighboring pixels which
+ affect the blurring of an individual pixel. A larger radius increases
+ the blur effect.
+
+ Depending on the radius value, value of the
+ \l{MaskedBlur::samples}{samples} should be set to sufficiently large to
+ ensure the visual quality.
+
+ The value ranges from 0.0 (no blur) to inf. By default, the property is
+ set to \c 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image MaskedBlur_radius1.png
+ \li \image MaskedBlur_radius2.png
+ \li \image MaskedBlur_radius3.png
+ \row
+ \li \b { radius: 0 }
+ \li \b { radius: 8 }
+ \li \b { radius: 16 }
+ \row
+ \li \l samples: 25
+ \li \l samples: 25
+ \li \l samples: 25
+ \endtable
+
+ */
+ property alias radius: blur.radius
+
+ /*!
+ This property defines how many samples are taken per pixel when blur
+ calculation is done. Larger value produces better quality, but is slower
+ to render.
+
+ Ideally, this value should be twice as large as the highest required
+ radius value plus 1, for example, if the radius is animated between 0.0
+ and 4.0, samples should be set to 9.
+
+ By default, the property is set to \c 9.
+
+ This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+ */
+ property alias samples: blur.samples
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance. Every time the source or effect
+ properties are changed, the pixels in the cache must be updated. Memory
+ consumption is increased, because an extra buffer of memory is required
+ for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property alias cached: cacheItem.visible
+
+ /*!
+ \internal
+
+ Kept for source compatibility only. Removed in Qt 5.6
+ ### Qt6: remove
+ */
+ property bool fast: false
+
+ /*!
+ \internal
+
+ Kept for source compatibility only. Removed in Qt 5.6
+
+ Doing transparent border on a masked source doesn't make any sense
+ as the padded exterior will have a mask alpha value of 0 which means
+ no blurring and as the padded exterior of the source is a transparent
+ pixel, the result is no pixels at all.
+
+ In Qt 5.6 and before, this worked based on that the mask source
+ was scaled up to fit the padded blur target rect, which would lead
+ to inconsistent and buggy results.
+
+ ### Qt6: remove
+ */
+ property bool transparentBorder;
+
+ GaussianBlur {
+ id: blur
+
+ source: root.source;
+ anchors.fill: parent
+ _maskSource: maskProxy.output;
+
+ SourceProxy {
+ id: maskProxy
+ }
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ x: -blur._kernelRadius
+ y: -blur._kernelRadius
+ width: blur.width + 2 * blur._kernelRadius
+ height: blur.height + 2 * blur._kernelRadius
+ visible: false
+ smooth: true
+ sourceRect: Qt.rect(-blur._kernelRadius, -blur._kernelRadius, width, height);
+ sourceItem: blur
+ hideSource: visible
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/OpacityMask.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/OpacityMask.qml
new file mode 100644
index 00000000..7dffb6d4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/OpacityMask.qml
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype OpacityMask
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-mask
+ \brief Masks the source item with another item.
+
+ \table
+ \header
+ \li Source
+ \li MaskSource
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image OpacityMask_mask.png
+ \li \image OpacityMask_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet OpacityMask-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be masked.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the item that is going to be used as the mask. The
+ mask item gets rendered into an intermediate pixel buffer and the alpha
+ values from the result are used to determine the source item's pixels
+ visibility in the display.
+
+ \table
+ \header
+ \li Original
+ \li Mask
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image OpacityMask_mask.png
+ \li \image OpacityMask_bug.png
+ \endtable
+ */
+ property variant maskSource
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting maskSource to the effect's parent.
+ */
+ property bool cached: false
+
+ /*!
+ This property controls how the alpha values of the sourceMask will behave.
+
+ If this property is \c false, the resulting opacity is the source alpha
+ multiplied with the mask alpha, \c{As * Am}.
+
+ If this property is \c true, the resulting opacity is the source alpha
+ multiplied with the inverse of the mask alpha, \c{As * (1 - Am)}.
+
+ The default is \c false.
+
+ \since 5.7
+ */
+ property bool invert: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.maskSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant maskSource: maskSourceProxy.output
+
+ anchors.fill: parent
+
+ fragmentShader: invert ? "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/opacitymask_invert.frag" : "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/opacitymask.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialBlur.qml
new file mode 100644
index 00000000..71d3b648
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialBlur.qml
@@ -0,0 +1,316 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype RadialBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-motion-blur
+ \brief Applies directional blur in a circular direction around the items
+ center point.
+
+ Effect creates perceived impression that the source item appears to be
+ rotating to the direction of the blur.
+
+ Other available motionblur effects are
+ \l{QtGraphicalEffects::ZoomBlur}{ZoomBlur} and
+ \l{QtGraphicalEffects::DirectionalBlur}{DirectionalBlur}.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image RadialBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example Usage
+
+ The following example shows how to apply the effect.
+ \snippet RadialBlur-example.qml example
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the direction for the blur and at the same time
+ the level of blurring. The larger the angle, the more the result becomes
+ blurred. The quality of the blur depends on
+ \l{RadialBlur::samples}{samples} property. If angle value is large, more
+ samples are needed to keep the visual quality at high level.
+
+ Allowed values are between 0.0 and 360.0. By default the property is set
+ to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different angle values
+ \li
+ \li
+ \row
+ \li \image RadialBlur_angle1.png
+ \li \image RadialBlur_angle2.png
+ \li \image RadialBlur_angle3.png
+ \row
+ \li \b { angle: 0.0 }
+ \li \b { angle: 15.0 }
+ \li \b { angle: 30.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+ */
+ property real angle: 0.0
+
+ /*!
+ This property defines how many samples are taken per pixel when blur
+ calculation is done. Larger value produces better quality, but is slower
+ to render.
+
+ This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+
+ Allowed values are between 0 and inf (practical maximum depends on GPU).
+ By default the property is set to \c 0 (no samples).
+
+ */
+ property int samples: 0
+
+ /*!
+ \qmlproperty real QtGraphicalEffects::RadialBlur::horizontalOffset
+ \qmlproperty real QtGraphicalEffects::RadialBlur::verticalOffset
+
+ These properties define the offset in pixels for the perceived center
+ point of the rotation.
+
+ Allowed values are between -inf and inf.
+ By default these properties are set to \c 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image RadialBlur_horizontalOffset1.png
+ \li \image RadialBlur_horizontalOffset2.png
+ \li \image RadialBlur_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: 75.0 }
+ \li \b { horizontalOffset: 0.0 }
+ \li \b { horizontalOffset: -75.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l angle: 20
+ \li \l angle: 20
+ \li \l angle: 20
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+ */
+ property real horizontalOffset: 0.0
+ property real verticalOffset: 0.0
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: shaderItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant center: Qt.point(0.5 + rootItem.horizontalOffset / parent.width, 0.5 + rootItem.verticalOffset / parent.height)
+ property bool transparentBorder: rootItem.transparentBorder && rootItem.samples > 1
+ property int samples: rootItem.samples
+ property real weight: 1.0 / Math.max(1.0, rootItem.samples)
+ property real angleSin: Math.sin(rootItem.angle/2 * Math.PI/180)
+ property real angleCos: Math.cos(rootItem.angle/2 * Math.PI/180)
+ property real angleSinStep: Math.sin(-rootItem.angle * Math.PI/180 / Math.max(1.0, rootItem.samples - 1))
+ property real angleCosStep: Math.cos(-rootItem.angle * Math.PI/180 / Math.max(1.0, rootItem.samples - 1))
+ property variant expandPixels: transparentBorder ? Qt.size(0.5 * parent.height, 0.5 * parent.width) : Qt.size(0,0)
+ property variant expand: transparentBorder ? Qt.size(expandPixels.width / width, expandPixels.height / height) : Qt.size(0,0)
+ property variant delta: Qt.size(1.0 / rootItem.width, 1.0 / rootItem.height)
+ property real w: parent.width
+ property real h: parent.height
+
+ x: transparentBorder ? -expandPixels.width - 1 : 0
+ y: transparentBorder ? -expandPixels.height - 1 : 0
+ width: transparentBorder ? parent.width + expandPixels.width * 2.0 + 2 : parent.width
+ height: transparentBorder ? parent.height + expandPixels.height * 2.0 + 2 : parent.height
+
+ property string fragmentShaderSkeleton: "
+ varying highp vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ uniform highp float angleSin;
+ uniform highp float angleCos;
+ uniform highp float angleSinStep;
+ uniform highp float angleCosStep;
+ uniform highp float weight;
+ uniform highp vec2 expand;
+ uniform highp vec2 center;
+ uniform highp vec2 delta;
+ uniform highp float w;
+ uniform highp float h;
+
+ void main(void) {
+ highp mat2 m;
+ gl_FragColor = vec4(0.0);
+ mediump vec2 texCoord = qt_TexCoord0;
+
+ PLACEHOLDER_EXPAND_STEPS
+
+ highp vec2 dir = vec2(texCoord.s * w - w * center.x, texCoord.t * h - h * center.y);
+ m[0] = vec2(angleCos, -angleSin);
+ m[1] = vec2(angleSin, angleCos);
+ dir *= m;
+
+ m[0] = vec2(angleCosStep, -angleSinStep);
+ m[1] = vec2(angleSinStep, angleCosStep);
+
+ PLACEHOLDER_UNROLLED_LOOP
+
+ gl_FragColor *= weight * qt_Opacity;
+ }
+ "
+
+ function buildFragmentShader() {
+ var shader = ""
+ if (GraphicsInfo.profile == GraphicsInfo.OpenGLCoreProfile)
+ shader += "#version 150 core\n#define varying in\n#define gl_FragColor fragColor\n#define texture2D texture\nout vec4 fragColor;\n"
+ shader += fragmentShaderSkeleton
+ var expandSteps = ""
+
+ if (transparentBorder) {
+ expandSteps += "texCoord = (texCoord - expand) / (1.0 - 2.0 * expand);"
+ }
+
+ var unrolledLoop = "gl_FragColor += texture2D(source, texCoord);\n"
+
+ if (rootItem.samples > 1) {
+ unrolledLoop = ""
+ for (var i = 0; i < rootItem.samples; i++)
+ unrolledLoop += "gl_FragColor += texture2D(source, center + dir * delta); dir *= m;\n"
+ }
+
+ shader = shader.replace("PLACEHOLDER_EXPAND_STEPS", expandSteps)
+ fragmentShader = shader.replace("PLACEHOLDER_UNROLLED_LOOP", unrolledLoop)
+ }
+
+ onFragmentShaderChanged: sourceChanged()
+ onSamplesChanged: buildFragmentShader()
+ onTransparentBorderChanged: buildFragmentShader()
+ Component.onCompleted: buildFragmentShader()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialGradient.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialGradient.qml
new file mode 100644
index 00000000..52b3ff3e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RadialGradient.qml
@@ -0,0 +1,410 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype RadialGradient
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-gradient
+ \brief Draws a radial gradient.
+
+ A gradient is defined by two or more colors, which are blended seamlessly.
+ The colors start from the middle of the item and end at the borders.
+
+ \table
+ \header
+ \li Effect applied
+ \row
+ \li \image RadialGradient.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet RadialGradient-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ /*!
+ \qmlproperty real RadialGradient::horizontalOffset
+ \qmlproperty real RadialGradient::verticalOffset
+
+ The horizontalOffset and verticalOffset properties define the offset in
+ pixels for the center point of the gradient compared to the item center.
+
+ The values range from -inf to inf. By default, these properties are set
+ to \c 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image RadialGradient_horizontalOffset1.png
+ \li \image RadialGradient_horizontalOffset2.png
+ \li \image RadialGradient_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: -150 }
+ \li \b { horizontalOffset: 0 }
+ \li \b { horizontalOffset: 150 }
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l horizontalRadius: 300
+ \li \l horizontalRadius: 300
+ \li \l horizontalRadius: 300
+ \row
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \li \l angle: 0
+ \endtable
+
+ */
+ property real horizontalOffset: 0.0
+ property real verticalOffset: 0.0
+
+ /*!
+ \qmlproperty real RadialGradient::horizontalRadius
+ \qmlproperty real RadialGradient::verticalRadius
+
+ The horizontalRadius and verticalRadius properties define the shape and
+ size of the radial gradient. If the radiuses are equal, the shape of the
+ gradient is a circle. If the horizontal and vertical radiuses differ,
+ the shape is elliptical. The radiuses are given in pixels.
+
+ The value ranges from -inf to inf. By default, horizontalRadius is bound
+ to width and verticalRadius is bound to height.
+
+ \table
+ \header
+ \li Output examples with different horizontalRadius values
+ \li
+ \li
+ \row
+ \li \image RadialGradient_horizontalRadius1.png
+ \li \image RadialGradient_horizontalRadius2.png
+ \row
+ \li \b { horizontalRadius: 300 }
+ \li \b { horizontalRadius: 100 }
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \row
+ \li \l gradient: QQuickGradient(0xa05fb10)
+ \li \l gradient: QQuickGradient(0xa05fb10)
+ \endtable
+
+ */
+ property real horizontalRadius: width
+ property real verticalRadius: height
+
+ /*!
+ This property defines the rotation of the gradient around its center
+ point. The rotation is only visible when the
+ \l{RadialGradient::horizontalRadius}{horizontalRadius} and
+ \l{RadialGradient::verticalRadius}{verticalRadius} properties are not
+ equal. The angle is given in degrees and the default value is \c 0.
+
+ \table
+ \header
+ \li Output examples with different angle values
+ \li
+ \li
+ \row
+ \li \image RadialGradient_angle1.png
+ \li \image RadialGradient_angle2.png
+ \li \image RadialGradient_angle3.png
+ \row
+ \li \b { angle: 0 }
+ \li \b { angle: 45 }
+ \li \b { angle: 90 }
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l horizontalRadius: 100
+ \li \l horizontalRadius: 100
+ \li \l horizontalRadius: 100
+ \row
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \endtable
+ */
+ property real angle: 0.0
+
+ /*!
+ This property defines the item that is going to be filled with gradient.
+ Source item gets rendered into an intermediate pixel buffer and the
+ alpha values from the result are used to determine the gradient's pixels
+ visibility in the display. The default value for source is undefined and
+ in that case whole effect area is filled with gradient.
+
+ \table
+ \header
+ \li Output examples with different source values
+ \li
+ \li
+ \row
+ \li \image RadialGradient_maskSource1.png
+ \li \image RadialGradient_maskSource2.png
+ \row
+ \li \b { source: undefined }
+ \li \b { source: Image { source: images/butterfly.png } }
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l horizontalRadius: 300
+ \li \l horizontalRadius: 300
+ \row
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \endtable
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ A gradient is defined by two or more colors, which are blended
+ seamlessly. The colors are specified as a set of GradientStop child
+ items, each of which defines a position on the gradient from 0.0 to 1.0
+ and a color. The position of each GradientStop is defined by setting the
+ position property. The color is defined by setting the color property.
+
+ \table
+ \header
+ \li Output examples with different gradient values
+ \li
+ \li
+ \row
+ \li \image RadialGradient_gradient1.png
+ \li \image RadialGradient_gradient2.png
+ \li \image RadialGradient_gradient3.png
+ \row
+ \li \b {gradient:} \code
+ Gradient {
+ GradientStop {
+ position: 0.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+ GradientStop {
+ position: 0.167
+ color: Qt.rgba(1, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.333
+ color: Qt.rgba(0, 1, 0, 1)
+ }
+ GradientStop {
+ position: 0.500
+ color: Qt.rgba(0, 1, 1, 1)
+ }
+ GradientStop {
+ position: 0.667
+ color: Qt.rgba(0, 0, 1, 1)
+ }
+ GradientStop {
+ position: 0.833
+ color: Qt.rgba(1, 0, 1, 1)
+ }
+ GradientStop {
+ position: 1.000
+ color: Qt.rgba(1, 0, 0, 1)
+ }
+ }
+ \endcode
+ \li \b {gradient:} \code
+ Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#F0F0F0"
+ }
+ GradientStop {
+ position: 0.5
+ color: "#000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#F0F0F0"
+ }
+ }
+ \endcode
+ \li \b {gradient:}
+ \code
+ Gradient {
+ GradientStop {
+ position: 0.0
+ color: "#00000000"
+ }
+ GradientStop {
+ position: 1.0
+ color: "#FF000000"
+ }
+ }
+ \endcode
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \row
+ \li \l horizontalRadius: 300
+ \li \l horizontalRadius: 300
+ \li \l horizontalRadius: 300
+ \row
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \li \l verticalRadius: 300
+ \row
+ \li \l angle: 0
+ \li \l angle: 0
+ \li \l angle: 0
+ \endtable
+ */
+ property Gradient gradient: Gradient {
+ GradientStop { position: 0.0; color: "white" }
+ GradientStop { position: 1.0; color: "black" }
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: gradientSource
+ sourceItem: Rectangle {
+ width: 16
+ height: 256
+ gradient: rootItem.gradient
+ smooth: true
+ }
+ smooth: true
+ hideSource: true
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant gradientImage: gradientSource
+ property variant maskSource: maskSourceProxy.output
+ property variant center: Qt.point(0.5 + rootItem.horizontalOffset / width, 0.5 + rootItem.verticalOffset / height)
+ property real horizontalRatio: rootItem.horizontalRadius > 0 ? width / (2 * rootItem.horizontalRadius) : width * 16384
+ property real verticalRatio: rootItem.verticalRadius > 0 ? height / (2 * rootItem.verticalRadius) : height * 16384
+ property real angle: -rootItem.angle / 360 * 2 * Math.PI
+ property variant matrixData: Qt.point(Math.sin(angle), Math.cos(angle))
+
+ anchors.fill: parent
+
+ vertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/radialgradient.vert"
+
+ fragmentShader: maskSource == undefined ? noMaskShader : maskShader
+
+ onFragmentShaderChanged: horizontalRatioChanged()
+
+ property string maskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/radialgradient_mask.frag"
+ property string noMaskShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/radialgradient_nomask.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RectangularGlow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RectangularGlow.qml
new file mode 100644
index 00000000..62862e30
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RectangularGlow.qml
@@ -0,0 +1,269 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype RectangularGlow
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-glow
+ \brief Generates a blurred and colorized rectangle, which gives
+ the impression that the source is glowing.
+
+ This effect is intended to have good performance. The shape of the glow is
+ limited to a rectangle with a custom corner radius. For situations where
+ custom shapes are required, consider \l {QtGraphicalEffects::Glow} {Glow}
+ effect.
+
+ \table
+ \header
+ \li Effect applied
+ \row
+ \li \image RectangularGlow_applied.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet RectangularGlow-example.qml example
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines how many pixels outside the item area are reached
+ by the glow.
+
+ The value ranges from 0.0 (no glow) to inf (infinite glow). By default,
+ the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different glowRadius values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_glowRadius1.png
+ \li \image RectangularGlow_glowRadius2.png
+ \li \image RectangularGlow_glowRadius3.png
+ \row
+ \li \b { glowRadius: 10 }
+ \li \b { glowRadius: 20 }
+ \li \b { glowRadius: 40 }
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+
+ */
+ property real glowRadius: 0.0
+
+ /*!
+ This property defines how large part of the glow color is strengthened
+ near the source edges.
+
+ The value ranges from 0.0 (no strength increase) to 1.0 (maximum
+ strength increase). By default, the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_spread1.png
+ \li \image RectangularGlow_spread2.png
+ \li \image RectangularGlow_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.5 }
+ \li \b { spread: 1.0 }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+ */
+ property real spread: 0.0
+
+ /*!
+ This property defines the RGBA color value which is used for the glow.
+
+ By default, the property is set to \c "white".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_color1.png
+ \li \image RectangularGlow_color2.png
+ \li \image RectangularGlow_color3.png
+ \row
+ \li \b { color: #ffffff }
+ \li \b { color: #55ff55 }
+ \li \b { color: #5555ff }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+ */
+ property color color: "white"
+
+ /*!
+ This property defines the corner radius that is used to draw a glow with
+ rounded corners.
+
+ The value ranges from 0.0 to half of the effective width or height of
+ the glow, whichever is smaller. This can be calculated with: \c{
+ min(width, height) / 2.0 + glowRadius}
+
+ By default, the property is bound to glowRadius property. The glow
+ behaves as if the rectangle was blurred when adjusting the glowRadius
+ property.
+
+ \table
+ \header
+ \li Output examples with different cornerRadius values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_cornerRadius1.png
+ \li \image RectangularGlow_cornerRadius2.png
+ \li \image RectangularGlow_cornerRadius3.png
+ \row
+ \li \b { cornerRadius: 0 }
+ \li \b { cornerRadius: 25 }
+ \li \b { cornerRadius: 50 }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \endtable
+ */
+ property real cornerRadius: glowRadius
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+
+ x: (parent.width - width) / 2.0
+ y: (parent.height - height) / 2.0
+ width: parent.width + rootItem.glowRadius * 2 + cornerRadius * 2
+ height: parent.height + rootItem.glowRadius * 2 + cornerRadius * 2
+
+ function clampedCornerRadius() {
+ var maxCornerRadius = Math.min(rootItem.width, rootItem.height) / 2 + glowRadius;
+ return Math.max(0, Math.min(rootItem.cornerRadius, maxCornerRadius))
+ }
+
+ property color color: rootItem.color
+ property real inverseSpread: 1.0 - rootItem.spread
+ property real relativeSizeX: ((inverseSpread * inverseSpread) * rootItem.glowRadius + cornerRadius * 2.0) / width
+ property real relativeSizeY: relativeSizeX * (width / height)
+ property real spread: rootItem.spread / 2.0
+ property real cornerRadius: clampedCornerRadius()
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/rectangularglow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RecursiveBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RecursiveBlur.qml
new file mode 100644
index 00000000..7d938023
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/RecursiveBlur.qml
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype RecursiveBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-blur
+ \brief Blurs repeatedly, providing a strong blur effect.
+
+ The RecursiveBlur effect softens the image by blurring it with an algorithm
+ that uses a recursive feedback loop to blur the source multiple times. The
+ effect may give more blurry results than
+ \l{QtGraphicalEffects::GaussianBlur}{GaussianBlur} or
+ \l{QtGraphicalEffects::FastBlur}{FastBlur}, but the result is produced
+ asynchronously and takes more time.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image RecursiveBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet RecursiveBlur-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the distance of neighboring pixels which influence
+ the blurring of individual pixels. A larger radius provides better
+ quality, but is slower to render.
+
+ \b Note: The radius value in this effect is not intended to be changed
+ or animated frequently. The correct way to use it is to set the correct
+ value and keep it unchanged for the whole duration of the iterative blur
+ sequence.
+
+ The value ranges from (no blur) to 16.0 (maximum blur step). By default,
+ the property is set to \c 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different radius values
+ \li
+ \li
+ \row
+ \li \image RecursiveBlur_radius1.png
+ \li \image RecursiveBlur_radius2.png
+ \li \image RecursiveBlur_radius3.png
+ \row
+ \li \b { radius: 2.5 }
+ \li \b { radius: 4.5 }
+ \li \b { radius: 7.5 }
+ \row
+ \li \l loops: 20
+ \li \l loops: 20
+ \li \l loops: 20
+ \endtable
+
+ */
+ property real radius: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool cached: false
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+
+ \table
+ \header
+ \li Output examples with different transparentBorder values
+ \li
+ \li
+ \row
+ \li \image RecursiveBlur_transparentBorder1.png
+ \li \image RecursiveBlur_transparentBorder2.png
+ \row
+ \li \b { transparentBorder: false }
+ \li \b { transparentBorder: true }
+ \row
+ \li \l loops: 20
+ \li \l loops: 20
+ \row
+ \li \l radius: 7.5
+ \li \l radius: 7.5
+ \endtable
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property defines the amount of blur iterations that are going to be
+ performed for the source. When the property changes, the iterative
+ blurring process starts. If the value is decreased or if the value
+ changes from zero to non-zero, a snapshot is taken from the source. The
+ snapshot is used as a starting point for the process.
+
+ The iteration loop tries to run as fast as possible. The speed might be
+ limited by the VSYNC or the time needed for one blur step, or both.
+ Sometimes it may be desirable to perform the blurring with a slower
+ pace. In that case, it may be convenient to control the property with
+ Animation which increases the value.
+
+ The value ranges from 0 to inf. By default, the property is set to \c 0.
+
+ \table
+ \header
+ \li Output examples with different loops values
+ \li
+ \li
+ \row
+ \li \image RecursiveBlur_loops1.png
+ \li \image RecursiveBlur_loops2.png
+ \li \image RecursiveBlur_loops3.png
+ \row
+ \li \b { loops: 4 }
+ \li \b { loops: 20 }
+ \li \b { loops: 70 }
+ \row
+ \li \l radius: 7.5
+ \li \l radius: 7.5
+ \li \l radius: 7.5
+ \endtable
+
+ */
+ property int loops: 0
+
+ /*!
+ This property holds the progress of asynchronous source blurring
+ process, from 0.0 (nothing blurred) to 1.0 (finished).
+ */
+ property real progress: loops > 0.0 ? Math.min(1.0, recursionTimer.counter / loops) : 0.0
+
+ onLoopsChanged: recursiveSource.scheduleUpdate()
+ onSourceChanged: recursionTimer.reset()
+ onRadiusChanged: recursionTimer.reset()
+ onTransparentBorderChanged: recursionTimer.reset()
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2, parent.height + 2) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: verticalBlur
+ smooth: true
+ visible: rootItem.cached
+ hideSource: visible
+ live: true
+ sourceItem: inputItem.visible ? inputItem : verticalBlur
+ }
+
+ Item {
+ id: recursionTimer
+ property int counter: 0
+
+ function reset() {
+ counter = 0
+ recursiveSource.scheduleUpdate()
+ }
+
+ function nextFrame() {
+ if (loops < counter)
+ recursionTimer.counter = 0
+
+ if (counter > 0)
+ recursiveSource.sourceItem = verticalBlur
+ else
+ recursiveSource.sourceItem = inputItem
+
+ if (counter < loops) {
+ recursiveSource.scheduleUpdate()
+ counter++
+ }
+ }
+ }
+
+ ShaderEffect {
+ id: inputItem
+ property variant source: sourceProxy.output
+ property real expandX: rootItem.transparentBorder ? (horizontalBlur.maximumRadius) / horizontalBlur.width : 0.0
+ property real expandY: rootItem.transparentBorder ? (horizontalBlur.maximumRadius) / horizontalBlur.height : 0.0
+
+ anchors.fill: verticalBlur
+ visible: !verticalBlur.visible
+
+ vertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/recursiveblur.vert"
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/recursiveblur.frag"
+ }
+
+ ShaderEffectSource {
+ id: recursiveSource
+ visible: false
+ smooth: true
+ hideSource: false
+ live: false
+ sourceItem: inputItem
+ recursive: true
+ onSourceItemChanged: scheduleUpdate()
+ onScheduledUpdateCompleted: recursionTimer.nextFrame()
+ }
+
+ GaussianDirectionalBlur {
+ id: verticalBlur
+ x: rootItem.transparentBorder ? -horizontalBlur.maximumRadius - 1 : 0
+ y: rootItem.transparentBorder ? -horizontalBlur.maximumRadius - 1 : 0
+ width: horizontalBlur.width + 2
+ height: horizontalBlur.height + 2
+
+ horizontalStep: 0.0
+ verticalStep: 1.0 / parent.height
+
+ source: ShaderEffectSource {
+ sourceItem: horizontalBlur
+ hideSource: true
+ visible: false
+ smooth: true
+ }
+
+ deviation: (radius + 1) / 2.3333
+ radius: rootItem.radius
+ maximumRadius: Math.ceil(rootItem.radius)
+ transparentBorder: false
+ visible: loops > 0
+ }
+
+ GaussianDirectionalBlur {
+ id: horizontalBlur
+ width: rootItem.transparentBorder ? parent.width + 2 * maximumRadius + 2 : parent.width
+ height: rootItem.transparentBorder ? parent.height + 2 * maximumRadius + 2 : parent.height
+
+ horizontalStep: 1.0 / parent.width
+ verticalStep: 0.0
+
+ source: recursiveSource
+ deviation: (radius + 1) / 2.3333
+ radius: rootItem.radius
+ maximumRadius: Math.ceil(rootItem.radius)
+ transparentBorder: false
+ visible: false
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ThresholdMask.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ThresholdMask.qml
new file mode 100644
index 00000000..204d8c93
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ThresholdMask.qml
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype ThresholdMask
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-mask
+ \brief Masks the source item with another item and applies a threshold
+ value.
+
+ The masking behavior can be controlled with the \l threshold value for the
+ mask pixels.
+
+ \table
+ \header
+ \li Source
+ \li MaskSource
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image ThresholdMask_mask.png
+ \li \image ThresholdMask_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet ThresholdMask-example.qml example
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be masked.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the item that is going to be used as the mask.
+ Mask item gets rendered into an intermediate pixel buffer and the alpha
+ values from the result are used to determine the source item's pixels
+ visibility in the display.
+
+ \table
+ \header
+ \li Original
+ \li Mask
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image ThresholdMask_mask.png
+ \li \image ThresholdMask_bug.png
+ \endtable
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting maskSource to the effect's parent.
+ */
+ property variant maskSource
+
+ /*!
+ This property defines a threshold value for the mask pixels. The mask
+ pixels that have an alpha value below this property are used to
+ completely mask away the corresponding pixels from the source item. The
+ mask pixels that have a higher alpha value are used to alphablend the
+ source item to the display.
+
+ The value ranges from 0.0 (alpha value 0) to 1.0 (alpha value 255). By
+ default, the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different threshold values
+ \li
+ \li
+ \row
+ \li \image ThresholdMask_threshold1.png
+ \li \image ThresholdMask_threshold2.png
+ \li \image ThresholdMask_threshold3.png
+ \row
+ \li \b { threshold: 0.0 }
+ \li \b { threshold: 0.5 }
+ \li \b { threshold: 0.7 }
+ \row
+ \li \l spread: 0.2
+ \li \l spread: 0.2
+ \li \l spread: 0.2
+ \endtable
+ */
+ property real threshold: 0.0
+
+ /*!
+ This property defines the smoothness of the mask edges near the
+ \l{ThresholdMask::threshold}{threshold} alpha value. Setting spread to
+ 0.0 uses mask normally with the specified threshold. Setting higher
+ spread values softens the transition from the transparent mask pixels
+ towards opaque mask pixels by adding interpolated values between them.
+
+ The value ranges from 0.0 (sharp mask edge) to 1.0 (smooth mask edge).
+ By default, the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image ThresholdMask_spread1.png
+ \li \image ThresholdMask_spread2.png
+ \li \image ThresholdMask_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.2 }
+ \li \b { spread: 0.8 }
+ \row
+ \li \l threshold: 0.4
+ \li \l threshold: 0.4
+ \li \l threshold: 0.4
+ \endtable
+
+ */
+ property real spread: 0.0
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.maskSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: parent
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant maskSource: maskSourceProxy.output
+ property real threshold: rootItem.threshold
+ property real spread: rootItem.spread
+
+ anchors.fill: parent
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/thresholdmask.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ZoomBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ZoomBlur.qml
new file mode 100644
index 00000000..66ba7102
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/ZoomBlur.qml
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+/*!
+ \qmltype ZoomBlur
+ \inqmlmodule QtGraphicalEffects
+ \since QtGraphicalEffects 1.0
+ \inherits QtQuick2::Item
+ \ingroup qtgraphicaleffects-motion-blur
+ \brief Applies directional blur effect towards source items center point.
+
+ Effect creates perceived impression that the source item appears to be
+ moving towards the center point in Z-direction or that the camera appears
+ to be zooming rapidly. Other available motion blur effects are
+ \l{QtGraphicalEffects::DirectionalBlur}{DirectionalBlur}
+ and \l{QtGraphicalEffects::RadialBlur}{RadialBlur}.
+
+ \table
+ \header
+ \li Source
+ \li Effect applied
+ \row
+ \li \image Original_bug.png
+ \li \image ZoomBlur_bug.png
+ \endtable
+
+ \note This effect is available when running with OpenGL.
+
+ \section1 Example
+
+ The following example shows how to apply the effect.
+ \snippet ZoomBlur-example.qml example
+
+*/
+Item {
+ id: rootItem
+
+ /*!
+ This property defines the source item that is going to be blurred.
+
+ \note It is not supported to let the effect include itself, for
+ instance by setting source to the effect's parent.
+ */
+ property variant source
+
+ /*!
+ This property defines the maximum perceived amount of movement for each
+ pixel. The amount is smaller near the center and reaches the specified
+ value at the edges.
+
+ The quality of the blur depends on \l{ZoomBlur::samples}{samples}
+ property. If length value is large, more samples are needed to keep the
+ visual quality at high level.
+
+ The value ranges from 0.0 to inf. By default the property is set to \c
+ 0.0 (no blur).
+
+ \table
+ \header
+ \li Output examples with different length values
+ \li
+ \li
+ \row
+ \li \image ZoomBlur_length1.png
+ \li \image ZoomBlur_length2.png
+ \li \image ZoomBlur_length3.png
+ \row
+ \li \b { length: 0.0 }
+ \li \b { length: 32.0 }
+ \li \b { length: 48.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \li \l horizontalOffset: 0
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+
+ */
+ property real length: 0.0
+
+ /*!
+ This property defines how many samples are taken per pixel when blur
+ calculation is done. Larger value produces better quality, but is slower
+ to render.
+
+ This property is not intended to be animated. Changing this property may
+ cause the underlying OpenGL shaders to be recompiled.
+
+ Allowed values are between 0 and inf (practical maximum depends on GPU).
+ By default the property is set to \c 0 (no samples).
+
+ */
+ property int samples: 0
+
+ /*!
+ \qmlproperty real QtGraphicalEffects::ZoomBlur::horizontalOffset
+ \qmlproperty real QtGraphicalEffects::ZoomBlur::verticalOffset
+
+ These properties define an offset in pixels for the blur direction
+ center point.
+
+ The values range from -inf to inf. By default these properties are set
+ to \c 0.
+
+ \table
+ \header
+ \li Output examples with different horizontalOffset values
+ \li
+ \li
+ \row
+ \li \image ZoomBlur_horizontalOffset1.png
+ \li \image ZoomBlur_horizontalOffset2.png
+ \li \image ZoomBlur_horizontalOffset3.png
+ \row
+ \li \b { horizontalOffset: 100.0 }
+ \li \b { horizontalOffset: 0.0 }
+ \li \b { horizontalOffset: -100.0 }
+ \row
+ \li \l samples: 24
+ \li \l samples: 24
+ \li \l samples: 24
+ \row
+ \li \l length: 32
+ \li \l length: 32
+ \li \l length: 32
+ \row
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \li \l verticalOffset: 0
+ \endtable
+ */
+ property real horizontalOffset: 0.0
+ property real verticalOffset: 0.0
+
+ /*!
+ This property defines the blur behavior near the edges of the item,
+ where the pixel blurring is affected by the pixels outside the source
+ edges.
+
+ If the property is set to \c true, the pixels outside the source are
+ interpreted to be transparent, which is similar to OpenGL
+ clamp-to-border extension. The blur is expanded slightly outside the
+ effect item area.
+
+ If the property is set to \c false, the pixels outside the source are
+ interpreted to contain the same color as the pixels at the edge of the
+ item, which is similar to OpenGL clamp-to-edge behavior. The blur does
+ not expand outside the effect item area.
+
+ By default, the property is set to \c false.
+
+ */
+ property bool transparentBorder: false
+
+ /*!
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property variant center: Qt.point(0.5 + rootItem.horizontalOffset / width, 0.5 + rootItem.verticalOffset / height)
+ property real len: rootItem.length
+ property bool transparentBorder: rootItem.transparentBorder
+ property real samples: rootItem.samples
+ property real weight: 1.0 / Math.max(1.0, rootItem.samples)
+ property variant expandPixels: transparentBorder ? Qt.size(rootItem.samples, rootItem.samples) : Qt.size(0,0)
+ property variant expand: transparentBorder ? Qt.size(expandPixels.width / width, expandPixels.height / height) : Qt.size(0,0)
+ property variant delta: Qt.size(1.0 / rootItem.width, 1.0 / rootItem.height)
+
+ x: transparentBorder ? -expandPixels.width - 1 : 0
+ y: transparentBorder ? -expandPixels.height - 1 : 0
+ width: transparentBorder ? parent.width + 2.0 * expandPixels.width + 2 : parent.width
+ height: transparentBorder ? parent.height + 2.0 * expandPixels.height + 2 : parent.height
+
+ property string fragmentShaderSkeleton: "
+ varying highp vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ uniform highp float len;
+ uniform highp float weight;
+ uniform highp float samples;
+ uniform highp vec2 center;
+ uniform highp vec2 expand;
+ uniform highp vec2 delta;
+
+ void main(void) {
+ mediump vec2 texCoord = qt_TexCoord0;
+ mediump vec2 centerCoord = center;
+
+ PLACEHOLDER_EXPAND_STEPS
+
+ highp vec2 dir = vec2(centerCoord.x - texCoord.s, centerCoord.y - texCoord.t);
+ dir /= max(1.0, length(dir) * 2.0);
+ highp vec2 shift = delta * len * dir * 2.0 / max(1.0, samples - 1.0);
+ gl_FragColor = vec4(0.0);
+
+ PLACEHOLDER_UNROLLED_LOOP
+
+ gl_FragColor *= weight * qt_Opacity;
+ }
+ "
+
+ function buildFragmentShader() {
+ var shader = ""
+ if (GraphicsInfo.profile == GraphicsInfo.OpenGLCoreProfile)
+ shader += "#version 150 core\n#define varying in\n#define gl_FragColor fragColor\n#define texture2D texture\nout vec4 fragColor;\n"
+ shader += fragmentShaderSkeleton
+ var expandSteps = ""
+
+ if (transparentBorder) {
+ expandSteps += "centerCoord = (centerCoord - expand) / (1.0 - 2.0 * expand);"
+ expandSteps += "texCoord = (texCoord - expand) / (1.0 - 2.0 * expand);"
+ }
+
+ var unrolledLoop = "gl_FragColor += texture2D(source, texCoord);\n"
+
+ if (rootItem.samples > 1) {
+ unrolledLoop = ""
+ for (var i = 0; i < rootItem.samples; i++)
+ unrolledLoop += "gl_FragColor += texture2D(source, texCoord); texCoord += shift;\n"
+ }
+
+ shader = shader.replace("PLACEHOLDER_EXPAND_STEPS", expandSteps)
+ fragmentShader = shader.replace("PLACEHOLDER_UNROLLED_LOOP", unrolledLoop)
+ }
+
+ onFragmentShaderChanged: sourceChanged()
+ onSamplesChanged: buildFragmentShader()
+ onTransparentBorderChanged: buildFragmentShader()
+ Component.onCompleted: buildFragmentShader()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/plugins.qmltypes
new file mode 100644
index 00000000..f8058435
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/plugins.qmltypes
@@ -0,0 +1,11 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtGraphicalEffects 1.15'
+
+Module {
+ dependencies: ["QtQuick 2.12", "QtQuick.Window 2.12"]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qml
new file mode 100644
index 00000000..e9927ea4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 Jolla Ltd, author:
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.12
+import QtGraphicalEffects.private 1.12
+import QtGraphicalEffects 1.12
+
+Item {
+ id: root
+
+ property variant source
+ property real radius: Math.floor(samples / 2)
+ property int samples: 9
+ property color color: "black"
+ property real horizontalOffset: 0
+ property real verticalOffset: 0
+ property real spread: 0.0
+ property bool cached: false
+ property bool transparentBorder: true
+
+ GaussianBlur {
+ id: blur
+ width: parent.width
+ height: parent.height
+ x: Math.round(horizontalOffset)
+ y: Math.round(verticalOffset)
+ source: root.source
+ radius: root.radius * Screen.devicePixelRatio
+ samples: root.samples * Screen.devicePixelRatio
+ _thickness: root.spread
+ transparentBorder: root.transparentBorder
+
+
+ _color: root.color;
+ _alphaOnly: true
+ // ignoreDevicePixelRatio: root.ignoreDevicePixelRatio
+
+ ShaderEffect {
+ x: blur._outputRect.x - parent.x
+ y: blur._outputRect.y - parent.y
+ width: transparentBorder ? blur._outputRect.width : blur.width
+ height: transparentBorder ? blur._outputRect.height : blur.height
+ property variant source: blur._output;
+ }
+
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ x: -blur._kernelRadius + horizontalOffset
+ y: -blur._kernelRadius + verticalOffset
+ width: blur.width + 2 * blur._kernelRadius
+ height: blur.height + 2 * blur._kernelRadius
+ visible: root.cached
+ smooth: true
+ sourceRect: Qt.rect(-blur._kernelRadius, -blur._kernelRadius, width, height);
+ sourceItem: blur
+ hideSource: visible
+ }
+
+
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qmlc
new file mode 100644
index 00000000..6d90ee60
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/DropShadowBase.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qml
new file mode 100644
index 00000000..5c737f1f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qml
@@ -0,0 +1,331 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property real spread: 0.0
+ property real blur: 0.0
+ property color color: "white"
+ property bool transparentBorder: false
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ property string __internalBlurVertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.vert"
+
+ property string __internalBlurFragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.frag"
+
+ ShaderEffect {
+ id: level0
+ property variant source: sourceProxy.output
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: level1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: level0
+ hideSource: rootItem.visible
+ sourceRect: transparentBorder ? Qt.rect(-64, -64, shaderItem.width, shaderItem.height) : Qt.rect(0,0,0,0)
+ smooth: true
+ visible: false
+ }
+
+ ShaderEffect {
+ id: effect1
+ property variant source: level1
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level2
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level2
+ width: level1.width / 2
+ height: level1.height / 2
+ sourceItem: effect1
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect2
+ property variant source: level2
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level3
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level3
+ width: level2.width / 2
+ height: level2.height / 2
+ sourceItem: effect2
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect3
+ property variant source: level3
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level4
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level4
+ width: level3.width / 2
+ height: level3.height / 2
+ sourceItem: effect3
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect4
+ property variant source: level4
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level5
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level5
+ width: level4.width / 2
+ height: level4.height / 2
+ sourceItem: effect4
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect5
+ property variant source: level5
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level6
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level6
+ width: level5.width / 2
+ height: level5.height / 2
+ sourceItem: effect5
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ Item {
+ id: dummysource
+ width: 1
+ height: 1
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: dummy
+ width: 1
+ height: 1
+ sourceItem: dummysource
+ visible: false
+ smooth: false
+ live: false
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ x: transparentBorder ? -64 : 0
+ y: transparentBorder ? -64 : 0
+ width: transparentBorder ? parent.width + 128 : parent.width
+ height: transparentBorder ? parent.height + 128 : parent.height
+
+ property variant source1: level1
+ property variant source2: level2
+ property variant source3: level3
+ property variant source4: level4
+ property variant source5: level5
+ property variant source6: level6
+ property real lod: rootItem.blur
+
+ property real weight1;
+ property real weight2;
+ property real weight3;
+ property real weight4;
+ property real weight5;
+ property real weight6;
+
+ property real spread: 1.0 - (rootItem.spread * 0.98)
+ property alias color: rootItem.color
+
+ function weight(v) {
+ if (v <= 0.0)
+ return 1
+ if (v >= 0.5)
+ return 0
+
+ return 1.0 - v / 0.5
+ }
+
+ function calculateWeights() {
+
+ var w1 = weight(Math.abs(lod - 0.100))
+ var w2 = weight(Math.abs(lod - 0.300))
+ var w3 = weight(Math.abs(lod - 0.500))
+ var w4 = weight(Math.abs(lod - 0.700))
+ var w5 = weight(Math.abs(lod - 0.900))
+ var w6 = weight(Math.abs(lod - 1.100))
+
+ var sum = w1 + w2 + w3 + w4 + w5 + w6;
+ weight1 = w1 / sum;
+ weight2 = w2 / sum;
+ weight3 = w3 / sum;
+ weight4 = w4 / sum;
+ weight5 = w5 / sum;
+ weight6 = w6 / sum;
+
+ upateSources()
+ }
+
+ function upateSources() {
+ var sources = new Array();
+ var weights = new Array();
+
+ if (weight1 > 0) {
+ sources.push(level1)
+ weights.push(weight1)
+ }
+
+ if (weight2 > 0) {
+ sources.push(level2)
+ weights.push(weight2)
+ }
+
+ if (weight3 > 0) {
+ sources.push(level3)
+ weights.push(weight3)
+ }
+
+ if (weight4 > 0) {
+ sources.push(level4)
+ weights.push(weight4)
+ }
+
+ if (weight5 > 0) {
+ sources.push(level5)
+ weights.push(weight5)
+ }
+
+ if (weight6 > 0) {
+ sources.push(level6)
+ weights.push(weight6)
+ }
+
+ for (var j = sources.length; j < 6; j++) {
+ sources.push(dummy)
+ weights.push(0.0)
+ }
+
+ source1 = sources[0]
+ source2 = sources[1]
+ source3 = sources[2]
+ source4 = sources[3]
+ source5 = sources[4]
+ source6 = sources[5]
+
+ weight1 = weights[0]
+ weight2 = weights[1]
+ weight3 = weights[2]
+ weight4 = weights[3]
+ weight5 = weights[4]
+ weight6 = weights[5]
+ }
+
+ Component.onCompleted: calculateWeights()
+
+ onLodChanged: calculateWeights()
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastglow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qmlc
new file mode 100644
index 00000000..e445439a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastGlow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qml
new file mode 100644
index 00000000..bd361ca7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qml
@@ -0,0 +1,335 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property real blur: 0.0
+ property real horizontalOffset: 0
+ property real verticalOffset: 0
+ property real spread: 0.0
+ property color color: "black"
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ property string __internalBlurVertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.vert"
+
+ property string __internalBlurFragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.frag"
+
+ ShaderEffect {
+ id: level0
+ property variant source: sourceProxy.output
+ property real horizontalOffset: rootItem.horizontalOffset / rootItem.width
+ property real verticalOffset: rootItem.verticalOffset / rootItem.width
+ property color color: rootItem.color
+
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastinnershadow_level0.frag"
+ }
+
+ ShaderEffectSource {
+ id: level1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: level0
+ hideSource: rootItem.visible
+ smooth: true
+ visible: false
+ }
+
+ ShaderEffect {
+ id: effect1
+ property variant source: level1
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level2
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level2
+ width: level1.width / 2
+ height: level1.height / 2
+ sourceItem: effect1
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect2
+ property variant source: level2
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level3
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level3
+ width: level2.width / 2
+ height: level2.height / 2
+ sourceItem: effect2
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect3
+ property variant source: level3
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level4
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level4
+ width: level3.width / 2
+ height: level3.height / 2
+ sourceItem: effect3
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect4
+ property variant source: level4
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level5
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level5
+ width: level4.width / 2
+ height: level4.height / 2
+ sourceItem: effect4
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect5
+ property variant source: level5
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level6
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level6
+ width: level5.width / 2
+ height: level5.height / 2
+ sourceItem: effect5
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ Item {
+ id: dummysource
+ width: 1
+ height: 1
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: dummy
+ width: 1
+ height: 1
+ sourceItem: dummysource
+ visible: false
+ smooth: false
+ live: false
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ width: parent.width
+ height: parent.height
+
+ property variant original: sourceProxy.output
+ property variant source1: level1
+ property variant source2: level2
+ property variant source3: level3
+ property variant source4: level4
+ property variant source5: level5
+ property variant source6: level6
+ property real lod: rootItem.blur
+
+ property real weight1;
+ property real weight2;
+ property real weight3;
+ property real weight4;
+ property real weight5;
+ property real weight6;
+
+ property real spread: 1.0 - (rootItem.spread * 0.98)
+ property color color: rootItem.color
+
+ function weight(v) {
+ if (v <= 0.0)
+ return 1
+ if (v >= 0.5)
+ return 0
+
+ return 1.0 - v / 0.5
+ }
+
+ function calculateWeights() {
+
+ var w1 = weight(Math.abs(lod - 0.100))
+ var w2 = weight(Math.abs(lod - 0.300))
+ var w3 = weight(Math.abs(lod - 0.500))
+ var w4 = weight(Math.abs(lod - 0.700))
+ var w5 = weight(Math.abs(lod - 0.900))
+ var w6 = weight(Math.abs(lod - 1.100))
+
+ var sum = w1 + w2 + w3 + w4 + w5 + w6;
+ weight1 = w1 / sum;
+ weight2 = w2 / sum;
+ weight3 = w3 / sum;
+ weight4 = w4 / sum;
+ weight5 = w5 / sum;
+ weight6 = w6 / sum;
+
+ upateSources()
+ }
+
+ function upateSources() {
+ var sources = new Array();
+ var weights = new Array();
+
+ if (weight1 > 0) {
+ sources.push(level1)
+ weights.push(weight1)
+ }
+
+ if (weight2 > 0) {
+ sources.push(level2)
+ weights.push(weight2)
+ }
+
+ if (weight3 > 0) {
+ sources.push(level3)
+ weights.push(weight3)
+ }
+
+ if (weight4 > 0) {
+ sources.push(level4)
+ weights.push(weight4)
+ }
+
+ if (weight5 > 0) {
+ sources.push(level5)
+ weights.push(weight5)
+ }
+
+ if (weight6 > 0) {
+ sources.push(level6)
+ weights.push(weight6)
+ }
+
+ for (var j = sources.length; j < 6; j++) {
+ sources.push(dummy)
+ weights.push(0.0)
+ }
+
+ source1 = sources[0]
+ source2 = sources[1]
+ source3 = sources[2]
+ source4 = sources[3]
+ source5 = sources[4]
+ source6 = sources[5]
+
+ weight1 = weights[0]
+ weight2 = weights[1]
+ weight3 = weights[2]
+ weight4 = weights[3]
+ weight5 = weights[4]
+ weight6 = weights[5]
+ }
+
+ Component.onCompleted: calculateWeights()
+
+ onLodChanged: calculateWeights()
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastinnershadow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qmlc
new file mode 100644
index 00000000..8f65102a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastInnerShadow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qml
new file mode 100644
index 00000000..56800c65
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qml
@@ -0,0 +1,247 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property variant maskSource
+ property real blur: 0.0
+ property bool transparentBorder: false
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.maskSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ smooth: rootItem.blur > 0
+ }
+
+ property string __internalBlurVertexShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.vert"
+
+ property string __internalBlurFragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastblur_internal.frag"
+
+ ShaderEffect {
+ id: mask0
+ property variant source: maskSourceProxy.output
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: masklevel1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: mask0
+ hideSource: rootItem.visible
+ sourceRect: transparentBorder ? Qt.rect(-64, -64, shaderItem.width, shaderItem.height) : Qt.rect(0, 0, 0, 0)
+ visible: false
+ smooth: rootItem.blur > 0
+ }
+
+ ShaderEffect {
+ id: level0
+ property variant source: sourceProxy.output
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: level1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: level0
+ hideSource: rootItem.visible
+ sourceRect: transparentBorder ? Qt.rect(-64, -64, shaderItem.width, shaderItem.height) : Qt.rect(0, 0, 0, 0)
+ visible: false
+ smooth: rootItem.blur > 0
+ }
+
+ ShaderEffect {
+ id: effect1
+ property variant source: level1
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level2
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level2
+ width: level1.width / 2
+ height: level1.height / 2
+ sourceItem: effect1
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect2
+ property variant source: level2
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level3
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level3
+ width: level2.width / 2
+ height: level2.height / 2
+ sourceItem: effect2
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect3
+ property variant source: level3
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level4
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level4
+ width: level3.width / 2
+ height: level3.height / 2
+ sourceItem: effect3
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect4
+ property variant source: level4
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level5
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level5
+ width: level4.width / 2
+ height: level4.height / 2
+ sourceItem: effect4
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect5
+ property variant source: level5
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level6
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level6
+ width: level5.width / 2
+ height: level5.height / 2
+ sourceItem: effect5
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant mask: masklevel1
+ property variant source1: level1
+ property variant source2: level2
+ property variant source3: level3
+ property variant source4: level4
+ property variant source5: level5
+ property variant source6: level6
+ property real lod: Math.sqrt(rootItem.blur) * 1.2 - 0.2
+ property real weight1
+ property real weight2
+ property real weight3
+ property real weight4
+ property real weight5
+ property real weight6
+
+ x: transparentBorder ? -64 : 0
+ y: transparentBorder ? -64 : 0
+ width: transparentBorder ? parent.width + 128 : parent.width
+ height: transparentBorder ? parent.height + 128 : parent.height
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/fastmaskedblur.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qmlc
new file mode 100644
index 00000000..cdb6bb36
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/FastMaskedBlur.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qml
new file mode 100644
index 00000000..4d52b2ed
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qml
@@ -0,0 +1,289 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property real deviation: (radius + 1) / 3.3333
+ property real radius: 0.0
+ property int maximumRadius: 0
+ property real horizontalStep: 0.0
+ property real verticalStep: 0.0
+ property bool transparentBorder: false
+ property bool cached: false
+
+ property bool enableColor: false
+ property color color: "white"
+ property real spread: 0.0
+
+ property bool enableMask: false
+ property variant maskSource
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.maskSource
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: rootItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ property variant source: sourceProxy.output
+ property real deviation: Math.max(0.1, rootItem.deviation)
+ property real radius: rootItem.radius
+ property int maxRadius: rootItem.maximumRadius
+ property bool transparentBorder: rootItem.transparentBorder
+ property real gaussianSum: 0.0
+ property real startIndex: 0.0
+ property real deltaFactor: (2 * radius - 1) / (maxRadius * 2 - 1)
+ property real expandX: transparentBorder && rootItem.horizontalStep > 0 ? maxRadius / width : 0.0
+ property real expandY: transparentBorder && rootItem.verticalStep > 0 ? maxRadius / height : 0.0
+ property variant gwts: []
+ property variant delta: Qt.vector3d(rootItem.horizontalStep * deltaFactor, rootItem.verticalStep * deltaFactor, startIndex);
+ property variant factor_0_2: Qt.vector3d(gwts[0], gwts[1], gwts[2]);
+ property variant factor_3_5: Qt.vector3d(gwts[3], gwts[4], gwts[5]);
+ property variant factor_6_8: Qt.vector3d(gwts[6], gwts[7], gwts[8]);
+ property variant factor_9_11: Qt.vector3d(gwts[9], gwts[10], gwts[11]);
+ property variant factor_12_14: Qt.vector3d(gwts[12], gwts[13], gwts[14]);
+ property variant factor_15_17: Qt.vector3d(gwts[15], gwts[16], gwts[17]);
+ property variant factor_18_20: Qt.vector3d(gwts[18], gwts[19], gwts[20]);
+ property variant factor_21_23: Qt.vector3d(gwts[21], gwts[22], gwts[23]);
+ property variant factor_24_26: Qt.vector3d(gwts[24], gwts[25], gwts[26]);
+ property variant factor_27_29: Qt.vector3d(gwts[27], gwts[28], gwts[29]);
+ property variant factor_30_31: Qt.point(gwts[30], gwts[31]);
+
+ property color color: rootItem.color
+ property real spread: 1.0 - (rootItem.spread * 0.98)
+ property variant maskSource: maskSourceProxy.output
+
+ anchors.fill: rootItem
+
+ function gausFunc(x){
+ //Gaussian function = h(x):=(1/sqrt(2*3.14159*(D^2))) * %e^(-(x^2)/(2*(D^2)));
+ return (1.0 / Math.sqrt(2 * Math.PI * (Math.pow(shaderItem.deviation, 2)))) * Math.pow(Math.E, -((Math.pow(x, 2)) / (2 * (Math.pow(shaderItem.deviation, 2)))));
+ }
+
+ function updateGaussianWeights() {
+ gaussianSum = 0.0;
+ startIndex = -maxRadius + 0.5
+
+ var n = new Array(32);
+ for (var j = 0; j < 32; j++)
+ n[j] = 0;
+
+ var max = maxRadius * 2
+ var delta = (2 * radius - 1) / (max - 1);
+ for (var i = 0; i < max; i++) {
+ n[i] = gausFunc(-radius + 0.5 + i * delta);
+ gaussianSum += n[i];
+ }
+
+ gwts = n;
+ }
+
+ function buildFragmentShader() {
+
+ var shaderSteps = [
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_0_2.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_3_5.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_6_8.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_9_11.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_12_14.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_15_17.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_18_20.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_21_23.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_24_26.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.y; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_27_29.z; texCoord += shift;",
+
+ "gl_FragColor += texture2D(source, texCoord) * factor_30_31.x; texCoord += shift;",
+ "gl_FragColor += texture2D(source, texCoord) * factor_30_31.y; texCoord += shift;"
+ ]
+
+ var shader = ""
+ if (GraphicsInfo.profile == GraphicsInfo.OpenGLCoreProfile)
+ shader += "#version 150 core\n#define varying in\n#define gl_FragColor fragColor\n#define texture2D texture\nout vec4 fragColor;\n"
+ shader += fragmentShaderBegin
+ var samples = maxRadius * 2
+ if (samples > 32) {
+ console.log("DirectionalGaussianBlur.qml WARNING: Maximum of blur radius (16) exceeded!")
+ samples = 32
+ }
+
+ for (var i = 0; i < samples; i++) {
+ shader += shaderSteps[i]
+ }
+
+ shader += fragmentShaderEnd
+
+ var colorizeSteps = ""
+ var colorizeUniforms = ""
+
+ var maskSteps = ""
+ var maskUniforms = ""
+
+ if (enableColor) {
+ colorizeSteps += "gl_FragColor = mix(vec4(0), color, clamp((gl_FragColor.a - 0.0) / (spread - 0.0), 0.0, 1.0));\n"
+ colorizeUniforms += "uniform highp vec4 color;\n"
+ colorizeUniforms += "uniform highp float spread;\n"
+ }
+
+ if (enableMask) {
+ maskSteps += "shift *= texture2D(maskSource, qt_TexCoord0).a;\n"
+ maskUniforms += "uniform sampler2D maskSource;\n"
+ }
+
+ shader = shader.replace("PLACEHOLDER_COLORIZE_STEPS", colorizeSteps)
+ shader = shader.replace("PLACEHOLDER_COLORIZE_UNIFORMS", colorizeUniforms)
+ shader = shader.replace("PLACEHOLDER_MASK_STEPS", maskSteps)
+ shader = shader.replace("PLACEHOLDER_MASK_UNIFORMS", maskUniforms)
+
+ fragmentShader = shader
+ }
+
+ onDeviationChanged: updateGaussianWeights()
+
+ onRadiusChanged: updateGaussianWeights()
+
+ onTransparentBorderChanged: {
+ buildFragmentShader()
+ updateGaussianWeights()
+ }
+
+ onMaxRadiusChanged: {
+ buildFragmentShader()
+ updateGaussianWeights()
+ }
+
+ Component.onCompleted: {
+ buildFragmentShader()
+ updateGaussianWeights()
+ }
+
+ property string fragmentShaderBegin: "
+ varying mediump vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ uniform highp vec3 delta;
+ uniform highp vec3 factor_0_2;
+ uniform highp vec3 factor_3_5;
+ uniform highp vec3 factor_6_8;
+ uniform highp vec3 factor_9_11;
+ uniform highp vec3 factor_12_14;
+ uniform highp vec3 factor_15_17;
+ uniform highp vec3 factor_18_20;
+ uniform highp vec3 factor_21_23;
+ uniform highp vec3 factor_24_26;
+ uniform highp vec3 factor_27_29;
+ uniform highp vec3 factor_30_31;
+ uniform highp float gaussianSum;
+ uniform highp float expandX;
+ uniform highp float expandY;
+ PLACEHOLDER_MASK_UNIFORMS
+ PLACEHOLDER_COLORIZE_UNIFORMS
+
+ void main() {
+ highp vec2 shift = vec2(delta.x, delta.y);
+
+ PLACEHOLDER_MASK_STEPS
+
+ highp float index = delta.z;
+ mediump vec2 texCoord = qt_TexCoord0;
+ texCoord.s = (texCoord.s - expandX) / (1.0 - 2.0 * expandX);
+ texCoord.t = (texCoord.t - expandY) / (1.0 - 2.0 * expandY);
+ texCoord += (shift * index);
+
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
+ "
+
+ property string fragmentShaderEnd: "
+
+ gl_FragColor /= gaussianSum;
+
+ PLACEHOLDER_COLORIZE_STEPS
+
+ gl_FragColor *= qt_Opacity;
+ }
+ "
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qmlc
new file mode 100644
index 00000000..afbb4a0b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianDirectionalBlur.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qml
new file mode 100644
index 00000000..f0d328ac
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property real radius: 0.0
+ property int maximumRadius: 0
+ property real spread: 0.0
+ property color color: "white"
+ property bool cached: false
+ property bool transparentBorder: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ GaussianDirectionalBlur {
+ id: shaderItem
+ x: transparentBorder ? -maximumRadius - 1 : 0
+ y: transparentBorder ? -maximumRadius - 1 : 0
+ width: horizontalBlur.width
+ height: horizontalBlur.height
+ horizontalStep: 0.0
+ verticalStep: 1.0 / parent.height
+ source: horizontalBlur
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ transparentBorder: rootItem.transparentBorder
+ enableColor: true
+ color: rootItem.color
+ spread: rootItem.spread
+ }
+
+ GaussianDirectionalBlur {
+ id: horizontalBlur
+ width: transparentBorder ? parent.width + 2 * maximumRadius + 2 : parent.width
+ height: transparentBorder ? parent.height + 2 * maximumRadius + 2 : parent.height
+ horizontalStep: 1.0 / parent.width
+ verticalStep: 0.0
+ source: sourceProxy.output
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ transparentBorder: rootItem.transparentBorder
+ visible: false
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qmlc
new file mode 100644
index 00000000..ae40f470
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianGlow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qml
new file mode 100644
index 00000000..a0b39e9f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qml
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property real radius: 0.0
+ property int maximumRadius: 0
+ property real horizontalOffset: 0
+ property real verticalOffset: 0
+ property real spread: 0
+ property color color: "black"
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect{
+ id: shadowItem
+ anchors.fill: parent
+
+ property variant original: sourceProxy.output
+ property color color: rootItem.color
+ property real horizontalOffset: rootItem.horizontalOffset / rootItem.width
+ property real verticalOffset: rootItem.verticalOffset / rootItem.height
+
+ visible: false
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/gaussianinnershadow_shadow.frag"
+ }
+
+ GaussianDirectionalBlur {
+ id: blurItem
+ anchors.fill: parent
+ horizontalStep: 0.0
+ verticalStep: 1.0 / parent.height
+ source: horizontalBlur
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ visible: false
+ }
+
+ GaussianDirectionalBlur {
+ id: horizontalBlur
+ width: transparentBorder ? parent.width + 2 * maximumRadius : parent.width
+ height: parent.height
+ horizontalStep: 1.0 / parent.width
+ verticalStep: 0.0
+ source: shadowItem
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: blurredSource
+ sourceItem: blurItem
+ live: true
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ anchors.fill: parent
+
+ property variant original: sourceProxy.output
+ property variant shadow: blurredSource
+ property real spread: 1.0 - (rootItem.spread * 0.98)
+ property color color: rootItem.color
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtGraphicalEffects/shaders/gaussianinnershadow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qmlc
new file mode 100644
index 00000000..02fc0f55
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianInnerShadow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qml
new file mode 100644
index 00000000..8273973f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtGraphicalEffects.private 1.12
+
+Item {
+ id: rootItem
+ property variant source
+ property variant maskSource
+ property real radius: 0.0
+ property int maximumRadius: 0
+ property bool cached: false
+ property bool transparentBorder: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ SourceProxy {
+ id: maskSourceProxy
+ input: rootItem.maskSource
+ sourceRect: rootItem.transparentBorder ? Qt.rect(-1, -1, parent.width + 2.0, parent.height + 2.0) : Qt.rect(0, 0, 0, 0)
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: blur
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: blur
+ live: true
+ hideSource: visible
+ }
+
+ GaussianDirectionalBlur {
+ id: blur
+ x: transparentBorder ? -maximumRadius - 1: 0
+ y: transparentBorder ? -maximumRadius - 1: 0
+ width: horizontalBlur.width
+ height: horizontalBlur.height
+ horizontalStep: 0.0
+ verticalStep: 1.0 / parent.height
+ source: horizontalBlur
+ enableMask: true
+ maskSource: maskSourceProxy.output
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ transparentBorder: rootItem.transparentBorder
+ }
+
+ GaussianDirectionalBlur {
+ id: horizontalBlur
+ width: transparentBorder ? parent.width + 2 * maximumRadius + 2 : parent.width
+ height: transparentBorder ? parent.height + 2 * maximumRadius + 2 : parent.height
+ horizontalStep: 1.0 / parent.width
+ verticalStep: 0.0
+ source: sourceProxy.output
+ enableMask: true
+ maskSource: maskSourceProxy.output
+ radius: rootItem.radius
+ maximumRadius: rootItem.maximumRadius
+ transparentBorder: rootItem.transparentBorder
+ visible: false
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qmlc
new file mode 100644
index 00000000..d1f66b8a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/GaussianMaskedBlur.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qmldir
new file mode 100644
index 00000000..2d4bdacb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qmldir
@@ -0,0 +1,11 @@
+module QtGraphicalEffects.private
+plugin qtgraphicaleffectsprivate
+classname QtGraphicalEffectsPrivatePlugin
+FastGlow 1.0 FastGlow.qml
+FastInnerShadow 1.0 FastInnerShadow.qml
+FastMaskedBlur 1.0 FastMaskedBlur.qml
+GaussianDirectionalBlur 1.0 GaussianDirectionalBlur.qml
+GaussianGlow 1.0 GaussianGlow.qml
+GaussianInnerShadow 1.0 GaussianInnerShadow.qml
+GaussianMaskedBlur 1.0 GaussianMaskedBlur.qml
+DropShadowBase 1.0 DropShadowBase.qml
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qtgraphicaleffectsprivate.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qtgraphicaleffectsprivate.dll
new file mode 100644
index 00000000..61184f9b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/private/qtgraphicaleffectsprivate.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qmldir
new file mode 100644
index 00000000..72233b56
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qmldir
@@ -0,0 +1,31 @@
+module QtGraphicalEffects
+plugin qtgraphicaleffectsplugin
+classname QtGraphicalEffectsPlugin
+Blend 1.0 Blend.qml
+BrightnessContrast 1.0 BrightnessContrast.qml
+Colorize 1.0 Colorize.qml
+ColorOverlay 1.0 ColorOverlay.qml
+ConicalGradient 1.0 ConicalGradient.qml
+Desaturate 1.0 Desaturate.qml
+DirectionalBlur 1.0 DirectionalBlur.qml
+Displace 1.0 Displace.qml
+DropShadow 1.0 DropShadow.qml
+FastBlur 1.0 FastBlur.qml
+GammaAdjust 1.0 GammaAdjust.qml
+GaussianBlur 1.0 GaussianBlur.qml
+Glow 1.0 Glow.qml
+HueSaturation 1.0 HueSaturation.qml
+InnerShadow 1.0 InnerShadow.qml
+LevelAdjust 1.0 LevelAdjust.qml
+LinearGradient 1.0 LinearGradient.qml
+MaskedBlur 1.0 MaskedBlur.qml
+OpacityMask 1.0 OpacityMask.qml
+RadialBlur 1.0 RadialBlur.qml
+RadialGradient 1.0 RadialGradient.qml
+RecursiveBlur 1.0 RecursiveBlur.qml
+RectangularGlow 1.0 RectangularGlow.qml
+ThresholdMask 1.0 ThresholdMask.qml
+ZoomBlur 1.0 ZoomBlur.qml
+designersupported
+depends QtGraphicalEffects/private 1.0
+depends QtQuick.Window 2.1
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qtgraphicaleffectsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qtgraphicaleffectsplugin.dll
new file mode 100644
index 00000000..3f1ba56f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtGraphicalEffects/qtgraphicaleffectsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/declarative_location.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/declarative_location.dll
new file mode 100644
index 00000000..a48d75d1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/declarative_location.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/plugins.qmltypes
new file mode 100644
index 00000000..27d8cbed
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/plugins.qmltypes
@@ -0,0 +1,1844 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtLocation 5.14'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QDeclarativeCategory"
+ prototype: "QObject"
+ exports: ["QtLocation/Category 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Visibility"
+ values: {
+ "UnspecifiedVisibility": 0,
+ "DeviceVisibility": 1,
+ "PrivateVisibility": 2,
+ "PublicVisibility": 4
+ }
+ }
+ Enum {
+ name: "Status"
+ values: {
+ "Ready": 0,
+ "Saving": 1,
+ "Removing": 2,
+ "Error": 3
+ }
+ }
+ Property { name: "category"; type: "QPlaceCategory" }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "categoryId"; type: "string" }
+ Property { name: "name"; type: "string" }
+ Property { name: "visibility"; type: "Visibility" }
+ Property { name: "icon"; type: "QDeclarativePlaceIcon"; isPointer: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Method { name: "errorString"; type: "string" }
+ Method {
+ name: "save"
+ Parameter { name: "parentId"; type: "string" }
+ }
+ Method { name: "save" }
+ Method { name: "remove" }
+ }
+ Component {
+ name: "QDeclarativeCircleMapItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemBase"
+ exports: ["QtLocation/MapCircle 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "center"; type: "QGeoCoordinate" }
+ Property { name: "radius"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Property {
+ name: "border"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal {
+ name: "centerChanged"
+ Parameter { name: "center"; type: "QGeoCoordinate" }
+ }
+ Signal {
+ name: "radiusChanged"
+ Parameter { name: "radius"; type: "double" }
+ }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ }
+ Component {
+ name: "QDeclarativeContactDetail"
+ prototype: "QObject"
+ exports: ["QtLocation/ContactDetail 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "contactDetail"; type: "QPlaceContactDetail" }
+ Property { name: "label"; type: "string" }
+ Property { name: "value"; type: "string" }
+ }
+ Component {
+ name: "QDeclarativeContactDetails"
+ prototype: "QQmlPropertyMap"
+ exports: ["QtLocation/ContactDetails 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QDeclarativeGeoCameraCapabilities"
+ prototype: "QObject"
+ exports: ["QtLocation/CameraCapabilities 5.10"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "minimumZoomLevel"; type: "double"; isReadonly: true }
+ Property { name: "maximumZoomLevel"; type: "double"; isReadonly: true }
+ Property { name: "minimumTilt"; type: "double"; isReadonly: true }
+ Property { name: "maximumTilt"; type: "double"; isReadonly: true }
+ Property { name: "minimumFieldOfView"; type: "double"; isReadonly: true }
+ Property { name: "maximumFieldOfView"; type: "double"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeGeoManeuver"
+ prototype: "QObject"
+ exports: [
+ "QtLocation/RouteManeuver 5.0",
+ "QtLocation/RouteManeuver 5.11",
+ "QtLocation/RouteManeuver 5.8"
+ ]
+ exportMetaObjectRevisions: [0, 11, 0]
+ Enum {
+ name: "Direction"
+ values: {
+ "NoDirection": 0,
+ "DirectionForward": 1,
+ "DirectionBearRight": 2,
+ "DirectionLightRight": 3,
+ "DirectionRight": 4,
+ "DirectionHardRight": 5,
+ "DirectionUTurnRight": 6,
+ "DirectionUTurnLeft": 7,
+ "DirectionHardLeft": 8,
+ "DirectionLeft": 9,
+ "DirectionLightLeft": 10,
+ "DirectionBearLeft": 11
+ }
+ }
+ Property { name: "valid"; type: "bool"; isReadonly: true }
+ Property { name: "position"; type: "QGeoCoordinate"; isReadonly: true }
+ Property { name: "instructionText"; type: "string"; isReadonly: true }
+ Property { name: "direction"; type: "Direction"; isReadonly: true }
+ Property { name: "timeToNextInstruction"; type: "int"; isReadonly: true }
+ Property { name: "distanceToNextInstruction"; type: "double"; isReadonly: true }
+ Property { name: "waypoint"; type: "QGeoCoordinate"; isReadonly: true }
+ Property { name: "waypointValid"; type: "bool"; isReadonly: true }
+ Property {
+ name: "extendedAttributes"
+ revision: 11
+ type: "QObject"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoMap"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtLocation/Map 5.0",
+ "QtLocation/Map 5.11",
+ "QtLocation/Map 5.12",
+ "QtLocation/Map 5.13",
+ "QtLocation/Map 5.14"
+ ]
+ exportMetaObjectRevisions: [0, 11, 12, 13, 14]
+ Property { name: "gesture"; type: "QQuickGeoMapGestureArea"; isReadonly: true; isPointer: true }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "minimumZoomLevel"; type: "double" }
+ Property { name: "maximumZoomLevel"; type: "double" }
+ Property { name: "zoomLevel"; type: "double" }
+ Property { name: "tilt"; type: "double" }
+ Property { name: "minimumTilt"; type: "double" }
+ Property { name: "maximumTilt"; type: "double" }
+ Property { name: "bearing"; type: "double" }
+ Property { name: "fieldOfView"; type: "double" }
+ Property { name: "minimumFieldOfView"; type: "double" }
+ Property { name: "maximumFieldOfView"; type: "double" }
+ Property { name: "activeMapType"; type: "QDeclarativeGeoMapType"; isPointer: true }
+ Property {
+ name: "supportedMapTypes"
+ type: "QDeclarativeGeoMapType"
+ isList: true
+ isReadonly: true
+ }
+ Property { name: "center"; type: "QGeoCoordinate" }
+ Property { name: "mapItems"; type: "QList"; isReadonly: true }
+ Property { name: "mapParameters"; type: "QList"; isReadonly: true }
+ Property { name: "error"; type: "QGeoServiceProvider::Error"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "visibleRegion"; type: "QGeoShape" }
+ Property { name: "copyrightsVisible"; type: "bool" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "mapReady"; type: "bool"; isReadonly: true }
+ Property { name: "visibleArea"; revision: 12; type: "QRectF" }
+ Signal {
+ name: "pluginChanged"
+ Parameter { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ }
+ Signal {
+ name: "zoomLevelChanged"
+ Parameter { name: "zoomLevel"; type: "double" }
+ }
+ Signal {
+ name: "centerChanged"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Signal {
+ name: "copyrightLinkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "copyrightsVisibleChanged"
+ Parameter { name: "visible"; type: "bool" }
+ }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Signal {
+ name: "bearingChanged"
+ Parameter { name: "bearing"; type: "double" }
+ }
+ Signal {
+ name: "tiltChanged"
+ Parameter { name: "tilt"; type: "double" }
+ }
+ Signal {
+ name: "fieldOfViewChanged"
+ Parameter { name: "fieldOfView"; type: "double" }
+ }
+ Signal {
+ name: "minimumTiltChanged"
+ Parameter { name: "minimumTilt"; type: "double" }
+ }
+ Signal {
+ name: "maximumTiltChanged"
+ Parameter { name: "maximumTilt"; type: "double" }
+ }
+ Signal {
+ name: "minimumFieldOfViewChanged"
+ Parameter { name: "minimumFieldOfView"; type: "double" }
+ }
+ Signal {
+ name: "maximumFieldOfViewChanged"
+ Parameter { name: "maximumFieldOfView"; type: "double" }
+ }
+ Signal {
+ name: "copyrightsChanged"
+ Parameter { name: "copyrightsImage"; type: "QImage" }
+ }
+ Signal {
+ name: "copyrightsChanged"
+ Parameter { name: "copyrightsHtml"; type: "string" }
+ }
+ Signal {
+ name: "mapReadyChanged"
+ Parameter { name: "ready"; type: "bool" }
+ }
+ Signal { name: "mapObjectsChanged"; revision: 11 }
+ Signal { name: "visibleRegionChanged"; revision: 14 }
+ Method {
+ name: "setBearing"
+ Parameter { name: "bearing"; type: "double" }
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "alignCoordinateToPoint"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "removeMapItem"
+ Parameter { name: "item"; type: "QDeclarativeGeoMapItemBase"; isPointer: true }
+ }
+ Method {
+ name: "addMapItem"
+ Parameter { name: "item"; type: "QDeclarativeGeoMapItemBase"; isPointer: true }
+ }
+ Method {
+ name: "addMapItemGroup"
+ Parameter { name: "itemGroup"; type: "QDeclarativeGeoMapItemGroup"; isPointer: true }
+ }
+ Method {
+ name: "removeMapItemGroup"
+ Parameter { name: "itemGroup"; type: "QDeclarativeGeoMapItemGroup"; isPointer: true }
+ }
+ Method {
+ name: "removeMapItemView"
+ Parameter { name: "itemView"; type: "QDeclarativeGeoMapItemView"; isPointer: true }
+ }
+ Method {
+ name: "addMapItemView"
+ Parameter { name: "itemView"; type: "QDeclarativeGeoMapItemView"; isPointer: true }
+ }
+ Method { name: "clearMapItems" }
+ Method {
+ name: "addMapParameter"
+ Parameter { name: "parameter"; type: "QDeclarativeGeoMapParameter"; isPointer: true }
+ }
+ Method {
+ name: "removeMapParameter"
+ Parameter { name: "parameter"; type: "QDeclarativeGeoMapParameter"; isPointer: true }
+ }
+ Method { name: "clearMapParameters" }
+ Method {
+ name: "toCoordinate"
+ type: "QGeoCoordinate"
+ Parameter { name: "position"; type: "QPointF" }
+ Parameter { name: "clipToViewPort"; type: "bool" }
+ }
+ Method {
+ name: "toCoordinate"
+ type: "QGeoCoordinate"
+ Parameter { name: "position"; type: "QPointF" }
+ }
+ Method {
+ name: "fromCoordinate"
+ type: "QPointF"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ Parameter { name: "clipToViewPort"; type: "bool" }
+ }
+ Method {
+ name: "fromCoordinate"
+ type: "QPointF"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method { name: "fitViewportToMapItems" }
+ Method { name: "fitViewportToVisibleMapItems" }
+ Method {
+ name: "pan"
+ Parameter { name: "dx"; type: "int" }
+ Parameter { name: "dy"; type: "int" }
+ }
+ Method { name: "prefetchData" }
+ Method { name: "clearData" }
+ Method {
+ name: "fitViewportToGeoShape"
+ revision: 13
+ Parameter { name: "shape"; type: "QGeoShape" }
+ Parameter { name: "margins"; type: "QVariant" }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoMapCopyrightNotice"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtLocation/MapCopyrightNotice 5.9"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "mapSource"; type: "QDeclarativeGeoMap"; isPointer: true }
+ Property { name: "styleSheet"; type: "string" }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "backgroundColorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Signal {
+ name: "styleSheetChanged"
+ Parameter { name: "styleSheet"; type: "string" }
+ }
+ Signal { name: "copyrightsVisibleChanged" }
+ Method {
+ name: "copyrightsChanged"
+ Parameter { name: "copyrightsImage"; type: "QImage" }
+ }
+ Method {
+ name: "copyrightsChanged"
+ Parameter { name: "copyrightsHtml"; type: "string" }
+ }
+ Method {
+ name: "onCopyrightsStyleSheetChanged"
+ Parameter { name: "styleSheet"; type: "string" }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoMapItemBase"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtLocation/GeoMapItemBase 5.0",
+ "QtLocation/GeoMapItemBase 5.11",
+ "QtLocation/GeoMapItemBase 5.14"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 11, 14]
+ Property { name: "geoShape"; type: "QGeoShape" }
+ Property { name: "autoFadeIn"; revision: 14; type: "bool" }
+ Signal { name: "mapItemOpacityChanged" }
+ Signal { name: "addTransitionFinished"; revision: 12 }
+ Signal { name: "removeTransitionFinished"; revision: 12 }
+ }
+ Component {
+ name: "QDeclarativeGeoMapItemGroup"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtLocation/MapItemGroup 5.9"]
+ exportMetaObjectRevisions: [0]
+ Signal { name: "mapItemOpacityChanged" }
+ Signal { name: "addTransitionFinished" }
+ Signal { name: "removeTransitionFinished" }
+ }
+ Component {
+ name: "QDeclarativeGeoMapItemView"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemGroup"
+ exports: ["QtLocation/MapItemView 5.0", "QtLocation/MapItemView 5.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "autoFitViewport"; type: "bool" }
+ Property { name: "add"; revision: 12; type: "QQuickTransition"; isPointer: true }
+ Property { name: "remove"; revision: 12; type: "QQuickTransition"; isPointer: true }
+ Property { name: "mapItems"; revision: 12; type: "QList"; isReadonly: true }
+ Property { name: "incubateDelegates"; revision: 12; type: "bool" }
+ }
+ Component {
+ name: "QDeclarativeGeoMapParameter"
+ prototype: "QGeoMapParameter"
+ exports: [
+ "QtLocation/DynamicParameter 5.11",
+ "QtLocation/MapParameter 5.9"
+ ]
+ exportMetaObjectRevisions: [0, 0]
+ Signal {
+ name: "completed"
+ Parameter { type: "QDeclarativeGeoMapParameter"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoMapQuickItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemBase"
+ exports: ["QtLocation/MapQuickItem 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "coordinate"; type: "QGeoCoordinate" }
+ Property { name: "anchorPoint"; type: "QPointF" }
+ Property { name: "zoomLevel"; type: "double" }
+ Property { name: "sourceItem"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QDeclarativeGeoMapType"
+ prototype: "QObject"
+ exports: ["QtLocation/MapType 5.0", "QtLocation/MapType 5.5"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "MapStyle"
+ values: {
+ "NoMap": 0,
+ "StreetMap": 1,
+ "SatelliteMapDay": 2,
+ "SatelliteMapNight": 3,
+ "TerrainMap": 4,
+ "HybridMap": 5,
+ "TransitMap": 6,
+ "GrayStreetMap": 7,
+ "PedestrianMap": 8,
+ "CarNavigationMap": 9,
+ "CycleMap": 10,
+ "CustomMap": 100
+ }
+ }
+ Property { name: "style"; type: "MapStyle"; isReadonly: true }
+ Property { name: "name"; type: "string"; isReadonly: true }
+ Property { name: "description"; type: "string"; isReadonly: true }
+ Property { name: "mobile"; type: "bool"; isReadonly: true }
+ Property { name: "night"; revision: 1; type: "bool"; isReadonly: true }
+ Property {
+ name: "cameraCapabilities"
+ type: "QDeclarativeGeoCameraCapabilities"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "metadata"; type: "QVariantMap"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeGeoRoute"
+ prototype: "QObject"
+ exports: [
+ "QtLocation/Route 5.0",
+ "QtLocation/Route 5.11",
+ "QtLocation/Route 5.12",
+ "QtLocation/Route 5.13"
+ ]
+ exportMetaObjectRevisions: [0, 11, 12, 13]
+ Property { name: "bounds"; type: "QGeoRectangle"; isReadonly: true }
+ Property { name: "travelTime"; type: "int"; isReadonly: true }
+ Property { name: "distance"; type: "double"; isReadonly: true }
+ Property { name: "path"; type: "QJSValue" }
+ Property { name: "segments"; type: "QDeclarativeGeoRouteSegment"; isList: true; isReadonly: true }
+ Property {
+ name: "routeQuery"
+ revision: 11
+ type: "QDeclarativeGeoRouteQuery"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "legs"; revision: 12; type: "QList"; isReadonly: true }
+ Property {
+ name: "extendedAttributes"
+ revision: 13
+ type: "QObject"
+ isReadonly: true
+ isPointer: true
+ }
+ Method {
+ name: "equals"
+ type: "bool"
+ Parameter { name: "other"; type: "QDeclarativeGeoRoute"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoRouteLeg"
+ prototype: "QDeclarativeGeoRoute"
+ exports: ["QtLocation/RouteLeg 5.12"]
+ exportMetaObjectRevisions: [12]
+ Property { name: "legIndex"; type: "int"; isReadonly: true }
+ Property { name: "overallRoute"; type: "QObject"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ name: "QDeclarativeGeoRouteModel"
+ prototype: "QAbstractListModel"
+ exports: ["QtLocation/RouteModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Ready": 1,
+ "Loading": 2,
+ "Error": 3
+ }
+ }
+ Enum {
+ name: "RouteError"
+ values: {
+ "NoError": 0,
+ "EngineNotSetError": 1,
+ "CommunicationError": 2,
+ "ParseError": 3,
+ "UnsupportedOptionError": 4,
+ "UnknownError": 5,
+ "UnknownParameterError": 100,
+ "MissingRequiredParameterError": 101
+ }
+ }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "query"; type: "QDeclarativeGeoRouteQuery"; isPointer: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "autoUpdate"; type: "bool" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "error"; type: "RouteError"; isReadonly: true }
+ Property { name: "measurementSystem"; type: "QLocale::MeasurementSystem" }
+ Signal { name: "routesChanged" }
+ Signal { name: "abortRequested" }
+ Method { name: "update" }
+ Method {
+ name: "get"
+ type: "QDeclarativeGeoRoute*"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method { name: "reset" }
+ Method { name: "cancel" }
+ }
+ Component {
+ name: "QDeclarativeGeoRouteQuery"
+ defaultProperty: "quickChildren"
+ prototype: "QObject"
+ exports: [
+ "QtLocation/RouteQuery 5.0",
+ "QtLocation/RouteQuery 5.11",
+ "QtLocation/RouteQuery 5.13"
+ ]
+ exportMetaObjectRevisions: [0, 11, 13]
+ Enum {
+ name: "TravelMode"
+ values: {
+ "CarTravel": 1,
+ "PedestrianTravel": 2,
+ "BicycleTravel": 4,
+ "PublicTransitTravel": 8,
+ "TruckTravel": 16
+ }
+ }
+ Enum {
+ name: "TravelModes"
+ values: {
+ "CarTravel": 1,
+ "PedestrianTravel": 2,
+ "BicycleTravel": 4,
+ "PublicTransitTravel": 8,
+ "TruckTravel": 16
+ }
+ }
+ Enum {
+ name: "FeatureType"
+ values: {
+ "NoFeature": 0,
+ "TollFeature": 1,
+ "HighwayFeature": 2,
+ "PublicTransitFeature": 4,
+ "FerryFeature": 8,
+ "TunnelFeature": 16,
+ "DirtRoadFeature": 32,
+ "ParksFeature": 64,
+ "MotorPoolLaneFeature": 128,
+ "TrafficFeature": 256
+ }
+ }
+ Enum {
+ name: "FeatureWeight"
+ values: {
+ "NeutralFeatureWeight": 0,
+ "PreferFeatureWeight": 1,
+ "RequireFeatureWeight": 2,
+ "AvoidFeatureWeight": 4,
+ "DisallowFeatureWeight": 8
+ }
+ }
+ Enum {
+ name: "RouteOptimization"
+ values: {
+ "ShortestRoute": 1,
+ "FastestRoute": 2,
+ "MostEconomicRoute": 4,
+ "MostScenicRoute": 8
+ }
+ }
+ Enum {
+ name: "RouteOptimizations"
+ values: {
+ "ShortestRoute": 1,
+ "FastestRoute": 2,
+ "MostEconomicRoute": 4,
+ "MostScenicRoute": 8
+ }
+ }
+ Enum {
+ name: "SegmentDetail"
+ values: {
+ "NoSegmentData": 0,
+ "BasicSegmentData": 1
+ }
+ }
+ Enum {
+ name: "SegmentDetails"
+ values: {
+ "NoSegmentData": 0,
+ "BasicSegmentData": 1
+ }
+ }
+ Enum {
+ name: "ManeuverDetail"
+ values: {
+ "NoManeuvers": 0,
+ "BasicManeuvers": 1
+ }
+ }
+ Enum {
+ name: "ManeuverDetails"
+ values: {
+ "NoManeuvers": 0,
+ "BasicManeuvers": 1
+ }
+ }
+ Property { name: "numberAlternativeRoutes"; type: "int" }
+ Property { name: "travelModes"; type: "TravelModes" }
+ Property { name: "routeOptimizations"; type: "RouteOptimizations" }
+ Property { name: "segmentDetail"; type: "SegmentDetail" }
+ Property { name: "maneuverDetail"; type: "ManeuverDetail" }
+ Property { name: "waypoints"; type: "QVariantList" }
+ Property { name: "excludedAreas"; type: "QJSValue" }
+ Property { name: "featureTypes"; type: "QList"; isReadonly: true }
+ Property { name: "extraParameters"; revision: 11; type: "QVariantMap"; isReadonly: true }
+ Property { name: "departureTime"; revision: 13; type: "QDateTime" }
+ Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true }
+ Signal { name: "queryDetailsChanged" }
+ Signal { name: "extraParametersChanged"; revision: 11 }
+ Method { name: "waypointObjects"; type: "QVariantList" }
+ Method {
+ name: "addWaypoint"
+ Parameter { name: "w"; type: "QVariant" }
+ }
+ Method {
+ name: "removeWaypoint"
+ Parameter { name: "waypoint"; type: "QVariant" }
+ }
+ Method { name: "clearWaypoints" }
+ Method {
+ name: "addExcludedArea"
+ Parameter { name: "area"; type: "QGeoRectangle" }
+ }
+ Method {
+ name: "removeExcludedArea"
+ Parameter { name: "area"; type: "QGeoRectangle" }
+ }
+ Method { name: "clearExcludedAreas" }
+ Method {
+ name: "setFeatureWeight"
+ Parameter { name: "featureType"; type: "FeatureType" }
+ Parameter { name: "featureWeight"; type: "FeatureWeight" }
+ }
+ Method {
+ name: "featureWeight"
+ type: "int"
+ Parameter { name: "featureType"; type: "FeatureType" }
+ }
+ Method { name: "resetFeatureWeights" }
+ }
+ Component {
+ name: "QDeclarativeGeoRouteSegment"
+ prototype: "QObject"
+ exports: ["QtLocation/RouteSegment 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "travelTime"; type: "int"; isReadonly: true }
+ Property { name: "distance"; type: "double"; isReadonly: true }
+ Property { name: "path"; type: "QJSValue"; isReadonly: true }
+ Property { name: "maneuver"; type: "QDeclarativeGeoManeuver"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ name: "QDeclarativeGeoServiceProvider"
+ defaultProperty: "parameters"
+ prototype: "QObject"
+ exports: ["QtLocation/Plugin 5.0", "QtLocation/Plugin 5.11"]
+ exportMetaObjectRevisions: [0, 11]
+ Enum {
+ name: "RoutingFeature"
+ values: {
+ "NoRoutingFeatures": 0,
+ "OnlineRoutingFeature": 1,
+ "OfflineRoutingFeature": 2,
+ "LocalizedRoutingFeature": 4,
+ "RouteUpdatesFeature": 8,
+ "AlternativeRoutesFeature": 16,
+ "ExcludeAreasRoutingFeature": 32,
+ "AnyRoutingFeatures": -1
+ }
+ }
+ Enum {
+ name: "RoutingFeatures"
+ values: {
+ "NoRoutingFeatures": 0,
+ "OnlineRoutingFeature": 1,
+ "OfflineRoutingFeature": 2,
+ "LocalizedRoutingFeature": 4,
+ "RouteUpdatesFeature": 8,
+ "AlternativeRoutesFeature": 16,
+ "ExcludeAreasRoutingFeature": 32,
+ "AnyRoutingFeatures": -1
+ }
+ }
+ Enum {
+ name: "GeocodingFeature"
+ values: {
+ "NoGeocodingFeatures": 0,
+ "OnlineGeocodingFeature": 1,
+ "OfflineGeocodingFeature": 2,
+ "ReverseGeocodingFeature": 4,
+ "LocalizedGeocodingFeature": 8,
+ "AnyGeocodingFeatures": -1
+ }
+ }
+ Enum {
+ name: "GeocodingFeatures"
+ values: {
+ "NoGeocodingFeatures": 0,
+ "OnlineGeocodingFeature": 1,
+ "OfflineGeocodingFeature": 2,
+ "ReverseGeocodingFeature": 4,
+ "LocalizedGeocodingFeature": 8,
+ "AnyGeocodingFeatures": -1
+ }
+ }
+ Enum {
+ name: "MappingFeature"
+ values: {
+ "NoMappingFeatures": 0,
+ "OnlineMappingFeature": 1,
+ "OfflineMappingFeature": 2,
+ "LocalizedMappingFeature": 4,
+ "AnyMappingFeatures": -1
+ }
+ }
+ Enum {
+ name: "MappingFeatures"
+ values: {
+ "NoMappingFeatures": 0,
+ "OnlineMappingFeature": 1,
+ "OfflineMappingFeature": 2,
+ "LocalizedMappingFeature": 4,
+ "AnyMappingFeatures": -1
+ }
+ }
+ Enum {
+ name: "PlacesFeature"
+ values: {
+ "NoPlacesFeatures": 0,
+ "OnlinePlacesFeature": 1,
+ "OfflinePlacesFeature": 2,
+ "SavePlaceFeature": 4,
+ "RemovePlaceFeature": 8,
+ "SaveCategoryFeature": 16,
+ "RemoveCategoryFeature": 32,
+ "PlaceRecommendationsFeature": 64,
+ "SearchSuggestionsFeature": 128,
+ "LocalizedPlacesFeature": 256,
+ "NotificationsFeature": 512,
+ "PlaceMatchingFeature": 1024,
+ "AnyPlacesFeatures": -1
+ }
+ }
+ Enum {
+ name: "PlacesFeatures"
+ values: {
+ "NoPlacesFeatures": 0,
+ "OnlinePlacesFeature": 1,
+ "OfflinePlacesFeature": 2,
+ "SavePlaceFeature": 4,
+ "RemovePlaceFeature": 8,
+ "SaveCategoryFeature": 16,
+ "RemoveCategoryFeature": 32,
+ "PlaceRecommendationsFeature": 64,
+ "SearchSuggestionsFeature": 128,
+ "LocalizedPlacesFeature": 256,
+ "NotificationsFeature": 512,
+ "PlaceMatchingFeature": 1024,
+ "AnyPlacesFeatures": -1
+ }
+ }
+ Enum {
+ name: "NavigationFeatures"
+ values: {
+ "NoNavigationFeatures": 0,
+ "OnlineNavigationFeature": 1,
+ "OfflineNavigationFeature": 2,
+ "AnyNavigationFeatures": -1
+ }
+ }
+ Property { name: "name"; type: "string" }
+ Property { name: "availableServiceProviders"; type: "QStringList"; isReadonly: true }
+ Property {
+ name: "parameters"
+ type: "QDeclarativePluginParameter"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "required"
+ type: "QDeclarativeGeoServiceProviderRequirements"
+ isPointer: true
+ }
+ Property { name: "locales"; type: "QStringList" }
+ Property { name: "preferred"; type: "QStringList" }
+ Property { name: "allowExperimental"; type: "bool" }
+ Property { name: "isAttached"; type: "bool"; isReadonly: true }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "name"; type: "string" }
+ }
+ Signal { name: "attached" }
+ Signal {
+ name: "preferredChanged"
+ Parameter { name: "preferences"; type: "QStringList" }
+ }
+ Signal {
+ name: "allowExperimentalChanged"
+ Parameter { name: "allow"; type: "bool" }
+ }
+ Method {
+ name: "supportsRouting"
+ type: "bool"
+ Parameter { name: "feature"; type: "RoutingFeatures" }
+ }
+ Method { name: "supportsRouting"; type: "bool" }
+ Method {
+ name: "supportsGeocoding"
+ type: "bool"
+ Parameter { name: "feature"; type: "GeocodingFeatures" }
+ }
+ Method { name: "supportsGeocoding"; type: "bool" }
+ Method {
+ name: "supportsMapping"
+ type: "bool"
+ Parameter { name: "feature"; type: "MappingFeatures" }
+ }
+ Method { name: "supportsMapping"; type: "bool" }
+ Method {
+ name: "supportsPlaces"
+ type: "bool"
+ Parameter { name: "feature"; type: "PlacesFeatures" }
+ }
+ Method { name: "supportsPlaces"; type: "bool" }
+ Method {
+ name: "supportsNavigation"
+ revision: 11
+ type: "bool"
+ Parameter { name: "feature"; type: "NavigationFeature" }
+ }
+ Method { name: "supportsNavigation"; revision: 11; type: "bool" }
+ }
+ Component {
+ name: "QDeclarativeGeoServiceProviderRequirements"
+ prototype: "QObject"
+ exports: ["QtLocation/PluginRequirements 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "mapping"; type: "QDeclarativeGeoServiceProvider::MappingFeatures" }
+ Property { name: "routing"; type: "QDeclarativeGeoServiceProvider::RoutingFeatures" }
+ Property { name: "geocoding"; type: "QDeclarativeGeoServiceProvider::GeocodingFeatures" }
+ Property { name: "places"; type: "QDeclarativeGeoServiceProvider::PlacesFeatures" }
+ Property { name: "navigation"; type: "QDeclarativeGeoServiceProvider::NavigationFeatures" }
+ Signal {
+ name: "mappingRequirementsChanged"
+ Parameter { name: "features"; type: "QDeclarativeGeoServiceProvider::MappingFeatures" }
+ }
+ Signal {
+ name: "routingRequirementsChanged"
+ Parameter { name: "features"; type: "QDeclarativeGeoServiceProvider::RoutingFeatures" }
+ }
+ Signal {
+ name: "geocodingRequirementsChanged"
+ Parameter { name: "features"; type: "QDeclarativeGeoServiceProvider::GeocodingFeatures" }
+ }
+ Signal {
+ name: "placesRequirementsChanged"
+ Parameter { name: "features"; type: "QDeclarativeGeoServiceProvider::PlacesFeatures" }
+ }
+ Signal {
+ name: "navigationRequirementsChanged"
+ Parameter { name: "features"; type: "QDeclarativeGeoServiceProvider::NavigationFeatures" }
+ }
+ Signal { name: "requirementsChanged" }
+ Method {
+ name: "matches"
+ type: "bool"
+ Parameter { name: "provider"; type: "const QGeoServiceProvider"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoWaypoint"
+ defaultProperty: "quickChildren"
+ prototype: "QGeoCoordinateObject"
+ exports: ["QtLocation/Waypoint 5.11"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "latitude"; type: "double" }
+ Property { name: "longitude"; type: "double" }
+ Property { name: "altitude"; type: "double" }
+ Property { name: "isValid"; type: "bool"; isReadonly: true }
+ Property { name: "bearing"; type: "double" }
+ Property { name: "metadata"; type: "QVariantMap"; isReadonly: true }
+ Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true }
+ Signal { name: "completed" }
+ Signal { name: "waypointDetailsChanged" }
+ Signal { name: "extraParametersChanged" }
+ }
+ Component {
+ name: "QDeclarativeGeocodeModel"
+ prototype: "QAbstractListModel"
+ exports: ["QtLocation/GeocodeModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Ready": 1,
+ "Loading": 2,
+ "Error": 3
+ }
+ }
+ Enum {
+ name: "GeocodeError"
+ values: {
+ "NoError": 0,
+ "EngineNotSetError": 1,
+ "CommunicationError": 2,
+ "ParseError": 3,
+ "UnsupportedOptionError": 4,
+ "CombinationError": 5,
+ "UnknownError": 6,
+ "UnknownParameterError": 100,
+ "MissingRequiredParameterError": 101
+ }
+ }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "autoUpdate"; type: "bool" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "limit"; type: "int" }
+ Property { name: "offset"; type: "int" }
+ Property { name: "query"; type: "QVariant" }
+ Property { name: "bounds"; type: "QVariant" }
+ Property { name: "error"; type: "GeocodeError"; isReadonly: true }
+ Signal { name: "locationsChanged" }
+ Method { name: "update" }
+ Method {
+ name: "get"
+ type: "QDeclarativeGeoLocation*"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method { name: "reset" }
+ Method { name: "cancel" }
+ }
+ Component {
+ name: "QDeclarativeMapLineProperties"
+ prototype: "QObject"
+ Property { name: "width"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Signal {
+ name: "widthChanged"
+ Parameter { name: "width"; type: "double" }
+ }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ }
+ Component {
+ name: "QDeclarativePlace"
+ prototype: "QObject"
+ exports: ["QtLocation/Place 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "Ready": 0,
+ "Saving": 1,
+ "Fetching": 2,
+ "Removing": 3,
+ "Error": 4
+ }
+ }
+ Enum {
+ name: "Visibility"
+ values: {
+ "UnspecifiedVisibility": 0,
+ "DeviceVisibility": 1,
+ "PrivateVisibility": 2,
+ "PublicVisibility": 4
+ }
+ }
+ Property { name: "place"; type: "QPlace" }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "categories"; type: "QDeclarativeCategory"; isList: true; isReadonly: true }
+ Property { name: "location"; type: "QDeclarativeGeoLocation"; isPointer: true }
+ Property { name: "ratings"; type: "QDeclarativeRatings"; isPointer: true }
+ Property { name: "supplier"; type: "QDeclarativeSupplier"; isPointer: true }
+ Property { name: "icon"; type: "QDeclarativePlaceIcon"; isPointer: true }
+ Property { name: "name"; type: "string" }
+ Property { name: "placeId"; type: "string" }
+ Property { name: "attribution"; type: "string" }
+ Property {
+ name: "reviewModel"
+ type: "QDeclarativeReviewModel"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "imageModel"
+ type: "QDeclarativePlaceImageModel"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "editorialModel"
+ type: "QDeclarativePlaceEditorialModel"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "extendedAttributes"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "contactDetails"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "detailsFetched"; type: "bool"; isReadonly: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "primaryPhone"; type: "string"; isReadonly: true }
+ Property { name: "primaryFax"; type: "string"; isReadonly: true }
+ Property { name: "primaryEmail"; type: "string"; isReadonly: true }
+ Property { name: "primaryWebsite"; type: "QUrl"; isReadonly: true }
+ Property { name: "visibility"; type: "Visibility" }
+ Property { name: "favorite"; type: "QDeclarativePlace"; isPointer: true }
+ Method { name: "getDetails" }
+ Method { name: "save" }
+ Method { name: "remove" }
+ Method { name: "errorString"; type: "string" }
+ Method {
+ name: "copyFrom"
+ Parameter { name: "original"; type: "QDeclarativePlace"; isPointer: true }
+ }
+ Method {
+ name: "initializeFavorite"
+ Parameter { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativePlaceAttribute"
+ prototype: "QObject"
+ exports: ["QtLocation/PlaceAttribute 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "attribute"; type: "QPlaceAttribute" }
+ Property { name: "label"; type: "string" }
+ Property { name: "text"; type: "string" }
+ }
+ Component {
+ name: "QDeclarativePlaceContentModel"
+ prototype: "QAbstractListModel"
+ Property { name: "place"; type: "QDeclarativePlace"; isPointer: true }
+ Property { name: "batchSize"; type: "int" }
+ Property { name: "totalCount"; type: "int"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativePlaceEditorialModel"
+ prototype: "QDeclarativePlaceContentModel"
+ exports: ["QtLocation/EditorialModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QDeclarativePlaceIcon"
+ prototype: "QObject"
+ exports: ["QtLocation/Icon 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "icon"; type: "QPlaceIcon" }
+ Property { name: "parameters"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Method {
+ name: "url"
+ type: "QUrl"
+ Parameter { name: "size"; type: "QSize" }
+ }
+ Method { name: "url"; type: "QUrl" }
+ }
+ Component {
+ name: "QDeclarativePlaceImageModel"
+ prototype: "QDeclarativePlaceContentModel"
+ exports: ["QtLocation/ImageModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QDeclarativePlaceUser"
+ prototype: "QObject"
+ exports: ["QtLocation/User 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "user"; type: "QPlaceUser" }
+ Property { name: "userId"; type: "string" }
+ Property { name: "name"; type: "string" }
+ }
+ Component {
+ name: "QDeclarativePluginParameter"
+ prototype: "QObject"
+ exports: ["QtLocation/PluginParameter 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "name"; type: "string" }
+ Property { name: "value"; type: "QVariant" }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "name"; type: "string" }
+ }
+ Signal {
+ name: "valueChanged"
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Signal { name: "initialized" }
+ }
+ Component {
+ name: "QDeclarativePolygonMapItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemBase"
+ exports: ["QtLocation/MapPolygon 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "QJSValue" }
+ Property { name: "color"; type: "QColor" }
+ Property {
+ name: "border"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Method {
+ name: "addCoordinate"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "removeCoordinate"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ }
+ Component {
+ name: "QDeclarativePolylineMapItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemBase"
+ exports: ["QtLocation/MapPolyline 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "QJSValue" }
+ Property {
+ name: "line"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ Method { name: "pathLength"; type: "int" }
+ Method {
+ name: "addCoordinate"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "insertCoordinate"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "replaceCoordinate"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "coordinateAt"
+ type: "QGeoCoordinate"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "containsCoordinate"
+ type: "bool"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "removeCoordinate"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "removeCoordinate"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "setPath"
+ Parameter { name: "path"; type: "QGeoPath" }
+ }
+ }
+ Component {
+ name: "QDeclarativeRatings"
+ prototype: "QObject"
+ exports: ["QtLocation/Ratings 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "ratings"; type: "QPlaceRatings" }
+ Property { name: "average"; type: "double" }
+ Property { name: "maximum"; type: "double" }
+ Property { name: "count"; type: "int" }
+ }
+ Component {
+ name: "QDeclarativeRectangleMapItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativeGeoMapItemBase"
+ exports: ["QtLocation/MapRectangle 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "topLeft"; type: "QGeoCoordinate" }
+ Property { name: "bottomRight"; type: "QGeoCoordinate" }
+ Property { name: "color"; type: "QColor" }
+ Property {
+ name: "border"
+ type: "QDeclarativeMapLineProperties"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal {
+ name: "topLeftChanged"
+ Parameter { name: "topLeft"; type: "QGeoCoordinate" }
+ }
+ Signal {
+ name: "bottomRightChanged"
+ Parameter { name: "bottomRight"; type: "QGeoCoordinate" }
+ }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ }
+ Component {
+ name: "QDeclarativeReviewModel"
+ prototype: "QDeclarativePlaceContentModel"
+ exports: ["QtLocation/ReviewModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QDeclarativeRouteMapItem"
+ defaultProperty: "data"
+ prototype: "QDeclarativePolylineMapItem"
+ exports: ["QtLocation/MapRoute 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "route"; type: "QDeclarativeGeoRoute"; isPointer: true }
+ Signal {
+ name: "routeChanged"
+ Parameter { name: "route"; type: "const QDeclarativeGeoRoute"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QDeclarativeSearchModelBase"
+ prototype: "QAbstractListModel"
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Ready": 1,
+ "Loading": 2,
+ "Error": 3
+ }
+ }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "searchArea"; type: "QVariant" }
+ Property { name: "limit"; type: "int" }
+ Property { name: "previousPagesAvailable"; type: "bool"; isReadonly: true }
+ Property { name: "nextPagesAvailable"; type: "bool"; isReadonly: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Method { name: "update" }
+ Method { name: "cancel" }
+ Method { name: "reset" }
+ Method { name: "errorString"; type: "string" }
+ Method { name: "previousPage" }
+ Method { name: "nextPage" }
+ }
+ Component {
+ name: "QDeclarativeSearchResultModel"
+ prototype: "QDeclarativeSearchModelBase"
+ exports: [
+ "QtLocation/PlaceSearchModel 5.0",
+ "QtLocation/PlaceSearchModel 5.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "SearchResultType"
+ values: {
+ "UnknownSearchResult": 0,
+ "PlaceResult": 1,
+ "ProposedSearchResult": 2
+ }
+ }
+ Enum {
+ name: "RelevanceHint"
+ values: {
+ "UnspecifiedHint": 0,
+ "DistanceHint": 1,
+ "LexicalPlaceNameHint": 2
+ }
+ }
+ Property { name: "searchTerm"; type: "string" }
+ Property { name: "categories"; type: "QDeclarativeCategory"; isList: true; isReadonly: true }
+ Property { name: "recommendationId"; type: "string" }
+ Property { name: "relevanceHint"; type: "RelevanceHint" }
+ Property { name: "visibilityScope"; type: "QDeclarativePlace::Visibility" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "favoritesPlugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "favoritesMatchParameters"; type: "QVariantMap" }
+ Property { name: "incremental"; revision: 12; type: "bool" }
+ Signal { name: "rowCountChanged" }
+ Signal { name: "dataChanged" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "roleName"; type: "string" }
+ }
+ Method {
+ name: "updateWith"
+ Parameter { name: "proposedSearchIndex"; type: "int" }
+ }
+ }
+ Component {
+ name: "QDeclarativeSearchSuggestionModel"
+ prototype: "QDeclarativeSearchModelBase"
+ exports: ["QtLocation/PlaceSearchSuggestionModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "searchTerm"; type: "string" }
+ Property { name: "suggestions"; type: "QStringList"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeSupplier"
+ prototype: "QObject"
+ exports: ["QtLocation/Supplier 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "supplier"; type: "QPlaceSupplier" }
+ Property { name: "name"; type: "string" }
+ Property { name: "supplierId"; type: "string" }
+ Property { name: "url"; type: "QUrl" }
+ Property { name: "icon"; type: "QDeclarativePlaceIcon"; isPointer: true }
+ }
+ Component {
+ name: "QDeclarativeSupportedCategoriesModel"
+ prototype: "QAbstractItemModel"
+ exports: ["QtLocation/CategoryModel 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Roles"
+ values: {
+ "CategoryRole": 256,
+ "ParentCategoryRole": 257
+ }
+ }
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Ready": 1,
+ "Loading": 2,
+ "Error": 3
+ }
+ }
+ Property { name: "plugin"; type: "QDeclarativeGeoServiceProvider"; isPointer: true }
+ Property { name: "hierarchical"; type: "bool" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Signal { name: "dataChanged" }
+ Method { name: "update" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method { name: "errorString"; type: "string" }
+ }
+ Component {
+ name: "QGeoCoordinateObject"
+ prototype: "QObject"
+ Property { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Component {
+ name: "QGeoMapObject"
+ defaultProperty: "quickChildren"
+ prototype: "QParameterizableObject"
+ Enum {
+ name: "Type"
+ values: {
+ "InvalidType": 0,
+ "ViewType": 1,
+ "RouteType": 2,
+ "RectangleType": 3,
+ "CircleType": 4,
+ "PolylineType": 5,
+ "PolygonType": 6,
+ "IconType": 7,
+ "UserType": 256
+ }
+ }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "type"; type: "Type"; isReadonly: true }
+ Property { name: "geoShape"; type: "QGeoShape" }
+ Signal { name: "selected" }
+ Signal { name: "completed" }
+ }
+ Component {
+ name: "QGeoMapParameter"
+ prototype: "QObject"
+ Property { name: "type"; type: "string" }
+ Signal {
+ name: "propertyUpdated"
+ Parameter { name: "param"; type: "QGeoMapParameter"; isPointer: true }
+ Parameter { name: "propertyName"; type: "const char"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QGeoMapPinchEvent"
+ prototype: "QObject"
+ exports: ["QtLocation/MapPinchEvent 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "center"; type: "QPointF"; isReadonly: true }
+ Property { name: "angle"; type: "double"; isReadonly: true }
+ Property { name: "point1"; type: "QPointF"; isReadonly: true }
+ Property { name: "point2"; type: "QPointF"; isReadonly: true }
+ Property { name: "pointCount"; type: "int"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ }
+ Component {
+ name: "QParameterizableObject"
+ defaultProperty: "quickChildren"
+ prototype: "QObject"
+ Property { name: "quickChildren"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "QQmlPropertyMap"
+ prototype: "QObject"
+ exports: ["QtLocation/ExtendedAttributes 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Signal {
+ name: "valueChanged"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method { name: "keys"; type: "QStringList" }
+ }
+ Component {
+ name: "QQuickGeoMapGestureArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtLocation/MapGestureArea 5.0",
+ "QtLocation/MapGestureArea 5.6"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "GeoMapGesture"
+ values: {
+ "NoGesture": 0,
+ "PinchGesture": 1,
+ "PanGesture": 2,
+ "FlickGesture": 4,
+ "RotationGesture": 8,
+ "TiltGesture": 16
+ }
+ }
+ Enum {
+ name: "AcceptedGestures"
+ values: {
+ "NoGesture": 0,
+ "PinchGesture": 1,
+ "PanGesture": 2,
+ "FlickGesture": 4,
+ "RotationGesture": 8,
+ "TiltGesture": 16
+ }
+ }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "pinchActive"; type: "bool"; isReadonly: true }
+ Property { name: "panActive"; type: "bool"; isReadonly: true }
+ Property { name: "rotationActive"; type: "bool"; isReadonly: true }
+ Property { name: "tiltActive"; type: "bool"; isReadonly: true }
+ Property { name: "acceptedGestures"; type: "AcceptedGestures" }
+ Property { name: "maximumZoomLevelChange"; type: "double" }
+ Property { name: "flickDeceleration"; type: "double" }
+ Property { name: "preventStealing"; revision: 1; type: "bool" }
+ Signal {
+ name: "pinchStarted"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pinchUpdated"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pinchFinished"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal { name: "panStarted" }
+ Signal { name: "panFinished" }
+ Signal { name: "flickStarted" }
+ Signal { name: "flickFinished" }
+ Signal {
+ name: "rotationStarted"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "rotationUpdated"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "rotationFinished"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "tiltStarted"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "tiltUpdated"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "tiltFinished"
+ Parameter { name: "pinch"; type: "QGeoMapPinchEvent"; isPointer: true }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/qmldir
new file mode 100644
index 00000000..37ecf66c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtLocation/qmldir
@@ -0,0 +1,4 @@
+module QtLocation
+plugin declarative_location
+classname QtLocationDeclarativeModule
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/Video.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/Video.qml
new file mode 100644
index 00000000..24fde22e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/Video.qml
@@ -0,0 +1,545 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtMultimedia 5.13
+
+/*!
+ \qmltype Video
+ \inherits Item
+ \ingroup multimedia_qml
+ \ingroup multimedia_video_qml
+ \inqmlmodule QtMultimedia
+ \brief A convenience type for showing a specified video.
+
+ \c Video is a convenience type combining the functionality
+ of a \l MediaPlayer and a \l VideoOutput into one. It provides
+ simple video playback functionality without having to declare multiple
+ types.
+
+ \qml
+ Video {
+ id: video
+ width : 800
+ height : 600
+ source: "video.avi"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ video.play()
+ }
+ }
+
+ focus: true
+ Keys.onSpacePressed: video.playbackState == MediaPlayer.PlayingState ? video.pause() : video.play()
+ Keys.onLeftPressed: video.seek(video.position - 5000)
+ Keys.onRightPressed: video.seek(video.position + 5000)
+ }
+ \endqml
+
+ \c Video supports untransformed, stretched, and uniformly scaled
+ video presentation. For a description of stretched uniformly scaled
+ presentation, see the \l fillMode property description.
+
+ \sa MediaPlayer, VideoOutput
+
+\omit
+ \section1 Screen Saver
+
+ If it is likely that an application will be playing video for an extended
+ period of time without user interaction, it may be necessary to disable
+ the platform's screen saver. The \l ScreenSaver (from \l QtSystemInfo)
+ may be used to disable the screensaver in this fashion:
+
+ \qml
+ import QtSystemInfo 5.0
+
+ ScreenSaver { screenSaverEnabled: false }
+ \endqml
+\endomit
+*/
+
+// TODO: Restore Qt System Info docs when the module is released
+
+Item {
+ id: video
+
+ /*** Properties of VideoOutput ***/
+ /*!
+ \qmlproperty enumeration Video::fillMode
+
+ Set this property to define how the video is scaled to fit the target
+ area.
+
+ \list
+ \li VideoOutput.Stretch - the video is scaled to fit
+ \li VideoOutput.PreserveAspectFit - the video is scaled uniformly to fit without
+ cropping
+ \li VideoOutput.PreserveAspectCrop - the video is scaled uniformly to fill, cropping
+ if necessary
+ \endlist
+
+ Because this type is for convenience in QML, it does not
+ support enumerations directly, so enumerations from \c VideoOutput are
+ used to access the available fill modes.
+
+ The default fill mode is preserveAspectFit.
+ */
+ property alias fillMode: videoOut.fillMode
+
+ /*!
+ \qmlproperty enumeration Video::flushMode
+
+ Set this property to define what \c Video should show
+ when playback is finished or stopped.
+
+ \list
+ \li VideoOutput.EmptyFrame - clears video output.
+ \li VideoOutput.FirstFrame - shows the first valid frame.
+ \li VideoOutput.LastFrame - shows the last valid frame.
+ \endlist
+
+ The default flush mode is EmptyFrame.
+ \since 5.15
+ */
+ property alias flushMode: videoOut.flushMode
+
+ /*!
+ \qmlproperty int Video::orientation
+
+ The orientation of the \c Video in degrees. Only multiples of 90
+ degrees is supported, that is 0, 90, 180, 270, 360, etc.
+ */
+ property alias orientation: videoOut.orientation
+
+
+ /*** Properties of MediaPlayer ***/
+
+ /*!
+ \qmlproperty enumeration Video::playbackState
+
+ This read only property indicates the playback state of the media.
+
+ \list
+ \li MediaPlayer.PlayingState - the media is playing
+ \li MediaPlayer.PausedState - the media is paused
+ \li MediaPlayer.StoppedState - the media is stopped
+ \endlist
+
+ The default state is MediaPlayer.StoppedState.
+ */
+ property alias playbackState: player.playbackState
+
+ /*!
+ \qmlproperty bool Video::autoLoad
+
+ This property indicates if loading of media should begin immediately.
+
+ Defaults to true, if false media will not be loaded until playback is
+ started.
+ */
+ property alias autoLoad: player.autoLoad
+
+ /*!
+ \qmlproperty real Video::bufferProgress
+
+ This property holds how much of the data buffer is currently filled,
+ from 0.0 (empty) to 1.0
+ (full).
+ */
+ property alias bufferProgress: player.bufferProgress
+
+ /*!
+ \qmlproperty int Video::duration
+
+ This property holds the duration of the media in milliseconds.
+
+ If the media doesn't have a fixed duration (a live stream for example)
+ this will be 0.
+ */
+ property alias duration: player.duration
+
+ /*!
+ \qmlproperty enumeration Video::error
+
+ This property holds the error state of the video. It can be one of:
+
+ \list
+ \li MediaPlayer.NoError - there is no current error.
+ \li MediaPlayer.ResourceError - the video cannot be played due to a problem
+ allocating resources.
+ \li MediaPlayer.FormatError - the video format is not supported.
+ \li MediaPlayer.NetworkError - the video cannot be played due to network issues.
+ \li MediaPlayer.AccessDenied - the video cannot be played due to insufficient
+ permissions.
+ \li MediaPlayer.ServiceMissing - the video cannot be played because the media
+ service could not be
+ instantiated.
+ \endlist
+ */
+ property alias error: player.error
+
+ /*!
+ \qmlproperty string Video::errorString
+
+ This property holds a string describing the current error condition in more detail.
+ */
+ property alias errorString: player.errorString
+
+ /*!
+ \qmlproperty enumeration Video::availability
+
+ Returns the availability state of the video instance.
+
+ This is one of:
+ \table
+ \header \li Value \li Description
+ \row \li MediaPlayer.Available
+ \li The video player is available to use.
+ \row \li MediaPlayer.Busy
+ \li The video player is usually available, but some other
+ process is utilizing the hardware necessary to play media.
+ \row \li MediaPlayer.Unavailable
+ \li There are no supported video playback facilities.
+ \row \li MediaPlayer.ResourceMissing
+ \li There is one or more resources missing, so the video player cannot
+ be used. It may be possible to try again at a later time.
+ \endtable
+ */
+ property alias availability: player.availability
+
+ /*!
+ \qmlproperty bool Video::hasAudio
+
+ This property holds whether the current media has audio content.
+ */
+ property alias hasAudio: player.hasAudio
+
+ /*!
+ \qmlproperty bool Video::hasVideo
+
+ This property holds whether the current media has video content.
+ */
+ property alias hasVideo: player.hasVideo
+
+ /*!
+ \qmlproperty object Video::metaData
+
+ This property holds the meta data for the current media.
+
+ See \l{MediaPlayer::metaData}{MediaPlayer.metaData} for details about each meta data key.
+
+ \sa {QMediaMetaData}
+ */
+ property alias metaData: player.metaData
+
+ /*!
+ \qmlproperty bool Video::muted
+
+ This property holds whether the audio output is muted.
+ */
+ property alias muted: player.muted
+
+ /*!
+ \qmlproperty real Video::playbackRate
+
+ This property holds the rate at which video is played at as a multiple
+ of the normal rate.
+ */
+ property alias playbackRate: player.playbackRate
+
+ /*!
+ \qmlproperty int Video::position
+
+ This property holds the current playback position in milliseconds.
+
+ To change this position, use the \l seek() method.
+
+ \sa seek()
+ */
+ property alias position: player.position
+
+ /*!
+ \qmlproperty enumeration Video::audioRole
+
+ This property holds the role of the audio stream. It can be set to specify the type of audio
+ being played, allowing the system to make appropriate decisions when it comes to volume,
+ routing or post-processing.
+
+ The audio role must be set before setting the source property.
+
+ Supported values can be retrieved with supportedAudioRoles().
+
+ The value can be one of:
+ \list
+ \li MediaPlayer.UnknownRole - the role is unknown or undefined.
+ \li MediaPlayer.MusicRole - music.
+ \li MediaPlayer.VideoRole - soundtrack from a movie or a video.
+ \li MediaPlayer.VoiceCommunicationRole - voice communications, such as telephony.
+ \li MediaPlayer.AlarmRole - alarm.
+ \li MediaPlayer.NotificationRole - notification, such as an incoming e-mail or a chat request.
+ \li MediaPlayer.RingtoneRole - ringtone.
+ \li MediaPlayer.AccessibilityRole - for accessibility, such as with a screen reader.
+ \li MediaPlayer.SonificationRole - sonification, such as with user interface sounds.
+ \li MediaPlayer.GameRole - game audio.
+ \li MediaPlayer.CustomRole - The role is specified by customAudioRole.
+ \endlist
+
+ customAudioRole is cleared when this property is set to anything other than CustomRole.
+
+ \since 5.6
+ */
+ property alias audioRole: player.audioRole
+
+ /*!
+ \qmlproperty string Video::customAudioRole
+
+ This property holds the role of the audio stream when the backend supports audio roles
+ unknown to Qt. It can be set to specify the type of audio being played, allowing the
+ system to make appropriate decisions when it comes to volume, routing or post-processing.
+
+ The audio role must be set before setting the source property.
+
+ audioRole is set to CustomRole when this property is set.
+
+ \since 5.11
+ */
+ property alias customAudioRole: player.customAudioRole
+
+ /*!
+ \qmlproperty bool Video::seekable
+
+ This property holds whether the playback position of the video can be
+ changed.
+
+ If true, calling the \l seek() method will cause playback to seek to the new position.
+ */
+ property alias seekable: player.seekable
+
+ /*!
+ \qmlproperty url Video::source
+
+ This property holds the source URL of the media.
+
+ Setting the \l source property clears the current \l playlist, if any.
+ */
+ property alias source: player.source
+
+ /*!
+ \qmlproperty Playlist Video::playlist
+
+ This property holds the playlist used by the media player.
+
+ Setting the \l playlist property resets the \l source to an empty string.
+
+ \since 5.6
+ */
+ property alias playlist: player.playlist
+
+ /*!
+ \qmlproperty enumeration Video::status
+
+ This property holds the status of media loading. It can be one of:
+
+ \list
+ \li MediaPlayer.NoMedia - no media has been set.
+ \li MediaPlayer.Loading - the media is currently being loaded.
+ \li MediaPlayer.Loaded - the media has been loaded.
+ \li MediaPlayer.Buffering - the media is buffering data.
+ \li MediaPlayer.Stalled - playback has been interrupted while the media is buffering data.
+ \li MediaPlayer.Buffered - the media has buffered data.
+ \li MediaPlayer.EndOfMedia - the media has played to the end.
+ \li MediaPlayer.InvalidMedia - the media cannot be played.
+ \li MediaPlayer.UnknownStatus - the status of the media cannot be determined.
+ \endlist
+ */
+ property alias status: player.status
+
+ /*!
+ \qmlproperty real Video::volume
+
+ This property holds the audio volume.
+
+ The volume is scaled linearly from \c 0.0 (silence) to \c 1.0 (full volume). Values outside
+ this range will be clamped.
+
+ The default volume is \c 1.0.
+
+ UI volume controls should usually be scaled nonlinearly. For example, using a logarithmic
+ scale will produce linear changes in perceived loudness, which is what a user would normally
+ expect from a volume control. See \l {QtMultimedia::QtMultimedia::convertVolume()}{QtMultimedia.convertVolume()}
+ for more details.
+ */
+ property alias volume: player.volume
+
+ /*!
+ \qmlproperty bool Video::autoPlay
+
+ This property determines whether the media should begin playback automatically.
+
+ Setting to \c true also sets \l autoLoad to \c true. The default is \c false.
+ */
+ property alias autoPlay: player.autoPlay
+
+ /*!
+ \qmlproperty int Video::notifyInterval
+
+ The interval at which notifiable properties will update.
+
+ The notifiable properties are \l position and \l bufferProgress.
+
+ The interval is expressed in milliseconds, the default value is 1000.
+
+ \since 5.9
+ */
+ property alias notifyInterval: player.notifyInterval
+
+ /*!
+ \qmlproperty int Video::loops
+
+ This property holds the number of times the media is played. A value of \c 0 or \c 1 means
+ the media will be played only once; set to \c MediaPlayer.Infinite to enable infinite looping.
+
+ The value can be changed while the media is playing, in which case it will update
+ the remaining loops to the new value.
+
+ The default is \c 1.
+
+ \since 5.9
+ */
+ property alias loops: player.loops
+
+ /*!
+ \qmlsignal Video::paused()
+
+ This signal is emitted when playback is paused.
+
+ The corresponding handler is \c onPaused.
+ */
+ signal paused
+
+ /*!
+ \qmlsignal Video::stopped()
+
+ This signal is emitted when playback is stopped.
+
+ The corresponding handler is \c onStopped.
+ */
+ signal stopped
+
+ /*!
+ \qmlsignal Video::playing()
+
+ This signal is emitted when playback is started or continued.
+
+ The corresponding handler is \c onPlaying.
+ */
+ signal playing
+
+ VideoOutput {
+ id: videoOut
+ anchors.fill: video
+ source: player
+ }
+
+ MediaPlayer {
+ id: player
+ onPaused: video.paused()
+ onStopped: video.stopped()
+ onPlaying: video.playing()
+ }
+
+ /*!
+ \qmlmethod Video::play()
+
+ Starts playback of the media.
+ */
+ function play() {
+ player.play();
+ }
+
+ /*!
+ \qmlmethod Video::pause()
+
+ Pauses playback of the media.
+ */
+ function pause() {
+ player.pause();
+ }
+
+ /*!
+ \qmlmethod Video::stop()
+
+ Stops playback of the media.
+ */
+ function stop() {
+ player.stop();
+ }
+
+ /*!
+ \qmlmethod Video::seek(offset)
+
+ If the \l seekable property is true, seeks the current
+ playback position to \a offset.
+
+ Seeking may be asynchronous, so the \l position property
+ may not be updated immediately.
+
+ \sa seekable, position
+ */
+ function seek(offset) {
+ player.seek(offset);
+ }
+
+ /*!
+ \qmlmethod list Video::supportedAudioRoles()
+
+ Returns a list of supported audio roles.
+
+ If setting the audio role is not supported, an empty list is returned.
+
+ \since 5.6
+ \sa audioRole
+ */
+ function supportedAudioRoles() {
+ return player.supportedAudioRoles();
+ }
+
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/declarative_multimedia.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/declarative_multimedia.dll
new file mode 100644
index 00000000..4dffdc64
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/declarative_multimedia.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/plugins.qmltypes
new file mode 100644
index 00000000..06fb8918
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/plugins.qmltypes
@@ -0,0 +1,2194 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtMultimedia 5.15'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QAbstractVideoFilter"
+ prototype: "QObject"
+ Property { name: "active"; type: "bool" }
+ }
+ Component {
+ name: "QAbstractVideoSurface"
+ prototype: "QObject"
+ Property { name: "nativeResolution"; type: "QSize"; isReadonly: true }
+ Signal {
+ name: "activeChanged"
+ Parameter { name: "active"; type: "bool" }
+ }
+ Signal {
+ name: "surfaceFormatChanged"
+ Parameter { name: "format"; type: "QVideoSurfaceFormat" }
+ }
+ Signal { name: "supportedFormatsChanged" }
+ Signal {
+ name: "nativeResolutionChanged"
+ Parameter { name: "resolution"; type: "QSize" }
+ }
+ }
+ Component {
+ name: "QCamera"
+ prototype: "QMediaObject"
+ Enum {
+ name: "Status"
+ values: {
+ "UnavailableStatus": 0,
+ "UnloadedStatus": 1,
+ "LoadingStatus": 2,
+ "UnloadingStatus": 3,
+ "LoadedStatus": 4,
+ "StandbyStatus": 5,
+ "StartingStatus": 6,
+ "StoppingStatus": 7,
+ "ActiveStatus": 8
+ }
+ }
+ Enum {
+ name: "State"
+ values: {
+ "UnloadedState": 0,
+ "LoadedState": 1,
+ "ActiveState": 2
+ }
+ }
+ Enum {
+ name: "CaptureMode"
+ values: {
+ "CaptureViewfinder": 0,
+ "CaptureStillImage": 1,
+ "CaptureVideo": 2
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "CameraError": 1,
+ "InvalidRequestError": 2,
+ "ServiceMissingError": 3,
+ "NotSupportedFeatureError": 4
+ }
+ }
+ Enum {
+ name: "LockStatus"
+ values: {
+ "Unlocked": 0,
+ "Searching": 1,
+ "Locked": 2
+ }
+ }
+ Enum {
+ name: "LockChangeReason"
+ values: {
+ "UserRequest": 0,
+ "LockAcquired": 1,
+ "LockFailed": 2,
+ "LockLost": 3,
+ "LockTemporaryLost": 4
+ }
+ }
+ Enum {
+ name: "LockType"
+ values: {
+ "NoLock": 0,
+ "LockExposure": 1,
+ "LockWhiteBalance": 2,
+ "LockFocus": 4
+ }
+ }
+ Enum {
+ name: "Position"
+ values: {
+ "UnspecifiedPosition": 0,
+ "BackFace": 1,
+ "FrontFace": 2
+ }
+ }
+ Property { name: "state"; type: "QCamera::State"; isReadonly: true }
+ Property { name: "status"; type: "QCamera::Status"; isReadonly: true }
+ Property { name: "captureMode"; type: "QCamera::CaptureModes" }
+ Property { name: "lockStatus"; type: "QCamera::LockStatus"; isReadonly: true }
+ Signal {
+ name: "stateChanged"
+ Parameter { name: "state"; type: "QCamera::State" }
+ }
+ Signal {
+ name: "captureModeChanged"
+ Parameter { type: "QCamera::CaptureModes" }
+ }
+ Signal {
+ name: "statusChanged"
+ Parameter { name: "status"; type: "QCamera::Status" }
+ }
+ Signal { name: "locked" }
+ Signal { name: "lockFailed" }
+ Signal {
+ name: "lockStatusChanged"
+ Parameter { name: "status"; type: "QCamera::LockStatus" }
+ Parameter { name: "reason"; type: "QCamera::LockChangeReason" }
+ }
+ Signal {
+ name: "lockStatusChanged"
+ Parameter { name: "lock"; type: "QCamera::LockType" }
+ Parameter { name: "status"; type: "QCamera::LockStatus" }
+ Parameter { name: "reason"; type: "QCamera::LockChangeReason" }
+ }
+ Signal {
+ name: "error"
+ Parameter { type: "QCamera::Error" }
+ }
+ Method {
+ name: "setCaptureMode"
+ Parameter { name: "mode"; type: "QCamera::CaptureModes" }
+ }
+ Method { name: "load" }
+ Method { name: "unload" }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method { name: "searchAndLock" }
+ Method { name: "unlock" }
+ Method {
+ name: "searchAndLock"
+ Parameter { name: "locks"; type: "QCamera::LockTypes" }
+ }
+ Method {
+ name: "unlock"
+ Parameter { name: "locks"; type: "QCamera::LockTypes" }
+ }
+ }
+ Component {
+ name: "QDeclarativeAudio"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/Audio 5.0",
+ "QtMultimedia/Audio 5.11",
+ "QtMultimedia/Audio 5.6",
+ "QtMultimedia/Audio 5.9",
+ "QtMultimedia/MediaPlayer 5.0",
+ "QtMultimedia/MediaPlayer 5.11",
+ "QtMultimedia/MediaPlayer 5.15",
+ "QtMultimedia/MediaPlayer 5.6",
+ "QtMultimedia/MediaPlayer 5.9"
+ ]
+ exportMetaObjectRevisions: [0, 3, 1, 2, 0, 3, 15, 1, 2]
+ Enum {
+ name: "Status"
+ values: {
+ "UnknownStatus": 0,
+ "NoMedia": 1,
+ "Loading": 2,
+ "Loaded": 3,
+ "Stalled": 4,
+ "Buffering": 5,
+ "Buffered": 6,
+ "EndOfMedia": 7,
+ "InvalidMedia": 8
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "ResourceError": 1,
+ "FormatError": 2,
+ "NetworkError": 3,
+ "AccessDenied": 4,
+ "ServiceMissing": 5
+ }
+ }
+ Enum {
+ name: "Loop"
+ values: {
+ "Infinite": -1
+ }
+ }
+ Enum {
+ name: "PlaybackState"
+ values: {
+ "PlayingState": 1,
+ "PausedState": 2,
+ "StoppedState": 0
+ }
+ }
+ Enum {
+ name: "Availability"
+ values: {
+ "Available": 0,
+ "Busy": 2,
+ "Unavailable": 1,
+ "ResourceMissing": 3
+ }
+ }
+ Enum {
+ name: "AudioRole"
+ values: {
+ "UnknownRole": 0,
+ "AccessibilityRole": 7,
+ "AlarmRole": 4,
+ "CustomRole": 10,
+ "GameRole": 9,
+ "MusicRole": 1,
+ "NotificationRole": 5,
+ "RingtoneRole": 6,
+ "SonificationRole": 8,
+ "VideoRole": 2,
+ "VoiceCommunicationRole": 3
+ }
+ }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "playlist"; revision: 1; type: "QDeclarativePlaylist"; isPointer: true }
+ Property { name: "loops"; type: "int" }
+ Property { name: "playbackState"; type: "PlaybackState"; isReadonly: true }
+ Property { name: "autoPlay"; type: "bool" }
+ Property { name: "autoLoad"; type: "bool" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "duration"; type: "int"; isReadonly: true }
+ Property { name: "position"; type: "int"; isReadonly: true }
+ Property { name: "volume"; type: "double" }
+ Property { name: "muted"; type: "bool" }
+ Property { name: "hasAudio"; type: "bool"; isReadonly: true }
+ Property { name: "hasVideo"; type: "bool"; isReadonly: true }
+ Property { name: "bufferProgress"; type: "double"; isReadonly: true }
+ Property { name: "seekable"; type: "bool"; isReadonly: true }
+ Property { name: "playbackRate"; type: "double" }
+ Property { name: "error"; type: "Error"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property {
+ name: "metaData"
+ type: "QDeclarativeMediaMetaData"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "mediaObject"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "availability"; type: "Availability"; isReadonly: true }
+ Property { name: "audioRole"; revision: 1; type: "AudioRole" }
+ Property { name: "customAudioRole"; revision: 3; type: "string" }
+ Property { name: "notifyInterval"; revision: 2; type: "int" }
+ Property { name: "videoOutput"; revision: 15; type: "QVariant" }
+ Signal { name: "playlistChanged"; revision: 1 }
+ Signal { name: "loopCountChanged" }
+ Signal { name: "paused" }
+ Signal { name: "stopped" }
+ Signal { name: "playing" }
+ Signal { name: "audioRoleChanged"; revision: 1 }
+ Signal { name: "customAudioRoleChanged"; revision: 3 }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "availability"; type: "Availability" }
+ }
+ Signal {
+ name: "error"
+ Parameter { name: "error"; type: "QDeclarativeAudio::Error" }
+ Parameter { name: "errorString"; type: "string" }
+ }
+ Signal { name: "notifyIntervalChanged"; revision: 2 }
+ Signal { name: "videoOutputChanged"; revision: 15 }
+ Method { name: "play" }
+ Method { name: "pause" }
+ Method { name: "stop" }
+ Method {
+ name: "seek"
+ Parameter { name: "position"; type: "int" }
+ }
+ Method { name: "supportedAudioRoles"; revision: 1; type: "QJSValue" }
+ }
+ Component {
+ name: "QDeclarativeCamera"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/Camera 5.0",
+ "QtMultimedia/Camera 5.4",
+ "QtMultimedia/Camera 5.5"
+ ]
+ exportMetaObjectRevisions: [0, 1, 2]
+ Enum {
+ name: "Position"
+ values: {
+ "UnspecifiedPosition": 0,
+ "BackFace": 1,
+ "FrontFace": 2
+ }
+ }
+ Enum {
+ name: "CaptureMode"
+ values: {
+ "CaptureViewfinder": 0,
+ "CaptureStillImage": 1,
+ "CaptureVideo": 2
+ }
+ }
+ Enum {
+ name: "State"
+ values: {
+ "ActiveState": 2,
+ "LoadedState": 1,
+ "UnloadedState": 0
+ }
+ }
+ Enum {
+ name: "Status"
+ values: {
+ "UnavailableStatus": 0,
+ "UnloadedStatus": 1,
+ "LoadingStatus": 2,
+ "UnloadingStatus": 3,
+ "LoadedStatus": 4,
+ "StandbyStatus": 5,
+ "StartingStatus": 6,
+ "StoppingStatus": 7,
+ "ActiveStatus": 8
+ }
+ }
+ Enum {
+ name: "LockStatus"
+ values: {
+ "Unlocked": 0,
+ "Searching": 1,
+ "Locked": 2
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "CameraError": 1,
+ "InvalidRequestError": 2,
+ "ServiceMissingError": 3,
+ "NotSupportedFeatureError": 4
+ }
+ }
+ Enum {
+ name: "FlashMode"
+ values: {
+ "FlashAuto": 1,
+ "FlashOff": 2,
+ "FlashOn": 4,
+ "FlashRedEyeReduction": 8,
+ "FlashFill": 16,
+ "FlashTorch": 32,
+ "FlashVideoLight": 64,
+ "FlashSlowSyncFrontCurtain": 128,
+ "FlashSlowSyncRearCurtain": 256,
+ "FlashManual": 512
+ }
+ }
+ Enum {
+ name: "ExposureMode"
+ values: {
+ "ExposureAuto": 0,
+ "ExposureManual": 1,
+ "ExposurePortrait": 2,
+ "ExposureNight": 3,
+ "ExposureBacklight": 4,
+ "ExposureSpotlight": 5,
+ "ExposureSports": 6,
+ "ExposureSnow": 7,
+ "ExposureBeach": 8,
+ "ExposureLargeAperture": 9,
+ "ExposureSmallAperture": 10,
+ "ExposureAction": 11,
+ "ExposureLandscape": 12,
+ "ExposureNightPortrait": 13,
+ "ExposureTheatre": 14,
+ "ExposureSunset": 15,
+ "ExposureSteadyPhoto": 16,
+ "ExposureFireworks": 17,
+ "ExposureParty": 18,
+ "ExposureCandlelight": 19,
+ "ExposureBarcode": 20,
+ "ExposureModeVendor": 1000
+ }
+ }
+ Enum {
+ name: "MeteringMode"
+ values: {
+ "MeteringMatrix": 1,
+ "MeteringAverage": 2,
+ "MeteringSpot": 3
+ }
+ }
+ Enum {
+ name: "FocusMode"
+ values: {
+ "FocusManual": 1,
+ "FocusHyperfocal": 2,
+ "FocusInfinity": 4,
+ "FocusAuto": 8,
+ "FocusContinuous": 16,
+ "FocusMacro": 32
+ }
+ }
+ Enum {
+ name: "FocusPointMode"
+ values: {
+ "FocusPointAuto": 0,
+ "FocusPointCenter": 1,
+ "FocusPointFaceDetection": 2,
+ "FocusPointCustom": 3
+ }
+ }
+ Enum {
+ name: "FocusAreaStatus"
+ values: {
+ "FocusAreaUnused": 1,
+ "FocusAreaSelected": 2,
+ "FocusAreaFocused": 3
+ }
+ }
+ Enum {
+ name: "Availability"
+ values: {
+ "Available": 0,
+ "Busy": 2,
+ "Unavailable": 1,
+ "ResourceMissing": 3
+ }
+ }
+ Property { name: "deviceId"; revision: 1; type: "string" }
+ Property { name: "position"; revision: 1; type: "Position" }
+ Property { name: "displayName"; revision: 1; type: "string"; isReadonly: true }
+ Property { name: "orientation"; revision: 1; type: "int"; isReadonly: true }
+ Property { name: "captureMode"; type: "CaptureMode" }
+ Property { name: "cameraState"; type: "State" }
+ Property { name: "cameraStatus"; type: "Status"; isReadonly: true }
+ Property { name: "lockStatus"; type: "LockStatus"; isReadonly: true }
+ Property { name: "errorCode"; type: "Error"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "availability"; type: "Availability"; isReadonly: true }
+ Property { name: "opticalZoom"; type: "double" }
+ Property { name: "maximumOpticalZoom"; type: "double"; isReadonly: true }
+ Property { name: "digitalZoom"; type: "double" }
+ Property { name: "maximumDigitalZoom"; type: "double"; isReadonly: true }
+ Property { name: "mediaObject"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property {
+ name: "imageCapture"
+ type: "QDeclarativeCameraCapture"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "videoRecorder"
+ type: "QDeclarativeCameraRecorder"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "exposure"
+ type: "QDeclarativeCameraExposure"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "flash"; type: "QDeclarativeCameraFlash"; isReadonly: true; isPointer: true }
+ Property { name: "focus"; type: "QDeclarativeCameraFocus"; isReadonly: true; isPointer: true }
+ Property {
+ name: "imageProcessing"
+ type: "QDeclarativeCameraImageProcessing"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "metaData"
+ revision: 1
+ type: "QDeclarativeMediaMetaData"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "viewfinder"
+ revision: 1
+ type: "QDeclarativeCameraViewfinder"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal { name: "errorChanged" }
+ Signal {
+ name: "error"
+ Parameter { name: "errorCode"; type: "QDeclarativeCamera::Error" }
+ Parameter { name: "errorString"; type: "string" }
+ }
+ Signal { name: "deviceIdChanged"; revision: 1 }
+ Signal { name: "positionChanged"; revision: 1 }
+ Signal { name: "displayNameChanged"; revision: 1 }
+ Signal { name: "orientationChanged"; revision: 1 }
+ Signal {
+ name: "cameraStateChanged"
+ Parameter { type: "QDeclarativeCamera::State" }
+ }
+ Signal {
+ name: "opticalZoomChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "digitalZoomChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "maximumOpticalZoomChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "maximumDigitalZoomChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "availability"; type: "Availability" }
+ }
+ Method {
+ name: "setCaptureMode"
+ Parameter { name: "mode"; type: "CaptureMode" }
+ }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method {
+ name: "setCameraState"
+ Parameter { name: "state"; type: "State" }
+ }
+ Method { name: "searchAndLock" }
+ Method { name: "unlock" }
+ Method {
+ name: "setOpticalZoom"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "setDigitalZoom"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "supportedViewfinderResolutions"
+ revision: 2
+ type: "QJSValue"
+ Parameter { name: "minimumFrameRate"; type: "double" }
+ Parameter { name: "maximumFrameRate"; type: "double" }
+ }
+ Method {
+ name: "supportedViewfinderResolutions"
+ revision: 2
+ type: "QJSValue"
+ Parameter { name: "minimumFrameRate"; type: "double" }
+ }
+ Method { name: "supportedViewfinderResolutions"; revision: 2; type: "QJSValue" }
+ Method {
+ name: "supportedViewfinderFrameRateRanges"
+ revision: 2
+ type: "QJSValue"
+ Parameter { name: "resolution"; type: "QJSValue" }
+ }
+ Method { name: "supportedViewfinderFrameRateRanges"; revision: 2; type: "QJSValue" }
+ }
+ Component {
+ name: "QDeclarativeCameraCapture"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/CameraCapture 5.0",
+ "QtMultimedia/CameraCapture 5.9"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "ready"; type: "bool"; isReadonly: true }
+ Property { name: "capturedImagePath"; type: "string"; isReadonly: true }
+ Property { name: "resolution"; type: "QSize" }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "supportedResolutions"; revision: 1; type: "QVariantList"; isReadonly: true }
+ Signal {
+ name: "readyForCaptureChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "imageExposed"
+ Parameter { name: "requestId"; type: "int" }
+ }
+ Signal {
+ name: "imageCaptured"
+ Parameter { name: "requestId"; type: "int" }
+ Parameter { name: "preview"; type: "string" }
+ }
+ Signal {
+ name: "imageMetadataAvailable"
+ Parameter { name: "requestId"; type: "int" }
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Signal {
+ name: "imageSaved"
+ Parameter { name: "requestId"; type: "int" }
+ Parameter { name: "path"; type: "string" }
+ }
+ Signal {
+ name: "captureFailed"
+ Parameter { name: "requestId"; type: "int" }
+ Parameter { name: "message"; type: "string" }
+ }
+ Signal {
+ name: "resolutionChanged"
+ Parameter { type: "QSize" }
+ }
+ Method { name: "capture"; type: "int" }
+ Method {
+ name: "captureToLocation"
+ type: "int"
+ Parameter { name: "location"; type: "string" }
+ }
+ Method { name: "cancelCapture" }
+ Method {
+ name: "setResolution"
+ Parameter { name: "resolution"; type: "QSize" }
+ }
+ Method {
+ name: "setMetadata"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component {
+ name: "QDeclarativeCameraExposure"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/CameraExposure 5.0",
+ "QtMultimedia/CameraExposure 5.11"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "ExposureMode"
+ values: {
+ "ExposureAuto": 0,
+ "ExposureManual": 1,
+ "ExposurePortrait": 2,
+ "ExposureNight": 3,
+ "ExposureBacklight": 4,
+ "ExposureSpotlight": 5,
+ "ExposureSports": 6,
+ "ExposureSnow": 7,
+ "ExposureBeach": 8,
+ "ExposureLargeAperture": 9,
+ "ExposureSmallAperture": 10,
+ "ExposureAction": 11,
+ "ExposureLandscape": 12,
+ "ExposureNightPortrait": 13,
+ "ExposureTheatre": 14,
+ "ExposureSunset": 15,
+ "ExposureSteadyPhoto": 16,
+ "ExposureFireworks": 17,
+ "ExposureParty": 18,
+ "ExposureCandlelight": 19,
+ "ExposureBarcode": 20,
+ "ExposureModeVendor": 1000
+ }
+ }
+ Enum {
+ name: "MeteringMode"
+ values: {
+ "MeteringMatrix": 1,
+ "MeteringAverage": 2,
+ "MeteringSpot": 3
+ }
+ }
+ Property { name: "exposureCompensation"; type: "double" }
+ Property { name: "iso"; type: "int"; isReadonly: true }
+ Property { name: "shutterSpeed"; type: "double"; isReadonly: true }
+ Property { name: "aperture"; type: "double"; isReadonly: true }
+ Property { name: "manualShutterSpeed"; type: "double" }
+ Property { name: "manualAperture"; type: "double" }
+ Property { name: "manualIso"; type: "double" }
+ Property { name: "exposureMode"; type: "ExposureMode" }
+ Property { name: "supportedExposureModes"; revision: 1; type: "QVariantList"; isReadonly: true }
+ Property { name: "spotMeteringPoint"; type: "QPointF" }
+ Property { name: "meteringMode"; type: "MeteringMode" }
+ Signal {
+ name: "isoSensitivityChanged"
+ Parameter { type: "int" }
+ }
+ Signal {
+ name: "apertureChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "shutterSpeedChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "manualIsoSensitivityChanged"
+ Parameter { type: "int" }
+ }
+ Signal {
+ name: "manualApertureChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "manualShutterSpeedChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "exposureCompensationChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "exposureModeChanged"
+ Parameter { type: "ExposureMode" }
+ }
+ Signal {
+ name: "meteringModeChanged"
+ Parameter { type: "MeteringMode" }
+ }
+ Signal {
+ name: "spotMeteringPointChanged"
+ Parameter { type: "QPointF" }
+ }
+ Method {
+ name: "setExposureMode"
+ Parameter { type: "ExposureMode" }
+ }
+ Method {
+ name: "setExposureCompensation"
+ Parameter { name: "ev"; type: "double" }
+ }
+ Method {
+ name: "setManualAperture"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "setManualShutterSpeed"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "setManualIsoSensitivity"
+ Parameter { name: "iso"; type: "int" }
+ }
+ Method { name: "setAutoAperture" }
+ Method { name: "setAutoShutterSpeed" }
+ Method { name: "setAutoIsoSensitivity" }
+ }
+ Component {
+ name: "QDeclarativeCameraFlash"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/CameraFlash 5.0",
+ "QtMultimedia/CameraFlash 5.9"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "FlashMode"
+ values: {
+ "FlashAuto": 1,
+ "FlashOff": 2,
+ "FlashOn": 4,
+ "FlashRedEyeReduction": 8,
+ "FlashFill": 16,
+ "FlashTorch": 32,
+ "FlashVideoLight": 64,
+ "FlashSlowSyncFrontCurtain": 128,
+ "FlashSlowSyncRearCurtain": 256,
+ "FlashManual": 512
+ }
+ }
+ Property { name: "ready"; type: "bool"; isReadonly: true }
+ Property { name: "mode"; type: "FlashMode" }
+ Property { name: "supportedModes"; revision: 1; type: "QVariantList"; isReadonly: true }
+ Signal {
+ name: "flashReady"
+ Parameter { name: "status"; type: "bool" }
+ }
+ Signal {
+ name: "flashModeChanged"
+ Parameter { type: "FlashMode" }
+ }
+ Method {
+ name: "setFlashMode"
+ Parameter { type: "FlashMode" }
+ }
+ }
+ Component {
+ name: "QDeclarativeCameraFocus"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/CameraFocus 5.0",
+ "QtMultimedia/CameraFocus 5.11"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "FocusMode"
+ values: {
+ "FocusManual": 1,
+ "FocusHyperfocal": 2,
+ "FocusInfinity": 4,
+ "FocusAuto": 8,
+ "FocusContinuous": 16,
+ "FocusMacro": 32
+ }
+ }
+ Enum {
+ name: "FocusPointMode"
+ values: {
+ "FocusPointAuto": 0,
+ "FocusPointCenter": 1,
+ "FocusPointFaceDetection": 2,
+ "FocusPointCustom": 3
+ }
+ }
+ Property { name: "focusMode"; type: "FocusMode" }
+ Property { name: "supportedFocusModes"; revision: 1; type: "QVariantList"; isReadonly: true }
+ Property { name: "focusPointMode"; type: "FocusPointMode" }
+ Property { name: "supportedFocusPointModes"; revision: 1; type: "QVariantList"; isReadonly: true }
+ Property { name: "customFocusPoint"; type: "QPointF" }
+ Property { name: "focusZones"; type: "QObject"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "focusModeChanged"
+ Parameter { type: "FocusMode" }
+ }
+ Signal {
+ name: "focusPointModeChanged"
+ Parameter { type: "FocusPointMode" }
+ }
+ Signal {
+ name: "customFocusPointChanged"
+ Parameter { type: "QPointF" }
+ }
+ Method {
+ name: "setFocusMode"
+ Parameter { type: "FocusMode" }
+ }
+ Method {
+ name: "setFocusPointMode"
+ Parameter { name: "mode"; type: "FocusPointMode" }
+ }
+ Method {
+ name: "setCustomFocusPoint"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "isFocusModeSupported"
+ type: "bool"
+ Parameter { name: "mode"; type: "FocusMode" }
+ }
+ Method {
+ name: "isFocusPointModeSupported"
+ type: "bool"
+ Parameter { name: "mode"; type: "FocusPointMode" }
+ }
+ }
+ Component {
+ name: "QDeclarativeCameraImageProcessing"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/CameraImageProcessing 5.0",
+ "QtMultimedia/CameraImageProcessing 5.11",
+ "QtMultimedia/CameraImageProcessing 5.5",
+ "QtMultimedia/CameraImageProcessing 5.7"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 3, 1, 2]
+ Enum {
+ name: "WhiteBalanceMode"
+ values: {
+ "WhiteBalanceAuto": 0,
+ "WhiteBalanceManual": 1,
+ "WhiteBalanceSunlight": 2,
+ "WhiteBalanceCloudy": 3,
+ "WhiteBalanceShade": 4,
+ "WhiteBalanceTungsten": 5,
+ "WhiteBalanceFluorescent": 6,
+ "WhiteBalanceFlash": 7,
+ "WhiteBalanceSunset": 8,
+ "WhiteBalanceVendor": 1000
+ }
+ }
+ Enum {
+ name: "ColorFilter"
+ values: {
+ "ColorFilterNone": 0,
+ "ColorFilterGrayscale": 1,
+ "ColorFilterNegative": 2,
+ "ColorFilterSolarize": 3,
+ "ColorFilterSepia": 4,
+ "ColorFilterPosterize": 5,
+ "ColorFilterWhiteboard": 6,
+ "ColorFilterBlackboard": 7,
+ "ColorFilterAqua": 8,
+ "ColorFilterVendor": 1000
+ }
+ }
+ Property { name: "whiteBalanceMode"; type: "WhiteBalanceMode" }
+ Property { name: "manualWhiteBalance"; type: "double" }
+ Property { name: "brightness"; revision: 2; type: "double" }
+ Property { name: "contrast"; type: "double" }
+ Property { name: "saturation"; type: "double" }
+ Property { name: "sharpeningLevel"; type: "double" }
+ Property { name: "denoisingLevel"; type: "double" }
+ Property { name: "colorFilter"; revision: 1; type: "ColorFilter" }
+ Property { name: "available"; revision: 3; type: "bool"; isReadonly: true }
+ Property { name: "supportedColorFilters"; revision: 3; type: "QVariantList"; isReadonly: true }
+ Property {
+ name: "supportedWhiteBalanceModes"
+ revision: 3
+ type: "QVariantList"
+ isReadonly: true
+ }
+ Signal {
+ name: "whiteBalanceModeChanged"
+ Parameter { type: "QDeclarativeCameraImageProcessing::WhiteBalanceMode" }
+ }
+ Signal {
+ name: "manualWhiteBalanceChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "brightnessChanged"
+ revision: 2
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "contrastChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "saturationChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "sharpeningLevelChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "denoisingLevelChanged"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "setWhiteBalanceMode"
+ Parameter { name: "mode"; type: "QDeclarativeCameraImageProcessing::WhiteBalanceMode" }
+ }
+ Method {
+ name: "setManualWhiteBalance"
+ Parameter { name: "colorTemp"; type: "double" }
+ }
+ Method {
+ name: "setBrightness"
+ revision: 2
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setContrast"
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setSaturation"
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setSharpeningLevel"
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setDenoisingLevel"
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setColorFilter"
+ Parameter { name: "colorFilter"; type: "ColorFilter" }
+ }
+ }
+ Component {
+ name: "QDeclarativeCameraRecorder"
+ prototype: "QObject"
+ exports: ["QtMultimedia/CameraRecorder 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "RecorderState"
+ values: {
+ "StoppedState": 0,
+ "RecordingState": 1
+ }
+ }
+ Enum {
+ name: "RecorderStatus"
+ values: {
+ "UnavailableStatus": 0,
+ "UnloadedStatus": 1,
+ "LoadingStatus": 2,
+ "LoadedStatus": 3,
+ "StartingStatus": 4,
+ "RecordingStatus": 5,
+ "PausedStatus": 6,
+ "FinalizingStatus": 7
+ }
+ }
+ Enum {
+ name: "EncodingMode"
+ values: {
+ "ConstantQualityEncoding": 0,
+ "ConstantBitRateEncoding": 1,
+ "AverageBitRateEncoding": 2
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "ResourceError": 1,
+ "FormatError": 2,
+ "OutOfSpaceError": 3
+ }
+ }
+ Property { name: "recorderState"; type: "RecorderState" }
+ Property { name: "recorderStatus"; type: "RecorderStatus"; isReadonly: true }
+ Property { name: "videoCodec"; type: "string" }
+ Property { name: "resolution"; type: "QSize" }
+ Property { name: "frameRate"; type: "double" }
+ Property { name: "videoBitRate"; type: "int" }
+ Property { name: "videoEncodingMode"; type: "EncodingMode" }
+ Property { name: "audioCodec"; type: "string" }
+ Property { name: "audioBitRate"; type: "int" }
+ Property { name: "audioChannels"; type: "int" }
+ Property { name: "audioSampleRate"; type: "int" }
+ Property { name: "audioEncodingMode"; type: "EncodingMode" }
+ Property { name: "mediaContainer"; type: "string" }
+ Property { name: "duration"; type: "qlonglong"; isReadonly: true }
+ Property { name: "outputLocation"; type: "string" }
+ Property { name: "actualLocation"; type: "string"; isReadonly: true }
+ Property { name: "muted"; type: "bool" }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "errorCode"; type: "Error"; isReadonly: true }
+ Signal {
+ name: "recorderStateChanged"
+ Parameter { name: "state"; type: "QDeclarativeCameraRecorder::RecorderState" }
+ }
+ Signal {
+ name: "durationChanged"
+ Parameter { name: "duration"; type: "qlonglong" }
+ }
+ Signal {
+ name: "mutedChanged"
+ Parameter { name: "muted"; type: "bool" }
+ }
+ Signal {
+ name: "outputLocationChanged"
+ Parameter { name: "location"; type: "string" }
+ }
+ Signal {
+ name: "actualLocationChanged"
+ Parameter { name: "location"; type: "string" }
+ }
+ Signal {
+ name: "error"
+ Parameter { name: "errorCode"; type: "QDeclarativeCameraRecorder::Error" }
+ Parameter { name: "errorString"; type: "string" }
+ }
+ Signal {
+ name: "metaDataChanged"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Signal {
+ name: "captureResolutionChanged"
+ Parameter { type: "QSize" }
+ }
+ Signal {
+ name: "audioCodecChanged"
+ Parameter { name: "codec"; type: "string" }
+ }
+ Signal {
+ name: "videoCodecChanged"
+ Parameter { name: "codec"; type: "string" }
+ }
+ Signal {
+ name: "mediaContainerChanged"
+ Parameter { name: "container"; type: "string" }
+ }
+ Signal {
+ name: "frameRateChanged"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Signal {
+ name: "videoBitRateChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "audioBitRateChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "audioChannelsChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "audioSampleRateChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "audioEncodingModeChanged"
+ Parameter { name: "encodingMode"; type: "EncodingMode" }
+ }
+ Signal {
+ name: "videoEncodingModeChanged"
+ Parameter { name: "encodingMode"; type: "EncodingMode" }
+ }
+ Method {
+ name: "setOutputLocation"
+ Parameter { name: "location"; type: "string" }
+ }
+ Method { name: "record" }
+ Method { name: "stop" }
+ Method {
+ name: "setRecorderState"
+ Parameter { name: "state"; type: "QDeclarativeCameraRecorder::RecorderState" }
+ }
+ Method {
+ name: "setMuted"
+ Parameter { name: "muted"; type: "bool" }
+ }
+ Method {
+ name: "setMetadata"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "setCaptureResolution"
+ Parameter { name: "resolution"; type: "QSize" }
+ }
+ Method {
+ name: "setAudioCodec"
+ Parameter { name: "codec"; type: "string" }
+ }
+ Method {
+ name: "setVideoCodec"
+ Parameter { name: "codec"; type: "string" }
+ }
+ Method {
+ name: "setMediaContainer"
+ Parameter { name: "container"; type: "string" }
+ }
+ Method {
+ name: "setFrameRate"
+ Parameter { name: "frameRate"; type: "double" }
+ }
+ Method {
+ name: "setVideoBitRate"
+ Parameter { name: "rate"; type: "int" }
+ }
+ Method {
+ name: "setAudioBitRate"
+ Parameter { name: "rate"; type: "int" }
+ }
+ Method {
+ name: "setAudioChannels"
+ Parameter { name: "channels"; type: "int" }
+ }
+ Method {
+ name: "setAudioSampleRate"
+ Parameter { name: "rate"; type: "int" }
+ }
+ Method {
+ name: "setVideoEncodingMode"
+ Parameter { name: "encodingMode"; type: "EncodingMode" }
+ }
+ Method {
+ name: "setAudioEncodingMode"
+ Parameter { name: "encodingMode"; type: "EncodingMode" }
+ }
+ }
+ Component {
+ name: "QDeclarativeCameraViewfinder"
+ prototype: "QObject"
+ exports: ["QtMultimedia/CameraViewfinder 5.4"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "resolution"; type: "QSize" }
+ Property { name: "minimumFrameRate"; type: "double" }
+ Property { name: "maximumFrameRate"; type: "double" }
+ }
+ Component {
+ name: "QDeclarativeMediaMetaData"
+ prototype: "QObject"
+ Property { name: "title"; type: "QVariant" }
+ Property { name: "subTitle"; type: "QVariant" }
+ Property { name: "author"; type: "QVariant" }
+ Property { name: "comment"; type: "QVariant" }
+ Property { name: "description"; type: "QVariant" }
+ Property { name: "category"; type: "QVariant" }
+ Property { name: "genre"; type: "QVariant" }
+ Property { name: "year"; type: "QVariant" }
+ Property { name: "date"; type: "QVariant" }
+ Property { name: "userRating"; type: "QVariant" }
+ Property { name: "keywords"; type: "QVariant" }
+ Property { name: "language"; type: "QVariant" }
+ Property { name: "publisher"; type: "QVariant" }
+ Property { name: "copyright"; type: "QVariant" }
+ Property { name: "parentalRating"; type: "QVariant" }
+ Property { name: "ratingOrganization"; type: "QVariant" }
+ Property { name: "size"; type: "QVariant" }
+ Property { name: "mediaType"; type: "QVariant" }
+ Property { name: "duration"; type: "QVariant" }
+ Property { name: "audioBitRate"; type: "QVariant" }
+ Property { name: "audioCodec"; type: "QVariant" }
+ Property { name: "averageLevel"; type: "QVariant" }
+ Property { name: "channelCount"; type: "QVariant" }
+ Property { name: "peakValue"; type: "QVariant" }
+ Property { name: "sampleRate"; type: "QVariant" }
+ Property { name: "albumTitle"; type: "QVariant" }
+ Property { name: "albumArtist"; type: "QVariant" }
+ Property { name: "contributingArtist"; type: "QVariant" }
+ Property { name: "composer"; type: "QVariant" }
+ Property { name: "conductor"; type: "QVariant" }
+ Property { name: "lyrics"; type: "QVariant" }
+ Property { name: "mood"; type: "QVariant" }
+ Property { name: "trackNumber"; type: "QVariant" }
+ Property { name: "trackCount"; type: "QVariant" }
+ Property { name: "coverArtUrlSmall"; type: "QVariant" }
+ Property { name: "coverArtUrlLarge"; type: "QVariant" }
+ Property { name: "resolution"; type: "QVariant" }
+ Property { name: "pixelAspectRatio"; type: "QVariant" }
+ Property { name: "videoFrameRate"; type: "QVariant" }
+ Property { name: "videoBitRate"; type: "QVariant" }
+ Property { name: "videoCodec"; type: "QVariant" }
+ Property { name: "posterUrl"; type: "QVariant" }
+ Property { name: "chapterNumber"; type: "QVariant" }
+ Property { name: "director"; type: "QVariant" }
+ Property { name: "leadPerformer"; type: "QVariant" }
+ Property { name: "writer"; type: "QVariant" }
+ Property { name: "cameraManufacturer"; type: "QVariant" }
+ Property { name: "cameraModel"; type: "QVariant" }
+ Property { name: "event"; type: "QVariant" }
+ Property { name: "subject"; type: "QVariant" }
+ Property { name: "orientation"; type: "QVariant" }
+ Property { name: "exposureTime"; type: "QVariant" }
+ Property { name: "fNumber"; type: "QVariant" }
+ Property { name: "exposureProgram"; type: "QVariant" }
+ Property { name: "isoSpeedRatings"; type: "QVariant" }
+ Property { name: "exposureBiasValue"; type: "QVariant" }
+ Property { name: "dateTimeOriginal"; type: "QVariant" }
+ Property { name: "dateTimeDigitized"; type: "QVariant" }
+ Property { name: "subjectDistance"; type: "QVariant" }
+ Property { name: "meteringMode"; type: "QVariant" }
+ Property { name: "lightSource"; type: "QVariant" }
+ Property { name: "flash"; type: "QVariant" }
+ Property { name: "focalLength"; type: "QVariant" }
+ Property { name: "exposureMode"; type: "QVariant" }
+ Property { name: "whiteBalance"; type: "QVariant" }
+ Property { name: "digitalZoomRatio"; type: "QVariant" }
+ Property { name: "focalLengthIn35mmFilm"; type: "QVariant" }
+ Property { name: "sceneCaptureType"; type: "QVariant" }
+ Property { name: "gainControl"; type: "QVariant" }
+ Property { name: "contrast"; type: "QVariant" }
+ Property { name: "saturation"; type: "QVariant" }
+ Property { name: "sharpness"; type: "QVariant" }
+ Property { name: "deviceSettingDescription"; type: "QVariant" }
+ Property { name: "gpsLatitude"; type: "QVariant" }
+ Property { name: "gpsLongitude"; type: "QVariant" }
+ Property { name: "gpsAltitude"; type: "QVariant" }
+ Property { name: "gpsTimeStamp"; type: "QVariant" }
+ Property { name: "gpsSatellites"; type: "QVariant" }
+ Property { name: "gpsStatus"; type: "QVariant" }
+ Property { name: "gpsDOP"; type: "QVariant" }
+ Property { name: "gpsSpeed"; type: "QVariant" }
+ Property { name: "gpsTrack"; type: "QVariant" }
+ Property { name: "gpsTrackRef"; type: "QVariant" }
+ Property { name: "gpsImgDirection"; type: "QVariant" }
+ Property { name: "gpsImgDirectionRef"; type: "QVariant" }
+ Property { name: "gpsMapDatum"; type: "QVariant" }
+ Property { name: "gpsProcessingMethod"; type: "QVariant" }
+ Property { name: "gpsAreaInformation"; type: "QVariant" }
+ Signal { name: "metaDataChanged" }
+ }
+ Component {
+ name: "QDeclarativeMultimediaGlobal"
+ prototype: "QObject"
+ exports: ["QtMultimedia/QtMultimedia 5.4"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "VolumeScale"
+ values: {
+ "LinearVolumeScale": 0,
+ "CubicVolumeScale": 1,
+ "LogarithmicVolumeScale": 2,
+ "DecibelVolumeScale": 3
+ }
+ }
+ Property { name: "defaultCamera"; type: "QJSValue"; isReadonly: true }
+ Property { name: "availableCameras"; type: "QJSValue"; isReadonly: true }
+ Method {
+ name: "convertVolume"
+ type: "double"
+ Parameter { name: "volume"; type: "double" }
+ Parameter { name: "from"; type: "VolumeScale" }
+ Parameter { name: "to"; type: "VolumeScale" }
+ }
+ }
+ Component {
+ name: "QDeclarativePlaylist"
+ defaultProperty: "items"
+ prototype: "QAbstractListModel"
+ exports: ["QtMultimedia/Playlist 5.6", "QtMultimedia/Playlist 5.7"]
+ exportMetaObjectRevisions: [0, 1]
+ Enum {
+ name: "PlaybackMode"
+ values: {
+ "CurrentItemOnce": 0,
+ "CurrentItemInLoop": 1,
+ "Sequential": 2,
+ "Loop": 3,
+ "Random": 4
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "FormatError": 1,
+ "FormatNotSupportedError": 2,
+ "NetworkError": 3,
+ "AccessDeniedError": 4
+ }
+ }
+ Property { name: "playbackMode"; type: "PlaybackMode" }
+ Property { name: "currentItemSource"; type: "QUrl"; isReadonly: true }
+ Property { name: "currentIndex"; type: "int" }
+ Property { name: "itemCount"; type: "int"; isReadonly: true }
+ Property { name: "readOnly"; type: "bool"; isReadonly: true }
+ Property { name: "error"; type: "Error"; isReadonly: true }
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "items"; type: "QDeclarativePlaylistItem"; isList: true; isReadonly: true }
+ Signal {
+ name: "itemAboutToBeInserted"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Signal {
+ name: "itemInserted"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Signal {
+ name: "itemAboutToBeRemoved"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Signal {
+ name: "itemRemoved"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Signal {
+ name: "itemChanged"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Signal { name: "loaded" }
+ Signal { name: "loadFailed" }
+ Signal {
+ name: "error"
+ Parameter { name: "error"; type: "QDeclarativePlaylist::Error" }
+ Parameter { name: "errorString"; type: "string" }
+ }
+ Method {
+ name: "itemSource"
+ type: "QUrl"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "nextIndex"
+ type: "int"
+ Parameter { name: "steps"; type: "int" }
+ }
+ Method { name: "nextIndex"; type: "int" }
+ Method {
+ name: "previousIndex"
+ type: "int"
+ Parameter { name: "steps"; type: "int" }
+ }
+ Method { name: "previousIndex"; type: "int" }
+ Method { name: "next" }
+ Method { name: "previous" }
+ Method { name: "shuffle" }
+ Method {
+ name: "load"
+ Parameter { name: "location"; type: "QUrl" }
+ Parameter { name: "format"; type: "string" }
+ }
+ Method {
+ name: "load"
+ Parameter { name: "location"; type: "QUrl" }
+ }
+ Method {
+ name: "save"
+ type: "bool"
+ Parameter { name: "location"; type: "QUrl" }
+ Parameter { name: "format"; type: "string" }
+ }
+ Method {
+ name: "save"
+ type: "bool"
+ Parameter { name: "location"; type: "QUrl" }
+ }
+ Method {
+ name: "addItem"
+ type: "bool"
+ Parameter { name: "source"; type: "QUrl" }
+ }
+ Method {
+ name: "addItems"
+ revision: 1
+ type: "bool"
+ Parameter { name: "sources"; type: "QList" }
+ }
+ Method {
+ name: "insertItem"
+ type: "bool"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "source"; type: "QUrl" }
+ }
+ Method {
+ name: "insertItems"
+ revision: 1
+ type: "bool"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "sources"; type: "QList" }
+ }
+ Method {
+ name: "moveItem"
+ revision: 1
+ type: "bool"
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ }
+ Method {
+ name: "removeItem"
+ type: "bool"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "removeItems"
+ revision: 1
+ type: "bool"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method { name: "clear"; type: "bool" }
+ }
+ Component {
+ name: "QDeclarativePlaylistItem"
+ prototype: "QObject"
+ exports: ["QtMultimedia/PlaylistItem 5.6"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "source"; type: "QUrl" }
+ }
+ Component {
+ name: "QDeclarativeRadio"
+ prototype: "QObject"
+ exports: ["QtMultimedia/Radio 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "State"
+ values: {
+ "ActiveState": 0,
+ "StoppedState": 1
+ }
+ }
+ Enum {
+ name: "Band"
+ values: {
+ "AM": 0,
+ "FM": 1,
+ "SW": 2,
+ "LW": 3,
+ "FM2": 4
+ }
+ }
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "ResourceError": 1,
+ "OpenError": 2,
+ "OutOfRangeError": 3
+ }
+ }
+ Enum {
+ name: "StereoMode"
+ values: {
+ "ForceStereo": 0,
+ "ForceMono": 1,
+ "Auto": 2
+ }
+ }
+ Enum {
+ name: "SearchMode"
+ values: {
+ "SearchFast": 0,
+ "SearchGetStationId": 1
+ }
+ }
+ Enum {
+ name: "Availability"
+ values: {
+ "Available": 0,
+ "Busy": 2,
+ "Unavailable": 1,
+ "ResourceMissing": 3
+ }
+ }
+ Property { name: "state"; type: "State"; isReadonly: true }
+ Property { name: "band"; type: "Band" }
+ Property { name: "frequency"; type: "int" }
+ Property { name: "stereo"; type: "bool"; isReadonly: true }
+ Property { name: "stereoMode"; type: "StereoMode" }
+ Property { name: "signalStrength"; type: "int"; isReadonly: true }
+ Property { name: "volume"; type: "int" }
+ Property { name: "muted"; type: "bool" }
+ Property { name: "searching"; type: "bool"; isReadonly: true }
+ Property { name: "frequencyStep"; type: "int"; isReadonly: true }
+ Property { name: "minimumFrequency"; type: "int"; isReadonly: true }
+ Property { name: "maximumFrequency"; type: "int"; isReadonly: true }
+ Property { name: "antennaConnected"; type: "bool"; isReadonly: true }
+ Property { name: "availability"; type: "Availability"; isReadonly: true }
+ Property { name: "radioData"; type: "QDeclarativeRadioData"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "stateChanged"
+ Parameter { name: "state"; type: "QDeclarativeRadio::State" }
+ }
+ Signal {
+ name: "bandChanged"
+ Parameter { name: "band"; type: "QDeclarativeRadio::Band" }
+ }
+ Signal {
+ name: "frequencyChanged"
+ Parameter { name: "frequency"; type: "int" }
+ }
+ Signal {
+ name: "stereoStatusChanged"
+ Parameter { name: "stereo"; type: "bool" }
+ }
+ Signal {
+ name: "searchingChanged"
+ Parameter { name: "searching"; type: "bool" }
+ }
+ Signal {
+ name: "signalStrengthChanged"
+ Parameter { name: "signalStrength"; type: "int" }
+ }
+ Signal {
+ name: "volumeChanged"
+ Parameter { name: "volume"; type: "int" }
+ }
+ Signal {
+ name: "mutedChanged"
+ Parameter { name: "muted"; type: "bool" }
+ }
+ Signal {
+ name: "stationFound"
+ Parameter { name: "frequency"; type: "int" }
+ Parameter { name: "stationId"; type: "string" }
+ }
+ Signal {
+ name: "antennaConnectedChanged"
+ Parameter { name: "connectionStatus"; type: "bool" }
+ }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "availability"; type: "Availability" }
+ }
+ Signal { name: "errorChanged" }
+ Signal {
+ name: "error"
+ Parameter { name: "errorCode"; type: "QDeclarativeRadio::Error" }
+ }
+ Method {
+ name: "setBand"
+ Parameter { name: "band"; type: "QDeclarativeRadio::Band" }
+ }
+ Method {
+ name: "setFrequency"
+ Parameter { name: "frequency"; type: "int" }
+ }
+ Method {
+ name: "setStereoMode"
+ Parameter { name: "stereoMode"; type: "QDeclarativeRadio::StereoMode" }
+ }
+ Method {
+ name: "setVolume"
+ Parameter { name: "volume"; type: "int" }
+ }
+ Method {
+ name: "setMuted"
+ Parameter { name: "muted"; type: "bool" }
+ }
+ Method { name: "cancelScan" }
+ Method { name: "scanDown" }
+ Method { name: "scanUp" }
+ Method { name: "tuneUp" }
+ Method { name: "tuneDown" }
+ Method {
+ name: "searchAllStations"
+ Parameter { name: "searchMode"; type: "QDeclarativeRadio::SearchMode" }
+ }
+ Method { name: "searchAllStations" }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method { name: "isAvailable"; type: "bool" }
+ }
+ Component {
+ name: "QDeclarativeRadioData"
+ prototype: "QObject"
+ exports: ["QtMultimedia/RadioData 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Error"
+ values: {
+ "NoError": 0,
+ "ResourceError": 1,
+ "OpenError": 2,
+ "OutOfRangeError": 3
+ }
+ }
+ Enum {
+ name: "ProgramType"
+ values: {
+ "Undefined": 0,
+ "News": 1,
+ "CurrentAffairs": 2,
+ "Information": 3,
+ "Sport": 4,
+ "Education": 5,
+ "Drama": 6,
+ "Culture": 7,
+ "Science": 8,
+ "Varied": 9,
+ "PopMusic": 10,
+ "RockMusic": 11,
+ "EasyListening": 12,
+ "LightClassical": 13,
+ "SeriousClassical": 14,
+ "OtherMusic": 15,
+ "Weather": 16,
+ "Finance": 17,
+ "ChildrensProgrammes": 18,
+ "SocialAffairs": 19,
+ "Religion": 20,
+ "PhoneIn": 21,
+ "Travel": 22,
+ "Leisure": 23,
+ "JazzMusic": 24,
+ "CountryMusic": 25,
+ "NationalMusic": 26,
+ "OldiesMusic": 27,
+ "FolkMusic": 28,
+ "Documentary": 29,
+ "AlarmTest": 30,
+ "Alarm": 31,
+ "Talk": 32,
+ "ClassicRock": 33,
+ "AdultHits": 34,
+ "SoftRock": 35,
+ "Top40": 36,
+ "Soft": 37,
+ "Nostalgia": 38,
+ "Classical": 39,
+ "RhythmAndBlues": 40,
+ "SoftRhythmAndBlues": 41,
+ "Language": 42,
+ "ReligiousMusic": 43,
+ "ReligiousTalk": 44,
+ "Personality": 45,
+ "Public": 46,
+ "College": 47
+ }
+ }
+ Enum {
+ name: "Availability"
+ values: {
+ "Available": 0,
+ "Busy": 2,
+ "Unavailable": 1,
+ "ResourceMissing": 3
+ }
+ }
+ Property { name: "stationId"; type: "string"; isReadonly: true }
+ Property { name: "programType"; type: "QDeclarativeRadioData::ProgramType"; isReadonly: true }
+ Property { name: "programTypeName"; type: "string"; isReadonly: true }
+ Property { name: "stationName"; type: "string"; isReadonly: true }
+ Property { name: "radioText"; type: "string"; isReadonly: true }
+ Property { name: "alternativeFrequenciesEnabled"; type: "bool" }
+ Property { name: "availability"; type: "Availability"; isReadonly: true }
+ Signal {
+ name: "stationIdChanged"
+ Parameter { name: "stationId"; type: "string" }
+ }
+ Signal {
+ name: "programTypeChanged"
+ Parameter { name: "programType"; type: "QDeclarativeRadioData::ProgramType" }
+ }
+ Signal {
+ name: "programTypeNameChanged"
+ Parameter { name: "programTypeName"; type: "string" }
+ }
+ Signal {
+ name: "stationNameChanged"
+ Parameter { name: "stationName"; type: "string" }
+ }
+ Signal {
+ name: "radioTextChanged"
+ Parameter { name: "radioText"; type: "string" }
+ }
+ Signal {
+ name: "alternativeFrequenciesEnabledChanged"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "availability"; type: "Availability" }
+ }
+ Signal { name: "errorChanged" }
+ Signal {
+ name: "error"
+ Parameter { name: "errorCode"; type: "QDeclarativeRadioData::Error" }
+ }
+ Method {
+ name: "setAlternativeFrequenciesEnabled"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Method { name: "isAvailable"; type: "bool" }
+ }
+ Component {
+ name: "QDeclarativeTorch"
+ prototype: "QObject"
+ exports: ["QtMultimedia/Torch 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "power"; type: "int" }
+ }
+ Component {
+ name: "QDeclarativeVideoOutput"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtMultimedia/VideoOutput 5.0",
+ "QtMultimedia/VideoOutput 5.13",
+ "QtMultimedia/VideoOutput 5.15",
+ "QtMultimedia/VideoOutput 5.2"
+ ]
+ exportMetaObjectRevisions: [0, 13, 15, 2]
+ Enum {
+ name: "FlushMode"
+ values: {
+ "EmptyFrame": 0,
+ "FirstFrame": 1,
+ "LastFrame": 2
+ }
+ }
+ Enum {
+ name: "FillMode"
+ values: {
+ "Stretch": 0,
+ "PreserveAspectFit": 1,
+ "PreserveAspectCrop": 2
+ }
+ }
+ Property { name: "source"; type: "QObject"; isPointer: true }
+ Property { name: "fillMode"; type: "FillMode" }
+ Property { name: "orientation"; type: "int" }
+ Property { name: "autoOrientation"; revision: 2; type: "bool" }
+ Property { name: "sourceRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "contentRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "filters"; type: "QAbstractVideoFilter"; isList: true; isReadonly: true }
+ Property { name: "flushMode"; revision: 13; type: "FlushMode" }
+ Property {
+ name: "videoSurface"
+ revision: 15
+ type: "QAbstractVideoSurface"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal {
+ name: "fillModeChanged"
+ Parameter { type: "QDeclarativeVideoOutput::FillMode" }
+ }
+ Method {
+ name: "mapPointToItem"
+ type: "QPointF"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapRectToItem"
+ type: "QRectF"
+ Parameter { name: "rectangle"; type: "QRectF" }
+ }
+ Method {
+ name: "mapNormalizedPointToItem"
+ type: "QPointF"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapNormalizedRectToItem"
+ type: "QRectF"
+ Parameter { name: "rectangle"; type: "QRectF" }
+ }
+ Method {
+ name: "mapPointToSource"
+ type: "QPointF"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapRectToSource"
+ type: "QRectF"
+ Parameter { name: "rectangle"; type: "QRectF" }
+ }
+ Method {
+ name: "mapPointToSourceNormalized"
+ type: "QPointF"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapRectToSourceNormalized"
+ type: "QRectF"
+ Parameter { name: "rectangle"; type: "QRectF" }
+ }
+ }
+ Component {
+ name: "QMediaObject"
+ prototype: "QObject"
+ Property { name: "notifyInterval"; type: "int" }
+ Signal {
+ name: "notifyIntervalChanged"
+ Parameter { name: "milliSeconds"; type: "int" }
+ }
+ Signal {
+ name: "metaDataAvailableChanged"
+ Parameter { name: "available"; type: "bool" }
+ }
+ Signal { name: "metaDataChanged" }
+ Signal {
+ name: "metaDataChanged"
+ Parameter { name: "key"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "available"; type: "bool" }
+ }
+ Signal {
+ name: "availabilityChanged"
+ Parameter { name: "availability"; type: "QMultimedia::AvailabilityStatus" }
+ }
+ }
+ Component { name: "QSGVideoItemSurface"; prototype: "QAbstractVideoSurface" }
+ Component {
+ name: "QSoundEffect"
+ prototype: "QObject"
+ exports: [
+ "QtMultimedia/SoundEffect 5.0",
+ "QtMultimedia/SoundEffect 5.3",
+ "QtMultimedia/SoundEffect 5.8"
+ ]
+ exportMetaObjectRevisions: [0, 0, 0]
+ Enum {
+ name: "Loop"
+ values: {
+ "Infinite": -2
+ }
+ }
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Loading": 1,
+ "Ready": 2,
+ "Error": 3
+ }
+ }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "loops"; type: "int" }
+ Property { name: "loopsRemaining"; type: "int"; isReadonly: true }
+ Property { name: "volume"; type: "double" }
+ Property { name: "muted"; type: "bool" }
+ Property { name: "playing"; type: "bool"; isReadonly: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "category"; type: "string" }
+ Signal { name: "loopCountChanged" }
+ Signal { name: "loadedChanged" }
+ Method { name: "play" }
+ Method { name: "stop" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/qmldir
new file mode 100644
index 00000000..3d2d7c46
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtMultimedia/qmldir
@@ -0,0 +1,5 @@
+module QtMultimedia
+plugin declarative_multimedia
+classname QMultimediaDeclarativeModule
+typeinfo plugins.qmltypes
+Video 5.0 Video.qml
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/declarative_nfc.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/declarative_nfc.dll
new file mode 100644
index 00000000..77d6b4ab
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/declarative_nfc.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/plugins.qmltypes
new file mode 100644
index 00000000..40cbe2cc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/plugins.qmltypes
@@ -0,0 +1,91 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtNfc 5.15'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QDeclarativeNdefFilter"
+ prototype: "QObject"
+ exports: ["QtNfc/NdefFilter 5.0", "QtNfc/NdefFilter 5.2"]
+ exportMetaObjectRevisions: [0, 0]
+ Property { name: "type"; type: "string" }
+ Property { name: "typeNameFormat"; type: "QQmlNdefRecord::TypeNameFormat" }
+ Property { name: "minimum"; type: "int" }
+ Property { name: "maximum"; type: "int" }
+ }
+ Component {
+ name: "QDeclarativeNdefMimeRecord"
+ prototype: "QQmlNdefRecord"
+ exports: ["QtNfc/NdefMimeRecord 5.0", "QtNfc/NdefMimeRecord 5.2"]
+ exportMetaObjectRevisions: [0, 0]
+ Property { name: "uri"; type: "string"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeNdefTextRecord"
+ prototype: "QQmlNdefRecord"
+ exports: ["QtNfc/NdefTextRecord 5.0", "QtNfc/NdefTextRecord 5.2"]
+ exportMetaObjectRevisions: [0, 0]
+ Enum {
+ name: "LocaleMatch"
+ values: {
+ "LocaleMatchedNone": 0,
+ "LocaleMatchedEnglish": 1,
+ "LocaleMatchedLanguage": 2,
+ "LocaleMatchedLanguageAndCountry": 3
+ }
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "locale"; type: "string" }
+ Property { name: "localeMatch"; type: "LocaleMatch"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeNdefUriRecord"
+ prototype: "QQmlNdefRecord"
+ exports: ["QtNfc/NdefUriRecord 5.0", "QtNfc/NdefUriRecord 5.2"]
+ exportMetaObjectRevisions: [0, 0]
+ Property { name: "uri"; type: "string" }
+ }
+ Component {
+ name: "QDeclarativeNearField"
+ prototype: "QObject"
+ exports: [
+ "QtNfc/NearField 5.0",
+ "QtNfc/NearField 5.2",
+ "QtNfc/NearField 5.4",
+ "QtNfc/NearField 5.5"
+ ]
+ exportMetaObjectRevisions: [0, 0, 0, 1]
+ Property { name: "messageRecords"; type: "QQmlNdefRecord"; isList: true; isReadonly: true }
+ Property { name: "filter"; type: "QDeclarativeNdefFilter"; isList: true; isReadonly: true }
+ Property { name: "orderMatch"; type: "bool" }
+ Property { name: "polling"; revision: 1; type: "bool" }
+ Signal { name: "pollingChanged"; revision: 1 }
+ Signal { name: "tagFound"; revision: 1 }
+ Signal { name: "tagRemoved"; revision: 1 }
+ }
+ Component {
+ name: "QQmlNdefRecord"
+ prototype: "QObject"
+ exports: ["QtNfc/NdefRecord 5.0", "QtNfc/NdefRecord 5.2"]
+ exportMetaObjectRevisions: [0, 0]
+ Enum {
+ name: "TypeNameFormat"
+ values: {
+ "Empty": 0,
+ "NfcRtd": 1,
+ "Mime": 2,
+ "Uri": 3,
+ "ExternalRtd": 4,
+ "Unknown": 5
+ }
+ }
+ Property { name: "type"; type: "string" }
+ Property { name: "typeNameFormat"; type: "TypeNameFormat" }
+ Property { name: "record"; type: "QNdefRecord" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/qmldir
new file mode 100644
index 00000000..0025f3e6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtNfc/qmldir
@@ -0,0 +1,4 @@
+module QtNfc
+plugin declarative_nfc
+classname QNfcQmlPlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/declarative_positioning.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/declarative_positioning.dll
new file mode 100644
index 00000000..befd2be9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/declarative_positioning.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/plugins.qmltypes
new file mode 100644
index 00000000..e951961c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/plugins.qmltypes
@@ -0,0 +1,316 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtPositioning 5.14'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "LocationSingleton"
+ prototype: "QObject"
+ exports: ["QtPositioning/QtPositioning 5.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Method { name: "coordinate"; type: "QGeoCoordinate" }
+ Method {
+ name: "coordinate"
+ type: "QGeoCoordinate"
+ Parameter { name: "latitude"; type: "double" }
+ Parameter { name: "longitude"; type: "double" }
+ Parameter { name: "altitude"; type: "double" }
+ }
+ Method {
+ name: "coordinate"
+ type: "QGeoCoordinate"
+ Parameter { name: "latitude"; type: "double" }
+ Parameter { name: "longitude"; type: "double" }
+ }
+ Method { name: "shape"; type: "QGeoShape" }
+ Method { name: "rectangle"; type: "QGeoRectangle" }
+ Method {
+ name: "rectangle"
+ type: "QGeoRectangle"
+ Parameter { name: "center"; type: "QGeoCoordinate" }
+ Parameter { name: "width"; type: "double" }
+ Parameter { name: "height"; type: "double" }
+ }
+ Method {
+ name: "rectangle"
+ type: "QGeoRectangle"
+ Parameter { name: "topLeft"; type: "QGeoCoordinate" }
+ Parameter { name: "bottomRight"; type: "QGeoCoordinate" }
+ }
+ Method {
+ name: "rectangle"
+ type: "QGeoRectangle"
+ Parameter { name: "coordinates"; type: "QVariantList" }
+ }
+ Method { name: "circle"; type: "QGeoCircle" }
+ Method {
+ name: "circle"
+ type: "QGeoCircle"
+ Parameter { name: "center"; type: "QGeoCoordinate" }
+ Parameter { name: "radius"; type: "double" }
+ }
+ Method {
+ name: "circle"
+ type: "QGeoCircle"
+ Parameter { name: "center"; type: "QGeoCoordinate" }
+ }
+ Method { name: "path"; type: "QGeoPath" }
+ Method {
+ name: "path"
+ type: "QGeoPath"
+ Parameter { name: "value"; type: "QJSValue" }
+ Parameter { name: "width"; type: "double" }
+ }
+ Method {
+ name: "path"
+ type: "QGeoPath"
+ Parameter { name: "value"; type: "QJSValue" }
+ }
+ Method { name: "polygon"; type: "QGeoPolygon" }
+ Method {
+ name: "polygon"
+ type: "QGeoPolygon"
+ Parameter { name: "value"; type: "QVariantList" }
+ }
+ Method {
+ name: "polygon"
+ type: "QGeoPolygon"
+ Parameter { name: "perimeter"; type: "QVariantList" }
+ Parameter { name: "holes"; type: "QVariantList" }
+ }
+ Method {
+ name: "shapeToCircle"
+ type: "QGeoCircle"
+ Parameter { name: "shape"; type: "QGeoShape" }
+ }
+ Method {
+ name: "shapeToRectangle"
+ type: "QGeoRectangle"
+ Parameter { name: "shape"; type: "QGeoShape" }
+ }
+ Method {
+ name: "shapeToPath"
+ type: "QGeoPath"
+ Parameter { name: "shape"; type: "QGeoShape" }
+ }
+ Method {
+ name: "shapeToPolygon"
+ type: "QGeoPolygon"
+ Parameter { name: "shape"; type: "QGeoShape" }
+ }
+ Method {
+ name: "mercatorToCoord"
+ revision: 12
+ type: "QGeoCoordinate"
+ Parameter { name: "mercator"; type: "QPointF" }
+ }
+ Method {
+ name: "coordToMercator"
+ revision: 12
+ type: "QPointF"
+ Parameter { name: "coord"; type: "QGeoCoordinate" }
+ }
+ }
+ Component {
+ name: "QDeclarativeGeoAddress"
+ prototype: "QObject"
+ exports: ["QtPositioning/Address 5.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "address"; type: "QGeoAddress" }
+ Property { name: "text"; type: "string" }
+ Property { name: "country"; type: "string" }
+ Property { name: "countryCode"; type: "string" }
+ Property { name: "state"; type: "string" }
+ Property { name: "county"; type: "string" }
+ Property { name: "city"; type: "string" }
+ Property { name: "district"; type: "string" }
+ Property { name: "street"; type: "string" }
+ Property { name: "postalCode"; type: "string" }
+ Property { name: "isTextGenerated"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ name: "QDeclarativeGeoLocation"
+ prototype: "QObject"
+ exports: ["QtPositioning/Location 5.0", "QtPositioning/Location 5.13"]
+ exportMetaObjectRevisions: [0, 13]
+ Property { name: "location"; type: "QGeoLocation" }
+ Property { name: "address"; type: "QDeclarativeGeoAddress"; isPointer: true }
+ Property { name: "coordinate"; type: "QGeoCoordinate" }
+ Property { name: "boundingBox"; type: "QGeoRectangle" }
+ Property { name: "extendedAttributes"; revision: 13; type: "QVariantMap" }
+ }
+ Component {
+ name: "QDeclarativePluginParameter"
+ prototype: "QObject"
+ exports: ["QtPositioning/PluginParameter 5.14"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "name"; type: "string" }
+ Property { name: "value"; type: "QVariant" }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "name"; type: "string" }
+ }
+ Signal {
+ name: "valueChanged"
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Signal { name: "initialized" }
+ }
+ Component {
+ name: "QDeclarativePosition"
+ prototype: "QObject"
+ exports: [
+ "QtPositioning/Position 5.0",
+ "QtPositioning/Position 5.3",
+ "QtPositioning/Position 5.4"
+ ]
+ exportMetaObjectRevisions: [0, 1, 2]
+ Property { name: "latitudeValid"; type: "bool"; isReadonly: true }
+ Property { name: "longitudeValid"; type: "bool"; isReadonly: true }
+ Property { name: "altitudeValid"; type: "bool"; isReadonly: true }
+ Property { name: "coordinate"; type: "QGeoCoordinate"; isReadonly: true }
+ Property { name: "timestamp"; type: "QDateTime"; isReadonly: true }
+ Property { name: "speed"; type: "double"; isReadonly: true }
+ Property { name: "speedValid"; type: "bool"; isReadonly: true }
+ Property { name: "horizontalAccuracy"; type: "double" }
+ Property { name: "verticalAccuracy"; type: "double" }
+ Property { name: "horizontalAccuracyValid"; type: "bool"; isReadonly: true }
+ Property { name: "verticalAccuracyValid"; type: "bool"; isReadonly: true }
+ Property { name: "directionValid"; revision: 1; type: "bool"; isReadonly: true }
+ Property { name: "direction"; revision: 1; type: "double"; isReadonly: true }
+ Property { name: "verticalSpeedValid"; revision: 1; type: "bool"; isReadonly: true }
+ Property { name: "verticalSpeed"; revision: 1; type: "double"; isReadonly: true }
+ Property { name: "magneticVariation"; revision: 2; type: "double"; isReadonly: true }
+ Property { name: "magneticVariationValid"; revision: 2; type: "bool"; isReadonly: true }
+ Signal { name: "directionValidChanged"; revision: 1 }
+ Signal { name: "directionChanged"; revision: 1 }
+ Signal { name: "verticalSpeedValidChanged"; revision: 1 }
+ Signal { name: "verticalSpeedChanged"; revision: 1 }
+ Signal { name: "magneticVariationChanged"; revision: 2 }
+ Signal { name: "magneticVariationValidChanged"; revision: 2 }
+ }
+ Component {
+ name: "QDeclarativePositionSource"
+ defaultProperty: "parameters"
+ prototype: "QObject"
+ exports: ["QtPositioning/PositionSource 5.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "PositioningMethod"
+ values: {
+ "NoPositioningMethods": 0,
+ "SatellitePositioningMethods": 255,
+ "NonSatellitePositioningMethods": -256,
+ "AllPositioningMethods": -1
+ }
+ }
+ Enum {
+ name: "PositioningMethods"
+ values: {
+ "NoPositioningMethods": 0,
+ "SatellitePositioningMethods": 255,
+ "NonSatellitePositioningMethods": -256,
+ "AllPositioningMethods": -1
+ }
+ }
+ Enum {
+ name: "SourceError"
+ values: {
+ "AccessError": 0,
+ "ClosedError": 1,
+ "UnknownSourceError": 2,
+ "NoError": 3,
+ "SocketError": 100
+ }
+ }
+ Property { name: "position"; type: "QDeclarativePosition"; isReadonly: true; isPointer: true }
+ Property { name: "active"; type: "bool" }
+ Property { name: "valid"; type: "bool"; isReadonly: true }
+ Property { name: "nmeaSource"; type: "QUrl" }
+ Property { name: "updateInterval"; type: "int" }
+ Property { name: "supportedPositioningMethods"; type: "PositioningMethods"; isReadonly: true }
+ Property { name: "preferredPositioningMethods"; type: "PositioningMethods" }
+ Property { name: "sourceError"; type: "SourceError"; isReadonly: true }
+ Property { name: "name"; type: "string" }
+ Property {
+ name: "parameters"
+ revision: 14
+ type: "QDeclarativePluginParameter"
+ isList: true
+ isReadonly: true
+ }
+ Signal { name: "validityChanged" }
+ Signal { name: "updateTimeout" }
+ Method { name: "update" }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method {
+ name: "setBackendProperty"
+ revision: 14
+ type: "bool"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "backendProperty"
+ revision: 14
+ type: "QVariant"
+ Parameter { name: "name"; type: "string" }
+ }
+ }
+ Component {
+ name: "QGeoShape"
+ exports: ["QtPositioning/GeoShape 5.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "ShapeType"
+ values: {
+ "UnknownType": 0,
+ "RectangleType": 1,
+ "CircleType": 2,
+ "PathType": 3,
+ "PolygonType": 4
+ }
+ }
+ Property { name: "type"; type: "ShapeType"; isReadonly: true }
+ Property { name: "isValid"; type: "bool"; isReadonly: true }
+ Property { name: "isEmpty"; type: "bool"; isReadonly: true }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method { name: "boundingGeoRectangle"; type: "QGeoRectangle" }
+ Method { name: "center"; type: "QGeoCoordinate" }
+ Method {
+ name: "extendShape"
+ Parameter { name: "coordinate"; type: "QGeoCoordinate" }
+ }
+ Method { name: "toString"; type: "string" }
+ }
+ Component {
+ name: "QQuickGeoCoordinateAnimation"
+ prototype: "QQuickPropertyAnimation"
+ exports: ["QtPositioning/CoordinateAnimation 5.3"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Direction"
+ values: {
+ "Shortest": 0,
+ "West": 1,
+ "East": 2
+ }
+ }
+ Property { name: "from"; type: "QGeoCoordinate" }
+ Property { name: "to"; type: "QGeoCoordinate" }
+ Property { name: "direction"; type: "Direction" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/qmldir
new file mode 100644
index 00000000..fc4ebf85
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtPositioning/qmldir
@@ -0,0 +1,4 @@
+module QtPositioning
+plugin declarative_positioning
+classname QtPositioningDeclarativeModule
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/modelsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/modelsplugin.dll
new file mode 100644
index 00000000..3e32341f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/modelsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/plugins.qmltypes
new file mode 100644
index 00000000..f9c1f0aa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/plugins.qmltypes
@@ -0,0 +1,880 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: [
+ "NoLayoutChangeHint",
+ "VerticalSortHint",
+ "HorizontalSortHint"
+ ]
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: [
+ "NoOption",
+ "IndexIsValid",
+ "DoNotUseParent",
+ "ParentIsInvalid"
+ ]
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method { name: "resetInternalData" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ file: "private/qqmlmodelsmodule_p.h"
+ name: "QItemSelectionModel"
+ prototype: "QObject"
+ exports: ["QtQml.Models/ItemSelectionModel 2.2"]
+ exportMetaObjectRevisions: [2]
+ Enum {
+ name: "SelectionFlags"
+ alias: "SelectionFlag"
+ isFlag: true
+ values: [
+ "NoUpdate",
+ "Clear",
+ "Select",
+ "Deselect",
+ "Toggle",
+ "Current",
+ "Rows",
+ "Columns",
+ "SelectCurrent",
+ "ToggleCurrent",
+ "ClearAndSelect"
+ ]
+ }
+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
+ Property { name: "hasSelection"; type: "bool"; isReadonly: true }
+ Property { name: "currentIndex"; type: "QModelIndex"; isReadonly: true }
+ Property { name: "selection"; type: "QItemSelection"; isReadonly: true }
+ Property { name: "selectedIndexes"; type: "QModelIndexList"; isReadonly: true }
+ Signal {
+ name: "selectionChanged"
+ Parameter { name: "selected"; type: "QItemSelection" }
+ Parameter { name: "deselected"; type: "QItemSelection" }
+ }
+ Signal {
+ name: "currentChanged"
+ Parameter { name: "current"; type: "QModelIndex" }
+ Parameter { name: "previous"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "currentRowChanged"
+ Parameter { name: "current"; type: "QModelIndex" }
+ Parameter { name: "previous"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "currentColumnChanged"
+ Parameter { name: "current"; type: "QModelIndex" }
+ Parameter { name: "previous"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "modelChanged"
+ Parameter { name: "model"; type: "QAbstractItemModel"; isPointer: true }
+ }
+ Method {
+ name: "setCurrentIndex"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
+ }
+ Method {
+ name: "select"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
+ }
+ Method {
+ name: "select"
+ Parameter { name: "selection"; type: "QItemSelection" }
+ Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
+ }
+ Method { name: "clear" }
+ Method { name: "reset" }
+ Method { name: "clearSelection" }
+ Method { name: "clearCurrentIndex" }
+ Method {
+ name: "_q_columnsAboutToBeRemoved"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_rowsAboutToBeRemoved"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_columnsAboutToBeInserted"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_rowsAboutToBeInserted"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Method {
+ name: "_q_layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Method { name: "_q_layoutAboutToBeChanged" }
+ Method {
+ name: "_q_layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Method {
+ name: "_q_layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Method { name: "_q_layoutChanged" }
+ Method {
+ name: "isSelected"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "isRowSelected"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "isRowSelected"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ }
+ Method {
+ name: "isColumnSelected"
+ type: "bool"
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "isColumnSelected"
+ type: "bool"
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "rowIntersectsSelection"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowIntersectsSelection"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ }
+ Method {
+ name: "columnIntersectsSelection"
+ type: "bool"
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "columnIntersectsSelection"
+ type: "bool"
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "selectedRows"
+ type: "QModelIndexList"
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "selectedRows"; type: "QModelIndexList" }
+ Method {
+ name: "selectedColumns"
+ type: "QModelIndexList"
+ Parameter { name: "row"; type: "int" }
+ }
+ Method { name: "selectedColumns"; type: "QModelIndexList" }
+ }
+ Component {
+ file: "private/qqmlabstractdelegatecomponent_p.h"
+ name: "QQmlAbstractDelegateComponent"
+ prototype: "QQmlComponent"
+ exports: ["QtQml.Models/AbstractDelegateComponent 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Signal { name: "delegateChanged" }
+ }
+ Component {
+ file: "private/qqmldelegatemodel_p.h"
+ name: "QQmlDelegateModel"
+ defaultProperty: "delegate"
+ prototype: "QQmlInstanceModel"
+ exports: [
+ "QtQml.Models/DelegateModel 2.1",
+ "QtQml.Models/DelegateModel 2.15"
+ ]
+ exportMetaObjectRevisions: [1, 15]
+ attachedType: "QQmlDelegateModelAttached"
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "filterOnGroup"; type: "string" }
+ Property { name: "items"; type: "QQmlDelegateModelGroup"; isReadonly: true; isPointer: true }
+ Property {
+ name: "persistedItems"
+ type: "QQmlDelegateModelGroup"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "groups"; type: "QQmlDelegateModelGroup"; isList: true; isReadonly: true }
+ Property { name: "parts"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "rootIndex"; type: "QVariant" }
+ Signal { name: "filterGroupChanged" }
+ Signal { name: "defaultGroupsChanged" }
+ Method {
+ name: "_q_itemsChanged"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Method {
+ name: "_q_itemsInserted"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method {
+ name: "_q_itemsRemoved"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method {
+ name: "_q_itemsMoved"
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method { name: "_q_modelReset" }
+ Method {
+ name: "_q_rowsInserted"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "begin"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method {
+ name: "_q_rowsRemoved"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_rowsMoved"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_dataChanged"
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "QModelIndex" }
+ Parameter { type: "QVector" }
+ }
+ Method {
+ name: "_q_layoutChanged"
+ Parameter { type: "QList" }
+ Parameter { type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Method {
+ name: "modelIndex"
+ type: "QVariant"
+ Parameter { name: "idx"; type: "int" }
+ }
+ Method { name: "parentModelIndex"; type: "QVariant" }
+ }
+ Component {
+ name: "QQmlDelegateModelAttached"
+ prototype: "QObject"
+ Property { name: "model"; type: "QQmlDelegateModel"; isReadonly: true; isPointer: true }
+ Property { name: "groups"; type: "QStringList" }
+ Property { name: "isUnresolved"; type: "bool"; isReadonly: true }
+ Signal { name: "unresolvedChanged" }
+ }
+ Component {
+ file: "private/qqmldelegatemodel_p.h"
+ name: "QQmlDelegateModelGroup"
+ prototype: "QObject"
+ exports: ["QtQml.Models/DelegateModelGroup 2.1"]
+ exportMetaObjectRevisions: [1]
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "name"; type: "string" }
+ Property { name: "includeByDefault"; type: "bool" }
+ Signal { name: "defaultIncludeChanged" }
+ Signal {
+ name: "changed"
+ Parameter { name: "removed"; type: "QJSValue" }
+ Parameter { name: "inserted"; type: "QJSValue" }
+ }
+ Method {
+ name: "insert"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "create"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "resolve"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "remove"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "addGroups"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "removeGroups"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "setGroups"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "move"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "get"
+ type: "QJSValue"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qqmlobjectmodel_p.h"
+ name: "QQmlInstanceModel"
+ prototype: "QObject"
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Signal {
+ name: "modelUpdated"
+ Parameter { name: "changeSet"; type: "QQmlChangeSet" }
+ Parameter { name: "reset"; type: "bool" }
+ }
+ Signal {
+ name: "createdItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Signal {
+ name: "initItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Signal {
+ name: "destroyingItem"
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Signal {
+ name: "itemPooled"
+ revision: 15
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Signal {
+ name: "itemReused"
+ revision: 15
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qqmlinstantiator_p.h"
+ name: "QQmlInstantiator"
+ defaultProperty: "delegate"
+ prototype: "QObject"
+ exports: ["QtQml.Models/Instantiator 2.14"]
+ exportMetaObjectRevisions: [14]
+ Property { name: "active"; type: "bool" }
+ Property { name: "asynchronous"; type: "bool" }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "object"; type: "QObject"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "objectAdded"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Signal {
+ name: "objectRemoved"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "_q_createdItem"
+ Parameter { type: "int" }
+ Parameter { type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "_q_modelUpdated"
+ Parameter { type: "QQmlChangeSet" }
+ Parameter { type: "bool" }
+ }
+ Method {
+ name: "objectAt"
+ type: "QObject*"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qqmllistmodel_p.h"
+ name: "QQmlListElement"
+ prototype: "QObject"
+ exports: ["QtQml.Models/ListElement 2.1"]
+ exportMetaObjectRevisions: [1]
+ }
+ Component {
+ file: "private/qqmllistmodel_p.h"
+ name: "QQmlListModel"
+ prototype: "QAbstractListModel"
+ exports: ["QtQml.Models/ListModel 2.1", "QtQml.Models/ListModel 2.14"]
+ exportMetaObjectRevisions: [1, 14]
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "dynamicRoles"; type: "bool" }
+ Property { name: "agent"; revision: 14; type: "QObject"; isReadonly: true; isPointer: true }
+ Method { name: "clear" }
+ Method {
+ name: "remove"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "append"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "insert"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "get"
+ type: "QJSValue"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "set"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "value"; type: "QJSValue" }
+ }
+ Method {
+ name: "setProperty"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "property"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "move"
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method { name: "sync" }
+ }
+ Component {
+ file: "private/qqmllistmodelworkeragent_p.h"
+ name: "QQmlListModelWorkerAgent"
+ prototype: "QObject"
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "engine"; type: "QV4::ExecutionEngine"; isPointer: true }
+ Signal {
+ name: "engineChanged"
+ Parameter { name: "engine"; type: "QV4::ExecutionEngine"; isPointer: true }
+ }
+ Method { name: "addref" }
+ Method { name: "release" }
+ Method { name: "clear" }
+ Method {
+ name: "remove"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "append"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "insert"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "get"
+ type: "QJSValue"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "set"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "value"; type: "QJSValue" }
+ }
+ Method {
+ name: "setProperty"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "property"; type: "string" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "move"
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method { name: "sync" }
+ }
+ Component {
+ file: "private/qqmlobjectmodel_p.h"
+ name: "QQmlObjectModel"
+ defaultProperty: "children"
+ prototype: "QQmlInstanceModel"
+ exports: [
+ "QtQml.Models/ObjectModel 2.1",
+ "QtQml.Models/ObjectModel 2.15",
+ "QtQml.Models/ObjectModel 2.3"
+ ]
+ exportMetaObjectRevisions: [1, 15, 3]
+ attachedType: "QQmlObjectModelAttached"
+ Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
+ Method { name: "clear"; revision: 3 }
+ Method {
+ name: "get"
+ revision: 3
+ type: "QObject*"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "append"
+ revision: 3
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "insert"
+ revision: 3
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "move"
+ revision: 3
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ Parameter { name: "n"; type: "int" }
+ }
+ Method {
+ name: "move"
+ revision: 3
+ Parameter { name: "from"; type: "int" }
+ Parameter { name: "to"; type: "int" }
+ }
+ Method {
+ name: "remove"
+ revision: 3
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "n"; type: "int" }
+ }
+ Method {
+ name: "remove"
+ revision: 3
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQmlObjectModelAttached"
+ prototype: "QObject"
+ Property { name: "index"; type: "int"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickpackage_p.h"
+ name: "QQuickPackage"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: ["QtQml.Models/Package 2.14"]
+ exportMetaObjectRevisions: [14]
+ attachedType: "QQuickPackageAttached"
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "QQuickPackageAttached"
+ prototype: "QObject"
+ Property { name: "name"; type: "string" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/qmldir
new file mode 100644
index 00000000..2dd20b92
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/Models.2/qmldir
@@ -0,0 +1,4 @@
+module QtQml.Models
+plugin modelsplugin
+classname QtQmlModelsPlugin
+designersupported
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/plugins.qmltypes
new file mode 100644
index 00000000..24397152
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/plugins.qmltypes
@@ -0,0 +1,75 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtQml.RemoteObjects 1.0'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QRemoteObjectAbstractPersistedStore"
+ prototype: "QObject"
+ exports: ["QtQml.RemoteObjects/PersistedStore 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QRemoteObjectNode"
+ prototype: "QObject"
+ exports: ["QtQml.RemoteObjects/Node 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "ErrorCode"
+ values: {
+ "NoError": 0,
+ "RegistryNotAcquired": 1,
+ "RegistryAlreadyHosted": 2,
+ "NodeIsNoServer": 3,
+ "ServerAlreadyCreated": 4,
+ "UnintendedRegistryHosting": 5,
+ "OperationNotValidOnClientNode": 6,
+ "SourceNotRegistered": 7,
+ "MissingObjectName": 8,
+ "HostUrlInvalid": 9,
+ "ProtocolMismatch": 10,
+ "ListenFailed": 11
+ }
+ }
+ Property { name: "registryUrl"; type: "QUrl" }
+ Property {
+ name: "persistedStore"
+ type: "QRemoteObjectAbstractPersistedStore"
+ isPointer: true
+ }
+ Property { name: "heartbeatInterval"; type: "int" }
+ Signal {
+ name: "remoteObjectAdded"
+ Parameter { type: "QRemoteObjectSourceLocation" }
+ }
+ Signal {
+ name: "remoteObjectRemoved"
+ Parameter { type: "QRemoteObjectSourceLocation" }
+ }
+ Signal {
+ name: "error"
+ Parameter { name: "errorCode"; type: "QRemoteObjectNode::ErrorCode" }
+ }
+ Signal {
+ name: "heartbeatIntervalChanged"
+ Parameter { name: "heartbeatInterval"; type: "int" }
+ }
+ Method {
+ name: "connectToNode"
+ type: "bool"
+ Parameter { name: "address"; type: "QUrl" }
+ }
+ }
+ Component {
+ name: "QRemoteObjectSettingsStore"
+ prototype: "QRemoteObjectAbstractPersistedStore"
+ exports: ["QtQml.RemoteObjects/SettingsStore 1.0"]
+ exportMetaObjectRevisions: [0]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qmldir
new file mode 100644
index 00000000..e6f2c537
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qmldir
@@ -0,0 +1,3 @@
+module QtQml.RemoteObjects
+plugin qtqmlremoteobjects
+classname QtQmlRemoteObjectsPlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qtqmlremoteobjects.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qtqmlremoteobjects.dll
new file mode 100644
index 00000000..01cabad2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/RemoteObjects/qtqmlremoteobjects.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/plugins.qmltypes
new file mode 100644
index 00000000..0f602118
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/plugins.qmltypes
@@ -0,0 +1,176 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ file: "finalstate.h"
+ name: "FinalState"
+ defaultProperty: "children"
+ prototype: "QFinalState"
+ exports: ["QtQml.StateMachine/FinalState 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ file: "statemachineforeign.h"
+ name: "QAbstractState"
+ prototype: "QObject"
+ exports: ["QtQml.StateMachine/QAbstractState 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "active"; type: "bool"; isReadonly: true }
+ Signal { name: "entered" }
+ Signal { name: "exited" }
+ Signal {
+ name: "activeChanged"
+ Parameter { name: "active"; type: "bool" }
+ }
+ }
+ Component {
+ name: "QAbstractTransition"
+ prototype: "QObject"
+ Enum {
+ name: "TransitionType"
+ values: ["ExternalTransition", "InternalTransition"]
+ }
+ Property { name: "sourceState"; type: "QState"; isReadonly: true; isPointer: true }
+ Property { name: "targetState"; type: "QAbstractState"; isPointer: true }
+ Property { name: "targetStates"; type: "QList" }
+ Property { name: "transitionType"; revision: 1; type: "TransitionType" }
+ Signal { name: "triggered" }
+ }
+ Component { name: "QFinalState"; prototype: "QAbstractState" }
+ Component {
+ file: "statemachineforeign.h"
+ name: "QHistoryState"
+ prototype: "QAbstractState"
+ exports: ["QtQml.StateMachine/HistoryState 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "HistoryType"
+ values: ["ShallowHistory", "DeepHistory"]
+ }
+ Property { name: "defaultState"; type: "QAbstractState"; isPointer: true }
+ Property { name: "defaultTransition"; type: "QAbstractTransition"; isPointer: true }
+ Property { name: "historyType"; type: "HistoryType" }
+ }
+ Component {
+ file: "statemachineforeign.h"
+ name: "QSignalTransition"
+ prototype: "QAbstractTransition"
+ exports: [
+ "QtQml.StateMachine/QSignalTransition 1.0",
+ "QtQml.StateMachine/QSignalTransition 1.1"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "senderObject"; type: "QObject"; isPointer: true }
+ Property { name: "signal"; type: "QByteArray" }
+ }
+ Component {
+ file: "statemachineforeign.h"
+ name: "QState"
+ prototype: "QAbstractState"
+ exports: ["QtQml.StateMachine/QState 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "ChildMode"
+ values: ["ExclusiveStates", "ParallelStates"]
+ }
+ Enum {
+ name: "RestorePolicy"
+ values: ["DontRestoreProperties", "RestoreProperties"]
+ }
+ Property { name: "initialState"; type: "QAbstractState"; isPointer: true }
+ Property { name: "errorState"; type: "QAbstractState"; isPointer: true }
+ Property { name: "childMode"; type: "ChildMode" }
+ Signal { name: "finished" }
+ Signal { name: "propertiesAssigned" }
+ }
+ Component {
+ name: "QStateMachine"
+ prototype: "QState"
+ Property { name: "errorString"; type: "string"; isReadonly: true }
+ Property { name: "globalRestorePolicy"; type: "QState::RestorePolicy" }
+ Property { name: "running"; type: "bool" }
+ Property { name: "animated"; type: "bool" }
+ Signal { name: "started" }
+ Signal { name: "stopped" }
+ Signal {
+ name: "runningChanged"
+ Parameter { name: "running"; type: "bool" }
+ }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method {
+ name: "setRunning"
+ Parameter { name: "running"; type: "bool" }
+ }
+ Method { name: "_q_start" }
+ Method { name: "_q_process" }
+ Method { name: "_q_animationFinished" }
+ Method {
+ name: "_q_startDelayedEventTimer"
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "_q_killDelayedEventTimer"
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ }
+ Component {
+ file: "signaltransition.h"
+ name: "SignalTransition"
+ prototype: "QSignalTransition"
+ exports: [
+ "QtQml.StateMachine/SignalTransition 1.0",
+ "QtQml.StateMachine/SignalTransition 1.1"
+ ]
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "signal"; type: "QJSValue" }
+ Property { name: "guard"; type: "QQmlScriptString" }
+ Signal { name: "invokeYourself" }
+ Signal { name: "qmlSignalChanged" }
+ Method { name: "invoke" }
+ }
+ Component {
+ file: "state.h"
+ name: "State"
+ defaultProperty: "children"
+ prototype: "QState"
+ exports: ["QtQml.StateMachine/State 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ file: "statemachine.h"
+ name: "StateMachine"
+ defaultProperty: "children"
+ prototype: "QStateMachine"
+ exports: ["QtQml.StateMachine/StateMachine 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "running"; type: "bool" }
+ Signal { name: "qmlRunningChanged" }
+ Method { name: "checkChildMode" }
+ }
+ Component {
+ file: "timeouttransition.h"
+ name: "TimeoutTransition"
+ prototype: "QSignalTransition"
+ exports: [
+ "QtQml.StateMachine/TimeoutTransition 1.0",
+ "QtQml.StateMachine/TimeoutTransition 1.1"
+ ]
+ exportMetaObjectRevisions: [0, 1]
+ Property { name: "timeout"; type: "int" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qmldir
new file mode 100644
index 00000000..8bc38312
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qmldir
@@ -0,0 +1,4 @@
+module QtQml.StateMachine
+plugin qtqmlstatemachine
+classname QtQmlStateMachinePlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qtqmlstatemachine.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qtqmlstatemachine.dll
new file mode 100644
index 00000000..e71460a1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/StateMachine/qtqmlstatemachine.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/plugins.qmltypes
new file mode 100644
index 00000000..057136bc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/plugins.qmltypes
@@ -0,0 +1,31 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ file: "private/qquickworkerscript_p.h"
+ name: "QQuickWorkerScript"
+ prototype: "QObject"
+ exports: [
+ "QtQml.WorkerScript/WorkerScript 2.0",
+ "QtQml.WorkerScript/WorkerScript 2.15"
+ ]
+ exportMetaObjectRevisions: [0, 15]
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "ready"; revision: 15; type: "bool"; isReadonly: true }
+ Signal { name: "readyChanged"; revision: 15 }
+ Signal {
+ name: "message"
+ Parameter { name: "messageObject"; type: "QJSValue" }
+ }
+ Method {
+ name: "sendMessage"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/qmldir
new file mode 100644
index 00000000..1606400a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/qmldir
@@ -0,0 +1,3 @@
+module QtQml.WorkerScript
+plugin workerscriptplugin
+classname QtQmlWorkerScriptPlugin
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/workerscriptplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/workerscriptplugin.dll
new file mode 100644
index 00000000..1a2bdda9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/WorkerScript.2/workerscriptplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/plugins.qmltypes
new file mode 100644
index 00000000..b73940aa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/plugins.qmltypes
@@ -0,0 +1,279 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ file: "private/qqmlengine_p.h"
+ name: "QObject"
+ exports: ["QML/QtObject 1.0", "QtQml/QtObject 2.0"]
+ exportMetaObjectRevisions: [0, 0]
+ Property { name: "objectName"; type: "string" }
+ Signal {
+ name: "objectNameChanged"
+ Parameter { name: "objectName"; type: "string" }
+ }
+ Method {
+ name: "_q_reregisterTimers"
+ Parameter { type: "void"; isPointer: true }
+ }
+ Method { name: "toString" }
+ Method { name: "destroy" }
+ Method {
+ name: "destroy"
+ Parameter { name: "delay"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qqmlbind_p.h"
+ name: "QQmlBind"
+ prototype: "QObject"
+ exports: [
+ "QtQml/Binding 2.0",
+ "QtQml/Binding 2.14",
+ "QtQml/Binding 2.8"
+ ]
+ exportMetaObjectRevisions: [0, 14, 8]
+ Enum {
+ name: "RestorationMode"
+ values: [
+ "RestoreNone",
+ "RestoreBinding",
+ "RestoreValue",
+ "RestoreBindingOrValue"
+ ]
+ }
+ Property { name: "target"; type: "QObject"; isPointer: true }
+ Property { name: "property"; type: "string" }
+ Property { name: "value"; type: "QJSValue" }
+ Property { name: "when"; type: "bool" }
+ Property { name: "delayed"; revision: 8; type: "bool" }
+ Property { name: "restoreMode"; revision: 14; type: "RestorationMode" }
+ Method { name: "targetValueChanged" }
+ }
+ Component {
+ file: "qqmlcomponent.h"
+ name: "QQmlComponent"
+ prototype: "QObject"
+ exports: ["QML/Component 1.0", "QtQml/Component 2.0"]
+ exportMetaObjectRevisions: [0, 0]
+ attachedType: "QQmlComponentAttached"
+ Enum {
+ name: "CompilationMode"
+ values: ["PreferSynchronous", "Asynchronous"]
+ }
+ Enum {
+ name: "Status"
+ values: ["Null", "Ready", "Loading", "Error"]
+ }
+ Property { name: "progress"; type: "double"; isReadonly: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "url"; type: "QUrl"; isReadonly: true }
+ Signal {
+ name: "statusChanged"
+ Parameter { type: "QQmlComponent::Status" }
+ }
+ Signal {
+ name: "progressChanged"
+ Parameter { type: "double" }
+ }
+ Method {
+ name: "loadUrl"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method {
+ name: "loadUrl"
+ Parameter { name: "url"; type: "QUrl" }
+ Parameter { name: "mode"; type: "CompilationMode" }
+ }
+ Method {
+ name: "setData"
+ Parameter { type: "QByteArray" }
+ Parameter { name: "baseUrl"; type: "QUrl" }
+ }
+ Method { name: "errorString"; type: "string" }
+ Method {
+ name: "createObject"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "incubateObject"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qqmlcomponentattached_p.h"
+ name: "QQmlComponentAttached"
+ prototype: "QObject"
+ Signal { name: "completed" }
+ Signal { name: "destruction" }
+ }
+ Component {
+ file: "private/qqmlconnections_p.h"
+ name: "QQmlConnections"
+ prototype: "QObject"
+ exports: ["QtQml/Connections 2.0", "QtQml/Connections 2.3"]
+ exportMetaObjectRevisions: [0, 3]
+ Property { name: "target"; type: "QObject"; isPointer: true }
+ Property { name: "enabled"; revision: 3; type: "bool" }
+ Property { name: "ignoreUnknownSignals"; type: "bool" }
+ Signal { name: "enabledChanged"; revision: 3 }
+ }
+ Component {
+ file: "private/qqmlvaluetype_p.h"
+ name: "QQmlEasingValueType"
+ exports: ["QtQml/Easing 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Type"
+ values: [
+ "Linear",
+ "InQuad",
+ "OutQuad",
+ "InOutQuad",
+ "OutInQuad",
+ "InCubic",
+ "OutCubic",
+ "InOutCubic",
+ "OutInCubic",
+ "InQuart",
+ "OutQuart",
+ "InOutQuart",
+ "OutInQuart",
+ "InQuint",
+ "OutQuint",
+ "InOutQuint",
+ "OutInQuint",
+ "InSine",
+ "OutSine",
+ "InOutSine",
+ "OutInSine",
+ "InExpo",
+ "OutExpo",
+ "InOutExpo",
+ "OutInExpo",
+ "InCirc",
+ "OutCirc",
+ "InOutCirc",
+ "OutInCirc",
+ "InElastic",
+ "OutElastic",
+ "InOutElastic",
+ "OutInElastic",
+ "InBack",
+ "OutBack",
+ "InOutBack",
+ "OutInBack",
+ "InBounce",
+ "OutBounce",
+ "InOutBounce",
+ "OutInBounce",
+ "InCurve",
+ "OutCurve",
+ "SineCurve",
+ "CosineCurve",
+ "Bezier"
+ ]
+ }
+ Property { name: "type"; type: "QQmlEasingValueType::Type" }
+ Property { name: "amplitude"; type: "double" }
+ Property { name: "overshoot"; type: "double" }
+ Property { name: "period"; type: "double" }
+ Property { name: "bezierCurve"; type: "QVariantList" }
+ }
+ Component {
+ file: "private/qqmllocale_p.h"
+ name: "QQmlLocale"
+ exports: ["QtQml/Locale 2.2"]
+ isCreatable: false
+ exportMetaObjectRevisions: [2]
+ Enum {
+ name: "MeasurementSystem"
+ values: [
+ "MetricSystem",
+ "ImperialSystem",
+ "ImperialUSSystem",
+ "ImperialUKSystem"
+ ]
+ }
+ Enum {
+ name: "FormatType"
+ values: ["LongFormat", "ShortFormat", "NarrowFormat"]
+ }
+ Enum {
+ name: "CurrencySymbolFormat"
+ values: [
+ "CurrencyIsoCode",
+ "CurrencySymbol",
+ "CurrencyDisplayName"
+ ]
+ }
+ Enum {
+ name: "DayOfWeek"
+ values: [
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday"
+ ]
+ }
+ Enum {
+ name: "NumberOptions"
+ values: [
+ "DefaultNumberOptions",
+ "OmitGroupSeparator",
+ "RejectGroupSeparator",
+ "OmitLeadingZeroInExponent",
+ "RejectLeadingZeroInExponent",
+ "IncludeTrailingZeroesAfterDot",
+ "RejectTrailingZeroesAfterDot"
+ ]
+ }
+ }
+ Component {
+ file: "private/qqmlloggingcategory_p.h"
+ name: "QQmlLoggingCategory"
+ prototype: "QObject"
+ exports: ["QtQml/LoggingCategory 2.12", "QtQml/LoggingCategory 2.8"]
+ exportMetaObjectRevisions: [12, 8]
+ Enum {
+ name: "DefaultLogLevel"
+ values: ["Debug", "Info", "Warning", "Critical", "Fatal"]
+ }
+ Property { name: "name"; type: "string" }
+ Property { name: "defaultLogLevel"; revision: 12; type: "DefaultLogLevel" }
+ }
+ Component {
+ file: "private/qqmltimer_p.h"
+ name: "QQmlTimer"
+ prototype: "QObject"
+ exports: ["QtQml/Timer 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "interval"; type: "int" }
+ Property { name: "running"; type: "bool" }
+ Property { name: "repeat"; type: "bool" }
+ Property { name: "triggeredOnStart"; type: "bool" }
+ Property { name: "parent"; type: "QObject"; isReadonly: true; isPointer: true }
+ Signal { name: "triggered" }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method { name: "restart" }
+ Method { name: "ticked" }
+ }
+ Component {
+ file: "private/qqmltypenotavailable_p.h"
+ name: "QQmlTypeNotAvailable"
+ prototype: "QObject"
+ exports: ["QtQml/TypeNotAvailable 2.15"]
+ isCreatable: false
+ exportMetaObjectRevisions: [15]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmldir
new file mode 100644
index 00000000..98555ee1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmldir
@@ -0,0 +1,6 @@
+module QtQml
+plugin qmlplugin
+classname QtQmlPlugin
+depends QtQml.Models 2.15
+depends QtQml.WorkerScript 2.15
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmlplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmlplugin.dll
new file mode 100644
index 00000000..672a5210
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQml/qmlplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/plugins.qmltypes
new file mode 100644
index 00000000..9ca13f76
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/plugins.qmltypes
@@ -0,0 +1,5294 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by qmltyperegistrar.
+
+Module {
+ dependencies: []
+ Component {
+ name: "QDoubleValidator"
+ prototype: "QValidator"
+ Enum {
+ name: "Notation"
+ values: ["StandardNotation", "ScientificNotation"]
+ }
+ Property { name: "bottom"; type: "double" }
+ Property { name: "top"; type: "double" }
+ Property { name: "decimals"; type: "int" }
+ Property { name: "notation"; type: "Notation" }
+ Signal {
+ name: "bottomChanged"
+ Parameter { name: "bottom"; type: "double" }
+ }
+ Signal {
+ name: "topChanged"
+ Parameter { name: "top"; type: "double" }
+ }
+ Signal {
+ name: "decimalsChanged"
+ Parameter { name: "decimals"; type: "int" }
+ }
+ Signal {
+ name: "notationChanged"
+ Parameter { name: "notation"; type: "QDoubleValidator::Notation" }
+ }
+ }
+ Component {
+ file: "private/qquickforeignutils_p.h"
+ name: "QInputMethod"
+ prototype: "QObject"
+ exports: ["QtQuick/InputMethod 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Action"
+ values: ["Click", "ContextMenu"]
+ }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "keyboardRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "inputItemClipRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "visible"; type: "bool"; isReadonly: true }
+ Property { name: "animating"; type: "bool"; isReadonly: true }
+ Property { name: "locale"; type: "QLocale"; isReadonly: true }
+ Property { name: "inputDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ Signal {
+ name: "inputDirectionChanged"
+ Parameter { name: "newDirection"; type: "Qt::LayoutDirection" }
+ }
+ Method { name: "show" }
+ Method { name: "hide" }
+ Method {
+ name: "update"
+ Parameter { name: "queries"; type: "Qt::InputMethodQueries" }
+ }
+ Method { name: "reset" }
+ Method { name: "commit" }
+ Method {
+ name: "invokeAction"
+ Parameter { name: "a"; type: "Action" }
+ Parameter { name: "cursorPosition"; type: "int" }
+ }
+ }
+ Component {
+ name: "QIntValidator"
+ prototype: "QValidator"
+ Property { name: "bottom"; type: "int" }
+ Property { name: "top"; type: "int" }
+ Signal {
+ name: "bottomChanged"
+ Parameter { name: "bottom"; type: "int" }
+ }
+ Signal {
+ name: "topChanged"
+ Parameter { name: "top"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qquickforeignutils_p.h"
+ name: "QKeySequence"
+ exports: ["QtQuick/StandardKey 2.2"]
+ isCreatable: false
+ exportMetaObjectRevisions: [2]
+ Enum {
+ name: "StandardKey"
+ values: [
+ "UnknownKey",
+ "HelpContents",
+ "WhatsThis",
+ "Open",
+ "Close",
+ "Save",
+ "New",
+ "Delete",
+ "Cut",
+ "Copy",
+ "Paste",
+ "Undo",
+ "Redo",
+ "Back",
+ "Forward",
+ "Refresh",
+ "ZoomIn",
+ "ZoomOut",
+ "Print",
+ "AddTab",
+ "NextChild",
+ "PreviousChild",
+ "Find",
+ "FindNext",
+ "FindPrevious",
+ "Replace",
+ "SelectAll",
+ "Bold",
+ "Italic",
+ "Underline",
+ "MoveToNextChar",
+ "MoveToPreviousChar",
+ "MoveToNextWord",
+ "MoveToPreviousWord",
+ "MoveToNextLine",
+ "MoveToPreviousLine",
+ "MoveToNextPage",
+ "MoveToPreviousPage",
+ "MoveToStartOfLine",
+ "MoveToEndOfLine",
+ "MoveToStartOfBlock",
+ "MoveToEndOfBlock",
+ "MoveToStartOfDocument",
+ "MoveToEndOfDocument",
+ "SelectNextChar",
+ "SelectPreviousChar",
+ "SelectNextWord",
+ "SelectPreviousWord",
+ "SelectNextLine",
+ "SelectPreviousLine",
+ "SelectNextPage",
+ "SelectPreviousPage",
+ "SelectStartOfLine",
+ "SelectEndOfLine",
+ "SelectStartOfBlock",
+ "SelectEndOfBlock",
+ "SelectStartOfDocument",
+ "SelectEndOfDocument",
+ "DeleteStartOfWord",
+ "DeleteEndOfWord",
+ "DeleteEndOfLine",
+ "InsertParagraphSeparator",
+ "InsertLineSeparator",
+ "SaveAs",
+ "Preferences",
+ "Quit",
+ "FullScreen",
+ "Deselect",
+ "DeleteCompleteLine",
+ "Backspace",
+ "Cancel"
+ ]
+ }
+ }
+ Component {
+ file: "private/qquickitemsmodule_p.h"
+ name: "QPointingDeviceUniqueId"
+ exports: ["QtQuick/PointingDeviceUniqueId 2.9"]
+ isCreatable: false
+ exportMetaObjectRevisions: [9]
+ Property { name: "numericId"; type: "qlonglong"; isReadonly: true }
+ }
+ Component {
+ name: "QQmlApplication"
+ prototype: "QObject"
+ Property { name: "arguments"; type: "QStringList"; isReadonly: true }
+ Property { name: "name"; type: "string" }
+ Property { name: "version"; type: "string" }
+ Property { name: "organization"; type: "string" }
+ Property { name: "domain"; type: "string" }
+ Signal { name: "aboutToQuit" }
+ Method {
+ name: "setName"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setVersion"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setOrganization"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setDomain"
+ Parameter { name: "arg"; type: "string" }
+ }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickAbstractAnimation"
+ prototype: "QObject"
+ exports: ["QtQuick/Animation 2.0", "QtQuick/Animation 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "Loops"
+ values: ["Infinite"]
+ }
+ Property { name: "running"; type: "bool" }
+ Property { name: "paused"; type: "bool" }
+ Property { name: "alwaysRunToEnd"; type: "bool" }
+ Property { name: "loops"; type: "int" }
+ Signal { name: "started" }
+ Signal { name: "stopped" }
+ Signal {
+ name: "runningChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "pausedChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "alwaysRunToEndChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "loopCountChanged"
+ Parameter { type: "int" }
+ }
+ Signal { name: "finished"; revision: 12 }
+ Method { name: "restart" }
+ Method { name: "start" }
+ Method { name: "pause" }
+ Method { name: "resume" }
+ Method { name: "stop" }
+ Method { name: "complete" }
+ Method { name: "componentFinalized" }
+ }
+ Component {
+ file: "private/qquickaccessibleattached_p.h"
+ name: "QQuickAccessibleAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/Accessible 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickAccessibleAttached"
+ Property { name: "role"; type: "QAccessible::Role" }
+ Property { name: "name"; type: "string" }
+ Property { name: "description"; type: "string" }
+ Property { name: "ignored"; type: "bool" }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "editable"; type: "bool" }
+ Property { name: "focusable"; type: "bool" }
+ Property { name: "focused"; type: "bool" }
+ Property { name: "multiLine"; type: "bool" }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "selected"; type: "bool" }
+ Property { name: "selectable"; type: "bool" }
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "checkStateMixed"; type: "bool" }
+ Property { name: "defaultButton"; type: "bool" }
+ Property { name: "passwordEdit"; type: "bool" }
+ Property { name: "selectableText"; type: "bool" }
+ Property { name: "searchEdit"; type: "bool" }
+ Signal {
+ name: "checkableChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "checkedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "editableChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "focusableChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "focusedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "multiLineChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "readOnlyChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "selectedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "selectableChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "pressedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "checkStateMixedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "defaultButtonChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "passwordEditChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "selectableTextChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "searchEditChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal { name: "pressAction" }
+ Signal { name: "toggleAction" }
+ Signal { name: "increaseAction" }
+ Signal { name: "decreaseAction" }
+ Signal { name: "scrollUpAction" }
+ Signal { name: "scrollDownAction" }
+ Signal { name: "scrollLeftAction" }
+ Signal { name: "scrollRightAction" }
+ Signal { name: "previousPageAction" }
+ Signal { name: "nextPageAction" }
+ Method { name: "valueChanged" }
+ Method { name: "cursorPositionChanged" }
+ Method {
+ name: "setIgnored"
+ Parameter { name: "ignored"; type: "bool" }
+ }
+ }
+ Component {
+ file: "private/qquickitemanimation_p.h"
+ name: "QQuickAnchorAnimation"
+ prototype: "QQuickAbstractAnimation"
+ exports: [
+ "QtQuick/AnchorAnimation 2.0",
+ "QtQuick/AnchorAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "targets"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "duration"; type: "int" }
+ Property { name: "easing"; type: "QEasingCurve" }
+ Signal {
+ name: "durationChanged"
+ Parameter { type: "int" }
+ }
+ Signal {
+ name: "easingChanged"
+ Parameter { type: "QEasingCurve" }
+ }
+ }
+ Component {
+ file: "private/qquickstateoperations_p.h"
+ name: "QQuickAnchorChanges"
+ prototype: "QQuickStateOperation"
+ exports: ["QtQuick/AnchorChanges 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "anchors"; type: "QQuickAnchorSet"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ file: "private/qquickstateoperations_p.h"
+ name: "QQuickAnchorSet"
+ prototype: "QObject"
+ Property { name: "left"; type: "QQmlScriptString" }
+ Property { name: "right"; type: "QQmlScriptString" }
+ Property { name: "horizontalCenter"; type: "QQmlScriptString" }
+ Property { name: "top"; type: "QQmlScriptString" }
+ Property { name: "bottom"; type: "QQmlScriptString" }
+ Property { name: "verticalCenter"; type: "QQmlScriptString" }
+ Property { name: "baseline"; type: "QQmlScriptString" }
+ }
+ Component {
+ file: "private/qquickanchors_p.h"
+ name: "QQuickAnchors"
+ prototype: "QObject"
+ Enum {
+ name: "Anchors"
+ alias: "Anchor"
+ isFlag: true
+ values: [
+ "InvalidAnchor",
+ "LeftAnchor",
+ "RightAnchor",
+ "TopAnchor",
+ "BottomAnchor",
+ "HCenterAnchor",
+ "VCenterAnchor",
+ "BaselineAnchor",
+ "Horizontal_Mask",
+ "Vertical_Mask"
+ ]
+ }
+ Property { name: "left"; type: "QQuickAnchorLine" }
+ Property { name: "right"; type: "QQuickAnchorLine" }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine" }
+ Property { name: "top"; type: "QQuickAnchorLine" }
+ Property { name: "bottom"; type: "QQuickAnchorLine" }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine" }
+ Property { name: "baseline"; type: "QQuickAnchorLine" }
+ Property { name: "margins"; type: "double" }
+ Property { name: "leftMargin"; type: "double" }
+ Property { name: "rightMargin"; type: "double" }
+ Property { name: "horizontalCenterOffset"; type: "double" }
+ Property { name: "topMargin"; type: "double" }
+ Property { name: "bottomMargin"; type: "double" }
+ Property { name: "verticalCenterOffset"; type: "double" }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "fill"; type: "QQuickItem"; isPointer: true }
+ Property { name: "centerIn"; type: "QQuickItem"; isPointer: true }
+ Property { name: "alignWhenCentered"; type: "bool" }
+ Signal { name: "centerAlignedChanged" }
+ }
+ Component {
+ file: "private/qquickanimatedimage_p.h"
+ name: "QQuickAnimatedImage"
+ prototype: "QQuickImage"
+ exports: [
+ "QtQuick/AnimatedImage 2.0",
+ "QtQuick/AnimatedImage 2.1",
+ "QtQuick/AnimatedImage 2.11",
+ "QtQuick/AnimatedImage 2.14",
+ "QtQuick/AnimatedImage 2.15",
+ "QtQuick/AnimatedImage 2.3",
+ "QtQuick/AnimatedImage 2.4",
+ "QtQuick/AnimatedImage 2.5",
+ "QtQuick/AnimatedImage 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 14, 15, 3, 4, 5, 7]
+ Property { name: "playing"; type: "bool" }
+ Property { name: "paused"; type: "bool" }
+ Property { name: "currentFrame"; type: "int" }
+ Property { name: "frameCount"; type: "int"; isReadonly: true }
+ Property { name: "speed"; revision: 11; type: "double" }
+ Property { name: "sourceSize"; type: "QSize"; isReadonly: true }
+ Signal { name: "frameChanged" }
+ Signal { name: "currentFrameChanged" }
+ Signal { name: "speedChanged"; revision: 11 }
+ Method { name: "movieUpdate" }
+ Method { name: "movieRequestFinished" }
+ Method { name: "playingStatusChanged" }
+ Method { name: "onCacheChanged" }
+ }
+ Component {
+ file: "private/qquickanimatedsprite_p.h"
+ name: "QQuickAnimatedSprite"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/AnimatedSprite 2.0",
+ "QtQuick/AnimatedSprite 2.1",
+ "QtQuick/AnimatedSprite 2.11",
+ "QtQuick/AnimatedSprite 2.12",
+ "QtQuick/AnimatedSprite 2.15",
+ "QtQuick/AnimatedSprite 2.4",
+ "QtQuick/AnimatedSprite 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 12, 15, 4, 7]
+ Enum {
+ name: "LoopParameters"
+ values: ["Infinite"]
+ }
+ Enum {
+ name: "FinishBehavior"
+ values: ["FinishAtInitialFrame", "FinishAtFinalFrame"]
+ }
+ Property { name: "running"; type: "bool" }
+ Property { name: "interpolate"; type: "bool" }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "reverse"; type: "bool" }
+ Property { name: "frameSync"; type: "bool" }
+ Property { name: "frameCount"; type: "int" }
+ Property { name: "frameHeight"; type: "int" }
+ Property { name: "frameWidth"; type: "int" }
+ Property { name: "frameX"; type: "int" }
+ Property { name: "frameY"; type: "int" }
+ Property { name: "frameRate"; type: "double" }
+ Property { name: "frameDuration"; type: "int" }
+ Property { name: "loops"; type: "int" }
+ Property { name: "paused"; type: "bool" }
+ Property { name: "currentFrame"; type: "int" }
+ Property { name: "finishBehavior"; revision: 15; type: "FinishBehavior" }
+ Signal {
+ name: "pausedChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "runningChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "interpolateChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "sourceChanged"
+ Parameter { name: "arg"; type: "QUrl" }
+ }
+ Signal {
+ name: "reverseChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "frameSyncChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "frameCountChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameHeightChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameWidthChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameXChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameYChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameRateChanged"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Signal {
+ name: "frameDurationChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "loopsChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "currentFrameChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "finishBehaviorChanged"
+ revision: 15
+ Parameter { name: "arg"; type: "FinishBehavior" }
+ }
+ Signal { name: "finished"; revision: 12 }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method { name: "restart" }
+ Method {
+ name: "advance"
+ Parameter { name: "frames"; type: "int" }
+ }
+ Method { name: "advance" }
+ Method { name: "pause" }
+ Method { name: "resume" }
+ Method {
+ name: "setRunning"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setPaused"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setInterpolate"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setSource"
+ Parameter { name: "arg"; type: "QUrl" }
+ }
+ Method {
+ name: "setReverse"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setFrameSync"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setFrameCount"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameHeight"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameWidth"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameX"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameY"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameRate"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Method {
+ name: "setFrameDuration"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method { name: "resetFrameRate" }
+ Method { name: "resetFrameDuration" }
+ Method {
+ name: "setLoops"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setCurrentFrame"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method { name: "createEngine" }
+ Method { name: "reset" }
+ }
+ Component {
+ file: "private/qquickanimationcontroller_p.h"
+ name: "QQuickAnimationController"
+ defaultProperty: "animation"
+ prototype: "QObject"
+ exports: ["QtQuick/AnimationController 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "progress"; type: "double" }
+ Property { name: "animation"; type: "QQuickAbstractAnimation"; isPointer: true }
+ Method { name: "reload" }
+ Method { name: "completeToBeginning" }
+ Method { name: "completeToEnd" }
+ Method { name: "componentFinalized" }
+ Method { name: "updateProgress" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickAnimationGroup"
+ defaultProperty: "animations"
+ prototype: "QQuickAbstractAnimation"
+ Property { name: "animations"; type: "QQuickAbstractAnimation"; isList: true; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickAnimator"
+ prototype: "QQuickAbstractAnimation"
+ exports: ["QtQuick/Animator 2.12", "QtQuick/Animator 2.2"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12, 2]
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "easing"; type: "QEasingCurve" }
+ Property { name: "duration"; type: "int" }
+ Property { name: "to"; type: "double" }
+ Property { name: "from"; type: "double" }
+ Signal {
+ name: "targetItemChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "durationChanged"
+ Parameter { name: "duration"; type: "int" }
+ }
+ Signal {
+ name: "easingChanged"
+ Parameter { name: "curve"; type: "QEasingCurve" }
+ }
+ Signal {
+ name: "toChanged"
+ Parameter { name: "to"; type: "double" }
+ }
+ Signal {
+ name: "fromChanged"
+ Parameter { name: "from"; type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquickapplication_p.h"
+ name: "QQuickApplication"
+ prototype: "QQmlApplication"
+ exports: ["QtQuick/Application 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "active"; type: "bool"; isReadonly: true }
+ Property { name: "layoutDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ Property { name: "supportsMultipleWindows"; type: "bool"; isReadonly: true }
+ Property { name: "state"; type: "Qt::ApplicationState"; isReadonly: true }
+ Property { name: "font"; type: "QFont"; isReadonly: true }
+ Property { name: "displayName"; type: "string" }
+ Property { name: "screens"; type: "QQuickScreenInfo"; isList: true; isReadonly: true }
+ Signal {
+ name: "stateChanged"
+ Parameter { name: "state"; type: "Qt::ApplicationState" }
+ }
+ Method { name: "updateScreens" }
+ }
+ Component {
+ file: "private/qquickpositioners_p.h"
+ name: "QQuickBasePositioner"
+ prototype: "QQuickImplicitSizeItem"
+ exports: [
+ "QtQuick/Positioner 2.0",
+ "QtQuick/Positioner 2.1",
+ "QtQuick/Positioner 2.11",
+ "QtQuick/Positioner 2.4",
+ "QtQuick/Positioner 2.6",
+ "QtQuick/Positioner 2.7",
+ "QtQuick/Positioner 2.9"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ attachedType: "QQuickPositionerAttached"
+ Property { name: "spacing"; type: "double" }
+ Property { name: "populate"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "move"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "add"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "padding"; revision: 6; type: "double" }
+ Property { name: "topPadding"; revision: 6; type: "double" }
+ Property { name: "leftPadding"; revision: 6; type: "double" }
+ Property { name: "rightPadding"; revision: 6; type: "double" }
+ Property { name: "bottomPadding"; revision: 6; type: "double" }
+ Signal { name: "paddingChanged"; revision: 6 }
+ Signal { name: "topPaddingChanged"; revision: 6 }
+ Signal { name: "leftPaddingChanged"; revision: 6 }
+ Signal { name: "rightPaddingChanged"; revision: 6 }
+ Signal { name: "bottomPaddingChanged"; revision: 6 }
+ Signal { name: "positioningComplete"; revision: 9 }
+ Method { name: "prePositioning" }
+ Method { name: "forceLayout"; revision: 9 }
+ }
+ Component {
+ file: "private/qquickbehavior_p.h"
+ name: "QQuickBehavior"
+ defaultProperty: "animation"
+ prototype: "QObject"
+ exports: [
+ "QtQuick/Behavior 2.0",
+ "QtQuick/Behavior 2.13",
+ "QtQuick/Behavior 2.15"
+ ]
+ exportMetaObjectRevisions: [0, 13, 15]
+ Property { name: "animation"; type: "QQuickAbstractAnimation"; isPointer: true }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "targetValue"; revision: 13; type: "QVariant"; isReadonly: true }
+ Property { name: "targetProperty"; revision: 15; type: "QQmlProperty"; isReadonly: true }
+ Method { name: "componentFinalized" }
+ }
+ Component {
+ file: "private/qquickborderimage_p.h"
+ name: "QQuickBorderImage"
+ prototype: "QQuickImageBase"
+ exports: [
+ "QtQuick/BorderImage 2.0",
+ "QtQuick/BorderImage 2.1",
+ "QtQuick/BorderImage 2.11",
+ "QtQuick/BorderImage 2.14",
+ "QtQuick/BorderImage 2.15",
+ "QtQuick/BorderImage 2.4",
+ "QtQuick/BorderImage 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 14, 15, 4, 7]
+ Enum {
+ name: "TileMode"
+ values: ["Stretch", "Repeat", "Round"]
+ }
+ Property { name: "border"; type: "QQuickScaleGrid"; isReadonly: true; isPointer: true }
+ Property { name: "horizontalTileMode"; type: "TileMode" }
+ Property { name: "verticalTileMode"; type: "TileMode" }
+ Property { name: "sourceSize"; type: "QSize"; isReadonly: true }
+ Method { name: "doUpdate" }
+ Method { name: "requestFinished" }
+ Method { name: "sciRequestFinished" }
+ }
+ Component {
+ file: "private/qquickshadereffectmesh_p.h"
+ name: "QQuickBorderImageMesh"
+ prototype: "QQuickShaderEffectMesh"
+ exports: ["QtQuick/BorderImageMesh 2.8"]
+ exportMetaObjectRevisions: [8]
+ Enum {
+ name: "TileMode"
+ values: ["Stretch", "Repeat", "Round"]
+ }
+ Property { name: "border"; type: "QQuickScaleGrid"; isReadonly: true; isPointer: true }
+ Property { name: "size"; type: "QSize" }
+ Property { name: "horizontalTileMode"; type: "TileMode" }
+ Property { name: "verticalTileMode"; type: "TileMode" }
+ }
+ Component {
+ file: "private/qquickcanvasitem_p.h"
+ name: "QQuickCanvasItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/Canvas 2.0",
+ "QtQuick/Canvas 2.1",
+ "QtQuick/Canvas 2.11",
+ "QtQuick/Canvas 2.4",
+ "QtQuick/Canvas 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "RenderTarget"
+ values: ["Image", "FramebufferObject"]
+ }
+ Enum {
+ name: "RenderStrategy"
+ values: ["Immediate", "Threaded", "Cooperative"]
+ }
+ Property { name: "available"; type: "bool"; isReadonly: true }
+ Property { name: "contextType"; type: "string" }
+ Property { name: "context"; type: "QJSValue"; isReadonly: true }
+ Property { name: "canvasSize"; type: "QSizeF" }
+ Property { name: "tileSize"; type: "QSize" }
+ Property { name: "canvasWindow"; type: "QRectF" }
+ Property { name: "renderTarget"; type: "RenderTarget" }
+ Property { name: "renderStrategy"; type: "RenderStrategy" }
+ Signal {
+ name: "paint"
+ Parameter { name: "region"; type: "QRect" }
+ }
+ Signal { name: "painted" }
+ Signal { name: "imageLoaded" }
+ Method {
+ name: "loadImage"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method {
+ name: "unloadImage"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method {
+ name: "isImageLoaded"
+ type: "bool"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method {
+ name: "isImageLoading"
+ type: "bool"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method {
+ name: "isImageError"
+ type: "bool"
+ Parameter { name: "url"; type: "QUrl" }
+ }
+ Method { name: "sceneGraphInitialized" }
+ Method { name: "checkAnimationCallbacks" }
+ Method { name: "invalidateSceneGraph" }
+ Method { name: "schedulePolish" }
+ Method {
+ name: "getContext"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "requestAnimationFrame"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "cancelRequestAnimationFrame"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "requestPaint" }
+ Method {
+ name: "markDirty"
+ Parameter { name: "dirtyRect"; type: "QRectF" }
+ }
+ Method { name: "markDirty" }
+ Method {
+ name: "save"
+ type: "bool"
+ Parameter { name: "filename"; type: "string" }
+ }
+ Method {
+ name: "toDataURL"
+ type: "string"
+ Parameter { name: "type"; type: "string" }
+ }
+ Method { name: "toDataURL"; type: "string" }
+ Method { name: "delayedCreate" }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickCloseEvent"
+ prototype: "QObject"
+ Property { name: "accepted"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickColorAnimation"
+ prototype: "QQuickPropertyAnimation"
+ exports: ["QtQuick/ColorAnimation 2.0", "QtQuick/ColorAnimation 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "from"; type: "QColor" }
+ Property { name: "to"; type: "QColor" }
+ }
+ Component {
+ file: "private/qquickvaluetypes_p.h"
+ name: "QQuickColorSpaceValueType"
+ exports: ["QtQuick/ColorSpace 2.15"]
+ isCreatable: false
+ exportMetaObjectRevisions: [15]
+ Enum {
+ name: "NamedColorSpace"
+ values: [
+ "Unknown",
+ "SRgb",
+ "SRgbLinear",
+ "AdobeRgb",
+ "DisplayP3",
+ "ProPhotoRgb"
+ ]
+ }
+ Enum {
+ name: "Primaries"
+ values: ["Custom", "SRgb", "AdobeRgb", "DciP3D65", "ProPhotoRgb"]
+ }
+ Enum {
+ name: "TransferFunction"
+ values: ["Custom", "Linear", "Gamma", "SRgb", "ProPhotoRgb"]
+ }
+ Property { name: "namedColorSpace"; type: "NamedColorSpace" }
+ Property { name: "primaries"; type: "Primaries" }
+ Property { name: "transferFunction"; type: "TransferFunction" }
+ Property { name: "gamma"; type: "float" }
+ }
+ Component {
+ file: "private/qquickpositioners_p.h"
+ name: "QQuickColumn"
+ prototype: "QQuickBasePositioner"
+ exports: [
+ "QtQuick/Column 2.0",
+ "QtQuick/Column 2.1",
+ "QtQuick/Column 2.11",
+ "QtQuick/Column 2.4",
+ "QtQuick/Column 2.6",
+ "QtQuick/Column 2.7",
+ "QtQuick/Column 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickCurve"
+ prototype: "QQuickPathElement"
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "relativeX"; type: "double" }
+ Property { name: "relativeY"; type: "double" }
+ }
+ Component {
+ file: "private/qquickvalidator_p.h"
+ name: "QQuickDoubleValidator"
+ prototype: "QDoubleValidator"
+ exports: ["QtQuick/DoubleValidator 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "locale"; type: "string" }
+ Signal { name: "localeNameChanged" }
+ }
+ Component {
+ file: "private/qquickdrag_p.h"
+ name: "QQuickDrag"
+ prototype: "QObject"
+ exports: ["QtQuick/Drag 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickDragAttached"
+ Enum {
+ name: "DragType"
+ values: ["None", "Automatic", "Internal"]
+ }
+ Enum {
+ name: "Axis"
+ values: ["XAxis", "YAxis", "XAndYAxis", "XandYAxis"]
+ }
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "axis"; type: "Axis" }
+ Property { name: "minimumX"; type: "double" }
+ Property { name: "maximumX"; type: "double" }
+ Property { name: "minimumY"; type: "double" }
+ Property { name: "maximumY"; type: "double" }
+ Property { name: "active"; type: "bool"; isReadonly: true }
+ Property { name: "filterChildren"; type: "bool" }
+ Property { name: "smoothed"; type: "bool" }
+ Property { name: "threshold"; type: "double" }
+ }
+ Component {
+ file: "private/qquickdrag_p.h"
+ name: "QQuickDragAttached"
+ prototype: "QObject"
+ Property { name: "active"; type: "bool" }
+ Property { name: "source"; type: "QObject"; isPointer: true }
+ Property { name: "target"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "hotSpot"; type: "QPointF" }
+ Property { name: "imageSource"; type: "QUrl" }
+ Property { name: "keys"; type: "QStringList" }
+ Property { name: "mimeData"; type: "QVariantMap" }
+ Property { name: "supportedActions"; type: "Qt::DropActions" }
+ Property { name: "proposedAction"; type: "Qt::DropAction" }
+ Property { name: "dragType"; type: "QQuickDrag::DragType" }
+ Signal { name: "dragStarted" }
+ Signal {
+ name: "dragFinished"
+ Parameter { name: "dropAction"; type: "Qt::DropAction" }
+ }
+ Method {
+ name: "start"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "startDrag"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "cancel" }
+ Method { name: "drop"; type: "int" }
+ }
+ Component {
+ file: "private/qquickdragaxis_p.h"
+ name: "QQuickDragAxis"
+ prototype: "QObject"
+ exports: ["QtQuick/DragAxis 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ Property { name: "minimum"; type: "double" }
+ Property { name: "maximum"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickdraghandler_p.h"
+ name: "QQuickDragHandler"
+ prototype: "QQuickMultiPointHandler"
+ exports: [
+ "QtQuick/DragHandler 2.12",
+ "QtQuick/DragHandler 2.14",
+ "QtQuick/DragHandler 2.15"
+ ]
+ exportMetaObjectRevisions: [12, 14, 15]
+ Enum {
+ name: "SnapMode"
+ values: [
+ "NoSnap",
+ "SnapAuto",
+ "SnapIfPressedOutsideTarget",
+ "SnapAlways"
+ ]
+ }
+ Property { name: "xAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true }
+ Property { name: "yAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true }
+ Property { name: "translation"; type: "QVector2D"; isReadonly: true }
+ Property { name: "snapMode"; revision: 14; type: "SnapMode" }
+ Signal { name: "snapModeChanged"; revision: 14 }
+ }
+ Component {
+ file: "private/qquickdroparea_p.h"
+ name: "QQuickDropArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/DropArea 2.0",
+ "QtQuick/DropArea 2.1",
+ "QtQuick/DropArea 2.11",
+ "QtQuick/DropArea 2.4",
+ "QtQuick/DropArea 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Property { name: "containsDrag"; type: "bool"; isReadonly: true }
+ Property { name: "keys"; type: "QStringList" }
+ Property { name: "drag"; type: "QQuickDropAreaDrag"; isReadonly: true; isPointer: true }
+ Signal { name: "sourceChanged" }
+ Signal {
+ name: "entered"
+ Parameter { name: "drag"; type: "QQuickDropEvent"; isPointer: true }
+ }
+ Signal { name: "exited" }
+ Signal {
+ name: "positionChanged"
+ Parameter { name: "drag"; type: "QQuickDropEvent"; isPointer: true }
+ }
+ Signal {
+ name: "dropped"
+ Parameter { name: "drop"; type: "QQuickDropEvent"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickdroparea_p.h"
+ name: "QQuickDropAreaDrag"
+ prototype: "QObject"
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "source"; type: "QObject"; isReadonly: true; isPointer: true }
+ Signal { name: "positionChanged" }
+ }
+ Component {
+ file: "private/qquickdroparea_p.h"
+ name: "QQuickDropEvent"
+ prototype: "QObject"
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "source"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "keys"; type: "QStringList"; isReadonly: true }
+ Property { name: "supportedActions"; type: "Qt::DropActions"; isReadonly: true }
+ Property { name: "proposedAction"; type: "Qt::DropActions"; isReadonly: true }
+ Property { name: "action"; type: "Qt::DropAction" }
+ Property { name: "accepted"; type: "bool" }
+ Property { name: "hasColor"; type: "bool"; isReadonly: true }
+ Property { name: "hasHtml"; type: "bool"; isReadonly: true }
+ Property { name: "hasText"; type: "bool"; isReadonly: true }
+ Property { name: "hasUrls"; type: "bool"; isReadonly: true }
+ Property { name: "colorData"; type: "QVariant"; isReadonly: true }
+ Property { name: "html"; type: "string"; isReadonly: true }
+ Property { name: "text"; type: "string"; isReadonly: true }
+ Property { name: "urls"; type: "QList"; isReadonly: true }
+ Property { name: "formats"; type: "QStringList"; isReadonly: true }
+ Method {
+ name: "getDataAsString"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "getDataAsArrayBuffer"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "acceptProposedAction"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "accept"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickitem_p.h"
+ name: "QQuickEnterKeyAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/EnterKey 2.6"]
+ isCreatable: false
+ exportMetaObjectRevisions: [6]
+ attachedType: "QQuickEnterKeyAttached"
+ Property { name: "type"; type: "Qt::EnterKeyType" }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickEventPoint"
+ prototype: "QObject"
+ exports: ["QtQuick/EventPoint 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ Enum {
+ name: "States"
+ alias: "State"
+ isFlag: true
+ values: ["Pressed", "Updated", "Stationary", "Released"]
+ }
+ Enum {
+ name: "GrabTransition"
+ values: [
+ "GrabPassive",
+ "UngrabPassive",
+ "CancelGrabPassive",
+ "OverrideGrabPassive",
+ "GrabExclusive",
+ "UngrabExclusive",
+ "CancelGrabExclusive"
+ ]
+ }
+ Property { name: "event"; type: "QQuickPointerEvent"; isReadonly: true; isPointer: true }
+ Property { name: "position"; type: "QPointF"; isReadonly: true }
+ Property { name: "scenePosition"; type: "QPointF"; isReadonly: true }
+ Property { name: "scenePressPosition"; type: "QPointF"; isReadonly: true }
+ Property { name: "sceneGrabPosition"; type: "QPointF"; isReadonly: true }
+ Property { name: "state"; type: "State"; isReadonly: true }
+ Property { name: "pointId"; type: "int"; isReadonly: true }
+ Property { name: "timeHeld"; type: "double"; isReadonly: true }
+ Property { name: "velocity"; type: "QVector2D"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ Property { name: "exclusiveGrabber"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickEventTabletPoint"
+ prototype: "QQuickEventPoint"
+ exports: ["QtQuick/EventTabletPoint 2.15"]
+ isCreatable: false
+ exportMetaObjectRevisions: [15]
+ Property { name: "rotation"; type: "double"; isReadonly: true }
+ Property { name: "pressure"; type: "double"; isReadonly: true }
+ Property { name: "tangentialPressure"; type: "double"; isReadonly: true }
+ Property { name: "tilt"; type: "QVector2D"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickEventTouchPoint"
+ prototype: "QQuickEventPoint"
+ exports: ["QtQuick/EventTouchPoint 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ Property { name: "rotation"; type: "double"; isReadonly: true }
+ Property { name: "pressure"; type: "double"; isReadonly: true }
+ Property { name: "ellipseDiameters"; type: "QSizeF"; isReadonly: true }
+ Property { name: "uniqueId"; type: "QPointingDeviceUniqueId"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickflickable_p.h"
+ name: "QQuickFlickable"
+ defaultProperty: "flickableData"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/Flickable 2.0",
+ "QtQuick/Flickable 2.1",
+ "QtQuick/Flickable 2.10",
+ "QtQuick/Flickable 2.11",
+ "QtQuick/Flickable 2.12",
+ "QtQuick/Flickable 2.4",
+ "QtQuick/Flickable 2.7",
+ "QtQuick/Flickable 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 10, 11, 12, 4, 7, 9]
+ Enum {
+ name: "BoundsBehavior"
+ alias: "BoundsBehaviorFlag"
+ isFlag: true
+ values: [
+ "StopAtBounds",
+ "DragOverBounds",
+ "OvershootBounds",
+ "DragAndOvershootBounds"
+ ]
+ }
+ Enum {
+ name: "BoundsMovement"
+ values: ["FollowBoundsBehavior"]
+ }
+ Enum {
+ name: "FlickableDirection"
+ values: [
+ "AutoFlickDirection",
+ "HorizontalFlick",
+ "VerticalFlick",
+ "HorizontalAndVerticalFlick",
+ "AutoFlickIfNeeded"
+ ]
+ }
+ Property { name: "contentWidth"; type: "double" }
+ Property { name: "contentHeight"; type: "double" }
+ Property { name: "contentX"; type: "double" }
+ Property { name: "contentY"; type: "double" }
+ Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "topMargin"; type: "double" }
+ Property { name: "bottomMargin"; type: "double" }
+ Property { name: "originY"; type: "double"; isReadonly: true }
+ Property { name: "leftMargin"; type: "double" }
+ Property { name: "rightMargin"; type: "double" }
+ Property { name: "originX"; type: "double"; isReadonly: true }
+ Property { name: "horizontalVelocity"; type: "double"; isReadonly: true }
+ Property { name: "verticalVelocity"; type: "double"; isReadonly: true }
+ Property { name: "boundsBehavior"; type: "BoundsBehavior" }
+ Property { name: "boundsMovement"; revision: 10; type: "BoundsMovement" }
+ Property { name: "rebound"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "maximumFlickVelocity"; type: "double" }
+ Property { name: "flickDeceleration"; type: "double" }
+ Property { name: "moving"; type: "bool"; isReadonly: true }
+ Property { name: "movingHorizontally"; type: "bool"; isReadonly: true }
+ Property { name: "movingVertically"; type: "bool"; isReadonly: true }
+ Property { name: "flicking"; type: "bool"; isReadonly: true }
+ Property { name: "flickingHorizontally"; type: "bool"; isReadonly: true }
+ Property { name: "flickingVertically"; type: "bool"; isReadonly: true }
+ Property { name: "dragging"; type: "bool"; isReadonly: true }
+ Property { name: "draggingHorizontally"; type: "bool"; isReadonly: true }
+ Property { name: "draggingVertically"; type: "bool"; isReadonly: true }
+ Property { name: "flickableDirection"; type: "FlickableDirection" }
+ Property { name: "interactive"; type: "bool" }
+ Property { name: "pressDelay"; type: "int" }
+ Property { name: "atXEnd"; type: "bool"; isReadonly: true }
+ Property { name: "atYEnd"; type: "bool"; isReadonly: true }
+ Property { name: "atXBeginning"; type: "bool"; isReadonly: true }
+ Property { name: "atYBeginning"; type: "bool"; isReadonly: true }
+ Property {
+ name: "visibleArea"
+ type: "QQuickFlickableVisibleArea"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "pixelAligned"; type: "bool" }
+ Property { name: "synchronousDrag"; revision: 12; type: "bool" }
+ Property { name: "horizontalOvershoot"; revision: 9; type: "double"; isReadonly: true }
+ Property { name: "verticalOvershoot"; revision: 9; type: "double"; isReadonly: true }
+ Property { name: "flickableData"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "flickableChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Signal { name: "isAtBoundaryChanged" }
+ Signal { name: "boundsMovementChanged"; revision: 10 }
+ Signal { name: "movementStarted" }
+ Signal { name: "movementEnded" }
+ Signal { name: "flickStarted" }
+ Signal { name: "flickEnded" }
+ Signal { name: "dragStarted" }
+ Signal { name: "dragEnded" }
+ Signal { name: "synchronousDragChanged"; revision: 12 }
+ Signal { name: "horizontalOvershootChanged"; revision: 9 }
+ Signal { name: "verticalOvershootChanged"; revision: 9 }
+ Method { name: "movementStarting" }
+ Method { name: "movementEnding" }
+ Method {
+ name: "movementEnding"
+ Parameter { name: "hMovementEnding"; type: "bool" }
+ Parameter { name: "vMovementEnding"; type: "bool" }
+ }
+ Method { name: "velocityTimelineCompleted" }
+ Method { name: "timelineCompleted" }
+ Method {
+ name: "resizeContent"
+ Parameter { name: "w"; type: "double" }
+ Parameter { name: "h"; type: "double" }
+ Parameter { name: "center"; type: "QPointF" }
+ }
+ Method { name: "returnToBounds" }
+ Method {
+ name: "flick"
+ Parameter { name: "xVelocity"; type: "double" }
+ Parameter { name: "yVelocity"; type: "double" }
+ }
+ Method { name: "cancelFlick" }
+ }
+ Component {
+ file: "private/qquickflickable_p_p.h"
+ name: "QQuickFlickableVisibleArea"
+ prototype: "QObject"
+ Property { name: "xPosition"; type: "double"; isReadonly: true }
+ Property { name: "yPosition"; type: "double"; isReadonly: true }
+ Property { name: "widthRatio"; type: "double"; isReadonly: true }
+ Property { name: "heightRatio"; type: "double"; isReadonly: true }
+ Signal {
+ name: "xPositionChanged"
+ Parameter { name: "xPosition"; type: "double" }
+ }
+ Signal {
+ name: "yPositionChanged"
+ Parameter { name: "yPosition"; type: "double" }
+ }
+ Signal {
+ name: "widthRatioChanged"
+ Parameter { name: "widthRatio"; type: "double" }
+ }
+ Signal {
+ name: "heightRatioChanged"
+ Parameter { name: "heightRatio"; type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquickflipable_p.h"
+ name: "QQuickFlipable"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/Flipable 2.0",
+ "QtQuick/Flipable 2.1",
+ "QtQuick/Flipable 2.11",
+ "QtQuick/Flipable 2.4",
+ "QtQuick/Flipable 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "Side"
+ values: ["Front", "Back"]
+ }
+ Property { name: "front"; type: "QQuickItem"; isPointer: true }
+ Property { name: "back"; type: "QQuickItem"; isPointer: true }
+ Property { name: "side"; type: "Side"; isReadonly: true }
+ Method { name: "retransformBack" }
+ }
+ Component {
+ file: "private/qquickpositioners_p.h"
+ name: "QQuickFlow"
+ prototype: "QQuickBasePositioner"
+ exports: [
+ "QtQuick/Flow 2.0",
+ "QtQuick/Flow 2.1",
+ "QtQuick/Flow 2.11",
+ "QtQuick/Flow 2.4",
+ "QtQuick/Flow 2.6",
+ "QtQuick/Flow 2.7",
+ "QtQuick/Flow 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ Enum {
+ name: "Flow"
+ values: ["LeftToRight", "TopToBottom"]
+ }
+ Property { name: "flow"; type: "Flow" }
+ Property { name: "layoutDirection"; type: "Qt::LayoutDirection" }
+ Property { name: "effectiveLayoutDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickfocusscope_p.h"
+ name: "QQuickFocusScope"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/FocusScope 2.0",
+ "QtQuick/FocusScope 2.1",
+ "QtQuick/FocusScope 2.11",
+ "QtQuick/FocusScope 2.4",
+ "QtQuick/FocusScope 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ }
+ Component {
+ file: "private/qquickfontloader_p.h"
+ name: "QQuickFontLoader"
+ prototype: "QObject"
+ exports: ["QtQuick/FontLoader 2.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: ["Null", "Ready", "Loading", "Error"]
+ }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "name"; type: "string" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Method {
+ name: "updateFontInfo"
+ Parameter { type: "string" }
+ Parameter { type: "QQuickFontLoader::Status" }
+ }
+ }
+ Component {
+ file: "private/qquickfontmetrics_p.h"
+ name: "QQuickFontMetrics"
+ prototype: "QObject"
+ exports: ["QtQuick/FontMetrics 2.4"]
+ exportMetaObjectRevisions: [4]
+ Property { name: "font"; type: "QFont" }
+ Property { name: "ascent"; type: "double"; isReadonly: true }
+ Property { name: "descent"; type: "double"; isReadonly: true }
+ Property { name: "height"; type: "double"; isReadonly: true }
+ Property { name: "leading"; type: "double"; isReadonly: true }
+ Property { name: "lineSpacing"; type: "double"; isReadonly: true }
+ Property { name: "minimumLeftBearing"; type: "double"; isReadonly: true }
+ Property { name: "minimumRightBearing"; type: "double"; isReadonly: true }
+ Property { name: "maximumCharacterWidth"; type: "double"; isReadonly: true }
+ Property { name: "xHeight"; type: "double"; isReadonly: true }
+ Property { name: "averageCharacterWidth"; type: "double"; isReadonly: true }
+ Property { name: "underlinePosition"; type: "double"; isReadonly: true }
+ Property { name: "overlinePosition"; type: "double"; isReadonly: true }
+ Property { name: "strikeOutPosition"; type: "double"; isReadonly: true }
+ Property { name: "lineWidth"; type: "double"; isReadonly: true }
+ Signal {
+ name: "fontChanged"
+ Parameter { name: "font"; type: "QFont" }
+ }
+ Method {
+ name: "advanceWidth"
+ type: "double"
+ Parameter { name: "text"; type: "string" }
+ }
+ Method {
+ name: "boundingRect"
+ type: "QRectF"
+ Parameter { name: "text"; type: "string" }
+ }
+ Method {
+ name: "tightBoundingRect"
+ type: "QRectF"
+ Parameter { name: "text"; type: "string" }
+ }
+ Method {
+ name: "elidedText"
+ type: "string"
+ Parameter { name: "text"; type: "string" }
+ Parameter { name: "mode"; type: "Qt::TextElideMode" }
+ Parameter { name: "width"; type: "double" }
+ Parameter { name: "flags"; type: "int" }
+ }
+ Method {
+ name: "elidedText"
+ type: "string"
+ Parameter { name: "text"; type: "string" }
+ Parameter { name: "mode"; type: "Qt::TextElideMode" }
+ Parameter { name: "width"; type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquickvaluetypes_p.h"
+ name: "QQuickFontValueType"
+ exports: ["QtQuick/Font 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "FontWeight"
+ values: [
+ "Thin",
+ "ExtraLight",
+ "Light",
+ "Normal",
+ "Medium",
+ "DemiBold",
+ "Bold",
+ "ExtraBold",
+ "Black"
+ ]
+ }
+ Enum {
+ name: "Capitalization"
+ values: [
+ "MixedCase",
+ "AllUppercase",
+ "AllLowercase",
+ "SmallCaps",
+ "Capitalize"
+ ]
+ }
+ Enum {
+ name: "HintingPreference"
+ values: [
+ "PreferDefaultHinting",
+ "PreferNoHinting",
+ "PreferVerticalHinting",
+ "PreferFullHinting"
+ ]
+ }
+ Property { name: "family"; type: "string" }
+ Property { name: "styleName"; type: "string" }
+ Property { name: "bold"; type: "bool" }
+ Property { name: "weight"; type: "FontWeight" }
+ Property { name: "italic"; type: "bool" }
+ Property { name: "underline"; type: "bool" }
+ Property { name: "overline"; type: "bool" }
+ Property { name: "strikeout"; type: "bool" }
+ Property { name: "pointSize"; type: "double" }
+ Property { name: "pixelSize"; type: "int" }
+ Property { name: "capitalization"; type: "Capitalization" }
+ Property { name: "letterSpacing"; type: "double" }
+ Property { name: "wordSpacing"; type: "double" }
+ Property { name: "hintingPreference"; type: "HintingPreference" }
+ Property { name: "kerning"; type: "bool" }
+ Property { name: "preferShaping"; type: "bool" }
+ Method { name: "toString"; type: "string" }
+ }
+ Component {
+ file: "private/qquickmultipointtoucharea_p.h"
+ name: "QQuickGrabGestureEvent"
+ prototype: "QObject"
+ exports: ["QtQuick/GestureEvent 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "touchPoints"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "dragThreshold"; type: "double"; isReadonly: true }
+ Method { name: "grab" }
+ }
+ Component {
+ file: "private/qquickrectangle_p.h"
+ name: "QQuickGradient"
+ defaultProperty: "stops"
+ prototype: "QObject"
+ exports: ["QtQuick/Gradient 2.0", "QtQuick/Gradient 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "Orientation"
+ values: ["Vertical", "Horizontal"]
+ }
+ Property { name: "stops"; type: "QQuickGradientStop"; isList: true; isReadonly: true }
+ Property { name: "orientation"; revision: 12; type: "Orientation" }
+ Signal { name: "updated" }
+ }
+ Component {
+ file: "private/qquickrectangle_p.h"
+ name: "QQuickGradientStop"
+ prototype: "QObject"
+ exports: ["QtQuick/GradientStop 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "position"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ }
+ Component {
+ file: "private/qquickgraphicsinfo_p.h"
+ name: "QQuickGraphicsInfo"
+ prototype: "QObject"
+ exports: ["QtQuick/GraphicsInfo 2.8"]
+ isCreatable: false
+ exportMetaObjectRevisions: [8]
+ attachedType: "QQuickGraphicsInfo"
+ Enum {
+ name: "GraphicsApi"
+ values: [
+ "Unknown",
+ "Software",
+ "OpenGL",
+ "Direct3D12",
+ "OpenVG",
+ "OpenGLRhi",
+ "Direct3D11Rhi",
+ "VulkanRhi",
+ "MetalRhi",
+ "NullRhi"
+ ]
+ }
+ Enum {
+ name: "ShaderType"
+ values: ["UnknownShadingLanguage", "GLSL", "HLSL", "RhiShader"]
+ }
+ Enum {
+ name: "ShaderCompilationType"
+ values: ["RuntimeCompilation", "OfflineCompilation"]
+ }
+ Enum {
+ name: "ShaderSourceType"
+ values: [
+ "ShaderSourceString",
+ "ShaderSourceFile",
+ "ShaderByteCode"
+ ]
+ }
+ Enum {
+ name: "OpenGLContextProfile"
+ values: [
+ "OpenGLNoProfile",
+ "OpenGLCoreProfile",
+ "OpenGLCompatibilityProfile"
+ ]
+ }
+ Enum {
+ name: "RenderableType"
+ values: [
+ "SurfaceFormatUnspecified",
+ "SurfaceFormatOpenGL",
+ "SurfaceFormatOpenGLES"
+ ]
+ }
+ Property { name: "api"; type: "GraphicsApi"; isReadonly: true }
+ Property { name: "shaderType"; type: "ShaderType"; isReadonly: true }
+ Property { name: "shaderCompilationType"; type: "ShaderCompilationType"; isReadonly: true }
+ Property { name: "shaderSourceType"; type: "ShaderSourceType"; isReadonly: true }
+ Property { name: "majorVersion"; type: "int"; isReadonly: true }
+ Property { name: "minorVersion"; type: "int"; isReadonly: true }
+ Property { name: "profile"; type: "OpenGLContextProfile"; isReadonly: true }
+ Property { name: "renderableType"; type: "RenderableType"; isReadonly: true }
+ Method { name: "updateInfo" }
+ Method {
+ name: "setWindow"
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickpositioners_p.h"
+ name: "QQuickGrid"
+ prototype: "QQuickBasePositioner"
+ exports: [
+ "QtQuick/Grid 2.0",
+ "QtQuick/Grid 2.1",
+ "QtQuick/Grid 2.11",
+ "QtQuick/Grid 2.4",
+ "QtQuick/Grid 2.6",
+ "QtQuick/Grid 2.7",
+ "QtQuick/Grid 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ Enum {
+ name: "Flow"
+ values: ["LeftToRight", "TopToBottom"]
+ }
+ Enum {
+ name: "HAlignment"
+ values: ["AlignLeft", "AlignRight", "AlignHCenter"]
+ }
+ Enum {
+ name: "VAlignment"
+ values: ["AlignTop", "AlignBottom", "AlignVCenter"]
+ }
+ Property { name: "rows"; type: "int" }
+ Property { name: "columns"; type: "int" }
+ Property { name: "rowSpacing"; type: "double" }
+ Property { name: "columnSpacing"; type: "double" }
+ Property { name: "flow"; type: "Flow" }
+ Property { name: "layoutDirection"; type: "Qt::LayoutDirection" }
+ Property { name: "effectiveLayoutDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ Property { name: "horizontalItemAlignment"; revision: 1; type: "HAlignment" }
+ Property {
+ name: "effectiveHorizontalItemAlignment"
+ revision: 1
+ type: "HAlignment"
+ isReadonly: true
+ }
+ Property { name: "verticalItemAlignment"; revision: 1; type: "VAlignment" }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ revision: 1
+ Parameter { name: "alignment"; type: "HAlignment" }
+ }
+ Signal {
+ name: "effectiveHorizontalAlignmentChanged"
+ revision: 1
+ Parameter { name: "alignment"; type: "HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ revision: 1
+ Parameter { name: "alignment"; type: "VAlignment" }
+ }
+ }
+ Component {
+ file: "private/qquickshadereffectmesh_p.h"
+ name: "QQuickGridMesh"
+ prototype: "QQuickShaderEffectMesh"
+ exports: ["QtQuick/GridMesh 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "resolution"; type: "QSize" }
+ }
+ Component {
+ file: "private/qquickgridview_p.h"
+ name: "QQuickGridView"
+ defaultProperty: "data"
+ prototype: "QQuickItemView"
+ exports: [
+ "QtQuick/GridView 2.0",
+ "QtQuick/GridView 2.1",
+ "QtQuick/GridView 2.10",
+ "QtQuick/GridView 2.11",
+ "QtQuick/GridView 2.12",
+ "QtQuick/GridView 2.13",
+ "QtQuick/GridView 2.15",
+ "QtQuick/GridView 2.3",
+ "QtQuick/GridView 2.4",
+ "QtQuick/GridView 2.7",
+ "QtQuick/GridView 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 10, 11, 12, 13, 15, 3, 4, 7, 9]
+ attachedType: "QQuickGridViewAttached"
+ Enum {
+ name: "Flow"
+ values: ["FlowLeftToRight", "FlowTopToBottom"]
+ }
+ Enum {
+ name: "SnapMode"
+ values: ["NoSnap", "SnapToRow", "SnapOneRow"]
+ }
+ Property { name: "flow"; type: "Flow" }
+ Property { name: "cellWidth"; type: "double" }
+ Property { name: "cellHeight"; type: "double" }
+ Property { name: "snapMode"; type: "SnapMode" }
+ Signal { name: "highlightMoveDurationChanged" }
+ Method { name: "moveCurrentIndexUp" }
+ Method { name: "moveCurrentIndexDown" }
+ Method { name: "moveCurrentIndexLeft" }
+ Method { name: "moveCurrentIndexRight" }
+ }
+ Component { name: "QQuickGridViewAttached"; prototype: "QQuickItemViewAttached" }
+ Component {
+ file: "private/qquickhoverhandler_p.h"
+ name: "QQuickHoverHandler"
+ prototype: "QQuickSinglePointHandler"
+ exports: ["QtQuick/HoverHandler 2.12", "QtQuick/HoverHandler 2.15"]
+ exportMetaObjectRevisions: [12, 15]
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickimage_p.h"
+ name: "QQuickImage"
+ prototype: "QQuickImageBase"
+ exports: [
+ "QtQuick/Image 2.0",
+ "QtQuick/Image 2.1",
+ "QtQuick/Image 2.11",
+ "QtQuick/Image 2.14",
+ "QtQuick/Image 2.15",
+ "QtQuick/Image 2.3",
+ "QtQuick/Image 2.4",
+ "QtQuick/Image 2.5",
+ "QtQuick/Image 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 14, 15, 3, 4, 5, 7]
+ Enum {
+ name: "HAlignment"
+ values: ["AlignLeft", "AlignRight", "AlignHCenter"]
+ }
+ Enum {
+ name: "VAlignment"
+ values: ["AlignTop", "AlignBottom", "AlignVCenter"]
+ }
+ Enum {
+ name: "FillMode"
+ values: [
+ "Stretch",
+ "PreserveAspectFit",
+ "PreserveAspectCrop",
+ "Tile",
+ "TileVertically",
+ "TileHorizontally",
+ "Pad"
+ ]
+ }
+ Property { name: "fillMode"; type: "FillMode" }
+ Property { name: "paintedWidth"; type: "double"; isReadonly: true }
+ Property { name: "paintedHeight"; type: "double"; isReadonly: true }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "mipmap"; revision: 3; type: "bool" }
+ Property { name: "autoTransform"; revision: 5; type: "bool" }
+ Property { name: "sourceClipRect"; revision: 15; type: "QRectF" }
+ Signal { name: "paintedGeometryChanged" }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "VAlignment" }
+ }
+ Signal {
+ name: "mipmapChanged"
+ revision: 3
+ Parameter { type: "bool" }
+ }
+ Signal { name: "autoTransformChanged"; revision: 5 }
+ Method { name: "invalidateSceneGraph" }
+ }
+ Component {
+ file: "private/qquickimagebase_p.h"
+ name: "QQuickImageBase"
+ prototype: "QQuickImplicitSizeItem"
+ exports: ["QtQuick/ImageBase 2.14", "QtQuick/ImageBase 2.15"]
+ isCreatable: false
+ exportMetaObjectRevisions: [14, 15]
+ Enum {
+ name: "LoadPixmapOptions"
+ alias: "LoadPixmapOption"
+ isFlag: true
+ values: ["NoOption", "HandleDPR", "UseProviderOptions"]
+ }
+ Enum {
+ name: "Status"
+ values: ["Null", "Ready", "Loading", "Error"]
+ }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "progress"; type: "double"; isReadonly: true }
+ Property { name: "asynchronous"; type: "bool" }
+ Property { name: "cache"; type: "bool" }
+ Property { name: "sourceSize"; type: "QSize" }
+ Property { name: "mirror"; type: "bool" }
+ Property { name: "currentFrame"; revision: 14; type: "int" }
+ Property { name: "frameCount"; revision: 14; type: "int"; isReadonly: true }
+ Property { name: "colorSpace"; revision: 15; type: "QColorSpace" }
+ Signal {
+ name: "sourceChanged"
+ Parameter { type: "QUrl" }
+ }
+ Signal {
+ name: "statusChanged"
+ Parameter { type: "QQuickImageBase::Status" }
+ }
+ Signal {
+ name: "progressChanged"
+ Parameter { name: "progress"; type: "double" }
+ }
+ Signal { name: "currentFrameChanged"; revision: 14 }
+ Signal { name: "frameCountChanged"; revision: 14 }
+ Signal { name: "sourceClipRectChanged"; revision: 15 }
+ Signal { name: "colorSpaceChanged"; revision: 15 }
+ Method { name: "requestFinished" }
+ Method {
+ name: "requestProgress"
+ Parameter { type: "qlonglong" }
+ Parameter { type: "qlonglong" }
+ }
+ }
+ Component {
+ file: "qquickitem.h"
+ name: "QQuickImplicitSizeItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Property { name: "implicitWidth"; type: "double"; isReadonly: true }
+ Property { name: "implicitHeight"; type: "double"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickvalidator_p.h"
+ name: "QQuickIntValidator"
+ prototype: "QIntValidator"
+ exports: ["QtQuick/IntValidator 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "locale"; type: "string" }
+ Signal { name: "localeNameChanged" }
+ }
+ Component {
+ file: "qquickitem.h"
+ name: "QQuickItem"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: [
+ "QtQuick/Item 2.0",
+ "QtQuick/Item 2.1",
+ "QtQuick/Item 2.11",
+ "QtQuick/Item 2.4",
+ "QtQuick/Item 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "Flags"
+ alias: "Flag"
+ isFlag: true
+ values: [
+ "ItemClipsChildrenToShape",
+ "ItemAcceptsInputMethod",
+ "ItemIsFocusScope",
+ "ItemHasContents",
+ "ItemAcceptsDrops"
+ ]
+ }
+ Enum {
+ name: "TransformOrigin"
+ values: [
+ "TopLeft",
+ "Top",
+ "TopRight",
+ "Left",
+ "Center",
+ "Right",
+ "BottomLeft",
+ "Bottom",
+ "BottomRight"
+ ]
+ }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "z"; type: "double" }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "opacity"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Property { name: "state"; type: "string" }
+ Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
+ Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "clip"; type: "bool" }
+ Property { name: "focus"; type: "bool" }
+ Property { name: "activeFocus"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "scale"; type: "double" }
+ Property { name: "transformOrigin"; type: "TransformOrigin" }
+ Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
+ Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "antialiasing"; type: "bool" }
+ Property { name: "implicitWidth"; type: "double" }
+ Property { name: "implicitHeight"; type: "double" }
+ Property { name: "containmentMask"; revision: 11; type: "QObject"; isPointer: true }
+ Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "childrenRectChanged"
+ Parameter { type: "QRectF" }
+ }
+ Signal {
+ name: "baselineOffsetChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ Signal {
+ name: "focusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnTabChanged"
+ revision: 1
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "parentChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "transformOriginChanged"
+ Parameter { type: "TransformOrigin" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "antialiasingChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "clipChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "windowChanged"
+ revision: 1
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ Signal { name: "containmentMaskChanged"; revision: 11 }
+ Method { name: "update" }
+ Method {
+ name: "_q_resourceObjectDeleted"
+ Parameter { type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "_q_createJSWrapper"
+ type: "qulonglong"
+ Parameter { type: "QV4::ExecutionEngine"; isPointer: true }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ Parameter { name: "targetSize"; type: "QSize" }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapFromItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapFromGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "forceActiveFocus" }
+ Method {
+ name: "forceActiveFocus"
+ Parameter { name: "reason"; type: "Qt::FocusReason" }
+ }
+ Method {
+ name: "nextItemInFocusChain"
+ revision: 1
+ type: "QQuickItem*"
+ Parameter { name: "forward"; type: "bool" }
+ }
+ Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
+ Method {
+ name: "childAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ file: "qquickitemgrabresult.h"
+ name: "QQuickItemGrabResult"
+ prototype: "QObject"
+ Property { name: "image"; type: "QImage"; isReadonly: true }
+ Property { name: "url"; type: "QUrl"; isReadonly: true }
+ Signal { name: "ready" }
+ Method { name: "setup" }
+ Method { name: "render" }
+ Method {
+ name: "saveToFile"
+ type: "bool"
+ Parameter { name: "fileName"; type: "string" }
+ }
+ Method {
+ name: "saveToFile"
+ type: "bool"
+ Parameter { name: "fileName"; type: "string" }
+ }
+ }
+ Component {
+ file: "private/qquickitem_p.h"
+ name: "QQuickItemLayer"
+ prototype: "QObject"
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "textureSize"; type: "QSize" }
+ Property { name: "sourceRect"; type: "QRectF" }
+ Property { name: "mipmap"; type: "bool" }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "wrapMode"; type: "QQuickShaderEffectSource::WrapMode" }
+ Property { name: "format"; type: "QQuickShaderEffectSource::Format" }
+ Property { name: "samplerName"; type: "QByteArray" }
+ Property { name: "effect"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "textureMirroring"; type: "QQuickShaderEffectSource::TextureMirroring" }
+ Property { name: "samples"; type: "int" }
+ Signal {
+ name: "enabledChanged"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Signal {
+ name: "sizeChanged"
+ Parameter { name: "size"; type: "QSize" }
+ }
+ Signal {
+ name: "mipmapChanged"
+ Parameter { name: "mipmap"; type: "bool" }
+ }
+ Signal {
+ name: "wrapModeChanged"
+ Parameter { name: "mode"; type: "QQuickShaderEffectSource::WrapMode" }
+ }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "name"; type: "QByteArray" }
+ }
+ Signal {
+ name: "effectChanged"
+ Parameter { name: "component"; type: "QQmlComponent"; isPointer: true }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { name: "smooth"; type: "bool" }
+ }
+ Signal {
+ name: "formatChanged"
+ Parameter { name: "format"; type: "QQuickShaderEffectSource::Format" }
+ }
+ Signal {
+ name: "sourceRectChanged"
+ Parameter { name: "sourceRect"; type: "QRectF" }
+ }
+ Signal {
+ name: "textureMirroringChanged"
+ Parameter { name: "mirroring"; type: "QQuickShaderEffectSource::TextureMirroring" }
+ }
+ Signal {
+ name: "samplesChanged"
+ Parameter { name: "count"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qquickitemview_p.h"
+ name: "QQuickItemView"
+ defaultProperty: "flickableData"
+ prototype: "QQuickFlickable"
+ exports: [
+ "QtQuick/ItemView 2.1",
+ "QtQuick/ItemView 2.10",
+ "QtQuick/ItemView 2.11",
+ "QtQuick/ItemView 2.12",
+ "QtQuick/ItemView 2.13",
+ "QtQuick/ItemView 2.15",
+ "QtQuick/ItemView 2.3",
+ "QtQuick/ItemView 2.4",
+ "QtQuick/ItemView 2.7",
+ "QtQuick/ItemView 2.9"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [1, 10, 11, 12, 13, 15, 3, 4, 7, 9]
+ Enum {
+ name: "LayoutDirection"
+ values: [
+ "LeftToRight",
+ "RightToLeft",
+ "VerticalTopToBottom",
+ "VerticalBottomToTop"
+ ]
+ }
+ Enum {
+ name: "VerticalLayoutDirection"
+ values: ["TopToBottom", "BottomToTop"]
+ }
+ Enum {
+ name: "HighlightRangeMode"
+ values: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
+ }
+ Enum {
+ name: "PositionMode"
+ values: [
+ "Beginning",
+ "Center",
+ "End",
+ "Visible",
+ "Contain",
+ "SnapPosition"
+ ]
+ }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "currentIndex"; type: "int" }
+ Property { name: "currentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "keyNavigationWraps"; type: "bool" }
+ Property { name: "keyNavigationEnabled"; revision: 7; type: "bool" }
+ Property { name: "cacheBuffer"; type: "int" }
+ Property { name: "displayMarginBeginning"; revision: 3; type: "int" }
+ Property { name: "displayMarginEnd"; revision: 3; type: "int" }
+ Property { name: "layoutDirection"; type: "Qt::LayoutDirection" }
+ Property { name: "effectiveLayoutDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ Property { name: "verticalLayoutDirection"; type: "VerticalLayoutDirection" }
+ Property { name: "header"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "headerItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "footer"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "footerItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "populate"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "add"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "addDisplaced"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "move"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "moveDisplaced"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "remove"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "removeDisplaced"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "displaced"; type: "QQuickTransition"; isPointer: true }
+ Property { name: "highlight"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "highlightItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "highlightFollowsCurrentItem"; type: "bool" }
+ Property { name: "highlightRangeMode"; type: "HighlightRangeMode" }
+ Property { name: "preferredHighlightBegin"; type: "double" }
+ Property { name: "preferredHighlightEnd"; type: "double" }
+ Property { name: "highlightMoveDuration"; type: "int" }
+ Property { name: "reuseItems"; revision: 15; type: "bool" }
+ Signal { name: "keyNavigationEnabledChanged"; revision: 7 }
+ Signal { name: "populateTransitionChanged" }
+ Signal { name: "addTransitionChanged" }
+ Signal { name: "addDisplacedTransitionChanged" }
+ Signal { name: "moveTransitionChanged" }
+ Signal { name: "moveDisplacedTransitionChanged" }
+ Signal { name: "removeTransitionChanged" }
+ Signal { name: "removeDisplacedTransitionChanged" }
+ Signal { name: "displacedTransitionChanged" }
+ Signal { name: "reuseItemsChanged"; revision: 15 }
+ Method { name: "destroyRemoved" }
+ Method {
+ name: "createdItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "initItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "modelUpdated"
+ Parameter { name: "changeSet"; type: "QQmlChangeSet" }
+ Parameter { name: "reset"; type: "bool" }
+ }
+ Method {
+ name: "destroyingItem"
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "onItemPooled"
+ revision: 15
+ Parameter { name: "modelIndex"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "onItemReused"
+ revision: 15
+ Parameter { name: "modelIndex"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method { name: "animStopped" }
+ Method { name: "trackedPositionChanged" }
+ Method {
+ name: "positionViewAtIndex"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "mode"; type: "int" }
+ }
+ Method {
+ name: "indexAt"
+ type: "int"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ Method {
+ name: "itemAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ Method {
+ name: "itemAtIndex"
+ revision: 13
+ type: "QQuickItem*"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method { name: "positionViewAtBeginning" }
+ Method { name: "positionViewAtEnd" }
+ Method { name: "forceLayout"; revision: 1 }
+ }
+ Component {
+ name: "QQuickItemViewAttached"
+ prototype: "QObject"
+ Property { name: "view"; type: "QQuickItemView"; isReadonly: true; isPointer: true }
+ Property { name: "isCurrentItem"; type: "bool"; isReadonly: true }
+ Property { name: "delayRemove"; type: "bool" }
+ Property { name: "section"; type: "string"; isReadonly: true }
+ Property { name: "previousSection"; type: "string"; isReadonly: true }
+ Property { name: "nextSection"; type: "string"; isReadonly: true }
+ Signal { name: "currentItemChanged" }
+ Signal { name: "add" }
+ Signal { name: "remove" }
+ Signal { name: "prevSectionChanged" }
+ Signal { name: "pooled" }
+ Signal { name: "reused" }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickKeyEvent"
+ prototype: "QObject"
+ Property { name: "key"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string"; isReadonly: true }
+ Property { name: "modifiers"; type: "int"; isReadonly: true }
+ Property { name: "isAutoRepeat"; type: "bool"; isReadonly: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "nativeScanCode"; type: "uint"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ Method {
+ name: "matches"
+ revision: 2
+ type: "bool"
+ Parameter { name: "key"; type: "QKeySequence::StandardKey" }
+ }
+ }
+ Component {
+ file: "private/qquickitem_p.h"
+ name: "QQuickKeyNavigationAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/KeyNavigation 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickKeyNavigationAttached"
+ Enum {
+ name: "Priority"
+ values: ["BeforeItem", "AfterItem"]
+ }
+ Property { name: "left"; type: "QQuickItem"; isPointer: true }
+ Property { name: "right"; type: "QQuickItem"; isPointer: true }
+ Property { name: "up"; type: "QQuickItem"; isPointer: true }
+ Property { name: "down"; type: "QQuickItem"; isPointer: true }
+ Property { name: "tab"; type: "QQuickItem"; isPointer: true }
+ Property { name: "backtab"; type: "QQuickItem"; isPointer: true }
+ Property { name: "priority"; type: "Priority" }
+ }
+ Component {
+ file: "private/qquickitem_p.h"
+ name: "QQuickKeysAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/Keys 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickKeysAttached"
+ Enum {
+ name: "Priority"
+ values: ["BeforeItem", "AfterItem"]
+ }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "forwardTo"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "priority"; type: "Priority" }
+ Signal {
+ name: "pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "shortcutOverride"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit0Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit1Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit2Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit3Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit4Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit5Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit6Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit7Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit8Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "digit9Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "leftPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "rightPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "upPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "downPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "tabPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "backtabPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "asteriskPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "numberSignPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "escapePressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "returnPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "enterPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "deletePressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "spacePressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "backPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "cancelPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "selectPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "yesPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "noPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "context1Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "context2Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "context3Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "context4Pressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "callPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "hangupPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "flipPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "menuPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "volumeUpPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ Signal {
+ name: "volumeDownPressed"
+ Parameter { name: "event"; type: "QQuickKeyEvent"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickitem_p.h"
+ name: "QQuickLayoutMirroringAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/LayoutMirroring 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickLayoutMirroringAttached"
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "childrenInherit"; type: "bool" }
+ }
+ Component {
+ file: "private/qquicklistview_p.h"
+ name: "QQuickListView"
+ defaultProperty: "data"
+ prototype: "QQuickItemView"
+ exports: [
+ "QtQuick/ListView 2.0",
+ "QtQuick/ListView 2.1",
+ "QtQuick/ListView 2.10",
+ "QtQuick/ListView 2.11",
+ "QtQuick/ListView 2.12",
+ "QtQuick/ListView 2.13",
+ "QtQuick/ListView 2.15",
+ "QtQuick/ListView 2.3",
+ "QtQuick/ListView 2.4",
+ "QtQuick/ListView 2.7",
+ "QtQuick/ListView 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 10, 11, 12, 13, 15, 3, 4, 7, 9]
+ attachedType: "QQuickListViewAttached"
+ Enum {
+ name: "Orientation"
+ values: ["Horizontal", "Vertical"]
+ }
+ Enum {
+ name: "SnapMode"
+ values: ["NoSnap", "SnapToItem", "SnapOneItem"]
+ }
+ Enum {
+ name: "HeaderPositioning"
+ values: ["InlineHeader", "OverlayHeader", "PullBackHeader"]
+ }
+ Enum {
+ name: "FooterPositioning"
+ values: ["InlineFooter", "OverlayFooter", "PullBackFooter"]
+ }
+ Property { name: "highlightMoveVelocity"; type: "double" }
+ Property { name: "highlightResizeVelocity"; type: "double" }
+ Property { name: "highlightResizeDuration"; type: "int" }
+ Property { name: "spacing"; type: "double" }
+ Property { name: "orientation"; type: "Orientation" }
+ Property { name: "section"; type: "QQuickViewSection"; isReadonly: true; isPointer: true }
+ Property { name: "currentSection"; type: "string"; isReadonly: true }
+ Property { name: "snapMode"; type: "SnapMode" }
+ Property { name: "headerPositioning"; revision: 4; type: "HeaderPositioning" }
+ Property { name: "footerPositioning"; revision: 4; type: "FooterPositioning" }
+ Signal { name: "headerPositioningChanged"; revision: 4 }
+ Signal { name: "footerPositioningChanged"; revision: 4 }
+ Method { name: "incrementCurrentIndex" }
+ Method { name: "decrementCurrentIndex" }
+ }
+ Component { name: "QQuickListViewAttached"; prototype: "QQuickItemViewAttached" }
+ Component {
+ file: "private/qquickloader_p.h"
+ name: "QQuickLoader"
+ prototype: "QQuickImplicitSizeItem"
+ exports: [
+ "QtQuick/Loader 2.0",
+ "QtQuick/Loader 2.1",
+ "QtQuick/Loader 2.11",
+ "QtQuick/Loader 2.4",
+ "QtQuick/Loader 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "Status"
+ values: ["Null", "Ready", "Loading", "Error"]
+ }
+ Property { name: "active"; type: "bool" }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "sourceComponent"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "item"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "progress"; type: "double"; isReadonly: true }
+ Property { name: "asynchronous"; type: "bool" }
+ Signal { name: "loaded" }
+ Method { name: "_q_sourceLoaded" }
+ Method { name: "_q_updateSize" }
+ Method {
+ name: "setSource"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquicktranslate_p.h"
+ name: "QQuickMatrix4x4"
+ prototype: "QQuickTransform"
+ exports: ["QtQuick/Matrix4x4 2.3"]
+ exportMetaObjectRevisions: [3]
+ Property { name: "matrix"; type: "QMatrix4x4" }
+ }
+ Component {
+ file: "private/qquickmousearea_p.h"
+ name: "QQuickMouseArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/MouseArea 2.0",
+ "QtQuick/MouseArea 2.1",
+ "QtQuick/MouseArea 2.11",
+ "QtQuick/MouseArea 2.4",
+ "QtQuick/MouseArea 2.5",
+ "QtQuick/MouseArea 2.7",
+ "QtQuick/MouseArea 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 5, 7, 9]
+ Property { name: "mouseX"; type: "double"; isReadonly: true }
+ Property { name: "mouseY"; type: "double"; isReadonly: true }
+ Property { name: "containsMouse"; type: "bool"; isReadonly: true }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "scrollGestureEnabled"; revision: 5; type: "bool" }
+ Property { name: "pressedButtons"; type: "Qt::MouseButtons"; isReadonly: true }
+ Property { name: "acceptedButtons"; type: "Qt::MouseButtons" }
+ Property { name: "hoverEnabled"; type: "bool" }
+ Property { name: "drag"; type: "QQuickDrag"; isReadonly: true; isPointer: true }
+ Property { name: "preventStealing"; type: "bool" }
+ Property { name: "propagateComposedEvents"; type: "bool" }
+ Property { name: "cursorShape"; type: "Qt::CursorShape" }
+ Property { name: "containsPress"; revision: 4; type: "bool"; isReadonly: true }
+ Property { name: "pressAndHoldInterval"; revision: 9; type: "int" }
+ Signal { name: "hoveredChanged" }
+ Signal { name: "scrollGestureEnabledChanged"; revision: 5 }
+ Signal {
+ name: "positionChanged"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "mouseXChanged"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "mouseYChanged"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pressed"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "mouse"; type: "QQuickMouseEvent"; isPointer: true }
+ }
+ Signal {
+ name: "wheel"
+ Parameter { name: "wheel"; type: "QQuickWheelEvent"; isPointer: true }
+ }
+ Signal { name: "entered" }
+ Signal { name: "exited" }
+ Signal { name: "canceled" }
+ Signal { name: "containsPressChanged"; revision: 4 }
+ Signal { name: "pressAndHoldIntervalChanged"; revision: 9 }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickMouseEvent"
+ prototype: "QObject"
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "button"; type: "int"; isReadonly: true }
+ Property { name: "buttons"; type: "int"; isReadonly: true }
+ Property { name: "modifiers"; type: "int"; isReadonly: true }
+ Property { name: "source"; revision: 7; type: "int"; isReadonly: true }
+ Property { name: "wasHeld"; type: "bool"; isReadonly: true }
+ Property { name: "isClick"; type: "bool"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ Property { name: "flags"; revision: 11; type: "int"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickpointerhandler_p.h"
+ name: "QQuickMultiPointHandler"
+ prototype: "QQuickPointerDeviceHandler"
+ Property { name: "minimumPointCount"; type: "int" }
+ Property { name: "maximumPointCount"; type: "int" }
+ Property { name: "centroid"; type: "QQuickHandlerPoint"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickmultipointtoucharea_p.h"
+ name: "QQuickMultiPointTouchArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/MultiPointTouchArea 2.0",
+ "QtQuick/MultiPointTouchArea 2.1",
+ "QtQuick/MultiPointTouchArea 2.11",
+ "QtQuick/MultiPointTouchArea 2.4",
+ "QtQuick/MultiPointTouchArea 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Property { name: "touchPoints"; type: "QQuickTouchPoint"; isList: true; isReadonly: true }
+ Property { name: "minimumTouchPoints"; type: "int" }
+ Property { name: "maximumTouchPoints"; type: "int" }
+ Property { name: "mouseEnabled"; type: "bool" }
+ Signal {
+ name: "pressed"
+ Parameter { name: "touchPoints"; type: "QList" }
+ }
+ Signal {
+ name: "updated"
+ Parameter { name: "touchPoints"; type: "QList" }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "touchPoints"; type: "QList" }
+ }
+ Signal {
+ name: "canceled"
+ Parameter { name: "touchPoints"; type: "QList" }
+ }
+ Signal {
+ name: "gestureStarted"
+ Parameter { name: "gesture"; type: "QQuickGrabGestureEvent"; isPointer: true }
+ }
+ Signal {
+ name: "touchUpdated"
+ Parameter { name: "touchPoints"; type: "QList" }
+ }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickNumberAnimation"
+ prototype: "QQuickPropertyAnimation"
+ exports: [
+ "QtQuick/NumberAnimation 2.0",
+ "QtQuick/NumberAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "from"; type: "double" }
+ Property { name: "to"; type: "double" }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickOpacityAnimator"
+ prototype: "QQuickAnimator"
+ exports: [
+ "QtQuick/OpacityAnimator 2.12",
+ "QtQuick/OpacityAnimator 2.2"
+ ]
+ exportMetaObjectRevisions: [12, 2]
+ }
+ Component {
+ file: "private/qquickopenglinfo_p.h"
+ name: "QQuickOpenGLInfo"
+ prototype: "QObject"
+ exports: ["QtQuick/OpenGLInfo 2.4"]
+ isCreatable: false
+ exportMetaObjectRevisions: [4]
+ attachedType: "QQuickOpenGLInfo"
+ Enum {
+ name: "ContextProfile"
+ values: ["NoProfile", "CoreProfile", "CompatibilityProfile"]
+ }
+ Enum {
+ name: "RenderableType"
+ values: ["Unspecified", "OpenGL", "OpenGLES"]
+ }
+ Property { name: "majorVersion"; type: "int"; isReadonly: true }
+ Property { name: "minorVersion"; type: "int"; isReadonly: true }
+ Property { name: "profile"; type: "ContextProfile"; isReadonly: true }
+ Property { name: "renderableType"; type: "RenderableType"; isReadonly: true }
+ Method { name: "updateFormat" }
+ Method {
+ name: "setWindow"
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ }
+ Component {
+ file: "qquickpainteditem.h"
+ name: "QQuickPaintedItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/PaintedItem 2.0",
+ "QtQuick/PaintedItem 2.1",
+ "QtQuick/PaintedItem 2.11",
+ "QtQuick/PaintedItem 2.4",
+ "QtQuick/PaintedItem 2.7"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "RenderTarget"
+ values: [
+ "Image",
+ "FramebufferObject",
+ "InvertedYFramebufferObject"
+ ]
+ }
+ Enum {
+ name: "PerformanceHints"
+ alias: "PerformanceHint"
+ isFlag: true
+ values: ["FastFBOResizing"]
+ }
+ Property { name: "contentsSize"; type: "QSize" }
+ Property { name: "fillColor"; type: "QColor" }
+ Property { name: "contentsScale"; type: "double" }
+ Property { name: "renderTarget"; type: "RenderTarget" }
+ Property { name: "textureSize"; type: "QSize" }
+ Method { name: "invalidateSceneGraph" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickParallelAnimation"
+ defaultProperty: "animations"
+ prototype: "QQuickAnimationGroup"
+ exports: [
+ "QtQuick/ParallelAnimation 2.0",
+ "QtQuick/ParallelAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ }
+ Component {
+ file: "private/qquickitemanimation_p.h"
+ name: "QQuickParentAnimation"
+ defaultProperty: "animations"
+ prototype: "QQuickAnimationGroup"
+ exports: [
+ "QtQuick/ParentAnimation 2.0",
+ "QtQuick/ParentAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "newParent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "via"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ file: "private/qquickstateoperations_p.h"
+ name: "QQuickParentChange"
+ prototype: "QQuickStateOperation"
+ exports: ["QtQuick/ParentChange 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "x"; type: "QQmlScriptString" }
+ Property { name: "y"; type: "QQmlScriptString" }
+ Property { name: "width"; type: "QQmlScriptString" }
+ Property { name: "height"; type: "QQmlScriptString" }
+ Property { name: "scale"; type: "QQmlScriptString" }
+ Property { name: "rotation"; type: "QQmlScriptString" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPath"
+ defaultProperty: "pathElements"
+ prototype: "QObject"
+ exports: ["QtQuick/Path 2.0", "QtQuick/Path 2.14"]
+ exportMetaObjectRevisions: [0, 14]
+ Property { name: "pathElements"; type: "QQuickPathElement"; isList: true; isReadonly: true }
+ Property { name: "startX"; type: "double" }
+ Property { name: "startY"; type: "double" }
+ Property { name: "closed"; type: "bool"; isReadonly: true }
+ Property { name: "scale"; revision: 14; type: "QSizeF" }
+ Signal { name: "changed" }
+ Signal { name: "scaleChanged"; revision: 14 }
+ Method { name: "processPath" }
+ Method {
+ name: "pointAtPercent"
+ revision: 14
+ type: "QPointF"
+ Parameter { name: "t"; type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathAngleArc"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathAngleArc 2.11"]
+ exportMetaObjectRevisions: [11]
+ Property { name: "centerX"; type: "double" }
+ Property { name: "centerY"; type: "double" }
+ Property { name: "radiusX"; type: "double" }
+ Property { name: "radiusY"; type: "double" }
+ Property { name: "startAngle"; type: "double" }
+ Property { name: "sweepAngle"; type: "double" }
+ Property { name: "moveToStart"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickitemanimation_p.h"
+ name: "QQuickPathAnimation"
+ prototype: "QQuickAbstractAnimation"
+ exports: ["QtQuick/PathAnimation 2.0", "QtQuick/PathAnimation 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "Orientation"
+ values: [
+ "Fixed",
+ "RightFirst",
+ "LeftFirst",
+ "BottomFirst",
+ "TopFirst"
+ ]
+ }
+ Property { name: "duration"; type: "int" }
+ Property { name: "easing"; type: "QEasingCurve" }
+ Property { name: "path"; type: "QQuickPath"; isPointer: true }
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "orientation"; type: "Orientation" }
+ Property { name: "anchorPoint"; type: "QPointF" }
+ Property { name: "orientationEntryDuration"; type: "int" }
+ Property { name: "orientationExitDuration"; type: "int" }
+ Property { name: "endRotation"; type: "double" }
+ Signal {
+ name: "durationChanged"
+ Parameter { type: "int" }
+ }
+ Signal {
+ name: "easingChanged"
+ Parameter { type: "QEasingCurve" }
+ }
+ Signal {
+ name: "orientationChanged"
+ Parameter { type: "Orientation" }
+ }
+ Signal {
+ name: "anchorPointChanged"
+ Parameter { type: "QPointF" }
+ }
+ Signal {
+ name: "orientationEntryDurationChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "orientationExitDurationChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "endRotationChanged"
+ Parameter { type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathArc"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathArc 2.0", "QtQuick/PathArc 2.9"]
+ exportMetaObjectRevisions: [0, 9]
+ Enum {
+ name: "ArcDirection"
+ values: ["Clockwise", "Counterclockwise"]
+ }
+ Property { name: "radiusX"; type: "double" }
+ Property { name: "radiusY"; type: "double" }
+ Property { name: "useLargeArc"; type: "bool" }
+ Property { name: "direction"; type: "ArcDirection" }
+ Property { name: "xAxisRotation"; revision: 9; type: "double" }
+ Signal { name: "xAxisRotationChanged"; revision: 9 }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathAttribute"
+ prototype: "QQuickPathElement"
+ exports: ["QtQuick/PathAttribute 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "name"; type: "string" }
+ Property { name: "value"; type: "double" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathCatmullRomCurve"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathCurve 2.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathCubic"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathCubic 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "control1X"; type: "double" }
+ Property { name: "control1Y"; type: "double" }
+ Property { name: "control2X"; type: "double" }
+ Property { name: "control2Y"; type: "double" }
+ Property { name: "relativeControl1X"; type: "double" }
+ Property { name: "relativeControl1Y"; type: "double" }
+ Property { name: "relativeControl2X"; type: "double" }
+ Property { name: "relativeControl2Y"; type: "double" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathElement"
+ prototype: "QObject"
+ Signal { name: "changed" }
+ }
+ Component {
+ file: "private/qquickpathinterpolator_p.h"
+ name: "QQuickPathInterpolator"
+ prototype: "QObject"
+ exports: ["QtQuick/PathInterpolator 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "QQuickPath"; isPointer: true }
+ Property { name: "progress"; type: "double" }
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "angle"; type: "double"; isReadonly: true }
+ Method { name: "_q_pathUpdated" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathLine"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathLine 2.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathMove"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathMove 2.9"]
+ exportMetaObjectRevisions: [9]
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathMultiline"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathMultiline 2.14"]
+ exportMetaObjectRevisions: [14]
+ Property { name: "start"; type: "QPointF"; isReadonly: true }
+ Property { name: "paths"; type: "QVariant" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathPercent"
+ prototype: "QQuickPathElement"
+ exports: ["QtQuick/PathPercent 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "value"; type: "double" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathPolyline"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathPolyline 2.14"]
+ exportMetaObjectRevisions: [14]
+ Property { name: "start"; type: "QPointF"; isReadonly: true }
+ Property { name: "path"; type: "QVariant" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathQuad"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathQuad 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "controlX"; type: "double" }
+ Property { name: "controlY"; type: "double" }
+ Property { name: "relativeControlX"; type: "double" }
+ Property { name: "relativeControlY"; type: "double" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathSvg"
+ prototype: "QQuickCurve"
+ exports: ["QtQuick/PathSvg 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "string" }
+ }
+ Component {
+ file: "private/qquickpath_p.h"
+ name: "QQuickPathText"
+ prototype: "QQuickPathElement"
+ exports: ["QtQuick/PathText 2.15"]
+ exportMetaObjectRevisions: [15]
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "width"; type: "double"; isReadonly: true }
+ Property { name: "height"; type: "double"; isReadonly: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "font"; type: "QFont" }
+ Method { name: "invalidate" }
+ }
+ Component {
+ file: "private/qquickpathview_p.h"
+ name: "QQuickPathView"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/PathView 2.0",
+ "QtQuick/PathView 2.1",
+ "QtQuick/PathView 2.11",
+ "QtQuick/PathView 2.13",
+ "QtQuick/PathView 2.4",
+ "QtQuick/PathView 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 13, 4, 7]
+ attachedType: "QQuickPathViewAttached"
+ Enum {
+ name: "HighlightRangeMode"
+ values: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
+ }
+ Enum {
+ name: "SnapMode"
+ values: ["NoSnap", "SnapToItem", "SnapOneItem"]
+ }
+ Enum {
+ name: "MovementDirection"
+ values: ["Shortest", "Negative", "Positive"]
+ }
+ Enum {
+ name: "PositionMode"
+ values: ["Beginning", "Center", "End", "Contain", "SnapPosition"]
+ }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "path"; type: "QQuickPath"; isPointer: true }
+ Property { name: "currentIndex"; type: "int" }
+ Property { name: "currentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "offset"; type: "double" }
+ Property { name: "highlight"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "highlightItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "preferredHighlightBegin"; type: "double" }
+ Property { name: "preferredHighlightEnd"; type: "double" }
+ Property { name: "highlightRangeMode"; type: "HighlightRangeMode" }
+ Property { name: "highlightMoveDuration"; type: "int" }
+ Property { name: "dragMargin"; type: "double" }
+ Property { name: "maximumFlickVelocity"; type: "double" }
+ Property { name: "flickDeceleration"; type: "double" }
+ Property { name: "interactive"; type: "bool" }
+ Property { name: "moving"; type: "bool"; isReadonly: true }
+ Property { name: "flicking"; type: "bool"; isReadonly: true }
+ Property { name: "dragging"; type: "bool"; isReadonly: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "pathItemCount"; type: "int" }
+ Property { name: "snapMode"; type: "SnapMode" }
+ Property { name: "movementDirection"; revision: 7; type: "MovementDirection" }
+ Property { name: "cacheItemCount"; type: "int" }
+ Signal { name: "snapPositionChanged" }
+ Signal { name: "movementStarted" }
+ Signal { name: "movementEnded" }
+ Signal { name: "movementDirectionChanged"; revision: 7 }
+ Signal { name: "flickStarted" }
+ Signal { name: "flickEnded" }
+ Signal { name: "dragStarted" }
+ Signal { name: "dragEnded" }
+ Method { name: "incrementCurrentIndex" }
+ Method { name: "decrementCurrentIndex" }
+ Method { name: "refill" }
+ Method { name: "ticked" }
+ Method { name: "movementEnding" }
+ Method {
+ name: "modelUpdated"
+ Parameter { name: "changeSet"; type: "QQmlChangeSet" }
+ Parameter { name: "reset"; type: "bool" }
+ }
+ Method {
+ name: "createdItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "initItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "destroyingItem"
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method { name: "pathUpdated" }
+ Method {
+ name: "positionViewAtIndex"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "mode"; type: "int" }
+ }
+ Method {
+ name: "indexAt"
+ type: "int"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ Method {
+ name: "itemAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ Method {
+ name: "itemAtIndex"
+ revision: 13
+ type: "QQuickItem*"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickPathViewAttached"
+ prototype: "QObject"
+ Property { name: "view"; type: "QQuickPathView"; isReadonly: true; isPointer: true }
+ Property { name: "isCurrentItem"; type: "bool"; isReadonly: true }
+ Property { name: "onPath"; type: "bool"; isReadonly: true }
+ Signal { name: "currentItemChanged" }
+ Signal { name: "pathChanged" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickPauseAnimation"
+ prototype: "QQuickAbstractAnimation"
+ exports: ["QtQuick/PauseAnimation 2.0", "QtQuick/PauseAnimation 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "duration"; type: "int" }
+ Signal {
+ name: "durationChanged"
+ Parameter { type: "int" }
+ }
+ }
+ Component {
+ file: "private/qquickrectangle_p.h"
+ name: "QQuickPen"
+ prototype: "QObject"
+ Property { name: "width"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "pixelAligned"; type: "bool" }
+ Signal { name: "penChanged" }
+ }
+ Component {
+ file: "private/qquickpincharea_p.h"
+ name: "QQuickPinch"
+ prototype: "QObject"
+ exports: ["QtQuick/Pinch 2.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Axis"
+ values: ["NoDrag", "XAxis", "YAxis", "XAndYAxis", "XandYAxis"]
+ }
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "minimumScale"; type: "double" }
+ Property { name: "maximumScale"; type: "double" }
+ Property { name: "minimumRotation"; type: "double" }
+ Property { name: "maximumRotation"; type: "double" }
+ Property { name: "dragAxis"; type: "Axis" }
+ Property { name: "minimumX"; type: "double" }
+ Property { name: "maximumX"; type: "double" }
+ Property { name: "minimumY"; type: "double" }
+ Property { name: "maximumY"; type: "double" }
+ Property { name: "active"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickpincharea_p.h"
+ name: "QQuickPinchArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/PinchArea 2.0",
+ "QtQuick/PinchArea 2.1",
+ "QtQuick/PinchArea 2.11",
+ "QtQuick/PinchArea 2.4",
+ "QtQuick/PinchArea 2.5",
+ "QtQuick/PinchArea 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 5, 7]
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "pinch"; type: "QQuickPinch"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "pinchStarted"
+ Parameter { name: "pinch"; type: "QQuickPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pinchUpdated"
+ Parameter { name: "pinch"; type: "QQuickPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "pinchFinished"
+ Parameter { name: "pinch"; type: "QQuickPinchEvent"; isPointer: true }
+ }
+ Signal {
+ name: "smartZoom"
+ revision: 5
+ Parameter { name: "pinch"; type: "QQuickPinchEvent"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickpincharea_p.h"
+ name: "QQuickPinchEvent"
+ prototype: "QObject"
+ Property { name: "center"; type: "QPointF"; isReadonly: true }
+ Property { name: "startCenter"; type: "QPointF"; isReadonly: true }
+ Property { name: "previousCenter"; type: "QPointF"; isReadonly: true }
+ Property { name: "scale"; type: "double"; isReadonly: true }
+ Property { name: "previousScale"; type: "double"; isReadonly: true }
+ Property { name: "angle"; type: "double"; isReadonly: true }
+ Property { name: "previousAngle"; type: "double"; isReadonly: true }
+ Property { name: "rotation"; type: "double"; isReadonly: true }
+ Property { name: "point1"; type: "QPointF"; isReadonly: true }
+ Property { name: "startPoint1"; type: "QPointF"; isReadonly: true }
+ Property { name: "point2"; type: "QPointF"; isReadonly: true }
+ Property { name: "startPoint2"; type: "QPointF"; isReadonly: true }
+ Property { name: "pointCount"; type: "int"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickpinchhandler_p.h"
+ name: "QQuickPinchHandler"
+ prototype: "QQuickMultiPointHandler"
+ exports: ["QtQuick/PinchHandler 2.12", "QtQuick/PinchHandler 2.15"]
+ exportMetaObjectRevisions: [12, 15]
+ Property { name: "minimumScale"; type: "double" }
+ Property { name: "maximumScale"; type: "double" }
+ Property { name: "minimumRotation"; type: "double" }
+ Property { name: "maximumRotation"; type: "double" }
+ Property { name: "scale"; type: "double"; isReadonly: true }
+ Property { name: "activeScale"; type: "double"; isReadonly: true }
+ Property { name: "rotation"; type: "double"; isReadonly: true }
+ Property { name: "translation"; type: "QVector2D"; isReadonly: true }
+ Property { name: "minimumX"; type: "double" }
+ Property { name: "maximumX"; type: "double" }
+ Property { name: "minimumY"; type: "double" }
+ Property { name: "maximumY"; type: "double" }
+ Property { name: "xAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true }
+ Property { name: "yAxis"; type: "QQuickDragAxis"; isReadonly: true; isPointer: true }
+ Signal { name: "updated" }
+ }
+ Component {
+ file: "private/qquickpointhandler_p.h"
+ name: "QQuickPointHandler"
+ prototype: "QQuickSinglePointHandler"
+ exports: ["QtQuick/PointHandler 2.12", "QtQuick/PointHandler 2.15"]
+ exportMetaObjectRevisions: [12, 15]
+ Property { name: "translation"; type: "QVector2D"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickPointerDevice"
+ prototype: "QObject"
+ exports: ["QtQuick/PointerDevice 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ Enum {
+ name: "DeviceTypes"
+ alias: "DeviceType"
+ isFlag: true
+ values: [
+ "UnknownDevice",
+ "Mouse",
+ "TouchScreen",
+ "TouchPad",
+ "Puck",
+ "Stylus",
+ "Airbrush",
+ "AllDevices"
+ ]
+ }
+ Enum {
+ name: "PointerTypes"
+ alias: "PointerType"
+ isFlag: true
+ values: [
+ "GenericPointer",
+ "Finger",
+ "Pen",
+ "Eraser",
+ "Cursor",
+ "AllPointerTypes"
+ ]
+ }
+ Enum {
+ name: "Capabilities"
+ alias: "CapabilityFlag"
+ isFlag: true
+ values: [
+ "Position",
+ "Area",
+ "Pressure",
+ "Velocity",
+ "MouseEmulation",
+ "Scroll",
+ "Hover",
+ "Rotation",
+ "XTilt",
+ "YTilt"
+ ]
+ }
+ Property { name: "type"; type: "DeviceType"; isReadonly: true }
+ Property { name: "pointerType"; type: "PointerType"; isReadonly: true }
+ Property { name: "capabilities"; type: "Capabilities"; isReadonly: true }
+ Property { name: "maximumTouchPoints"; type: "int"; isReadonly: true }
+ Property { name: "buttonCount"; type: "int"; isReadonly: true }
+ Property { name: "name"; type: "string"; isReadonly: true }
+ Property { name: "uniqueId"; type: "QPointingDeviceUniqueId"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickpointerhandler_p.h"
+ name: "QQuickPointerDeviceHandler"
+ prototype: "QQuickPointerHandler"
+ Property { name: "acceptedDevices"; type: "QQuickPointerDevice::DeviceTypes" }
+ Property { name: "acceptedPointerTypes"; type: "QQuickPointerDevice::PointerTypes" }
+ Property { name: "acceptedButtons"; type: "Qt::MouseButtons" }
+ Property { name: "acceptedModifiers"; type: "Qt::KeyboardModifiers" }
+ Method {
+ name: "setAcceptedDevices"
+ Parameter { name: "acceptedDevices"; type: "QQuickPointerDevice::DeviceTypes" }
+ }
+ Method {
+ name: "setAcceptedPointerTypes"
+ Parameter { name: "acceptedPointerTypes"; type: "QQuickPointerDevice::PointerTypes" }
+ }
+ Method {
+ name: "setAcceptedButtons"
+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
+ }
+ Method {
+ name: "setAcceptedModifiers"
+ Parameter { name: "acceptedModifiers"; type: "Qt::KeyboardModifiers" }
+ }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickPointerEvent"
+ prototype: "QObject"
+ exports: ["QtQuick/PointerEvent 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ Property { name: "device"; type: "QQuickPointerDevice"; isReadonly: true; isPointer: true }
+ Property { name: "modifiers"; type: "Qt::KeyboardModifiers"; isReadonly: true }
+ Property { name: "button"; type: "Qt::MouseButtons"; isReadonly: true }
+ Property { name: "buttons"; type: "Qt::MouseButtons"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickpointerhandler_p.h"
+ name: "QQuickPointerHandler"
+ prototype: "QObject"
+ exports: [
+ "QtQuick/PointerHandler 2.12",
+ "QtQuick/PointerHandler 2.15"
+ ]
+ isCreatable: false
+ exportMetaObjectRevisions: [12, 15]
+ Enum {
+ name: "GrabPermissions"
+ alias: "GrabPermission"
+ isFlag: true
+ values: [
+ "TakeOverForbidden",
+ "CanTakeOverFromHandlersOfSameType",
+ "CanTakeOverFromHandlersOfDifferentType",
+ "CanTakeOverFromItems",
+ "CanTakeOverFromAnything",
+ "ApprovesTakeOverByHandlersOfSameType",
+ "ApprovesTakeOverByHandlersOfDifferentType",
+ "ApprovesTakeOverByItems",
+ "ApprovesCancellation",
+ "ApprovesTakeOverByAnything"
+ ]
+ }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "active"; type: "bool"; isReadonly: true }
+ Property { name: "target"; type: "QQuickItem"; isPointer: true }
+ Property { name: "parent"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "grabPermissions"; type: "GrabPermissions" }
+ Property { name: "margin"; type: "double" }
+ Property { name: "dragThreshold"; revision: 15; type: "int" }
+ Property { name: "cursorShape"; revision: 15; type: "Qt::CursorShape" }
+ Signal { name: "dragThresholdChanged"; revision: 15 }
+ Signal {
+ name: "grabChanged"
+ Parameter { name: "transition"; type: "QQuickEventPoint::GrabTransition" }
+ Parameter { name: "point"; type: "QQuickEventPoint"; isPointer: true }
+ }
+ Signal { name: "grabPermissionChanged" }
+ Signal {
+ name: "canceled"
+ Parameter { name: "point"; type: "QQuickEventPoint"; isPointer: true }
+ }
+ Signal { name: "cursorShapeChanged"; revision: 15 }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickPointerMouseEvent"
+ prototype: "QQuickSinglePointEvent"
+ exports: ["QtQuick/PointerMouseEvent 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickPointerScrollEvent"
+ prototype: "QQuickSinglePointEvent"
+ exports: ["QtQuick/PointerScrollEvent 2.14"]
+ isCreatable: false
+ exportMetaObjectRevisions: [14]
+ Property { name: "angleDelta"; type: "QVector2D"; isReadonly: true }
+ Property { name: "pixelDelta"; type: "QVector2D"; isReadonly: true }
+ Property { name: "hasAngleDelta"; type: "bool"; isReadonly: true }
+ Property { name: "hasPixelDelta"; type: "bool"; isReadonly: true }
+ Property { name: "inverted"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickPointerTouchEvent"
+ prototype: "QQuickPointerEvent"
+ exports: ["QtQuick/PointerTouchEvent 2.12"]
+ isCreatable: false
+ exportMetaObjectRevisions: [12]
+ }
+ Component {
+ name: "QQuickPositionerAttached"
+ prototype: "QObject"
+ Property { name: "index"; type: "int"; isReadonly: true }
+ Property { name: "isFirstItem"; type: "bool"; isReadonly: true }
+ Property { name: "isLastItem"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickPropertyAction"
+ prototype: "QQuickAbstractAnimation"
+ exports: ["QtQuick/PropertyAction 2.0", "QtQuick/PropertyAction 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "target"; type: "QObject"; isPointer: true }
+ Property { name: "property"; type: "string" }
+ Property { name: "properties"; type: "string" }
+ Property { name: "targets"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "exclude"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "value"; type: "QVariant" }
+ Signal {
+ name: "valueChanged"
+ Parameter { type: "QVariant" }
+ }
+ Signal {
+ name: "propertiesChanged"
+ Parameter { type: "string" }
+ }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickPropertyAnimation"
+ prototype: "QQuickAbstractAnimation"
+ exports: [
+ "QtQuick/PropertyAnimation 2.0",
+ "QtQuick/PropertyAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "duration"; type: "int" }
+ Property { name: "from"; type: "QVariant" }
+ Property { name: "to"; type: "QVariant" }
+ Property { name: "easing"; type: "QEasingCurve" }
+ Property { name: "target"; type: "QObject"; isPointer: true }
+ Property { name: "property"; type: "string" }
+ Property { name: "properties"; type: "string" }
+ Property { name: "targets"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "exclude"; type: "QObject"; isList: true; isReadonly: true }
+ Signal {
+ name: "durationChanged"
+ Parameter { type: "int" }
+ }
+ Signal {
+ name: "easingChanged"
+ Parameter { type: "QEasingCurve" }
+ }
+ Signal {
+ name: "propertiesChanged"
+ Parameter { type: "string" }
+ }
+ }
+ Component {
+ file: "private/qquickpropertychanges_p.h"
+ name: "QQuickPropertyChanges"
+ prototype: "QQuickStateOperation"
+ exports: ["QtQuick/PropertyChanges 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "target"; type: "QObject"; isPointer: true }
+ Property { name: "restoreEntryValues"; type: "bool" }
+ Property { name: "explicit"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickrectangle_p.h"
+ name: "QQuickRectangle"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/Rectangle 2.0",
+ "QtQuick/Rectangle 2.1",
+ "QtQuick/Rectangle 2.11",
+ "QtQuick/Rectangle 2.4",
+ "QtQuick/Rectangle 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "gradient"; type: "QJSValue" }
+ Property { name: "border"; type: "QQuickPen"; isReadonly: true; isPointer: true }
+ Property { name: "radius"; type: "double" }
+ Method { name: "doUpdate" }
+ }
+ Component {
+ file: "private/qquickrepeater_p.h"
+ name: "QQuickRepeater"
+ defaultProperty: "delegate"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/Repeater 2.0",
+ "QtQuick/Repeater 2.1",
+ "QtQuick/Repeater 2.11",
+ "QtQuick/Repeater 2.4",
+ "QtQuick/Repeater 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Signal {
+ name: "itemAdded"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "itemRemoved"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
+ }
+ Method {
+ name: "createdItem"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "initItem"
+ Parameter { type: "int" }
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "modelUpdated"
+ Parameter { name: "changeSet"; type: "QQmlChangeSet" }
+ Parameter { name: "reset"; type: "bool" }
+ }
+ Method {
+ name: "itemAt"
+ type: "QQuickItem*"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qquicktranslate_p.h"
+ name: "QQuickRotation"
+ prototype: "QQuickTransform"
+ exports: ["QtQuick/Rotation 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "origin"; type: "QVector3D" }
+ Property { name: "angle"; type: "double" }
+ Property { name: "axis"; type: "QVector3D" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickRotationAnimation"
+ prototype: "QQuickPropertyAnimation"
+ exports: [
+ "QtQuick/RotationAnimation 2.0",
+ "QtQuick/RotationAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "RotationDirection"
+ values: ["Numerical", "Shortest", "Clockwise", "Counterclockwise"]
+ }
+ Property { name: "from"; type: "double" }
+ Property { name: "to"; type: "double" }
+ Property { name: "direction"; type: "RotationDirection" }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickRotationAnimator"
+ prototype: "QQuickAnimator"
+ exports: [
+ "QtQuick/RotationAnimator 2.12",
+ "QtQuick/RotationAnimator 2.2"
+ ]
+ exportMetaObjectRevisions: [12, 2]
+ Enum {
+ name: "RotationDirection"
+ values: ["Numerical", "Shortest", "Clockwise", "Counterclockwise"]
+ }
+ Property { name: "direction"; type: "RotationDirection" }
+ Signal {
+ name: "directionChanged"
+ Parameter { name: "dir"; type: "RotationDirection" }
+ }
+ }
+ Component {
+ file: "private/qquickpositioners_p.h"
+ name: "QQuickRow"
+ prototype: "QQuickBasePositioner"
+ exports: [
+ "QtQuick/Row 2.0",
+ "QtQuick/Row 2.1",
+ "QtQuick/Row 2.11",
+ "QtQuick/Row 2.4",
+ "QtQuick/Row 2.6",
+ "QtQuick/Row 2.7",
+ "QtQuick/Row 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ Property { name: "layoutDirection"; type: "Qt::LayoutDirection" }
+ Property { name: "effectiveLayoutDirection"; type: "Qt::LayoutDirection"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquicktranslate_p.h"
+ name: "QQuickScale"
+ prototype: "QQuickTransform"
+ exports: ["QtQuick/Scale 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "origin"; type: "QVector3D" }
+ Property { name: "xScale"; type: "double" }
+ Property { name: "yScale"; type: "double" }
+ Property { name: "zScale"; type: "double" }
+ Signal { name: "scaleChanged" }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickScaleAnimator"
+ prototype: "QQuickAnimator"
+ exports: ["QtQuick/ScaleAnimator 2.12", "QtQuick/ScaleAnimator 2.2"]
+ exportMetaObjectRevisions: [12, 2]
+ }
+ Component {
+ file: "private/qquickscalegrid_p_p.h"
+ name: "QQuickScaleGrid"
+ prototype: "QObject"
+ Property { name: "left"; type: "int" }
+ Property { name: "top"; type: "int" }
+ Property { name: "right"; type: "int" }
+ Property { name: "bottom"; type: "int" }
+ Signal { name: "borderChanged" }
+ Signal { name: "leftBorderChanged" }
+ Signal { name: "topBorderChanged" }
+ Signal { name: "rightBorderChanged" }
+ Signal { name: "bottomBorderChanged" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickScriptAction"
+ prototype: "QQuickAbstractAnimation"
+ exports: ["QtQuick/ScriptAction 2.0", "QtQuick/ScriptAction 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "script"; type: "QQmlScriptString" }
+ Property { name: "scriptName"; type: "string" }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickSequentialAnimation"
+ defaultProperty: "animations"
+ prototype: "QQuickAnimationGroup"
+ exports: [
+ "QtQuick/SequentialAnimation 2.0",
+ "QtQuick/SequentialAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ }
+ Component {
+ file: "private/qquickshadereffect_p.h"
+ name: "QQuickShaderEffect"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/ShaderEffect 2.0",
+ "QtQuick/ShaderEffect 2.1",
+ "QtQuick/ShaderEffect 2.11",
+ "QtQuick/ShaderEffect 2.4",
+ "QtQuick/ShaderEffect 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Enum {
+ name: "CullMode"
+ values: ["NoCulling", "BackFaceCulling", "FrontFaceCulling"]
+ }
+ Enum {
+ name: "Status"
+ values: ["Compiled", "Uncompiled", "Error"]
+ }
+ Property { name: "fragmentShader"; type: "QByteArray" }
+ Property { name: "vertexShader"; type: "QByteArray" }
+ Property { name: "blending"; type: "bool" }
+ Property { name: "mesh"; type: "QVariant" }
+ Property { name: "cullMode"; type: "CullMode" }
+ Property { name: "log"; type: "string"; isReadonly: true }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "supportsAtlasTextures"; revision: 4; type: "bool" }
+ }
+ Component {
+ file: "private/qquickshadereffectmesh_p.h"
+ name: "QQuickShaderEffectMesh"
+ prototype: "QObject"
+ exports: ["QtQuick/ShaderEffectMesh 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Signal { name: "geometryChanged" }
+ }
+ Component {
+ file: "private/qquickshadereffectsource_p.h"
+ name: "QQuickShaderEffectSource"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/ShaderEffectSource 2.0",
+ "QtQuick/ShaderEffectSource 2.1",
+ "QtQuick/ShaderEffectSource 2.11",
+ "QtQuick/ShaderEffectSource 2.4",
+ "QtQuick/ShaderEffectSource 2.6",
+ "QtQuick/ShaderEffectSource 2.7",
+ "QtQuick/ShaderEffectSource 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 6, 7, 9]
+ Enum {
+ name: "WrapMode"
+ values: [
+ "ClampToEdge",
+ "RepeatHorizontally",
+ "RepeatVertically",
+ "Repeat"
+ ]
+ }
+ Enum {
+ name: "Format"
+ values: ["Alpha", "RGB", "RGBA"]
+ }
+ Enum {
+ name: "TextureMirroring"
+ values: ["NoMirroring", "MirrorHorizontally", "MirrorVertically"]
+ }
+ Property { name: "wrapMode"; type: "WrapMode" }
+ Property { name: "sourceItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "sourceRect"; type: "QRectF" }
+ Property { name: "textureSize"; type: "QSize" }
+ Property { name: "format"; type: "Format" }
+ Property { name: "live"; type: "bool" }
+ Property { name: "hideSource"; type: "bool" }
+ Property { name: "mipmap"; type: "bool" }
+ Property { name: "recursive"; type: "bool" }
+ Property { name: "textureMirroring"; revision: 6; type: "TextureMirroring" }
+ Property { name: "samples"; revision: 9; type: "int" }
+ Signal { name: "scheduledUpdateCompleted" }
+ Method {
+ name: "sourceItemDestroyed"
+ Parameter { name: "item"; type: "QObject"; isPointer: true }
+ }
+ Method { name: "invalidateSceneGraph" }
+ Method {
+ name: "sourceItemParentChanged"
+ Parameter { name: "parent"; type: "QQuickItem"; isPointer: true }
+ }
+ Method { name: "scheduleUpdate" }
+ }
+ Component {
+ file: "private/qquickshortcut_p.h"
+ name: "QQuickShortcut"
+ prototype: "QObject"
+ exports: [
+ "QtQuick/Shortcut 2.5",
+ "QtQuick/Shortcut 2.6",
+ "QtQuick/Shortcut 2.9"
+ ]
+ exportMetaObjectRevisions: [5, 6, 9]
+ Property { name: "sequence"; type: "QVariant" }
+ Property { name: "sequences"; revision: 9; type: "QVariantList" }
+ Property { name: "nativeText"; revision: 6; type: "string"; isReadonly: true }
+ Property { name: "portableText"; revision: 6; type: "string"; isReadonly: true }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "autoRepeat"; type: "bool" }
+ Property { name: "context"; type: "Qt::ShortcutContext" }
+ Signal { name: "sequencesChanged"; revision: 9 }
+ Signal { name: "activated" }
+ Signal { name: "activatedAmbiguously" }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickSinglePointEvent"
+ prototype: "QQuickPointerEvent"
+ }
+ Component {
+ file: "private/qquickpointerhandler_p.h"
+ name: "QQuickSinglePointHandler"
+ prototype: "QQuickPointerDeviceHandler"
+ Property { name: "point"; type: "QQuickHandlerPoint"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquicksmoothedanimation_p.h"
+ name: "QQuickSmoothedAnimation"
+ prototype: "QQuickNumberAnimation"
+ exports: [
+ "QtQuick/SmoothedAnimation 2.0",
+ "QtQuick/SmoothedAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "ReversingMode"
+ values: ["Eased", "Immediate", "Sync"]
+ }
+ Property { name: "velocity"; type: "double" }
+ Property { name: "reversingMode"; type: "ReversingMode" }
+ Property { name: "maximumEasingTime"; type: "double" }
+ }
+ Component {
+ file: "private/qquickspringanimation_p.h"
+ name: "QQuickSpringAnimation"
+ prototype: "QQuickNumberAnimation"
+ exports: [
+ "QtQuick/SpringAnimation 2.0",
+ "QtQuick/SpringAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "velocity"; type: "double" }
+ Property { name: "spring"; type: "double" }
+ Property { name: "damping"; type: "double" }
+ Property { name: "epsilon"; type: "double" }
+ Property { name: "modulus"; type: "double" }
+ Property { name: "mass"; type: "double" }
+ Signal { name: "syncChanged" }
+ }
+ Component {
+ file: "private/qquicksprite_p.h"
+ name: "QQuickSprite"
+ prototype: "QQuickStochasticState"
+ exports: ["QtQuick/Sprite 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "reverse"; type: "bool" }
+ Property { name: "frameSync"; type: "bool" }
+ Property { name: "frames"; type: "int" }
+ Property { name: "frameCount"; type: "int" }
+ Property { name: "frameHeight"; type: "int" }
+ Property { name: "frameWidth"; type: "int" }
+ Property { name: "frameX"; type: "int" }
+ Property { name: "frameY"; type: "int" }
+ Property { name: "frameRate"; type: "double" }
+ Property { name: "frameRateVariation"; type: "double" }
+ Property { name: "frameDuration"; type: "int" }
+ Property { name: "frameDurationVariation"; type: "int" }
+ Signal {
+ name: "sourceChanged"
+ Parameter { name: "arg"; type: "QUrl" }
+ }
+ Signal {
+ name: "frameHeightChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameWidthChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "reverseChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "frameCountChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameXChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameYChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameRateChanged"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Signal {
+ name: "frameRateVariationChanged"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Signal {
+ name: "frameDurationChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameDurationVariationChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "frameSyncChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setSource"
+ Parameter { name: "arg"; type: "QUrl" }
+ }
+ Method {
+ name: "setFrameHeight"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameWidth"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setReverse"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setFrames"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameCount"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameX"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameY"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameRate"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Method {
+ name: "setFrameRateVariation"
+ Parameter { name: "arg"; type: "double" }
+ }
+ Method {
+ name: "setFrameDuration"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameDurationVariation"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setFrameSync"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method { name: "startImageLoading" }
+ }
+ Component {
+ file: "private/qquickspritesequence_p.h"
+ name: "QQuickSpriteSequence"
+ defaultProperty: "sprites"
+ prototype: "QQuickItem"
+ exports: [
+ "QtQuick/SpriteSequence 2.0",
+ "QtQuick/SpriteSequence 2.1",
+ "QtQuick/SpriteSequence 2.11",
+ "QtQuick/SpriteSequence 2.4",
+ "QtQuick/SpriteSequence 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 4, 7]
+ Property { name: "running"; type: "bool" }
+ Property { name: "interpolate"; type: "bool" }
+ Property { name: "goalSprite"; type: "string" }
+ Property { name: "currentSprite"; type: "string"; isReadonly: true }
+ Property { name: "sprites"; type: "QQuickSprite"; isList: true; isReadonly: true }
+ Signal {
+ name: "runningChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "interpolateChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Signal {
+ name: "goalSpriteChanged"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Signal {
+ name: "currentSpriteChanged"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "jumpTo"
+ Parameter { name: "sprite"; type: "string" }
+ }
+ Method {
+ name: "setGoalSprite"
+ Parameter { name: "sprite"; type: "string" }
+ }
+ Method {
+ name: "setRunning"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setInterpolate"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method { name: "createEngine" }
+ }
+ Component {
+ file: "private/qquickstate_p.h"
+ name: "QQuickState"
+ defaultProperty: "changes"
+ prototype: "QObject"
+ exports: ["QtQuick/State 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "name"; type: "string" }
+ Property { name: "when"; type: "bool" }
+ Property { name: "extend"; type: "string" }
+ Property { name: "changes"; type: "QQuickStateOperation"; isList: true; isReadonly: true }
+ Signal { name: "completed" }
+ }
+ Component {
+ file: "private/qquickstatechangescript_p.h"
+ name: "QQuickStateChangeScript"
+ prototype: "QQuickStateOperation"
+ exports: ["QtQuick/StateChangeScript 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "script"; type: "QQmlScriptString" }
+ Property { name: "name"; type: "string" }
+ }
+ Component {
+ file: "private/qquickstategroup_p.h"
+ name: "QQuickStateGroup"
+ prototype: "QObject"
+ exports: ["QtQuick/StateGroup 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "state"; type: "string" }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ }
+ Component { file: "private/qquickstate_p.h"; name: "QQuickStateOperation"; prototype: "QObject" }
+ Component {
+ name: "QQuickStochasticState"
+ prototype: "QObject"
+ Property { name: "duration"; type: "int" }
+ Property { name: "durationVariation"; type: "int" }
+ Property { name: "randomStart"; type: "bool" }
+ Property { name: "to"; type: "QVariantMap" }
+ Property { name: "name"; type: "string" }
+ Signal {
+ name: "durationChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "nameChanged"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Signal {
+ name: "toChanged"
+ Parameter { name: "arg"; type: "QVariantMap" }
+ }
+ Signal {
+ name: "durationVariationChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal { name: "entered" }
+ Signal {
+ name: "randomStartChanged"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setDuration"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setName"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setTo"
+ Parameter { name: "arg"; type: "QVariantMap" }
+ }
+ Method {
+ name: "setDurationVariation"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setRandomStart"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ }
+ Component {
+ file: "private/qquicksystempalette_p.h"
+ name: "QQuickSystemPalette"
+ prototype: "QObject"
+ exports: ["QtQuick/SystemPalette 2.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "ColorGroup"
+ values: ["Active", "Inactive", "Disabled"]
+ }
+ Property { name: "colorGroup"; type: "QQuickSystemPalette::ColorGroup" }
+ Property { name: "window"; type: "QColor"; isReadonly: true }
+ Property { name: "windowText"; type: "QColor"; isReadonly: true }
+ Property { name: "base"; type: "QColor"; isReadonly: true }
+ Property { name: "text"; type: "QColor"; isReadonly: true }
+ Property { name: "alternateBase"; type: "QColor"; isReadonly: true }
+ Property { name: "button"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonText"; type: "QColor"; isReadonly: true }
+ Property { name: "light"; type: "QColor"; isReadonly: true }
+ Property { name: "midlight"; type: "QColor"; isReadonly: true }
+ Property { name: "dark"; type: "QColor"; isReadonly: true }
+ Property { name: "mid"; type: "QColor"; isReadonly: true }
+ Property { name: "shadow"; type: "QColor"; isReadonly: true }
+ Property { name: "highlight"; type: "QColor"; isReadonly: true }
+ Property { name: "highlightedText"; type: "QColor"; isReadonly: true }
+ Signal { name: "paletteChanged" }
+ }
+ Component {
+ file: "private/qquicktableview_p.h"
+ name: "QQuickTableView"
+ defaultProperty: "flickableData"
+ prototype: "QQuickFlickable"
+ exports: ["QtQuick/TableView 2.12", "QtQuick/TableView 2.14"]
+ exportMetaObjectRevisions: [12, 14]
+ attachedType: "QQuickTableViewAttached"
+ Property { name: "rows"; type: "int"; isReadonly: true }
+ Property { name: "columns"; type: "int"; isReadonly: true }
+ Property { name: "rowSpacing"; type: "double" }
+ Property { name: "columnSpacing"; type: "double" }
+ Property { name: "rowHeightProvider"; type: "QJSValue" }
+ Property { name: "columnWidthProvider"; type: "QJSValue" }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "reuseItems"; type: "bool" }
+ Property { name: "contentWidth"; type: "double" }
+ Property { name: "contentHeight"; type: "double" }
+ Property { name: "syncView"; revision: 14; type: "QQuickTableView"; isPointer: true }
+ Property { name: "syncDirection"; revision: 14; type: "Qt::Orientations" }
+ Signal { name: "syncViewChanged"; revision: 14 }
+ Signal { name: "syncDirectionChanged"; revision: 14 }
+ Method { name: "_q_componentFinalized" }
+ Method { name: "forceLayout" }
+ }
+ Component {
+ name: "QQuickTableViewAttached"
+ prototype: "QObject"
+ Property { name: "view"; type: "QQuickTableView"; isReadonly: true; isPointer: true }
+ Signal { name: "pooled" }
+ Signal { name: "reused" }
+ }
+ Component {
+ file: "private/qquicktaphandler_p.h"
+ name: "QQuickTapHandler"
+ prototype: "QQuickSinglePointHandler"
+ exports: ["QtQuick/TapHandler 2.12", "QtQuick/TapHandler 2.15"]
+ exportMetaObjectRevisions: [12, 15]
+ Enum {
+ name: "GesturePolicy"
+ values: ["DragThreshold", "WithinBounds", "ReleaseWithinBounds"]
+ }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "tapCount"; type: "int"; isReadonly: true }
+ Property { name: "timeHeld"; type: "double"; isReadonly: true }
+ Property { name: "longPressThreshold"; type: "double" }
+ Property { name: "gesturePolicy"; type: "GesturePolicy" }
+ Signal {
+ name: "tapped"
+ Parameter { name: "eventPoint"; type: "QQuickEventPoint"; isPointer: true }
+ }
+ Signal {
+ name: "singleTapped"
+ Parameter { name: "eventPoint"; type: "QQuickEventPoint"; isPointer: true }
+ }
+ Signal {
+ name: "doubleTapped"
+ Parameter { name: "eventPoint"; type: "QQuickEventPoint"; isPointer: true }
+ }
+ Signal { name: "longPressed" }
+ }
+ Component {
+ file: "private/qquicktext_p.h"
+ name: "QQuickText"
+ prototype: "QQuickImplicitSizeItem"
+ exports: [
+ "QtQuick/Text 2.0",
+ "QtQuick/Text 2.1",
+ "QtQuick/Text 2.10",
+ "QtQuick/Text 2.11",
+ "QtQuick/Text 2.2",
+ "QtQuick/Text 2.3",
+ "QtQuick/Text 2.4",
+ "QtQuick/Text 2.6",
+ "QtQuick/Text 2.7",
+ "QtQuick/Text 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 10, 11, 2, 3, 4, 6, 7, 9]
+ Enum {
+ name: "HAlignment"
+ values: [
+ "AlignLeft",
+ "AlignRight",
+ "AlignHCenter",
+ "AlignJustify"
+ ]
+ }
+ Enum {
+ name: "VAlignment"
+ values: ["AlignTop", "AlignBottom", "AlignVCenter"]
+ }
+ Enum {
+ name: "TextStyle"
+ values: ["Normal", "Outline", "Raised", "Sunken"]
+ }
+ Enum {
+ name: "TextFormat"
+ values: [
+ "PlainText",
+ "RichText",
+ "MarkdownText",
+ "AutoText",
+ "StyledText"
+ ]
+ }
+ Enum {
+ name: "TextElideMode"
+ values: ["ElideLeft", "ElideRight", "ElideMiddle", "ElideNone"]
+ }
+ Enum {
+ name: "WrapMode"
+ values: [
+ "NoWrap",
+ "WordWrap",
+ "WrapAnywhere",
+ "WrapAtWordBoundaryOrAnywhere",
+ "Wrap"
+ ]
+ }
+ Enum {
+ name: "RenderType"
+ values: ["QtRendering", "NativeRendering"]
+ }
+ Enum {
+ name: "LineHeightMode"
+ values: ["ProportionalHeight", "FixedHeight"]
+ }
+ Enum {
+ name: "FontSizeMode"
+ values: ["FixedSize", "HorizontalFit", "VerticalFit", "Fit"]
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "linkColor"; type: "QColor" }
+ Property { name: "style"; type: "TextStyle" }
+ Property { name: "styleColor"; type: "QColor" }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "effectiveHorizontalAlignment"; type: "HAlignment"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "wrapMode"; type: "WrapMode" }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "truncated"; type: "bool"; isReadonly: true }
+ Property { name: "maximumLineCount"; type: "int" }
+ Property { name: "textFormat"; type: "TextFormat" }
+ Property { name: "elide"; type: "TextElideMode" }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "paintedWidth"; type: "double"; isReadonly: true }
+ Property { name: "paintedHeight"; type: "double"; isReadonly: true }
+ Property { name: "lineHeight"; type: "double" }
+ Property { name: "lineHeightMode"; type: "LineHeightMode" }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "minimumPixelSize"; type: "int" }
+ Property { name: "minimumPointSize"; type: "int" }
+ Property { name: "fontSizeMode"; type: "FontSizeMode" }
+ Property { name: "renderType"; type: "RenderType" }
+ Property { name: "hoveredLink"; revision: 2; type: "string"; isReadonly: true }
+ Property { name: "padding"; revision: 6; type: "double" }
+ Property { name: "topPadding"; revision: 6; type: "double" }
+ Property { name: "leftPadding"; revision: 6; type: "double" }
+ Property { name: "rightPadding"; revision: 6; type: "double" }
+ Property { name: "bottomPadding"; revision: 6; type: "double" }
+ Property { name: "fontInfo"; revision: 9; type: "QJSValue"; isReadonly: true }
+ Property { name: "advance"; revision: 10; type: "QSizeF"; isReadonly: true }
+ Signal {
+ name: "textChanged"
+ Parameter { name: "text"; type: "string" }
+ }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ revision: 2
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "fontChanged"
+ Parameter { name: "font"; type: "QFont" }
+ }
+ Signal {
+ name: "styleChanged"
+ Parameter { name: "style"; type: "QQuickText::TextStyle" }
+ }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickText::HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickText::VAlignment" }
+ }
+ Signal {
+ name: "textFormatChanged"
+ Parameter { name: "textFormat"; type: "QQuickText::TextFormat" }
+ }
+ Signal {
+ name: "elideModeChanged"
+ Parameter { name: "mode"; type: "QQuickText::TextElideMode" }
+ }
+ Signal { name: "contentSizeChanged" }
+ Signal {
+ name: "contentWidthChanged"
+ Parameter { name: "contentWidth"; type: "double" }
+ }
+ Signal {
+ name: "contentHeightChanged"
+ Parameter { name: "contentHeight"; type: "double" }
+ }
+ Signal {
+ name: "lineHeightChanged"
+ Parameter { name: "lineHeight"; type: "double" }
+ }
+ Signal {
+ name: "lineHeightModeChanged"
+ Parameter { name: "mode"; type: "LineHeightMode" }
+ }
+ Signal {
+ name: "lineLaidOut"
+ Parameter { name: "line"; type: "QQuickTextLine"; isPointer: true }
+ }
+ Signal { name: "paddingChanged"; revision: 6 }
+ Signal { name: "topPaddingChanged"; revision: 6 }
+ Signal { name: "leftPaddingChanged"; revision: 6 }
+ Signal { name: "rightPaddingChanged"; revision: 6 }
+ Signal { name: "bottomPaddingChanged"; revision: 6 }
+ Signal { name: "fontInfoChanged"; revision: 9 }
+ Method { name: "q_updateLayout" }
+ Method { name: "triggerPreprocess" }
+ Method { name: "imageDownloadFinished" }
+ Method { name: "doLayout" }
+ Method { name: "forceLayout"; revision: 9 }
+ Method {
+ name: "linkAt"
+ revision: 3
+ type: "string"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component { file: "qquicktextdocument.h"; name: "QQuickTextDocument"; prototype: "QObject" }
+ Component {
+ file: "private/qquicktextedit_p.h"
+ name: "QQuickTextEdit"
+ prototype: "QQuickImplicitSizeItem"
+ exports: [
+ "QtQuick/TextEdit 2.0",
+ "QtQuick/TextEdit 2.1",
+ "QtQuick/TextEdit 2.10",
+ "QtQuick/TextEdit 2.11",
+ "QtQuick/TextEdit 2.2",
+ "QtQuick/TextEdit 2.3",
+ "QtQuick/TextEdit 2.4",
+ "QtQuick/TextEdit 2.6",
+ "QtQuick/TextEdit 2.7"
+ ]
+ exportMetaObjectRevisions: [0, 1, 10, 11, 2, 3, 4, 6, 7]
+ Enum {
+ name: "HAlignment"
+ values: [
+ "AlignLeft",
+ "AlignRight",
+ "AlignHCenter",
+ "AlignJustify"
+ ]
+ }
+ Enum {
+ name: "VAlignment"
+ values: ["AlignTop", "AlignBottom", "AlignVCenter"]
+ }
+ Enum {
+ name: "TextFormat"
+ values: ["PlainText", "RichText", "AutoText", "MarkdownText"]
+ }
+ Enum {
+ name: "WrapMode"
+ values: [
+ "NoWrap",
+ "WordWrap",
+ "WrapAnywhere",
+ "WrapAtWordBoundaryOrAnywhere",
+ "Wrap"
+ ]
+ }
+ Enum {
+ name: "SelectionMode"
+ values: ["SelectCharacters", "SelectWords"]
+ }
+ Enum {
+ name: "RenderType"
+ values: ["QtRendering", "NativeRendering"]
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "effectiveHorizontalAlignment"; type: "HAlignment"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "wrapMode"; type: "WrapMode" }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "paintedWidth"; type: "double"; isReadonly: true }
+ Property { name: "paintedHeight"; type: "double"; isReadonly: true }
+ Property { name: "textFormat"; type: "TextFormat" }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "cursorVisible"; type: "bool" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "overwriteMode"; type: "bool" }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "persistentSelection"; type: "bool" }
+ Property { name: "textMargin"; type: "double" }
+ Property { name: "inputMethodHints"; type: "Qt::InputMethodHints" }
+ Property { name: "selectByKeyboard"; revision: 1; type: "bool" }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "mouseSelectionMode"; type: "SelectionMode" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "renderType"; type: "RenderType" }
+ Property {
+ name: "textDocument"
+ revision: 1
+ type: "QQuickTextDocument"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "hoveredLink"; revision: 2; type: "string"; isReadonly: true }
+ Property { name: "padding"; revision: 6; type: "double" }
+ Property { name: "topPadding"; revision: 6; type: "double" }
+ Property { name: "leftPadding"; revision: 6; type: "double" }
+ Property { name: "rightPadding"; revision: 6; type: "double" }
+ Property { name: "bottomPadding"; revision: 6; type: "double" }
+ Property { name: "preeditText"; revision: 7; type: "string"; isReadonly: true }
+ Property { name: "tabStopDistance"; revision: 10; type: "double" }
+ Signal { name: "preeditTextChanged"; revision: 7 }
+ Signal { name: "contentSizeChanged" }
+ Signal {
+ name: "colorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Signal {
+ name: "selectionColorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Signal {
+ name: "selectedTextColorChanged"
+ Parameter { name: "color"; type: "QColor" }
+ }
+ Signal {
+ name: "fontChanged"
+ Parameter { name: "font"; type: "QFont" }
+ }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickTextEdit::HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickTextEdit::VAlignment" }
+ }
+ Signal {
+ name: "textFormatChanged"
+ Parameter { name: "textFormat"; type: "QQuickTextEdit::TextFormat" }
+ }
+ Signal {
+ name: "readOnlyChanged"
+ Parameter { name: "isReadOnly"; type: "bool" }
+ }
+ Signal {
+ name: "cursorVisibleChanged"
+ Parameter { name: "isCursorVisible"; type: "bool" }
+ }
+ Signal {
+ name: "overwriteModeChanged"
+ Parameter { name: "overwriteMode"; type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnPressChanged"
+ Parameter { name: "activeFocusOnPressed"; type: "bool" }
+ }
+ Signal {
+ name: "persistentSelectionChanged"
+ Parameter { name: "isPersistentSelection"; type: "bool" }
+ }
+ Signal {
+ name: "textMarginChanged"
+ Parameter { name: "textMargin"; type: "double" }
+ }
+ Signal {
+ name: "selectByKeyboardChanged"
+ revision: 1
+ Parameter { name: "selectByKeyboard"; type: "bool" }
+ }
+ Signal {
+ name: "selectByMouseChanged"
+ Parameter { name: "selectByMouse"; type: "bool" }
+ }
+ Signal {
+ name: "mouseSelectionModeChanged"
+ Parameter { name: "mode"; type: "QQuickTextEdit::SelectionMode" }
+ }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ revision: 2
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal { name: "editingFinished"; revision: 6 }
+ Signal { name: "paddingChanged"; revision: 6 }
+ Signal { name: "topPaddingChanged"; revision: 6 }
+ Signal { name: "leftPaddingChanged"; revision: 6 }
+ Signal { name: "rightPaddingChanged"; revision: 6 }
+ Signal { name: "bottomPaddingChanged"; revision: 6 }
+ Signal {
+ name: "tabStopDistanceChanged"
+ revision: 10
+ Parameter { name: "distance"; type: "double" }
+ }
+ Method { name: "selectAll" }
+ Method { name: "selectWord" }
+ Method {
+ name: "select"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method { name: "deselect" }
+ Method {
+ name: "isRightToLeft"
+ type: "bool"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method { name: "cut" }
+ Method { name: "copy" }
+ Method { name: "paste" }
+ Method { name: "undo" }
+ Method { name: "redo" }
+ Method {
+ name: "insert"
+ Parameter { name: "position"; type: "int" }
+ Parameter { name: "text"; type: "string" }
+ }
+ Method {
+ name: "remove"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method {
+ name: "append"
+ revision: 2
+ Parameter { name: "text"; type: "string" }
+ }
+ Method { name: "clear"; revision: 7 }
+ Method { name: "q_textChanged" }
+ Method {
+ name: "q_contentsChange"
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ Parameter { type: "int" }
+ }
+ Method { name: "updateSelection" }
+ Method { name: "moveCursorDelegate" }
+ Method { name: "createCursor" }
+ Method { name: "q_canPasteChanged" }
+ Method { name: "updateWholeDocument" }
+ Method {
+ name: "invalidateBlock"
+ Parameter { name: "block"; type: "QTextBlock" }
+ }
+ Method { name: "updateCursor" }
+ Method {
+ name: "q_linkHovered"
+ Parameter { name: "link"; type: "string" }
+ }
+ Method {
+ name: "q_markerHovered"
+ Parameter { name: "hovered"; type: "bool" }
+ }
+ Method { name: "q_updateAlignment" }
+ Method { name: "updateSize" }
+ Method { name: "triggerPreprocess" }
+ Method {
+ name: "inputMethodQuery"
+ revision: 4
+ type: "QVariant"
+ Parameter { name: "query"; type: "Qt::InputMethodQuery" }
+ Parameter { name: "argument"; type: "QVariant" }
+ }
+ Method {
+ name: "positionToRectangle"
+ type: "QRectF"
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "positionAt"
+ type: "int"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ Parameter { name: "pos"; type: "int" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ Parameter { name: "pos"; type: "int" }
+ Parameter { name: "mode"; type: "SelectionMode" }
+ }
+ Method {
+ name: "getText"
+ type: "string"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method {
+ name: "getFormattedText"
+ type: "string"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method {
+ name: "linkAt"
+ revision: 3
+ type: "string"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ file: "private/qquicktextinput_p.h"
+ name: "QQuickTextInput"
+ prototype: "QQuickImplicitSizeItem"
+ exports: [
+ "QtQuick/TextInput 2.0",
+ "QtQuick/TextInput 2.1",
+ "QtQuick/TextInput 2.11",
+ "QtQuick/TextInput 2.2",
+ "QtQuick/TextInput 2.4",
+ "QtQuick/TextInput 2.6",
+ "QtQuick/TextInput 2.7",
+ "QtQuick/TextInput 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 1, 11, 2, 4, 6, 7, 9]
+ Enum {
+ name: "EchoMode"
+ values: ["Normal", "NoEcho", "Password", "PasswordEchoOnEdit"]
+ }
+ Enum {
+ name: "HAlignment"
+ values: ["AlignLeft", "AlignRight", "AlignHCenter"]
+ }
+ Enum {
+ name: "VAlignment"
+ values: ["AlignTop", "AlignBottom", "AlignVCenter"]
+ }
+ Enum {
+ name: "WrapMode"
+ values: [
+ "NoWrap",
+ "WordWrap",
+ "WrapAnywhere",
+ "WrapAtWordBoundaryOrAnywhere",
+ "Wrap"
+ ]
+ }
+ Enum {
+ name: "SelectionMode"
+ values: ["SelectCharacters", "SelectWords"]
+ }
+ Enum {
+ name: "CursorPosition"
+ values: ["CursorBetweenCharacters", "CursorOnCharacter"]
+ }
+ Enum {
+ name: "RenderType"
+ values: ["QtRendering", "NativeRendering"]
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "effectiveHorizontalAlignment"; type: "HAlignment"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "wrapMode"; type: "WrapMode" }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "cursorVisible"; type: "bool" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "overwriteMode"; type: "bool" }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "maximumLength"; type: "int" }
+ Property { name: "validator"; type: "QValidator"; isPointer: true }
+ Property { name: "inputMask"; type: "string" }
+ Property { name: "inputMethodHints"; type: "Qt::InputMethodHints" }
+ Property { name: "acceptableInput"; type: "bool"; isReadonly: true }
+ Property { name: "echoMode"; type: "EchoMode" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "passwordCharacter"; type: "string" }
+ Property { name: "passwordMaskDelay"; revision: 4; type: "int" }
+ Property { name: "displayText"; type: "string"; isReadonly: true }
+ Property { name: "preeditText"; revision: 7; type: "string"; isReadonly: true }
+ Property { name: "autoScroll"; type: "bool" }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "mouseSelectionMode"; type: "SelectionMode" }
+ Property { name: "persistentSelection"; type: "bool" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "renderType"; type: "RenderType" }
+ Property { name: "padding"; revision: 6; type: "double" }
+ Property { name: "topPadding"; revision: 6; type: "double" }
+ Property { name: "leftPadding"; revision: 6; type: "double" }
+ Property { name: "rightPadding"; revision: 6; type: "double" }
+ Property { name: "bottomPadding"; revision: 6; type: "double" }
+ Signal { name: "accepted" }
+ Signal { name: "editingFinished"; revision: 2 }
+ Signal { name: "textEdited"; revision: 9 }
+ Signal {
+ name: "fontChanged"
+ Parameter { name: "font"; type: "QFont" }
+ }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickTextInput::HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickTextInput::VAlignment" }
+ }
+ Signal {
+ name: "readOnlyChanged"
+ Parameter { name: "isReadOnly"; type: "bool" }
+ }
+ Signal {
+ name: "cursorVisibleChanged"
+ Parameter { name: "isCursorVisible"; type: "bool" }
+ }
+ Signal {
+ name: "overwriteModeChanged"
+ Parameter { name: "overwriteMode"; type: "bool" }
+ }
+ Signal {
+ name: "maximumLengthChanged"
+ Parameter { name: "maximumLength"; type: "int" }
+ }
+ Signal {
+ name: "inputMaskChanged"
+ Parameter { name: "inputMask"; type: "string" }
+ }
+ Signal {
+ name: "echoModeChanged"
+ Parameter { name: "echoMode"; type: "QQuickTextInput::EchoMode" }
+ }
+ Signal {
+ name: "passwordMaskDelayChanged"
+ revision: 4
+ Parameter { name: "delay"; type: "int" }
+ }
+ Signal { name: "preeditTextChanged"; revision: 7 }
+ Signal {
+ name: "activeFocusOnPressChanged"
+ Parameter { name: "activeFocusOnPress"; type: "bool" }
+ }
+ Signal {
+ name: "autoScrollChanged"
+ Parameter { name: "autoScroll"; type: "bool" }
+ }
+ Signal {
+ name: "selectByMouseChanged"
+ Parameter { name: "selectByMouse"; type: "bool" }
+ }
+ Signal {
+ name: "mouseSelectionModeChanged"
+ Parameter { name: "mode"; type: "QQuickTextInput::SelectionMode" }
+ }
+ Signal { name: "contentSizeChanged" }
+ Signal { name: "paddingChanged"; revision: 6 }
+ Signal { name: "topPaddingChanged"; revision: 6 }
+ Signal { name: "leftPaddingChanged"; revision: 6 }
+ Signal { name: "rightPaddingChanged"; revision: 6 }
+ Signal { name: "bottomPaddingChanged"; revision: 6 }
+ Method { name: "selectAll" }
+ Method { name: "selectWord" }
+ Method {
+ name: "select"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method { name: "deselect" }
+ Method {
+ name: "isRightToLeft"
+ type: "bool"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method { name: "cut" }
+ Method { name: "copy" }
+ Method { name: "paste" }
+ Method { name: "undo" }
+ Method { name: "redo" }
+ Method {
+ name: "insert"
+ Parameter { name: "position"; type: "int" }
+ Parameter { name: "text"; type: "string" }
+ }
+ Method {
+ name: "remove"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ Method {
+ name: "ensureVisible"
+ revision: 4
+ Parameter { name: "position"; type: "int" }
+ }
+ Method { name: "clear"; revision: 7 }
+ Method { name: "selectionChanged" }
+ Method { name: "createCursor" }
+ Method {
+ name: "updateCursorRectangle"
+ Parameter { name: "scroll"; type: "bool" }
+ }
+ Method { name: "updateCursorRectangle" }
+ Method { name: "q_canPasteChanged" }
+ Method { name: "q_updateAlignment" }
+ Method { name: "triggerPreprocess" }
+ Method { name: "q_validatorChanged" }
+ Method {
+ name: "positionAt"
+ Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "positionToRectangle"
+ type: "QRectF"
+ Parameter { name: "pos"; type: "int" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ Parameter { name: "pos"; type: "int" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ Parameter { name: "pos"; type: "int" }
+ Parameter { name: "mode"; type: "SelectionMode" }
+ }
+ Method {
+ name: "inputMethodQuery"
+ revision: 4
+ type: "QVariant"
+ Parameter { name: "query"; type: "Qt::InputMethodQuery" }
+ Parameter { name: "argument"; type: "QVariant" }
+ }
+ Method {
+ name: "getText"
+ type: "string"
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ }
+ }
+ Component {
+ file: "private/qquicktext_p.h"
+ name: "QQuickTextLine"
+ prototype: "QObject"
+ Property { name: "number"; type: "int"; isReadonly: true }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "implicitWidth"; revision: 15; type: "double"; isReadonly: true }
+ Property { name: "isLast"; revision: 15; type: "bool"; isReadonly: true }
+ }
+ Component {
+ file: "private/qquicktextmetrics_p.h"
+ name: "QQuickTextMetrics"
+ prototype: "QObject"
+ exports: ["QtQuick/TextMetrics 2.4"]
+ exportMetaObjectRevisions: [4]
+ Property { name: "font"; type: "QFont" }
+ Property { name: "text"; type: "string" }
+ Property { name: "advanceWidth"; type: "double"; isReadonly: true }
+ Property { name: "boundingRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "width"; type: "double"; isReadonly: true }
+ Property { name: "height"; type: "double"; isReadonly: true }
+ Property { name: "tightBoundingRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "elidedText"; type: "string"; isReadonly: true }
+ Property { name: "elide"; type: "Qt::TextElideMode" }
+ Property { name: "elideWidth"; type: "double" }
+ Signal { name: "metricsChanged" }
+ }
+ Component {
+ file: "private/qquickmultipointtoucharea_p.h"
+ name: "QQuickTouchPoint"
+ prototype: "QObject"
+ exports: ["QtQuick/TouchPoint 2.0", "QtQuick/TouchPoint 2.9"]
+ exportMetaObjectRevisions: [0, 9]
+ Property { name: "pointId"; type: "int"; isReadonly: true }
+ Property { name: "uniqueId"; revision: 9; type: "QPointingDeviceUniqueId"; isReadonly: true }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "ellipseDiameters"; revision: 9; type: "QSizeF"; isReadonly: true }
+ Property { name: "pressure"; type: "double"; isReadonly: true }
+ Property { name: "rotation"; revision: 9; type: "double"; isReadonly: true }
+ Property { name: "velocity"; type: "QVector2D"; isReadonly: true }
+ Property { name: "area"; type: "QRectF"; isReadonly: true }
+ Property { name: "startX"; type: "double"; isReadonly: true }
+ Property { name: "startY"; type: "double"; isReadonly: true }
+ Property { name: "previousX"; type: "double"; isReadonly: true }
+ Property { name: "previousY"; type: "double"; isReadonly: true }
+ Property { name: "sceneX"; type: "double"; isReadonly: true }
+ Property { name: "sceneY"; type: "double"; isReadonly: true }
+ Signal { name: "uniqueIdChanged"; revision: 9 }
+ Signal { name: "ellipseDiametersChanged"; revision: 9 }
+ Signal { name: "rotationChanged"; revision: 9 }
+ }
+ Component {
+ file: "qquickitem.h"
+ name: "QQuickTransform"
+ prototype: "QObject"
+ Method { name: "update" }
+ }
+ Component {
+ file: "private/qquicktransition_p.h"
+ name: "QQuickTransition"
+ defaultProperty: "animations"
+ prototype: "QObject"
+ exports: ["QtQuick/Transition 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "from"; type: "string" }
+ Property { name: "to"; type: "string" }
+ Property { name: "reversible"; type: "bool" }
+ Property { name: "running"; type: "bool"; isReadonly: true }
+ Property { name: "animations"; type: "QQuickAbstractAnimation"; isList: true; isReadonly: true }
+ Property { name: "enabled"; type: "bool" }
+ }
+ Component {
+ file: "private/qquicktranslate_p.h"
+ name: "QQuickTranslate"
+ prototype: "QQuickTransform"
+ exports: ["QtQuick/Translate 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickUniformAnimator"
+ prototype: "QQuickAnimator"
+ exports: [
+ "QtQuick/UniformAnimator 2.12",
+ "QtQuick/UniformAnimator 2.2"
+ ]
+ exportMetaObjectRevisions: [12, 2]
+ Property { name: "uniform"; type: "string" }
+ Signal {
+ name: "uniformChanged"
+ Parameter { type: "string" }
+ }
+ }
+ Component {
+ file: "private/qquickanimation_p.h"
+ name: "QQuickVector3dAnimation"
+ prototype: "QQuickPropertyAnimation"
+ exports: [
+ "QtQuick/Vector3dAnimation 2.0",
+ "QtQuick/Vector3dAnimation 2.12"
+ ]
+ exportMetaObjectRevisions: [0, 12]
+ Property { name: "from"; type: "QVector3D" }
+ Property { name: "to"; type: "QVector3D" }
+ }
+ Component {
+ file: "private/qquicklistview_p.h"
+ name: "QQuickViewSection"
+ prototype: "QObject"
+ exports: ["QtQuick/ViewSection 2.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "SectionCriteria"
+ values: ["FullString", "FirstCharacter"]
+ }
+ Enum {
+ name: "LabelPositioning"
+ values: ["InlineLabels", "CurrentLabelAtStart", "NextLabelAtEnd"]
+ }
+ Property { name: "property"; type: "string" }
+ Property { name: "criteria"; type: "SectionCriteria" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "labelPositioning"; type: "int" }
+ Signal { name: "sectionsChanged" }
+ }
+ Component {
+ file: "private/qquickitemviewtransition_p.h"
+ name: "QQuickViewTransitionAttached"
+ prototype: "QObject"
+ exports: ["QtQuick/ViewTransition 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickViewTransitionAttached"
+ Property { name: "index"; type: "int"; isReadonly: true }
+ Property { name: "item"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "destination"; type: "QPointF"; isReadonly: true }
+ Property { name: "targetIndexes"; type: "QList"; isReadonly: true }
+ Property { name: "targetItems"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ file: "private/qquickevents_p_p.h"
+ name: "QQuickWheelEvent"
+ prototype: "QObject"
+ Property { name: "x"; type: "double"; isReadonly: true }
+ Property { name: "y"; type: "double"; isReadonly: true }
+ Property { name: "angleDelta"; type: "QPoint"; isReadonly: true }
+ Property { name: "pixelDelta"; type: "QPoint"; isReadonly: true }
+ Property { name: "buttons"; type: "int"; isReadonly: true }
+ Property { name: "modifiers"; type: "int"; isReadonly: true }
+ Property { name: "inverted"; type: "bool"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ }
+ Component {
+ file: "private/qquickwheelhandler_p.h"
+ name: "QQuickWheelHandler"
+ prototype: "QQuickSinglePointHandler"
+ exports: ["QtQuick/WheelHandler 2.14", "QtQuick/WheelHandler 2.15"]
+ exportMetaObjectRevisions: [14, 15]
+ Property { name: "orientation"; type: "Qt::Orientation" }
+ Property { name: "invertible"; type: "bool" }
+ Property { name: "activeTimeout"; type: "double" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "rotationScale"; type: "double" }
+ Property { name: "property"; type: "string" }
+ Property { name: "targetScaleMultiplier"; type: "double" }
+ Property { name: "targetTransformAroundCursor"; type: "bool" }
+ Signal {
+ name: "wheel"
+ Parameter { name: "event"; type: "QQuickPointerScrollEvent"; isPointer: true }
+ }
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickXAnimator"
+ prototype: "QQuickAnimator"
+ exports: ["QtQuick/XAnimator 2.12", "QtQuick/XAnimator 2.2"]
+ exportMetaObjectRevisions: [12, 2]
+ }
+ Component {
+ file: "private/qquickanimator_p.h"
+ name: "QQuickYAnimator"
+ prototype: "QQuickAnimator"
+ exports: ["QtQuick/YAnimator 2.12", "QtQuick/YAnimator 2.2"]
+ exportMetaObjectRevisions: [12, 2]
+ }
+ Component {
+ file: "private/qquickforeignutils_p.h"
+ name: "QRegExpValidator"
+ prototype: "QValidator"
+ exports: ["QtQuick/RegExpValidator 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "regExp"; type: "QRegExp" }
+ Signal {
+ name: "regExpChanged"
+ Parameter { name: "regExp"; type: "QRegExp" }
+ }
+ }
+ Component {
+ file: "private/qquickforeignutils_p.h"
+ name: "QRegularExpressionValidator"
+ prototype: "QValidator"
+ exports: ["QtQuick/RegularExpressionValidator 2.14"]
+ exportMetaObjectRevisions: [14]
+ Property { name: "regularExpression"; type: "QRegularExpression" }
+ Signal {
+ name: "regularExpressionChanged"
+ Parameter { name: "re"; type: "QRegularExpression" }
+ }
+ Method {
+ name: "setRegularExpression"
+ Parameter { name: "re"; type: "QRegularExpression" }
+ }
+ }
+ Component {
+ file: "private/qquickforeignutils_p.h"
+ name: "QValidator"
+ prototype: "QObject"
+ Enum {
+ name: "State"
+ values: ["Invalid", "Intermediate", "Acceptable"]
+ }
+ Signal { name: "changed" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qmldir
new file mode 100644
index 00000000..e4e7f5d0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qmldir
@@ -0,0 +1,6 @@
+module QtQuick
+plugin qtquick2plugin
+classname QtQuick2Plugin
+typeinfo plugins.qmltypes
+depends QtQml 2.15
+designersupported
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qtquick2plugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qtquick2plugin.dll
new file mode 100644
index 00000000..7dfde08d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick.2/qtquick2plugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/AbstractButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/AbstractButton.qml
new file mode 100644
index 00000000..50ddb933
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/AbstractButton.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.AbstractButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Action.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Action.qml
new file mode 100644
index 00000000..996e9086
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Action.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Action { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ActionGroup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ActionGroup.qml
new file mode 100644
index 00000000..89e72c8f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ActionGroup.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ActionGroup { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ApplicationWindow.qml
new file mode 100644
index 00000000..4686a298
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ApplicationWindow.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ApplicationWindow {
+ id: window
+
+ color: palette.window
+
+ overlay.modal: Rectangle {
+ color: Color.transparent(window.palette.shadow, 0.5)
+ }
+
+ overlay.modeless: Rectangle {
+ color: Color.transparent(window.palette.shadow, 0.12)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/BusyIndicator.qml
new file mode 100644
index 00000000..ff5c191c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/BusyIndicator.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.BusyIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ contentItem: BusyIndicatorImpl {
+ implicitWidth: 48
+ implicitHeight: 48
+
+ pen: control.palette.dark
+ fill: control.palette.dark
+
+ running: control.running
+ opacity: control.running ? 1 : 0
+ Behavior on opacity { OpacityAnimator { duration: 250 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Button.qml
new file mode 100644
index 00000000..a9e7fce6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Button.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Button {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ horizontalPadding: padding + 2
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.checked || control.highlighted ? control.palette.brightText :
+ control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.checked || control.highlighted ? control.palette.brightText :
+ control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ visible: !control.flat || control.down || control.checked || control.highlighted
+ color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button,
+ control.palette.mid, control.down ? 0.5 : 0.0)
+ border.color: control.palette.highlight
+ border.width: control.visualFocus ? 2 : 0
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ButtonGroup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ButtonGroup.qml
new file mode 100644
index 00000000..cf0355ba
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ButtonGroup.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ButtonGroup { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckBox.qml
new file mode 100644
index 00000000..b1f50ed1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckBox.qml
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.CheckBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ // keep in sync with CheckDelegate.qml (shared CheckIndicator.qml was removed for performance reasons)
+ indicator: Rectangle {
+ implicitWidth: 28
+ implicitHeight: 28
+
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ color: control.down ? control.palette.light : control.palette.base
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ defaultColor: "#353637"
+ color: control.palette.text
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png"
+ visible: control.checkState === Qt.Checked
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 16
+ height: 3
+ color: control.palette.text
+ visible: control.checkState === Qt.PartiallyChecked
+ }
+ }
+
+ contentItem: CheckLabel {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckDelegate.qml
new file mode 100644
index 00000000..71b390ac
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/CheckDelegate.qml
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.CheckDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 12
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ // keep in sync with CheckBox.qml (shared CheckIndicator.qml was removed for performance reasons)
+ indicator: Rectangle {
+ implicitWidth: 28
+ implicitHeight: 28
+
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ color: control.down ? control.palette.light : control.palette.base
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ defaultColor: "#353637"
+ color: control.palette.text
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png"
+ visible: control.checkState === Qt.Checked
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 16
+ height: 3
+ color: control.palette.text
+ visible: control.checkState === Qt.PartiallyChecked
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ visible: control.down || control.highlighted
+ color: control.down ? control.palette.midlight : control.palette.light
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ComboBox.qml
new file mode 100644
index 00000000..e9f93d66
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ComboBox.qml
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+
+T.ComboBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+ rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+
+ delegate: ItemDelegate {
+ width: ListView.view.width
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
+ palette.text: control.palette.text
+ palette.highlightedText: control.palette.highlightedText
+ font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
+ highlighted: control.highlightedIndex === index
+ hoverEnabled: control.hoverEnabled
+ }
+
+ indicator: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+ color: control.palette.dark
+ defaultColor: "#353637"
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/double-arrow.png"
+ opacity: enabled ? 1 : 0.3
+ }
+
+ contentItem: T.TextField {
+ leftPadding: !control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1
+ rightPadding: control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1
+ topPadding: 6 - control.padding
+ bottomPadding: 6 - control.padding
+
+ text: control.editable ? control.editText : control.displayText
+
+ enabled: control.editable
+ autoScroll: control.editable
+ readOnly: control.down
+ inputMethodHints: control.inputMethodHints
+ validator: control.validator
+ selectByMouse: control.selectTextByMouse
+
+ font: control.font
+ color: control.editable ? control.palette.text : control.palette.buttonText
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ verticalAlignment: Text.AlignVCenter
+
+ background: Rectangle {
+ visible: control.enabled && control.editable && !control.flat
+ border.width: parent && parent.activeFocus ? 2 : 1
+ border.color: parent && parent.activeFocus ? control.palette.highlight : control.palette.button
+ color: control.palette.base
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 140
+ implicitHeight: 40
+
+ color: control.down ? control.palette.mid : control.palette.button
+ border.color: control.palette.highlight
+ border.width: !control.editable && control.visualFocus ? 2 : 0
+ visible: !control.flat || control.down
+ }
+
+ popup: T.Popup {
+ y: control.height
+ width: control.width
+ height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
+ topMargin: 6
+ bottomMargin: 6
+
+ contentItem: ListView {
+ clip: true
+ implicitHeight: contentHeight
+ model: control.delegateModel
+ currentIndex: control.highlightedIndex
+ highlightMoveDuration: 0
+
+ Rectangle {
+ z: 10
+ width: parent.width
+ height: parent.height
+ color: "transparent"
+ border.color: control.palette.mid
+ }
+
+ T.ScrollIndicator.vertical: ScrollIndicator { }
+ }
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Container.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Container.qml
new file mode 100644
index 00000000..83ab957d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Container.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Container {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Control.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Control.qml
new file mode 100644
index 00000000..a963a563
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Control.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Control {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DelayButton.qml
new file mode 100644
index 00000000..1c545a71
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DelayButton.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.DelayButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ horizontalPadding: padding + 2
+
+ transition: Transition {
+ NumberAnimation {
+ duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
+ }
+ }
+
+ contentItem: ItemGroup {
+ ClippedText {
+ clip: control.progress > 0
+ clipX: -control.leftPadding + control.progress * control.width
+ clipWidth: (1.0 - control.progress) * control.width
+ visible: control.progress < 1
+
+ text: control.text
+ font: control.font
+ opacity: enabled ? 1 : 0.3
+ color: control.palette.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ ClippedText {
+ clip: control.progress > 0
+ clipX: -control.leftPadding
+ clipWidth: control.progress * control.width
+ visible: control.progress > 0
+
+ text: control.text
+ font: control.font
+ opacity: enabled ? 1 : 0.3
+ color: control.palette.brightText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ color: Color.blend(control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0)
+ border.color: control.palette.highlight
+ border.width: control.visualFocus ? 2 : 0
+
+ PaddedRectangle {
+ padding: control.visualFocus ? 2 : 0
+ width: control.progress * parent.width
+ height: parent.height
+ color: Color.blend(control.palette.dark, control.palette.mid, control.down ? 0.5 : 0.0)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dial.qml
new file mode 100644
index 00000000..cc4618a5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dial.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Dial {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 184 // ### remove 184 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 184 // ### remove 184 in Qt 6
+
+ background: DialImpl {
+ implicitWidth: 184
+ implicitHeight: 184
+ color: control.visualFocus ? control.palette.highlight : control.palette.dark
+ progress: control.position
+ opacity: control.enabled ? 1 : 0.3
+ }
+
+ handle: ColorImage {
+ x: control.background.x + control.background.width / 2 - control.handle.width / 2
+ y: control.background.y + control.background.height / 2 - control.handle.height / 2
+ width: 14
+ height: 10
+ defaultColor: "#353637"
+ color: control.visualFocus ? control.palette.highlight : control.palette.dark
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/dial-indicator.png"
+ antialiasing: true
+ opacity: control.enabled ? 1 : 0.3
+ transform: [
+ Translate {
+ y: -Math.min(control.background.width, control.background.height) * 0.4 + control.handle.height / 2
+ },
+ Rotation {
+ angle: control.angle
+ origin.x: control.handle.width / 2
+ origin.y: control.handle.height / 2
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dialog.qml
new file mode 100644
index 00000000..6c2e4b1b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Dialog.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.Dialog {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.palette.window
+ border.color: control.palette.dark
+ }
+
+ header: Label {
+ text: control.title
+ visible: control.title
+ elide: Label.ElideRight
+ font.bold: true
+ padding: 12
+ background: Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 1
+ color: control.palette.window
+ }
+ }
+
+ footer: DialogButtonBox {
+ visible: count > 0
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.5)
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.12)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DialogButtonBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DialogButtonBox.qml
new file mode 100644
index 00000000..3c9d5b48
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/DialogButtonBox.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.DialogButtonBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ (control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+ contentWidth: contentItem.contentWidth
+
+ spacing: 1
+ padding: 12
+ alignment: count === 1 ? Qt.AlignRight : undefined
+
+ delegate: Button {
+ width: control.count === 1 ? control.availableWidth / 2 : undefined
+ }
+
+ contentItem: ListView {
+ model: control.contentModel
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ snapMode: ListView.SnapToItem
+ }
+
+ background: Rectangle {
+ implicitHeight: 40
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Drawer.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Drawer.qml
new file mode 100644
index 00000000..17465fd4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Drawer.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Drawer {
+ id: control
+
+ parent: T.Overlay.overlay
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: control.edge === Qt.BottomEdge
+ leftPadding: control.edge === Qt.RightEdge
+ rightPadding: control.edge === Qt.LeftEdge
+ bottomPadding: control.edge === Qt.TopEdge
+
+ enter: Transition { SmoothedAnimation { velocity: 5 } }
+ exit: Transition { SmoothedAnimation { velocity: 5 } }
+
+ background: Rectangle {
+ color: control.palette.window
+ Rectangle {
+ readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
+ width: horizontal ? 1 : parent.width
+ height: horizontal ? parent.height : 1
+ color: control.palette.dark
+ x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
+ y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.5)
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.12)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Frame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Frame.qml
new file mode 100644
index 00000000..2fe46104
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Frame.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Frame {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: "transparent"
+ border.color: control.palette.mid
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ApplicationWindow.qml
new file mode 100644
index 00000000..9079403e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ApplicationWindow.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.2
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ApplicationWindow {
+ id: window
+
+ color: palette.window
+
+ overlay.modal: Rectangle {
+ color: Fusion.topShadow
+ }
+
+ overlay.modeless: Rectangle {
+ color: Fusion.topShadow
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/BusyIndicator.qml
new file mode 100644
index 00000000..554c3368
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/BusyIndicator.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.BusyIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ contentItem: BusyIndicatorImpl {
+ implicitWidth: 28
+ implicitHeight: 28
+ color: control.palette.text
+
+ running: control.running
+ opacity: control.running ? 1 : 0
+ Behavior on opacity { OpacityAnimator { duration: 250 } }
+
+ RotationAnimator on rotation {
+ running: control.running || contentItem.visible
+ from: 0
+ to: 360
+ duration: 1000
+ loops: Animation.Infinite
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Button.qml
new file mode 100644
index 00000000..7822634d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Button.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Button {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 4
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: ButtonPanel {
+ implicitWidth: 80
+ implicitHeight: 24
+
+ control: control
+ visible: !control.flat || control.down || control.checked || control.highlighted || control.visualFocus || control.hovered
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ButtonPanel.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ButtonPanel.qml
new file mode 100644
index 00000000..125aa2f3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ButtonPanel.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: panel
+
+ property Item control
+ property bool highlighted: control.highlighted
+
+ visible: !control.flat || control.down || control.checked
+
+ color: Fusion.buttonColor(control.palette, panel.highlighted, control.down || control.checked, control.hovered)
+ gradient: control.down || control.checked ? null : buttonGradient
+
+ Gradient {
+ id: buttonGradient
+ GradientStop {
+ position: 0
+ color: Fusion.gradientStart(Fusion.buttonColor(panel.control.palette, panel.highlighted, panel.control.down, panel.control.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.gradientStop(Fusion.buttonColor(panel.control.palette, panel.highlighted, panel.control.down, panel.control.hovered))
+ }
+ }
+
+ radius: 2
+ border.color: Fusion.buttonOutline(control.palette, panel.highlighted || control.visualFocus, control.enabled)
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ border.color: Fusion.innerContrastLine
+ color: "transparent"
+ radius: 2
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckBox.qml
new file mode 100644
index 00000000..edb4c77f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckBox.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.CheckBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckDelegate.qml
new file mode 100644
index 00000000..1b97b1fd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckDelegate.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.CheckDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ indicator: CheckIndicator {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ control: control
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
+ : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckIndicator.qml
new file mode 100644
index 00000000..7dcfee30
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/CheckIndicator.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: indicator
+
+ property Item control
+ readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
+ readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
+
+ implicitWidth: 14
+ implicitHeight: 14
+
+ color: control.down ? indicator.pressedColor : control.palette.base
+ border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
+ : Qt.lighter(Fusion.outline(control.palette), 1.1)
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: 1
+ color: Fusion.topShadow
+ visible: indicator.control.enabled && !indicator.control.down
+ }
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ color: Color.transparent(indicator.checkMarkColor, 210 / 255)
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/checkmark.png"
+ visible: indicator.control.checkState === Qt.Checked || (indicator.control.checked && indicator.control.checkState === undefined)
+ }
+
+ Rectangle {
+ x: 3; y: 3
+ width: parent.width - 6
+ height: parent.width - 6
+
+ visible: indicator.control.checkState === Qt.PartiallyChecked
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Color.transparent(indicator.checkMarkColor, 80 / 255)
+ }
+ GradientStop {
+ position: 1
+ color: Color.transparent(indicator.checkMarkColor, 140 / 255)
+ }
+ }
+ border.color: Color.transparent(indicator.checkMarkColor, 180 / 255)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ComboBox.qml
new file mode 100644
index 00000000..5e26f90e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ComboBox.qml
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Window 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Controls.Fusion 2.15
+import QtQuick.Controls.Fusion.impl 2.15
+
+T.ComboBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+ rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+
+ delegate: MenuItem {
+ width: ListView.view.width
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
+ font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
+ highlighted: control.highlightedIndex === index
+ hoverEnabled: control.hoverEnabled
+ }
+
+ indicator: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+ color: control.editable ? control.palette.text : control.palette.buttonText
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ width: 20
+ fillMode: Image.Pad
+ }
+
+ contentItem: T.TextField {
+ topPadding: 4
+ leftPadding: 4 - control.padding
+ rightPadding: 4 - control.padding
+ bottomPadding: 4
+
+ text: control.editable ? control.editText : control.displayText
+
+ enabled: control.editable
+ autoScroll: control.editable
+ readOnly: control.down
+ inputMethodHints: control.inputMethodHints
+ validator: control.validator
+ selectByMouse: control.selectTextByMouse
+
+ font: control.font
+ color: control.editable ? control.palette.text : control.palette.buttonText
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ verticalAlignment: Text.AlignVCenter
+
+ background: PaddedRectangle {
+ clip: true
+ radius: 2
+ padding: 1
+ leftPadding: control.mirrored ? -2 : padding
+ rightPadding: !control.mirrored ? -2 : padding
+ color: control.palette.base
+ visible: control.editable && !control.flat
+
+ Rectangle {
+ x: parent.width - width
+ y: 1
+ width: 1
+ height: parent.height - 2
+ color: Fusion.buttonOutline(control.palette, control.activeFocus, control.enabled)
+ }
+
+ Rectangle {
+ x: 1
+ y: 1
+ width: parent.width - 3
+ height: 1
+ color: Fusion.topShadow
+ }
+ }
+
+ Rectangle {
+ x: 1 - control.leftPadding
+ y: 1
+ width: control.width - 2
+ height: control.height - 2
+ color: "transparent"
+ border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
+ visible: control.activeFocus
+ radius: 1.7
+ }
+ }
+
+ background: ButtonPanel {
+ implicitWidth: 120
+ implicitHeight: 24
+
+ control: control
+ visible: !control.flat || control.down
+ // ### TODO: fix control.contentItem.activeFocus
+ highlighted: control.visualFocus || control.contentItem.activeFocus
+ }
+
+ popup: T.Popup {
+ width: control.width
+ height: Math.min(contentItem.implicitHeight + 2, control.Window.height - topMargin - bottomMargin)
+ topMargin: 6
+ bottomMargin: 6
+ palette: control.palette
+ padding: 1
+
+ contentItem: ListView {
+ clip: true
+ implicitHeight: contentHeight
+ model: control.delegateModel
+ currentIndex: control.highlightedIndex
+ highlightRangeMode: ListView.ApplyRange
+ highlightMoveDuration: 0
+
+ T.ScrollBar.vertical: ScrollBar { }
+ }
+
+ background: Rectangle {
+ color: control.popup.palette.window
+ border.color: Fusion.outline(control.palette)
+
+ Rectangle {
+ z: -1
+ x: 1; y: 1
+ width: parent.width
+ height: parent.height
+ color: control.palette.shadow
+ opacity: 0.2
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DelayButton.qml
new file mode 100644
index 00000000..622de111
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DelayButton.qml
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.DelayButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ transition: Transition {
+ NumberAnimation {
+ duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
+ }
+ }
+
+ contentItem: ItemGroup {
+ ClippedText {
+ clip: control.progress > 0
+ clipX: -control.leftPadding + (control.mirrored ? 0 : control.progress * control.width)
+ clipWidth: control.width
+ visible: control.mirrored ? control.progress > 0 : control.progress < 1
+
+ text: control.text
+ font: control.font
+ color: control.mirrored ? control.palette.brightText : control.palette.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ ClippedText {
+ clip: control.progress > 0
+ clipX: -control.leftPadding
+ clipWidth: (control.mirrored ? 1.0 - control.progress : control.progress) * control.width
+ visible: control.mirrored ? control.progress < 1 : control.progress > 0
+
+ text: control.text
+ font: control.font
+ color: control.mirrored ? control.palette.buttonText : control.palette.brightText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+ }
+
+ background: ButtonPanel {
+ implicitWidth: 80
+ implicitHeight: 24
+
+ control: control
+ highlighted: false
+ scale: control.mirrored ? -1 : 1
+
+ Rectangle {
+ width: control.progress * parent.width
+ height: parent.height
+
+ radius: 2
+ border.color: Qt.darker(Fusion.highlight(control.palette), 1.4)
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.highlight(control.palette)
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dial.qml
new file mode 100644
index 00000000..a1337242
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dial.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Dial {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 100 // ### remove 100 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 100 // ### remove 100 in Qt 6
+
+ background: DialImpl {
+ implicitWidth: 100
+ implicitHeight: 100
+ palette: control.palette
+ highlight: control.visualFocus
+ }
+
+ handle: KnobImpl {
+ x: control.background.x + control.background.width / 2 - control.handle.width / 2
+ y: control.background.y + control.background.height / 2 - control.handle.height / 2
+ width: control.width / 7
+ height: control.height / 7
+ palette: control.palette
+ transform: [
+ Translate {
+ y: -Math.min(control.background.width, control.background.height) * 0.42 + control.handle.height
+ },
+ Rotation {
+ angle: control.angle
+ origin.x: control.handle.width / 2
+ origin.y: control.handle.height / 2
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dialog.qml
new file mode 100644
index 00000000..79e179d9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Dialog.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Dialog {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ padding: 6
+
+ background: Rectangle {
+ color: control.palette.window
+ border.color: control.palette.mid
+ radius: 2
+
+ Rectangle {
+ z: -1
+ x: 1; y: 1
+ width: parent.width
+ height: parent.height
+ color: control.palette.shadow
+ opacity: 0.2
+ radius: 2
+ }
+ }
+
+ header: Label {
+ text: control.title
+ visible: control.title
+ elide: Label.ElideRight
+ font.bold: true
+ padding: 6
+ background: Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 1
+ color: control.palette.window
+ radius: 2
+ }
+ }
+
+ footer: DialogButtonBox {
+ visible: count > 0
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Fusion.topShadow
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Fusion.topShadow
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DialogButtonBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DialogButtonBox.qml
new file mode 100644
index 00000000..a0b0f243
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/DialogButtonBox.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.DialogButtonBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ padding: 6
+ alignment: Qt.AlignRight
+
+ delegate: Button { }
+
+ contentItem: ListView {
+ model: control.contentModel
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ snapMode: ListView.SnapToItem
+ }
+
+ background: Rectangle {
+ implicitHeight: 32
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ color: control.palette.window
+ radius: 2
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Drawer.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Drawer.qml
new file mode 100644
index 00000000..5a23dde1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Drawer.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Drawer {
+ id: control
+
+ parent: T.Overlay.overlay
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: control.edge === Qt.BottomEdge
+ leftPadding: control.edge === Qt.RightEdge
+ rightPadding: control.edge === Qt.LeftEdge
+ bottomPadding: control.edge === Qt.TopEdge
+
+ enter: Transition { SmoothedAnimation { velocity: 5 } }
+ exit: Transition { SmoothedAnimation { velocity: 5 } }
+
+ background: Rectangle {
+ color: control.palette.window
+ readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
+ Rectangle {
+ width: parent.horizontal ? 1 : parent.width
+ height: parent.horizontal ? parent.height : 1
+ color: control.palette.mid
+ x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
+ y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
+ }
+ Rectangle {
+ width: parent.horizontal ? 1 : parent.width
+ height: parent.horizontal ? parent.height : 1
+ color: control.palette.shadow
+ opacity: 0.2
+ x: control.edge === Qt.LeftEdge ? parent.width : 0
+ y: control.edge === Qt.TopEdge ? parent.height : 0
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Fusion.topShadow
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Fusion.topShadow
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Frame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Frame.qml
new file mode 100644
index 00000000..c2df6351
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Frame.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Frame {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 9
+
+ background: Rectangle {
+ color: "transparent"
+ border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/GroupBox.qml
new file mode 100644
index 00000000..3df3e1e6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/GroupBox.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.GroupBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitLabelWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ padding: 9
+ topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
+
+ label: Text {
+ x: control.leftPadding
+ width: control.availableWidth
+
+ text: control.title
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: Rectangle {
+ y: control.topPadding - control.bottomPadding
+ width: parent.width
+ height: parent.height - control.topPadding + control.bottomPadding
+
+ radius: 2
+ color: Color.transparent("black", 3 / 255)
+ border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/HorizontalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/HorizontalHeaderView.qml
new file mode 100644
index 00000000..bbd9dc3f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/HorizontalHeaderView.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.HorizontalHeaderView {
+ id: control
+
+ implicitWidth: syncView ? syncView.width : 0
+ implicitHeight: contentHeight
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: text.implicitWidth + (cellPadding * 2)
+ implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
+ border.color: "#cacaca"
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: "#fbfbfb"
+ }
+ GradientStop {
+ position: 1
+ color: "#e0dfe0"
+ }
+ }
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ItemDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ItemDelegate.qml
new file mode 100644
index 00000000..4c15ae68
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ItemDelegate.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ItemDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
+ : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Label.qml
new file mode 100644
index 00000000..9821f71c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Label.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Label {
+ id: control
+
+ color: control.palette.windowText
+ linkColor: control.palette.link
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Menu.qml
new file mode 100644
index 00000000..8bace6b9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Menu.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+import QtQuick.Window 2.12
+
+T.Menu {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 0
+ padding: 1
+ overlap: 2
+
+ delegate: MenuItem { }
+
+ contentItem: ListView {
+ implicitHeight: contentHeight
+ model: control.contentModel
+ interactive: Window.window
+ ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
+ : false
+ clip: true
+ currentIndex: control.currentIndex
+
+ ScrollIndicator.vertical: ScrollIndicator {}
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 20
+
+ color: control.palette.base
+ border.color: Fusion.outline(control.palette)
+
+ Rectangle {
+ z: -1
+ x: 1; y: 1
+ width: parent.width
+ height: parent.height
+ color: control.palette.shadow
+ opacity: 0.2
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Fusion.topShadow
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Fusion.topShadow
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBar.qml
new file mode 100644
index 00000000..4ba71fee
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBar.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.MenuBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ delegate: MenuBarItem { }
+
+ contentItem: Row {
+ spacing: control.spacing
+ Repeater {
+ model: control.contentModel
+ }
+ }
+
+ background: Rectangle {
+ implicitHeight: 20
+
+ color: control.palette.window
+
+ Rectangle {
+ y: parent.height - height
+ width: parent.width
+ height: 1
+ color: Fusion.mergedColors(Qt.darker(control.palette.window, 1.2),
+ Qt.lighter(Fusion.outline(control.palette), 1.4), 60)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBarItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBarItem.qml
new file mode 100644
index 00000000..9fa685dc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuBarItem.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.MenuBarItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 20
+ implicitHeight: 20
+
+ color: Fusion.highlight(control.palette)
+ visible: control.down || control.highlighted
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuItem.qml
new file mode 100644
index 00000000..a428fbc8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuItem.qml
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.MenuItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
+ readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
+ rightPadding: control.mirrored ? indicatorPadding : arrowPadding
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ arrow: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+ width: 20
+
+ visible: control.subMenu
+ rotation: control.mirrored ? 90 : -90
+ color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ fillMode: Image.Pad
+ }
+
+ indicator: CheckIndicator {
+ x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ control: control
+ visible: control.checkable
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 20
+
+ color: Fusion.highlight(control.palette)
+ visible: control.down || control.highlighted
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuSeparator.qml
new file mode 100644
index 00000000..522ada15
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/MenuSeparator.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.MenuSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 5
+ verticalPadding: 1
+
+ contentItem: Rectangle {
+ implicitWidth: 188
+ implicitHeight: 1
+ color: Qt.lighter(Fusion.darkShade, 1.06)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Page.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Page.qml
new file mode 100644
index 00000000..ce4b1d54
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Page.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Page {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/PageIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/PageIndicator.qml
new file mode 100644
index 00000000..5679b14f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/PageIndicator.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.PageIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 4
+ spacing: 4
+
+ delegate: Rectangle {
+ implicitWidth: 6
+ implicitHeight: 6
+
+ radius: width / 2
+ color: control.palette.shadow
+
+ opacity: index === currentIndex ? 0.95 : pressed ? 0.75 : 0.45
+ Behavior on opacity { OpacityAnimator { duration: 100 } }
+ }
+
+ contentItem: Row {
+ spacing: control.spacing
+
+ Repeater {
+ model: control.count
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Pane.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Pane.qml
new file mode 100644
index 00000000..28be3b47
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Pane.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Pane {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 9
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Popup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Popup.qml
new file mode 100644
index 00000000..25a8c5ae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Popup.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ background: Rectangle {
+ color: control.palette.window
+ border.color: control.palette.mid
+ radius: 2
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Fusion.topShadow
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Fusion.topShadow
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ProgressBar.qml
new file mode 100644
index 00000000..5deade58
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ProgressBar.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ProgressBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: Item {
+ implicitWidth: 120
+ implicitHeight: 24
+ scale: control.mirrored ? -1 : 1
+
+ Rectangle {
+ height: parent.height
+ width: (control.indeterminate ? 1.0 : control.position) * parent.width
+
+ radius: 2
+ border.color: Qt.darker(Fusion.highlight(control.palette), 1.4)
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.highlight(control.palette)
+ }
+ }
+ }
+
+ Item {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ visible: control.indeterminate
+ clip: true
+
+ ColorImage {
+ width: Math.ceil(parent.width / implicitWidth + 1) * implicitWidth
+ height: parent.height
+
+ mirror: control.mirrored
+ fillMode: Image.TileHorizontally
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/progressmask.png"
+ color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255)
+
+ visible: control.indeterminate
+ NumberAnimation on x {
+ running: control.indeterminate && control.visible
+ from: -31 // progressmask.png width
+ to: 0
+ loops: Animation.Infinite
+ duration: 750
+ }
+ }
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 120
+ implicitHeight: 24
+
+ radius: 2
+ color: control.palette.base
+ border.color: Fusion.outline(control.palette)
+
+ Rectangle {
+ x: 1; y: 1; height: 1
+ width: parent.width - 2
+ color: Fusion.topShadow
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioButton.qml
new file mode 100644
index 00000000..a940aff3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioButton.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.RadioButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ indicator: RadioIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioDelegate.qml
new file mode 100644
index 00000000..e8555a17
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioDelegate.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.RadioDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ indicator: RadioIndicator {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ control: control
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
+ : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioIndicator.qml
new file mode 100644
index 00000000..c73cd49f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RadioIndicator.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: indicator
+
+ property Item control
+ readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
+ readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
+
+ implicitWidth: 14
+ implicitHeight: 14
+
+ radius: width / 2
+ color: control.down ? indicator.pressedColor : control.palette.base
+ border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
+ : Qt.darker(control.palette.window, 1.5)
+
+ Rectangle {
+ y: 1
+ width: parent.width
+ height: parent.height - 1
+ radius: width / 2
+ color: "transparent"
+ border.color: Fusion.topShadow
+ visible: indicator.control.enabled && !indicator.control.down
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: parent.width / 2.32
+ height: parent.height / 2.32
+ radius: width / 2
+ color: Color.transparent(indicator.checkMarkColor, 180 / 255)
+ border.color: Color.transparent(indicator.checkMarkColor, 200 / 255)
+ visible: indicator.control.checked
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RangeSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RangeSlider.qml
new file mode 100644
index 00000000..7edbed57
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RangeSlider.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.RangeSlider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ Math.max(first.implicitHandleWidth,
+ second.implicitHandleWidth) + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ Math.max(first.implicitHandleHeight,
+ second.implicitHandleHeight) + topPadding + bottomPadding)
+
+ first.handle: SliderHandle {
+ x: control.leftPadding + Math.round(control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
+
+ palette: control.palette
+ pressed: control.first.pressed
+ hovered: control.first.hovered
+ vertical: control.vertical
+ visualFocus: activeFocus
+ }
+
+ second.handle: SliderHandle {
+ x: control.leftPadding + Math.round(control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
+
+ palette: control.palette
+ pressed: control.second.pressed
+ hovered: control.second.hovered
+ vertical: control.vertical
+ visualFocus: activeFocus
+ }
+
+ background: SliderGroove {
+ control: control
+ offset: control.first.position
+ progress: control.second.position
+ visualProgress: control.second.visualPosition
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RoundButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RoundButton.qml
new file mode 100644
index 00000000..59bf4c16
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/RoundButton.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.RoundButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: Rectangle {
+ implicitWidth: 32
+ implicitHeight: 32
+ visible: !control.flat || control.down || control.checked
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered)
+ : Fusion.gradientStart(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered)
+ : Fusion.gradientStop(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered))
+ }
+ }
+
+ radius: control.radius
+ border.color: Fusion.buttonOutline(control.palette, control.highlighted || control.visualFocus, control.enabled)
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ border.color: Fusion.innerContrastLine
+ color: "transparent"
+ radius: control.radius
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollBar.qml
new file mode 100644
index 00000000..93b58f0e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollBar.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ScrollBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+ visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
+
+ contentItem: Rectangle {
+ implicitWidth: control.interactive ? 6 : 2
+ implicitHeight: control.interactive ? 6 : 2
+
+ radius: width / 2
+ color: control.pressed ? control.palette.dark : control.palette.mid
+ opacity: 0.0
+
+ states: State {
+ name: "active"
+ when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
+ PropertyChanges { target: control.contentItem; opacity: 0.75 }
+ }
+
+ transitions: Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollIndicator.qml
new file mode 100644
index 00000000..efe0b2fa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ScrollIndicator.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ScrollIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+
+ contentItem: Rectangle {
+ implicitWidth: 2
+ implicitHeight: 2
+
+ color: control.palette.mid
+ visible: control.size < 1.0
+ opacity: 0.0
+
+ states: State {
+ name: "active"
+ when: control.active
+ PropertyChanges { target: control.contentItem; opacity: 0.75 }
+ }
+
+ transitions: [
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Slider.qml
new file mode 100644
index 00000000..d212a233
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Slider.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Slider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitHandleHeight + topPadding + bottomPadding)
+
+ handle: SliderHandle {
+ x: control.leftPadding + Math.round(control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
+
+ palette: control.palette
+ pressed: control.pressed
+ hovered: control.hovered
+ vertical: control.vertical
+ visualFocus: control.visualFocus
+ }
+
+ background: SliderGroove {
+ control: control
+ progress: control.position
+ visualProgress: control.visualPosition
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderGroove.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderGroove.qml
new file mode 100644
index 00000000..381a02b5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderGroove.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: groove
+
+ property Item control
+ property real offset
+ property real progress
+ property real visualProgress
+
+ x: control.horizontal ? 0 : (control.availableWidth - width) / 2
+ y: control.horizontal ? (control.availableHeight - height) / 2 : 0
+
+ implicitWidth: control.horizontal ? 160 : 5
+ implicitHeight: control.horizontal ? 5 : 160
+ width: control.horizontal ? control.availableWidth : implicitWidth
+ height: control.horizontal ? implicitHeight : control.availableHeight
+
+ radius: 2
+ border.color: Fusion.outline(control.palette)
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Qt.darker(Fusion.grooveColor(groove.control.palette), 1.1)
+ }
+ GradientStop {
+ position: 1
+ color: Qt.lighter(Fusion.grooveColor(groove.control.palette), 1.1)
+ }
+ }
+
+ Rectangle {
+ x: groove.control.horizontal ? groove.offset * parent.width : 0
+ y: groove.control.horizontal ? 0 : groove.visualProgress * parent.height
+ width: groove.control.horizontal ? groove.progress * parent.width - groove.offset * parent.width : 5
+ height: groove.control.horizontal ? 5 : groove.progress * parent.height - groove.offset * parent.height
+
+ radius: 2
+ border.color: Qt.darker(Fusion.highlightedOutline(groove.control.palette), 1.1)
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Fusion.highlight(groove.control.palette)
+ }
+ GradientStop {
+ position: 1
+ color: Qt.lighter(Fusion.highlight(groove.control.palette), 1.2)
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderHandle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderHandle.qml
new file mode 100644
index 00000000..c53af57e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SliderHandle.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: handle
+
+ property var palette
+ property bool pressed
+ property bool hovered
+ property bool vertical
+ property bool visualFocus
+
+ implicitWidth: 13
+ implicitHeight: 13
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Fusion.gradientStart(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.gradientStop(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered))
+ }
+ }
+ rotation: handle.vertical ? -90 : 0
+ border.width: 1
+ border.color: "transparent"
+ radius: 2
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ border.color: handle.visualFocus ? Fusion.highlightedOutline(handle.palette) : Fusion.outline(handle.palette)
+ color: "transparent"
+ radius: 2
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ border.color: Fusion.innerContrastLine
+ color: "transparent"
+ radius: 2
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SpinBox.qml
new file mode 100644
index 00000000..41754f63
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SpinBox.qml
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.SpinBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + 2 * padding +
+ Math.max(up.implicitIndicatorWidth,
+ down.implicitIndicatorWidth))
+ implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight,
+ up.implicitIndicatorHeight +
+ down.implicitIndicatorHeight)
+
+ padding: 4
+ leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
+ rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+
+ validator: IntValidator {
+ locale: control.locale.name
+ bottom: Math.min(control.from, control.to)
+ top: Math.max(control.from, control.to)
+ }
+
+ contentItem: TextInput {
+ z: 2
+ text: control.displayText
+
+ font: control.font
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+
+ readOnly: !control.editable
+ validator: control.validator
+ inputMethodHints: control.inputMethodHints
+ }
+
+ up.indicator: PaddedRectangle {
+ x: control.mirrored ? 1 : parent.width - width - 1
+ y: 1
+ height: parent.height / 2 - 1
+ implicitWidth: 16
+ implicitHeight: 10
+
+ radius: 1.7
+ clip: true
+ topPadding: -2
+ leftPadding: -2
+ color: control.up.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
+
+ ColorImage {
+ scale: -1
+ width: parent.width
+ height: parent.height
+ opacity: enabled ? 1.0 : 0.5
+ color: control.palette.buttonText
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ fillMode: Image.Pad
+ }
+ }
+
+ down.indicator: PaddedRectangle {
+ x: control.mirrored ? 1 : parent.width - width - 1
+ y: parent.height - height - 1
+ height: parent.height / 2 - 1
+ implicitWidth: 16
+ implicitHeight: 10
+
+ radius: 1.7
+ clip: true
+ topPadding: -2
+ leftPadding: -2
+ color: control.down.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
+
+ ColorImage {
+ width: parent.width
+ height: parent.height
+ opacity: enabled ? 1.0 : 0.5
+ color: control.palette.buttonText
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png"
+ fillMode: Image.Pad
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 120
+ implicitHeight: 24
+
+ radius: 2
+ color: control.palette.base
+ border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
+
+ Rectangle {
+ x: 2
+ y: 1
+ width: parent.width - 4
+ height: 1
+ color: Fusion.topShadow
+ }
+
+ Rectangle {
+ x: control.mirrored ? 1 : parent.width - width - 1
+ y: 1
+ width: Math.max(control.up.indicator ? control.up.indicator.width : 0,
+ control.down.indicator ? control.down.indicator.width : 0) + 1
+ height: parent.height - 2
+
+ radius: 2
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
+ }
+ }
+
+ Rectangle {
+ x: control.mirrored ? parent.width - 1 : 0
+ height: parent.height
+ width: 1
+ color: Fusion.outline(control.palette)
+ }
+ }
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ color: "transparent"
+ border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
+ visible: control.activeFocus
+ radius: 1.7
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SplitView.qml
new file mode 100644
index 00000000..6a04b4da
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SplitView.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.13
+import QtQuick.Templates 2.13 as T
+import QtQuick.Controls 2.13
+import QtQuick.Controls.impl 2.13
+import QtQuick.Controls.Fusion 2.13
+
+T.SplitView {
+ id: control
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ handle: Rectangle {
+ implicitWidth: control.orientation === Qt.Horizontal ? 2 : control.width
+ implicitHeight: control.orientation === Qt.Horizontal ? control.height : 2
+ color: T.SplitHandle.pressed ? palette.dark
+ : (T.SplitHandle.hovered ? control.palette.midlight : control.palette.mid)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwipeDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwipeDelegate.qml
new file mode 100644
index 00000000..48c531ea
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwipeDelegate.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.SwipeDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
+ : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Switch.qml
new file mode 100644
index 00000000..bf18003a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Switch.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Switch {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ indicator: SwitchIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchDelegate.qml
new file mode 100644
index 00000000..67c41924
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchDelegate.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.SwitchDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ indicator: SwitchIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
+ : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchIndicator.qml
new file mode 100644
index 00000000..ae7c89a0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/SwitchIndicator.qml
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+Rectangle {
+ id: indicator
+
+ property Item control
+ readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
+ readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
+
+ implicitWidth: 40
+ implicitHeight: 16
+
+ radius: 2
+ border.color: Fusion.outline(control.palette)
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Qt.darker(Fusion.grooveColor(indicator.control.palette), 1.1)
+ }
+ GradientStop {
+ position: 1
+ color: Qt.lighter(Fusion.grooveColor(indicator.control.palette), 1.1)
+ }
+ }
+
+ Rectangle {
+ x: indicator.control.mirrored ? handle.x : 0
+ width: indicator.control.mirrored ? parent.width - handle.x : handle.x + handle.width
+ height: parent.height
+
+ opacity: indicator.control.checked ? 1 : 0
+ Behavior on opacity {
+ enabled: !indicator.control.down
+ NumberAnimation { duration: 80 }
+ }
+
+ radius: 2
+ border.color: Qt.darker(Fusion.highlightedOutline(indicator.control.palette), 1.1)
+ border.width: indicator.control.enabled ? 1 : 0
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Fusion.highlight(indicator.control.palette)
+ }
+ GradientStop {
+ position: 1
+ color: Qt.lighter(Fusion.highlight(indicator.control.palette), 1.2)
+ }
+ }
+ }
+
+ Rectangle {
+ id: handle
+ x: Math.max(0, Math.min(parent.width - width, indicator.control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+ width: 20
+ height: 16
+ radius: 2
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Fusion.gradientStart(Fusion.buttonColor(indicator.control.palette, indicator.control.visualFocus, indicator.control.pressed, indicator.control.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.gradientStop(Fusion.buttonColor(indicator.control.palette, indicator.control.visualFocus, indicator.control.pressed, indicator.control.hovered))
+ }
+ }
+ border.width: 1
+ border.color: "transparent"
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ border.color: indicator.control.visualFocus ? Fusion.highlightedOutline(indicator.control.palette) : Fusion.outline(indicator.control.palette)
+ color: "transparent"
+ radius: 2
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ border.color: Fusion.innerContrastLine
+ color: "transparent"
+ radius: 2
+ }
+ }
+
+ Behavior on x {
+ enabled: !indicator.control.down
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabBar.qml
new file mode 100644
index 00000000..233a2acd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabBar.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.TabBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: -1
+
+ contentItem: ListView {
+ model: control.contentModel
+ currentIndex: control.currentIndex
+
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ flickableDirection: Flickable.AutoFlickIfNeeded
+ snapMode: ListView.SnapToItem
+
+ highlightMoveDuration: 0
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 40
+ preferredHighlightEnd: width - 40
+ }
+
+ background: Item {
+ implicitHeight: 21
+
+ Rectangle {
+ width: parent.width
+ height: 1
+ y: control.position === T.TabBar.Header ? parent.height - 1 : 0
+ color: Fusion.outline(control.palette)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabButton.qml
new file mode 100644
index 00000000..136503b6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TabButton.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.TabButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+ horizontalPadding: 4
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ z: checked
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: Rectangle {
+ y: control.checked || control.TabBar.position !== T.TabBar.Header ? 0 : 2
+ implicitHeight: 21
+ height: control.height - (control.checked ? 0 : 2)
+
+ border.color: Qt.lighter(Fusion.outline(control.palette), 1.1)
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
+ : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
+ }
+ GradientStop {
+ position: control.checked ? 0 : 0.85
+ color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
+ : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
+ }
+ GradientStop {
+ position: 1
+ color: control.checked ? Fusion.tabFrameColor(control.palette)
+ : Qt.darker(Fusion.tabFrameColor(control.palette), 1.16)
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextArea.qml
new file mode 100644
index 00000000..c7107ac4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextArea.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.TextArea {
+ id: control
+
+ implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
+ implicitBackgroundWidth + leftInset + rightInset,
+ placeholder.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight + topInset + bottomInset,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ padding: 6
+ leftPadding: padding + 4
+
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextField.qml
new file mode 100644
index 00000000..d5b5788d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/TextField.qml
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.TextField {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth + leftInset + rightInset
+ || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ padding: 4
+
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+ verticalAlignment: TextInput.AlignVCenter
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: Rectangle {
+ implicitWidth: 120
+ implicitHeight: 24
+
+ radius: 2
+ color: control.palette.base
+ border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ color: "transparent"
+ border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
+ visible: control.activeFocus
+ radius: 1.7
+ }
+
+ Rectangle {
+ x: 2
+ y: 1
+ width: parent.width - 4
+ height: 1
+ color: Fusion.topShadow
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolBar.qml
new file mode 100644
index 00000000..fa069c0b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolBar.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ToolBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ horizontalPadding: 6
+ topPadding: control.position === T.ToolBar.Footer ? 1 : 0
+ bottomPadding: control.position === T.ToolBar.Header ? 1 : 0
+
+ background: Rectangle {
+ implicitHeight: 26
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: Qt.lighter(control.palette.window, 1.04)
+ }
+ GradientStop {
+ position: 1
+ color: control.palette.window
+ }
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 1
+ color: control.position === T.ToolBar.Header ? Fusion.lightShade : Fusion.darkShade
+ }
+
+ Rectangle {
+ y: parent.height - height
+ width: parent.width
+ height: 1
+ color: control.position === T.ToolBar.Header ? Fusion.darkShade : Fusion.lightShade
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolButton.qml
new file mode 100644
index 00000000..4c00b402
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolButton.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ToolButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 16
+ icon.height: 16
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: ButtonPanel {
+ implicitWidth: 20
+ implicitHeight: 20
+
+ control: control
+ visible: control.down || control.checked || control.highlighted || control.visualFocus || control.hovered
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolSeparator.qml
new file mode 100644
index 00000000..5d366652
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolSeparator.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ToolSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: vertical ? 6 : 2
+ verticalPadding: vertical ? 2 : 6
+
+ contentItem: Rectangle {
+ implicitWidth: vertical ? 2 : 8
+ implicitHeight: vertical ? 8 : 2
+ color: Qt.darker(control.palette.window, 1.1)
+
+ Rectangle {
+ x: 1
+ width: 1
+ height: parent.height
+ color: Qt.lighter(control.palette.window, 1.1)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolTip.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolTip.qml
new file mode 100644
index 00000000..b505e2c9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/ToolTip.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.ToolTip {
+ id: control
+
+ x: parent ? (parent.width - implicitWidth) / 2 : 0
+ y: -implicitHeight - 3
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 6
+ padding: 6
+
+ closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ wrapMode: Text.Wrap
+ color: control.palette.toolTipText
+ }
+
+ background: Rectangle {
+ color: control.palette.toolTipBase
+ border.color: control.palette.toolTipText
+
+ Rectangle {
+ z: -1
+ x: 1; y: 1
+ width: parent.width
+ height: parent.height
+ color: control.palette.shadow
+ opacity: 0.5
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Tumbler.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Tumbler.qml
new file mode 100644
index 00000000..0129f06c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/Tumbler.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Fusion 2.12
+import QtQuick.Controls.Fusion.impl 2.12
+
+T.Tumbler {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 60 // ### remove 60 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 200 // ### remove 200 in Qt 6
+
+ delegate: Text {
+ text: modelData
+ color: control.palette.windowText
+ font: control.font
+ opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ implicitWidth: 60
+ implicitHeight: 200
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: control.contentItem.width / 2
+ startY: -control.contentItem.delegateHeight / 2
+ PathLine {
+ x: control.contentItem.width / 2
+ y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
+ }
+ }
+
+ property real delegateHeight: control.availableHeight / control.visibleItemCount
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/VerticalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/VerticalHeaderView.qml
new file mode 100644
index 00000000..b220cdf2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/VerticalHeaderView.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.VerticalHeaderView {
+ id: control
+
+ implicitWidth: contentWidth
+ implicitHeight: syncView ? syncView.height : 0
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
+ implicitHeight: text.implicitHeight + (cellPadding * 2)
+ border.color: "#cacaca"
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0
+ color: "#fbfbfb"
+ }
+ GradientStop {
+ position: 1
+ color: "#e0dfe0"
+ }
+ }
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/plugins.qmltypes
new file mode 100644
index 00000000..681b8b90
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/plugins.qmltypes
@@ -0,0 +1,414 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Fusion 2.15'
+
+Module {
+ dependencies: ["QtQuick.Controls 2.0"]
+ Component {
+ name: "QQuickFusionBusyIndicator"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "running"; type: "bool" }
+ }
+ Component {
+ name: "QQuickFusionDial"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtQuick.Controls.Fusion.impl/DialImpl 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "highlight"; type: "bool" }
+ Property { name: "palette"; type: "QPalette" }
+ }
+ Component {
+ name: "QQuickFusionKnob"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtQuick.Controls.Fusion.impl/KnobImpl 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "palette"; type: "QPalette" }
+ }
+ Component {
+ name: "QQuickFusionStyle"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Fusion.impl/Fusion 2.3"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Property { name: "lightShade"; type: "QColor"; isReadonly: true }
+ Property { name: "darkShade"; type: "QColor"; isReadonly: true }
+ Property { name: "topShadow"; type: "QColor"; isReadonly: true }
+ Property { name: "innerContrastLine"; type: "QColor"; isReadonly: true }
+ Method {
+ name: "highlight"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "highlightedText"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "outline"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "highlightedOutline"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "tabFrameColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "buttonColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ Parameter { name: "highlighted"; type: "bool" }
+ Parameter { name: "down"; type: "bool" }
+ Parameter { name: "hovered"; type: "bool" }
+ }
+ Method {
+ name: "buttonColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ Parameter { name: "highlighted"; type: "bool" }
+ Parameter { name: "down"; type: "bool" }
+ }
+ Method {
+ name: "buttonColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ Parameter { name: "highlighted"; type: "bool" }
+ }
+ Method {
+ name: "buttonColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "buttonOutline"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ Parameter { name: "highlighted"; type: "bool" }
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Method {
+ name: "buttonOutline"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ Parameter { name: "highlighted"; type: "bool" }
+ }
+ Method {
+ name: "buttonOutline"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ Method {
+ name: "gradientStart"
+ type: "QColor"
+ Parameter { name: "baseColor"; type: "QColor" }
+ }
+ Method {
+ name: "gradientStop"
+ type: "QColor"
+ Parameter { name: "baseColor"; type: "QColor" }
+ }
+ Method {
+ name: "mergedColors"
+ type: "QColor"
+ Parameter { name: "colorA"; type: "QColor" }
+ Parameter { name: "colorB"; type: "QColor" }
+ Parameter { name: "factor"; type: "int" }
+ }
+ Method {
+ name: "mergedColors"
+ type: "QColor"
+ Parameter { name: "colorA"; type: "QColor" }
+ Parameter { name: "colorB"; type: "QColor" }
+ }
+ Method {
+ name: "grooveColor"
+ type: "QColor"
+ Parameter { name: "palette"; type: "QPalette" }
+ }
+ }
+ Component {
+ name: "QQuickItem"
+ defaultProperty: "data"
+ prototype: "QObject"
+ Enum {
+ name: "Flags"
+ values: {
+ "ItemClipsChildrenToShape": 1,
+ "ItemAcceptsInputMethod": 2,
+ "ItemIsFocusScope": 4,
+ "ItemHasContents": 8,
+ "ItemAcceptsDrops": 16
+ }
+ }
+ Enum {
+ name: "TransformOrigin"
+ values: {
+ "TopLeft": 0,
+ "Top": 1,
+ "TopRight": 2,
+ "Left": 3,
+ "Center": 4,
+ "Right": 5,
+ "BottomLeft": 6,
+ "Bottom": 7,
+ "BottomRight": 8
+ }
+ }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "z"; type: "double" }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "opacity"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Property { name: "state"; type: "string" }
+ Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
+ Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "clip"; type: "bool" }
+ Property { name: "focus"; type: "bool" }
+ Property { name: "activeFocus"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "scale"; type: "double" }
+ Property { name: "transformOrigin"; type: "TransformOrigin" }
+ Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
+ Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "antialiasing"; type: "bool" }
+ Property { name: "implicitWidth"; type: "double" }
+ Property { name: "implicitHeight"; type: "double" }
+ Property { name: "containmentMask"; revision: 11; type: "QObject"; isPointer: true }
+ Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "childrenRectChanged"
+ Parameter { type: "QRectF" }
+ }
+ Signal {
+ name: "baselineOffsetChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ Signal {
+ name: "focusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnTabChanged"
+ revision: 1
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "parentChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "transformOriginChanged"
+ Parameter { type: "TransformOrigin" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "antialiasingChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "clipChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "windowChanged"
+ revision: 1
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ Signal { name: "containmentMaskChanged"; revision: 11 }
+ Method { name: "update" }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ Parameter { name: "targetSize"; type: "QSize" }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapFromItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapFromGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "forceActiveFocus" }
+ Method {
+ name: "forceActiveFocus"
+ Parameter { name: "reason"; type: "Qt::FocusReason" }
+ }
+ Method {
+ name: "nextItemInFocusChain"
+ revision: 1
+ type: "QQuickItem*"
+ Parameter { name: "forward"; type: "bool" }
+ }
+ Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
+ Method {
+ name: "childAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickPaintedItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Enum {
+ name: "RenderTarget"
+ values: {
+ "Image": 0,
+ "FramebufferObject": 1,
+ "InvertedYFramebufferObject": 2
+ }
+ }
+ Enum {
+ name: "PerformanceHints"
+ values: {
+ "FastFBOResizing": 1
+ }
+ }
+ Property { name: "contentsSize"; type: "QSize" }
+ Property { name: "fillColor"; type: "QColor" }
+ Property { name: "contentsScale"; type: "double" }
+ Property { name: "renderTarget"; type: "RenderTarget" }
+ Property { name: "textureSize"; type: "QSize" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/ButtonPanel 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/ButtonPanel 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "highlighted"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/CheckIndicator 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/CheckIndicator 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "pressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/RadioIndicator 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/RadioIndicator 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "pressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/SliderGroove 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/SliderGroove 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "offset"; type: "double" }
+ Property { name: "progress"; type: "double" }
+ Property { name: "visualProgress"; type: "double" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/SliderHandle 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/SliderHandle 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "palette"; type: "QVariant" }
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "hovered"; type: "bool" }
+ Property { name: "vertical"; type: "bool" }
+ Property { name: "visualFocus"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Fusion.impl/SwitchIndicator 2.3"
+ exports: ["QtQuick.Controls.Fusion.impl/SwitchIndicator 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "pressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qmldir
new file mode 100644
index 00000000..b584adc8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qmldir
@@ -0,0 +1,4 @@
+module QtQuick.Controls.Fusion
+plugin qtquickcontrols2fusionstyleplugin
+classname QtQuickControls2FusionStylePlugin
+depends QtQuick.Controls 2.5
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qtquickcontrols2fusionstyleplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qtquickcontrols2fusionstyleplugin.dll
new file mode 100644
index 00000000..19e35877
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Fusion/qtquickcontrols2fusionstyleplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/GroupBox.qml
new file mode 100644
index 00000000..96f776f2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/GroupBox.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.GroupBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitLabelWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ padding: 12
+ topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
+
+ label: Text {
+ x: control.leftPadding
+ width: control.availableWidth
+
+ text: control.title
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: Rectangle {
+ y: control.topPadding - control.bottomPadding
+ width: parent.width
+ height: parent.height - control.topPadding + control.bottomPadding
+
+ color: "transparent"
+ border.color: control.palette.mid
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/HorizontalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/HorizontalHeaderView.qml
new file mode 100644
index 00000000..ec91af25
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/HorizontalHeaderView.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.HorizontalHeaderView {
+ id: control
+
+ implicitWidth: syncView ? syncView.width : 0
+ implicitHeight: contentHeight
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: text.implicitWidth + (cellPadding * 2)
+ implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
+ color: "#f6f6f6"
+ border.color: "#e4e4e4"
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ApplicationWindow.qml
new file mode 100644
index 00000000..7bfcc3f9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ApplicationWindow.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.2
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ApplicationWindow {
+ id: window
+
+ // ### remove?
+ overlay.modal: NinePatchImage {
+ source: Imagine.url + "applicationwindow-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": true}
+ ]
+ }
+ }
+
+ // ### remove?
+ overlay.modeless: NinePatchImage {
+ source: Imagine.url + "applicationwindow-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": false}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ width: window.width
+ height: window.height
+
+ source: Imagine.url + "applicationwindow-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"active": window.active}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/BusyIndicator.qml
new file mode 100644
index 00000000..652365b1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/BusyIndicator.qml
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.BusyIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: AnimatedImage {
+ opacity: control.running ? 1 : 0
+ playing: control.running || opacity > 0
+ visible: control.running || opacity > 0
+ Behavior on opacity { OpacityAnimator { duration: 250 } }
+
+ source: Imagine.url + "busyindicator-animation"
+ AnimatedImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"running": control.running},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "busyindicator-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"running": control.running},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Button.qml
new file mode 100644
index 00000000..e7171eb1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Button.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Button {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
+ : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
+ ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
+ : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
+ ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "button-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"checkable": control.checkable},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"flat": control.flat},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckBox.qml
new file mode 100644
index 00000000..b91ceb40
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckBox.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.CheckBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ indicator: Image {
+ x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: Imagine.url + "checkbox-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checkState === Qt.Checked},
+ {"partially-checked": control.checkState === Qt.PartiallyChecked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "checkbox-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checkState === Qt.Checked},
+ {"partially-checked": control.checkState === Qt.PartiallyChecked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckDelegate.qml
new file mode 100644
index 00000000..19975152
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/CheckDelegate.qml
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.CheckDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ indicator: Image {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: Imagine.url + "checkdelegate-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checkState === Qt.Checked},
+ {"partially-checked": control.checkState === Qt.PartiallyChecked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "checkdelegate-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checkState === Qt.Checked},
+ {"partially-checked": control.checkState === Qt.PartiallyChecked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ComboBox.qml
new file mode 100644
index 00000000..d657e734
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ComboBox.qml
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Window 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls 2.15
+import QtQuick.Controls.Imagine 2.15
+import QtQuick.Controls.Imagine.impl 2.15
+
+T.ComboBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + background ? (background.leftPadding + background.rightPadding) : 0)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ Math.max(implicitContentHeight,
+ implicitIndicatorHeight) + background ? (background.topPadding + background.bottomPadding) : 0)
+
+ leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+ rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ delegate: ItemDelegate {
+ width: ListView.view.width
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
+ font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
+ highlighted: control.highlightedIndex === index
+ hoverEnabled: control.hoverEnabled
+ }
+
+ indicator: Image {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: Imagine.url + "combobox-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"editable": control.editable},
+ {"open": control.down},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered},
+ {"flat": control.flat}
+ ]
+ }
+ }
+
+ contentItem: T.TextField {
+ topPadding: control.background ? control.background.topPadding : 0
+ leftPadding: control.background ? control.background.leftPadding : 0
+ rightPadding: control.background ? control.background.rightPadding : 0
+ bottomPadding: control.background ? control.background.bottomPadding : 0
+
+ text: control.editable ? control.editText : control.displayText
+
+ enabled: control.editable
+ autoScroll: control.editable
+ readOnly: control.down
+ inputMethodHints: control.inputMethodHints
+ validator: control.validator
+ selectByMouse: control.selectTextByMouse
+
+ font: control.font
+ color: control.flat ? control.palette.windowText : control.editable ? control.palette.text : control.palette.buttonText
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "combobox-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"editable": control.editable},
+ {"open": control.down},
+ {"focused": control.visualFocus || (control.editable && control.activeFocus)},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered},
+ {"flat": control.flat}
+ ]
+ }
+ }
+
+ popup: T.Popup {
+ width: control.width
+ height: Math.min(contentItem.implicitHeight + topPadding + bottomPadding, control.Window.height - topMargin - bottomMargin)
+
+ topMargin: background.topInset
+ bottomMargin: background.bottomInset
+
+ topPadding: background.topPadding
+ leftPadding: background.leftPadding
+ rightPadding: background.rightPadding
+ bottomPadding: background.bottomPadding
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ palette.text: control.palette.text
+ palette.highlight: control.palette.highlight
+ palette.highlightedText: control.palette.highlightedText
+ palette.windowText: control.palette.windowText
+ palette.buttonText: control.palette.buttonText
+
+ contentItem: ListView {
+ clip: true
+ implicitHeight: contentHeight
+ model: control.delegateModel
+ currentIndex: control.highlightedIndex
+ highlightMoveDuration: 0
+
+ T.ScrollIndicator.vertical: ScrollIndicator { }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "combobox-popup"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"editable": control.editable},
+ {"focused": control.visualFocus || (control.editable && control.activeFocus)},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered},
+ {"flat": control.flat}
+ ]
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DelayButton.qml
new file mode 100644
index 00000000..f60b5eae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DelayButton.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+import QtGraphicalEffects 1.12
+
+T.DelayButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ transition: Transition {
+ NumberAnimation {
+ duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
+ }
+ }
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "delaybutton-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ readonly property NinePatchImage progress: NinePatchImage {
+ parent: control.background
+ width: control.progress * parent.width
+ height: parent.height
+ visible: false
+
+ source: Imagine.url + "delaybutton-progress"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ readonly property NinePatchImage mask: NinePatchImage {
+ width: control.background.width
+ height: control.background.height
+ visible: false
+
+ source: Imagine.url + "delaybutton-mask"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ readonly property OpacityMask effect: OpacityMask {
+ parent: control.background
+ width: source.width
+ height: source.height
+ source: control.background.progress
+
+ maskSource: ShaderEffectSource {
+ sourceItem: control.background.mask
+ sourceRect: Qt.rect(0, 0, control.background.effect.width, control.background.effect.height)
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dial.qml
new file mode 100644
index 00000000..f8c394f3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dial.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Dial {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ handle: Image {
+ x: background.x + background.width / 2 - handle.width / 2
+ y: background.y + background.height / 2 - handle.height / 2
+
+ source: Imagine.url + "dial-handle"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ transform: [
+ Translate {
+ y: -Math.min(control.background.width, control.background.height) * 0.4 + control.handle.height / 2
+ },
+ Rotation {
+ angle: control.angle
+ origin.x: handle.width / 2
+ origin.y: handle.height / 2
+ }
+ ]
+ }
+
+ background: NinePatchImage {
+ x: control.width / 2 - width / 2
+ y: control.height / 2 - height / 2
+ width: Math.max(64, Math.min(control.width, control.height))
+ height: width
+ fillMode: Image.PreserveAspectFit
+
+ source: Imagine.url + "dial-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dialog.qml
new file mode 100644
index 00000000..730b7f57
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Dialog.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Dialog {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "dialog-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": control.modal},
+ {"dim": control.dim}
+ ]
+ }
+ }
+
+ header: Label {
+ text: control.title
+ visible: control.title
+ elide: Label.ElideRight
+ font.bold: true
+ padding: 12
+
+ background: NinePatchImage {
+ width: parent.width
+ height: parent.height
+
+ source: Imagine.url + "dialog-title"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": control.modal},
+ {"dim": control.dim}
+ ]
+ }
+ }
+ }
+
+ footer: DialogButtonBox {
+ visible: count > 0
+ }
+
+ T.Overlay.modal: NinePatchImage {
+ source: Imagine.url + "dialog-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": true}
+ ]
+ }
+ }
+
+ T.Overlay.modeless: NinePatchImage {
+ source: Imagine.url + "dialog-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": false}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DialogButtonBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DialogButtonBox.qml
new file mode 100644
index 00000000..c24b29fc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/DialogButtonBox.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.DialogButtonBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ (control.count === 1 ? contentWidth * 2 : contentWidth) + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ spacing: 6
+
+ delegate: Button {
+ width: control.count === 1 ? control.availableWidth / 2 : undefined
+ flat: true
+ }
+
+ contentItem: ListView {
+ model: control.contentModel
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ snapMode: ListView.SnapToItem
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "dialogbuttonbox-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Drawer.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Drawer.qml
new file mode 100644
index 00000000..2c93ba75
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Drawer.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Drawer {
+ id: control
+
+ parent: T.ApplicationWindow.overlay
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ enter: Transition { SmoothedAnimation { velocity: 5 } }
+ exit: Transition { SmoothedAnimation { velocity: 5 } }
+
+ background: NinePatchImage {
+ source: Imagine.url + "drawer-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": control.modal},
+ {"dim": control.dim},
+ {"top": control.edge === Qt.TopEdge},
+ {"left": control.edge === Qt.LeftEdge},
+ {"right": control.edge === Qt.RightEdge},
+ {"bottom": control.edge === Qt.BottomEdge}
+ ]
+ }
+ }
+
+ T.Overlay.modal: NinePatchImage {
+ source: Imagine.url + "drawer-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": true}
+ ]
+ }
+ }
+
+ T.Overlay.modeless: NinePatchImage {
+ source: Imagine.url + "drawer-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": false}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Frame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Frame.qml
new file mode 100644
index 00000000..2bef3c88
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Frame.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Frame {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "frame-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/GroupBox.qml
new file mode 100644
index 00000000..7abdb6f0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/GroupBox.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.GroupBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitLabelWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: (background ? background.topPadding : 0) + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+ padding: 12
+
+ label: Label {
+ width: control.width
+
+ topPadding: background.topPadding
+ leftPadding: background.leftPadding
+ rightPadding: background.rightPadding
+ bottomPadding: background.bottomPadding
+
+ text: control.title
+ font: control.font
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+
+ color: control.palette.windowText
+
+ background: NinePatchImage {
+ width: parent.width
+ height: parent.height
+
+ source: Imagine.url + "groupbox-title"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+ }
+
+ background: NinePatchImage {
+ x: -leftInset
+ y: control.topPadding - control.bottomPadding - topInset
+ width: control.width + leftInset + rightInset
+ height: control.height + topInset + bottomInset - control.topPadding + control.padding
+
+ source: Imagine.url + "groupbox-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/HorizontalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/HorizontalHeaderView.qml
new file mode 100644
index 00000000..ec91af25
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/HorizontalHeaderView.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.HorizontalHeaderView {
+ id: control
+
+ implicitWidth: syncView ? syncView.width : 0
+ implicitHeight: contentHeight
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: text.implicitWidth + (cellPadding * 2)
+ implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
+ color: "#f6f6f6"
+ border.color: "#e4e4e4"
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ItemDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ItemDelegate.qml
new file mode 100644
index 00000000..0b3edeaf
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ItemDelegate.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ItemDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "itemdelegate-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Label.qml
new file mode 100644
index 00000000..82c0ef47
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Label.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Label {
+ id: control
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ color: control.palette.windowText
+ linkColor: control.palette.link
+
+ background: NinePatchImage {
+ source: Imagine.url + "label-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Menu.qml
new file mode 100644
index 00000000..832565e6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Menu.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+import QtQuick.Window 2.12
+
+T.Menu {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topMargin: background ? background.topInset : 0
+ leftMargin: background ? background.leftInset : 0
+ rightMargin: background ? background.rightInset : 0
+ bottomMargin: background ? background.bottomInset : 0
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ delegate: MenuItem { }
+
+ contentItem: ListView {
+ implicitHeight: contentHeight
+ model: control.contentModel
+ interactive: Window.window
+ ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
+ : false
+ clip: true
+ currentIndex: control.currentIndex
+
+ T.ScrollIndicator.vertical: ScrollIndicator { }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "menu-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": control.modal},
+ {"dim": control.dim}
+ ]
+ }
+ }
+
+ T.Overlay.modal: NinePatchImage {
+ source: Imagine.url + "menu-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": true}
+ ]
+ }
+ }
+
+ T.Overlay.modeless: NinePatchImage {
+ source: Imagine.url + "menu-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": false}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuItem.qml
new file mode 100644
index 00000000..f85fc657
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuItem.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.MenuItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.windowText
+
+ contentItem: IconLabel {
+ readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
+ readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
+ rightPadding: control.mirrored ? indicatorPadding : arrowPadding
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ }
+
+ arrow: Image {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.subMenu
+ source: Imagine.url + "menuitem-arrow"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ indicator: Image {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.checkable
+ source: Imagine.url + "menuitem-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "menuitem-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuSeparator.qml
new file mode 100644
index 00000000..9ed39087
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/MenuSeparator.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.MenuSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: NinePatchImage {
+ source: Imagine.url + "menuseparator-separator"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "menuseparator-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Page.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Page.qml
new file mode 100644
index 00000000..07ec0a75
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Page.qml
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Page {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "page-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/PageIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/PageIndicator.qml
new file mode 100644
index 00000000..8da89f5a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/PageIndicator.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.PageIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ delegate: Image {
+ source: Imagine.url + "pageindicator-delegate"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": pressed},
+ {"current": index === control.currentIndex},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered} // ### TODO: context property
+ ]
+ }
+ }
+
+ contentItem: Row {
+ spacing: control.spacing
+
+ Repeater {
+ model: control.count
+ delegate: control.delegate
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "pageindicator-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Pane.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Pane.qml
new file mode 100644
index 00000000..970b22b9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Pane.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Pane {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "pane-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Popup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Popup.qml
new file mode 100644
index 00000000..8f69bef4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Popup.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : undefined
+ leftPadding: background ? background.leftPadding : undefined
+ rightPadding: background ? background.rightPadding : undefined
+ bottomPadding: background ? background.bottomPadding : undefined
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "popup-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": control.modal},
+ {"dim": control.dim}
+ ]
+ }
+ }
+
+ T.Overlay.modal: NinePatchImage {
+ source: Imagine.url + "popup-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": true}
+ ]
+ }
+ }
+
+ T.Overlay.modeless: NinePatchImage {
+ source: Imagine.url + "popup-overlay"
+ NinePatchImageSelector on source {
+ states: [
+ {"modal": false}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ProgressBar.qml
new file mode 100644
index 00000000..2f78004e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ProgressBar.qml
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+import QtGraphicalEffects 1.12
+
+T.ProgressBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: Item {
+ implicitWidth: control.indeterminate ? animation.implicitWidth || progress.implicitWidth : progress.implicitWidth
+ implicitHeight: control.indeterminate ? animation.implicitHeight || progress.implicitHeight : progress.implicitHeight
+ scale: control.mirrored ? -1 : 1
+
+ readonly property bool hasMask: mask.status !== Image.Null
+
+ readonly property NinePatchImage progress: NinePatchImage {
+ parent: control.contentItem
+ width: control.position * parent.width
+ height: parent.height
+ visible: !control.indeterminate && !control.contentItem.hasMask
+
+ source: Imagine.url + "progressbar-progress"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"indeterminate": control.indeterminate},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ readonly property AnimatedImage animation: AnimatedImage {
+ parent: control.contentItem
+ width: parent.width
+ height: parent.height
+ playing: control.indeterminate
+ visible: control.indeterminate && !control.contentItem.hasMask
+
+ source: Imagine.url + "progressbar-animation"
+ AnimatedImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ readonly property NinePatchImage mask: NinePatchImage {
+ width: control.availableWidth
+ height: control.availableHeight
+ visible: false
+
+ source: Imagine.url + "progressbar-mask"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"indeterminate": control.indeterminate},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ readonly property OpacityMask effect: OpacityMask {
+ parent: control.contentItem
+ width: source.width
+ height: source.height
+ source: control.indeterminate ? control.contentItem.animation : control.contentItem.progress
+
+ maskSource: ShaderEffectSource {
+ sourceItem: control.contentItem.mask
+ sourceRect: Qt.rect(0, 0, control.contentItem.effect.width, control.contentItem.effect.height)
+ }
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "progressbar-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"indeterminate": control.indeterminate},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioButton.qml
new file mode 100644
index 00000000..a50bc127
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioButton.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.RadioButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ indicator: Image {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: Imagine.url + "radiobutton-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "radiobutton-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioDelegate.qml
new file mode 100644
index 00000000..5a8356f8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RadioDelegate.qml
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.RadioDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ indicator: Image {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: Imagine.url + "radiodelegate-indicator"
+ ImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "radiodelegate-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RangeSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RangeSlider.qml
new file mode 100644
index 00000000..47d90cf3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RangeSlider.qml
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.RangeSlider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ first.implicitHandleWidth + leftPadding + rightPadding,
+ second.implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ first.implicitHandleHeight + topPadding + bottomPadding,
+ second.implicitHandleHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ first.handle: Image {
+ x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
+
+ source: Imagine.url + "rangeslider-handle"
+ ImageSelector on source {
+ states: [
+ {"first": true},
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": control.first.pressed},
+ {"focused": control.first.handle.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.first.hovered}
+ ]
+ }
+ }
+
+ second.handle: Image {
+ x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
+
+ source: Imagine.url + "rangeslider-handle"
+ ImageSelector on source {
+ states: [
+ {"second": true},
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": control.second.pressed},
+ {"focused": control.second.handle.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.second.hovered}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ source: Imagine.url + "rangeslider-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ NinePatchImage {
+ x: control.horizontal ? control.first.handle.width / 2 + control.first.position * (parent.width - control.first.handle.width) : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : control.first.handle.height / 2 + control.second.visualPosition * (parent.height - control.first.handle.height)
+ width: control.horizontal ? control.second.position * (parent.width - control.first.handle.width) - control.first.position * (parent.width - control.first.handle.width) : parent.width
+ height: control.vertical ? control.second.position * (parent.height - control.first.handle.height) - control.first.position * (parent.height - control.first.handle.height): parent.height
+
+ source: Imagine.url + "rangeslider-progress"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RoundButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RoundButton.qml
new file mode 100644
index 00000000..fe4cbb36
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/RoundButton.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.RoundButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
+ : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
+ ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
+ : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
+ ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
+ }
+
+ background: NinePatchImage {
+ // ### TODO: radius?
+ source: Imagine.url + "roundbutton-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"checkable": control.checkable},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"flat": control.flat},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollBar.qml
new file mode 100644
index 00000000..68772e12
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollBar.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ScrollBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: NinePatchImage {
+ width: control.availableWidth
+ height: control.availableHeight
+
+ source: Imagine.url + "scrollbar-handle"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"interactive": control.interactive},
+ {"pressed": control.pressed},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ opacity: 0.0
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "scrollbar-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"interactive": control.interactive},
+ {"pressed": control.pressed},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ opacity: 0.0
+ }
+
+ states: [
+ State {
+ name: "active"
+ when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "active"
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
+ },
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
+ PauseAnimation { duration: 3000 }
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollIndicator.qml
new file mode 100644
index 00000000..896cd876
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ScrollIndicator.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ScrollIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: NinePatchImage {
+ width: control.availableWidth
+ height: control.availableHeight
+
+ source: Imagine.url + "scrollindicator-handle"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ opacity: 0.0
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "scrollindicator-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ opacity: 0.0
+ }
+
+ states: [
+ State {
+ name: "active"
+ when: (control.active && control.size < 1.0)
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "active"
+ NumberAnimation { targets: [contentItem, control.background]; property: "opacity"; to: 1.0 }
+ },
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 5000 }
+ NumberAnimation { targets: [contentItem, control.background]; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Slider.qml
new file mode 100644
index 00000000..fe9c3388
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Slider.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Slider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitHandleHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ handle: Image {
+ x: Math.round(control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2))
+ y: Math.round(control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)))
+
+ source: Imagine.url + "slider-handle"
+ ImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": control.pressed},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ source: Imagine.url + "slider-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ NinePatchImage {
+ x: control.horizontal ? 0 : (parent.width - width) / 2
+ y: control.horizontal
+ ? (parent.height - height) / 2
+ : control.handle.height / 2 + control.visualPosition * (parent.height - control.handle.height)
+ width: control.horizontal
+ ? control.handle.width / 2 + control.position * (parent.width - control.handle.width)
+ : parent.width
+ height: control.vertical
+ ? control.handle.height / 2 + control.position * (parent.height - control.handle.height)
+ : parent.height
+
+ source: Imagine.url + "slider-progress"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SpinBox.qml
new file mode 100644
index 00000000..61135806
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SpinBox.qml
@@ -0,0 +1,152 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.SpinBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + 2 * padding +
+ up.implicitIndicatorWidth +
+ down.implicitIndicatorWidth)
+ implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight,
+ up.implicitIndicatorHeight,
+ down.implicitIndicatorHeight)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
+ rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ validator: IntValidator {
+ locale: control.locale.name
+ bottom: Math.min(control.from, control.to)
+ top: Math.max(control.from, control.to)
+ }
+
+ contentItem: TextInput {
+ z: 2
+ text: control.displayText
+ opacity: control.enabled ? 1 : 0.3
+
+ font: control.font
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+
+ readOnly: !control.editable
+ validator: control.validator
+ inputMethodHints: control.inputMethodHints
+
+ NinePatchImage {
+ z: -1
+ width: control.width
+ height: control.height
+ visible: control.editable
+
+ source: Imagine.url + "spinbox-editor"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+ }
+
+ up.indicator: NinePatchImage {
+ x: control.mirrored ? 0 : parent.width - width
+ height: parent.height
+
+ source: Imagine.url + "spinbox-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"up": true},
+ {"disabled": !control.up.indicator.enabled},
+ {"editable": control.editable},
+ {"pressed": control.up.pressed},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.up.hovered}
+ ]
+ }
+ }
+
+ down.indicator: NinePatchImage {
+ x: control.mirrored ? parent.width - width : 0
+ height: parent.height
+
+ source: Imagine.url + "spinbox-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"down": true},
+ {"disabled": !control.down.indicator.enabled},
+ {"editable": control.editable},
+ {"pressed": control.down.pressed},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.down.hovered}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "spinbox-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"editable": control.editable},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SplitView.qml
new file mode 100644
index 00000000..a4a858f4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SplitView.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.13
+import QtQuick.Templates 2.13 as T
+import QtQuick.Controls.Imagine 2.13
+import QtQuick.Controls.Imagine.impl 2.13
+
+T.SplitView {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ handle: NinePatchImage {
+ source: Imagine.url + "splitview-handle"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.orientation === Qt.Vertical},
+ {"horizontal":control.orientation === Qt.Horizontal},
+ {"disabled": !control.enabled},
+ {"pressed": T.SplitHandle.pressed},
+ {"mirrored": control.mirrored},
+ {"hovered": T.SplitHandle.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/StackView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/StackView.qml
new file mode 100644
index 00000000..407b1d15
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/StackView.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.StackView {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth
+ implicitHeight: implicitBackgroundHeight
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ popEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ popExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ pushEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ pushExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ replaceEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ replaceExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "stackview-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeDelegate.qml
new file mode 100644
index 00000000..3850253f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeDelegate.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.SwipeDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "swipedelegate-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeView.qml
new file mode 100644
index 00000000..70d65fef
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwipeView.qml
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.SwipeView {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: ListView {
+ model: control.contentModel
+ interactive: control.interactive
+ currentIndex: control.currentIndex
+ focus: control.focus
+
+ spacing: control.spacing
+ orientation: control.orientation
+ snapMode: ListView.SnapOneItem
+ boundsBehavior: Flickable.StopAtBounds
+
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ preferredHighlightBegin: 0
+ preferredHighlightEnd: 0
+ highlightMoveDuration: 250
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "swipeview-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"interactive": control.interactive},
+ {"focused": control.contentItem.activeFocus},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Switch.qml
new file mode 100644
index 00000000..50b407ac
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Switch.qml
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Switch {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ indicator: NinePatchImage {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
+ height: Math.max(implicitHeight, handle.implicitHeight)
+
+ source: Imagine.url + "switch-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ property NinePatchImage handle: NinePatchImage {
+ readonly property real minPos: parent.leftPadding - leftPadding
+ readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
+ readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
+
+ parent: control.indicator
+
+ x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+
+ source: Imagine.url + "switch-handle"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ Behavior on x {
+ enabled: !control.down
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "switch-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwitchDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwitchDelegate.qml
new file mode 100644
index 00000000..73e5aac0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/SwitchDelegate.qml
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.SwitchDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ indicator: NinePatchImage {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
+ height: Math.max(implicitHeight, handle.implicitHeight)
+
+ source: Imagine.url + "switchdelegate-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ property NinePatchImage handle: NinePatchImage {
+ readonly property real minPos: parent.leftPadding - leftPadding
+ readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
+ readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
+
+ parent: control.indicator
+
+ x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+
+ source: Imagine.url + "switchdelegate-handle"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+
+ Behavior on x {
+ enabled: !control.down
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+ }
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "switchdelegate-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabBar.qml
new file mode 100644
index 00000000..69516e03
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabBar.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.TabBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: ListView {
+ model: control.contentModel
+ currentIndex: control.currentIndex
+
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ flickableDirection: Flickable.AutoFlickIfNeeded
+ snapMode: ListView.SnapToItem
+
+ highlightMoveDuration: 0
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 48
+ preferredHighlightEnd: width - 48
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "tabbar-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"header": control.position === T.TabBar.Header },
+ {"footer": control.position === T.TabBar.Footer },
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabButton.qml
new file mode 100644
index 00000000..1cdcfc4b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TabButton.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.TabButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "tabbutton-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextArea.qml
new file mode 100644
index 00000000..c7505b52
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextArea.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.TextArea {
+ id: control
+
+ implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
+ implicitBackgroundWidth + leftInset + rightInset,
+ placeholder.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight + topInset + bottomInset,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ verticalAlignment: Qt.AlignVCenter
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "textarea-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextField.qml
new file mode 100644
index 00000000..3ff0ad44
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/TextField.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.TextField {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth + leftInset + rightInset
+ || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+ verticalAlignment: Qt.AlignVCenter
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "textfield-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolBar.qml
new file mode 100644
index 00000000..99bcd3ba
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolBar.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ToolBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ background: NinePatchImage {
+ source: Imagine.url + "toolbar-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"header": control.position === T.ToolBar.Header },
+ {"footer": control.position === T.ToolBar.Footer },
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolButton.qml
new file mode 100644
index 00000000..cc22f88d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolButton.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ToolButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ spacing: 6 // ###
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "toolbutton-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"pressed": control.down},
+ {"checked": control.checked},
+ {"checkable": control.checkable},
+ {"focused": control.visualFocus},
+ {"highlighted": control.highlighted},
+ {"flat": control.flat},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolSeparator.qml
new file mode 100644
index 00000000..c0887e4d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolSeparator.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ToolSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ contentItem: NinePatchImage {
+ source: Imagine.url + "toolseparator-separator"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "toolseparator-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"vertical": control.vertical},
+ {"horizontal": control.horizontal},
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolTip.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolTip.qml
new file mode 100644
index 00000000..21d75ebc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/ToolTip.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.ToolTip {
+ id: control
+
+ x: parent ? (parent.width - implicitWidth) / 2 : 0 - (background ? background.leftInset : 0)
+ y: -implicitHeight - (background ? background.topInset : 0)
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topMargin: background ? background.topInset : 0
+ leftMargin: background ? background.leftInset : 0
+ rightMargin: background ? background.rightInset : 0
+ bottomMargin: background ? background.bottomInset : 0
+
+ topPadding: background ? background.topPadding : 0
+ leftPadding: background ? background.leftPadding : 0
+ rightPadding: background ? background.rightPadding : 0
+ bottomPadding: background ? background.bottomPadding : 0
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ wrapMode: Text.Wrap
+ color: control.palette.toolTipText
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "tooltip-background"
+ NinePatchImageSelector on source {
+ states: [
+ // ###
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Tumbler.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Tumbler.qml
new file mode 100644
index 00000000..12025cc5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/Tumbler.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Imagine 2.12
+import QtQuick.Controls.Imagine.impl 2.12
+
+T.Tumbler {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 60 // ### remove 60 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 200 // ### remove 200 in Qt 6
+
+ topInset: background ? -background.topInset || 0 : 0
+ leftInset: background ? -background.leftInset || 0 : 0
+ rightInset: background ? -background.rightInset || 0 : 0
+ bottomInset: background ? -background.bottomInset || 0 : 0
+
+ delegate: Text {
+ text: modelData
+ font: control.font
+ color: control.palette.text
+ opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ implicitWidth: 60
+ implicitHeight: 200
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: control.contentItem.width / 2
+ startY: -control.contentItem.delegateHeight / 2
+ PathLine {
+ x: control.contentItem.width / 2
+ y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
+ }
+ }
+
+ property real delegateHeight: control.availableHeight / control.visibleItemCount
+ }
+
+ background: NinePatchImage {
+ source: Imagine.url + "tumbler-background"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"focused": control.visualFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/VerticalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/VerticalHeaderView.qml
new file mode 100644
index 00000000..3fc9ca5a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/VerticalHeaderView.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.VerticalHeaderView {
+ id: control
+
+ implicitWidth: contentWidth
+ implicitHeight: syncView ? syncView.height : 0
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
+ implicitHeight: text.implicitHeight + (cellPadding * 2)
+ color: "#f6f6f6"
+ border.color: "#e4e4e4"
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/plugins.qmltypes
new file mode 100644
index 00000000..785b6dba
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/plugins.qmltypes
@@ -0,0 +1,347 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Imagine 2.15'
+
+Module {
+ dependencies: ["QtQuick.Controls 2.0"]
+ Component {
+ name: "QQuickAnimatedImageSelector"
+ prototype: "QQuickImageSelector"
+ exports: ["QtQuick.Controls.Imagine.impl/AnimatedImageSelector 2.3"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component { name: "QQuickAttachedObject"; prototype: "QObject" }
+ Component {
+ name: "QQuickImage"
+ defaultProperty: "data"
+ prototype: "QQuickImageBase"
+ Enum {
+ name: "HAlignment"
+ values: {
+ "AlignLeft": 1,
+ "AlignRight": 2,
+ "AlignHCenter": 4
+ }
+ }
+ Enum {
+ name: "VAlignment"
+ values: {
+ "AlignTop": 32,
+ "AlignBottom": 64,
+ "AlignVCenter": 128
+ }
+ }
+ Enum {
+ name: "FillMode"
+ values: {
+ "Stretch": 0,
+ "PreserveAspectFit": 1,
+ "PreserveAspectCrop": 2,
+ "Tile": 3,
+ "TileVertically": 4,
+ "TileHorizontally": 5,
+ "Pad": 6
+ }
+ }
+ Property { name: "fillMode"; type: "FillMode" }
+ Property { name: "paintedWidth"; type: "double"; isReadonly: true }
+ Property { name: "paintedHeight"; type: "double"; isReadonly: true }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "mipmap"; revision: 3; type: "bool" }
+ Property { name: "autoTransform"; revision: 5; type: "bool" }
+ Property { name: "sourceClipRect"; revision: 15; type: "QRectF" }
+ Signal { name: "paintedGeometryChanged" }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "VAlignment" }
+ }
+ Signal {
+ name: "mipmapChanged"
+ revision: 3
+ Parameter { type: "bool" }
+ }
+ Signal { name: "autoTransformChanged"; revision: 5 }
+ }
+ Component {
+ name: "QQuickImageBase"
+ defaultProperty: "data"
+ prototype: "QQuickImplicitSizeItem"
+ Enum {
+ name: "LoadPixmapOptions"
+ values: {
+ "NoOption": 0,
+ "HandleDPR": 1,
+ "UseProviderOptions": 2
+ }
+ }
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Ready": 1,
+ "Loading": 2,
+ "Error": 3
+ }
+ }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "progress"; type: "double"; isReadonly: true }
+ Property { name: "asynchronous"; type: "bool" }
+ Property { name: "cache"; type: "bool" }
+ Property { name: "sourceSize"; type: "QSize" }
+ Property { name: "mirror"; type: "bool" }
+ Property { name: "currentFrame"; revision: 14; type: "int" }
+ Property { name: "frameCount"; revision: 14; type: "int"; isReadonly: true }
+ Property { name: "colorSpace"; revision: 15; type: "QColorSpace" }
+ Signal {
+ name: "sourceChanged"
+ Parameter { type: "QUrl" }
+ }
+ Signal {
+ name: "statusChanged"
+ Parameter { type: "QQuickImageBase::Status" }
+ }
+ Signal {
+ name: "progressChanged"
+ Parameter { name: "progress"; type: "double" }
+ }
+ Signal { name: "currentFrameChanged"; revision: 14 }
+ Signal { name: "frameCountChanged"; revision: 14 }
+ Signal { name: "sourceClipRectChanged"; revision: 15 }
+ Signal { name: "colorSpaceChanged"; revision: 15 }
+ }
+ Component {
+ name: "QQuickImageSelector"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Imagine.impl/ImageSelector 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "source"; type: "QUrl"; isReadonly: true }
+ Property { name: "name"; type: "string" }
+ Property { name: "path"; type: "string" }
+ Property { name: "states"; type: "QVariantList" }
+ Property { name: "separator"; type: "string" }
+ Property { name: "cache"; type: "bool" }
+ }
+ Component {
+ name: "QQuickImagineStyle"
+ prototype: "QQuickAttachedObject"
+ exports: ["QtQuick.Controls.Imagine/Imagine 2.3"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "path"; type: "string" }
+ Property { name: "url"; type: "QUrl"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickImplicitSizeItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Property { name: "implicitWidth"; type: "double"; isReadonly: true }
+ Property { name: "implicitHeight"; type: "double"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickItem"
+ defaultProperty: "data"
+ prototype: "QObject"
+ Enum {
+ name: "Flags"
+ values: {
+ "ItemClipsChildrenToShape": 1,
+ "ItemAcceptsInputMethod": 2,
+ "ItemIsFocusScope": 4,
+ "ItemHasContents": 8,
+ "ItemAcceptsDrops": 16
+ }
+ }
+ Enum {
+ name: "TransformOrigin"
+ values: {
+ "TopLeft": 0,
+ "Top": 1,
+ "TopRight": 2,
+ "Left": 3,
+ "Center": 4,
+ "Right": 5,
+ "BottomLeft": 6,
+ "Bottom": 7,
+ "BottomRight": 8
+ }
+ }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "z"; type: "double" }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "opacity"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Property { name: "state"; type: "string" }
+ Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
+ Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "clip"; type: "bool" }
+ Property { name: "focus"; type: "bool" }
+ Property { name: "activeFocus"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "scale"; type: "double" }
+ Property { name: "transformOrigin"; type: "TransformOrigin" }
+ Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
+ Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "antialiasing"; type: "bool" }
+ Property { name: "implicitWidth"; type: "double" }
+ Property { name: "implicitHeight"; type: "double" }
+ Property { name: "containmentMask"; revision: 11; type: "QObject"; isPointer: true }
+ Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "childrenRectChanged"
+ Parameter { type: "QRectF" }
+ }
+ Signal {
+ name: "baselineOffsetChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ Signal {
+ name: "focusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnTabChanged"
+ revision: 1
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "parentChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "transformOriginChanged"
+ Parameter { type: "TransformOrigin" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "antialiasingChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "clipChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "windowChanged"
+ revision: 1
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ Signal { name: "containmentMaskChanged"; revision: 11 }
+ Method { name: "update" }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ Parameter { name: "targetSize"; type: "QSize" }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapFromItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapFromGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "forceActiveFocus" }
+ Method {
+ name: "forceActiveFocus"
+ Parameter { name: "reason"; type: "Qt::FocusReason" }
+ }
+ Method {
+ name: "nextItemInFocusChain"
+ revision: 1
+ type: "QQuickItem*"
+ Parameter { name: "forward"; type: "bool" }
+ }
+ Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
+ Method {
+ name: "childAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickNinePatchImage"
+ defaultProperty: "data"
+ prototype: "QQuickImage"
+ exports: ["QtQuick.Controls.Imagine.impl/NinePatchImage 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "topPadding"; type: "double"; isReadonly: true }
+ Property { name: "leftPadding"; type: "double"; isReadonly: true }
+ Property { name: "rightPadding"; type: "double"; isReadonly: true }
+ Property { name: "bottomPadding"; type: "double"; isReadonly: true }
+ Property { name: "topInset"; type: "double"; isReadonly: true }
+ Property { name: "leftInset"; type: "double"; isReadonly: true }
+ Property { name: "rightInset"; type: "double"; isReadonly: true }
+ Property { name: "bottomInset"; type: "double"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickNinePatchImageSelector"
+ prototype: "QQuickImageSelector"
+ exports: ["QtQuick.Controls.Imagine.impl/NinePatchImageSelector 2.3"]
+ exportMetaObjectRevisions: [0]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qmldir
new file mode 100644
index 00000000..7b4b3ea0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qmldir
@@ -0,0 +1,5 @@
+module QtQuick.Controls.Imagine
+plugin qtquickcontrols2imaginestyleplugin
+classname QtQuickControls2ImagineStylePlugin
+depends QtQuick.Controls 2.5
+depends QtGraphicalEffects 1.0
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qtquickcontrols2imaginestyleplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qtquickcontrols2imaginestyleplugin.dll
new file mode 100644
index 00000000..7cdb86de
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Imagine/qtquickcontrols2imaginestyleplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ItemDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ItemDelegate.qml
new file mode 100644
index 00000000..6229e2bb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ItemDelegate.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ItemDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 8
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.highlighted ? control.palette.highlightedText : control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ visible: control.down || control.highlighted || control.visualFocus
+ color: Color.blend(control.down ? control.palette.midlight : control.palette.light,
+ control.palette.highlight, control.visualFocus ? 0.15 : 0.0)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Label.qml
new file mode 100644
index 00000000..9a42635f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Label.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Label {
+ id: control
+
+ color: control.palette.windowText
+ linkColor: control.palette.link
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ApplicationWindow.qml
new file mode 100644
index 00000000..6a10ed7f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ApplicationWindow.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.ApplicationWindow {
+ id: window
+
+ color: Material.backgroundColor
+
+ overlay.modal: Rectangle {
+ color: window.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+
+ overlay.modeless: Rectangle {
+ color: window.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BoxShadow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BoxShadow.qml
new file mode 100644
index 00000000..5a746c0f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BoxShadow.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+/*
+ A implementation of CSS's box-shadow, used by ElevationEffect for a Material Design
+ elevation shadow effect.
+ */
+RectangularGlow {
+ // The 4 properties from CSS box-shadow, plus the inherited color property
+ property int offsetX
+ property int offsetY
+ property int blurRadius
+ property int spreadRadius
+
+ // The source item the shadow is being applied to, used for correctly
+ // calculating the corner radious
+ property Item source
+
+ property bool fullWidth
+ property bool fullHeight
+
+ x: (parent.width - width)/2 + offsetX
+ y: (parent.height - height)/2 + offsetY
+
+ implicitWidth: source ? source.width : parent.width
+ implicitHeight: source ? source.height : parent.height
+
+ width: implicitWidth + 2 * spreadRadius + (fullWidth ? 2 * cornerRadius : 0)
+ height: implicitHeight + 2 * spreadRadius + (fullHeight ? 2 * cornerRadius : 0)
+ glowRadius: blurRadius/2
+ spread: 0.05
+ cornerRadius: blurRadius + (source && source.radius || 0)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BusyIndicator.qml
new file mode 100644
index 00000000..8173248c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/BusyIndicator.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.BusyIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ contentItem: BusyIndicatorImpl {
+ implicitWidth: control.Material.touchTarget
+ implicitHeight: control.Material.touchTarget
+ color: control.Material.accentColor
+
+ running: control.running
+ opacity: control.running ? 1 : 0
+ Behavior on opacity { OpacityAnimator { duration: 250 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Button.qml
new file mode 100644
index 00000000..04c6664c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Button.qml
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Button {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topInset: 6
+ bottomInset: 6
+ padding: 12
+ horizontalPadding: padding - 4
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: !enabled ? Material.hintTextColor :
+ flat && highlighted ? Material.accentColor :
+ highlighted ? Material.primaryHighlightedTextColor : Material.foreground
+
+ Material.elevation: flat ? control.down || control.hovered ? 2 : 0
+ : control.down ? 8 : 2
+ Material.background: flat ? "transparent" : undefined
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Material.hintTextColor :
+ control.flat && control.highlighted ? control.Material.accentColor :
+ control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground
+ }
+
+ background: Rectangle {
+ implicitWidth: 64
+ implicitHeight: control.Material.buttonHeight
+
+ radius: 2
+ color: !control.enabled ? control.Material.buttonDisabledColor :
+ control.highlighted ? control.Material.highlightedButtonColor : control.Material.buttonColor
+
+ PaddedRectangle {
+ y: parent.height - 4
+ width: parent.width
+ height: 4
+ radius: 2
+ topPadding: -2
+ clip: true
+ visible: control.checkable && (!control.highlighted || control.flat)
+ color: control.checked && control.enabled ? control.Material.accentColor : control.Material.secondaryTextColor
+ }
+
+ // The layer is disabled when the button color is transparent so you can do
+ // Material.background: "transparent" and get a proper flat button without needing
+ // to set Material.elevation as well
+ layer.enabled: control.enabled && control.Material.buttonColor.a > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+
+ Ripple {
+ clipRadius: 2
+ width: parent.width
+ height: parent.height
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.flat && control.highlighted ? control.Material.highlightedRippleColor : control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckBox.qml
new file mode 100644
index 00000000..159e2f12
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckBox.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.CheckBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 8
+ padding: 8
+ verticalPadding: padding + 7
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+
+ Ripple {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 28; height: 28
+
+ z: -1
+ anchor: control
+ pressed: control.pressed
+ active: control.down || control.visualFocus || control.hovered
+ color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckDelegate.qml
new file mode 100644
index 00000000..c7d7575e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckDelegate.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.CheckDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: 8
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.delegateHeight
+
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckIndicator.qml
new file mode 100644
index 00000000..7caf8553
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CheckIndicator.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+Rectangle {
+ id: indicatorItem
+ implicitWidth: 18
+ implicitHeight: 18
+ color: "transparent"
+ border.color: !control.enabled ? control.Material.hintTextColor
+ : checkState !== Qt.Unchecked ? control.Material.accentColor : control.Material.secondaryTextColor
+ border.width: checkState !== Qt.Unchecked ? width / 2 : 2
+ radius: 2
+
+ property Item control
+ property int checkState: control.checkState
+
+ Behavior on border.width {
+ NumberAnimation {
+ duration: 100
+ easing.type: Easing.OutCubic
+ }
+ }
+
+ Behavior on border.color {
+ ColorAnimation {
+ duration: 100
+ easing.type: Easing.OutCubic
+ }
+ }
+
+ // TODO: This needs to be transparent
+ Image {
+ id: checkImage
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 14
+ height: 14
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/images/check.png"
+ fillMode: Image.PreserveAspectFit
+
+ scale: indicatorItem.checkState === Qt.Checked ? 1 : 0
+ Behavior on scale { NumberAnimation { duration: 100 } }
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 12
+ height: 3
+
+ scale: indicatorItem.checkState === Qt.PartiallyChecked ? 1 : 0
+ Behavior on scale { NumberAnimation { duration: 100 } }
+ }
+
+ states: [
+ State {
+ name: "checked"
+ when: indicatorItem.checkState === Qt.Checked
+ },
+ State {
+ name: "partiallychecked"
+ when: indicatorItem.checkState === Qt.PartiallyChecked
+ }
+ ]
+
+ transitions: Transition {
+ SequentialAnimation {
+ NumberAnimation {
+ target: indicatorItem
+ property: "scale"
+ // Go down 2 pixels in size.
+ to: 1 - 2 / indicatorItem.width
+ duration: 120
+ }
+ NumberAnimation {
+ target: indicatorItem
+ property: "scale"
+ to: 1
+ duration: 120
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ComboBox.qml
new file mode 100644
index 00000000..a9bdd934
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ComboBox.qml
@@ -0,0 +1,180 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Material 2.15
+import QtQuick.Controls.Material.impl 2.15
+
+T.ComboBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ topInset: 6
+ bottomInset: 6
+
+ leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+ rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+
+ Material.elevation: flat ? control.pressed || control.hovered ? 2 : 0
+ : control.pressed ? 8 : 2
+ Material.background: flat ? "transparent" : undefined
+ Material.foreground: flat ? undefined : Material.primaryTextColor
+
+ delegate: MenuItem {
+ width: ListView.view.width
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
+ Material.foreground: control.currentIndex === index ? ListView.view.contentItem.Material.accent : ListView.view.contentItem.Material.foreground
+ highlighted: control.highlightedIndex === index
+ hoverEnabled: control.hoverEnabled
+ }
+
+ indicator: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/images/drop-indicator.png"
+ }
+
+ contentItem: T.TextField {
+ padding: 6
+ leftPadding: control.editable ? 2 : control.mirrored ? 0 : 12
+ rightPadding: control.editable ? 2 : control.mirrored ? 12 : 0
+
+ text: control.editable ? control.editText : control.displayText
+
+ enabled: control.editable
+ autoScroll: control.editable
+ readOnly: control.down
+ inputMethodHints: control.inputMethodHints
+ validator: control.validator
+ selectByMouse: control.selectTextByMouse
+
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ selectionColor: control.Material.accentColor
+ selectedTextColor: control.Material.primaryHighlightedTextColor
+ verticalAlignment: Text.AlignVCenter
+
+ cursorDelegate: CursorDelegate { }
+ }
+
+ background: Rectangle {
+ implicitWidth: 120
+ implicitHeight: control.Material.buttonHeight
+
+ radius: control.flat ? 0 : 2
+ color: !control.editable ? control.Material.dialogColor : "transparent"
+
+ layer.enabled: control.enabled && !control.editable && control.Material.background.a > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+
+ Rectangle {
+ visible: control.editable
+ y: parent.y + control.baselineOffset
+ width: parent.width
+ height: control.activeFocus ? 2 : 1
+ color: control.editable && control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
+ }
+
+ Ripple {
+ clip: control.flat
+ clipRadius: control.flat ? 0 : 2
+ x: control.editable && control.indicator ? control.indicator.x : 0
+ width: control.editable && control.indicator ? control.indicator.width : parent.width
+ height: parent.height
+ pressed: control.pressed
+ anchor: control.editable && control.indicator ? control.indicator : control
+ active: control.pressed || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+
+ popup: T.Popup {
+ y: control.editable ? control.height - 5 : 0
+ width: control.width
+ height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
+ transformOrigin: Item.Top
+ topMargin: 12
+ bottomMargin: 12
+
+ Material.theme: control.Material.theme
+ Material.accent: control.Material.accent
+ Material.primary: control.Material.primary
+
+ enter: Transition {
+ // grow_fade_in
+ NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ exit: Transition {
+ // shrink_fade_out
+ NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ contentItem: ListView {
+ clip: true
+ implicitHeight: contentHeight
+ model: control.delegateModel
+ currentIndex: control.highlightedIndex
+ highlightMoveDuration: 0
+
+ T.ScrollIndicator.vertical: ScrollIndicator { }
+ }
+
+ background: Rectangle {
+ radius: 2
+ color: parent.Material.dialogColor
+
+ layer.enabled: control.enabled
+ layer.effect: ElevationEffect {
+ elevation: 8
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CursorDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CursorDelegate.qml
new file mode 100644
index 00000000..fe2d25c6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/CursorDelegate.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+
+Rectangle {
+ id: cursor
+
+ color: parent.Material.accentColor
+ width: 2
+ visible: parent.activeFocus && !parent.readOnly && parent.selectionStart === parent.selectionEnd
+
+ Connections {
+ target: cursor.parent
+ function onCursorPositionChanged() {
+ // keep a moving cursor visible
+ cursor.opacity = 1
+ timer.restart()
+ }
+ }
+
+ Timer {
+ id: timer
+ running: cursor.parent.activeFocus && !cursor.parent.readOnly && interval != 0
+ repeat: true
+ interval: Qt.styleHints.cursorFlashTime / 2
+ onTriggered: cursor.opacity = !cursor.opacity ? 1 : 0
+ // force the cursor visible when gaining focus
+ onRunningChanged: cursor.opacity = 1
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DelayButton.qml
new file mode 100644
index 00000000..6b5ef3ad
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DelayButton.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.DelayButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topInset: 6
+ bottomInset: 6
+ padding: 12
+ horizontalPadding: padding - 4
+
+ Material.elevation: control.down ? 8 : 2
+
+ transition: Transition {
+ NumberAnimation {
+ duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
+ }
+ }
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Material.hintTextColor : control.Material.foreground
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
+ background: Rectangle {
+ implicitWidth: 64
+ implicitHeight: control.Material.buttonHeight
+
+ radius: 2
+ color: !control.enabled ? control.Material.buttonDisabledColor : control.Material.buttonColor
+
+ PaddedRectangle {
+ y: parent.height - 4
+ width: parent.width
+ height: 4
+ radius: 2
+ topPadding: -2
+ clip: true
+ color: control.checked && control.enabled ? control.Material.accentColor : control.Material.secondaryTextColor
+
+ PaddedRectangle {
+ width: parent.width * control.progress
+ height: 4
+ radius: 2
+ topPadding: -2
+ rightPadding: Math.max(-2, width - parent.width)
+ clip: true
+ color: control.Material.accentColor
+ }
+ }
+
+ layer.enabled: control.enabled && control.Material.buttonColor.a > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+
+ Ripple {
+ clipRadius: 2
+ width: parent.width
+ height: parent.height
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dial.qml
new file mode 100644
index 00000000..1f80a7fe
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dial.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Dial {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 100 // ### remove 100 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 100 // ### remove 100 in Qt 6
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 100
+
+ x: control.width / 2 - width / 2
+ y: control.height / 2 - height / 2
+ width: Math.max(64, Math.min(control.width, control.height))
+ height: width
+ color: "transparent"
+ radius: width / 2
+
+ border.color: control.enabled ? control.Material.accentColor : control.Material.hintTextColor
+ }
+
+ handle: SliderHandle {
+ x: control.background.x + control.background.width / 2 - control.handle.width / 2
+ y: control.background.y + control.background.height / 2 - control.handle.height / 2
+ transform: [
+ Translate {
+ y: -control.background.height * 0.4 + control.handle.height / 2
+ },
+ Rotation {
+ angle: control.angle
+ origin.x: control.handle.width / 2
+ origin.y: control.handle.height / 2
+ }
+ ]
+ implicitWidth: 10
+ implicitHeight: 10
+
+ value: control.value
+ handleHasFocus: control.visualFocus
+ handlePressed: control.pressed
+ handleHovered: control.hovered
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dialog.qml
new file mode 100644
index 00000000..364c0e57
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Dialog.qml
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Dialog {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ padding: 24
+ topPadding: 20
+
+ Material.elevation: 24
+
+ enter: Transition {
+ // grow_fade_in
+ NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ exit: Transition {
+ // shrink_fade_out
+ NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ background: Rectangle {
+ radius: 2
+ color: control.Material.dialogColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+
+ header: Label {
+ text: control.title
+ visible: control.title
+ elide: Label.ElideRight
+ padding: 24
+ bottomPadding: 0
+ // TODO: QPlatformTheme::TitleBarFont
+ font.bold: true
+ font.pixelSize: 16
+ background: PaddedRectangle {
+ radius: 2
+ color: control.Material.dialogColor
+ bottomPadding: -2
+ clip: true
+ }
+ }
+
+ footer: DialogButtonBox {
+ visible: count > 0
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DialogButtonBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DialogButtonBox.qml
new file mode 100644
index 00000000..c53b8210
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/DialogButtonBox.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.DialogButtonBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 8
+ padding: 8
+ verticalPadding: 2
+ alignment: Qt.AlignRight
+ buttonLayout: T.DialogButtonBox.AndroidLayout
+
+ Material.foreground: Material.accent
+
+ delegate: Button { flat: true }
+
+ contentItem: ListView {
+ model: control.contentModel
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ snapMode: ListView.SnapToItem
+ }
+
+ background: PaddedRectangle {
+ implicitHeight: control.Material.dialogButtonBoxHeight
+ radius: 2
+ color: control.Material.dialogColor
+ // Rounded corners should be only at the top or at the bottom
+ topPadding: control.position === T.DialogButtonBox.Footer ? -2 : 0
+ bottomPadding: control.position === T.DialogButtonBox.Header ? -2 : 0
+ clip: true
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Drawer.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Drawer.qml
new file mode 100644
index 00000000..3d64cdef
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Drawer.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Drawer {
+ id: control
+
+ parent: T.Overlay.overlay
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: !dim && edge === Qt.BottomEdge && Material.elevation === 0
+ leftPadding: !dim && edge === Qt.RightEdge && Material.elevation === 0
+ rightPadding: !dim && edge === Qt.LeftEdge && Material.elevation === 0
+ bottomPadding: !dim && edge === Qt.TopEdge && Material.elevation === 0
+
+ enter: Transition { SmoothedAnimation { velocity: 5 } }
+ exit: Transition { SmoothedAnimation { velocity: 5 } }
+
+ Material.elevation: !interactive && !dim ? 0 : 16
+
+ background: Rectangle {
+ color: control.Material.dialogColor
+
+ Rectangle {
+ readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
+ width: horizontal ? 1 : parent.width
+ height: horizontal ? parent.height : 1
+ color: control.Material.dividerColor
+ x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
+ y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
+ visible: !control.dim && control.Material.elevation === 0
+ }
+
+ layer.enabled: control.position > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ fullHeight: true
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ElevationEffect.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ElevationEffect.qml
new file mode 100644
index 00000000..73a2a238
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ElevationEffect.qml
@@ -0,0 +1,279 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+/*
+ An effect for standard Material Design elevation shadows. Useful for using as \c layer.effect.
+ */
+Item {
+ id: effect
+
+ /*
+ The source the effect is applied to.
+ */
+ property var source
+
+ /*
+ The elevation of the \l source Item.
+ */
+ property int elevation: 0
+
+ /*
+ Set to \c true if the \l source Item is the same width as its parent and the shadow
+ should be full width instead of rounding around the corner of the Item.
+
+ \sa fullHeight
+ */
+ property bool fullWidth: false
+
+ /*
+ Set to \c true if the \l source Item is the same height as its parent and the shadow
+ should be full height instead of rounding around the corner of the Item.
+
+ \sa fullWidth
+ */
+ property bool fullHeight: false
+
+ /*
+ \internal
+
+ The actual source Item the effect is applied to.
+ */
+ readonly property Item sourceItem: source.sourceItem
+
+ /*
+ * The following shadow values are taken from Angular Material
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2016 Google, Inc. http://angularjs.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+ /*
+ \internal
+
+ The shadows to use for each possible elevation. There are three shadows that when combined
+ make up the elevation.
+ */
+ readonly property var _shadows: [
+ [{offset: 0, blur: 0, spread: 0},
+ {offset: 0, blur: 0, spread: 0},
+ {offset: 0, blur: 0, spread: 0}],
+
+ [{offset: 1, blur: 3, spread: 0},
+ {offset: 1, blur: 1, spread: 0},
+ {offset: 2, blur: 1, spread: -1}],
+
+ [{offset: 1, blur: 5, spread: 0},
+ {offset: 2, blur: 2, spread: 0},
+ {offset: 3, blur: 1, spread: -2}],
+
+ [{offset: 1, blur: 8, spread: 0},
+ {offset: 3, blur: 4, spread: 0},
+ {offset: 3, blur: 3, spread: -2}],
+
+ [{offset: 2, blur: 4, spread: -1},
+ {offset: 4, blur: 5, spread: 0},
+ {offset: 1, blur: 10, spread: 0}],
+
+ [{offset: 3, blur: 5, spread: -1},
+ {offset: 5, blur: 8, spread: 0},
+ {offset: 1, blur: 14, spread: 0}],
+
+ [{offset: 3, blur: 5, spread: -1},
+ {offset: 6, blur: 10, spread: 0},
+ {offset: 1, blur: 18, spread: 0}],
+
+ [{offset: 4, blur: 5, spread: -2},
+ {offset: 7, blur: 10, spread: 1},
+ {offset: 2, blur: 16, spread: 1}],
+
+ [{offset: 5, blur: 5, spread: -3},
+ {offset: 8, blur: 10, spread: 1},
+ {offset: 3, blur: 14, spread: 2}],
+
+ [{offset: 5, blur: 6, spread: -3},
+ {offset: 9, blur: 12, spread: 1},
+ {offset: 3, blur: 16, spread: 2}],
+
+ [{offset: 6, blur: 6, spread: -3},
+ {offset: 10, blur: 14, spread: 1},
+ {offset: 4, blur: 18, spread: 3}],
+
+ [{offset: 6, blur: 7, spread: -4},
+ {offset: 11, blur: 15, spread: 1},
+ {offset: 4, blur: 20, spread: 3}],
+
+ [{offset: 7, blur: 8, spread: -4},
+ {offset: 12, blur: 17, spread: 2},
+ {offset: 5, blur: 22, spread: 4}],
+
+ [{offset: 7, blur: 8, spread: -4},
+ {offset: 13, blur: 19, spread: 2},
+ {offset: 5, blur: 24, spread: 4}],
+
+ [{offset: 7, blur: 9, spread: -4},
+ {offset: 14, blur: 21, spread: 2},
+ {offset: 5, blur: 26, spread: 4}],
+
+ [{offset: 8, blur: 9, spread: -5},
+ {offset: 15, blur: 22, spread: 2},
+ {offset: 6, blur: 28, spread: 5}],
+
+ [{offset: 8, blur: 10, spread: -5},
+ {offset: 16, blur: 24, spread: 2},
+ {offset: 6, blur: 30, spread: 5}],
+
+ [{offset: 8, blur: 11, spread: -5},
+ {offset: 17, blur: 26, spread: 2},
+ {offset: 6, blur: 32, spread: 5}],
+
+ [{offset: 9, blur: 11, spread: -5},
+ {offset: 18, blur: 28, spread: 2},
+ {offset: 7, blur: 34, spread: 6}],
+
+ [{offset: 9, blur: 12, spread: -6},
+ {offset: 19, blur: 29, spread: 2},
+ {offset: 7, blur: 36, spread: 6}],
+
+ [{offset: 10, blur: 13, spread: -6},
+ {offset: 20, blur: 31, spread: 3},
+ {offset: 8, blur: 38, spread: 7}],
+
+ [{offset: 10, blur: 13, spread: -6},
+ {offset: 21, blur: 33, spread: 3},
+ {offset: 8, blur: 40, spread: 7}],
+
+ [{offset: 10, blur: 14, spread: -6},
+ {offset: 22, blur: 35, spread: 3},
+ {offset: 8, blur: 42, spread: 7}],
+
+ [{offset: 11, blur: 14, spread: -7},
+ {offset: 23, blur: 36, spread: 3},
+ {offset: 9, blur: 44, spread: 8}],
+
+ [{offset: 11, blur: 15, spread: -7},
+ {offset: 24, blur: 38, spread: 3},
+ {offset: 9, blur: 46, spread: 8}]
+ ]
+
+ /*
+ \internal
+
+ The current shadow based on the elevation.
+ */
+ readonly property var _shadow: _shadows[Math.max(0, Math.min(elevation, _shadows.length - 1))]
+
+ // Nest the shadows and source view in two items rendered as a layer
+ // so the shadow is not clipped by the bounds of the source view
+ Item {
+ property int margin: -100
+
+ x: margin
+ y: margin
+ width: parent.width - 2 * margin
+ height: parent.height - 2 * margin
+
+ // By rendering as a layer, the shadow will never show through the source item,
+ // even when the source item's opacity is less than 1
+ layer.enabled: true
+
+ // The box shadows automatically pick up the size of the source Item and not
+ // the size of the parent, so we don't need to worry about the extra padding
+ // in the parent Item
+ BoxShadow {
+ offsetY: effect._shadow[0].offset
+ blurRadius: effect._shadow[0].blur
+ spreadRadius: effect._shadow[0].spread
+ color: Qt.rgba(0,0,0, 0.2)
+
+ fullWidth: effect.fullWidth
+ fullHeight: effect.fullHeight
+ source: effect.sourceItem
+ }
+
+ BoxShadow {
+ offsetY: effect._shadow[1].offset
+ blurRadius: effect._shadow[1].blur
+ spreadRadius: effect._shadow[1].spread
+ color: Qt.rgba(0,0,0, 0.14)
+
+ fullWidth: effect.fullWidth
+ fullHeight: effect.fullHeight
+ source: effect.sourceItem
+ }
+
+ BoxShadow {
+ offsetY: effect._shadow[2].offset
+ blurRadius: effect._shadow[2].blur
+ spreadRadius: effect._shadow[2].spread
+ color: Qt.rgba(0,0,0, 0.12)
+
+ fullWidth: effect.fullWidth
+ fullHeight: effect.fullHeight
+ source: effect.sourceItem
+ }
+
+ ShaderEffect {
+ property alias source: effect.source
+
+ x: (parent.width - width)/2
+ y: (parent.height - height)/2
+ width: effect.sourceItem.width
+ height: effect.sourceItem.height
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Frame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Frame.qml
new file mode 100644
index 00000000..0001825e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Frame.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Frame {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+ verticalPadding: Material.frameVerticalPadding
+
+ background: Rectangle {
+ radius: 2
+ color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
+ border.color: control.Material.frameColor
+
+ layer.enabled: control.enabled && control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/GroupBox.qml
new file mode 100644
index 00000000..e18a5949
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/GroupBox.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.GroupBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitLabelWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ padding: 12
+ topPadding: Material.frameVerticalPadding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
+ bottomPadding: Material.frameVerticalPadding
+
+ label: Text {
+ x: control.leftPadding
+ width: control.availableWidth
+
+ text: control.title
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: Rectangle {
+ y: control.topPadding - control.bottomPadding
+ width: parent.width
+ height: parent.height - control.topPadding + control.bottomPadding
+
+ radius: 2
+ color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
+ border.color: control.Material.frameColor
+
+ layer.enabled: control.enabled && control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/HorizontalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/HorizontalHeaderView.qml
new file mode 100644
index 00000000..fd672f34
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/HorizontalHeaderView.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Material 2.15
+import QtQuick.Controls.Material.impl 2.15
+
+T.HorizontalHeaderView {
+ id: control
+
+ implicitWidth: syncView ? syncView.width : 0
+ implicitHeight: contentHeight
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: text.implicitWidth + (cellPadding * 2)
+ implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
+ color: control.Material.backgroundColor
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ItemDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ItemDelegate.qml
new file mode 100644
index 00000000..2078ce6c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ItemDelegate.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.ItemDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: 8
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.delegateHeight
+
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Label.qml
new file mode 100644
index 00000000..ad923a24
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Label.qml
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.Label {
+ id: control
+
+ color: enabled ? Material.foreground : Material.hintTextColor
+ linkColor: Material.accentColor
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Menu.qml
new file mode 100644
index 00000000..94bcc15e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Menu.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+import QtQuick.Window 2.12
+
+T.Menu {
+ id: control
+
+ Material.elevation: 8
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 0
+ verticalPadding: 8
+
+ transformOrigin: !cascade ? Item.Top : (mirrored ? Item.TopRight : Item.TopLeft)
+
+ delegate: MenuItem { }
+
+ enter: Transition {
+ // grow_fade_in
+ NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ exit: Transition {
+ // shrink_fade_out
+ NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ contentItem: ListView {
+ implicitHeight: contentHeight
+
+ model: control.contentModel
+ interactive: Window.window
+ ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
+ : false
+ clip: true
+ currentIndex: control.currentIndex
+
+ ScrollIndicator.vertical: ScrollIndicator {}
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: control.Material.menuItemHeight
+
+ radius: 3
+ color: control.Material.dialogColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBar.qml
new file mode 100644
index 00000000..66252d6e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBar.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.MenuBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ delegate: MenuBarItem { }
+
+ contentItem: Row {
+ spacing: control.spacing
+ Repeater {
+ model: control.contentModel
+ }
+ }
+
+ background: Rectangle {
+ implicitHeight: 40
+ color: control.Material.dialogColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBarItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBarItem.qml
new file mode 100644
index 00000000..588d6fbb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuBarItem.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.MenuBarItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: 12
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitWidth: 40
+ implicitHeight: 40
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.highlighted
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuItem.qml
new file mode 100644
index 00000000..a5d2f8a1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuItem.qml
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.MenuItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: Material.menuItemVerticalPadding
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ visible: control.checkable
+ control: control
+ checkState: control.checked ? Qt.Checked : Qt.Unchecked
+ }
+
+ arrow: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.subMenu
+ mirror: control.mirrored
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/images/arrow-indicator.png"
+ }
+
+ contentItem: IconLabel {
+ readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
+ readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
+ rightPadding: control.mirrored ? indicatorPadding : arrowPadding
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: control.Material.menuItemHeight
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.highlighted
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuSeparator.qml
new file mode 100644
index 00000000..6d80c049
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/MenuSeparator.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.MenuSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ verticalPadding: 8
+
+ contentItem: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 1
+ color: control.Material.dividerColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Page.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Page.qml
new file mode 100644
index 00000000..4da0ecc6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Page.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.Page {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ background: Rectangle {
+ color: control.Material.backgroundColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/PageIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/PageIndicator.qml
new file mode 100644
index 00000000..5e6ca245
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/PageIndicator.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.PageIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ delegate: Rectangle {
+ implicitWidth: 8
+ implicitHeight: 8
+
+ radius: width / 2
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+
+ opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45
+ Behavior on opacity { OpacityAnimator { duration: 100 } }
+ }
+
+ contentItem: Row {
+ spacing: control.spacing
+
+ Repeater {
+ model: control.count
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Pane.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Pane.qml
new file mode 100644
index 00000000..988e225a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Pane.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Pane {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.Material.backgroundColor
+ radius: control.Material.elevation > 0 ? 2 : 0
+
+ layer.enabled: control.enabled && control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Popup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Popup.qml
new file mode 100644
index 00000000..1b576385
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Popup.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Popup {
+ id: control
+
+ Material.elevation: 24
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ enter: Transition {
+ // grow_fade_in
+ NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ exit: Transition {
+ // shrink_fade_out
+ NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
+ }
+
+ background: Rectangle {
+ radius: 2
+ color: control.Material.dialogColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Material.backgroundDimColor
+ Behavior on opacity { NumberAnimation { duration: 150 } }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ProgressBar.qml
new file mode 100644
index 00000000..2848f037
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ProgressBar.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.ProgressBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: ProgressBarImpl {
+ implicitHeight: 4
+
+ scale: control.mirrored ? -1 : 1
+ color: control.Material.accentColor
+ progress: control.position
+ indeterminate: control.visible && control.indeterminate
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 4
+ y: (control.height - height) / 2
+ height: 4
+
+ color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioButton.qml
new file mode 100644
index 00000000..dadcc84f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioButton.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.RadioButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 8
+ padding: 8
+ verticalPadding: padding + 6
+
+ indicator: RadioIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+
+ Ripple {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 28; height: 28
+
+ z: -1
+ anchor: control
+ pressed: control.pressed
+ active: control.down || control.visualFocus || control.hovered
+ color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioDelegate.qml
new file mode 100644
index 00000000..c977d332
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioDelegate.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.RadioDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: 8
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ indicator: RadioIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.delegateHeight
+
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioIndicator.qml
new file mode 100644
index 00000000..e2c55184
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RadioIndicator.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+Rectangle {
+ id: indicator
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: width / 2
+ border.width: 2
+ border.color: !control.enabled ? control.Material.hintTextColor
+ : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor
+ color: "transparent"
+
+ property Item control
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 10
+ height: 10
+ radius: width / 2
+ color: parent.border.color
+ visible: indicator.control.checked || indicator.control.down
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RangeSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RangeSlider.qml
new file mode 100644
index 00000000..f05601a7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RangeSlider.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.RangeSlider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ first.implicitHandleWidth + leftPadding + rightPadding,
+ second.implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ first.implicitHandleHeight + topPadding + bottomPadding,
+ second.implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ first.handle: SliderHandle {
+ x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
+ value: first.value
+ handleHasFocus: activeFocus
+ handlePressed: first.pressed
+ handleHovered: first.hovered
+ }
+
+ second.handle: SliderHandle {
+ x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
+ value: second.value
+ handleHasFocus: activeFocus
+ handlePressed: second.pressed
+ handleHovered: second.hovered
+ }
+
+ background: Rectangle {
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ implicitWidth: control.horizontal ? 200 : 48
+ implicitHeight: control.horizontal ? 48 : 200
+ width: control.horizontal ? control.availableWidth : 4
+ height: control.horizontal ? 4 : control.availableHeight
+ scale: control.horizontal && control.mirrored ? -1 : 1
+ color: control.enabled ? Color.transparent(control.Material.accentColor, 0.33) : control.Material.sliderDisabledColor
+
+ Rectangle {
+ x: control.horizontal ? control.first.position * parent.width : 0
+ y: control.horizontal ? 0 : control.second.visualPosition * parent.height
+ width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 4
+ height: control.horizontal ? 4 : control.second.position * parent.height - control.first.position * parent.height
+
+ color: control.enabled ? control.Material.accentColor : control.Material.sliderDisabledColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RectangularGlow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RectangularGlow.qml
new file mode 100644
index 00000000..c01e536d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RectangularGlow.qml
@@ -0,0 +1,240 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+
+/*
+ A cross-graphics API implementation of QtGraphicalEffects' RectangularGlow.
+ */
+Item {
+ id: rootItem
+
+ /*
+ This property defines how many pixels outside the item area are reached
+ by the glow.
+
+ The value ranges from 0.0 (no glow) to inf (infinite glow). By default,
+ the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different glowRadius values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_glowRadius1.png
+ \li \image RectangularGlow_glowRadius2.png
+ \li \image RectangularGlow_glowRadius3.png
+ \row
+ \li \b { glowRadius: 10 }
+ \li \b { glowRadius: 20 }
+ \li \b { glowRadius: 40 }
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+
+ */
+ property real glowRadius: 0.0
+
+ /*
+ This property defines how large part of the glow color is strenghtened
+ near the source edges.
+
+ The value ranges from 0.0 (no strenght increase) to 1.0 (maximum
+ strenght increase). By default, the property is set to \c 0.0.
+
+ \table
+ \header
+ \li Output examples with different spread values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_spread1.png
+ \li \image RectangularGlow_spread2.png
+ \li \image RectangularGlow_spread3.png
+ \row
+ \li \b { spread: 0.0 }
+ \li \b { spread: 0.5 }
+ \li \b { spread: 1.0 }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+ */
+ property real spread: 0.0
+
+ /*
+ This property defines the RGBA color value which is used for the glow.
+
+ By default, the property is set to \c "white".
+
+ \table
+ \header
+ \li Output examples with different color values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_color1.png
+ \li \image RectangularGlow_color2.png
+ \li \image RectangularGlow_color3.png
+ \row
+ \li \b { color: #ffffff }
+ \li \b { color: #55ff55 }
+ \li \b { color: #5555ff }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \li \l cornerRadius: 25
+ \endtable
+ */
+ property color color: "white"
+
+ /*
+ This property defines the corner radius that is used to draw a glow with
+ rounded corners.
+
+ The value ranges from 0.0 to half of the effective width or height of
+ the glow, whichever is smaller. This can be calculated with: \c{
+ min(width, height) / 2.0 + glowRadius}
+
+ By default, the property is bound to glowRadius property. The glow
+ behaves as if the rectangle was blurred when adjusting the glowRadius
+ property.
+
+ \table
+ \header
+ \li Output examples with different cornerRadius values
+ \li
+ \li
+ \row
+ \li \image RectangularGlow_cornerRadius1.png
+ \li \image RectangularGlow_cornerRadius2.png
+ \li \image RectangularGlow_cornerRadius3.png
+ \row
+ \li \b { cornerRadius: 0 }
+ \li \b { cornerRadius: 25 }
+ \li \b { cornerRadius: 50 }
+ \row
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \li \l glowRadius: 20
+ \row
+ \li \l spread: 0
+ \li \l spread: 0
+ \li \l spread: 0
+ \row
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \li \l color: #ffffff
+ \endtable
+ */
+ property real cornerRadius: glowRadius
+
+ /*
+ This property allows the effect output pixels to be cached in order to
+ improve the rendering performance.
+
+ Every time the source or effect properties are changed, the pixels in
+ the cache must be updated. Memory consumption is increased, because an
+ extra buffer of memory is required for storing the effect output.
+
+ It is recommended to disable the cache when the source or the effect
+ properties are animated.
+
+ By default, the property is set to \c false.
+ */
+ property bool cached: false
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ ShaderEffect {
+ id: shaderItem
+
+ x: (parent.width - width) / 2.0
+ y: (parent.height - height) / 2.0
+ width: parent.width + rootItem.glowRadius * 2 + cornerRadius * 2
+ height: parent.height + rootItem.glowRadius * 2 + cornerRadius * 2
+
+ function clampedCornerRadius() {
+ var maxCornerRadius = Math.min(rootItem.width, rootItem.height) / 2 + rootItem.glowRadius;
+ return Math.max(0, Math.min(rootItem.cornerRadius, maxCornerRadius))
+ }
+
+ property color color: rootItem.color
+ property real inverseSpread: 1.0 - rootItem.spread
+ property real relativeSizeX: ((inverseSpread * inverseSpread) * rootItem.glowRadius + cornerRadius * 2.0) / width
+ property real relativeSizeY: relativeSizeX * (width / height)
+ property real spread: rootItem.spread / 2.0
+ property real cornerRadius: clampedCornerRadius()
+
+ fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/shaders/RectangularGlow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RoundButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RoundButton.qml
new file mode 100644
index 00000000..13d0f9db
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/RoundButton.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.RoundButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ topInset: 6
+ leftInset: 6
+ rightInset: 6
+ bottomInset: 6
+ padding: 12
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: !enabled ? Material.hintTextColor :
+ flat && highlighted ? Material.accentColor :
+ highlighted ? Material.primaryHighlightedTextColor : Material.foreground
+
+ Material.elevation: flat ? control.down || control.hovered ? 2 : 0
+ : control.down ? 12 : 6
+ Material.background: flat ? "transparent" : undefined
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Material.hintTextColor :
+ control.flat && control.highlighted ? control.Material.accentColor :
+ control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground
+ }
+
+ // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
+ background: Rectangle {
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
+
+ radius: control.radius
+ color: !control.enabled ? control.Material.buttonDisabledColor
+ : control.checked || control.highlighted ? control.Material.highlightedButtonColor : control.Material.buttonColor
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ radius: control.radius
+ visible: control.hovered || control.visualFocus
+ color: control.Material.rippleColor
+ }
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ radius: control.radius
+ visible: control.down
+ color: control.Material.rippleColor
+ }
+
+ // The layer is disabled when the button color is transparent so that you can do
+ // Material.background: "transparent" and get a proper flat button without needing
+ // to set Material.elevation as well
+ layer.enabled: control.enabled && control.Material.buttonColor.a > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollBar.qml
new file mode 100644
index 00000000..fda64346
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollBar.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.ScrollBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: control.interactive ? 1 : 2
+ visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
+
+ contentItem: Rectangle {
+ implicitWidth: control.interactive ? 13 : 4
+ implicitHeight: control.interactive ? 13 : 4
+
+ color: control.pressed ? control.Material.scrollBarPressedColor :
+ control.interactive && control.hovered ? control.Material.scrollBarHoveredColor : control.Material.scrollBarColor
+ opacity: 0.0
+ }
+
+ background: Rectangle {
+ implicitWidth: control.interactive ? 16 : 4
+ implicitHeight: control.interactive ? 16 : 4
+ color: "#0e000000"
+ opacity: 0.0
+ visible: control.interactive
+ }
+
+ states: State {
+ name: "active"
+ when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
+ }
+
+ transitions: [
+ Transition {
+ to: "active"
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
+ },
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
+ PauseAnimation { duration: 2450 }
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollIndicator.qml
new file mode 100644
index 00000000..19f23ad2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ScrollIndicator.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.ScrollIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+
+ contentItem: Rectangle {
+ implicitWidth: 4
+ implicitHeight: 4
+
+ color: control.Material.scrollBarColor
+ visible: control.size < 1.0
+ opacity: 0.0
+
+ states: State {
+ name: "active"
+ when: control.active
+ PropertyChanges { target: control.contentItem; opacity: 0.75 }
+ }
+
+ transitions: [
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Slider.qml
new file mode 100644
index 00000000..ac7a0c42
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Slider.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.Slider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ handle: SliderHandle {
+ x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
+ value: control.value
+ handleHasFocus: control.visualFocus
+ handlePressed: control.pressed
+ handleHovered: control.hovered
+ }
+
+ background: Rectangle {
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ implicitWidth: control.horizontal ? 200 : 48
+ implicitHeight: control.horizontal ? 48 : 200
+ width: control.horizontal ? control.availableWidth : 4
+ height: control.horizontal ? 4 : control.availableHeight
+ scale: control.horizontal && control.mirrored ? -1 : 1
+ color: control.enabled ? Color.transparent(control.Material.accentColor, 0.33) : control.Material.sliderDisabledColor
+
+ Rectangle {
+ x: control.horizontal ? 0 : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height
+ width: control.horizontal ? control.position * parent.width : 4
+ height: control.horizontal ? 4 : control.position * parent.height
+
+ color: control.enabled ? control.Material.accentColor : control.Material.sliderDisabledColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SliderHandle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SliderHandle.qml
new file mode 100644
index 00000000..c9078bc8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SliderHandle.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+Item {
+ id: root
+ implicitWidth: initialSize
+ implicitHeight: initialSize
+
+ property real value: 0
+ property bool handleHasFocus: false
+ property bool handlePressed: false
+ property bool handleHovered: false
+ readonly property int initialSize: 13
+ readonly property var control: parent
+
+ Rectangle {
+ id: handleRect
+ width: parent.width
+ height: parent.height
+ radius: width / 2
+ scale: root.handlePressed ? 1.5 : 1
+ color: control.enabled ? root.control.Material.accentColor : root.control.Material.sliderDisabledColor
+
+ Behavior on scale {
+ NumberAnimation {
+ duration: 250
+ }
+ }
+ }
+
+ Ripple {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 22; height: 22
+ pressed: root.handlePressed
+ active: root.handlePressed || root.handleHasFocus || root.handleHovered
+ color: root.control.Material.highlightedRippleColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SpinBox.qml
new file mode 100644
index 00000000..23c86bc3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SpinBox.qml
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.SpinBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth +
+ up.implicitIndicatorWidth +
+ down.implicitIndicatorWidth)
+ implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight,
+ up.implicitIndicatorHeight,
+ down.implicitIndicatorHeight)
+
+ spacing: 6
+ topPadding: 8
+ bottomPadding: 16
+ leftPadding: (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
+ rightPadding: (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+
+ validator: IntValidator {
+ locale: control.locale.name
+ bottom: Math.min(control.from, control.to)
+ top: Math.max(control.from, control.to)
+ }
+
+ contentItem: TextInput {
+ text: control.displayText
+
+ font: control.font
+ color: enabled ? control.Material.foreground : control.Material.hintTextColor
+ selectionColor: control.Material.textSelectionColor
+ selectedTextColor: control.Material.foreground
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+
+ cursorDelegate: CursorDelegate { }
+
+ readOnly: !control.editable
+ validator: control.validator
+ inputMethodHints: control.inputMethodHints
+ }
+
+ up.indicator: Item {
+ x: control.mirrored ? 0 : parent.width - width
+ implicitWidth: control.Material.touchTarget
+ implicitHeight: control.Material.touchTarget
+ height: parent.height
+ width: height
+
+ Ripple {
+ clipRadius: 2
+ x: control.spacing
+ y: control.spacing
+ width: parent.width - 2 * control.spacing
+ height: parent.height - 2 * control.spacing
+ pressed: control.up.pressed
+ active: control.up.pressed || control.up.hovered || control.visualFocus
+ color: control.Material.rippleColor
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: Math.min(parent.width / 3, parent.height / 3)
+ height: 2
+ color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
+ }
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 2
+ height: Math.min(parent.width / 3, parent.height / 3)
+ color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
+ }
+ }
+
+ down.indicator: Item {
+ x: control.mirrored ? parent.width - width : 0
+ implicitWidth: control.Material.touchTarget
+ implicitHeight: control.Material.touchTarget
+ height: parent.height
+ width: height
+
+ Ripple {
+ clipRadius: 2
+ x: control.spacing
+ y: control.spacing
+ width: parent.width - 2 * control.spacing
+ height: parent.height - 2 * control.spacing
+ pressed: control.down.pressed
+ active: control.down.pressed || control.down.hovered || control.visualFocus
+ color: control.Material.rippleColor
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: parent.width / 3
+ height: 2
+ color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
+ }
+ }
+
+ background: Item {
+ implicitWidth: 192
+ implicitHeight: control.Material.touchTarget
+
+ Rectangle {
+ x: parent.width / 2 - width / 2
+ y: parent.y + parent.height - height - control.bottomPadding / 2
+ width: control.availableWidth
+ height: control.activeFocus ? 2 : 1
+ color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SplitView.qml
new file mode 100644
index 00000000..5544e833
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SplitView.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.13
+import QtQuick.Templates 2.13 as T
+import QtQuick.Controls 2.13
+import QtQuick.Controls.impl 2.13
+import QtQuick.Controls.Material 2.13
+
+T.SplitView {
+ id: control
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ handle: Rectangle {
+ implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
+ implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
+ color: T.SplitHandle.pressed ? control.Material.background
+ : Qt.lighter(control.Material.background, T.SplitHandle.hovered ? 1.2 : 1.1)
+
+ Rectangle {
+ color: control.Material.secondaryTextColor
+ width: control.orientation === Qt.Horizontal ? thickness : length
+ height: control.orientation === Qt.Horizontal ? length : thickness
+ radius: thickness
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+
+ property int length: parent.T.SplitHandle.pressed ? 3 : 8
+ readonly property int thickness: parent.T.SplitHandle.pressed ? 3 : 1
+
+ Behavior on length {
+ NumberAnimation {
+ duration: 100
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/StackView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/StackView.qml
new file mode 100644
index 00000000..dd5d6ce6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/StackView.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.StackView {
+ id: control
+
+ popEnter: Transition {
+ // slide_in_left
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * -control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+
+ popExit: Transition {
+ // slide_out_right
+ NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * control.width; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+
+ pushEnter: Transition {
+ // slide_in_right
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+
+ pushExit: Transition {
+ // slide_out_left
+ NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * -control.width; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+
+ replaceEnter: Transition {
+ // slide_in_right
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+
+ replaceExit: Transition {
+ // slide_out_left
+ NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * -control.width; duration: 200; easing.type: Easing.OutCubic }
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeDelegate.qml
new file mode 100644
index 00000000..d06799be
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeDelegate.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.SwipeDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: 8
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.delegateHeight
+
+ color: control.Material.backgroundColor
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.highlighted
+ color: control.Material.listHighlightColor
+ }
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ enabled: control.swipe.position === 0
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeView.qml
new file mode 100644
index 00000000..a84f16c5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwipeView.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.SwipeView {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ contentItem: ListView {
+ model: control.contentModel
+ interactive: control.interactive
+ currentIndex: control.currentIndex
+ focus: control.focus
+
+ spacing: control.spacing
+ orientation: control.orientation
+ snapMode: ListView.SnapOneItem
+ boundsBehavior: Flickable.StopAtBounds
+
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ preferredHighlightBegin: 0
+ preferredHighlightEnd: 0
+ highlightMoveDuration: 250
+ maximumFlickVelocity: 4 * (control.orientation === Qt.Horizontal ? width : height)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Switch.qml
new file mode 100644
index 00000000..fd0db925
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Switch.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Switch {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 8
+ spacing: 8
+
+ indicator: SwitchIndicator {
+ x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+
+ Ripple {
+ x: parent.handle.x + parent.handle.width / 2 - width / 2
+ y: parent.handle.y + parent.handle.height / 2 - height / 2
+ width: 28; height: 28
+ pressed: control.pressed
+ active: control.down || control.visualFocus || control.hovered
+ color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchDelegate.qml
new file mode 100644
index 00000000..834a3dfa
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchDelegate.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.SwitchDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 16
+ verticalPadding: Material.switchDelegateVerticalPadding
+ spacing: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: enabled ? Material.foreground : Material.hintTextColor
+
+ indicator: SwitchIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.delegateHeight
+
+ color: control.highlighted ? control.Material.listHighlightColor : "transparent"
+
+ Ripple {
+ width: parent.width
+ height: parent.height
+
+ clip: visible
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchIndicator.qml
new file mode 100644
index 00000000..3034e771
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/SwitchIndicator.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+Item {
+ id: indicator
+ implicitWidth: 38
+ implicitHeight: 32
+
+ property Item control
+ property alias handle: handle
+
+ Material.elevation: 1
+
+ Rectangle {
+ width: parent.width
+ height: 14
+ radius: height / 2
+ y: parent.height / 2 - height / 2
+ color: indicator.control.enabled ? (indicator.control.checked ? indicator.control.Material.switchCheckedTrackColor : indicator.control.Material.switchUncheckedTrackColor)
+ : indicator.control.Material.switchDisabledTrackColor
+ }
+
+ Rectangle {
+ id: handle
+ x: Math.max(0, Math.min(parent.width - width, indicator.control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+ width: 20
+ height: 20
+ radius: width / 2
+ color: indicator.control.enabled ? (indicator.control.checked ? indicator.control.Material.switchCheckedHandleColor : indicator.control.Material.switchUncheckedHandleColor)
+ : indicator.control.Material.switchDisabledHandleColor
+
+ Behavior on x {
+ enabled: !indicator.control.pressed
+ SmoothedAnimation {
+ duration: 300
+ }
+ }
+ layer.enabled: indicator.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: indicator.Material.elevation
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabBar.qml
new file mode 100644
index 00000000..98c9132a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabBar.qml
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.TabBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 1
+
+ contentItem: ListView {
+ model: control.contentModel
+ currentIndex: control.currentIndex
+
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ flickableDirection: Flickable.AutoFlickIfNeeded
+ snapMode: ListView.SnapToItem
+
+ highlightMoveDuration: 250
+ highlightResizeDuration: 0
+ highlightFollowsCurrentItem: true
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 48
+ preferredHighlightEnd: width - 48
+
+ highlight: Item {
+ z: 2
+ Rectangle {
+ height: 2
+ width: parent.width
+ y: control.position === T.TabBar.Footer ? 0 : parent.height - height
+ color: control.Material.accentColor
+ }
+ }
+ }
+
+ background: Rectangle {
+ color: control.Material.backgroundColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ fullWidth: true
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabButton.qml
new file mode 100644
index 00000000..5245652c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TabButton.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.TabButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: !enabled ? Material.hintTextColor : down || checked ? Material.accentColor : Material.foreground
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Material.hintTextColor : control.down || control.checked ? control.Material.accentColor : control.Material.foreground
+ }
+
+ background: Ripple {
+ implicitHeight: control.Material.touchTarget
+
+ clip: true
+ pressed: control.pressed
+ anchor: control
+ active: control.down || control.visualFocus || control.hovered
+ color: control.Material.rippleColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextArea.qml
new file mode 100644
index 00000000..249b6401
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextArea.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.TextArea {
+ id: control
+
+ implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
+ implicitBackgroundWidth + leftInset + rightInset,
+ placeholder.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight + topInset + bottomInset,
+ placeholder.implicitHeight + 1 + topPadding + bottomPadding)
+
+ topPadding: 8
+ bottomPadding: 16
+
+ color: enabled ? Material.foreground : Material.hintTextColor
+ selectionColor: Material.accentColor
+ selectedTextColor: Material.primaryHighlightedTextColor
+ placeholderTextColor: Material.hintTextColor
+ cursorDelegate: CursorDelegate { }
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ elide: Text.ElideRight
+ renderType: control.renderType
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ }
+
+ background: Rectangle {
+ y: parent.height - height - control.bottomPadding / 2
+ implicitWidth: 120
+ height: control.activeFocus ? 2 : 1
+ color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextField.qml
new file mode 100644
index 00000000..ed42b295
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/TextField.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.TextField {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth + leftInset + rightInset
+ || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ topPadding: 8
+ bottomPadding: 16
+
+ color: enabled ? Material.foreground : Material.hintTextColor
+ selectionColor: Material.accentColor
+ selectedTextColor: Material.primaryHighlightedTextColor
+ placeholderTextColor: Material.hintTextColor
+ verticalAlignment: TextInput.AlignVCenter
+
+ cursorDelegate: CursorDelegate { }
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ elide: Text.ElideRight
+ renderType: control.renderType
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ }
+
+ background: Rectangle {
+ y: control.height - height - control.bottomPadding + 8
+ implicitWidth: 120
+ height: control.activeFocus || control.hovered ? 2 : 1
+ color: control.activeFocus ? control.Material.accentColor
+ : (control.hovered ? control.Material.primaryTextColor : control.Material.hintTextColor)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolBar.qml
new file mode 100644
index 00000000..5b887598
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolBar.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.ToolBar {
+ id: control
+
+ Material.elevation: 4
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ Material.foreground: Material.toolTextColor
+
+ spacing: 16
+
+ background: Rectangle {
+ implicitHeight: 48
+ color: control.Material.toolBarColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ fullWidth: true
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolButton.qml
new file mode 100644
index 00000000..69c42441
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolButton.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Material 2.12
+import QtQuick.Controls.Material.impl 2.12
+
+T.ToolButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: !enabled ? Material.hintTextColor : checked || highlighted ? Material.accent : Material.foreground
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Material.hintTextColor :
+ control.checked || control.highlighted ? control.Material.accent : control.Material.foreground
+ }
+
+ background: Ripple {
+ implicitWidth: control.Material.touchTarget
+ implicitHeight: control.Material.touchTarget
+
+ readonly property bool square: control.contentItem.width <= control.contentItem.height
+
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ clip: !square
+ width: square ? parent.height / 2 : parent.width
+ height: square ? parent.height / 2 : parent.height
+ pressed: control.pressed
+ anchor: control
+ active: control.enabled && (control.down || control.visualFocus || control.hovered)
+ color: control.Material.rippleColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolSeparator.qml
new file mode 100644
index 00000000..94367657
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolSeparator.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.ToolSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ horizontalPadding: vertical ? 12 : 5
+ verticalPadding: vertical ? 5 : 12
+
+ contentItem: Rectangle {
+ implicitWidth: vertical ? 1 : 38
+ implicitHeight: vertical ? 38 : 1
+ color: control.Material.hintTextColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolTip.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolTip.qml
new file mode 100644
index 00000000..83afe4b1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/ToolTip.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.ToolTip {
+ id: control
+
+ x: parent ? (parent.width - implicitWidth) / 2 : 0
+ y: -implicitHeight - 24
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 12
+ padding: 8
+ horizontalPadding: padding + 8
+
+ closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
+
+ Material.theme: Material.Dark
+
+ enter: Transition {
+ // toast_enter
+ NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutQuad; duration: 500 }
+ }
+
+ exit: Transition {
+ // toast_exit
+ NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.InQuad; duration: 500 }
+ }
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ wrapMode: Text.Wrap
+ color: control.Material.foreground
+ }
+
+ background: Rectangle {
+ implicitHeight: control.Material.tooltipHeight
+ color: control.Material.tooltipColor
+ opacity: 0.9
+ radius: 2
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Tumbler.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Tumbler.qml
new file mode 100644
index 00000000..30d66c58
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/Tumbler.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Material 2.12
+
+T.Tumbler {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 60 // ### remove 60 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 200 // ### remove 200 in Qt 6
+
+ delegate: Text {
+ text: modelData
+ color: control.Material.foreground
+ font: control.font
+ opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ implicitWidth: 60
+ implicitHeight: 200
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: control.contentItem.width / 2
+ startY: -control.contentItem.delegateHeight / 2
+ PathLine {
+ x: control.contentItem.width / 2
+ y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
+ }
+ }
+
+ property real delegateHeight: control.availableHeight / control.visibleItemCount
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/VerticalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/VerticalHeaderView.qml
new file mode 100644
index 00000000..5fc5aebe
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/VerticalHeaderView.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Material 2.15
+import QtQuick.Controls.Material.impl 2.15
+
+T.VerticalHeaderView {
+ id: control
+
+ implicitWidth: contentWidth
+ implicitHeight: syncView ? syncView.height : 0
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
+ implicitHeight: text.implicitHeight + (cellPadding * 2)
+ color: control.Material.backgroundColor
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: enabled ? control.Material.foreground : control.Material.hintTextColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/plugins.qmltypes
new file mode 100644
index 00000000..e290e0ea
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/plugins.qmltypes
@@ -0,0 +1,459 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Material 2.15'
+
+Module {
+ dependencies: ["QtQuick.Controls 2.0"]
+ Component { name: "QQuickAttachedObject"; prototype: "QObject" }
+ Component {
+ name: "QQuickItem"
+ defaultProperty: "data"
+ prototype: "QObject"
+ Enum {
+ name: "Flags"
+ values: {
+ "ItemClipsChildrenToShape": 1,
+ "ItemAcceptsInputMethod": 2,
+ "ItemIsFocusScope": 4,
+ "ItemHasContents": 8,
+ "ItemAcceptsDrops": 16
+ }
+ }
+ Enum {
+ name: "TransformOrigin"
+ values: {
+ "TopLeft": 0,
+ "Top": 1,
+ "TopRight": 2,
+ "Left": 3,
+ "Center": 4,
+ "Right": 5,
+ "BottomLeft": 6,
+ "Bottom": 7,
+ "BottomRight": 8
+ }
+ }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "z"; type: "double" }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "opacity"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Property { name: "state"; type: "string" }
+ Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
+ Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "clip"; type: "bool" }
+ Property { name: "focus"; type: "bool" }
+ Property { name: "activeFocus"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "scale"; type: "double" }
+ Property { name: "transformOrigin"; type: "TransformOrigin" }
+ Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
+ Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "antialiasing"; type: "bool" }
+ Property { name: "implicitWidth"; type: "double" }
+ Property { name: "implicitHeight"; type: "double" }
+ Property { name: "containmentMask"; revision: 11; type: "QObject"; isPointer: true }
+ Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "childrenRectChanged"
+ Parameter { type: "QRectF" }
+ }
+ Signal {
+ name: "baselineOffsetChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ Signal {
+ name: "focusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnTabChanged"
+ revision: 1
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "parentChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "transformOriginChanged"
+ Parameter { type: "TransformOrigin" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "antialiasingChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "clipChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "windowChanged"
+ revision: 1
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ Signal { name: "containmentMaskChanged"; revision: 11 }
+ Method { name: "update" }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ Parameter { name: "targetSize"; type: "QSize" }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapFromItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapFromGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "forceActiveFocus" }
+ Method {
+ name: "forceActiveFocus"
+ Parameter { name: "reason"; type: "Qt::FocusReason" }
+ }
+ Method {
+ name: "nextItemInFocusChain"
+ revision: 1
+ type: "QQuickItem*"
+ Parameter { name: "forward"; type: "bool" }
+ }
+ Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
+ Method {
+ name: "childAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickMaterialBusyIndicator"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Material.impl/BusyIndicatorImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "running"; type: "bool" }
+ }
+ Component {
+ name: "QQuickMaterialProgressBar"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Material.impl/ProgressBarImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "progress"; type: "double" }
+ Property { name: "indeterminate"; type: "bool" }
+ }
+ Component {
+ name: "QQuickMaterialRipple"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Material.impl/Ripple 2.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Trigger"
+ values: {
+ "Press": 0,
+ "Release": 1
+ }
+ }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "clipRadius"; type: "double" }
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "active"; type: "bool" }
+ Property { name: "anchor"; type: "QQuickItem"; isPointer: true }
+ Property { name: "trigger"; type: "Trigger" }
+ }
+ Component {
+ name: "QQuickMaterialStyle"
+ prototype: "QQuickAttachedObject"
+ exports: ["QtQuick.Controls.Material/Material 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Theme"
+ values: {
+ "Light": 0,
+ "Dark": 1,
+ "System": 2
+ }
+ }
+ Enum {
+ name: "Variant"
+ values: {
+ "Normal": 0,
+ "Dense": 1
+ }
+ }
+ Enum {
+ name: "Color"
+ values: {
+ "Red": 0,
+ "Pink": 1,
+ "Purple": 2,
+ "DeepPurple": 3,
+ "Indigo": 4,
+ "Blue": 5,
+ "LightBlue": 6,
+ "Cyan": 7,
+ "Teal": 8,
+ "Green": 9,
+ "LightGreen": 10,
+ "Lime": 11,
+ "Yellow": 12,
+ "Amber": 13,
+ "Orange": 14,
+ "DeepOrange": 15,
+ "Brown": 16,
+ "Grey": 17,
+ "BlueGrey": 18
+ }
+ }
+ Enum {
+ name: "Shade"
+ values: {
+ "Shade50": 0,
+ "Shade100": 1,
+ "Shade200": 2,
+ "Shade300": 3,
+ "Shade400": 4,
+ "Shade500": 5,
+ "Shade600": 6,
+ "Shade700": 7,
+ "Shade800": 8,
+ "Shade900": 9,
+ "ShadeA100": 10,
+ "ShadeA200": 11,
+ "ShadeA400": 12,
+ "ShadeA700": 13
+ }
+ }
+ Property { name: "theme"; type: "Theme" }
+ Property { name: "primary"; type: "QVariant" }
+ Property { name: "accent"; type: "QVariant" }
+ Property { name: "foreground"; type: "QVariant" }
+ Property { name: "background"; type: "QVariant" }
+ Property { name: "elevation"; type: "int" }
+ Property { name: "primaryColor"; type: "QColor"; isReadonly: true }
+ Property { name: "accentColor"; type: "QColor"; isReadonly: true }
+ Property { name: "backgroundColor"; type: "QColor"; isReadonly: true }
+ Property { name: "primaryTextColor"; type: "QColor"; isReadonly: true }
+ Property { name: "primaryHighlightedTextColor"; type: "QColor"; isReadonly: true }
+ Property { name: "secondaryTextColor"; type: "QColor"; isReadonly: true }
+ Property { name: "hintTextColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textSelectionColor"; type: "QColor"; isReadonly: true }
+ Property { name: "dropShadowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "dividerColor"; type: "QColor"; isReadonly: true }
+ Property { name: "iconColor"; type: "QColor"; isReadonly: true }
+ Property { name: "iconDisabledColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonDisabledColor"; type: "QColor"; isReadonly: true }
+ Property { name: "highlightedButtonColor"; type: "QColor"; isReadonly: true }
+ Property { name: "frameColor"; type: "QColor"; isReadonly: true }
+ Property { name: "rippleColor"; type: "QColor"; isReadonly: true }
+ Property { name: "highlightedRippleColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchUncheckedTrackColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchCheckedTrackColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchUncheckedHandleColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchCheckedHandleColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchDisabledTrackColor"; type: "QColor"; isReadonly: true }
+ Property { name: "switchDisabledHandleColor"; type: "QColor"; isReadonly: true }
+ Property { name: "scrollBarColor"; type: "QColor"; isReadonly: true }
+ Property { name: "scrollBarHoveredColor"; type: "QColor"; isReadonly: true }
+ Property { name: "scrollBarPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "dialogColor"; type: "QColor"; isReadonly: true }
+ Property { name: "backgroundDimColor"; type: "QColor"; isReadonly: true }
+ Property { name: "listHighlightColor"; type: "QColor"; isReadonly: true }
+ Property { name: "tooltipColor"; type: "QColor"; isReadonly: true }
+ Property { name: "toolBarColor"; type: "QColor"; isReadonly: true }
+ Property { name: "toolTextColor"; type: "QColor"; isReadonly: true }
+ Property { name: "spinBoxDisabledIconColor"; type: "QColor"; isReadonly: true }
+ Property { name: "sliderDisabledColor"; revision: 15; type: "QColor"; isReadonly: true }
+ Property { name: "touchTarget"; type: "int"; isReadonly: true }
+ Property { name: "buttonHeight"; type: "int"; isReadonly: true }
+ Property { name: "delegateHeight"; type: "int"; isReadonly: true }
+ Property { name: "dialogButtonBoxHeight"; type: "int"; isReadonly: true }
+ Property { name: "frameVerticalPadding"; type: "int"; isReadonly: true }
+ Property { name: "menuItemHeight"; type: "int"; isReadonly: true }
+ Property { name: "menuItemVerticalPadding"; type: "int"; isReadonly: true }
+ Property { name: "switchDelegateVerticalPadding"; type: "int"; isReadonly: true }
+ Property { name: "tooltipHeight"; type: "int"; isReadonly: true }
+ Signal { name: "paletteChanged" }
+ Method {
+ name: "color"
+ type: "QColor"
+ Parameter { name: "color"; type: "Color" }
+ Parameter { name: "shade"; type: "Shade" }
+ }
+ Method {
+ name: "color"
+ type: "QColor"
+ Parameter { name: "color"; type: "Color" }
+ }
+ Method {
+ name: "shade"
+ type: "QColor"
+ Parameter { name: "color"; type: "QColor" }
+ Parameter { name: "shade"; type: "Shade" }
+ }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Material.impl/BoxShadow 2.0"
+ exports: ["QtQuick.Controls.Material.impl/BoxShadow 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "offsetX"; type: "int" }
+ Property { name: "offsetY"; type: "int" }
+ Property { name: "blurRadius"; type: "int" }
+ Property { name: "spreadRadius"; type: "int" }
+ Property { name: "source"; type: "QQuickItem"; isPointer: true }
+ Property { name: "fullWidth"; type: "bool" }
+ Property { name: "fullHeight"; type: "bool" }
+ Property { name: "glowRadius"; type: "double" }
+ Property { name: "spread"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "cornerRadius"; type: "double" }
+ Property { name: "cached"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Material.impl/CheckIndicator 2.0"
+ exports: ["QtQuick.Controls.Material.impl/CheckIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "checkState"; type: "int" }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Material.impl/CursorDelegate 2.0"
+ exports: ["QtQuick.Controls.Material.impl/CursorDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Material.impl/ElevationEffect 2.0"
+ exports: ["QtQuick.Controls.Material.impl/ElevationEffect 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "source"; type: "QVariant" }
+ Property { name: "elevation"; type: "int" }
+ Property { name: "fullWidth"; type: "bool" }
+ Property { name: "fullHeight"; type: "bool" }
+ Property { name: "sourceItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "_shadows"; type: "QVariant"; isReadonly: true }
+ Property { name: "_shadow"; type: "QVariant"; isReadonly: true }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Material.impl/RadioIndicator 2.0"
+ exports: ["QtQuick.Controls.Material.impl/RadioIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Material.impl/RectangularGlow 2.0"
+ exports: ["QtQuick.Controls.Material.impl/RectangularGlow 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "glowRadius"; type: "double" }
+ Property { name: "spread"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "cornerRadius"; type: "double" }
+ Property { name: "cached"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Material.impl/SliderHandle 2.0"
+ exports: ["QtQuick.Controls.Material.impl/SliderHandle 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "value"; type: "double" }
+ Property { name: "handleHasFocus"; type: "bool" }
+ Property { name: "handlePressed"; type: "bool" }
+ Property { name: "handleHovered"; type: "bool" }
+ Property { name: "initialSize"; type: "int"; isReadonly: true }
+ Property { name: "control"; type: "QVariant"; isReadonly: true }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Material.impl/SwitchIndicator 2.0"
+ exports: ["QtQuick.Controls.Material.impl/SwitchIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "handle"; type: "QQuickRectangle"; isReadonly: true; isPointer: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qmldir
new file mode 100644
index 00000000..870a0382
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qmldir
@@ -0,0 +1,4 @@
+module QtQuick.Controls.Material
+plugin qtquickcontrols2materialstyleplugin
+classname QtQuickControls2MaterialStylePlugin
+depends QtQuick.Controls 2.5
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qtquickcontrols2materialstyleplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qtquickcontrols2materialstyleplugin.dll
new file mode 100644
index 00000000..f06c2303
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Material/qtquickcontrols2materialstyleplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Menu.qml
new file mode 100644
index 00000000..cf3a52f2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Menu.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Window 2.12
+
+T.Menu {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 0
+ overlap: 1
+
+ delegate: MenuItem { }
+
+ contentItem: ListView {
+ implicitHeight: contentHeight
+ model: control.contentModel
+ interactive: Window.window
+ ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
+ : false
+ clip: true
+ currentIndex: control.currentIndex
+
+ ScrollIndicator.vertical: ScrollIndicator {}
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ color: control.palette.window
+ border.color: control.palette.dark
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.5)
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.12)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBar.qml
new file mode 100644
index 00000000..122cdc53
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBar.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.MenuBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ delegate: MenuBarItem { }
+
+ contentItem: Row {
+ spacing: control.spacing
+ Repeater {
+ model: control.contentModel
+ }
+ }
+
+ background: Rectangle {
+ implicitHeight: 40
+ color: control.palette.button
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBarItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBarItem.qml
new file mode 100644
index 00000000..f6835412
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuBarItem.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.MenuBarItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 6
+ padding: 6
+ leftPadding: 12
+ rightPadding: 16
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.buttonText
+ }
+
+ background: Rectangle {
+ implicitWidth: 40
+ implicitHeight: 40
+ color: control.down || control.highlighted ? control.palette.mid : "transparent"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuItem.qml
new file mode 100644
index 00000000..22cdf3ea
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuItem.qml
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.MenuItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.windowText
+
+ contentItem: IconLabel {
+ readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
+ readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
+ rightPadding: control.mirrored ? indicatorPadding : arrowPadding
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ }
+
+ indicator: ColorImage {
+ x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.checked
+ source: control.checkable ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" : ""
+ color: control.palette.windowText
+ defaultColor: "#353637"
+ }
+
+ arrow: ColorImage {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.subMenu
+ mirror: control.mirrored
+ source: control.subMenu ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/arrow-indicator.png" : ""
+ color: control.palette.windowText
+ defaultColor: "#353637"
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ x: 1
+ y: 1
+ width: control.width - 2
+ height: control.height - 2
+ color: control.down ? control.palette.midlight : control.highlighted ? control.palette.light : "transparent"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuSeparator.qml
new file mode 100644
index 00000000..cc5c2b6e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/MenuSeparator.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.MenuSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+ verticalPadding: padding + 4
+
+ contentItem: Rectangle {
+ implicitWidth: 188
+ implicitHeight: 1
+ color: control.palette.mid
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Page.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Page.qml
new file mode 100644
index 00000000..4b3cf3d2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Page.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Page {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/PageIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/PageIndicator.qml
new file mode 100644
index 00000000..78f9e3cf
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/PageIndicator.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.PageIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ delegate: Rectangle {
+ implicitWidth: 8
+ implicitHeight: 8
+
+ radius: width / 2
+ color: control.palette.dark
+
+ opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45
+ Behavior on opacity { OpacityAnimator { duration: 100 } }
+ }
+
+ contentItem: Row {
+ spacing: control.spacing
+
+ Repeater {
+ model: control.count
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Pane.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Pane.qml
new file mode 100644
index 00000000..47b916e3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Pane.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Pane {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Popup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Popup.qml
new file mode 100644
index 00000000..ee243c10
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Popup.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.palette.window
+ border.color: control.palette.dark
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.5)
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: Color.transparent(control.palette.shadow, 0.12)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ProgressBar.qml
new file mode 100644
index 00000000..61cdea43
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ProgressBar.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.ProgressBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: ProgressBarImpl {
+ implicitHeight: 6
+ implicitWidth: 116
+ scale: control.mirrored ? -1 : 1
+ progress: control.position
+ indeterminate: control.visible && control.indeterminate
+ color: control.palette.dark
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 6
+ y: (control.height - height) / 2
+ height: 6
+
+ color: control.palette.midlight
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioButton.qml
new file mode 100644
index 00000000..cdf0c30e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioButton.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.RadioButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ // keep in sync with RadioDelegate.qml (shared RadioIndicator.qml was removed for performance reasons)
+ indicator: Rectangle {
+ implicitWidth: 28
+ implicitHeight: 28
+
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ radius: width / 2
+ color: control.down ? control.palette.light : control.palette.base
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 20
+ height: 20
+ radius: width / 2
+ color: control.palette.text
+ visible: control.checked
+ }
+ }
+
+ contentItem: CheckLabel {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioDelegate.qml
new file mode 100644
index 00000000..a7e7dec0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RadioDelegate.qml
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.RadioDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 12
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ // keep in sync with RadioButton.qml (shared RadioIndicator.qml was removed for performance reasons)
+ indicator: Rectangle {
+ implicitWidth: 28
+ implicitHeight: 28
+
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ radius: width / 2
+ color: control.down ? control.palette.light : control.palette.base
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 20
+ height: 20
+ radius: width / 2
+ color: control.palette.text
+ visible: control.checked
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ visible: control.down || control.highlighted
+ color: control.down ? control.palette.midlight : control.palette.light
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RangeSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RangeSlider.qml
new file mode 100644
index 00000000..c3e7c964
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RangeSlider.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.RangeSlider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ first.implicitHandleWidth + leftPadding + rightPadding,
+ second.implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ first.implicitHandleHeight + topPadding + bottomPadding,
+ second.implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ first.handle: Rectangle {
+ x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
+ implicitWidth: 28
+ implicitHeight: 28
+ radius: width / 2
+ border.width: activeFocus ? 2 : 1
+ border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
+ color: control.first.pressed ? control.palette.light : control.palette.window
+ }
+
+ second.handle: Rectangle {
+ x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
+ implicitWidth: 28
+ implicitHeight: 28
+ radius: width / 2
+ border.width: activeFocus ? 2 : 1
+ border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
+ color: control.second.pressed ? control.palette.light : control.palette.window
+ }
+
+ background: Rectangle {
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ implicitWidth: control.horizontal ? 200 : 6
+ implicitHeight: control.horizontal ? 6 : 200
+ width: control.horizontal ? control.availableWidth : implicitWidth
+ height: control.horizontal ? implicitHeight : control.availableHeight
+ radius: 3
+ color: control.palette.midlight
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ Rectangle {
+ x: control.horizontal ? control.first.position * parent.width + 3 : 0
+ y: control.horizontal ? 0 : control.second.visualPosition * parent.height + 3
+ width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6
+ height: control.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6
+
+ color: control.palette.dark
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RoundButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RoundButton.qml
new file mode 100644
index 00000000..825d5252
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/RoundButton.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.RoundButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.checked || control.highlighted ? control.palette.brightText :
+ control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.checked || control.highlighted ? control.palette.brightText :
+ control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
+ }
+
+ background: Rectangle {
+ implicitWidth: 40
+ implicitHeight: 40
+ radius: control.radius
+ opacity: enabled ? 1 : 0.3
+ visible: !control.flat || control.down || control.checked || control.highlighted
+ color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button,
+ control.palette.mid, control.down ? 0.5 : 0.0)
+ border.color: control.palette.highlight
+ border.width: control.visualFocus ? 2 : 0
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollBar.qml
new file mode 100644
index 00000000..0948fb1d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollBar.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ScrollBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+ visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
+
+ contentItem: Rectangle {
+ implicitWidth: control.interactive ? 6 : 2
+ implicitHeight: control.interactive ? 6 : 2
+
+ radius: width / 2
+ color: control.pressed ? control.palette.dark : control.palette.mid
+ opacity: 0.0
+
+ states: State {
+ name: "active"
+ when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
+ PropertyChanges { target: control.contentItem; opacity: 0.75 }
+ }
+
+ transitions: Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollIndicator.qml
new file mode 100644
index 00000000..795c20ee
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollIndicator.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ScrollIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 2
+
+ contentItem: Rectangle {
+ implicitWidth: 2
+ implicitHeight: 2
+
+ color: control.palette.mid
+ visible: control.size < 1.0
+ opacity: 0.0
+
+ states: State {
+ name: "active"
+ when: control.active
+ PropertyChanges { target: control.contentItem; opacity: 0.75 }
+ }
+
+ transitions: [
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollView.qml
new file mode 100644
index 00000000..f775d624
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ScrollView.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ScrollView {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ ScrollBar.vertical: ScrollBar {
+ parent: control
+ x: control.mirrored ? 0 : control.width - width
+ y: control.topPadding
+ height: control.availableHeight
+ active: control.ScrollBar.horizontal.active
+ }
+
+ ScrollBar.horizontal: ScrollBar {
+ parent: control
+ x: control.leftPadding
+ y: control.height - height
+ width: control.availableWidth
+ active: control.ScrollBar.vertical.active
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Slider.qml
new file mode 100644
index 00000000..6d532389
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Slider.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Slider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ handle: Rectangle {
+ x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
+ implicitWidth: 28
+ implicitHeight: 28
+ radius: width / 2
+ color: control.pressed ? control.palette.light : control.palette.window
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
+ }
+
+ background: Rectangle {
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ implicitWidth: control.horizontal ? 200 : 6
+ implicitHeight: control.horizontal ? 6 : 200
+ width: control.horizontal ? control.availableWidth : implicitWidth
+ height: control.horizontal ? implicitHeight : control.availableHeight
+ radius: 3
+ color: control.palette.midlight
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ Rectangle {
+ y: control.horizontal ? 0 : control.visualPosition * parent.height
+ width: control.horizontal ? control.position * parent.width : 6
+ height: control.horizontal ? 6 : control.position * parent.height
+
+ radius: 3
+ color: control.palette.dark
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SpinBox.qml
new file mode 100644
index 00000000..d1c2ea5b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SpinBox.qml
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.SpinBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + 2 * padding +
+ up.implicitIndicatorWidth +
+ down.implicitIndicatorWidth)
+ implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight,
+ up.implicitIndicatorHeight,
+ down.implicitIndicatorHeight)
+
+ padding: 6
+ leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
+ rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+
+ validator: IntValidator {
+ locale: control.locale.name
+ bottom: Math.min(control.from, control.to)
+ top: Math.max(control.from, control.to)
+ }
+
+ contentItem: TextInput {
+ z: 2
+ text: control.displayText
+
+ font: control.font
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: Qt.AlignVCenter
+
+ readOnly: !control.editable
+ validator: control.validator
+ inputMethodHints: control.inputMethodHints
+
+ Rectangle {
+ x: -6 - (control.down.indicator ? 1 : 0)
+ y: -6
+ width: control.width - (control.up.indicator ? control.up.indicator.width - 1 : 0) - (control.down.indicator ? control.down.indicator.width - 1 : 0)
+ height: control.height
+ visible: control.activeFocus
+ color: "transparent"
+ border.color: control.palette.highlight
+ border.width: 2
+ }
+ }
+
+ up.indicator: Rectangle {
+ x: control.mirrored ? 0 : parent.width - width
+ height: parent.height
+ implicitWidth: 40
+ implicitHeight: 40
+ color: control.up.pressed ? control.palette.mid : control.palette.button
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: parent.width / 3
+ height: 2
+ color: enabled ? control.palette.buttonText : control.palette.mid
+ }
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: 2
+ height: parent.width / 3
+ color: enabled ? control.palette.buttonText : control.palette.mid
+ }
+ }
+
+ down.indicator: Rectangle {
+ x: control.mirrored ? parent.width - width : 0
+ height: parent.height
+ implicitWidth: 40
+ implicitHeight: 40
+ color: control.down.pressed ? control.palette.mid : control.palette.button
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: parent.width / 3
+ height: 2
+ color: enabled ? control.palette.buttonText : control.palette.mid
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 140
+ color: enabled ? control.palette.base : control.palette.button
+ border.color: control.palette.button
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SplitView.qml
new file mode 100644
index 00000000..9d37a83e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SplitView.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.13
+import QtQuick.Templates 2.13 as T
+import QtQuick.Controls 2.13
+import QtQuick.Controls.impl 2.13
+
+T.SplitView {
+ id: control
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ handle: Rectangle {
+ implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
+ implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
+ color: T.SplitHandle.pressed ? control.palette.mid
+ : (T.SplitHandle.hovered ? control.palette.midlight : control.palette.button)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/StackView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/StackView.qml
new file mode 100644
index 00000000..3e416b87
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/StackView.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Templates 2.12 as T
+
+T.StackView {
+ id: control
+
+ popEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ popExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ pushEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ pushExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ replaceEnter: Transition {
+ XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+
+ replaceExit: Transition {
+ XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeDelegate.qml
new file mode 100644
index 00000000..37d66bb6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeDelegate.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.SwipeDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 12
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ color: Color.blend(control.down ? control.palette.midlight : control.palette.light,
+ control.palette.highlight, control.visualFocus ? 0.15 : 0.0)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeView.qml
new file mode 100644
index 00000000..7722d258
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwipeView.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Templates 2.12 as T
+
+T.SwipeView {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ contentItem: ListView {
+ model: control.contentModel
+ interactive: control.interactive
+ currentIndex: control.currentIndex
+ focus: control.focus
+
+ spacing: control.spacing
+ orientation: control.orientation
+ snapMode: ListView.SnapOneItem
+ boundsBehavior: Flickable.StopAtBounds
+
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ preferredHighlightBegin: 0
+ preferredHighlightEnd: 0
+ highlightMoveDuration: 250
+ maximumFlickVelocity: 4 * (control.orientation === Qt.Horizontal ? width : height)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Switch.qml
new file mode 100644
index 00000000..f62e2502
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Switch.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.Switch {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ indicator: PaddedRectangle {
+ implicitWidth: 56
+ implicitHeight: 28
+
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ radius: 8
+ leftPadding: 0
+ rightPadding: 0
+ padding: (height - 16) / 2
+ color: control.checked ? control.palette.dark : control.palette.midlight
+
+ Rectangle {
+ x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+ width: 28
+ height: 28
+ radius: 16
+ color: control.down ? control.palette.light : control.palette.window
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
+
+ Behavior on x {
+ enabled: !control.down
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+ }
+
+ contentItem: CheckLabel {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ color: control.palette.windowText
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwitchDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwitchDelegate.qml
new file mode 100644
index 00000000..d6447e77
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/SwitchDelegate.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.SwitchDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ spacing: 12
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
+ indicator: PaddedRectangle {
+ implicitWidth: 56
+ implicitHeight: 28
+
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ radius: 8
+ leftPadding: 0
+ rightPadding: 0
+ padding: (height - 16) / 2
+ color: control.checked ? control.palette.dark : control.palette.midlight
+
+ Rectangle {
+ x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+ width: 28
+ height: 28
+ radius: 16
+ color: control.down ? control.palette.light : control.palette.window
+ border.width: control.visualFocus ? 2 : 1
+ border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
+
+ Behavior on x {
+ enabled: !control.down
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+ }
+
+ contentItem: IconLabel {
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.palette.text
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ visible: control.down || control.highlighted
+ color: control.down ? control.palette.midlight : control.palette.light
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabBar.qml
new file mode 100644
index 00000000..83f6b3b2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabBar.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+
+T.TabBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 1
+
+ contentItem: ListView {
+ model: control.contentModel
+ currentIndex: control.currentIndex
+
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ flickableDirection: Flickable.AutoFlickIfNeeded
+ snapMode: ListView.SnapToItem
+
+ highlightMoveDuration: 0
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 40
+ preferredHighlightEnd: width - 40
+ }
+
+ background: Rectangle {
+ color: control.palette.window
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabButton.qml
new file mode 100644
index 00000000..f8b303ea
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TabButton.qml
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.TabButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: checked ? control.palette.windowText : control.palette.brightText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.checked ? control.palette.windowText : control.palette.brightText
+ }
+
+ background: Rectangle {
+ implicitHeight: 40
+ color: Color.blend(control.checked ? control.palette.window : control.palette.dark,
+ control.palette.mid, control.down ? 0.5 : 0.0)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextArea.qml
new file mode 100644
index 00000000..45790e67
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextArea.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.TextArea {
+ id: control
+
+ implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
+ implicitBackgroundWidth + leftInset + rightInset,
+ placeholder.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight + topInset + bottomInset,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ padding: 6
+ leftPadding: padding + 4
+
+ color: control.palette.text
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextField.qml
new file mode 100644
index 00000000..4d9cb691
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/TextField.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.TextField {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth + leftInset + rightInset
+ || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ padding: 6
+ leftPadding: padding + 4
+
+ color: control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
+ verticalAlignment: TextInput.AlignVCenter
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ verticalAlignment: control.verticalAlignment
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ border.width: control.activeFocus ? 2 : 1
+ color: control.palette.base
+ border.color: control.activeFocus ? control.palette.highlight : control.palette.mid
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolBar.qml
new file mode 100644
index 00000000..1e07b6bf
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolBar.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ToolBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ background: Rectangle {
+ implicitHeight: 40
+ color: control.palette.button
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolButton.qml
new file mode 100644
index 00000000..63aaf893
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolButton.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ToolButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 6
+
+ icon.width: 24
+ icon.height: 24
+ icon.color: visualFocus ? control.palette.highlight : control.palette.buttonText
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: control.visualFocus ? control.palette.highlight : control.palette.buttonText
+ }
+
+ background: Rectangle {
+ implicitWidth: 40
+ implicitHeight: 40
+
+ opacity: control.down ? 1.0 : 0.5
+ color: control.down || control.checked || control.highlighted ? control.palette.mid : control.palette.button
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolSeparator.qml
new file mode 100644
index 00000000..188d0758
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolSeparator.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ToolSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: vertical ? 6 : 2
+ verticalPadding: vertical ? 2 : 6
+
+ contentItem: Rectangle {
+ implicitWidth: vertical ? 1 : 30
+ implicitHeight: vertical ? 30 : 1
+ color: control.palette.mid
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolTip.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolTip.qml
new file mode 100644
index 00000000..e0389903
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/ToolTip.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.ToolTip {
+ id: control
+
+ x: parent ? (parent.width - implicitWidth) / 2 : 0
+ y: -implicitHeight - 3
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 6
+ padding: 6
+
+ closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ wrapMode: Text.Wrap
+ color: control.palette.toolTipText
+ }
+
+ background: Rectangle {
+ border.color: control.palette.dark
+ color: control.palette.toolTipBase
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Tumbler.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Tumbler.qml
new file mode 100644
index 00000000..cd10263b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Tumbler.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Templates 2.12 as T
+
+T.Tumbler {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 60 // ### remove 60 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 200 // ### remove 200 in Qt 6
+
+ delegate: Text {
+ text: modelData
+ color: control.visualFocus ? control.palette.highlight : control.palette.text
+ font: control.font
+ opacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ implicitWidth: 60
+ implicitHeight: 200
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: control.contentItem.width / 2
+ startY: -control.contentItem.delegateHeight / 2
+ PathLine {
+ x: control.contentItem.width / 2
+ y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
+ }
+ }
+
+ property real delegateHeight: control.availableHeight / control.visibleItemCount
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ApplicationWindow.qml
new file mode 100644
index 00000000..153b9e8e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ApplicationWindow.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Window 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.ApplicationWindow {
+ id: window
+
+ color: Universal.background
+
+ overlay.modal: Rectangle {
+ color: window.Universal.baseLowColor
+ }
+
+ overlay.modeless: Rectangle {
+ color: window.Universal.baseLowColor
+ }
+
+ FocusRectangle {
+ parent: window.activeFocusControl
+ width: parent ? parent.width : 0
+ height: parent ? parent.height : 0
+ visible: parent && !!parent.useSystemFocusVisuals && !!parent.visualFocus
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/BusyIndicator.qml
new file mode 100644
index 00000000..2ad21b46
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/BusyIndicator.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.BusyIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: BusyIndicatorImpl {
+ implicitWidth: 20
+ implicitHeight: 20
+
+ readonly property real size: Math.min(control.availableWidth, control.availableHeight)
+
+ count: size < 60 ? 5 : 6 // "Small" vs. "Large"
+ color: control.Universal.accent
+ visible: control.running
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Button.qml
new file mode 100644
index 00000000..657b2835
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Button.qml
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.Button {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 8
+ verticalPadding: padding - 4
+ spacing: 8
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ property bool useSystemFocusVisuals: true
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ implicitWidth: 32
+ implicitHeight: 32
+
+ visible: !control.flat || control.down || control.checked || control.highlighted
+ color: control.down ? control.Universal.baseMediumLowColor :
+ control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
+ control.Universal.baseLowColor
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ color: "transparent"
+ visible: control.hovered
+ border.width: 2 // ButtonBorderThemeThickness
+ border.color: control.Universal.baseMediumLowColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckBox.qml
new file mode 100644
index 00000000..9494f4d2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckBox.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.CheckBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 8
+
+ property bool useSystemFocusVisuals: true
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckDelegate.qml
new file mode 100644
index 00000000..b544c42e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckDelegate.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.CheckDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ indicator: CheckIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ visible: control.down || control.highlighted || control.visualFocus || control.hovered
+ color: control.down ? control.Universal.listMediumColor :
+ control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.visualFocus || control.highlighted
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckIndicator.qml
new file mode 100644
index 00000000..8f41617a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/CheckIndicator.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+Rectangle {
+ id: indicator
+ implicitWidth: 20
+ implicitHeight: 20
+
+ color: !control.enabled ? "transparent" :
+ control.down && !partiallyChecked ? control.Universal.baseMediumColor :
+ control.checkState === Qt.Checked ? control.Universal.accent : "transparent"
+ border.color: !control.enabled ? control.Universal.baseLowColor :
+ control.down ? control.Universal.baseMediumColor :
+ control.checked ? control.Universal.accent : control.Universal.baseMediumHighColor
+ border.width: 2 // CheckBoxBorderThemeThickness
+
+ property Item control
+ readonly property bool partiallyChecked: control.checkState === Qt.PartiallyChecked
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+
+ visible: indicator.control.checkState === Qt.Checked
+ color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor : indicator.control.Universal.chromeWhiteColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/checkmark.png"
+ }
+
+ Rectangle {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: indicator.partiallyChecked ? parent.width / 2 : parent.width
+ height: indicator.partiallyChecked ? parent.height / 2 : parent.height
+
+ visible: !indicator.control.pressed && indicator.control.hovered || indicator.partiallyChecked
+ color: !indicator.partiallyChecked ? "transparent" :
+ !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
+ indicator.control.down ? indicator.control.Universal.baseMediumColor :
+ indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
+ border.width: indicator.partiallyChecked ? 0 : 2 // CheckBoxBorderThemeThickness
+ border.color: indicator.control.Universal.baseMediumLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ComboBox.qml
new file mode 100644
index 00000000..9b88ccf9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ComboBox.qml
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Universal 2.15
+
+T.ComboBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+ rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
+
+ Universal.theme: editable && activeFocus ? Universal.Light : undefined
+
+ delegate: ItemDelegate {
+ width: ListView.view.width
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
+ font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
+ highlighted: control.highlightedIndex === index
+ hoverEnabled: control.hoverEnabled
+ }
+
+ indicator: ColorImage {
+ x: control.mirrored ? control.padding : control.width - width - control.padding
+ y: control.topPadding + (control.availableHeight - height) / 2
+ color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumHighColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/downarrow.png"
+
+ Rectangle {
+ z: -1
+ width: parent.width
+ height: parent.height
+ color: control.activeFocus ? control.Universal.accent :
+ control.pressed ? control.Universal.baseMediumLowColor :
+ control.hovered ? control.Universal.baseLowColor : "transparent"
+ visible: control.editable && !contentItem.hovered && (control.pressed || control.hovered)
+ opacity: control.activeFocus && !control.pressed ? 0.4 : 1.0
+ }
+ }
+
+ contentItem: T.TextField {
+ leftPadding: control.mirrored ? 1 : 12
+ rightPadding: control.mirrored ? 10 : 1
+ topPadding: 5 - control.topPadding
+ bottomPadding: 7 - control.bottomPadding
+
+ text: control.editable ? control.editText : control.displayText
+
+ enabled: control.editable
+ autoScroll: control.editable
+ readOnly: control.down
+ inputMethodHints: control.inputMethodHints
+ validator: control.validator
+ selectByMouse: control.selectTextByMouse
+
+ font: control.font
+ color: !control.enabled ? control.Universal.chromeDisabledLowColor :
+ control.editable && control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
+ selectionColor: control.Universal.accent
+ selectedTextColor: control.Universal.chromeWhiteColor
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ background: Rectangle {
+ implicitWidth: 120
+ implicitHeight: 32
+
+ border.width: control.flat ? 0 : 2 // ComboBoxBorderThemeThickness
+ border.color: !control.enabled ? control.Universal.baseLowColor :
+ control.editable && control.activeFocus ? control.Universal.accent :
+ control.down ? control.Universal.baseMediumLowColor :
+ control.hovered ? control.Universal.baseMediumColor : control.Universal.baseMediumLowColor
+ color: !control.enabled ? control.Universal.baseLowColor :
+ control.down ? control.Universal.listMediumColor :
+ control.flat && control.hovered ? control.Universal.listLowColor :
+ control.editable && control.activeFocus ? control.Universal.background : control.Universal.altMediumLowColor
+ visible: !control.flat || control.pressed || control.hovered || control.visualFocus
+
+ Rectangle {
+ x: 2
+ y: 2
+ width: parent.width - 4
+ height: parent.height - 4
+
+ visible: control.visualFocus && !control.editable
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+ }
+
+ popup: T.Popup {
+ width: control.width
+ height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
+ topMargin: 8
+ bottomMargin: 8
+
+ Universal.theme: control.Universal.theme
+ Universal.accent: control.Universal.accent
+
+ contentItem: ListView {
+ clip: true
+ implicitHeight: contentHeight
+ model: control.delegateModel
+ currentIndex: control.highlightedIndex
+ highlightMoveDuration: 0
+
+ T.ScrollIndicator.vertical: ScrollIndicator { }
+ }
+
+ background: Rectangle {
+ color: control.Universal.chromeMediumLowColor
+ border.color: control.Universal.chromeHighColor
+ border.width: 1 // FlyoutBorderThemeThickness
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DelayButton.qml
new file mode 100644
index 00000000..2a3a3b3a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DelayButton.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.DelayButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 8
+ verticalPadding: padding - 4
+
+ property bool useSystemFocusVisuals: true
+
+ transition: Transition {
+ NumberAnimation {
+ duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
+ }
+ }
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ elide: Text.ElideRight
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+
+ background: Rectangle {
+ implicitWidth: 32
+ implicitHeight: 32
+
+ color: control.down ? control.Universal.baseMediumLowColor :
+ control.enabled && control.checked ? control.Universal.accent : control.Universal.baseLowColor
+
+ Rectangle {
+ visible: !control.checked
+ width: parent.width * control.progress
+ height: parent.height
+ color: control.Universal.accent
+ }
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ color: "transparent"
+ visible: control.hovered
+ border.width: 2 // ButtonBorderThemeThickness
+ border.color: control.Universal.baseMediumLowColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dial.qml
new file mode 100644
index 00000000..f45d912e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dial.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Dial {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 100 // ### remove 100 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 100 // ### remove 100 in Qt 6
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 100
+
+ x: control.width / 2 - width / 2
+ y: control.height / 2 - height / 2
+ width: Math.max(64, Math.min(control.width, control.height))
+ height: width
+ radius: width / 2
+ color: "transparent"
+ border.color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumColor
+ border.width: 2
+ }
+
+ handle: Rectangle {
+ implicitWidth: 14
+ implicitHeight: 14
+
+ x: control.background.x + control.background.width / 2 - control.handle.width / 2
+ y: control.background.y + control.background.height / 2 - control.handle.height / 2
+
+ radius: width / 2
+ color: !control.enabled ? control.Universal.baseLowColor :
+ control.pressed ? control.Universal.baseMediumColor :
+ control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
+
+ transform: [
+ Translate {
+ y: -control.background.height * 0.4 + control.handle.height / 2
+ },
+ Rotation {
+ angle: control.angle
+ origin.x: control.handle.width / 2
+ origin.y: control.handle.height / 2
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dialog.qml
new file mode 100644
index 00000000..6151d090
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Dialog.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.Dialog {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ padding: 24
+ verticalPadding: 18
+
+ background: Rectangle {
+ color: control.Universal.chromeMediumLowColor
+ border.color: control.Universal.chromeHighColor
+ border.width: 1 // FlyoutBorderThemeThickness
+ }
+
+ header: Label {
+ text: control.title
+ visible: control.title
+ elide: Label.ElideRight
+ topPadding: 18
+ leftPadding: 24
+ rightPadding: 24
+ // TODO: QPlatformTheme::TitleBarFont
+ font.pixelSize: 20
+ background: Rectangle {
+ x: 1; y: 1 // // FlyoutBorderThemeThickness
+ color: control.Universal.chromeMediumLowColor
+ width: parent.width - 2
+ height: parent.height - 1
+ }
+ }
+
+ footer: DialogButtonBox {
+ visible: count > 0
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DialogButtonBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DialogButtonBox.qml
new file mode 100644
index 00000000..0458c39d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/DialogButtonBox.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.DialogButtonBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ (control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+ contentWidth: contentItem.contentWidth
+
+ spacing: 4
+ padding: 24
+ topPadding: position === T.DialogButtonBox.Footer ? 6 : 24
+ bottomPadding: position === T.DialogButtonBox.Header ? 6 : 24
+ alignment: count === 1 ? Qt.AlignRight : undefined
+
+ delegate: Button {
+ width: control.count === 1 ? control.availableWidth / 2 : undefined
+ }
+
+ contentItem: ListView {
+ model: control.contentModel
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ snapMode: ListView.SnapToItem
+ }
+
+ background: Rectangle {
+ implicitHeight: 32
+ color: control.Universal.chromeMediumLowColor
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Drawer.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Drawer.qml
new file mode 100644
index 00000000..7ec1d7f8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Drawer.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Drawer {
+ id: control
+
+ parent: T.Overlay.overlay
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ topPadding: control.edge === Qt.BottomEdge
+ leftPadding: control.edge === Qt.RightEdge
+ rightPadding: control.edge === Qt.LeftEdge
+ bottomPadding: control.edge === Qt.TopEdge
+
+ enter: Transition { SmoothedAnimation { velocity: 5 } }
+ exit: Transition { SmoothedAnimation { velocity: 5 } }
+
+ background: Rectangle {
+ color: control.Universal.chromeMediumLowColor
+ Rectangle {
+ readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
+ width: horizontal ? 1 : parent.width
+ height: horizontal ? parent.height : 1
+ color: control.Universal.chromeHighColor
+ x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
+ y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
+ }
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Frame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Frame.qml
new file mode 100644
index 00000000..8bb44849
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Frame.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Frame {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: "transparent"
+ border.color: control.Universal.chromeDisabledLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/GroupBox.qml
new file mode 100644
index 00000000..dc156dd7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/GroupBox.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.GroupBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitLabelWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ spacing: 12
+ padding: 12
+ topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
+
+ label: Text {
+ x: control.leftPadding
+ width: control.availableWidth
+
+ text: control.title
+ font: control.font
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+
+ background: Rectangle {
+ y: control.topPadding - control.bottomPadding
+ width: parent.width
+ height: parent.height - control.topPadding + control.bottomPadding
+
+ color: "transparent"
+ border.color: control.Universal.chromeDisabledLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/HorizontalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/HorizontalHeaderView.qml
new file mode 100644
index 00000000..47daa8ce
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/HorizontalHeaderView.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Universal 2.15
+import QtQuick.Controls.Universal.impl 2.15
+
+T.HorizontalHeaderView {
+ id: control
+
+ implicitWidth: syncView ? syncView.width : 0
+ implicitHeight: contentHeight
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: text.implicitWidth + (cellPadding * 2)
+ implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
+ color: control.Universal.background
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ItemDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ItemDelegate.qml
new file mode 100644
index 00000000..ed985405
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ItemDelegate.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.ItemDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ visible: control.down || control.highlighted || control.visualFocus || control.hovered
+ color: control.down ? control.Universal.listMediumColor :
+ control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.visualFocus || control.highlighted
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Label.qml
new file mode 100644
index 00000000..c66435c3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Label.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Label {
+ id: control
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ linkColor: Universal.accent
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Menu.qml
new file mode 100644
index 00000000..4814d006
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Menu.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Window 2.12
+
+T.Menu {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 0
+ overlap: 1
+
+ delegate: MenuItem { }
+
+ contentItem: ListView {
+ implicitHeight: contentHeight
+ model: control.contentModel
+ interactive: Window.window
+ ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
+ : false
+ clip: true
+ currentIndex: control.currentIndex
+
+ ScrollIndicator.vertical: ScrollIndicator {}
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ color: control.Universal.chromeMediumLowColor
+ border.color: control.Universal.chromeHighColor
+ border.width: 1 // FlyoutBorderThemeThickness
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBar.qml
new file mode 100644
index 00000000..2317f505
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBar.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.MenuBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ delegate: MenuBarItem { }
+
+ contentItem: Row {
+ spacing: control.spacing
+ Repeater {
+ model: control.contentModel
+ }
+ }
+
+ background: Rectangle {
+ implicitHeight: 40
+ color: control.Universal.chromeMediumColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBarItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBarItem.qml
new file mode 100644
index 00000000..30f1fc57
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuBarItem.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.MenuBarItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+ spacing: 12
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
+ }
+
+ background: Rectangle {
+ implicitWidth: 40
+ implicitHeight: 40
+
+ color: !control.enabled ? control.Universal.baseLowColor :
+ control.down ? control.Universal.listMediumColor :
+ control.highlighted ? control.Universal.listLowColor : "transparent"
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+
+ visible: control.visualFocus
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuItem.qml
new file mode 100644
index 00000000..23d0ee3c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuItem.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.MenuItem {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+ spacing: 12
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
+
+ contentItem: IconLabel {
+ readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
+ readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
+ rightPadding: control.mirrored ? indicatorPadding : arrowPadding
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
+ }
+
+ arrow: ColorImage {
+ x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.subMenu
+ mirror: control.mirrored
+ color: !enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/rightarrow.png"
+ }
+
+ indicator: ColorImage {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ visible: control.checked
+ color: !control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
+ source: !control.checkable ? "" : "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/checkmark.png"
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+
+ color: !control.enabled ? control.Universal.baseLowColor :
+ control.down ? control.Universal.listMediumColor :
+ control.highlighted ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+
+ Rectangle {
+ x: 1; y: 1
+ width: parent.width - 2
+ height: parent.height - 2
+
+ visible: control.visualFocus
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuSeparator.qml
new file mode 100644
index 00000000..72f9f6f7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/MenuSeparator.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.MenuSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 12
+ topPadding: 9
+ bottomPadding: 10
+
+ contentItem: Rectangle {
+ implicitWidth: 188
+ implicitHeight: 1
+ color: control.Universal.baseMediumLowColor
+ }
+
+ background: Rectangle {
+ color: control.Universal.altMediumLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Page.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Page.qml
new file mode 100644
index 00000000..347d6d9a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Page.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Page {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding,
+ implicitHeaderWidth,
+ implicitFooterWidth)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding
+ + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
+
+ background: Rectangle {
+ color: control.Universal.background
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/PageIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/PageIndicator.qml
new file mode 100644
index 00000000..3dcc84ab
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/PageIndicator.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.PageIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 7
+
+ delegate: Rectangle {
+ implicitWidth: 5
+ implicitHeight: 5
+
+ radius: width / 2
+ color: index === control.currentIndex ? control.Universal.baseMediumHighColor :
+ pressed ? control.Universal.baseMediumLowColor : control.Universal.baseLowColor
+ }
+
+ contentItem: Row {
+ spacing: control.spacing
+
+ Repeater {
+ model: control.count
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Pane.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Pane.qml
new file mode 100644
index 00000000..63a5ecec
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Pane.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Pane {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.Universal.background
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Popup.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Popup.qml
new file mode 100644
index 00000000..e39134e1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Popup.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Popup {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ padding: 12
+
+ background: Rectangle {
+ color: control.Universal.chromeMediumLowColor
+ border.color: control.Universal.chromeHighColor
+ border.width: 1 // FlyoutBorderThemeThickness
+ }
+
+ T.Overlay.modal: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+
+ T.Overlay.modeless: Rectangle {
+ color: control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ProgressBar.qml
new file mode 100644
index 00000000..ce79bd54
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ProgressBar.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.ProgressBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: ProgressBarImpl {
+ implicitHeight: 10
+
+ scale: control.mirrored ? -1 : 1
+ color: control.Universal.accent
+ progress: control.position
+ indeterminate: control.visible && control.indeterminate
+ }
+
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 10
+ y: (control.height - height) / 2
+ height: 10
+
+ visible: !control.indeterminate
+ color: control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioButton.qml
new file mode 100644
index 00000000..a50cdf9b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioButton.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.RadioButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 8
+
+ property bool useSystemFocusVisuals: true
+
+ indicator: RadioIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioDelegate.qml
new file mode 100644
index 00000000..9fc910f3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioDelegate.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.RadioDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ indicator: RadioIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ visible: control.down || control.highlighted || control.visualFocus || control.hovered
+ color: control.down ? control.Universal.listMediumColor :
+ control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.visualFocus || control.highlighted
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioIndicator.qml
new file mode 100644
index 00000000..1a32decb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RadioIndicator.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Controls.Universal 2.12
+
+Rectangle {
+ id: indicator
+ implicitWidth: 20
+ implicitHeight: 20
+ radius: width / 2
+ color: "transparent"
+ border.width: 2 // RadioButtonBorderThemeThickness
+ border.color: control.checked ? "transparent" :
+ !control.enabled ? control.Universal.baseLowColor :
+ control.down ? control.Universal.baseMediumColor :
+ control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
+
+ property var control
+
+ Rectangle {
+ id: checkOuterEllipse
+ width: parent.width
+ height: parent.height
+
+ radius: width / 2
+ opacity: indicator.control.checked ? 1 : 0
+ color: "transparent"
+ border.width: 2 // RadioButtonBorderThemeThickness
+ border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
+ indicator.control.down ? indicator.control.Universal.baseMediumColor : indicator.control.Universal.accent
+ }
+
+ Rectangle {
+ id: checkGlyph
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ width: parent.width / 2
+ height: parent.height / 2
+
+ radius: width / 2
+ opacity: indicator.control.checked ? 1 : 0
+ color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
+ indicator.control.down ? indicator.control.Universal.baseMediumColor :
+ indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RangeSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RangeSlider.qml
new file mode 100644
index 00000000..f2e4d71e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RangeSlider.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.RangeSlider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ first.implicitHandleWidth + leftPadding + rightPadding,
+ second.implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ first.implicitHandleHeight + topPadding + bottomPadding,
+ second.implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ first.handle: Rectangle {
+ implicitWidth: control.horizontal ? 8 : 24
+ implicitHeight: control.horizontal ? 24 : 8
+
+ x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
+
+ radius: 4
+ color: control.first.pressed ? control.Universal.chromeHighColor :
+ control.first.hovered ? control.Universal.chromeAltLowColor :
+ control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
+ }
+
+ second.handle: Rectangle {
+ implicitWidth: control.horizontal ? 8 : 24
+ implicitHeight: control.horizontal ? 24 : 8
+
+ x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
+
+ radius: 4
+ color: control.second.pressed ? control.Universal.chromeHighColor :
+ control.second.hovered ? control.Universal.chromeAltLowColor :
+ control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
+ }
+
+ background: Item {
+ implicitWidth: control.horizontal ? 200 : 18
+ implicitHeight: control.horizontal ? 18 : 200
+
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ width: control.horizontal ? control.availableWidth : implicitWidth
+ height: control.horizontal ? implicitHeight : control.availableHeight
+
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ Rectangle {
+ x: control.horizontal ? 0 : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : 0
+ width: control.horizontal ? parent.width : 2 // SliderBackgroundThemeHeight
+ height: control.vertical ? parent.height : 2 // SliderBackgroundThemeHeight
+
+ color: control.hovered && !control.pressed ? control.Universal.baseMediumColor :
+ control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
+ }
+
+ Rectangle {
+ x: control.horizontal ? control.first.position * parent.width : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : control.second.visualPosition * parent.height
+ width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderBackgroundThemeHeight
+ height: control.vertical ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderBackgroundThemeHeight
+
+ color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RoundButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RoundButton.qml
new file mode 100644
index 00000000..2eedf96e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/RoundButton.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.RoundButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 8
+ spacing: 8
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ property bool useSystemFocusVisuals: true
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ implicitWidth: 32
+ implicitHeight: 32
+
+ radius: control.radius
+ visible: !control.flat || control.down || control.checked || control.highlighted
+ color: control.down ? control.Universal.baseMediumLowColor :
+ control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
+ control.Universal.baseLowColor
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ radius: control.radius
+ color: "transparent"
+ visible: control.hovered
+ border.width: 2 // ButtonBorderThemeThickness
+ border.color: control.Universal.baseMediumLowColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollBar.qml
new file mode 100644
index 00000000..8b8e325d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollBar.qml
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.ScrollBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ visible: control.policy !== T.ScrollBar.AlwaysOff
+ minimumSize: orientation == Qt.Horizontal ? height / width : width / height
+
+ // TODO: arrows
+
+ contentItem: Rectangle {
+ implicitWidth: control.interactive ? 12 : 6
+ implicitHeight: control.interactive ? 12: 6
+
+ color: control.pressed ? control.Universal.baseMediumColor :
+ control.interactive && control.hovered ? control.Universal.baseMediumLowColor : control.Universal.chromeHighColor
+ opacity: 0.0
+ }
+
+ background: Rectangle {
+ implicitWidth: control.interactive ? 12 : 6
+ implicitHeight: control.interactive ? 12: 6
+
+ color: control.Universal.chromeLowColor
+ visible: control.size < 1.0
+ opacity: 0.0
+ }
+
+ states: [
+ State {
+ name: "active"
+ when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "active"
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
+ },
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
+ PauseAnimation { duration: 3000 }
+ NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollIndicator.qml
new file mode 100644
index 00000000..ab66ee7c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ScrollIndicator.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.ScrollIndicator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ contentItem: Rectangle {
+ implicitWidth: 6
+ implicitHeight: 6
+
+ color: control.Universal.baseMediumLowColor
+ visible: control.size < 1.0
+ opacity: 0.0
+
+ states: [
+ State {
+ name: "active"
+ when: control.active
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "active"
+ NumberAnimation { target: control.contentItem; property: "opacity"; to: 1.0 }
+ },
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 5000 }
+ NumberAnimation { target: control.contentItem; property: "opacity"; to: 0.0 }
+ }
+ }
+ ]
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Slider.qml
new file mode 100644
index 00000000..8f427b1e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Slider.qml
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.Slider {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitHandleWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitHandleHeight + topPadding + bottomPadding)
+
+ padding: 6
+
+ property bool useSystemFocusVisuals: true
+
+ handle: Rectangle {
+ implicitWidth: control.horizontal ? 8 : 24
+ implicitHeight: control.horizontal ? 24 : 8
+
+ x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
+
+ radius: 4
+ color: control.pressed ? control.Universal.chromeHighColor :
+ control.hovered ? control.Universal.chromeAltLowColor :
+ control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
+ }
+
+ background: Item {
+ implicitWidth: control.horizontal ? 200 : 18
+ implicitHeight: control.horizontal ? 18 : 200
+
+ x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
+ y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
+ width: control.horizontal ? control.availableWidth : implicitWidth
+ height: control.horizontal ? implicitHeight : control.availableHeight
+
+ scale: control.horizontal && control.mirrored ? -1 : 1
+
+ Rectangle {
+ x: control.horizontal ? 0 : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : 0
+ width: control.horizontal ? parent.width : 2 // SliderTrackThemeHeight
+ height: !control.horizontal ? parent.height : 2 // SliderTrackThemeHeight
+
+ color: control.hovered && !control.pressed ? control.Universal.baseMediumColor :
+ control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
+ }
+
+ Rectangle {
+ x: control.horizontal ? 0 : (parent.width - width) / 2
+ y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height
+ width: control.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight
+ height: !control.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight
+
+ color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SpinBox.qml
new file mode 100644
index 00000000..dfe927f5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SpinBox.qml
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.SpinBox {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + 16 +
+ up.implicitIndicatorWidth +
+ down.implicitIndicatorWidth)
+ implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight,
+ up.implicitIndicatorHeight,
+ down.implicitIndicatorHeight)
+
+ // TextControlThemePadding + 2 (border)
+ padding: 12
+ topPadding: padding - 7
+ leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
+ rightPadding: padding - 4 + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+ bottomPadding: padding - 5
+
+ Universal.theme: activeFocus ? Universal.Light : undefined
+
+ validator: IntValidator {
+ locale: control.locale.name
+ bottom: Math.min(control.from, control.to)
+ top: Math.max(control.from, control.to)
+ }
+
+ contentItem: TextInput {
+ text: control.displayText
+
+ font: control.font
+ color: !enabled ? control.Universal.chromeDisabledLowColor :
+ activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
+ selectionColor: control.Universal.accent
+ selectedTextColor: control.Universal.chromeWhiteColor
+ horizontalAlignment: Qt.AlignHCenter
+ verticalAlignment: TextInput.AlignVCenter
+
+ readOnly: !control.editable
+ validator: control.validator
+ inputMethodHints: control.inputMethodHints
+ }
+
+ up.indicator: Item {
+ implicitWidth: 28
+ height: parent.height + 4
+ y: -2
+ x: control.mirrored ? 0 : parent.width - width
+
+ Rectangle {
+ x: 2; y: 4
+ width: parent.width - 4
+ height: parent.height - 8
+ color: control.activeFocus ? control.Universal.accent :
+ control.up.pressed ? control.Universal.baseMediumLowColor :
+ control.up.hovered ? control.Universal.baseLowColor : "transparent"
+ visible: control.up.pressed || control.up.hovered
+ opacity: control.activeFocus && !control.up.pressed ? 0.4 : 1.0
+ }
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ color: !enabled ? control.Universal.chromeDisabledLowColor :
+ control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/" + (control.mirrored ? "left" : "right") + "arrow.png"
+ }
+ }
+
+ down.indicator: Item {
+ implicitWidth: 28
+ height: parent.height + 4
+ y: -2
+ x: control.mirrored ? parent.width - width : 0
+
+ Rectangle {
+ x: 2; y: 4
+ width: parent.width - 4
+ height: parent.height - 8
+ color: control.activeFocus ? control.Universal.accent :
+ control.down.pressed ? control.Universal.baseMediumLowColor :
+ control.down.hovered ? control.Universal.baseLowColor : "transparent"
+ visible: control.down.pressed || control.down.hovered
+ opacity: control.activeFocus && !control.down.pressed ? 0.4 : 1.0
+ }
+
+ ColorImage {
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ color: !enabled ? control.Universal.chromeDisabledLowColor :
+ control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/" + (control.mirrored ? "right" : "left") + "arrow.png"
+ }
+ }
+
+ background: Rectangle {
+ implicitWidth: 60 + 28 // TextControlThemeMinWidth - 4 (border)
+ implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
+
+ border.width: 2 // TextControlBorderThemeThickness
+ border.color: !control.enabled ? control.Universal.baseLowColor :
+ control.activeFocus ? control.Universal.accent :
+ control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
+ color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SplitView.qml
new file mode 100644
index 00000000..a4ed22dd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SplitView.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.13
+import QtQuick.Templates 2.13 as T
+import QtQuick.Controls 2.13
+import QtQuick.Controls.impl 2.13
+import QtQuick.Controls.Universal 2.13
+
+T.SplitView {
+ id: control
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ handle: Rectangle {
+ implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
+ implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
+ color: T.SplitHandle.pressed ? control.Universal.baseMediumColor
+ : (T.SplitHandle.hovered ? control.Universal.baseMediumLowColor : control.Universal.chromeHighColor)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/StackView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/StackView.qml
new file mode 100644
index 00000000..5a3f7751
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/StackView.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.StackView {
+ id: control
+
+ popEnter: Transition {
+ ParallelAnimation {
+ NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+ }
+
+ popExit: Transition {
+ NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
+ }
+
+ pushEnter: Transition {
+ ParallelAnimation {
+ NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+ }
+
+ pushExit: Transition {
+ NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
+ }
+
+ replaceEnter: Transition {
+ ParallelAnimation {
+ NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
+ NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
+ }
+ }
+
+ replaceExit: Transition {
+ NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwipeDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwipeDelegate.qml
new file mode 100644
index 00000000..066049a7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwipeDelegate.qml
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.SwipeDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ color: control.Universal.background
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ color: control.down ? control.Universal.listMediumColor :
+ control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.visualFocus || control.highlighted
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Switch.qml
new file mode 100644
index 00000000..284b1229
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Switch.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.Switch {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ padding: 5
+ spacing: 8
+
+ property bool useSystemFocusVisuals: true
+
+ indicator: SwitchIndicator {
+ x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: Text {
+ leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
+
+ text: control.text
+ font: control.font
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchDelegate.qml
new file mode 100644
index 00000000..56ba8494
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchDelegate.qml
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls.Universal.impl 2.12
+
+T.SwitchDelegate {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ implicitIndicatorHeight + topPadding + bottomPadding)
+
+ spacing: 12
+
+ padding: 12
+ topPadding: padding - 1
+ bottomPadding: padding + 1
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ indicator: SwitchIndicator {
+ x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
+ y: control.topPadding + (control.availableHeight - height) / 2
+ control: control
+ }
+
+ contentItem: IconLabel {
+ leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
+ rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
+
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+ alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ visible: control.down || control.highlighted || control.visualFocus || control.hovered
+ color: control.down ? control.Universal.listMediumColor :
+ control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.visualFocus || control.highlighted
+ color: control.Universal.accent
+ opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
+ }
+
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchIndicator.qml
new file mode 100644
index 00000000..10f39515
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/SwitchIndicator.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+Item {
+ id: indicator
+ implicitWidth: 44
+ implicitHeight: 20
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+
+ radius: 10
+ color: !indicator.control.enabled ? "transparent" :
+ indicator.control.pressed ? indicator.control.Universal.baseMediumColor :
+ indicator.control.checked ? indicator.control.Universal.accent : "transparent"
+ border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
+ indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.accent :
+ indicator.control.hovered && !indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumColor
+ opacity: indicator.control.hovered && indicator.control.checked && !indicator.control.pressed ? (indicator.control.Universal.theme === Universal.Light ? 0.7 : 0.9) : 1.0
+ border.width: 2
+ }
+
+ property Item control
+
+ Rectangle {
+ width: 10
+ height: 10
+ radius: 5
+
+ color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
+ indicator.control.pressed || indicator.control.checked ? indicator.control.Universal.chromeWhiteColor :
+ indicator.control.hovered && !indicator.control.checked ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
+
+ x: Math.max(5, Math.min(parent.width - width - 5,
+ indicator.control.visualPosition * parent.width - (width / 2)))
+ y: (parent.height - height) / 2
+
+ Behavior on x {
+ enabled: !indicator.control.pressed
+ SmoothedAnimation { velocity: 200 }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabBar.qml
new file mode 100644
index 00000000..c7d27cbd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabBar.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.TabBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ contentItem: ListView {
+ model: control.contentModel
+ currentIndex: control.currentIndex
+
+ spacing: control.spacing
+ orientation: ListView.Horizontal
+ boundsBehavior: Flickable.StopAtBounds
+ flickableDirection: Flickable.AutoFlickIfNeeded
+ snapMode: ListView.SnapToItem
+
+ highlightMoveDuration: 100
+ highlightRangeMode: ListView.ApplyRange
+ preferredHighlightBegin: 48
+ preferredHighlightEnd: width - 48
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 48
+ color: control.Universal.background
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabButton.qml
new file mode 100644
index 00000000..66e3d725
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TabButton.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.TabButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 12 // PivotItemMargin
+ spacing: 8
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
+ control.checked || control.down || control.hovered ? 1.0 : 0.2)
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
+ control.checked || control.down || control.hovered ? 1.0 : 0.2)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextArea.qml
new file mode 100644
index 00000000..03ad4a89
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextArea.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.TextArea {
+ id: control
+
+ implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
+ implicitBackgroundWidth + leftInset + rightInset,
+ placeholder.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
+ implicitBackgroundHeight + topInset + bottomInset,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ // TextControlThemePadding + 2 (border)
+ padding: 12
+ topPadding: padding - 7
+ rightPadding: padding - 4
+ bottomPadding: padding - 5
+
+ Universal.theme: activeFocus ? Universal.Light : undefined
+
+ color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
+ selectionColor: Universal.accent
+ selectedTextColor: Universal.chromeWhiteColor
+ placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
+ activeFocus ? Universal.chromeBlackMediumLowColor :
+ Universal.baseMediumColor
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ verticalAlignment: control.verticalAlignment
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: Rectangle {
+ implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
+ implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
+
+ border.width: 2 // TextControlBorderThemeThickness
+ border.color: !control.enabled ? control.Universal.baseLowColor :
+ control.activeFocus ? control.Universal.accent :
+ control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
+ color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextField.qml
new file mode 100644
index 00000000..ba5bf685
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/TextField.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.TextField {
+ id: control
+
+ implicitWidth: implicitBackgroundWidth + leftInset + rightInset
+ || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding,
+ placeholder.implicitHeight + topPadding + bottomPadding)
+
+ // TextControlThemePadding + 2 (border)
+ padding: 12
+ topPadding: padding - 7
+ rightPadding: padding - 4
+ bottomPadding: padding - 5
+
+ Universal.theme: activeFocus ? Universal.Light : undefined
+
+ color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
+ selectionColor: Universal.accent
+ selectedTextColor: Universal.chromeWhiteColor
+ placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
+ activeFocus ? Universal.chromeBlackMediumLowColor :
+ Universal.baseMediumColor
+ verticalAlignment: TextInput.AlignVCenter
+
+ PlaceholderText {
+ id: placeholder
+ x: control.leftPadding
+ y: control.topPadding
+ width: control.width - (control.leftPadding + control.rightPadding)
+ height: control.height - (control.topPadding + control.bottomPadding)
+
+ text: control.placeholderText
+ font: control.font
+ color: control.placeholderTextColor
+ visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
+ verticalAlignment: control.verticalAlignment
+ elide: Text.ElideRight
+ renderType: control.renderType
+ }
+
+ background: Rectangle {
+ implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
+ implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
+
+ border.width: 2 // TextControlBorderThemeThickness
+ border.color: !control.enabled ? control.Universal.baseLowColor :
+ control.activeFocus ? control.Universal.accent :
+ control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
+ color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolBar.qml
new file mode 100644
index 00000000..5a385e8e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolBar.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.ToolBar {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ background: Rectangle {
+ implicitHeight: 48 // AppBarThemeCompactHeight
+ color: control.Universal.chromeMediumColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolButton.qml
new file mode 100644
index 00000000..f36dac22
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolButton.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+import QtQuick.Controls.Universal 2.12
+
+T.ToolButton {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ padding: 6
+ spacing: 8
+
+ icon.width: 20
+ icon.height: 20
+ icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
+
+ property bool useSystemFocusVisuals: true
+
+ contentItem: IconLabel {
+ spacing: control.spacing
+ mirrored: control.mirrored
+ display: control.display
+
+ icon: control.icon
+ text: control.text
+ font: control.font
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+
+ background: Rectangle {
+ implicitWidth: 68
+ implicitHeight: 48 // AppBarThemeCompactHeight
+
+ color: control.enabled && (control.highlighted || control.checked) ? control.Universal.accent : "transparent"
+
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ visible: control.down || control.hovered
+ color: control.down ? control.Universal.listMediumColor : control.Universal.listLowColor
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolSeparator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolSeparator.qml
new file mode 100644
index 00000000..ee8e6e1c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolSeparator.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.ToolSeparator {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding)
+
+ leftPadding: vertical ? 16 : 12
+ rightPadding: vertical ? 15 : 12
+ topPadding: vertical ? 12 : 16
+ bottomPadding: vertical ? 12 : 15
+
+ contentItem: Rectangle {
+ implicitWidth: vertical ? 1 : 20
+ implicitHeight: vertical ? 20 : 1
+ color: control.Universal.baseMediumLowColor
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolTip.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolTip.qml
new file mode 100644
index 00000000..431cdf7c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/ToolTip.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+
+T.ToolTip {
+ id: control
+
+ x: parent ? (parent.width - implicitWidth) / 2 : 0
+ y: -implicitHeight - 16
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ contentHeight + topPadding + bottomPadding)
+
+ margins: 8
+ padding: 8
+ topPadding: padding - 3
+ bottomPadding: padding - 1
+
+ closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
+
+ contentItem: Text {
+ text: control.text
+ font: control.font
+ wrapMode: Text.Wrap
+ opacity: enabled ? 1.0 : 0.2
+ color: control.Universal.foreground
+ }
+
+ background: Rectangle {
+ color: control.Universal.chromeMediumLowColor
+ border.color: control.Universal.chromeHighColor
+ border.width: 1 // ToolTipBorderThemeThickness
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Tumbler.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Tumbler.qml
new file mode 100644
index 00000000..d0e7b12f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/Tumbler.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import QtQuick.Templates 2.12 as T
+import QtQuick.Controls.Universal 2.12
+import QtQuick.Controls 2.12
+import QtQuick.Controls.impl 2.12
+
+T.Tumbler {
+ id: control
+
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ implicitContentWidth + leftPadding + rightPadding) || 60 // ### remove 60 in Qt 6
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding) || 200 // ### remove 200 in Qt 6
+
+ delegate: Text {
+ text: modelData
+ font: control.font
+ color: control.Universal.foreground
+ opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ implicitWidth: 60
+ implicitHeight: 200
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: control.contentItem.width / 2
+ startY: -control.contentItem.delegateHeight / 2
+ PathLine {
+ x: control.contentItem.width / 2
+ y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
+ }
+ }
+
+ property real delegateHeight: control.availableHeight / control.visibleItemCount
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/VerticalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/VerticalHeaderView.qml
new file mode 100644
index 00000000..04408d68
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/VerticalHeaderView.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+import QtQuick.Controls.Universal 2.15
+import QtQuick.Controls.Universal.impl 2.15
+
+T.VerticalHeaderView {
+ id: control
+
+ implicitWidth: contentWidth
+ implicitHeight: syncView ? syncView.height : 0
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
+ implicitHeight: text.implicitHeight + (cellPadding * 2)
+ color: control.Universal.background
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/plugins.qmltypes
new file mode 100644
index 00000000..c38e39e1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/plugins.qmltypes
@@ -0,0 +1,340 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Universal 2.15'
+
+Module {
+ dependencies: ["QtQuick.Controls 2.0"]
+ Component { name: "QQuickAttachedObject"; prototype: "QObject" }
+ Component {
+ name: "QQuickItem"
+ defaultProperty: "data"
+ prototype: "QObject"
+ Enum {
+ name: "Flags"
+ values: {
+ "ItemClipsChildrenToShape": 1,
+ "ItemAcceptsInputMethod": 2,
+ "ItemIsFocusScope": 4,
+ "ItemHasContents": 8,
+ "ItemAcceptsDrops": 16
+ }
+ }
+ Enum {
+ name: "TransformOrigin"
+ values: {
+ "TopLeft": 0,
+ "Top": 1,
+ "TopRight": 2,
+ "Left": 3,
+ "Center": 4,
+ "Right": 5,
+ "BottomLeft": 6,
+ "Bottom": 7,
+ "BottomRight": 8
+ }
+ }
+ Property { name: "parent"; type: "QQuickItem"; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "x"; type: "double" }
+ Property { name: "y"; type: "double" }
+ Property { name: "z"; type: "double" }
+ Property { name: "width"; type: "double" }
+ Property { name: "height"; type: "double" }
+ Property { name: "opacity"; type: "double" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
+ Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
+ Property { name: "state"; type: "string" }
+ Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
+ Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
+ Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
+ Property { name: "baselineOffset"; type: "double" }
+ Property { name: "clip"; type: "bool" }
+ Property { name: "focus"; type: "bool" }
+ Property { name: "activeFocus"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
+ Property { name: "rotation"; type: "double" }
+ Property { name: "scale"; type: "double" }
+ Property { name: "transformOrigin"; type: "TransformOrigin" }
+ Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
+ Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
+ Property { name: "smooth"; type: "bool" }
+ Property { name: "antialiasing"; type: "bool" }
+ Property { name: "implicitWidth"; type: "double" }
+ Property { name: "implicitHeight"; type: "double" }
+ Property { name: "containmentMask"; revision: 11; type: "QObject"; isPointer: true }
+ Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "childrenRectChanged"
+ Parameter { type: "QRectF" }
+ }
+ Signal {
+ name: "baselineOffsetChanged"
+ Parameter { type: "double" }
+ }
+ Signal {
+ name: "stateChanged"
+ Parameter { type: "string" }
+ }
+ Signal {
+ name: "focusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "activeFocusOnTabChanged"
+ revision: 1
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "parentChanged"
+ Parameter { type: "QQuickItem"; isPointer: true }
+ }
+ Signal {
+ name: "transformOriginChanged"
+ Parameter { type: "TransformOrigin" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "antialiasingChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "clipChanged"
+ Parameter { type: "bool" }
+ }
+ Signal {
+ name: "windowChanged"
+ revision: 1
+ Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
+ }
+ Signal { name: "containmentMaskChanged"; revision: 11 }
+ Method { name: "update" }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ Parameter { name: "targetSize"; type: "QSize" }
+ }
+ Method {
+ name: "grabToImage"
+ revision: 4
+ type: "bool"
+ Parameter { name: "callback"; type: "QJSValue" }
+ }
+ Method {
+ name: "contains"
+ type: "bool"
+ Parameter { name: "point"; type: "QPointF" }
+ }
+ Method {
+ name: "mapFromItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToItem"
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapFromGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method {
+ name: "mapToGlobal"
+ revision: 7
+ Parameter { type: "QQmlV4Function"; isPointer: true }
+ }
+ Method { name: "forceActiveFocus" }
+ Method {
+ name: "forceActiveFocus"
+ Parameter { name: "reason"; type: "Qt::FocusReason" }
+ }
+ Method {
+ name: "nextItemInFocusChain"
+ revision: 1
+ type: "QQuickItem*"
+ Parameter { name: "forward"; type: "bool" }
+ }
+ Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
+ Method {
+ name: "childAt"
+ type: "QQuickItem*"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickPaintedItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Enum {
+ name: "RenderTarget"
+ values: {
+ "Image": 0,
+ "FramebufferObject": 1,
+ "InvertedYFramebufferObject": 2
+ }
+ }
+ Enum {
+ name: "PerformanceHints"
+ values: {
+ "FastFBOResizing": 1
+ }
+ }
+ Property { name: "contentsSize"; type: "QSize" }
+ Property { name: "fillColor"; type: "QColor" }
+ Property { name: "contentsScale"; type: "double" }
+ Property { name: "renderTarget"; type: "RenderTarget" }
+ Property { name: "textureSize"; type: "QSize" }
+ }
+ Component {
+ name: "QQuickUniversalBusyIndicator"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "count"; type: "int" }
+ Property { name: "color"; type: "QColor" }
+ }
+ Component {
+ name: "QQuickUniversalFocusRectangle"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtQuick.Controls.Universal.impl/FocusRectangle 2.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickUniversalProgressBar"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Universal.impl/ProgressBarImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "progress"; type: "double" }
+ Property { name: "indeterminate"; type: "bool" }
+ }
+ Component {
+ name: "QQuickUniversalStyle"
+ prototype: "QQuickAttachedObject"
+ exports: ["QtQuick.Controls.Universal/Universal 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Theme"
+ values: {
+ "Light": 0,
+ "Dark": 1,
+ "System": 2
+ }
+ }
+ Enum {
+ name: "Color"
+ values: {
+ "Lime": 0,
+ "Green": 1,
+ "Emerald": 2,
+ "Teal": 3,
+ "Cyan": 4,
+ "Cobalt": 5,
+ "Indigo": 6,
+ "Violet": 7,
+ "Pink": 8,
+ "Magenta": 9,
+ "Crimson": 10,
+ "Red": 11,
+ "Orange": 12,
+ "Amber": 13,
+ "Yellow": 14,
+ "Brown": 15,
+ "Olive": 16,
+ "Steel": 17,
+ "Mauve": 18,
+ "Taupe": 19
+ }
+ }
+ Property { name: "theme"; type: "Theme" }
+ Property { name: "accent"; type: "QVariant" }
+ Property { name: "foreground"; type: "QVariant" }
+ Property { name: "background"; type: "QVariant" }
+ Property { name: "altHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "altLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "altMediumColor"; type: "QColor"; isReadonly: true }
+ Property { name: "altMediumHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "altMediumLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "baseHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "baseLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "baseMediumColor"; type: "QColor"; isReadonly: true }
+ Property { name: "baseMediumHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "baseMediumLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeAltLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeBlackHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeBlackLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeBlackMediumLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeBlackMediumColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeDisabledHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeDisabledLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeHighColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeMediumColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeMediumLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "chromeWhiteColor"; type: "QColor"; isReadonly: true }
+ Property { name: "listLowColor"; type: "QColor"; isReadonly: true }
+ Property { name: "listMediumColor"; type: "QColor"; isReadonly: true }
+ Signal { name: "paletteChanged" }
+ Method {
+ name: "color"
+ type: "QColor"
+ Parameter { name: "color"; type: "Color" }
+ }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Universal.impl/CheckIndicator 2.0"
+ exports: ["QtQuick.Controls.Universal.impl/CheckIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "partiallyChecked"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ prototype: "QQuickRectangle"
+ name: "QtQuick.Controls.Universal.impl/RadioIndicator 2.0"
+ exports: ["QtQuick.Controls.Universal.impl/RadioIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls.Universal.impl/SwitchIndicator 2.0"
+ exports: ["QtQuick.Controls.Universal.impl/SwitchIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qmldir
new file mode 100644
index 00000000..6870a4e1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qmldir
@@ -0,0 +1,4 @@
+module QtQuick.Controls.Universal
+plugin qtquickcontrols2universalstyleplugin
+classname QtQuickControls2UniversalStylePlugin
+depends QtQuick.Controls 2.5
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qtquickcontrols2universalstyleplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qtquickcontrols2universalstyleplugin.dll
new file mode 100644
index 00000000..b73d8106
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/Universal/qtquickcontrols2universalstyleplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/VerticalHeaderView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/VerticalHeaderView.qml
new file mode 100644
index 00000000..3fc9ca5a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/VerticalHeaderView.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Templates 2.15 as T
+
+T.VerticalHeaderView {
+ id: control
+
+ implicitWidth: contentWidth
+ implicitHeight: syncView ? syncView.height : 0
+
+ delegate: Rectangle {
+ // Qt6: add cellPadding (and font etc) as public API in headerview
+ readonly property real cellPadding: 8
+
+ implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
+ implicitHeight: text.implicitHeight + (cellPadding * 2)
+ color: "#f6f6f6"
+ border.color: "#e4e4e4"
+
+ Text {
+ id: text
+ text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
+ : model[control.textRole])
+ : modelData
+ width: parent.width
+ height: parent.height
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ff26282a"
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/AbstractButtonSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/AbstractButtonSection.qml
new file mode 100644
index 00000000..e8aa39c2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/AbstractButtonSection.qml
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("AbstractButton")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Text")
+ tooltip: qsTr("The text displayed on the button.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.text
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Display")
+ tooltip: qsTr("Determines how the icon and text are displayed within the button.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.display
+ model: [ "IconOnly", "TextOnly", "TextBesideIcon" ]
+ scope: "AbstractButton"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ visible: checkable
+ text: qsTr("Checkable")
+ tooltip: qsTr("Whether the button is checkable.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.checkable.valueToString
+ backendValue: backendValues.checkable
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Checked")
+ tooltip: qsTr("Whether the button is checked.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.checked.valueToString
+ backendValue: backendValues.checked
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Exclusive")
+ tooltip: qsTr("Whether the button is exclusive.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.autoExclusive.valueToString
+ backendValue: backendValues.autoExclusive
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Repeat")
+ tooltip: qsTr("Whether the button repeats while pressed and held down.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.autoRepeat.valueToString
+ backendValue: backendValues.autoRepeat
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/BusyIndicatorSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/BusyIndicatorSpecifics.qml
new file mode 100644
index 00000000..7ae927fc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/BusyIndicatorSpecifics.qml
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("BusyIndicator")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Running")
+ tooltip: qsTr("Whether the busy indicator is currently indicating activity.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.running.valueToString
+ backendValue: backendValues.running
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSection.qml
new file mode 100644
index 00000000..fef46071
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSection.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ id: section
+ caption: qsTr("Button")
+
+ SectionLayout {
+ Label {
+ text: qsTr("AutoRepeat")
+ tooltip: qsTr("Whether the button repeats pressed(), released() and clicked() signals while the button is pressed and held down.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.autoRepeat.valueToString
+ backendValue: backendValues.autoRepeat
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("Flat")
+ tooltip: qsTr("Whether the button is flat.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.flat.valueToString
+ backendValue: backendValues.flat
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("Highlighted")
+ tooltip: qsTr("Whether the button is highlighted.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.highlighted.valueToString
+ backendValue: backendValues.highlighted
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSpecifics.qml
new file mode 100644
index 00000000..e094b9df
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ButtonSpecifics.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ButtonSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckBoxSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckBoxSpecifics.qml
new file mode 100644
index 00000000..f76aa215
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckBoxSpecifics.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ CheckSection {
+ width: parent.width
+ caption: qsTr("CheckBox")
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckDelegateSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckDelegateSpecifics.qml
new file mode 100644
index 00000000..1df55e11
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckDelegateSpecifics.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ CheckSection {
+ width: parent.width
+ caption: qsTr("CheckDelegate")
+ }
+
+ ItemDelegateSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckSection.qml
new file mode 100644
index 00000000..76cde03e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/CheckSection.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ SectionLayout {
+ Label {
+ text: qsTr("Check State")
+ tooltip: qsTr("The current check state.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.checkState
+ model: [ "Unchecked", "PartiallyChecked", "Checked" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Tri-state")
+ tooltip: qsTr("Whether the checkbox has three states.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.tristate.valueToString
+ backendValue: backendValues.tristate
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ComboBoxSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ComboBoxSpecifics.qml
new file mode 100644
index 00000000..8a5e33b6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ComboBoxSpecifics.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("ComboBox")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Text Role")
+ tooltip: qsTr("The model role used for displaying text.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.textRole
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Current")
+ tooltip: qsTr("The index of the current item.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.currentIndex
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("Editable")
+ tooltip: qsTr("Whether the combo box is editable.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.editable.valueToString
+ backendValue: backendValues.editable
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("Flat")
+ tooltip: qsTr("Whether the combo box button is flat.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.flat.valueToString
+ backendValue: backendValues.flat
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("DisplayText")
+ tooltip: qsTr("Holds the text that is displayed on the combo box button.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.displayText
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ContainerSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ContainerSection.qml
new file mode 100644
index 00000000..896804c0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ContainerSection.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Container")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Current")
+ tooltip: qsTr("The index of the current item.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.currentIndex
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSection.qml
new file mode 100644
index 00000000..3446c08f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSection.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Control")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Enabled")
+ tooltip: qsTr("Whether the control is enabled.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.enabled.valueToString
+ backendValue: backendValues.enabled
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Focus Policy")
+ tooltip: qsTr("Focus policy of the control.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.focusPolicy
+ model: [ "TabFocus", "ClickFocus", "StrongFocus", "WheelFocus", "NoFocus" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Hover")
+ tooltip: qsTr("Whether control accepts hover events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.hoverEnabled.valueToString
+ backendValue: backendValues.hoverEnabled
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Spacing")
+ tooltip: qsTr("Spacing between internal elements of the control.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.spacing
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Wheel")
+ tooltip: qsTr("Whether control accepts wheel events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wheelEnabled.valueToString
+ backendValue: backendValues.wheelEnabled
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSpecifics.qml
new file mode 100644
index 00000000..ccfd8853
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ControlSpecifics.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DelayButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DelayButtonSpecifics.qml
new file mode 100644
index 00000000..40b673a1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DelayButtonSpecifics.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("DelayButton")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Delay")
+ tooltip: qsTr("The delay in milliseconds.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 9999999
+ decimals: 0
+ stepSize: 1
+ backendValue: backendValues.delay
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DialSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DialSpecifics.qml
new file mode 100644
index 00000000..a0df81ef
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/DialSpecifics.qml
@@ -0,0 +1,172 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("Dial")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Value")
+ tooltip: qsTr("The current value of the dial.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("From")
+ tooltip: qsTr("The starting value of the dial range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.from
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("To")
+ tooltip: qsTr("The ending value of the dial range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.to
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Step Size")
+ tooltip: qsTr("The step size of the dial.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.stepSize
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Snap Mode")
+ tooltip: qsTr("The snap mode of the dial.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.snapMode
+ model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
+ scope: "Dial"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Live")
+ tooltip: qsTr("Whether the dial provides live value updates.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.live.valueToString
+ backendValue: backendValues.live
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Input Mode")
+ tooltip: qsTr("How the dial tracks movement.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.inputMode
+ model: [ "Circular", "Horizontal", "Vertical" ]
+ scope: "Dial"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Wrap")
+ tooltip: qsTr("Whether the dial wraps when dragged.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wrap.valueToString
+ backendValue: backendValues.wrap
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/FrameSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/FrameSpecifics.qml
new file mode 100644
index 00000000..f17b6399
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/FrameSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ PaneSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/GroupBoxSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/GroupBoxSpecifics.qml
new file mode 100644
index 00000000..3a705bcc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/GroupBoxSpecifics.qml
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("GroupBox")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Title")
+ tooltip: qsTr("The title of the group box.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.title
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ PaneSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/InsetSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/InsetSection.qml
new file mode 100644
index 00000000..4253b170
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/InsetSection.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Inset")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Vertical")
+ }
+ SecondColumnLayout {
+ Label {
+ text: qsTr("Top")
+ tooltip: qsTr("Top inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.topInset
+ Layout.fillWidth: true
+ }
+ Item {
+ width: 4
+ height: 4
+ }
+
+ Label {
+ text: qsTr("Bottom")
+ tooltip: qsTr("Bottom inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.bottomInset
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Horizontal")
+ }
+ SecondColumnLayout {
+ Label {
+ text: qsTr("Left")
+ tooltip: qsTr("Left inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.leftInset
+ Layout.fillWidth: true
+ }
+ Item {
+ width: 4
+ height: 4
+ }
+
+ Label {
+ text: qsTr("Right")
+ tooltip: qsTr("Right inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.rightInset
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSection.qml
new file mode 100644
index 00000000..a337bcee
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSection.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ id: section
+ caption: qsTr("ItemDelegate")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Highlighted")
+ tooltip: qsTr("Whether the delegate is highlighted.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.highlighted.valueToString
+ backendValue: backendValues.highlighted
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSpecifics.qml
new file mode 100644
index 00000000..58063980
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ItemDelegateSpecifics.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ItemDelegateSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/LabelSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/LabelSpecifics.qml
new file mode 100644
index 00000000..e5d5e04f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/LabelSpecifics.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ StandardTextSection {
+ width: parent.width
+ showIsWrapping: true
+ showFormatProperty: true
+ showVerticalAlignment: true
+ }
+
+ Section {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Text Color")
+
+ ColorEditor {
+ caption: qsTr("Text Color")
+ backendValue: backendValues.color
+ supportGradient: false
+ }
+ }
+
+ Section {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Style Color")
+
+ ColorEditor {
+ caption: qsTr("Style Color")
+ backendValue: backendValues.styleColor
+ supportGradient: false
+ }
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+
+ InsetSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaddingSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaddingSection.qml
new file mode 100644
index 00000000..a7dee28e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaddingSection.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Padding")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Top")
+ tooltip: qsTr("Padding between the content and the top edge of the control.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.topPadding
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Left")
+ tooltip: qsTr("Padding between the content and the left edge of the control.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.leftPadding
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Right")
+ tooltip: qsTr("Padding between the content and the right edge of the control.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.rightPadding
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Bottom")
+ tooltip: qsTr("Padding between the content and the bottom edge of the control.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.bottomPadding
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageIndicatorSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageIndicatorSpecifics.qml
new file mode 100644
index 00000000..20aa8577
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageIndicatorSpecifics.qml
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("PageIndicator")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Count")
+ tooltip: qsTr("The number of pages.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.count
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Current")
+ tooltip: qsTr("The index of the current page.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.currentIndex
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Interactive")
+ tooltip: qsTr("Whether the control is interactive.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.interactive.valueToString
+ backendValue: backendValues.interactive
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageSpecifics.qml
new file mode 100644
index 00000000..2dca1100
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PageSpecifics.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("Page")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Title")
+ tooltip: qsTr("Title of the page.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.title
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Width")
+ tooltip: qsTr("Content height used for calculating the total implicit width.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentWidth
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Height")
+ tooltip: qsTr("Content height used for calculating the total implicit height.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentHeight
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSection.qml
new file mode 100644
index 00000000..80d154c9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSection.qml
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Pane")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Content Width")
+ tooltip: qsTr("Content height used for calculating the total implicit width.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentWidth
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Height")
+ tooltip: qsTr("Content height used for calculating the total implicit height.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentHeight
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSpecifics.qml
new file mode 100644
index 00000000..f17b6399
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/PaneSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ PaneSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ProgressBarSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ProgressBarSpecifics.qml
new file mode 100644
index 00000000..c24d71db
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ProgressBarSpecifics.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("ProgressBar")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Indeterminate")
+ tooltip: qsTr("Whether the progress is indeterminate.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.indeterminate.valueToString
+ backendValue: backendValues.indeterminate
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Value")
+ tooltip: qsTr("The current value of the progress.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("From")
+ tooltip: qsTr("The starting value for the progress.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.from
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("To")
+ tooltip: qsTr("The ending value for the progress.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.to
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioButtonSpecifics.qml
new file mode 100644
index 00000000..6137ad8c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioButtonSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioDelegateSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioDelegateSpecifics.qml
new file mode 100644
index 00000000..58063980
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RadioDelegateSpecifics.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ItemDelegateSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RangeSliderSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RangeSliderSpecifics.qml
new file mode 100644
index 00000000..2324a66f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RangeSliderSpecifics.qml
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("RangeSlider")
+
+ SectionLayout {
+ Label {
+ text: qsTr("First Value")
+ tooltip: qsTr("The value of the first range slider handle.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.first_value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Second Value")
+ tooltip: qsTr("The value of the second range slider handle.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.second_value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("From")
+ tooltip: qsTr("The starting value of the range slider range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.from
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("To")
+ tooltip: qsTr("The ending value of the range slider range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.to
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Step Size")
+ tooltip: qsTr("The step size of the range slider.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.stepSize
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Snap Mode")
+ tooltip: qsTr("The snap mode of the range slider.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.orientation
+ model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
+ scope: "RangeSlider"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Orientation")
+ tooltip: qsTr("The orientation of the range slider.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.orientation
+ model: [ "Horizontal", "Vertical" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Live")
+ tooltip: qsTr("Whether the range slider provides live value updates.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.live.valueToString
+ backendValue: backendValues.live
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Touch drag threshold")
+ tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 10000
+ decimals: 0
+ backendValue: backendValues.touchDragThreshold
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RoundButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RoundButtonSpecifics.qml
new file mode 100644
index 00000000..af4ab5d0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/RoundButtonSpecifics.qml
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("RoundButton")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Radius")
+ tooltip: qsTr("Radius of the button.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 10000
+ decimals: 0
+ backendValue: backendValues.radius
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ButtonSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ScrollViewSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ScrollViewSpecifics.qml
new file mode 100644
index 00000000..0f3d56d2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ScrollViewSpecifics.qml
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("ScrollView")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Content Width")
+ tooltip: qsTr("Content height used for calculating the total implicit width.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentWidth
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Height")
+ tooltip: qsTr("Content height used for calculating the total implicit height.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentHeight
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SliderSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SliderSpecifics.qml
new file mode 100644
index 00000000..d126dd06
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SliderSpecifics.qml
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("Slider")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Value")
+ tooltip: qsTr("The current value of the slider.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("From")
+ tooltip: qsTr("The starting value of the slider range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.from
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("To")
+ tooltip: qsTr("The ending value of the slider range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.to
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Step Size")
+ tooltip: qsTr("The step size of the slider.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.stepSize
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Snap Mode")
+ tooltip: qsTr("The snap mode of the slider.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.snapMode
+ model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
+ scope: "Slider"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Orientation")
+ tooltip: qsTr("The orientation of the slider.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.orientation
+ model: [ "Horizontal", "Vertical" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Live")
+ tooltip: qsTr("Whether the slider provides live value updates.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.live.valueToString
+ backendValue: backendValues.live
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Touch drag threshold")
+ tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 10000
+ decimals: 0
+ backendValue: backendValues.touchDragThreshold
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SpinBoxSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SpinBoxSpecifics.qml
new file mode 100644
index 00000000..db59f074
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SpinBoxSpecifics.qml
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("SpinBox")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Value")
+ tooltip: qsTr("The current value of the spinbox.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
+ maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
+ decimals: 2
+ backendValue: backendValues.value
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("From")
+ tooltip: qsTr("The starting value of the spinbox range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ backendValue: backendValues.from
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("To")
+ tooltip: qsTr("The ending value of the spinbox range.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ backendValue: backendValues.to
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Step Size")
+ tooltip: qsTr("The step size of the spinbox.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 2
+ backendValue: backendValues.stepSize
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Editable")
+ tooltip: qsTr("Whether the spinbox is editable.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.editable.valueToString
+ backendValue: backendValues.editable
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Wrap")
+ tooltip: qsTr("Whether the spinbox wraps.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wrap.valueToString
+ backendValue: backendValues.wrap
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/StackViewSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/StackViewSpecifics.qml
new file mode 100644
index 00000000..ccfd8853
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/StackViewSpecifics.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeDelegateSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeDelegateSpecifics.qml
new file mode 100644
index 00000000..58063980
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeDelegateSpecifics.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ItemDelegateSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeViewSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeViewSpecifics.qml
new file mode 100644
index 00000000..02cc900e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwipeViewSpecifics.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("SwipeView")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Interactive")
+ tooltip: qsTr("Whether the view is interactive.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.interactive.valueToString
+ backendValue: backendValues.interactive
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Orientation")
+ tooltip: qsTr("Orientation of the view.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.orientation
+ model: [ "Horizontal", "Vertical" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ContainerSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchDelegateSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchDelegateSpecifics.qml
new file mode 100644
index 00000000..f8c0dcc6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchDelegateSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ItemDelegateSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchSpecifics.qml
new file mode 100644
index 00000000..6137ad8c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/SwitchSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabBarSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabBarSpecifics.qml
new file mode 100644
index 00000000..f17e8e9a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabBarSpecifics.qml
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("TabBar")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Position")
+ tooltip: qsTr("Position of the tabbar.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.position
+ model: [ "Header", "Footer" ]
+ scope: "TabBar"
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Width")
+ tooltip: qsTr("Content height used for calculating the total implicit width.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentWidth
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Content Height")
+ tooltip: qsTr("Content height used for calculating the total implicit height.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.contentHeight
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ContainerSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabButtonSpecifics.qml
new file mode 100644
index 00000000..6137ad8c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TabButtonSpecifics.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextAreaSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextAreaSpecifics.qml
new file mode 100644
index 00000000..f8cf92e8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextAreaSpecifics.qml
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("TextArea")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Placeholder")
+ tooltip: qsTr("Placeholder text displayed when the editor is empty.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.placeholderText
+ Layout.fillWidth: true
+ }
+
+ }
+
+ Label {
+ text: qsTr("Hover")
+ tooltip: qsTr("Whether text area accepts hover events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.hoverEnabled.valueToString
+ backendValue: backendValues.hoverEnabled
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ Section {
+ width: parent.width
+ caption: qsTr("Placeholder Text Color")
+
+ ColorEditor {
+ caption: qsTr("Placeholder Text Color")
+ backendValue: backendValues.placeholderTextColor
+ supportGradient: false
+ }
+ }
+
+ StandardTextSection {
+ width: parent.width
+ showIsWrapping: true
+ showFormatProperty: true
+ showVerticalAlignment: true
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+
+ InsetSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextFieldSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextFieldSpecifics.qml
new file mode 100644
index 00000000..f95f282c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TextFieldSpecifics.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("TextField")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Placeholder")
+ tooltip: qsTr("Placeholder text displayed when the editor is empty.")
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.placeholderText
+ Layout.fillWidth: true
+ }
+
+ }
+
+ Label {
+ text: qsTr("Hover")
+ tooltip: qsTr("Whether text field accepts hover events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.hoverEnabled.valueToString
+ backendValue: backendValues.hoverEnabled
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ Section {
+ width: parent.width
+ caption: qsTr("Placeholder Text Color")
+
+ ColorEditor {
+ caption: qsTr("Placeholder Text Color")
+ backendValue: backendValues.placeholderTextColor
+ supportGradient: false
+ }
+ }
+
+ StandardTextSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+
+ InsetSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolBarSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolBarSpecifics.qml
new file mode 100644
index 00000000..acf02e7b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolBarSpecifics.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("ToolBar")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Position")
+ tooltip: qsTr("Position of the toolbar.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.position
+ model: [ "Header", "Footer" ]
+ scope: "ToolBar"
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ PaneSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolButtonSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolButtonSpecifics.qml
new file mode 100644
index 00000000..e094b9df
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolButtonSpecifics.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ ButtonSection {
+ width: parent.width
+ }
+
+ AbstractButtonSection {
+ width: parent.width
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolSeparatorSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolSeparatorSpecifics.qml
new file mode 100644
index 00000000..d0ebd57c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/ToolSeparatorSpecifics.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("ToolSeparator")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Orientation")
+ tooltip: qsTr("The orientation of the separator.")
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.orientation
+ model: [ "Horizontal", "Vertical" ]
+ scope: "Qt"
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TumblerSpecifics.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TumblerSpecifics.qml
new file mode 100644
index 00000000..04507ef6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/TumblerSpecifics.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Column {
+ width: parent.width
+
+ Section {
+ width: parent.width
+ caption: qsTr("Tumbler")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Visible Count")
+ tooltip: qsTr("The count of visible items.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.visibleItemCount
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Current")
+ tooltip: qsTr("The index of the current item.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ maximumValue: 9999999
+ minimumValue: -9999999
+ decimals: 0
+ backendValue: backendValues.currentIndex
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Wrap")
+ tooltip: qsTr("Whether the tumbler wrap.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wrap.valueToString
+ backendValue: backendValues.wrap
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ ControlSection {
+ width: parent.width
+ }
+
+ FontSection {
+ width: parent.width
+ }
+
+ PaddingSection {
+ width: parent.width
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon.png
new file mode 100644
index 00000000..666d1ed9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon16.png
new file mode 100644
index 00000000..5aa57d7f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon@2x.png
new file mode 100644
index 00000000..bb2278ff
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/busyindicator-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon.png
new file mode 100644
index 00000000..c44909f6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon16.png
new file mode 100644
index 00000000..5c921deb
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon@2x.png
new file mode 100644
index 00000000..f90a1ba7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/button-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon.png
new file mode 100644
index 00000000..ee669b3a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon16.png
new file mode 100644
index 00000000..8d89eab8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon@2x.png
new file mode 100644
index 00000000..51c5601d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/checkbox-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon.png
new file mode 100644
index 00000000..2d31b17c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon16.png
new file mode 100644
index 00000000..15fc3505
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon@2x.png
new file mode 100644
index 00000000..5f823905
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/combobox-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon.png
new file mode 100644
index 00000000..5a55bd9f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon16.png
new file mode 100644
index 00000000..cd21394e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon@2x.png
new file mode 100644
index 00000000..7beee2fa
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/delaybutton-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon.png
new file mode 100644
index 00000000..b3b63e35
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon16.png
new file mode 100644
index 00000000..8d8c7c09
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon@2x.png
new file mode 100644
index 00000000..22547a16
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/dial-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon.png
new file mode 100644
index 00000000..32abc8bf
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon16.png
new file mode 100644
index 00000000..e5b65ad5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon@2x.png
new file mode 100644
index 00000000..8b876f38
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/frame-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon.png
new file mode 100644
index 00000000..5542ecf8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon16.png
new file mode 100644
index 00000000..9cf43248
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon@2x.png
new file mode 100644
index 00000000..80dab3c7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/groupbox-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon.png
new file mode 100644
index 00000000..822cf3e7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon16.png
new file mode 100644
index 00000000..b3ed007a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon@2x.png
new file mode 100644
index 00000000..cb81308f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/itemdelegate-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon.png
new file mode 100644
index 00000000..788bef07
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon16.png
new file mode 100644
index 00000000..b68d3845
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon@2x.png
new file mode 100644
index 00000000..7001413d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/label-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon.png
new file mode 100644
index 00000000..b5ac87e8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon16.png
new file mode 100644
index 00000000..bc6810b6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon@2x.png
new file mode 100644
index 00000000..23db032f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/page-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon.png
new file mode 100644
index 00000000..edb6b377
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon16.png
new file mode 100644
index 00000000..0fb89675
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon@2x.png
new file mode 100644
index 00000000..7be0ee81
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pageindicator-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon.png
new file mode 100644
index 00000000..62ebe487
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon16.png
new file mode 100644
index 00000000..2b804844
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon@2x.png
new file mode 100644
index 00000000..55bb116a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/pane-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon.png
new file mode 100644
index 00000000..a023f73c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon16.png
new file mode 100644
index 00000000..6fede21d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon@2x.png
new file mode 100644
index 00000000..00694003
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/progressbar-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon.png
new file mode 100644
index 00000000..d38170e2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon16.png
new file mode 100644
index 00000000..07b46a8a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon@2x.png
new file mode 100644
index 00000000..4bbddda4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/radiobutton-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon.png
new file mode 100644
index 00000000..1c4c7b29
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon16.png
new file mode 100644
index 00000000..3be4624d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon@2x.png
new file mode 100644
index 00000000..aee69b33
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/rangeslider-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon.png
new file mode 100644
index 00000000..d4b470dc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon16.png
new file mode 100644
index 00000000..f6f36666
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon@2x.png
new file mode 100644
index 00000000..4553e165
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/roundbutton-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon.png
new file mode 100644
index 00000000..5ef73ff1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon16.png
new file mode 100644
index 00000000..f8ca7a36
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon@2x.png
new file mode 100644
index 00000000..0eb7f966
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/scrollview-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon.png
new file mode 100644
index 00000000..bd0a9729
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon16.png
new file mode 100644
index 00000000..a08622df
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon@2x.png
new file mode 100644
index 00000000..93842e4c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/slider-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon.png
new file mode 100644
index 00000000..37277c5e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon16.png
new file mode 100644
index 00000000..f88711dd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon@2x.png
new file mode 100644
index 00000000..b62a3bad
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/spinbox-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon.png
new file mode 100644
index 00000000..a6ced349
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon16.png
new file mode 100644
index 00000000..0f19d0ef
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon@2x.png
new file mode 100644
index 00000000..9b5ef951
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/stackview-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon.png
new file mode 100644
index 00000000..031cb27c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon16.png
new file mode 100644
index 00000000..446c4696
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon@2x.png
new file mode 100644
index 00000000..0ccb978c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/swipeview-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon.png
new file mode 100644
index 00000000..e0181592
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon16.png
new file mode 100644
index 00000000..9abd2756
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon@2x.png
new file mode 100644
index 00000000..787f54ca
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/switch-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon.png
new file mode 100644
index 00000000..f1b2dc0f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon16.png
new file mode 100644
index 00000000..4afc1fba
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon@2x.png
new file mode 100644
index 00000000..c32ecc71
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textarea-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon.png
new file mode 100644
index 00000000..ba5537ac
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon16.png
new file mode 100644
index 00000000..c4a62a65
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon@2x.png
new file mode 100644
index 00000000..e05fd41b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/textfield-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon.png
new file mode 100644
index 00000000..5cb5b2e1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon16.png
new file mode 100644
index 00000000..569373af
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon@2x.png
new file mode 100644
index 00000000..fd9e6cee
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbar-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon.png
new file mode 100644
index 00000000..3298f695
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon16.png
new file mode 100644
index 00000000..9ab7861c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon@2x.png
new file mode 100644
index 00000000..e5958cde
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolbutton-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon.png
new file mode 100644
index 00000000..5e99f06f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon16.png
new file mode 100644
index 00000000..68f22c5d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon@2x.png
new file mode 100644
index 00000000..549c11c6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/toolseparator-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon.png
new file mode 100644
index 00000000..98eb8232
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon16.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon16.png
new file mode 100644
index 00000000..ff5f95cf
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon16.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon@2x.png
new file mode 100644
index 00000000..236abf0c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/images/tumbler-icon@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/qtquickcontrols2.metainfo b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/qtquickcontrols2.metainfo
new file mode 100644
index 00000000..d27f1b90
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/designer/qtquickcontrols2.metainfo
@@ -0,0 +1,522 @@
+MetaInfo {
+ Type {
+ name: "QtQuick.Controls.BusyIndicator"
+ icon: "images/busyindicator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Busy Indicator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/busyindicator-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Button"
+ icon: "images/button-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/button-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.CheckBox"
+ icon: "images/checkbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Check Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/checkbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Check Box\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.CheckDelegate"
+ icon: "images/checkbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Check Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/checkbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Check Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ComboBox"
+ icon: "images/combobox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Combo Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/combobox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.DelayButton"
+ icon: "images/button-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Delay Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/delaybutton-icon.png"
+ version: "2.2"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Delay Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Dial"
+ icon: "images/dial-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Dial"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/dial-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Frame"
+ icon: "images/frame-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Frame"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/frame-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.GroupBox"
+ icon: "images/groupbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Group Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/groupbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ Property { name: "title"; type: "binding"; value: "qsTr(\"Group Box\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ItemDelegate"
+ icon: "images/itemdelegate-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Item Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/itemdelegate-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Item Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Label"
+ icon: "images/label-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Label"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/label-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Label\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Page"
+ icon: "images/page-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Page"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/page-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.PageIndicator"
+ icon: "images/pageindicator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Page Indicator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/pageindicator-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "count"; type: "int"; value: 3 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Pane"
+ icon: "images/pane-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Pane"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/pane-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ProgressBar"
+ icon: "images/progressbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Progress Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/progressbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "value"; type: "real"; value: 0.5 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.RadioButton"
+ icon: "images/radiobutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Radio Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/radiobutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.RadioDelegate"
+ icon: "images/radiobutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Radio Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/radiobutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.RangeSlider"
+ icon: "images/rangeslider-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Range Slider"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/rangeslider-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "first.value"; type: "real"; value: 0.25 }
+ Property { name: "second.value"; type: "real"; value: 0.75 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.RoundButton"
+ icon: "images/roundbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Round Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/roundbutton-icon.png"
+ version: "2.1"
+ requiredImport: "QtQuick.Controls"
+ Property { name: "text"; type: "string"; value: "+" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Slider"
+ icon: "images/slider-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Slider"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/slider-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "value"; type: "real"; value: 0.5 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.SpinBox"
+ icon: "images/spinbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Spin Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/spinbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ScrollView"
+ icon: "images/scrollview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Scroll View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/scrollview-icon.png"
+ version: "2.2"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.StackView"
+ icon: "images/stackview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Stack View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/stackview-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.SwipeDelegate"
+ icon: "images/itemdelegate-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Swipe Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/itemdelegate-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Swipe Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.SwipeView"
+ icon: "images/swipeview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Swipe View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/swipeview-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Switch"
+ icon: "images/switch-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Switch"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/switch-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Switch\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.SwitchDelegate"
+ icon: "images/switch-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Switch Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/switch-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Switch Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.TabBar"
+ icon: "images/toolbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tab Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ Property { name: "width"; type: "int"; value: 240 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.TabButton"
+ icon: "images/toolbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tab Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Tab Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.TextArea"
+ icon: "images/textarea-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Text Area"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/textarea-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Area\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.TextField"
+ icon: "images/textfield-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Text Field"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/textfield-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Field\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ToolBar"
+ icon: "images/toolbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 360 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ToolButton"
+ icon: "images/toolbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Tool Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.ToolSeparator"
+ icon: "images/toolseparator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Separator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolseparator-icon.png"
+ version: "2.1"
+ requiredImport: "QtQuick.Controls"
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Tumbler"
+ icon: "images/tumbler-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tumbler"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/tumbler-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "model"; type: "int"; value: "10" }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/plugins.qmltypes
new file mode 100644
index 00000000..e8212c55
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/plugins.qmltypes
@@ -0,0 +1,895 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
+
+Module {
+ dependencies: [
+ "QtQuick 2.11",
+ "QtQuick.Templates 2.5",
+ "QtQuick.Window 2.2"
+ ]
+ Component {
+ name: "QQuickCheckLabel"
+ defaultProperty: "data"
+ prototype: "QQuickText"
+ exports: ["QtQuick.Controls.impl/CheckLabel 2.3"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickClippedText"
+ defaultProperty: "data"
+ prototype: "QQuickText"
+ exports: ["QtQuick.Controls.impl/ClippedText 2.2"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "clipX"; type: "double" }
+ Property { name: "clipY"; type: "double" }
+ Property { name: "clipWidth"; type: "double" }
+ Property { name: "clipHeight"; type: "double" }
+ }
+ Component {
+ name: "QQuickColor"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.impl/Color 2.3"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Method {
+ name: "transparent"
+ type: "QColor"
+ Parameter { name: "color"; type: "QColor" }
+ Parameter { name: "opacity"; type: "double" }
+ }
+ Method {
+ name: "blend"
+ type: "QColor"
+ Parameter { name: "a"; type: "QColor" }
+ Parameter { name: "b"; type: "QColor" }
+ Parameter { name: "factor"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickColorImage"
+ defaultProperty: "data"
+ prototype: "QQuickImage"
+ exports: ["QtQuick.Controls.impl/ColorImage 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; type: "QColor" }
+ Property { name: "defaultColor"; type: "QColor" }
+ }
+ Component {
+ name: "QQuickDefaultBusyIndicator"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.impl/BusyIndicatorImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "pen"; type: "QColor" }
+ Property { name: "fill"; type: "QColor" }
+ Property { name: "running"; type: "bool" }
+ }
+ Component {
+ name: "QQuickDefaultDial"
+ defaultProperty: "data"
+ prototype: "QQuickPaintedItem"
+ exports: ["QtQuick.Controls.impl/DialImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "progress"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ }
+ Component {
+ name: "QQuickDefaultProgressBar"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.impl/ProgressBarImpl 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "indeterminate"; type: "bool" }
+ Property { name: "progress"; type: "double" }
+ Property { name: "color"; type: "QColor" }
+ }
+ Component {
+ name: "QQuickDefaultStyle"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.impl/Default 2.1"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Property { name: "backgroundColor"; type: "QColor"; isReadonly: true }
+ Property { name: "overlayModalColor"; type: "QColor"; isReadonly: true }
+ Property { name: "overlayDimColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textDarkColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textLightColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textLinkColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textSelectionColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textDisabledColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textDisabledLightColor"; type: "QColor"; isReadonly: true }
+ Property { name: "textPlaceholderColor"; type: "QColor"; isReadonly: true }
+ Property { name: "focusColor"; type: "QColor"; isReadonly: true }
+ Property { name: "focusLightColor"; type: "QColor"; isReadonly: true }
+ Property { name: "focusPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonCheckedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonCheckedPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "buttonCheckedFocusColor"; type: "QColor"; isReadonly: true }
+ Property { name: "toolButtonColor"; type: "QColor"; isReadonly: true }
+ Property { name: "tabButtonColor"; type: "QColor"; isReadonly: true }
+ Property { name: "tabButtonPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "tabButtonCheckedPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "delegateColor"; type: "QColor"; isReadonly: true }
+ Property { name: "delegatePressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "delegateFocusColor"; type: "QColor"; isReadonly: true }
+ Property { name: "indicatorPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "indicatorDisabledColor"; type: "QColor"; isReadonly: true }
+ Property { name: "indicatorFrameColor"; type: "QColor"; isReadonly: true }
+ Property { name: "indicatorFramePressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "indicatorFrameDisabledColor"; type: "QColor"; isReadonly: true }
+ Property { name: "frameDarkColor"; type: "QColor"; isReadonly: true }
+ Property { name: "frameLightColor"; type: "QColor"; isReadonly: true }
+ Property { name: "scrollBarColor"; type: "QColor"; isReadonly: true }
+ Property { name: "scrollBarPressedColor"; type: "QColor"; isReadonly: true }
+ Property { name: "progressBarColor"; type: "QColor"; isReadonly: true }
+ Property { name: "pageIndicatorColor"; type: "QColor"; isReadonly: true }
+ Property { name: "separatorColor"; type: "QColor"; isReadonly: true }
+ Property { name: "disabledDarkColor"; type: "QColor"; isReadonly: true }
+ Property { name: "disabledLightColor"; type: "QColor"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickIconImage"
+ defaultProperty: "data"
+ prototype: "QQuickImage"
+ exports: ["QtQuick.Controls.impl/IconImage 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "name"; type: "string" }
+ Property { name: "color"; type: "QColor" }
+ }
+ Component {
+ name: "QQuickIconLabel"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.impl/IconLabel 2.3"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Display"
+ values: {
+ "IconOnly": 0,
+ "TextOnly": 1,
+ "TextBesideIcon": 2,
+ "TextUnderIcon": 3
+ }
+ }
+ Property { name: "icon"; type: "QQuickIcon" }
+ Property { name: "text"; type: "string" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "display"; type: "Display" }
+ Property { name: "spacing"; type: "double" }
+ Property { name: "mirrored"; type: "bool" }
+ Property { name: "alignment"; type: "Qt::Alignment" }
+ Property { name: "topPadding"; type: "double" }
+ Property { name: "leftPadding"; type: "double" }
+ Property { name: "rightPadding"; type: "double" }
+ Property { name: "bottomPadding"; type: "double" }
+ }
+ Component {
+ name: "QQuickImplicitSizeItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Property { name: "implicitWidth"; type: "double"; isReadonly: true }
+ Property { name: "implicitHeight"; type: "double"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickItemGroup"
+ defaultProperty: "data"
+ prototype: "QQuickImplicitSizeItem"
+ exports: ["QtQuick.Controls.impl/ItemGroup 2.2"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickMnemonicLabel"
+ defaultProperty: "data"
+ prototype: "QQuickText"
+ exports: ["QtQuick.Controls.impl/MnemonicLabel 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "text"; type: "string" }
+ Property { name: "mnemonicVisible"; type: "bool" }
+ }
+ Component {
+ name: "QQuickOverlay"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls/Overlay 2.3"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickOverlayAttached"
+ Property { name: "modal"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "modeless"; type: "QQmlComponent"; isPointer: true }
+ Signal { name: "pressed" }
+ Signal { name: "released" }
+ }
+ Component {
+ name: "QQuickPaddedRectangle"
+ defaultProperty: "data"
+ prototype: "QQuickRectangle"
+ exports: ["QtQuick.Controls.impl/PaddedRectangle 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "padding"; type: "double" }
+ Property { name: "topPadding"; type: "double" }
+ Property { name: "leftPadding"; type: "double" }
+ Property { name: "rightPadding"; type: "double" }
+ Property { name: "bottomPadding"; type: "double" }
+ }
+ Component {
+ name: "QQuickPlaceholderText"
+ defaultProperty: "data"
+ prototype: "QQuickText"
+ exports: ["QtQuick.Controls.impl/PlaceholderText 2.2"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickSplitHandleAttached"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls/SplitHandle 2.13"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ }
+ Component {
+ name: "QQuickText"
+ defaultProperty: "data"
+ prototype: "QQuickImplicitSizeItem"
+ Enum {
+ name: "HAlignment"
+ values: {
+ "AlignLeft": 1,
+ "AlignRight": 2,
+ "AlignHCenter": 4,
+ "AlignJustify": 8
+ }
+ }
+ Enum {
+ name: "VAlignment"
+ values: {
+ "AlignTop": 32,
+ "AlignBottom": 64,
+ "AlignVCenter": 128
+ }
+ }
+ Enum {
+ name: "TextStyle"
+ values: {
+ "Normal": 0,
+ "Outline": 1,
+ "Raised": 2,
+ "Sunken": 3
+ }
+ }
+ Enum {
+ name: "TextFormat"
+ values: {
+ "PlainText": 0,
+ "RichText": 1,
+ "MarkdownText": 3,
+ "AutoText": 2,
+ "StyledText": 4
+ }
+ }
+ Enum {
+ name: "TextElideMode"
+ values: {
+ "ElideLeft": 0,
+ "ElideRight": 1,
+ "ElideMiddle": 2,
+ "ElideNone": 3
+ }
+ }
+ Enum {
+ name: "WrapMode"
+ values: {
+ "NoWrap": 0,
+ "WordWrap": 1,
+ "WrapAnywhere": 3,
+ "WrapAtWordBoundaryOrAnywhere": 4,
+ "Wrap": 4
+ }
+ }
+ Enum {
+ name: "RenderType"
+ values: {
+ "QtRendering": 0,
+ "NativeRendering": 1
+ }
+ }
+ Enum {
+ name: "LineHeightMode"
+ values: {
+ "ProportionalHeight": 0,
+ "FixedHeight": 1
+ }
+ }
+ Enum {
+ name: "FontSizeMode"
+ values: {
+ "FixedSize": 0,
+ "HorizontalFit": 1,
+ "VerticalFit": 2,
+ "Fit": 3
+ }
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "linkColor"; type: "QColor" }
+ Property { name: "style"; type: "TextStyle" }
+ Property { name: "styleColor"; type: "QColor" }
+ Property { name: "horizontalAlignment"; type: "HAlignment" }
+ Property { name: "effectiveHorizontalAlignment"; type: "HAlignment"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "VAlignment" }
+ Property { name: "wrapMode"; type: "WrapMode" }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "truncated"; type: "bool"; isReadonly: true }
+ Property { name: "maximumLineCount"; type: "int" }
+ Property { name: "textFormat"; type: "TextFormat" }
+ Property { name: "elide"; type: "TextElideMode" }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "paintedWidth"; type: "double"; isReadonly: true }
+ Property { name: "paintedHeight"; type: "double"; isReadonly: true }
+ Property { name: "lineHeight"; type: "double" }
+ Property { name: "lineHeightMode"; type: "LineHeightMode" }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "minimumPixelSize"; type: "int" }
+ Property { name: "minimumPointSize"; type: "int" }
+ Property { name: "fontSizeMode"; type: "FontSizeMode" }
+ Property { name: "renderType"; type: "RenderType" }
+ Property { name: "hoveredLink"; revision: 2; type: "string"; isReadonly: true }
+ Property { name: "padding"; revision: 6; type: "double" }
+ Property { name: "topPadding"; revision: 6; type: "double" }
+ Property { name: "leftPadding"; revision: 6; type: "double" }
+ Property { name: "rightPadding"; revision: 6; type: "double" }
+ Property { name: "bottomPadding"; revision: 6; type: "double" }
+ Property { name: "fontInfo"; revision: 9; type: "QJSValue"; isReadonly: true }
+ Property { name: "advance"; revision: 10; type: "QSizeF"; isReadonly: true }
+ Signal {
+ name: "textChanged"
+ Parameter { name: "text"; type: "string" }
+ }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ revision: 2
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "fontChanged"
+ Parameter { name: "font"; type: "QFont" }
+ }
+ Signal {
+ name: "styleChanged"
+ Parameter { name: "style"; type: "QQuickText::TextStyle" }
+ }
+ Signal {
+ name: "horizontalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickText::HAlignment" }
+ }
+ Signal {
+ name: "verticalAlignmentChanged"
+ Parameter { name: "alignment"; type: "QQuickText::VAlignment" }
+ }
+ Signal {
+ name: "textFormatChanged"
+ Parameter { name: "textFormat"; type: "QQuickText::TextFormat" }
+ }
+ Signal {
+ name: "elideModeChanged"
+ Parameter { name: "mode"; type: "QQuickText::TextElideMode" }
+ }
+ Signal { name: "contentSizeChanged" }
+ Signal {
+ name: "contentWidthChanged"
+ Parameter { name: "contentWidth"; type: "double" }
+ }
+ Signal {
+ name: "contentHeightChanged"
+ Parameter { name: "contentHeight"; type: "double" }
+ }
+ Signal {
+ name: "lineHeightChanged"
+ Parameter { name: "lineHeight"; type: "double" }
+ }
+ Signal {
+ name: "lineHeightModeChanged"
+ Parameter { name: "mode"; type: "LineHeightMode" }
+ }
+ Signal {
+ name: "lineLaidOut"
+ Parameter { name: "line"; type: "QQuickTextLine"; isPointer: true }
+ }
+ Signal { name: "paddingChanged"; revision: 6 }
+ Signal { name: "topPaddingChanged"; revision: 6 }
+ Signal { name: "leftPaddingChanged"; revision: 6 }
+ Signal { name: "rightPaddingChanged"; revision: 6 }
+ Signal { name: "bottomPaddingChanged"; revision: 6 }
+ Signal { name: "fontInfoChanged"; revision: 9 }
+ Method { name: "doLayout" }
+ Method { name: "forceLayout"; revision: 9 }
+ Method {
+ name: "linkAt"
+ revision: 3
+ type: "string"
+ Parameter { name: "x"; type: "double" }
+ Parameter { name: "y"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickTumblerView"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.impl/TumblerView 2.1"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "path"; type: "QQuickPath"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractButton"
+ name: "QtQuick.Controls/AbstractButton 2.0"
+ exports: ["QtQuick.Controls/AbstractButton 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickAction"
+ name: "QtQuick.Controls/Action 2.3"
+ exports: ["QtQuick.Controls/Action 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ }
+ Component {
+ prototype: "QQuickActionGroup"
+ name: "QtQuick.Controls/ActionGroup 2.3"
+ exports: ["QtQuick.Controls/ActionGroup 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "actions"
+ }
+ Component {
+ prototype: "QQuickApplicationWindow"
+ name: "QtQuick.Controls/ApplicationWindow 2.0"
+ exports: ["QtQuick.Controls/ApplicationWindow 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickBusyIndicator"
+ name: "QtQuick.Controls/BusyIndicator 2.0"
+ exports: ["QtQuick.Controls/BusyIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickButton"
+ name: "QtQuick.Controls/Button 2.0"
+ exports: ["QtQuick.Controls/Button 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickButtonGroup"
+ name: "QtQuick.Controls/ButtonGroup 2.0"
+ exports: ["QtQuick.Controls/ButtonGroup 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ }
+ Component {
+ prototype: "QQuickCheckBox"
+ name: "QtQuick.Controls/CheckBox 2.0"
+ exports: ["QtQuick.Controls/CheckBox 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickCheckDelegate"
+ name: "QtQuick.Controls/CheckDelegate 2.0"
+ exports: ["QtQuick.Controls/CheckDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickComboBox"
+ name: "QtQuick.Controls/ComboBox 2.0"
+ exports: ["QtQuick.Controls/ComboBox 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickContainer"
+ name: "QtQuick.Controls/Container 2.0"
+ exports: ["QtQuick.Controls/Container 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickControl"
+ name: "QtQuick.Controls/Control 2.0"
+ exports: ["QtQuick.Controls/Control 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickDelayButton"
+ name: "QtQuick.Controls/DelayButton 2.2"
+ exports: ["QtQuick.Controls/DelayButton 2.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickDial"
+ name: "QtQuick.Controls/Dial 2.0"
+ exports: ["QtQuick.Controls/Dial 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickDialog"
+ name: "QtQuick.Controls/Dialog 2.1"
+ exports: ["QtQuick.Controls/Dialog 2.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickDialogButtonBox"
+ name: "QtQuick.Controls/DialogButtonBox 2.1"
+ exports: ["QtQuick.Controls/DialogButtonBox 2.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickDrawer"
+ name: "QtQuick.Controls/Drawer 2.0"
+ exports: ["QtQuick.Controls/Drawer 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickFrame"
+ name: "QtQuick.Controls/Frame 2.0"
+ exports: ["QtQuick.Controls/Frame 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickGroupBox"
+ name: "QtQuick.Controls/GroupBox 2.0"
+ exports: ["QtQuick.Controls/GroupBox 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickHorizontalHeaderView"
+ name: "QtQuick.Controls/HorizontalHeaderView 2.15"
+ exports: ["QtQuick.Controls/HorizontalHeaderView 2.15"]
+ exportMetaObjectRevisions: [15]
+ isComposite: true
+ defaultProperty: "flickableData"
+ }
+ Component {
+ prototype: "QQuickItemDelegate"
+ name: "QtQuick.Controls/ItemDelegate 2.0"
+ exports: ["QtQuick.Controls/ItemDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickLabel"
+ name: "QtQuick.Controls/Label 2.0"
+ exports: ["QtQuick.Controls/Label 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickMenu"
+ name: "QtQuick.Controls/Menu 2.0"
+ exports: ["QtQuick.Controls/Menu 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickMenuBar"
+ name: "QtQuick.Controls/MenuBar 2.3"
+ exports: ["QtQuick.Controls/MenuBar 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickMenuBarItem"
+ name: "QtQuick.Controls/MenuBarItem 2.3"
+ exports: ["QtQuick.Controls/MenuBarItem 2.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickMenuItem"
+ name: "QtQuick.Controls/MenuItem 2.0"
+ exports: ["QtQuick.Controls/MenuItem 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickMenuSeparator"
+ name: "QtQuick.Controls/MenuSeparator 2.1"
+ exports: ["QtQuick.Controls/MenuSeparator 2.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickPage"
+ name: "QtQuick.Controls/Page 2.0"
+ exports: ["QtQuick.Controls/Page 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickPageIndicator"
+ name: "QtQuick.Controls/PageIndicator 2.0"
+ exports: ["QtQuick.Controls/PageIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickPane"
+ name: "QtQuick.Controls/Pane 2.0"
+ exports: ["QtQuick.Controls/Pane 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickPopup"
+ name: "QtQuick.Controls/Popup 2.0"
+ exports: ["QtQuick.Controls/Popup 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickProgressBar"
+ name: "QtQuick.Controls/ProgressBar 2.0"
+ exports: ["QtQuick.Controls/ProgressBar 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickRadioButton"
+ name: "QtQuick.Controls/RadioButton 2.0"
+ exports: ["QtQuick.Controls/RadioButton 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickRadioDelegate"
+ name: "QtQuick.Controls/RadioDelegate 2.0"
+ exports: ["QtQuick.Controls/RadioDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickRangeSlider"
+ name: "QtQuick.Controls/RangeSlider 2.0"
+ exports: ["QtQuick.Controls/RangeSlider 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickRoundButton"
+ name: "QtQuick.Controls/RoundButton 2.1"
+ exports: ["QtQuick.Controls/RoundButton 2.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickScrollBar"
+ name: "QtQuick.Controls/ScrollBar 2.0"
+ exports: ["QtQuick.Controls/ScrollBar 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickScrollIndicator"
+ name: "QtQuick.Controls/ScrollIndicator 2.0"
+ exports: ["QtQuick.Controls/ScrollIndicator 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickScrollView"
+ name: "QtQuick.Controls/ScrollView 2.2"
+ exports: ["QtQuick.Controls/ScrollView 2.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickSlider"
+ name: "QtQuick.Controls/Slider 2.0"
+ exports: ["QtQuick.Controls/Slider 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickSpinBox"
+ name: "QtQuick.Controls/SpinBox 2.0"
+ exports: ["QtQuick.Controls/SpinBox 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickSplitView"
+ name: "QtQuick.Controls/SplitView 2.13"
+ exports: ["QtQuick.Controls/SplitView 2.13"]
+ exportMetaObjectRevisions: [13]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickStackView"
+ name: "QtQuick.Controls/StackView 2.0"
+ exports: ["QtQuick.Controls/StackView 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickSwipeDelegate"
+ name: "QtQuick.Controls/SwipeDelegate 2.0"
+ exports: ["QtQuick.Controls/SwipeDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickSwipeView"
+ name: "QtQuick.Controls/SwipeView 2.0"
+ exports: ["QtQuick.Controls/SwipeView 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickSwitch"
+ name: "QtQuick.Controls/Switch 2.0"
+ exports: ["QtQuick.Controls/Switch 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickSwitchDelegate"
+ name: "QtQuick.Controls/SwitchDelegate 2.0"
+ exports: ["QtQuick.Controls/SwitchDelegate 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickTabBar"
+ name: "QtQuick.Controls/TabBar 2.0"
+ exports: ["QtQuick.Controls/TabBar 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickTabButton"
+ name: "QtQuick.Controls/TabButton 2.0"
+ exports: ["QtQuick.Controls/TabButton 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickTextArea"
+ name: "QtQuick.Controls/TextArea 2.0"
+ exports: ["QtQuick.Controls/TextArea 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickTextField"
+ name: "QtQuick.Controls/TextField 2.0"
+ exports: ["QtQuick.Controls/TextField 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickToolBar"
+ name: "QtQuick.Controls/ToolBar 2.0"
+ exports: ["QtQuick.Controls/ToolBar 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickToolButton"
+ name: "QtQuick.Controls/ToolButton 2.0"
+ exports: ["QtQuick.Controls/ToolButton 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickToolSeparator"
+ name: "QtQuick.Controls/ToolSeparator 2.1"
+ exports: ["QtQuick.Controls/ToolSeparator 2.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickToolTip"
+ name: "QtQuick.Controls/ToolTip 2.0"
+ exports: ["QtQuick.Controls/ToolTip 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentData"
+ }
+ Component {
+ prototype: "QQuickTumbler"
+ name: "QtQuick.Controls/Tumbler 2.0"
+ exports: ["QtQuick.Controls/Tumbler 2.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickVerticalHeaderView"
+ name: "QtQuick.Controls/VerticalHeaderView 2.15"
+ exports: ["QtQuick.Controls/VerticalHeaderView 2.15"]
+ exportMetaObjectRevisions: [15]
+ isComposite: true
+ defaultProperty: "flickableData"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qmldir
new file mode 100644
index 00000000..c9ccb8f9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qmldir
@@ -0,0 +1,5 @@
+module QtQuick.Controls
+plugin qtquickcontrols2plugin
+classname QtQuickControls2Plugin
+depends QtQuick.Templates 2.5
+designersupported
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qtquickcontrols2plugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qtquickcontrols2plugin.dll
new file mode 100644
index 00000000..5aa32492
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls.2/qtquickcontrols2plugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qml
new file mode 100644
index 00000000..7d215556
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qml
@@ -0,0 +1,265 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick.Window 2.2
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.0
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ApplicationWindow
+ \since 5.1
+ \inqmlmodule QtQuick.Controls
+ \ingroup applicationwindow
+ \ingroup controls
+ \brief Provides a top-level application window.
+
+ \image applicationwindow.png
+
+ ApplicationWindow is a \l Window that adds convenience for positioning items,
+ such as \l MenuBar, \l ToolBar, and \l StatusBar in a platform independent
+ manner.
+
+ \code
+ ApplicationWindow {
+ id: window
+ visible: true
+
+ menuBar: MenuBar {
+ Menu { MenuItem {...} }
+ Menu { MenuItem {...} }
+ }
+
+ toolBar: ToolBar {
+ RowLayout {
+ anchors.fill: parent
+ ToolButton {...}
+ }
+ }
+
+ TabView {
+ id: myContent
+ anchors.fill: parent
+ ...
+ }
+ }
+ \endcode
+
+ \note By default, an ApplicationWindow is not visible.
+
+ The \l{Qt Quick Controls 1 - Gallery} example is a good starting
+ point to explore this type.
+*/
+
+Window {
+ id: root
+
+ /*!
+ \qmlproperty MenuBar ApplicationWindow::menuBar
+
+ This property holds the \l MenuBar.
+
+ By default, this value is not set.
+ */
+ property MenuBar menuBar: null
+
+ /*!
+ \qmlproperty Item ApplicationWindow::toolBar
+
+ This property holds the toolbar \l Item.
+
+ It can be set to any Item type, but is generally used with \l ToolBar.
+
+ By default, this value is not set. When you set the toolbar item, it will
+ be anchored automatically into the application window.
+ */
+ property Item toolBar
+
+ /*!
+ \qmlproperty Item ApplicationWindow::statusBar
+
+ This property holds the status bar \l Item.
+
+ It can be set to any Item type, but is generally used with \l StatusBar.
+
+ By default, this value is not set. When you set the status bar item, it
+ will be anchored automatically into the application window.
+ */
+ property Item statusBar
+
+ // The below documentation was supposed to be written as a grouped property, but qdoc would
+ // not render it correctly due to a bug (QTBUG-34206)
+ /*!
+ \qmlproperty ContentItem ApplicationWindow::contentItem
+
+ This group holds the size constraints of the content item. This is the area between the
+ \l ToolBar and the \l StatusBar.
+ The \l ApplicationWindow will use this as input when calculating the effective size
+ constraints of the actual window.
+ It holds these 6 properties for describing the minimum, implicit and maximum sizes:
+ \table
+ \header \li Grouped property \li Description
+ \row \li contentItem.minimumWidth \li The minimum width of the content item.
+ \row \li contentItem.minimumHeight \li The minimum height of the content item.
+ \row \li contentItem.implicitWidth \li The implicit width of the content item.
+ \row \li contentItem.implicitHeight \li The implicit height of the content item.
+ \row \li contentItem.maximumWidth \li The maximum width of the content item.
+ \row \li contentItem.maximumHeight \li The maximum height of the content item.
+ \endtable
+ */
+ property alias contentItem : contentArea
+
+ /*! The style Component for the window.
+ \sa {Qt Quick Controls 1 Styles QML Types}
+ */
+ property Component style: Settings.styleComponent(Settings.style, "ApplicationWindowStyle.qml", root)
+
+ /*! \internal */
+ property alias __style: styleLoader.item
+
+ /*! \internal */
+ property alias __panel: panelLoader.item
+
+ /*! \internal */
+ property real __topBottomMargins: __panel.contentArea.y + __panel.statusBarArea.height
+ /*! \internal
+ There is a similar macro QWINDOWSIZE_MAX in qwindow_p.h that is used to limit the
+ range of QWindow::maximum{Width,Height}
+ However, in case we have a very big number (> 2^31) conversion will fail, and it will be
+ converted to 0, resulting in that we will call setMaximumWidth(0)....
+ We therefore need to enforce the limit at a level where we are still operating on
+ floating point values.
+ */
+ readonly property real __qwindowsize_max: (1 << 24) - 1
+
+ /*! \internal */
+ property real __width: 0
+ Qml.Binding {
+ target: root
+ property: "__width"
+ when: (root.minimumWidth <= root.maximumWidth) && !contentArea.__noImplicitWidthGiven
+ value: Math.max(Math.min(root.maximumWidth, contentArea.implicitWidth), root.minimumWidth)
+ restoreMode: Binding.RestoreBinding
+ }
+ /*! \internal */
+ property real __height: 0
+ Qml.Binding {
+ target: root
+ property: "__height"
+ when: (root.minimumHeight <= root.maximumHeight) && !contentArea.__noImplicitHeightGiven
+ value: Math.max(Math.min(root.maximumHeight, contentArea.implicitHeight + __topBottomMargins), root.minimumHeight)
+ restoreMode: Binding.RestoreBinding
+ }
+ /* As soon as an application developer writes
+ width: 200
+ this binding will be broken. This is the reason for this indirection
+ via __width (and __height)
+ */
+ width: __width
+ height: __height
+
+ minimumWidth: contentArea.__noMinimumWidthGiven ? 0 : contentArea.minimumWidth
+ minimumHeight: contentArea.__noMinimumHeightGiven ? 0 : (contentArea.minimumHeight + __topBottomMargins)
+
+ maximumWidth: Math.min(__qwindowsize_max, contentArea.maximumWidth)
+ maximumHeight: Math.min(__qwindowsize_max, contentArea.maximumHeight + __topBottomMargins)
+
+ /*! \internal */
+ default property alias data: contentArea.data
+
+ flags: Qt.Window | Qt.WindowFullscreenButtonHint |
+ Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMinMaxButtonsHint |
+ Qt.WindowCloseButtonHint | Qt.WindowFullscreenButtonHint
+ // QTBUG-35049: Windows is removing features we didn't ask for, even though Qt::CustomizeWindowHint is not set
+ // Otherwise Qt.Window | Qt.WindowFullscreenButtonHint would be enough
+
+ Loader {
+ id: panelLoader
+ anchors.fill: parent
+ sourceComponent: __style ? __style.panel : null
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
+ focus: true
+ Loader {
+ id: styleLoader
+ sourceComponent: style
+ property var __control: root
+ property QtObject styleData: QtObject {
+ readonly property bool hasColor: root.color != "#ffffff"
+ }
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
+ }
+
+ Qml.Binding {
+ target: toolBar
+ property: "parent"
+ value: __panel.toolBarArea
+ restoreMode: Binding.RestoreBinding
+ }
+ Qml.Binding {
+ target: statusBar
+ property: "parent"
+ value: __panel.statusBarArea
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Qml.Binding {
+ property: "parent"
+ target: menuBar ? menuBar.__contentItem : null
+ when: menuBar && !menuBar.__isNative
+ value: __panel.menuBarArea
+ restoreMode: Binding.RestoreBinding
+ }
+ Qml.Binding {
+ target: menuBar
+ property: "__parentWindow"
+ value: root
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Keys.forwardTo: menuBar ? [menuBar.__contentItem, __panel] : []
+
+ ContentItem {
+ id: contentArea
+ anchors.fill: parent
+ parent: __panel.contentArea
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qmlc
new file mode 100644
index 00000000..1d62e59f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ApplicationWindow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qml
new file mode 100644
index 00000000..6c9972ad
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qml
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype BusyIndicator
+ \inqmlmodule QtQuick.Controls
+ \since 5.2
+ \ingroup controls
+ \brief A busy indicator.
+
+ \image busyindicator.png
+
+ The busy indicator should be used to indicate activity while content is
+ being loaded or the UI is blocked waiting for a resource to become available.
+
+ The following snippet shows how to use the BusyIndicator:
+
+ \qml
+ BusyIndicator {
+ running: image.status === Image.Loading
+ }
+ \endqml
+
+ You can create a custom appearance for a Busy Indicator by
+ assigning a \l {BusyIndicatorStyle}.
+ */
+Control {
+ id: indicator
+
+ /*! \qmlproperty bool BusyIndicator::running
+
+ This property holds whether the busy indicator is currently indicating
+ activity.
+
+ \note The indicator is only visible when this property is set to \c true.
+
+ The default value is \c true.
+ */
+ property bool running: true
+
+ Accessible.role: Accessible.Indicator
+ Accessible.name: "busy"
+
+ style: Settings.styleComponent(Settings.style, "BusyIndicatorStyle.qml", indicator)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qmlc
new file mode 100644
index 00000000..7d8ba9f5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/BusyIndicator.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qml
new file mode 100644
index 00000000..c3f29238
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qml
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Button
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief A push button with a text label.
+
+ \image button.png
+
+ The push button is perhaps the most commonly used widget in any graphical
+ user interface. Pushing (or clicking) a button commands the computer to
+ perform some action or answer a question. Common examples of buttons are
+ OK, Apply, Cancel, Close, Yes, No, and Help buttons.
+
+ \qml
+ Button {
+ text: "Button"
+ }
+ \endqml
+
+ Button is similar to the QPushButton widget.
+
+ You can create a custom appearance for a Button by
+ assigning a \l {ButtonStyle}.
+ */
+BasicButton {
+ id: button
+
+ /*! This property holds whether the push button is the default button.
+ Default buttons decide what happens when the user presses enter in a
+ dialog without giving a button explicit focus. \note This property only
+ changes the appearance of the button. The expected behavior needs to be
+ implemented by the user.
+
+ The default value is \c false.
+ */
+ property bool isDefault: false
+
+ /*! Assign a \l Menu to this property to get a pull-down menu button.
+
+ The default value is \c null.
+ */
+ property Menu menu: null
+
+ __effectivePressed: __behavior.effectivePressed || menu && menu.__popupVisible
+
+ activeFocusOnTab: true
+
+ Accessible.name: text
+
+ style: Settings.styleComponent(Settings.style, "ButtonStyle.qml", button)
+
+ Qml.Binding {
+ target: menu
+ property: "__minimumWidth"
+ value: button.__panel.width
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Qml.Binding {
+ target: menu
+ property: "__visualItem"
+ value: button
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Connections {
+ target: __behavior
+ function onEffectivePressedChanged() {
+ if (!Settings.hasTouchScreen && __behavior.effectivePressed && menu)
+ popupMenuTimer.start()
+ }
+ function onReleased() {
+ if (Settings.hasTouchScreen && __behavior.containsMouse && menu)
+ popupMenuTimer.start()
+ }
+ }
+
+ Timer {
+ id: popupMenuTimer
+ interval: 10
+ onTriggered: {
+ __behavior.keyPressed = false
+ if (Qt.application.layoutDirection === Qt.RightToLeft)
+ menu.__popup(Qt.rect(button.width, button.height, 0, 0), 0)
+ else
+ menu.__popup(Qt.rect(0, button.height, 0, 0), 0)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qmlc
new file mode 100644
index 00000000..eead900b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Button.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qml
new file mode 100644
index 00000000..bf3d6737
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qml
@@ -0,0 +1,456 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.9
+import QtQuick.Controls 1.5
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Calendar
+ \inqmlmodule QtQuick.Controls
+ \since 5.3
+ \ingroup controls
+ \brief Provides a way to select dates from a calendar.
+
+ \image calendar.png
+
+ Calendar allows selection of dates from a grid of days, similar to
+ QCalendarWidget.
+
+ The dates on the calendar can be selected with the mouse, or navigated
+ with the keyboard.
+
+ The selected date can be set through \l selectedDate.
+ A minimum and maximum date can be set through \l minimumDate and
+ \l maximumDate. The earliest minimum date that can be set is 1 January, 1
+ AD. The latest maximum date that can be set is 25 October, 275759 AD.
+
+ \code
+ Calendar {
+ minimumDate: new Date(2017, 0, 1)
+ maximumDate: new Date(2018, 0, 1)
+ }
+ \endcode
+
+ The selected date is displayed using the format in the application's
+ default locale.
+
+ Week numbers can be displayed by setting the weekNumbersVisible property to
+ \c true.
+
+ \qml
+ Calendar {
+ weekNumbersVisible: true
+ }
+ \endqml
+
+ You can create a custom appearance for Calendar by assigning a
+ \l {CalendarStyle}.
+*/
+
+Control {
+ id: calendar
+
+ /*!
+ \qmlproperty date Calendar::selectedDate
+
+ The date that has been selected by the user.
+
+ This property is subject to the following validation:
+
+ \list
+ \li If selectedDate is outside the range of \l minimumDate and
+ \l maximumDate, it will be clamped to be within that range.
+
+ \li selectedDate will not be changed if \c undefined or some other
+ invalid value is assigned.
+
+ \li If there are hours, minutes, seconds or milliseconds set, they
+ will be removed.
+ \endlist
+
+ The default value is the current date, which is equivalent to:
+
+ \code
+ new Date()
+ \endcode
+ */
+ property alias selectedDate: rangedDate.date
+
+ /*!
+ \qmlproperty date Calendar::minimumDate
+
+ The earliest date that this calendar will accept.
+
+ By default, this property is set to the earliest minimum date
+ (1 January, 1 AD).
+ */
+ property alias minimumDate: rangedDate.minimumDate
+
+ /*!
+ \qmlproperty date Calendar::maximumDate
+
+ The latest date that this calendar will accept.
+
+ By default, this property is set to the latest maximum date
+ (25 October, 275759 AD).
+ */
+ property alias maximumDate: rangedDate.maximumDate
+
+ /*!
+ This property determines which month in visibleYear is shown on the
+ calendar.
+
+ The month is from \c 0 to \c 11 to be consistent with the JavaScript
+ Date object.
+
+ \sa visibleYear
+ */
+ property int visibleMonth: selectedDate.getMonth()
+
+ /*!
+ This property determines which year is shown on the
+ calendar.
+
+ \sa visibleMonth
+ */
+ property int visibleYear: selectedDate.getFullYear()
+
+ onSelectedDateChanged: {
+ // When the selected date changes, the view should move back to that date.
+ visibleMonth = selectedDate.getMonth();
+ visibleYear = selectedDate.getFullYear();
+ }
+
+ RangedDate {
+ id: rangedDate
+ date: new Date()
+ minimumDate: CalendarUtils.minimumCalendarDate
+ maximumDate: CalendarUtils.maximumCalendarDate
+ }
+
+ /*!
+ This property determines the visibility of the frame
+ surrounding the calendar.
+
+ The default value is \c true.
+ */
+ property bool frameVisible: true
+
+ /*!
+ This property determines the visibility of week numbers.
+
+ The default value is \c false.
+ */
+ property bool weekNumbersVisible: false
+
+ /*!
+ This property determines the visibility of the navigation bar.
+ \since QtQuick.Controls 1.3
+
+ The default value is \c true.
+ */
+ property bool navigationBarVisible: true
+
+ /*!
+ \qmlproperty enum Calendar::dayOfWeekFormat
+
+ The format in which the days of the week (in the header) are displayed.
+
+ \c Locale.ShortFormat is the default and recommended format, as
+ \c Locale.NarrowFormat may not be fully supported by each locale (see
+ \l {Locale String Format Types}) and
+ \c Locale.LongFormat may not fit within the header cells.
+ */
+ property int dayOfWeekFormat: Locale.ShortFormat
+
+ /*!
+ \qmlproperty object Calendar::locale
+ \since QtQuick.Controls 1.6
+
+ This property controls the locale that this calendar uses to display
+ itself.
+
+ The locale affects how dates and day names are localized, as well as
+ which day is considered the first in a week.
+
+ The following example sets an Australian locale:
+
+ \code
+ locale: Qt.locale("en_AU")
+ \endcode
+
+ The default value is equivalent to \c Qt.locale().
+ */
+ property var locale: Qt.locale()
+
+ // left for compatibility reasons; can be removed in next minor version/Qt 6
+ property alias __locale: calendar.locale
+
+ /*!
+ \internal
+
+ This property holds the model that will be used by the Calendar to
+ populate the dates available to the user.
+ */
+ property CalendarModel __model: CalendarModel {
+ locale: calendar.locale
+
+ // TODO: don't set the hour when QTBUG-56787 is fixed
+ visibleDate: new Date(visibleYear, visibleMonth, 1, 12)
+ }
+
+ style: Settings.styleComponent(Settings.style, "CalendarStyle.qml", calendar)
+
+ /*!
+ \qmlsignal Calendar::hovered(date date)
+
+ Emitted when the mouse hovers over a valid date in the calendar.
+
+ \e date is the date that was hovered over.
+
+ The corresponding handler is \c onHovered.
+ */
+ signal hovered(date date)
+
+ /*!
+ \qmlsignal Calendar::pressed(date date)
+
+ Emitted when the mouse is pressed on a valid date in the calendar.
+
+ This is also emitted when dragging the mouse to another date while it is pressed.
+
+ \e date is the date that the mouse was pressed on.
+
+ The corresponding handler is \c onPressed.
+ */
+ signal pressed(date date)
+
+ /*!
+ \qmlsignal Calendar::released(date date)
+
+ Emitted when the mouse is released over a valid date in the calendar.
+
+ \e date is the date that the mouse was released over.
+
+ The corresponding handler is \c onReleased.
+ */
+ signal released(date date)
+
+ /*!
+ \qmlsignal Calendar::clicked(date date)
+
+ Emitted when the mouse is clicked on a valid date in the calendar.
+
+ \e date is the date that the mouse was clicked on.
+
+ The corresponding handler is \c onClicked.
+ */
+ signal clicked(date date)
+
+ /*!
+ \qmlsignal Calendar::doubleClicked(date date)
+
+ Emitted when the mouse is double-clicked on a valid date in the calendar.
+
+ \e date is the date that the mouse was double-clicked on.
+
+ The corresponding handler is \c onDoubleClicked.
+ */
+ signal doubleClicked(date date)
+
+ /*!
+ \qmlsignal Calendar::pressAndHold(date date)
+ \since QtQuick.Controls 1.3
+
+ Emitted when the mouse is pressed and held on a valid date in the calendar.
+
+ \e date is the date that the mouse was pressed on.
+
+ The corresponding handler is \c onPressAndHold.
+ */
+ signal pressAndHold(date date)
+
+ /*!
+ \qmlmethod void Calendar::showPreviousMonth()
+ Sets visibleMonth to the previous month.
+ */
+ function showPreviousMonth() {
+ if (visibleMonth === 0) {
+ visibleMonth = CalendarUtils.monthsInAYear - 1;
+ --visibleYear;
+ } else {
+ --visibleMonth;
+ }
+ }
+
+ /*!
+ \qmlmethod void Calendar::showNextMonth()
+ Sets visibleMonth to the next month.
+ */
+ function showNextMonth() {
+ if (visibleMonth === CalendarUtils.monthsInAYear - 1) {
+ visibleMonth = 0;
+ ++visibleYear;
+ } else {
+ ++visibleMonth;
+ }
+ }
+
+ /*!
+ \qmlmethod void Calendar::showPreviousYear()
+ Sets visibleYear to the previous year.
+ */
+ function showPreviousYear() {
+ if (visibleYear - 1 >= minimumDate.getFullYear()) {
+ --visibleYear;
+ }
+ }
+
+ /*!
+ \qmlmethod void Calendar::showNextYear()
+ Sets visibleYear to the next year.
+ */
+ function showNextYear() {
+ if (visibleYear + 1 <= maximumDate.getFullYear()) {
+ ++visibleYear;
+ }
+ }
+
+ /*!
+ Selects the month before the current month in \l selectedDate.
+ */
+ function __selectPreviousMonth() {
+ calendar.selectedDate = CalendarUtils.setMonth(calendar.selectedDate, calendar.selectedDate.getMonth() - 1);
+ }
+
+ /*!
+ Selects the month after the current month in \l selectedDate.
+ */
+ function __selectNextMonth() {
+ calendar.selectedDate = CalendarUtils.setMonth(calendar.selectedDate, calendar.selectedDate.getMonth() + 1);
+ }
+
+ /*!
+ Selects the week before the current week in \l selectedDate.
+ */
+ function __selectPreviousWeek() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(newDate.getDate() - CalendarUtils.daysInAWeek);
+ calendar.selectedDate = newDate;
+ }
+
+ /*!
+ Selects the week after the current week in \l selectedDate.
+ */
+ function __selectNextWeek() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(newDate.getDate() + CalendarUtils.daysInAWeek);
+ calendar.selectedDate = newDate;
+ }
+
+ /*!
+ Selects the first day of the current month in \l selectedDate.
+ */
+ function __selectFirstDayOfMonth() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(1);
+ calendar.selectedDate = newDate;
+ }
+
+ /*!
+ Selects the last day of the current month in \l selectedDate.
+ */
+ function __selectLastDayOfMonth() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(CalendarUtils.daysInMonth(newDate));
+ calendar.selectedDate = newDate;
+ }
+
+ /*!
+ Selects the day before the current day in \l selectedDate.
+ */
+ function __selectPreviousDay() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(newDate.getDate() - 1);
+ calendar.selectedDate = newDate;
+ }
+
+ /*!
+ Selects the day after the current day in \l selectedDate.
+ */
+ function __selectNextDay() {
+ var newDate = new Date(calendar.selectedDate);
+ newDate.setDate(newDate.getDate() + 1);
+ calendar.selectedDate = newDate;
+ }
+
+ Keys.onLeftPressed: {
+ calendar.__selectPreviousDay();
+ }
+
+ Keys.onUpPressed: {
+ calendar.__selectPreviousWeek();
+ }
+
+ Keys.onDownPressed: {
+ calendar.__selectNextWeek();
+ }
+
+ Keys.onRightPressed: {
+ calendar.__selectNextDay();
+ }
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Home) {
+ calendar.__selectFirstDayOfMonth();
+ event.accepted = true;
+ } else if (event.key === Qt.Key_End) {
+ calendar.__selectLastDayOfMonth();
+ event.accepted = true;
+ } else if (event.key === Qt.Key_PageUp) {
+ calendar.__selectPreviousMonth();
+ event.accepted = true;
+ } else if (event.key === Qt.Key_PageDown) {
+ calendar.__selectNextMonth();
+ event.accepted = true;
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qmlc
new file mode 100644
index 00000000..0c6fe8b3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Calendar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qml
new file mode 100644
index 00000000..d2448168
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qml
@@ -0,0 +1,197 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype CheckBox
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief A checkbox with a text label.
+
+ \image checkbox.png
+
+ A CheckBox is an option button that can be toggled on (checked) or off
+ (unchecked). Checkboxes are typically used to represent features in an
+ application that can be enabled or disabled without affecting others.
+
+ The state of the checkbox can be set with the \l {AbstractCheckable::checked}{checked} property.
+
+ In addition to the checked and unchecked states, there is a third state:
+ partially checked. This state indicates that the
+ regular checked/unchecked state can not be determined; generally because of
+ other states that affect the checkbox. This state is useful when several
+ child nodes are selected in a treeview, for example.
+
+ The partially checked state can be made available to the user by setting
+ \l partiallyCheckedEnabled to \c true, or set directly by setting
+ \l checkedState to \c Qt.PartiallyChecked. \l checkedState behaves
+ identically to \l {AbstractCheckable::checked}{checked} when \l partiallyCheckedEnabled
+ is \c false; setting one will appropriately set the other.
+
+ The label is shown next to the checkbox, and you can set the label text using its
+ \l {AbstractCheckable::text}{text} property.
+
+ \qml
+ Column {
+ CheckBox {
+ text: qsTr("Breakfast")
+ checked: true
+ }
+ CheckBox {
+ text: qsTr("Lunch")
+ }
+ CheckBox {
+ text: qsTr("Dinner")
+ checked: true
+ }
+ }
+ \endqml
+
+ Whenever a CheckBox is clicked, it emits the \l {AbstractCheckable::clicked}{clicked()} signal.
+
+ You can create a custom appearance for a CheckBox by
+ assigning a \l {CheckBoxStyle}.
+*/
+
+AbstractCheckable {
+ id: checkBox
+
+ /*!
+ \qmlproperty enumeration CheckBox::checkedState
+
+ This property indicates the current checked state of the checkbox.
+
+ Possible values:
+ \c Qt.UnChecked - The checkbox is not checked (default).
+ \c Qt.Checked - The checkbox is checked.
+ \c Qt.PartiallyChecked - The checkbox is in a partially checked (or
+ "mixed") state.
+
+ The \l {AbstractCheckable::checked}{checked} property also determines whether
+ this property is \c Qt.Checked or \c Qt.UnChecked, and vice versa.
+ */
+ property int checkedState: checked ? Qt.Checked : Qt.Unchecked
+
+ /*!
+ This property determines whether the \c Qt.PartiallyChecked state is
+ available.
+
+ A checkbox may be in a partially checked state when the regular checked
+ state can not be determined.
+
+ Setting \l checkedState to \c Qt.PartiallyChecked will implicitly set
+ this property to \c true.
+
+ If this property is \c true, \l {AbstractCheckable::checked}{checked} will be \c false.
+
+ By default, this property is \c false.
+ */
+ property bool partiallyCheckedEnabled: false
+
+ /*!
+ \internal
+ True if onCheckedChanged should be ignored because we were reacting
+ to onCheckedStateChanged.
+ */
+ property bool __ignoreChecked: false
+
+ /*!
+ \internal
+ True if onCheckedStateChanged should be ignored because we were reacting
+ to onCheckedChanged.
+ */
+ property bool __ignoreCheckedState: false
+
+ style: Settings.styleComponent(Settings.style, "CheckBoxStyle.qml", checkBox)
+
+ activeFocusOnTab: true
+
+ Accessible.role: Accessible.CheckBox
+ Accessible.name: text
+
+ __cycleStatesHandler: __cycleCheckBoxStates
+
+ onCheckedChanged: {
+ if (!__ignoreChecked) {
+ __ignoreCheckedState = true;
+ checkedState = checked ? Qt.Checked : Qt.Unchecked;
+ __ignoreCheckedState = false;
+ }
+ }
+
+ onCheckedStateChanged: {
+ __ignoreChecked = true;
+ if (checkedState === Qt.PartiallyChecked) {
+ partiallyCheckedEnabled = true;
+ checked = false;
+ } else if (!__ignoreCheckedState) {
+ checked = checkedState === Qt.Checked;
+ }
+ __ignoreChecked = false;
+ }
+
+ onPartiallyCheckedEnabledChanged: {
+ if (exclusiveGroup && partiallyCheckedEnabled) {
+ console.warn("Cannot have partially checked boxes in an ExclusiveGroup.");
+ }
+ }
+
+ onExclusiveGroupChanged: {
+ if (exclusiveGroup && partiallyCheckedEnabled) {
+ console.warn("Cannot have partially checked boxes in an ExclusiveGroup.");
+ }
+ }
+
+ /*! \internal */
+ function __cycleCheckBoxStates() {
+ if (!partiallyCheckedEnabled) {
+ checked = !checked;
+ } else {
+ switch (checkedState) {
+ case Qt.Unchecked: checkedState = Qt.Checked; break;
+ case Qt.Checked: checkedState = Qt.PartiallyChecked; break;
+ case Qt.PartiallyChecked: checkedState = Qt.Unchecked; break;
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qmlc
new file mode 100644
index 00000000..5c0afdb5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/CheckBox.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qml
new file mode 100644
index 00000000..b01cfe12
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qml
@@ -0,0 +1,717 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ComboBox
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Provides a drop-down list functionality.
+
+ \image combobox.png
+
+ Add items to the ComboBox by assigning it a ListModel, or a list of strings
+ to the \l model property.
+
+ \qml
+ ComboBox {
+ width: 200
+ model: [ "Banana", "Apple", "Coconut" ]
+ }
+ \endqml
+
+ In this example we are demonstrating how to use a ListModel with a combo box.
+
+ \qml
+ ComboBox {
+ currentIndex: 2
+ model: ListModel {
+ id: cbItems
+ ListElement { text: "Banana"; color: "Yellow" }
+ ListElement { text: "Apple"; color: "Green" }
+ ListElement { text: "Coconut"; color: "Brown" }
+ }
+ width: 200
+ onCurrentIndexChanged: console.debug(cbItems.get(currentIndex).text + ", " + cbItems.get(currentIndex).color)
+ }
+ \endqml
+
+ You can make a combo box editable by setting the \l editable property. An editable combo box will
+ autocomplete its text based on what is available in the model.
+
+ In the next example we demonstrate how you can append content to an editable combo box by
+ reacting to the \l accepted signal. Note that you have to explicitly prevent duplicates.
+
+ \qml
+ ComboBox {
+ editable: true
+ model: ListModel {
+ id: model
+ ListElement { text: "Banana"; color: "Yellow" }
+ ListElement { text: "Apple"; color: "Green" }
+ ListElement { text: "Coconut"; color: "Brown" }
+ }
+ onAccepted: {
+ if (find(currentText) === -1) {
+ model.append({text: editText})
+ currentIndex = find(editText)
+ }
+ }
+ }
+ \endqml
+
+
+ You can create a custom appearance for a ComboBox by
+ assigning a \l {ComboBoxStyle}.
+*/
+
+Control {
+ id: comboBox
+
+ /*! \qmlproperty model ComboBox::model
+ The model to populate the ComboBox from.
+
+ Changing the model after initialization will reset \l currentIndex to \c 0.
+ */
+ property alias model: popupItems.model
+
+ /*! The model role used for populating the ComboBox. */
+ property string textRole: ""
+
+ /*! \qmlproperty int ComboBox::currentIndex
+ The index of the currently selected item in the ComboBox.
+
+ Setting currentIndex to \c -1 will reset the selection and clear the text
+ label. If \l editable is \c true, you may also need to manually clear \l editText.
+
+ \sa model
+ */
+ property alias currentIndex: popup.__selectedIndex
+
+ /*! \qmlproperty string ComboBox::currentText
+ The text of the currently selected item in the ComboBox.
+
+ \note Since \c currentText depends on \c currentIndex, there's no way to ensure \c currentText
+ will be up to date whenever a \c onCurrentIndexChanged handler is called.
+ */
+ readonly property alias currentText: popup.currentText
+
+ /*! This property holds whether the combo box can be edited by the user.
+ The default value is \c false.
+ \since QtQuick.Controls 1.1
+ */
+ property bool editable: false
+
+ /*! \qmlproperty string ComboBox::editText
+ \since QtQuick.Controls 1.1
+ This property specifies text being manipulated by the user for an editable combo box.
+ */
+ property alias editText: input.text
+
+ /*! \qmlproperty enumeration ComboBox::inputMethodHints
+ \since QtQuick.Controls 1.5
+ Provides hints to the input method about the expected content of the combo box and how it
+ should operate.
+
+ The value is a bit-wise combination of flags or \c Qt.ImhNone if no hints are set.
+
+ Flags that alter behavior are:
+
+ \list
+ \li Qt.ImhHiddenText - Characters should be hidden, as is typically used when entering passwords.
+ \li Qt.ImhSensitiveData - Typed text should not be stored by the active input method
+ in any persistent storage like predictive user dictionary.
+ \li Qt.ImhNoAutoUppercase - The input method should not try to automatically switch to upper case
+ when a sentence ends.
+ \li Qt.ImhPreferNumbers - Numbers are preferred (but not required).
+ \li Qt.ImhPreferUppercase - Upper case letters are preferred (but not required).
+ \li Qt.ImhPreferLowercase - Lower case letters are preferred (but not required).
+ \li Qt.ImhNoPredictiveText - Do not use predictive text (i.e. dictionary lookup) while typing.
+
+ \li Qt.ImhDate - The text editor functions as a date field.
+ \li Qt.ImhTime - The text editor functions as a time field.
+ \endlist
+
+ Flags that restrict input (exclusive flags) are:
+
+ \list
+ \li Qt.ImhDigitsOnly - Only digits are allowed.
+ \li Qt.ImhFormattedNumbersOnly - Only number input is allowed. This includes decimal point and minus sign.
+ \li Qt.ImhUppercaseOnly - Only upper case letter input is allowed.
+ \li Qt.ImhLowercaseOnly - Only lower case letter input is allowed.
+ \li Qt.ImhDialableCharactersOnly - Only characters suitable for phone dialing are allowed.
+ \li Qt.ImhEmailCharactersOnly - Only characters suitable for email addresses are allowed.
+ \li Qt.ImhUrlCharactersOnly - Only characters suitable for URLs are allowed.
+ \endlist
+
+ Masks:
+
+ \list
+ \li Qt.ImhExclusiveInputMask - This mask yields nonzero if any of the exclusive flags are used.
+ \endlist
+ */
+ property alias inputMethodHints: input.inputMethodHints
+
+ /*! This property specifies whether the combobox should gain active focus when pressed.
+ The default value is \c false. */
+ property bool activeFocusOnPress: false
+
+ /*! \qmlproperty bool ComboBox::pressed
+
+ This property holds whether the button is being pressed. */
+ readonly property bool pressed: mouseArea.effectivePressed || popup.__popupVisible
+
+ /*! \qmlproperty bool ComboBox::hovered
+
+ This property indicates whether the control is being hovered.
+ */
+ readonly property bool hovered: mouseArea.containsMouse || input.containsMouse
+
+ /*! \qmlproperty int ComboBox::count
+ \since QtQuick.Controls 1.1
+ This property holds the number of items in the combo box.
+ */
+ readonly property alias count: popupItems.count
+
+ /*! \qmlmethod string ComboBox::textAt(int index)
+ Returns the text for a given \a index.
+ If an invalid index is provided, \c null is returned
+ \since QtQuick.Controls 1.1
+ */
+ function textAt (index) {
+ if (index >= count || index < 0)
+ return null;
+ return popupItems.objectAt(index).text;
+ }
+
+ /*! \qmlmethod int ComboBox::find(string text)
+ Finds and returns the index of a given \a text
+ If no match is found, \c -1 is returned. The search is case sensitive.
+ \since QtQuick.Controls 1.1
+ */
+ function find (text) {
+ return input.find(text, Qt.MatchExactly)
+ }
+
+ /*!
+ \qmlproperty Validator ComboBox::validator
+ \since QtQuick.Controls 1.1
+
+ Allows you to set a text validator for an editable ComboBox.
+ When a validator is set,
+ the text field will only accept input which leaves the text property in
+ an intermediate state. The accepted signal will only be sent
+ if the text is in an acceptable state when enter is pressed.
+
+ Currently supported validators are \l[QtQuick]{IntValidator},
+ \l[QtQuick]{DoubleValidator}, and \l[QtQuick]{RegExpValidator}. An
+ example of using validators is shown below, which allows input of
+ integers between 11 and 31 into the text field:
+
+ \note This property is only applied when \l editable is \c true
+
+ \qml
+ import QtQuick 2.2
+ import QtQuick.Controls 1.2
+
+ ComboBox {
+ editable: true
+ model: 10
+ validator: IntValidator {bottom: 0; top: 10;}
+ focus: true
+ }
+ \endqml
+
+ \sa acceptableInput, accepted, editable
+ */
+ property alias validator: input.validator
+
+ /*!
+ \since QtQuick.Controls 1.3
+
+ This property contains the edit \l Menu for working
+ with text selection. Set it to \c null if no menu
+ is wanted.
+
+ \note The menu is only in use when \l editable is \c true
+ */
+ property Component menu: input.editMenu.defaultMenu
+
+ /*!
+ \qmlproperty bool ComboBox::acceptableInput
+ \since QtQuick.Controls 1.1
+
+ Returns \c true if the combo box contains acceptable
+ text in the editable text field.
+
+ If a validator was set, this property will return \c
+ true if the current text satisfies the validator or mask as
+ a final string (not as an intermediate string).
+
+ \sa validator, accepted
+
+ */
+ readonly property alias acceptableInput: input.acceptableInput
+
+ /*!
+ \qmlproperty bool ComboBox::selectByMouse
+ \since QtQuick.Controls 1.3
+
+ This property determines if the user can select the text in
+ the editable text field with the mouse.
+
+ The default value is \c true.
+ */
+ property bool selectByMouse: true
+
+ /*!
+ \qmlproperty bool ComboBox::inputMethodComposing
+ \since QtQuick.Controls 1.3
+
+ This property holds whether an editable ComboBox has partial text input from an input method.
+
+ While it is composing an input method may rely on mouse or key events from the ComboBox
+ to edit or commit the partial text. This property can be used to determine when to disable
+ events handlers that may interfere with the correct operation of an input method.
+ */
+ readonly property bool inputMethodComposing: !!input.inputMethodComposing
+
+ /*!
+ \qmlsignal ComboBox::accepted()
+ \since QtQuick.Controls 1.1
+
+ This signal is emitted when the Return or Enter key is pressed on an
+ \l editable combo box. If the confirmed string is not currently in the model,
+ the currentIndex will be set to -1 and the \l currentText will be updated
+ accordingly.
+
+ \note If there is a \l validator set on the combobox,
+ the signal will only be emitted if the input is in an acceptable state.
+
+ The corresponding handler is \c onAccepted.
+ */
+ signal accepted
+
+ /*!
+ \qmlsignal ComboBox::activated(int index)
+ \since QtQuick.Controls 1.1
+
+ This signal is similar to currentIndex changed, but will only
+ be emitted if the combo box index was changed by the user, not
+ when set programmatically.
+
+ \e index is the activated model index, or \c -1 if a new string is
+ accepted.
+
+ The corresponding handler is \c onActivated.
+ */
+ signal activated(int index)
+
+ /*!
+ \qmlmethod void ComboBox::selectAll()
+ \since QtQuick.Controls 1.1
+
+ Causes all \l editText to be selected.
+ */
+ function selectAll() {
+ input.selectAll()
+ }
+
+ /*! \internal */
+ function __selectPrevItem() {
+ input.blockUpdate = true
+ if (currentIndex > 0) {
+ currentIndex--;
+ input.text = popup.currentText;
+ activated(currentIndex);
+ }
+ input.blockUpdate = false;
+ }
+
+ /*! \internal */
+ function __selectNextItem() {
+ input.blockUpdate = true;
+ if (currentIndex < popupItems.count - 1) {
+ currentIndex++;
+ input.text = popup.currentText;
+ activated(currentIndex);
+ }
+ input.blockUpdate = false;
+ }
+
+ /*! \internal */
+ property var __popup: popup
+
+ style: Settings.styleComponent(Settings.style, "ComboBoxStyle.qml", comboBox)
+
+ activeFocusOnTab: true
+
+ Accessible.name: editable ? editText : currentText
+ Accessible.role: Accessible.ComboBox
+ Accessible.editable: editable
+
+ MouseArea {
+ id: mouseArea
+ property bool overridePressed: false
+ readonly property bool effectivePressed: (pressed || overridePressed) && containsMouse
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ onPressed: {
+ if (comboBox.activeFocusOnPress)
+ forceActiveFocus()
+ if (!Settings.hasTouchScreen)
+ popup.toggleShow()
+ else
+ overridePressed = true
+ }
+ onCanceled: overridePressed = false
+ onClicked: {
+ if (Settings.hasTouchScreen)
+ popup.toggleShow()
+ overridePressed = false
+ }
+ onWheel: {
+ if (wheel.angleDelta.y > 0) {
+ __selectPrevItem();
+ } else if (wheel.angleDelta.y < 0){
+ __selectNextItem();
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ if (currentIndex === -1)
+ currentIndex = 0
+
+ popup.ready = true
+ popup.resolveTextValue(textRole)
+ }
+
+ Keys.onPressed: {
+ // Perform one-character based lookup for non-editable combo box
+ if (!editable && event.text.length > 0) {
+ var index = input.find(event.text, Qt.MatchStartsWith);
+ if (index >= 0 && index !== currentIndex) {
+ currentIndex = index;
+ activated(currentIndex);
+ }
+ }
+ }
+
+ TextInputWithHandles {
+ id: input
+
+ visible: editable
+ enabled: editable
+ focus: true
+ clip: contentWidth > width
+
+ control: comboBox
+ cursorHandle: __style ? __style.__cursorHandle : undefined
+ selectionHandle: __style ? __style.__selectionHandle : undefined
+
+ anchors.fill: parent
+ anchors.leftMargin: __style ? __style.padding.left : 0
+ anchors.topMargin: __style ? __style.padding.top : 0
+ anchors.rightMargin: __style ? __panel.dropDownButtonWidth + __style.padding.right : 0
+ anchors.bottomMargin: __style ? __style.padding.bottom: 0
+
+ verticalAlignment: Text.AlignVCenter
+
+ font: __panel && __panel.font !== undefined ? __panel.font : TextSingleton.font
+ renderType: __style ? __style.renderType : Text.NativeRendering
+ color: __panel ? __panel.textColor : "black"
+ selectionColor: __panel ? __panel.selectionColor : "blue"
+ selectedTextColor: __panel ? __panel.selectedTextColor : "white"
+ onAccepted: {
+ var idx = input.find(editText, Qt.MatchFixedString)
+ if (idx > -1) {
+ editTextMatches = true;
+ currentIndex = idx;
+ editText = textAt(idx);
+ } else {
+ editTextMatches = false;
+ currentIndex = -1;
+ popup.currentText = editText;
+ }
+ comboBox.accepted();
+ }
+
+ property bool blockUpdate: false
+ property string prevText
+ property bool editTextMatches: true
+
+ function find (text, searchType) {
+ for (var i = 0 ; i < popupItems.count ; ++i) {
+ var currentString = popupItems.objectAt(i).text
+ if (searchType === Qt.MatchExactly) {
+ if (text === currentString)
+ return i;
+ } else if (searchType === Qt.CaseSensitive) {
+ if (currentString.indexOf(text) === 0)
+ return i;
+ } else if (searchType === Qt.MatchFixedString) {
+ if (currentString.toLowerCase().indexOf(text.toLowerCase()) === 0
+ && currentString.length === text.length)
+ return i;
+ } else if (currentString.toLowerCase().indexOf(text.toLowerCase()) === 0) {
+ return i
+ }
+ }
+ return -1;
+ }
+
+ // Finds first entry and shortest entry. Used by editable combo
+ function tryComplete (inputText) {
+ var candidate = "";
+ var shortestString = "";
+ for (var i = 0 ; i < popupItems.count ; ++i) {
+ var currentString = popupItems.objectAt(i).text;
+
+ if (currentString.toLowerCase().indexOf(inputText.toLowerCase()) === 0) {
+ if (candidate.length) { // Find smallest possible match
+ var cmp = 0;
+
+ // We try to complete the shortest string that matches our search
+ if (currentString.length < candidate.length)
+ candidate = currentString
+
+ while (cmp < Math.min(currentString.length, shortestString.length)
+ && shortestString[cmp].toLowerCase() === currentString[cmp].toLowerCase())
+ cmp++;
+ shortestString = shortestString.substring(0, cmp);
+ } else { // First match, select as current index and find other matches
+ candidate = currentString;
+ shortestString = currentString;
+ }
+ }
+ }
+
+ if (candidate.length)
+ return inputText + candidate.substring(inputText.length, candidate.length);
+ return inputText;
+ }
+
+ property bool allowComplete: false
+ Keys.forwardTo: comboBox
+ Keys.onPressed: allowComplete = (event.key !== Qt.Key_Backspace && event.key !== Qt.Key_Delete);
+
+ onTextChanged: {
+ if (editable && !blockUpdate && allowComplete && text.length > 0) {
+ var completed = input.tryComplete(text)
+ if (completed.length > text.length) {
+ var oldtext = input.text;
+ input.text = completed;
+ input.select(text.length, oldtext.length);
+ }
+ }
+ prevText = text
+ }
+ }
+
+ Qml.Binding {
+ target: input
+ property: "text"
+ value: popup.currentText
+ when: input.editTextMatches
+ restoreMode: Binding.RestoreBinding
+ }
+
+ onTextRoleChanged: popup.resolveTextValue(textRole)
+
+ ExclusiveGroup { id: eg }
+
+ Menu {
+ id: popup
+ objectName: "popup"
+
+ style: isPopup ? __style.__popupStyle : __style.__dropDownStyle
+
+ property string currentText: selectedText
+ onSelectedTextChanged: popup.currentText = selectedText
+
+ property string selectedText
+ property int triggeredIndex: -1
+ on__SelectedIndexChanged: {
+ if (__selectedIndex === -1)
+ popup.currentText = ""
+ else
+ updateSelectedText()
+ if (triggeredIndex >= 0 && triggeredIndex == __selectedIndex) {
+ activated(currentIndex)
+ triggeredIndex = -1
+ }
+ }
+ property string textRole: ""
+
+ property bool ready: false
+ property bool isPopup: !editable && !!__panel && __panel.popup
+
+ property int y: isPopup ? (comboBox.__panel.height - comboBox.__panel.implicitHeight) / 2.0 : comboBox.__panel.height
+ __minimumWidth: comboBox.width
+ __visualItem: comboBox
+
+ property bool modelIsArray: false
+
+ Instantiator {
+ id: popupItems
+ active: false
+
+ property bool updatingModel: false
+ onModelChanged: {
+ popup.modelIsArray = !!model ? model.constructor === Array : false
+ if (active) {
+ if (updatingModel && popup.__selectedIndex === 0) {
+ // We still want to update the currentText
+ popup.updateSelectedText()
+ } else {
+ updatingModel = true
+ popup.__selectedIndex = 0
+ }
+ }
+ popup.resolveTextValue(comboBox.textRole)
+ }
+
+ MenuItem {
+ text: popup.textRole === '' ?
+ modelData :
+ ((popup.modelIsArray ? modelData[popup.textRole] : model[popup.textRole]) || '')
+ onTriggered: {
+ popup.triggeredIndex = index
+ comboBox.editText = text
+ }
+ onTextChanged: if (index === currentIndex) popup.updateSelectedText();
+ checkable: true
+ exclusiveGroup: eg
+ }
+ onObjectAdded: {
+ popup.insertItem(index, object)
+ if (!updatingModel && index === popup.__selectedIndex)
+ popup.selectedText = object["text"]
+ }
+ onObjectRemoved: popup.removeItem(object)
+
+ }
+
+ function resolveTextValue(initialTextRole) {
+ if (!ready || !model) {
+ popupItems.active = false
+ return;
+ }
+
+ var get = model['get'];
+ if (!get && popup.modelIsArray && !!model[0]) {
+ if (model[0].constructor !== String && model[0].constructor !== Number)
+ get = function(i) { return model[i]; }
+ }
+
+ var modelMayHaveRoles = get !== undefined
+ textRole = initialTextRole
+ if (textRole === "" && modelMayHaveRoles && get(0)) {
+ // No text role set, check whether model has a suitable role
+ // If 'text' is found, or there's only one role, pick that.
+ var listElement = get(0)
+ var roleName = ""
+ var roleCount = 0
+ for (var role in listElement) {
+ if (listElement[role].constructor === Function)
+ continue;
+ if (role === "text") {
+ roleName = role
+ break
+ } else if (!roleName) {
+ roleName = role
+ }
+ ++roleCount
+ }
+ if (roleCount > 1 && roleName !== "text") {
+ console.warn("No suitable 'textRole' found for ComboBox.")
+ } else {
+ textRole = roleName
+ }
+ }
+
+ if (!popupItems.active)
+ popupItems.active = true
+ else
+ updateSelectedText()
+ }
+
+ function toggleShow() {
+ if (popup.__popupVisible) {
+ popup.__dismissAndDestroy()
+ } else {
+ if (items[__selectedIndex])
+ items[__selectedIndex].checked = true
+ __currentIndex = comboBox.currentIndex
+ if (Qt.application.layoutDirection === Qt.RightToLeft)
+ __popup(Qt.rect(comboBox.width, y, 0, 0), isPopup ? __selectedIndex : 0)
+ else
+ __popup(Qt.rect(0, y, 0, 0), isPopup ? __selectedIndex : 0)
+ }
+ }
+
+ function updateSelectedText() {
+ var selectedItem;
+ if (__selectedIndex !== -1 && (selectedItem = items[__selectedIndex])) {
+ input.editTextMatches = true
+ selectedText = Qt.binding(function () { return selectedItem.text })
+ if (currentText !== selectedText) // __selectedIndex went form -1 to 0
+ selectedTextChanged()
+ }
+ }
+ }
+
+ // The key bindings below will only be in use when popup is
+ // not visible. Otherwise, native popup key handling will take place:
+ Keys.onSpacePressed: {
+ if (!editable)
+ popup.toggleShow()
+ else
+ event.accepted = false
+ }
+
+ Keys.onUpPressed: __selectPrevItem()
+ Keys.onDownPressed: __selectNextItem()
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qmlc
new file mode 100644
index 00000000..ab188cc3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ComboBox.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qml
new file mode 100644
index 00000000..0a414ed2
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qml
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Layouts 1.0
+
+/*!
+ \qmltype GroupBox
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief GroupBox provides a group box frame with a title.
+
+ \image groupbox.png
+
+ A group box provides a frame, a title on top and displays various other controls inside itself. Group boxes can also be checkable.
+
+ Child controls in checkable group boxes are enabled or disabled depending on whether or not the group box is checked.
+
+ You can minimize the space consumption of a group box by enabling the flat property.
+ In most styles, enabling this property results in the removal of the left, right and bottom edges of the frame.
+
+ To add content to a group box, you can reparent it to its contentItem property.
+
+ The implicit size of the GroupBox is calculated based on the size of its content. If you want to anchor
+ items inside the group box, you must specify an explicit width and height on the GroupBox itself.
+
+ The following example shows how we use a GroupBox:
+
+ \qml
+ GroupBox {
+ title: "Joining for?"
+
+ Column {
+ spacing: 10
+
+ CheckBox {
+ text: "Breakfast"
+ checked: true
+ }
+ CheckBox {
+ text: "Lunch"
+ checked: false
+ }
+ CheckBox {
+ text: "Dinner"
+ checked: true
+ }
+ }
+ }
+ \endqml
+
+ \sa CheckBox, RadioButton, Layout
+
+*/
+
+FocusScope {
+ id: groupbox
+
+ /*!
+ This property holds the group box title text.
+
+ There is no default title text.
+ */
+ property string title
+
+ /*!
+ This property holds whether the group box is painted flat or has a frame.
+
+ A group box usually consists of a surrounding frame with a title at the top.
+ If this property is enabled, only the top part of the frame is drawn in most styles;
+ otherwise, the whole frame is drawn.
+
+ By default, this property is disabled, so group boxes are not flat unless explicitly specified.
+
+ \note In some styles, flat and non-flat group boxes have similar representations and may not be as
+ distinguishable as they are in other styles.
+ */
+ property bool flat: false
+
+ /*!
+ This property holds whether the group box has a checkbox in its title.
+
+ If this property is true, the group box displays its title using a checkbox in place of an ordinary label.
+ If the checkbox is checked, the group box's children are enabled; otherwise, they are disabled and inaccessible.
+
+ By default, group boxes are not checkable.
+ */
+ property bool checkable: false
+
+ /*!
+ \qmlproperty bool GroupBox::checked
+
+ This property holds whether the group box is checked.
+
+ If the group box is checkable, it is displayed with a check box. If the check box is checked, the group
+ box's children are enabled; otherwise, the children are disabled and are inaccessible to the user.
+
+ By default, checkable group boxes are also checked.
+ */
+ property alias checked: check.checked
+
+
+ /*! \internal */
+ default property alias __content: container.data
+
+ /*!
+ \qmlproperty Item GroupBox::contentItem
+
+ This property holds the content Item of the group box.
+
+ Items declared as children of a GroupBox are automatically parented to the GroupBox's contentItem.
+ Items created dynamically need to be explicitly parented to the contentItem:
+
+ \note The implicit size of the GroupBox is calculated based on the size of its content. If you want to anchor
+ items inside the group box, you must specify an explicit width and height on the GroupBox itself.
+ */
+ readonly property alias contentItem: container
+
+ /*! \internal */
+ property Component style: Settings.styleComponent(Settings.style, "GroupBoxStyle.qml", groupbox)
+
+ /*! \internal */
+ property alias __checkbox: check
+
+ /*! \internal */
+ property alias __style: styleLoader.item
+
+ implicitWidth: Math.max((!anchors.fill ? container.calcWidth() : 0) + loader.leftMargin + loader.rightMargin,
+ sizeHint.implicitWidth + (checkable ? 24 : 6))
+ implicitHeight: (!anchors.fill ? container.calcHeight() : 0) + loader.topMargin + loader.bottomMargin
+
+ Layout.minimumWidth: implicitWidth
+ Layout.minimumHeight: implicitHeight
+
+ Accessible.role: Accessible.Grouping
+ Accessible.name: title
+
+ activeFocusOnTab: false
+
+
+ data: [
+ Loader {
+ id: loader
+ anchors.fill: parent
+ property int topMargin: __style ? __style.padding.top : 0
+ property int bottomMargin: __style ? __style.padding.bottom : 0
+ property int leftMargin: __style ? __style.padding.left : 0
+ property int rightMargin: __style ? __style.padding.right : 0
+ sourceComponent: styleLoader.item ? styleLoader.item.panel : null
+ onLoaded: item.z = -1
+ Text { id: sizeHint ; visible: false ; text: title }
+ Loader {
+ id: styleLoader
+ property alias __control: groupbox
+ sourceComponent: groupbox.style
+ }
+ },
+ CheckBox {
+ id: check
+ objectName: "check"
+ checked: true
+ text: groupbox.title
+ visible: checkable
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: loader.topMargin
+ activeFocusOnTab: groupbox.checkable
+ style: CheckBoxStyle { panel: Item{} }
+ },
+ Item {
+ id: container
+ objectName: "container"
+ z: 1
+ focus: true
+ anchors.fill: parent
+
+ anchors.topMargin: loader.topMargin
+ anchors.leftMargin: loader.leftMargin
+ anchors.rightMargin: loader.rightMargin
+ anchors.bottomMargin: loader.bottomMargin
+ enabled: (!groupbox.checkable || groupbox.checked)
+
+ property Item layoutItem: container.children.length === 1 ? container.children[0] : null
+ function calcWidth () { return (layoutItem ? (layoutItem.implicitWidth || layoutItem.width) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.leftMargin +
+ layoutItem.anchors.rightMargin : 0) : container.childrenRect.width) }
+ function calcHeight () { return (layoutItem ? (layoutItem.implicitHeight || layoutItem.height) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.topMargin +
+ layoutItem.anchors.bottomMargin : 0) : container.childrenRect.height) }
+ }]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qmlc
new file mode 100644
index 00000000..39d88b0a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/GroupBox.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qml
new file mode 100644
index 00000000..ea3f27b3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.6
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Label
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief A text label.
+
+ \image label.png
+
+ In addition to the normal \l Text type, Label follows the font and
+ color scheme of the system.
+ Use the \c text property to assign a text to the label. For other properties
+ check \l Text.
+
+ A simple label looks like this:
+ \qml
+ Label {
+ text: "Hello world"
+ }
+ \endqml
+
+ You can use the properties of \l Text to change the appearance
+ of the text as desired:
+ \qml
+ Label {
+ text: "Hello world"
+ font.pixelSize: 22
+ font.italic: true
+ color: "steelblue"
+ }
+ \endqml
+
+ \sa Text, TextField, TextEdit
+*/
+
+Text {
+ /*!
+ \qmlproperty string Label::text
+
+ The text to display. Use this property to get and set it.
+ */
+
+ id: label
+ color: SystemPaletteSingleton.windowText(enabled)
+ activeFocusOnTab: false
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ Accessible.name: text
+ Accessible.role: Accessible.StaticText
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qmlc
new file mode 100644
index 00000000..22bf8874
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Label.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qml
new file mode 100644
index 00000000..f91e8634
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qml
@@ -0,0 +1,180 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Menu
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup menus
+ \ingroup controls
+ \brief Provides a menu component for use as a context menu, popup menu, or
+ as part of a menu bar.
+
+ \image menu.png
+
+ \code
+ Menu {
+ title: "Edit"
+
+ MenuItem {
+ text: "Cut"
+ shortcut: "Ctrl+X"
+ onTriggered: ...
+ }
+
+ MenuItem {
+ text: "Copy"
+ shortcut: "Ctrl+C"
+ onTriggered: ...
+ }
+
+ MenuItem {
+ text: "Paste"
+ shortcut: "Ctrl+V"
+ onTriggered: ...
+ }
+
+ MenuSeparator { }
+
+ Menu {
+ title: "More Stuff"
+
+ MenuItem {
+ text: "Do Nothing"
+ }
+ }
+ }
+ \endcode
+
+ The main uses for menus:
+ \list
+ \li
+ as a \e top-level menu in a \l MenuBar
+ \li
+ as a \e submenu inside another menu
+ \li
+ as a standalone or \e context menu
+ \endlist
+
+ Note that some properties, such as \c enabled, \c text, or \c iconSource,
+ only make sense in a particular use case of the menu.
+
+ \sa MenuBar, MenuItem, MenuSeparator
+*/
+
+MenuPrivate {
+ id: root
+
+ /*! \internal
+ \omit
+ Documented in qqquickmenu.cpp.
+ \endomit
+ */
+ function addMenu(title) {
+ return root.insertMenu(items.length, title)
+ }
+
+ /*! \internal
+ \omit
+ Documented in qquickmenu.cpp.
+ \endomit
+ */
+ function insertMenu(index, title) {
+ if (!__selfComponent)
+ __selfComponent = Qt.createComponent("Menu.qml", root)
+ var submenu = __selfComponent.createObject(__selfComponent, { "title": title })
+ root.insertItem(index, submenu)
+ return submenu
+ }
+
+ /*! \internal */
+ property Component __selfComponent: null
+
+ /*! \qmlproperty Component Menu::style
+ \since QtQuick.Controls.Styles 1.2
+
+ The style Component for this control.
+ \sa {MenuStyle}
+
+ */
+ property Component style
+
+ Component.onCompleted: {
+ if (!style) {
+ __usingDefaultStyle = true
+ style = Qt.binding(function() { return Settings.styleComponent(Settings.style, "MenuStyle.qml", root) })
+ }
+ }
+
+ /*! \internal */
+ property bool __usingDefaultStyle: false
+ /*! \internal */
+ property var __parentContentItem: __parentMenu ? __parentMenu.__contentItem : null
+ /*! \internal */
+ property int __currentIndex: -1
+ /*! \internal */
+ onAboutToHide: __currentIndex = -1
+ on__MenuPopupDestroyed: contentLoader.active = false
+ onPopupVisibleChanged: {
+ if (__popupVisible)
+ contentLoader.active = true
+ }
+
+ /*! \internal */
+ __contentItem: Loader {
+ id: contentLoader
+ Component {
+ id: menuContent
+ MenuContentItem {
+ __menu: root
+ }
+ }
+
+ sourceComponent: root.__isNative ? null : menuContent
+ active: false
+ focus: true
+ Keys.forwardTo: item ? [item, root.__parentContentItem] : []
+ property bool altPressed: root.__parentContentItem ? root.__parentContentItem.altPressed : false
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qmlc
new file mode 100644
index 00000000..ec01b60c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Menu.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qml
new file mode 100644
index 00000000..78fd7cc7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qml
@@ -0,0 +1,347 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype MenuBar
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup applicationwindow
+ \ingroup controls
+ \brief Provides a horizontal menu bar.
+
+ \image menubar.png
+
+ MenuBar can be added to an \l ApplicationWindow, providing menu options
+ to access additional functionality of the application.
+
+ \code
+ ApplicationWindow {
+ ...
+ menuBar: MenuBar {
+ Menu {
+ title: "File"
+ MenuItem { text: "Open..." }
+ MenuItem { text: "Close" }
+ }
+
+ Menu {
+ title: "Edit"
+ MenuItem { text: "Cut" }
+ MenuItem { text: "Copy" }
+ MenuItem { text: "Paste" }
+ }
+ }
+ }
+ \endcode
+
+ \sa ApplicationWindow::menuBar
+*/
+
+MenuBarPrivate {
+ id: root
+
+ /*! \qmlproperty Component MenuBar::style
+ \since QtQuick.Controls.Styles 1.2
+
+ The style Component for this control.
+ \sa {MenuBarStyle}
+
+ */
+ property Component style: Settings.styleComponent(Settings.style, "MenuBarStyle.qml", root)
+
+ /*! \internal */
+ property QtObject __style: styleLoader.item
+
+ __isNative: !__style.hasOwnProperty("__isNative") || __style.__isNative
+
+ /*! \internal */
+ __contentItem: Loader {
+ id: topLoader
+ sourceComponent: __menuBarComponent
+ active: !root.__isNative
+ focus: true
+ Keys.forwardTo: [item]
+ property real preferredWidth: parent && active ? parent.width : 0
+ property bool altPressed: item ? item.__altPressed : false
+
+ Loader {
+ id: styleLoader
+ property alias __control: topLoader.item
+ sourceComponent: root.style
+ onStatusChanged: {
+ if (status === Loader.Error)
+ console.error("Failed to load Style for", root)
+ }
+ }
+ }
+
+ /*! \internal */
+ property Component __menuBarComponent: Loader {
+ id: menuBarLoader
+
+ Accessible.role: Accessible.MenuBar
+
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load panel for", root)
+
+ visible: status === Loader.Ready
+ sourceComponent: d.style ? d.style.background : undefined
+
+ width: implicitWidth || root.__contentItem.preferredWidth
+ height: Math.max(row.height + d.heightPadding, item ? item.implicitHeight : 0)
+
+ Qml.Binding {
+ // Make sure the styled menu bar is in the background
+ target: menuBarLoader.item
+ property: "z"
+ value: menuMouseArea.z - 1
+ restoreMode: Binding.RestoreBinding
+ }
+
+ QtObject {
+ id: d
+
+ property Style style: __style
+
+ property int openedMenuIndex: -1
+ property bool preselectMenuItem: false
+ property real heightPadding: style ? style.padding.top + style.padding.bottom : 0
+
+ property bool altPressed: false
+ property bool altPressedAgain: false
+ property var mnemonicsMap: ({})
+
+ function openMenuAtIndex(index) {
+ if (openedMenuIndex === index)
+ return;
+
+ var oldIndex = openedMenuIndex
+ openedMenuIndex = index
+
+ if (oldIndex !== -1) {
+ var menu = root.menus[oldIndex]
+ if (menu.__popupVisible)
+ menu.__dismissAndDestroy()
+ }
+
+ if (openedMenuIndex !== -1) {
+ menu = root.menus[openedMenuIndex]
+ if (menu.enabled) {
+ if (menu.__usingDefaultStyle)
+ menu.style = d.style.menuStyle
+
+ var xPos = row.LayoutMirroring.enabled ? menuItemLoader.width : 0
+ menu.__popup(Qt.rect(xPos, menuBarLoader.height - d.heightPadding, 0, 0), 0)
+
+ if (preselectMenuItem)
+ menu.__currentIndex = 0
+ }
+ }
+ }
+
+ function dismissActiveFocus(event, reason) {
+ if (reason) {
+ altPressedAgain = false
+ altPressed = false
+ openMenuAtIndex(-1)
+ root.__contentItem.parent.forceActiveFocus()
+ } else {
+ event.accepted = false
+ }
+ }
+
+ function maybeOpenFirstMenu(event) {
+ if (altPressed && openedMenuIndex === -1) {
+ preselectMenuItem = true
+ openMenuAtIndex(0)
+ } else {
+ event.accepted = false
+ }
+ }
+ }
+ property alias __altPressed: d.altPressed // Needed for the menu contents
+
+ focus: true
+
+ Keys.onPressed: {
+ var action = null
+ if (event.key === Qt.Key_Alt) {
+ if (!d.altPressed)
+ d.altPressed = true
+ else
+ d.altPressedAgain = true
+ } else if (d.altPressed && (action = d.mnemonicsMap[event.text.toUpperCase()])) {
+ d.preselectMenuItem = true
+ action.trigger()
+ event.accepted = true
+ }
+ }
+
+ Keys.onReleased: d.dismissActiveFocus(event, d.altPressedAgain && d.openedMenuIndex === -1)
+ Keys.onEscapePressed: d.dismissActiveFocus(event, d.openedMenuIndex === -1)
+
+ Keys.onUpPressed: d.maybeOpenFirstMenu(event)
+ Keys.onDownPressed: d.maybeOpenFirstMenu(event)
+
+ Keys.onLeftPressed: {
+ if (d.openedMenuIndex > 0) {
+ var idx = d.openedMenuIndex - 1
+ while (idx >= 0 && !(root.menus[idx].enabled && root.menus[idx].visible))
+ idx--
+ if (idx >= 0) {
+ d.preselectMenuItem = true
+ d.openMenuAtIndex(idx)
+ }
+ } else {
+ event.accepted = false;
+ }
+ }
+
+ Keys.onRightPressed: {
+ if (d.openedMenuIndex !== -1 && d.openedMenuIndex < root.menus.length - 1) {
+ var idx = d.openedMenuIndex + 1
+ while (idx < root.menus.length && !(root.menus[idx].enabled && root.menus[idx].visible))
+ idx++
+ if (idx < root.menus.length) {
+ d.preselectMenuItem = true
+ d.openMenuAtIndex(idx)
+ }
+ } else {
+ event.accepted = false;
+ }
+ }
+
+ Keys.forwardTo: d.openedMenuIndex !== -1 ? [root.menus[d.openedMenuIndex].__contentItem] : []
+
+ Row {
+ id: row
+ x: d.style ? d.style.padding.left : 0
+ y: d.style ? d.style.padding.top : 0
+ width: parent.width - (d.style ? d.style.padding.left + d.style.padding.right : 0)
+ LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
+
+ Repeater {
+ id: itemsRepeater
+ model: root.menus
+ Loader {
+ id: menuItemLoader
+
+ Accessible.role: Accessible.MenuItem
+ Accessible.name: StyleHelpers.removeMnemonics(opts.text)
+ Accessible.onPressAction: d.openMenuAtIndex(opts.index)
+
+ property var styleData: QtObject {
+ id: opts
+ readonly property int index: __menuItemIndex
+ readonly property string text: !!__menuItem && __menuItem.title
+ readonly property bool enabled: !!__menuItem && __menuItem.enabled
+ readonly property bool selected: menuMouseArea.hoveredItem === menuItemLoader
+ readonly property bool open: !!__menuItem && __menuItem.__popupVisible || d.openedMenuIndex === index
+ readonly property bool underlineMnemonic: d.altPressed
+ }
+
+ height: Math.max(menuBarLoader.height - d.heightPadding,
+ menuItemLoader.item ? menuItemLoader.item.implicitHeight : 0)
+
+ readonly property var __menuItem: modelData
+ readonly property int __menuItemIndex: index
+ sourceComponent: d.style ? d.style.itemDelegate : null
+ visible: __menuItem.visible
+
+ Connections {
+ target: __menuItem
+ function onAboutToHide() {
+ if (d.openedMenuIndex === index) {
+ d.openMenuAtIndex(-1)
+ menuMouseArea.hoveredItem = null
+ }
+ }
+ }
+
+ Connections {
+ target: __menuItem.__action
+ function onTriggered() { d.openMenuAtIndex(__menuItemIndex) }
+ }
+
+ Component.onCompleted: {
+ __menuItem.__visualItem = menuItemLoader
+
+ var title = __menuItem.title
+ var ampersandPos = title.indexOf("&")
+ if (ampersandPos !== -1)
+ d.mnemonicsMap[title[ampersandPos + 1].toUpperCase()] = __menuItem.__action
+ }
+ }
+ }
+ }
+
+ MouseArea {
+ id: menuMouseArea
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+
+ onPositionChanged: updateCurrentItem(mouse)
+ onPressed: updateCurrentItem(mouse)
+ onExited: hoveredItem = null
+
+ property Item currentItem: null
+ property Item hoveredItem: null
+ function updateCurrentItem(mouse) {
+ var pos = mapToItem(row, mouse.x, mouse.y)
+ if (pressed || !hoveredItem
+ || !hoveredItem.contains(Qt.point(pos.x - currentItem.x, pos.y - currentItem.y))) {
+ hoveredItem = row.childAt(pos.x, pos.y)
+ if (!hoveredItem)
+ return false;
+ currentItem = hoveredItem
+ if (pressed || d.openedMenuIndex !== -1) {
+ d.preselectMenuItem = false
+ d.openMenuAtIndex(currentItem.__menuItemIndex)
+ }
+ }
+ return true;
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qmlc
new file mode 100644
index 00000000..c2a200cf
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/MenuBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qml
new file mode 100644
index 00000000..e96f0500
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qml
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Window 2.2
+
+/*!
+ \qmltype AbstractCheckable
+ \inqmlmodule QtQuick.Controls
+ \brief An abstract representation of a checkable control with a label
+ \qmlabstract
+ \internal
+
+ A checkable control is one that has two states: checked (on) and
+ unchecked (off). AbstractCheckable encapsulates the basic behavior and
+ states that are required by checkable controls.
+
+ Examples of checkable controls are RadioButton and
+ CheckBox. CheckBox extends AbstractCheckable's behavior by adding a third
+ state: partially checked.
+*/
+
+Control {
+ id: abstractCheckable
+
+ /*!
+ Emitted whenever the control is clicked.
+ */
+ signal clicked
+
+ /*!
+ \qmlproperty bool AbstractCheckable::pressed
+
+ This property is \c true if the control is being pressed.
+ Set this property to manually invoke a mouse click.
+ */
+ property alias pressed: mouseArea.effectivePressed
+
+ /*! \qmlproperty bool AbstractCheckcable::hovered
+
+ This property indicates whether the control is being hovered.
+ */
+ readonly property alias hovered: mouseArea.containsMouse
+
+ /*!
+ This property is \c true if the control is checked.
+ */
+ property bool checked: false
+ Accessible.checked: checked
+ Accessible.checkable: true
+
+ /*!
+ This property is \c true if the control takes the focus when it is
+ pressed; \l{QQuickItem::forceActiveFocus()}{forceActiveFocus()} will be
+ called on the control.
+ */
+ property bool activeFocusOnPress: false
+
+ /*!
+ This property stores the ExclusiveGroup that the control belongs to.
+ */
+ property ExclusiveGroup exclusiveGroup: null
+
+ /*!
+ This property holds the text that the label should display.
+ */
+ property string text
+
+ /*!
+ This property holds the button tooltip.
+
+ \since QtQuick.Controls 1.7
+ */
+ property string tooltip
+ Accessible.description: tooltip
+
+ /*! \internal */
+ property var __cycleStatesHandler: cycleRadioButtonStates
+
+ activeFocusOnTab: true
+
+ MouseArea {
+ id: mouseArea
+ focus: true
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ enabled: !keyPressed
+
+ property bool keyPressed: false
+ property bool effectivePressed: pressed && containsMouse || keyPressed
+
+ onClicked: abstractCheckable.clicked();
+
+ onPressed: if (activeFocusOnPress) forceActiveFocus();
+
+ onExited: Tooltip.hideText()
+ onCanceled: Tooltip.hideText()
+
+ onReleased: {
+ if (containsMouse && (!exclusiveGroup || !checked))
+ __cycleStatesHandler();
+ }
+
+ Timer {
+ interval: 1000
+ running: mouseArea.containsMouse && !pressed && tooltip.length && mouseArea.Window.visibility !== Window.Hidden
+ onTriggered: Tooltip.showText(mouseArea, Qt.point(mouseArea.mouseX, mouseArea.mouseY), tooltip)
+ }
+ }
+
+ /*! \internal */
+ onExclusiveGroupChanged: {
+ if (exclusiveGroup)
+ exclusiveGroup.bindCheckable(abstractCheckable)
+ }
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && !mouseArea.pressed)
+ mouseArea.keyPressed = true;
+ }
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && mouseArea.keyPressed) {
+ mouseArea.keyPressed = false;
+ if (!exclusiveGroup || !checked)
+ __cycleStatesHandler();
+ clicked();
+ }
+ }
+
+ Action {
+ // handle mnemonic
+ text: abstractCheckable.text
+ onTriggered: {
+ if (!abstractCheckable.exclusiveGroup || !abstractCheckable.checked)
+ abstractCheckable.__cycleStatesHandler();
+ abstractCheckable.clicked();
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qmlc
new file mode 100644
index 00000000..2f984afd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/AbstractCheckable.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qml
new file mode 100644
index 00000000..d5c5d28f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qml
@@ -0,0 +1,241 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Window 2.2
+
+/*!
+ \qmltype BasicButton
+ \internal
+ \qmlabstract
+ \inqmlmodule QtQuick.Controls.Private
+*/
+
+Control {
+ id: button
+
+ /*! This signal is emitted when the button is clicked. */
+ signal clicked
+
+ /*! \qmlproperty bool BasicButton::pressed
+
+ This property holds whether the button is being pressed. */
+ readonly property alias pressed: button.__effectivePressed
+
+ /*! \qmlproperty bool BasicButton::hovered
+
+ This property indicates whether the control is being hovered.
+ */
+ readonly property alias hovered: behavior.containsMouse
+
+ /*! This property holds whether the button is checkable.
+
+ The default value is \c false. */
+ property bool checkable: false
+ Accessible.checkable: checkable
+
+ /*! This property holds whether the button is checked.
+
+ Only checkable buttons can be checked.
+
+ The default value is \c false. */
+ property bool checked: false
+ Accessible.checked: checked
+
+ /*! This property holds the ExclusiveGroup that the button belongs to.
+
+ The default value is \c null. */
+ property ExclusiveGroup exclusiveGroup: null
+
+ /*! This property holds the associated button action.
+
+ If a button has an action associated, the action defines the
+ button's properties like checked, text, tooltip etc.
+
+ When an action is set, it's still possible to override the \l text,
+ \l tooltip, \l iconSource, and \l iconName properties.
+
+ The default value is \c null. */
+ property Action action: null
+
+ /*! This property specifies whether the button should gain active focus when pressed.
+
+ The default value is \c false. */
+ property bool activeFocusOnPress: false
+
+ /*! This property holds the text shown on the button. If the button has no
+ text, the \l text property will be an empty string.
+
+ The default value is the empty string.
+ */
+ property string text: action ? action.text : ""
+
+ /*! This property holds the button tooltip. */
+ property string tooltip: action ? (action.tooltip || StyleHelpers.removeMnemonics(action.text)) : ""
+
+ /*! This property holds the icon shown on the button. If the button has no
+ icon, the iconSource property will be an empty string.
+
+ The default value is the empty string.
+ */
+ property url iconSource: action ? action.iconSource : ""
+
+ /*! The image label source as theme name.
+ When an icon from the platform icon theme is found, this takes
+ precedence over iconSource.
+
+ \include icons.qdocinc iconName
+ */
+ property string iconName: action ? action.iconName : ""
+
+ /*! \internal */
+ property string __position: "only"
+ /*! \internal */
+ readonly property bool __iconOverriden: button.action && (button.action.iconSource !== button.iconSource || button.action.iconName !== button.iconName)
+ /*! \internal */
+ property Action __action: action || ownAction
+ /*! \internal */
+ readonly property Action __iconAction: __iconOverriden ? ownAction : __action
+
+ /*! \internal */
+ onExclusiveGroupChanged: {
+ if (exclusiveGroup)
+ exclusiveGroup.bindCheckable(button)
+ }
+
+ Accessible.role: Accessible.Button
+ Accessible.description: tooltip
+
+ /*! \internal */
+ function accessiblePressAction() {
+ __action.trigger(button)
+ }
+
+ Action {
+ id: ownAction
+ enabled: button.enabled
+ iconSource: !button.action || __iconOverriden ? button.iconSource : ""
+ iconName: !button.action || __iconOverriden ? button.iconName : ""
+
+ // let ownAction handle mnemonic if and only if the button does
+ // not already have an action assigned to avoid ambiguous shortcuts
+ text: button.action ? "" : button.text
+ }
+
+ Connections {
+ target: __action
+ function onTriggered() { button.clicked() }
+ }
+
+ activeFocusOnTab: true
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && !behavior.pressed) {
+ behavior.keyPressed = true;
+ event.accepted = true;
+ }
+ }
+
+ onFocusChanged: if (!focus) behavior.keyPressed = false
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && behavior.keyPressed) {
+ behavior.keyPressed = false;
+ __action.trigger(button)
+ behavior.toggle()
+ event.accepted = true;
+ }
+ }
+
+ MouseArea {
+ id: behavior
+ property bool keyPressed: false
+ property bool effectivePressed: pressed && containsMouse || keyPressed
+
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ enabled: !keyPressed
+
+ function toggle() {
+ if (button.checkable && !button.action && !(button.checked && button.exclusiveGroup))
+ button.checked = !button.checked
+ }
+
+ onReleased: {
+ if (containsMouse) {
+ toggle()
+ __action.trigger(button)
+ }
+ }
+ onExited: Tooltip.hideText()
+ onCanceled: Tooltip.hideText()
+ onPressed: {
+ if (activeFocusOnPress)
+ button.forceActiveFocus()
+ }
+
+ Timer {
+ interval: 1000
+ running: behavior.containsMouse && !pressed && tooltip.length && behavior.Window.visibility !== Window.Hidden
+ onTriggered: Tooltip.showText(behavior, Qt.point(behavior.mouseX, behavior.mouseY), tooltip)
+ }
+ }
+
+ /*! \internal */
+ property var __behavior: behavior
+
+ /*! \internal */
+ property bool __effectivePressed: behavior.effectivePressed
+
+ states: [
+ State {
+ name: "boundAction"
+ when: action !== null
+ PropertyChanges {
+ target: button
+ enabled: action.enabled
+ checkable: action.checkable
+ checked: action.checked
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qmlc
new file mode 100644
index 00000000..b463219e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qml
new file mode 100644
index 00000000..cd6114a1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qml
@@ -0,0 +1,792 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+import QtQml 2.14 as Qml
+import QtQuick 2.6
+import QtQuick.Controls 1.5
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.2
+import QtQuick.Window 2.2
+
+/*!
+ \qmltype BasicTableView
+ \qmlabstract
+ \inqmlmodule QtQuick.Controls.Private
+*/
+
+ScrollView {
+ id: root
+
+ /*! \qmlproperty bool BasicTableView::alternatingRowColors
+
+ This property is set to \c true if the view alternates the row color.
+ The default value is \c true.
+ */
+ property bool alternatingRowColors: true
+
+ /*! \qmlproperty bool BasicTableView::headerVisible
+
+ This property determines if the header is visible.
+ The default value is \c true.
+ */
+ property bool headerVisible: true
+
+ /*! \qmlproperty bool BasicTableView::backgroundVisible
+
+ This property determines if the background should be filled or not.
+
+ The default value is \c true.
+
+ \note The rowDelegate is not affected by this property
+ */
+ property alias backgroundVisible: colorRect.visible
+
+ /*! \qmlproperty Component BasicTableView::itemDelegate
+ \internal
+
+ Documentation differs between TableView and TreeView.
+ See qtquickcontrols-treeview.qdoc and qtquickcontrols-tableview.qdoc
+ */
+ property Component itemDelegate: __style ? __style.itemDelegate : null
+
+ /*! \qmlproperty Component BasicTableView::rowDelegate
+
+ This property defines a delegate to draw a row.
+
+ In the row delegate you have access to the following special properties:
+ \list
+ \li styleData.alternate - true when the row uses the alternate background color
+ \li styleData.selected - true when the row is currently selected
+ \li styleData.row - the index of the row
+ \li styleData.hasActiveFocus - true when the row has focus (since QtQuick.Controls 1.3)
+ \li styleData.pressed - true when the row is pressed (since QtQuick.Controls 1.3)
+ \endlist
+
+ \note For performance reasons, created delegates can be recycled
+ across multiple table rows. This implies that when you make use of implicit
+ properties such as \c styleData.row or \c model, these values can change
+ after the delegate has been constructed. This means that you should not assume
+ that content is fixed when \c Component.onCompleted is called, but instead rely on
+ bindings to such properties.
+ */
+ property Component rowDelegate: __style ? __style.rowDelegate : null
+
+ /*! \qmlproperty Component BasicTableView::headerDelegate
+
+ This property defines a delegate to draw a header.
+
+ In the header delegate you have access to the following special properties:
+ \list
+ \li styleData.value - the value or text for this item
+ \li styleData.column - the index of the column
+ \li styleData.pressed - true when the column is being pressed
+ \li styleData.containsMouse - true when the column is under the mouse
+ \li styleData.textAlignment - the horizontal text alignment of the column (since QtQuickControls 1.1)
+ \endlist
+ */
+ property Component headerDelegate: __style ? __style.headerDelegate : null
+
+ /*! \qmlproperty int BasicTableView::sortIndicatorColumn
+
+ Index of the current sort column.
+ The default value is \c {0}.
+ */
+ property int sortIndicatorColumn
+
+ /*! \qmlproperty bool BasicTableView::sortIndicatorVisible
+
+ This property shows or hides the sort indicator
+ The default value is \c false.
+ \note The view itself does not sort the data.
+ */
+ property bool sortIndicatorVisible: false
+
+ /*! \qmlproperty enumeration BasicTableView::sortIndicatorOrder
+
+ This sets the sorting order of the sort indicator
+ The allowed values are:
+ \list
+ \li Qt.AscendingOrder - the default
+ \li Qt.DescendingOrder
+ \endlist
+ */
+ property int sortIndicatorOrder: Qt.AscendingOrder
+
+ /*! \qmlproperty Component BasicTableView::contentHeader
+ This is the content header of the view.
+ */
+ property alias contentHeader: listView.header
+
+ /*! \qmlproperty Component BasicTableView::contentFooter
+ This is the content footer of the view.
+ */
+ property alias contentFooter: listView.footer
+
+ /*! \qmlproperty int BasicTableView::columnCount
+ The current number of columns
+ */
+ readonly property alias columnCount: columnModel.count
+
+ /*! \qmlpropertygroup BasicTableView::section
+ \internal
+ \qmlproperty string BasicTableView::section.property
+ \qmlproperty enumeration BasicTableView::section.criteria
+ \qmlproperty Component BasicTableView::section.delegate
+ \qmlproperty enumeration BasicTableView::section.labelPositioning
+
+ Moved to the qdoc files to keep the grouped property layout.
+ See qtquickcontrols-treeview.qdoc and qtquickcontrols-tableview.qdoc
+ */
+ property alias section: listView.section
+
+ /*!
+ \qmlproperty enumeration BasicTableView::selectionMode
+ \since QtQuick.Controls 1.1
+
+ This enum indicates how the view responds to user selections:
+
+ The possible modes are:
+
+ \list
+
+ \li SelectionMode.NoSelection - Items cannot be selected.
+
+ \li SelectionMode.SingleSelection - When the user selects an item,
+ any already-selected item becomes unselected, and the user cannot
+ unselect the selected item. (Default)
+
+ \li SelectionMode.MultiSelection - When the user selects an item in the usual way,
+ the selection status of that item is toggled and the other items are left alone.
+
+ \li SelectionMode.ExtendedSelection - When the user selects an item in the usual way,
+ the selection is cleared and the new item selected. However, if the user presses the
+ Ctrl key when clicking on an item, the clicked item gets toggled and all other items
+ are left untouched. If the user presses the Shift key while clicking
+ on an item, all items between the current item and the clicked item are selected or unselected,
+ depending on the state of the clicked item. Multiple items can be selected by dragging the
+ mouse over them.
+
+ \li SelectionMode.ContiguousSelection - When the user selects an item in the usual way,
+ the selection is cleared and the new item selected. However, if the user presses the Shift key while
+ clicking on an item, all items between the current item and the clicked item are selected.
+
+ \endlist
+ */
+ property int selectionMode: SelectionMode.SingleSelection
+
+ /*!
+ \qmlmethod TableViewColumn BasicTableView::addColumn(object column)
+
+ Adds a \a column and returns the added column.
+
+ The \a column argument can be an instance of TableViewColumn,
+ or a Component. The component has to contain a TableViewColumn.
+ Otherwise \c null is returned.
+ */
+ function addColumn(column) {
+ return insertColumn(columnCount, column)
+ }
+
+ /*!
+ \qmlmethod TableViewColumn BasicTableView::insertColumn(int index, object column)
+
+ Inserts a \a column at the given \a index and returns the inserted column.
+
+ The \a column argument can be an instance of TableViewColumn,
+ or a Component. The component has to contain a TableViewColumn.
+ Otherwise \c null is returned.
+ */
+ function insertColumn(index, column) {
+ if (__isTreeView && index === 0 && columnCount > 0) {
+ console.warn(__viewTypeName + "::insertColumn(): Can't replace column 0")
+ return null
+ }
+ var object = column
+ if (typeof column['createObject'] === 'function') {
+ object = column.createObject(root)
+ } else if (object.__view) {
+ console.warn(__viewTypeName + "::insertColumn(): you cannot add a column to multiple views")
+ return null
+ }
+ if (index >= 0 && index <= columnCount && object.accessibleRole === Accessible.ColumnHeader) {
+ object.__view = root
+ columnModel.insert(index, {columnItem: object})
+ if (root.__columns[index] !== object) {
+ // The new column needs to be put into __columns at the specified index
+ // so the list needs to be recreated to be correct
+ var arr = []
+ for (var i = 0; i < index; ++i)
+ arr.push(root.__columns[i])
+ arr.push(object)
+ for (i = index; i < root.__columns.length; ++i)
+ arr.push(root.__columns[i])
+ root.__columns = arr
+ }
+ return object
+ }
+
+ if (object !== column)
+ object.destroy()
+ console.warn(__viewTypeName + "::insertColumn(): invalid argument")
+ return null
+ }
+
+ /*!
+ \qmlmethod void BasicTableView::removeColumn(int index)
+
+ Removes and destroys a column at the given \a index.
+ */
+ function removeColumn(index) {
+ if (index < 0 || index >= columnCount) {
+ console.warn(__viewTypeName + "::removeColumn(): invalid argument")
+ return
+ }
+ if (__isTreeView && index === 0) {
+ console.warn(__viewTypeName + "::removeColumn(): Can't remove column 0")
+ return
+ }
+ var column = columnModel.get(index).columnItem
+ columnModel.remove(index, 1)
+ column.destroy()
+ }
+
+ /*!
+ \qmlmethod void BasicTableView::moveColumn(int from, int to)
+
+ Moves a column \a from index \a to another.
+ */
+ function moveColumn(from, to) {
+ if (from < 0 || from >= columnCount || to < 0 || to >= columnCount) {
+ console.warn(__viewTypeName + "::moveColumn(): invalid argument")
+ return
+ }
+ if (__isTreeView && to === 0) {
+ console.warn(__viewTypeName + "::moveColumn(): Can't move column 0")
+ return
+ }
+ if (sortIndicatorColumn === from)
+ sortIndicatorColumn = to
+ columnModel.move(from, to, 1)
+ }
+
+ /*!
+ \qmlmethod TableViewColumn BasicTableView::getColumn(int index)
+
+ Returns the column at the given \a index
+ or \c null if the \a index is invalid.
+ */
+ function getColumn(index) {
+ if (index < 0 || index >= columnCount)
+ return null
+ return columnModel.get(index).columnItem
+ }
+
+ /*!
+ \qmlmethod void BasicTableView::resizeColumnsToContents()
+
+ Resizes all columns to ensure that the column contents and the headers will fit.
+ \since QtQuick.Controls 1.2
+ */
+ function resizeColumnsToContents () {
+ for (var i = 0; i < __columns.length; ++i) {
+ var col = getColumn(i)
+ var header = __listView.headerItem.headerRepeater.itemAt(i)
+ if (col) {
+ col.resizeToContents()
+ if (col.width < header.implicitWidth)
+ col.width = header.implicitWidth
+ }
+ }
+ }
+
+ // Internal stuff. Do not look
+
+ Component.onCompleted: {
+ for (var i = 0; i < __columns.length; ++i) {
+ var column = __columns[i]
+ if (column.accessibleRole === Accessible.ColumnHeader)
+ addColumn(column)
+ }
+ }
+
+ activeFocusOnTab: true
+
+ implicitWidth: 200
+ implicitHeight: 150
+
+ frameVisible: true
+ __scrollBarTopMargin: headerVisible && (listView.transientScrollBars || Qt.platform.os === "osx")
+ ? listView.headerItem.height : 0
+
+ /*! \internal
+ Use this to display user-friendly messages in TableView and TreeView common functions.
+ */
+ property string __viewTypeName
+
+ /*! \internal */
+ readonly property bool __isTreeView: __viewTypeName === "TreeView"
+
+ /*! \internal */
+ default property alias __columns: root.data
+
+ /*! \internal */
+ property alias __currentRowItem: listView.currentItem
+
+ /*! \internal
+ This property is forwarded to TableView::currentRow, but not to any TreeView property.
+ */
+ property alias __currentRow: listView.currentIndex
+
+ /*! \internal */
+ readonly property alias __listView: listView
+
+ /*! \internal */
+ property Component __itemDelegateLoader: null
+
+ /*! \internal
+ Allows to override the model property in cases like TreeView,
+ where we want to use a proxy/adaptor model between the user's model
+ and whatever a ListView can swallow.
+ */
+ property var __model
+
+ /*! \internal */
+ property bool __activateItemOnSingleClick: __style ? __style.activateItemOnSingleClick : false
+
+ /*! \internal */
+ property Item __mouseArea
+
+ ListView {
+ id: listView
+ focus: true
+ activeFocusOnTab: false
+ Keys.forwardTo: [__mouseArea]
+ anchors.fill: parent
+ contentWidth: headerItem.headerRow.width + listView.vScrollbarPadding
+ // ### FIXME Late configuration of the header item requires
+ // this binding to get the header visible after creation
+ contentY: -headerItem.height
+
+ currentIndex: -1
+ visible: columnCount > 0
+ interactive: Settings.hasTouchScreen
+ property var rowItemStack: [] // Used as a cache for rowDelegates
+
+ readonly property bool transientScrollBars: __style && !!__style.transientScrollBars
+ readonly property real vScrollbarPadding: __scroller.verticalScrollBar.visible
+ && !transientScrollBars && Qt.platform.os === "osx" ?
+ __verticalScrollBar.width + __scroller.scrollBarSpacing + root.__style.padding.right : 0
+
+ Qml.Binding {
+ // On Mac, we reserve the vSB space in the contentItem because the vSB should
+ // appear under the header. Unfortunately, the ListView header won't expand
+ // beyond the ListView's boundaries, that's why we need to ressort to this.
+ target: root.__scroller
+ when: Qt.platform.os === "osx"
+ property: "verticalScrollbarOffset"
+ value: 0
+ restoreMode: Binding.RestoreBinding
+ }
+
+ function incrementCurrentIndexBlocking() {
+ var oldIndex = __listView.currentIndex
+ __scroller.blockUpdates = true;
+ incrementCurrentIndex();
+ __scroller.blockUpdates = false;
+ return oldIndex !== __listView.currentIndex
+ }
+
+ function decrementCurrentIndexBlocking() {
+ var oldIndex = __listView.currentIndex
+ __scroller.blockUpdates = true;
+ decrementCurrentIndex();
+ __scroller.blockUpdates = false;
+ return oldIndex !== __listView.currentIndex
+ }
+
+ function scrollIfNeeded(key) {
+ var diff = key === Qt.Key_PageDown ? height :
+ key === Qt.Key_PageUp ? -height : 0
+ if (diff !== 0)
+ __verticalScrollBar.value += diff
+ }
+
+ SystemPalette {
+ id: palette
+ colorGroup: enabled ? SystemPalette.Active : SystemPalette.Disabled
+ }
+
+ Rectangle {
+ id: colorRect
+ parent: viewport
+ anchors.fill: parent
+ color: __style ? __style.backgroundColor : palette.base
+ z: -2
+ }
+
+ // Fills extra rows with alternate color
+ Column {
+ id: rowfiller
+ Loader {
+ id: rowSizeItem
+ sourceComponent: root.rowDelegate
+ visible: false
+ property QtObject styleData: QtObject {
+ property bool alternate: false
+ property bool selected: false
+ property bool hasActiveFocus: false
+ property bool pressed: false
+ }
+ }
+ property int rowHeight: Math.floor(rowSizeItem.implicitHeight)
+ property int paddedRowCount: rowHeight != 0 ? height/rowHeight : 0
+
+ y: listView.contentHeight - listView.contentY + listView.originY
+ width: parent.width
+ visible: alternatingRowColors
+ height: listView.model && listView.model.count ? (viewport.height - listView.contentHeight) : 0
+ Repeater {
+ model: visible ? parent.paddedRowCount : 0
+ Loader {
+ width: rowfiller.width
+ height: rowfiller.rowHeight
+ sourceComponent: root.rowDelegate
+ property QtObject styleData: QtObject {
+ readonly property bool alternate: (index + __listView.count) % 2 === 1
+ readonly property bool selected: false
+ readonly property bool hasActiveFocus: false
+ readonly property bool pressed: false
+ }
+ readonly property var model: null
+ readonly property var modelData: null
+ }
+ }
+ }
+
+ ListModel {
+ id: columnModel
+ }
+
+ highlightFollowsCurrentItem: true
+ model: root.__model
+
+ delegate: FocusScope {
+ id: rowItemContainer
+
+ activeFocusOnTab: false
+ z: rowItem.activeFocus ? 0.7 : rowItem.itemSelected ? 0.5 : 0
+
+ property Item rowItem
+ // We recycle instantiated row items to speed up list scrolling
+
+ Component.onDestruction: {
+ // move the rowItem back in cache
+ if (rowItem) {
+ rowItem.visible = false;
+ rowItem.parent = null;
+ rowItem.rowIndex = -1;
+ listView.rowItemStack.push(rowItem); // return rowItem to cache
+ }
+ }
+
+ Component.onCompleted: {
+ // retrieve row item from cache
+ if (listView.rowItemStack.length > 0)
+ rowItem = listView.rowItemStack.pop();
+ else
+ rowItem = rowComponent.createObject(listView);
+
+ // Bind container to item size
+ rowItemContainer.width = Qt.binding( function() { return rowItem.width });
+ rowItemContainer.height = Qt.binding( function() { return rowItem.height });
+
+ // Reassign row-specific bindings
+ rowItem.rowIndex = Qt.binding( function() { return model.index });
+ rowItem.itemModelData = Qt.binding( function() { return typeof modelData === "undefined" ? null : modelData });
+ rowItem.itemModel = Qt.binding( function() { return model });
+ rowItem.parent = rowItemContainer;
+ rowItem.visible = true;
+ }
+ }
+
+ Component {
+ id: rowComponent
+
+ FocusScope {
+ id: rowitem
+ visible: false
+
+ property int rowIndex
+ property var itemModelData
+ property var itemModel
+ property bool itemSelected: __mouseArea.selected(rowIndex)
+ property bool alternate: alternatingRowColors && rowIndex % 2 === 1
+ readonly property color itemTextColor: itemSelected ? __style.highlightedTextColor : __style.textColor
+ property Item branchDecoration: null
+
+ width: itemrow.width
+ height: rowstyle.height
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ listView.currentIndex = rowIndex
+ }
+
+ Loader {
+ id: rowstyle
+ // row delegate
+ sourceComponent: rowitem.itemModel !== undefined ? root.rowDelegate : null
+ // Row fills the view width regardless of item size
+ // But scrollbar should not adjust to it
+ height: item ? item.height : 16
+ width: parent.width + __horizontalScrollBar.width
+ x: listView.contentX
+
+ // these properties are exposed to the row delegate
+ // Note: these properties should be mirrored in the row filler as well
+ property QtObject styleData: QtObject {
+ readonly property int row: rowitem.rowIndex
+ readonly property bool alternate: rowitem.alternate
+ readonly property bool selected: rowitem.itemSelected
+ readonly property bool hasActiveFocus: rowitem.activeFocus
+ readonly property bool pressed: rowitem.rowIndex === __mouseArea.pressedRow
+ }
+ readonly property var model: rowitem.itemModel
+ readonly property var modelData: rowitem.itemModelData
+ }
+ Row {
+ id: itemrow
+ height: parent.height
+ Repeater {
+ model: columnModel
+
+ delegate: __itemDelegateLoader
+
+ onItemAdded: {
+ var columnItem = columnModel.get(index).columnItem
+ item.__rowItem = rowitem
+ item.__column = columnItem
+ }
+ }
+ }
+ }
+ }
+
+ headerPositioning: ListView.OverlayHeader
+ header: Item {
+ id: tableHeader
+ visible: headerVisible
+ width: Math.max(headerRow.width + listView.vScrollbarPadding, root.viewport.width)
+ height: visible ? headerRow.height : 0
+
+ property alias headerRow: row
+ property alias headerRepeater: repeater
+ Row {
+ id: row
+
+ Repeater {
+ id: repeater
+
+ property int targetIndex: -1
+ property int dragIndex: -1
+
+ model: columnModel
+
+ delegate: Item {
+ id: headerRowDelegate
+ readonly property int column: index
+ z:-index
+ width: modelData.width
+ implicitWidth: columnCount === 1 ? viewport.width + __verticalScrollBar.width : headerStyle.implicitWidth
+ visible: modelData.visible
+ height: headerStyle.height
+
+ readonly property bool treeViewMovable: !__isTreeView || index > 0
+
+ Loader {
+ id: headerStyle
+ sourceComponent: root.headerDelegate
+ width: parent.width
+ property QtObject styleData: QtObject {
+ readonly property string value: modelData.title
+ readonly property bool pressed: headerClickArea.pressed
+ readonly property bool containsMouse: headerClickArea.containsMouse
+ readonly property int column: index
+ readonly property int textAlignment: modelData.horizontalAlignment
+ readonly property bool resizable: modelData.resizable
+ }
+ }
+
+ Rectangle{
+ id: targetmark
+ width: parent.width
+ height:parent.height
+ opacity: (treeViewMovable && index === repeater.targetIndex && repeater.targetIndex !== repeater.dragIndex) ? 0.5 : 0
+ Behavior on opacity { NumberAnimation { duration: 160 } }
+ color: palette.highlight
+ visible: modelData.movable
+ }
+
+ MouseArea{
+ id: headerClickArea
+ drag.axis: Qt.YAxis
+ hoverEnabled: Settings.hoverEnabled
+ anchors.fill: parent
+ onClicked: {
+ if (sortIndicatorColumn === index)
+ sortIndicatorOrder = sortIndicatorOrder === Qt.AscendingOrder ? Qt.DescendingOrder : Qt.AscendingOrder
+ sortIndicatorColumn = index
+ }
+ // Here we handle moving header sections
+ // NOTE: the direction is different from the master branch
+ // so this indicates that I am using an invalid assumption on item ordering
+ onPositionChanged: {
+ if (drag.active && modelData.movable && pressed && columnCount > 1) { // only do this while dragging
+ for (var h = columnCount-1 ; h >= 0 ; --h) {
+ if (headerRow.children[h].visible && drag.target.x + headerRowDelegate.width/2 > headerRow.children[h].x) {
+ repeater.targetIndex = h
+ break
+ }
+ }
+ }
+ }
+
+ onPressed: {
+ repeater.dragIndex = index
+ }
+
+ onReleased: {
+ if (repeater.targetIndex >= 0 && repeater.targetIndex !== index ) {
+ var targetColumn = columnModel.get(repeater.targetIndex).columnItem
+ if (targetColumn.movable && (!__isTreeView || repeater.targetIndex > 0)) {
+ if (sortIndicatorColumn === index)
+ sortIndicatorColumn = repeater.targetIndex
+ columnModel.move(index, repeater.targetIndex, 1)
+ }
+ }
+ repeater.targetIndex = -1
+ repeater.dragIndex = -1
+ }
+ drag.target: treeViewMovable && modelData.movable && columnCount > 1 ? draghandle : null
+ }
+
+ Loader {
+ id: draghandle
+ property QtObject styleData: QtObject{
+ readonly property string value: modelData.title
+ readonly property bool pressed: headerClickArea.pressed
+ readonly property bool containsMouse: headerClickArea.containsMouse
+ readonly property int column: index
+ readonly property int textAlignment: modelData.horizontalAlignment
+ }
+ parent: tableHeader
+ x: __implicitX
+ property double __implicitX: headerRowDelegate.x
+ width: modelData.width
+ height: parent.height
+ sourceComponent: root.headerDelegate
+ visible: headerClickArea.pressed
+ onVisibleChanged: {
+ if (!visible)
+ x = Qt.binding(function () { return __implicitX })
+ }
+ opacity: 0.5
+ }
+
+
+ MouseArea {
+ id: headerResizeHandle
+ property int offset: 0
+ readonly property int minimumSize: 20
+ preventStealing: true
+ anchors.rightMargin: -width/2
+ width: Settings.hasTouchScreen ? Screen.pixelDensity * 3.5 : 16
+ height: parent.height
+ anchors.right: parent.right
+ enabled: modelData.resizable && columnCount > 0
+ onPositionChanged: {
+ var newHeaderWidth = modelData.width + (mouseX - offset)
+ modelData.width = Math.max(minimumSize, newHeaderWidth)
+ }
+
+ onDoubleClicked: getColumn(index).resizeToContents()
+ onPressedChanged: if (pressed) offset=mouseX
+ cursorShape: enabled && repeater.dragIndex==-1 ? Qt.SplitHCursor : Qt.ArrowCursor
+ }
+ }
+ }
+ }
+
+ Loader {
+ property QtObject styleData: QtObject{
+ readonly property string value: ""
+ readonly property bool pressed: false
+ readonly property bool containsMouse: false
+ readonly property int column: -1
+ readonly property int textAlignment: Text.AlignLeft
+ }
+
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.bottom: headerRow.bottom
+ sourceComponent: root.headerDelegate
+ readonly property real __remainingWidth: parent.width - headerRow.width
+ visible: __remainingWidth > 0
+ width: __remainingWidth
+ z:-1
+ }
+ }
+
+ function columnAt(offset) {
+ var item = listView.headerItem.headerRow.childAt(offset, 0)
+ return item ? item.column : -1
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qmlc
new file mode 100644
index 00000000..4367a364
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/BasicTableView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qml
new file mode 100644
index 00000000..40328a8b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+/*
+ CalendarHeaderModel contains a list of the days of a week,
+ according to a \l locale. The \l locale affects which day of the week
+ is first in the model.
+
+ The only role provided by the model is \c dayOfWeek, which is one of the
+ following JavaScript values:
+
+ \list
+ \li \c Locale.Sunday
+ \li \c Locale.Monday
+ \li \c Locale.Tuesday
+ \li \c Locale.Wednesday
+ \li \c Locale.Thursday
+ \li \c Locale.Friday
+ \li \c Locale.Saturday
+ \endlist
+ */
+
+ListModel {
+ id: root
+
+ /*
+ The locale that this model should be based on.
+ This affects which day of the week is first in the model.
+ */
+ property var locale
+
+ ListElement {
+ dayOfWeek: Locale.Sunday
+ }
+ ListElement {
+ dayOfWeek: Locale.Monday
+ }
+ ListElement {
+ dayOfWeek: Locale.Tuesday
+ }
+ ListElement {
+ dayOfWeek: Locale.Wednesday
+ }
+ ListElement {
+ dayOfWeek: Locale.Thursday
+ }
+ ListElement {
+ dayOfWeek: Locale.Friday
+ }
+ ListElement {
+ dayOfWeek: Locale.Saturday
+ }
+
+ Component.onCompleted: updateFirstDayOfWeek()
+ onLocaleChanged: updateFirstDayOfWeek()
+
+ function updateFirstDayOfWeek() {
+ var daysOfWeek = [Locale.Sunday, Locale.Monday, Locale.Tuesday,
+ Locale.Wednesday, Locale.Thursday, Locale.Friday, Locale.Saturday];
+ var firstDayOfWeek = root.locale.firstDayOfWeek;
+
+ var shifted = daysOfWeek.splice(firstDayOfWeek, daysOfWeek.length - firstDayOfWeek);
+ daysOfWeek = shifted.concat(daysOfWeek)
+
+ if (firstDayOfWeek !== root.get(0).dayOfWeek) {
+ for (var i = 0; i < daysOfWeek.length; ++i) {
+ root.setProperty(i, "dayOfWeek", daysOfWeek[i]);
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qmlc
new file mode 100644
index 00000000..dba05b5c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarHeaderModel.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.js b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.js
new file mode 100644
index 00000000..9a93d8da
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.js
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+.pragma library
+
+var daysInAWeek = 7;
+var monthsInAYear = 12;
+
+// Not the number of weeks per month, but the number of weeks that are
+// shown on a typical calendar.
+var weeksOnACalendarMonth = 6;
+
+// Can't create year 1 directly...
+var minimumCalendarDate = new Date(-1, 0, 1);
+minimumCalendarDate.setFullYear(minimumCalendarDate.getFullYear() + 2);
+var maximumCalendarDate = new Date(275759, 9, 25);
+
+function daysInMonth(date) {
+ // Passing 0 as the day will give us the previous month, which will be
+ // date.getMonth() since we added 1 to it.
+ return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
+}
+
+/*!
+ Returns a copy of \a date with its month set to \a month, keeping the same
+ day if possible. Does not modify \a date.
+*/
+function setMonth(date, month) {
+ var oldDay = date.getDate();
+ var newDate = new Date(date);
+ // Set the day first, because setting the month could cause it to skip ahead
+ // a month if the day is larger than the latest day in that month.
+ newDate.setDate(1);
+ newDate.setMonth(month);
+ // We'd like to have the previous day still selected when we change
+ // months, but it might not be possible, so use the smallest of the two.
+ newDate.setDate(Math.min(oldDay, daysInMonth(newDate)));
+ return newDate;
+}
+
+/*!
+ Returns the cell rectangle for the cell at the given \a index, assuming
+ that the grid has a number of columns equal to \a columns and rows
+ equal to \a rows, with an available width of \a availableWidth and height
+ of \a availableHeight.
+
+ If \a gridLineWidth is greater than \c 0, the cell rectangle will be
+ calculated under the assumption that there is a grid between the cells:
+
+ 31 | 1 | 2 | 3 | 4 | 5 | 6
+ --------------------------------
+ 7 | 8 | 9 | 10 | 11 | 12 | 13
+ --------------------------------
+ 14 | 15 | 16 | 17 | 18 | 19 | 20
+ --------------------------------
+ 21 | 22 | 23 | 24 | 25 | 26 | 27
+ --------------------------------
+ 28 | 29 | 30 | 31 | 1 | 2 | 3
+ --------------------------------
+ 4 | 5 | 6 | 7 | 8 | 9 | 10
+*/
+function cellRectAt(index, columns, rows, availableWidth, availableHeight, gridLineWidth) {
+ var col = Math.floor(index % columns);
+ var row = Math.floor(index / columns);
+
+ var availableWidthMinusGridLines = availableWidth - ((columns - 1) * gridLineWidth);
+ var availableHeightMinusGridLines = availableHeight - ((rows - 1) * gridLineWidth);
+ var remainingHorizontalSpace = Math.floor(availableWidthMinusGridLines % columns);
+ var remainingVerticalSpace = Math.floor(availableHeightMinusGridLines % rows);
+ var baseCellWidth = Math.floor(availableWidthMinusGridLines / columns);
+ var baseCellHeight = Math.floor(availableHeightMinusGridLines / rows);
+
+ var rect = Qt.rect(0, 0, 0, 0);
+
+ rect.x = baseCellWidth * col;
+ rect.width = baseCellWidth;
+ if (remainingHorizontalSpace > 0) {
+ if (col < remainingHorizontalSpace) {
+ ++rect.width;
+ }
+
+ // This cell's x position should be increased by 1 for every column above it.
+ rect.x += Math.min(remainingHorizontalSpace, col);
+ }
+
+ rect.y = baseCellHeight * row;
+ rect.height = baseCellHeight;
+ if (remainingVerticalSpace > 0) {
+ if (row < remainingVerticalSpace) {
+ ++rect.height;
+ }
+
+ // This cell's y position should be increased by 1 for every row above it.
+ rect.y += Math.min(remainingVerticalSpace, row);
+ }
+
+ rect.x += col * gridLineWidth;
+ rect.y += row * gridLineWidth;
+
+ return rect;
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.jsc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.jsc
new file mode 100644
index 00000000..2b0e7a92
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/CalendarUtils.jsc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qml
new file mode 100644
index 00000000..5f8b4d68
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qml
@@ -0,0 +1,252 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Item {
+ id: content
+
+ property Component menuItemDelegate
+ property Component scrollIndicatorStyle
+ property Component scrollerStyle
+ property var itemsModel
+ property int minWidth: 100
+ property real maxHeight: 800
+ readonly property bool mousePressed: hoverArea.pressed
+
+ signal triggered(var item)
+
+ function menuItemAt(index) {
+ list.currentIndex = index
+ return list.currentItem
+ }
+
+ width: Math.max(list.contentWidth, minWidth)
+ height: Math.min(list.contentHeight, fittedMaxHeight)
+
+ readonly property int currentIndex: __menu.__currentIndex
+ property Item currentItem: null
+ property int itemHeight: 23
+
+ Component.onCompleted: {
+ var children = list.contentItem.children
+ for (var i = 0; i < list.count; i++) {
+ var child = children[i]
+ if (child.visible && child.styleData.type === MenuItemType.Item) {
+ itemHeight = children[i].height
+ break
+ }
+ }
+ }
+
+ readonly property int fittingItems: Math.floor((maxHeight - downScroller.height) / itemHeight)
+ readonly property real fittedMaxHeight: itemHeight * fittingItems + downScroller.height
+ readonly property bool shouldUseScrollers: scrollView.style === emptyScrollerStyle && itemsModel.length > fittingItems
+ readonly property real upScrollerHeight: upScroller.visible ? upScroller.height : 0
+ readonly property real downScrollerHeight: downScroller.visible ? downScroller.height : 0
+ property var oldMousePos: undefined
+ property var openedSubmenu: null
+
+ function updateCurrentItem(mouse) {
+ var pos = mapToItem(list.contentItem, mouse.x, mouse.y)
+ var dx = 0
+ var dy = 0
+ var dist = 0
+ if (openedSubmenu && oldMousePos !== undefined) {
+ dx = mouse.x - oldMousePos.x
+ dy = mouse.y - oldMousePos.y
+ dist = Math.sqrt(dx * dx + dy * dy)
+ }
+ oldMousePos = mouse
+ if (openedSubmenu && dist > 5) {
+ var menuRect = __menu.__popupGeometry
+ var submenuRect = openedSubmenu.__popupGeometry
+ var angle = Math.atan2(dy, dx)
+ var ds = 0
+ if (submenuRect.x > menuRect.x) {
+ ds = menuRect.width - oldMousePos.x
+ } else {
+ angle = Math.PI - angle
+ ds = oldMousePos.x
+ }
+ var above = submenuRect.y - menuRect.y - oldMousePos.y
+ var below = submenuRect.height - above
+ var minAngle = Math.atan2(above, ds)
+ var maxAngle = Math.atan2(below, ds)
+ // This tests that the current mouse position is in
+ // the triangle defined by the previous mouse position
+ // and the submenu's top-left and bottom-left corners.
+ if (minAngle < angle && angle < maxAngle) {
+ sloppyTimer.start()
+ return
+ }
+ }
+
+ if (!currentItem || !currentItem.contains(Qt.point(pos.x - currentItem.x, pos.y - currentItem.y))) {
+ if (currentItem && !hoverArea.pressed
+ && currentItem.styleData.type === MenuItemType.Menu) {
+ currentItem.__closeSubMenu()
+ openedSubmenu = null
+ }
+ currentItem = list.itemAt(pos.x, pos.y)
+ if (currentItem) {
+ __menu.__currentIndex = currentItem.__menuItemIndex
+ if (currentItem.styleData.type === MenuItemType.Menu) {
+ showCurrentItemSubMenu(false)
+ }
+ } else {
+ __menu.__currentIndex = -1
+ }
+ }
+ }
+
+ function showCurrentItemSubMenu(immediately) {
+ if (!currentItem.__menuItem.__popupVisible) {
+ currentItem.__showSubMenu(immediately)
+ openedSubmenu = currentItem.__menuItem
+ }
+ }
+
+ Timer {
+ id: sloppyTimer
+ interval: 1000
+
+ // Stop timer as soon as we hover one of the submenu items
+ property int currentIndex: openedSubmenu ? openedSubmenu.__currentIndex : -1
+ onCurrentIndexChanged: if (currentIndex !== -1) stop()
+
+ onTriggered: {
+ if (openedSubmenu && openedSubmenu.__currentIndex === -1)
+ updateCurrentItem(oldMousePos)
+ }
+ }
+
+ Component {
+ id: emptyScrollerStyle
+ Style {
+ padding { left: 0; right: 0; top: 0; bottom: 0 }
+ property bool scrollToClickedPosition: false
+ property Component frame: Item { visible: false }
+ property Component corner: Item { visible: false }
+ property Component __scrollbar: Item { visible: false }
+ }
+ }
+
+ ScrollView {
+ id: scrollView
+ anchors {
+ fill: parent
+ topMargin: upScrollerHeight
+ bottomMargin: downScrollerHeight
+ }
+
+ style: scrollerStyle || emptyScrollerStyle
+ __wheelAreaScrollSpeed: itemHeight
+
+ ListView {
+ id: list
+ model: itemsModel
+ delegate: menuItemDelegate
+ snapMode: ListView.SnapToItem
+ boundsBehavior: Flickable.StopAtBounds
+ highlightFollowsCurrentItem: true
+ highlightMoveDuration: 0
+ }
+ }
+
+ MouseArea {
+ id: hoverArea
+ anchors.left: scrollView.left
+ width: scrollView.width - scrollView.__verticalScrollBar.width
+ height: parent.height
+
+ hoverEnabled: Settings.hoverEnabled
+ acceptedButtons: Qt.AllButtons
+
+ onPositionChanged: updateCurrentItem({ "x": mouse.x, "y": mouse.y })
+ onPressed: updateCurrentItem({ "x": mouse.x, "y": mouse.y })
+ onReleased: {
+ if (currentItem && currentItem.__menuItem.enabled) {
+ if (currentItem.styleData.type === MenuItemType.Menu) {
+ showCurrentItemSubMenu(true)
+ } else {
+ content.triggered(currentItem)
+ }
+ }
+ }
+ onExited: {
+ if (currentItem && !currentItem.__menuItem.__popupVisible) {
+ currentItem = null
+ __menu.__currentIndex = -1
+ }
+ }
+
+ MenuContentScroller {
+ id: upScroller
+ direction: Qt.UpArrow
+ visible: shouldUseScrollers && !list.atYBeginning
+ function scrollABit() { list.contentY -= itemHeight }
+ }
+
+ MenuContentScroller {
+ id: downScroller
+ direction: Qt.DownArrow
+ visible: shouldUseScrollers && !list.atYEnd
+ function scrollABit() { list.contentY += itemHeight }
+ }
+ }
+
+ Timer {
+ interval: 1
+ running: true
+ repeat: false
+ onTriggered: list.positionViewAtIndex(currentIndex, !scrollView.__style
+ ? ListView.Center : ListView.Beginning)
+ }
+
+ Qml.Binding {
+ target: scrollView.__verticalScrollBar
+ property: "singleStep"
+ value: itemHeight
+ restoreMode: Binding.RestoreBinding
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qmlc
new file mode 100644
index 00000000..d5ada9cb
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ColumnMenuContent.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qml
new file mode 100644
index 00000000..2c5b3728
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Layouts 1.1
+
+Item {
+ id: contentItem
+ property real minimumWidth: __calcMinimum('Width')
+ property real minimumHeight: __calcMinimum('Height')
+ property real maximumWidth: Number.POSITIVE_INFINITY
+ property real maximumHeight: Number.POSITIVE_INFINITY
+ implicitWidth: __calcImplicitWidth()
+ implicitHeight: __calcImplicitHeight()
+
+ /*! \internal */
+ property Item __layoutItem: contentItem.visibleChildren.length === 1 ? contentItem.visibleChildren[0] : null
+ /*! \internal */
+ property real __marginsWidth: __layoutItem ? __layoutItem.anchors.leftMargin + __layoutItem.anchors.rightMargin : 0
+ /*! \internal */
+ property real __marginsHeight: __layoutItem ? __layoutItem.anchors.topMargin + __layoutItem.anchors.bottomMargin : 0
+
+ /*! \internal */
+ property bool __noMinimumWidthGiven : false
+ /*! \internal */
+ property bool __noMinimumHeightGiven : false
+ /*! \internal */
+ property bool __noImplicitWidthGiven : false
+ /*! \internal */
+ property bool __noImplicitHeightGiven : false
+
+ function __calcImplicitWidth() {
+ if (__layoutItem && __layoutItem.anchors.fill)
+ return __calcImplicit('Width')
+ return contentItem.childrenRect.x + contentItem.childrenRect.width
+ }
+
+ function __calcImplicitHeight() {
+ if (__layoutItem && __layoutItem.anchors.fill)
+ return __calcImplicit('Height')
+ return contentItem.childrenRect.y + contentItem.childrenRect.height
+ }
+
+ function __calcImplicit(hw) {
+ var pref = __layoutItem.Layout['preferred' + hw]
+ if (pref < 0) {
+ pref = __layoutItem['implicit' + hw]
+ }
+ contentItem['__noImplicit' + hw + 'Given'] = (pref === 0 ? true : false)
+ pref += contentItem['__margins' + hw]
+ return pref
+ }
+
+ function __calcMinimum(hw) { // hw is 'Width' or 'Height'
+ return (__layoutItem && __layoutItem.anchors.fill) ? __calcMinMax('minimum', hw) : 0
+ }
+
+ function __calcMaximum(hw) { // hw is 'Width' or 'Height'
+ return (__layoutItem && __layoutItem.anchors.fill) ? __calcMinMax('maximum', hw) : Number.POSITIVE_INFINITY
+ }
+
+ function __calcMinMax(minMaxConstraint, hw) {
+ var attachedPropName = minMaxConstraint + hw
+ var extent = __layoutItem.Layout[attachedPropName]
+
+ if (minMaxConstraint === 'minimum')
+ contentItem['__noMinimum' + hw + 'Given'] = (extent === 0 ? true : false)
+
+ extent += contentItem['__margins' + hw]
+ return extent
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qmlc
new file mode 100644
index 00000000..d305adfd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ContentItem.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qml
new file mode 100644
index 00000000..182a1e99
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls.Styles 1.1
+
+/*!
+ \qmltype Control
+ \internal
+ \qmlabstract
+ \inqmlmodule QtQuick.Controls.Private
+*/
+FocusScope {
+ id: root
+
+ /*! \qmlproperty Component Control::style
+
+ The style Component for this control.
+ \sa {Qt Quick Controls Styles QML Types}
+
+ */
+ property Component style
+
+ /*! \internal */
+ property QtObject __style: styleLoader.item
+
+ /*! \internal */
+ property Item __panel: panelLoader.item
+
+ /*! \internal */
+ property var styleHints
+
+ implicitWidth: __panel ? __panel.implicitWidth: 0
+ implicitHeight: __panel ? __panel.implicitHeight: 0
+ baselineOffset: __panel ? __panel.baselineOffset: 0
+ activeFocusOnTab: false
+
+ /*! \internal */
+ property alias __styleData: styleLoader.styleData
+
+ Loader {
+ id: styleLoader
+ sourceComponent: style
+ property Item __control: root
+ property QtObject styleData: null
+ onStatusChanged: {
+ if (status === Loader.Error)
+ console.error("Failed to load Style for", root)
+ }
+ }
+
+ Loader {
+ id: panelLoader
+ anchors.fill: parent
+ sourceComponent: __style ? __style.panel : null
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qmlc
new file mode 100644
index 00000000..38270477
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Control.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qml
new file mode 100644
index 00000000..fde124ea
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qml
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Loader {
+ property Item control
+ property Item input
+ property Item cursorHandle
+ property Item selectionHandle
+ property Flickable flickable
+ property Component defaultMenu: item && item.defaultMenu ? item.defaultMenu : null
+ property QtObject menuInstance: null
+ property MouseArea mouseArea
+ property QtObject style: __style
+
+ Connections {
+ target: control
+ function onMenuChanged() {
+ if (menuInstance !== null) {
+ menuInstance.destroy()
+ menuInstance = null
+ }
+ }
+ }
+
+ function getMenuInstance()
+ {
+ // Lazy load menu when first requested
+ if (!menuInstance && control.menu) {
+ menuInstance = control.menu.createObject(input);
+ }
+ return menuInstance;
+ }
+
+ function syncStyle() {
+ if (!style)
+ return;
+
+ if (style.__editMenu)
+ sourceComponent = style.__editMenu;
+ else {
+ // todo: get ios/android/base menus from style as well
+ source = (Qt.resolvedUrl(Qt.platform.os === "ios" ? ""
+ : Qt.platform.os === "android" ? "" : "EditMenu_base.qml"));
+ }
+ }
+ onStyleChanged: syncStyle();
+ Component.onCompleted: syncStyle();
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qmlc
new file mode 100644
index 00000000..e60c5cd6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qml
new file mode 100644
index 00000000..346eba2d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qml
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Item {
+ id: editMenuBase
+ anchors.fill: parent
+
+ Component {
+ id: undoAction
+ Action {
+ text: qsTr("&Undo")
+ shortcut: StandardKey.Undo
+ iconName: "edit-undo"
+ enabled: input.canUndo
+ onTriggered: input.undo()
+ }
+ }
+
+ Component {
+ id: redoAction
+ Action {
+ text: qsTr("&Redo")
+ shortcut: StandardKey.Redo
+ iconName: "edit-redo"
+ enabled: input.canRedo
+ onTriggered: input.redo()
+ }
+ }
+
+ Component {
+ id: cutAction
+ Action {
+ text: qsTr("Cu&t")
+ shortcut: StandardKey.Cut
+ iconName: "edit-cut"
+ enabled: !input.readOnly && selectionStart !== selectionEnd
+ onTriggered: {
+ input.cut();
+ input.select(input.cursorPosition, input.cursorPosition);
+ }
+ }
+ }
+
+ Component {
+ id: copyAction
+ Action {
+ text: qsTr("&Copy")
+ shortcut: StandardKey.Copy
+ iconName: "edit-copy"
+ enabled: input.selectionStart !== input.selectionEnd
+ onTriggered: {
+ input.copy();
+ input.select(input.cursorPosition, input.cursorPosition);
+ }
+ }
+ }
+
+ Component {
+ id: pasteAction
+ Action {
+ text: qsTr("&Paste")
+ shortcut: StandardKey.Paste
+ iconName: "edit-paste"
+ enabled: input.canPaste
+ onTriggered: input.paste()
+ }
+ }
+
+ Component {
+ id: deleteAction
+ Action {
+ text: qsTr("Delete")
+ shortcut: StandardKey.Delete
+ iconName: "edit-delete"
+ enabled: !input.readOnly && input.selectionStart !== input.selectionEnd
+ onTriggered: input.remove(input.selectionStart, input.selectionEnd)
+ }
+ }
+
+ Component {
+ id: clearAction
+ Action {
+ text: qsTr("Clear")
+ shortcut: StandardKey.DeleteCompleteLine
+ iconName: "edit-clear"
+ enabled: !input.readOnly && input.length > 0
+ onTriggered: input.remove(0, input.length)
+ }
+ }
+
+ Component {
+ id: selectAllAction
+ Action {
+ text: qsTr("Select All")
+ shortcut: StandardKey.SelectAll
+ enabled: !(input.selectionStart === 0 && input.selectionEnd === input.length)
+ onTriggered: input.selectAll()
+ }
+ }
+
+ property Component defaultMenu: Menu {
+ MenuItem { action: undoAction.createObject(editMenuBase) }
+ MenuItem { action: redoAction.createObject(editMenuBase) }
+ MenuSeparator {}
+ MenuItem { action: cutAction.createObject(editMenuBase) }
+ MenuItem { action: copyAction.createObject(editMenuBase) }
+ MenuItem { action: pasteAction.createObject(editMenuBase) }
+ MenuItem { action: deleteAction.createObject(editMenuBase) }
+ MenuItem { action: clearAction.createObject(editMenuBase) }
+ MenuSeparator {}
+ MenuItem { action: selectAllAction.createObject(editMenuBase) }
+ }
+
+ Connections {
+ target: mouseArea
+
+ function onClicked() {
+ if (input.selectionStart === input.selectionEnd) {
+ var cursorPos = input.positionAt(mouse.x, mouse.y)
+ input.moveHandles(cursorPos, cursorPos)
+ }
+
+ input.activate()
+
+ if (control.menu) {
+ var menu = getMenuInstance();
+ menu.__dismissAndDestroy();
+ var menuPos = mapToItem(null, mouse.x, mouse.y)
+ menu.__popup(Qt.rect(menuPos.x, menuPos.y, 0, 0), -1, MenuPrivate.EditMenu);
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qmlc
new file mode 100644
index 00000000..270ae19c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/EditMenu_base.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qml
new file mode 100644
index 00000000..1a8b7a81
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qml
@@ -0,0 +1,330 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+
+Item {
+ id: rootItem
+ property variant source
+ property real spread: 0.0
+ property real blur: 0.0
+ property color color: "white"
+ property bool transparentBorder: false
+ property bool cached: false
+
+ SourceProxy {
+ id: sourceProxy
+ input: rootItem.source
+ }
+
+ ShaderEffectSource {
+ id: cacheItem
+ anchors.fill: shaderItem
+ visible: rootItem.cached
+ smooth: true
+ sourceItem: shaderItem
+ live: true
+ hideSource: visible
+ }
+
+ property string __internalBlurVertexShader: "qrc:/QtQuick/Controls/Shaders/blur.vert"
+
+ property string __internalBlurFragmentShader: "qrc:/QtQuick/Controls/Shaders/blur.frag"
+
+ ShaderEffect {
+ id: level0
+ property variant source: sourceProxy.output
+ anchors.fill: parent
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffectSource {
+ id: level1
+ width: Math.ceil(shaderItem.width / 32) * 32
+ height: Math.ceil(shaderItem.height / 32) * 32
+ sourceItem: level0
+ hideSource: rootItem.visible
+ sourceRect: transparentBorder ? Qt.rect(-64, -64, shaderItem.width, shaderItem.height) : Qt.rect(0,0,0,0)
+ smooth: true
+ visible: false
+ }
+
+ ShaderEffect {
+ id: effect1
+ property variant source: level1
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level2
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level2
+ width: level1.width / 2
+ height: level1.height / 2
+ sourceItem: effect1
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect2
+ property variant source: level2
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level3
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level3
+ width: level2.width / 2
+ height: level2.height / 2
+ sourceItem: effect2
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect3
+ property variant source: level3
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level4
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level4
+ width: level3.width / 2
+ height: level3.height / 2
+ sourceItem: effect3
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect4
+ property variant source: level4
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level5
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level5
+ width: level4.width / 2
+ height: level4.height / 2
+ sourceItem: effect4
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ ShaderEffect {
+ id: effect5
+ property variant source: level5
+ property real yStep: 1/height
+ property real xStep: 1/width
+ anchors.fill: level6
+ visible: false
+ smooth: true
+ vertexShader: __internalBlurVertexShader
+ fragmentShader: __internalBlurFragmentShader
+ }
+
+ ShaderEffectSource {
+ id: level6
+ width: level5.width / 2
+ height: level5.height / 2
+ sourceItem: effect5
+ hideSource: rootItem.visible
+ visible: false
+ smooth: true
+ }
+
+ Item {
+ id: dummysource
+ width: 1
+ height: 1
+ visible: false
+ }
+
+ ShaderEffectSource {
+ id: dummy
+ width: 1
+ height: 1
+ sourceItem: dummysource
+ visible: false
+ smooth: false
+ live: false
+ }
+
+ ShaderEffect {
+ id: shaderItem
+ x: transparentBorder ? -64 : 0
+ y: transparentBorder ? -64 : 0
+ width: transparentBorder ? parent.width + 128 : parent.width
+ height: transparentBorder ? parent.height + 128 : parent.height
+
+ property variant source1: level1
+ property variant source2: level2
+ property variant source3: level3
+ property variant source4: level4
+ property variant source5: level5
+ property variant source6: level6
+ property real lod: rootItem.blur
+
+ property real weight1;
+ property real weight2;
+ property real weight3;
+ property real weight4;
+ property real weight5;
+ property real weight6;
+
+ property real spread: 1.0 - (rootItem.spread * 0.98)
+ property alias color: rootItem.color
+
+ function weight(v) {
+ if (v <= 0.0)
+ return 1
+ if (v >= 0.5)
+ return 0
+
+ return 1.0 - v / 0.5
+ }
+
+ function calculateWeights() {
+
+ var w1 = weight(Math.abs(lod - 0.100))
+ var w2 = weight(Math.abs(lod - 0.300))
+ var w3 = weight(Math.abs(lod - 0.500))
+ var w4 = weight(Math.abs(lod - 0.700))
+ var w5 = weight(Math.abs(lod - 0.900))
+ var w6 = weight(Math.abs(lod - 1.100))
+
+ var sum = w1 + w2 + w3 + w4 + w5 + w6;
+ weight1 = w1 / sum;
+ weight2 = w2 / sum;
+ weight3 = w3 / sum;
+ weight4 = w4 / sum;
+ weight5 = w5 / sum;
+ weight6 = w6 / sum;
+
+ upateSources()
+ }
+
+ function upateSources() {
+ var sources = new Array();
+ var weights = new Array();
+
+ if (weight1 > 0) {
+ sources.push(level1)
+ weights.push(weight1)
+ }
+
+ if (weight2 > 0) {
+ sources.push(level2)
+ weights.push(weight2)
+ }
+
+ if (weight3 > 0) {
+ sources.push(level3)
+ weights.push(weight3)
+ }
+
+ if (weight4 > 0) {
+ sources.push(level4)
+ weights.push(weight4)
+ }
+
+ if (weight5 > 0) {
+ sources.push(level5)
+ weights.push(weight5)
+ }
+
+ if (weight6 > 0) {
+ sources.push(level6)
+ weights.push(weight6)
+ }
+
+ for (var j = sources.length; j < 6; j++) {
+ sources.push(dummy)
+ weights.push(0.0)
+ }
+
+ source1 = sources[0]
+ source2 = sources[1]
+ source3 = sources[2]
+ source4 = sources[3]
+ source5 = sources[4]
+ source6 = sources[5]
+
+ weight1 = weights[0]
+ weight2 = weights[1]
+ weight3 = weights[2]
+ weight4 = weights[3]
+ weight5 = weights[4]
+ weight6 = weights[5]
+ }
+
+ Component.onCompleted: calculateWeights()
+
+ onLodChanged: calculateWeights()
+
+ fragmentShader: "qrc:/QtQuick/Controls/Shaders/glow.frag"
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qmlc
new file mode 100644
index 00000000..71c1c443
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FastGlow.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qml
new file mode 100644
index 00000000..570df32b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype FocusFrame
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+Item {
+ id: root
+ activeFocusOnTab: false
+ Accessible.role: Accessible.StatusBar
+
+ anchors.topMargin: focusMargin
+ anchors.leftMargin: focusMargin
+ anchors.rightMargin: focusMargin
+ anchors.bottomMargin: focusMargin
+
+ property int focusMargin: loader.item ? loader.item.margin : -3
+
+ Loader {
+ id: loader
+ z: 2
+ anchors.fill: parent
+ sourceComponent: Settings.styleComponent(Settings.style, "FocusFrameStyle.qml", root)
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qmlc
new file mode 100644
index 00000000..7696bad6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/FocusFrame.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qml
new file mode 100644
index 00000000..bc7f91bb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Item {
+ id: button
+ property alias source: image.source
+ signal clicked
+
+ Rectangle {
+ id: fillRect
+ anchors.fill: parent
+ color: "black"
+ opacity: mouse.pressed ? 0.07 : mouse.containsMouse ? 0.02 : 0.0
+ }
+
+ Rectangle {
+ border.color: gridColor
+ anchors.fill: parent
+ anchors.margins: -1
+ color: "transparent"
+ opacity: fillRect.opacity * 10
+ }
+
+ Image {
+ id: image
+ width: Math.min(implicitWidth, parent.width * 0.4)
+ height: Math.min(implicitHeight, parent.height * 0.4)
+ anchors.centerIn: parent
+ fillMode: Image.PreserveAspectFit
+ opacity: 0.6
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ onClicked: button.clicked()
+ hoverEnabled: Settings.hoverEnabled
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qmlc
new file mode 100644
index 00000000..c2ac174a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/HoverButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qml
new file mode 100644
index 00000000..9fcb2f0f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qml
@@ -0,0 +1,282 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls.Private 1.0
+
+Loader {
+ id: menuFrameLoader
+
+ property var __menu
+
+ Accessible.role: Accessible.PopupMenu
+
+ visible: status === Loader.Ready
+ width: content.width + (d.style ? d.style.padding.left + d.style.padding.right : 0)
+ height: content.height + (d.style ? d.style.padding.top + d.style.padding.bottom : 0)
+
+ Loader {
+ id: styleLoader
+ active: !__menu.isNative
+ sourceComponent: __menu.style
+ property alias __control: menuFrameLoader
+ onStatusChanged: {
+ if (status === Loader.Error)
+ console.error("Failed to load Style for", __menu)
+ }
+ }
+ sourceComponent: d.style ? d.style.frame : undefined
+
+ QtObject {
+ id: d
+ property var mnemonicsMap: ({})
+ readonly property Style style: styleLoader.item
+ readonly property Component menuItemPanel: style ? style.menuItemPanel : null
+
+ function canBeHovered(index) {
+ var item = content.menuItemAt(index)
+ if (item && item.visible && item.styleData.type !== MenuItemType.Separator && item.styleData.enabled) {
+ __menu.__currentIndex = index
+ return true
+ }
+ return false
+ }
+
+ function triggerCurrent() {
+ var item = content.menuItemAt(__menu.__currentIndex)
+ if (item)
+ triggerAndDismiss(item)
+ }
+
+ function triggerAndDismiss(item) {
+ if (!item)
+ return;
+ if (item.styleData.type === MenuItemType.Separator)
+ __menu.__dismissAndDestroy()
+ else if (item.styleData.type === MenuItemType.Item)
+ item.__menuItem.trigger()
+ }
+ }
+
+ focus: true
+
+ Keys.onPressed: {
+ var item = null
+ if (!(event.modifiers & Qt.AltModifier)
+ && (item = d.mnemonicsMap[event.text.toUpperCase()])) {
+ if (item.styleData.type === MenuItemType.Menu) {
+ __menu.__currentIndex = item.__menuItemIndex
+ item.__showSubMenu(true)
+ item.__menuItem.__currentIndex = 0
+ } else {
+ d.triggerAndDismiss(item)
+ }
+ event.accepted = true
+ } else {
+ event.accepted = false
+ }
+ }
+
+ Keys.onEscapePressed: __menu.__dismissAndDestroy()
+
+ Keys.onDownPressed: {
+ if (__menu.__currentIndex < 0)
+ __menu.__currentIndex = -1
+
+ for (var i = __menu.__currentIndex + 1;
+ i < __menu.items.length && !d.canBeHovered(i); i++)
+ ;
+ event.accepted = true
+ }
+
+ Keys.onUpPressed: {
+ for (var i = __menu.__currentIndex - 1;
+ i >= 0 && !d.canBeHovered(i); i--)
+ ;
+ event.accepted = true
+ }
+
+ Keys.onLeftPressed: {
+ if ((event.accepted = __menu.__parentMenu.hasOwnProperty("title")))
+ __menu.__closeAndDestroy()
+ }
+
+ Keys.onRightPressed: {
+ var item = content.menuItemAt(__menu.__currentIndex)
+ if (item && item.styleData.type === MenuItemType.Menu
+ && !item.__menuItem.__popupVisible) {
+ item.__showSubMenu(true)
+ item.__menuItem.__currentIndex = 0
+ event.accepted = true
+ } else {
+ event.accepted = false
+ }
+ }
+
+ Keys.onSpacePressed: d.triggerCurrent()
+ Keys.onReturnPressed: d.triggerCurrent()
+ Keys.onEnterPressed: d.triggerCurrent()
+
+ Qml.Binding {
+ // Make sure the styled frame is in the background
+ target: item
+ property: "z"
+ value: content.z - 1
+ restoreMode: Binding.RestoreBinding
+ }
+
+ ColumnMenuContent {
+ id: content
+ x: d.style ? d.style.padding.left : 0
+ y: d.style ? d.style.padding.top : 0
+ menuItemDelegate: menuItemComponent
+ scrollIndicatorStyle: d.style && d.style.scrollIndicator || null
+ scrollerStyle: d.style && d.style.__scrollerStyle
+ itemsModel: __menu.items
+ minWidth: __menu.__minimumWidth
+ maxHeight: d.style ? d.style.__maxPopupHeight : 0
+ onTriggered: d.triggerAndDismiss(item)
+ }
+
+ Component {
+ id: menuItemComponent
+ Loader {
+ id: menuItemLoader
+
+ Accessible.role: opts.type === MenuItemType.Item || opts.type === MenuItemType.Menu ?
+ Accessible.MenuItem : Accessible.NoRole
+ Accessible.name: StyleHelpers.removeMnemonics(opts.text)
+ Accessible.checkable: opts.checkable
+ Accessible.checked: opts.checked
+ Accessible.onPressAction: {
+ if (opts.type === MenuItemType.Item) {
+ d.triggerAndDismiss(menuItemLoader)
+ } else if (opts.type === MenuItemType.Menu) {
+ __showSubMenu(true /*immediately*/)
+ }
+ }
+
+ property QtObject styleData: QtObject {
+ id: opts
+ readonly property int index: __menuItemIndex
+ readonly property int type: __menuItem ? __menuItem.type : -1
+ readonly property bool selected: type !== MenuItemType.Separator && __menu.__currentIndex === index
+ readonly property bool pressed: type !== MenuItemType.Separator && __menu.__currentIndex === index
+ && content.mousePressed // TODO Add key pressed condition once we get delayed menu closing
+ readonly property string text: type === MenuItemType.Menu ? __menuItem.title :
+ type !== MenuItemType.Separator ? __menuItem.text : ""
+ readonly property bool underlineMnemonic: __menu.__contentItem.altPressed
+ readonly property string shortcut: !!__menuItem && __menuItem["shortcut"] || ""
+ readonly property var iconSource: !!__menuItem && __menuItem["iconSource"] || undefined
+ readonly property bool enabled: type !== MenuItemType.Separator && !!__menuItem && __menuItem.enabled
+ readonly property bool checked: !!__menuItem && !!__menuItem["checked"]
+ readonly property bool checkable: !!__menuItem && !!__menuItem["checkable"]
+ readonly property bool exclusive: !!__menuItem && !!__menuItem["exclusiveGroup"]
+ readonly property int scrollerDirection: Qt.NoArrow
+ }
+
+ readonly property var __menuItem: modelData
+ readonly property int __menuItemIndex: index
+
+ sourceComponent: d.menuItemPanel
+ enabled: visible && opts.enabled
+ visible: !!__menuItem && __menuItem.visible
+ active: visible
+
+ function __showSubMenu(immediately) {
+ if (!__menuItem.enabled)
+ return;
+ if (immediately) {
+ if (__menu.__currentIndex === __menuItemIndex) {
+ if (__menuItem.__usingDefaultStyle)
+ __menuItem.style = __menu.style
+ __menuItem.__popup(Qt.rect(menuFrameLoader.width - (d.style.submenuOverlap + d.style.padding.right), -d.style.padding.top, 0, 0), -1)
+ }
+ } else {
+ openMenuTimer.start()
+ }
+ }
+
+ Timer {
+ id: openMenuTimer
+ interval: d.style.submenuPopupDelay
+ onTriggered: menuItemLoader.__showSubMenu(true)
+ }
+
+ function __closeSubMenu() {
+ if (openMenuTimer.running)
+ openMenuTimer.stop()
+ else if (__menuItem.__popupVisible)
+ closeMenuTimer.start()
+ }
+
+ Timer {
+ id: closeMenuTimer
+ interval: 1
+ onTriggered: {
+ if (__menu.__currentIndex !== __menuItemIndex)
+ __menuItem.__closeAndDestroy()
+ }
+ }
+
+ onLoaded: {
+ __menuItem.__visualItem = menuItemLoader
+
+ if (content.width < item.implicitWidth)
+ content.width = item.implicitWidth
+
+ var title = opts.text
+ var ampersandPos = title.indexOf("&")
+ if (ampersandPos !== -1)
+ d.mnemonicsMap[title[ampersandPos + 1].toUpperCase()] = menuItemLoader
+ }
+
+ Qml.Binding {
+ target: menuItemLoader.item
+ property: "width"
+ property alias menuItem: menuItemLoader.item
+ value: menuItem ? Math.max(__menu.__minimumWidth, content.width) - 2 * menuItem.x : 0
+ restoreMode: Binding.RestoreBinding
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qmlc
new file mode 100644
index 00000000..13d0eb1c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentItem.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qml
new file mode 100644
index 00000000..f33d2040
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+MouseArea {
+ id: scrollIndicator
+ property int direction: 0
+
+ anchors {
+ top: direction === Qt.UpArrow ? parent.top : undefined
+ bottom: direction === Qt.DownArrow ? parent.bottom : undefined
+ }
+
+ hoverEnabled: visible && Settings.hoverEnabled
+ height: scrollerLoader.height
+ width: parent.width
+
+ Loader {
+ id: scrollerLoader
+
+ width: parent.width
+ sourceComponent: scrollIndicatorStyle
+ // Extra property values for desktop style
+ property var __menuItem: null
+ property var styleData: {
+ "index": -1,
+ "type": MenuItemType.ScrollIndicator,
+ "text": "",
+ "selected": scrollIndicator.containsMouse,
+ "scrollerDirection": scrollIndicator.direction,
+ "checkable": false,
+ "checked": false,
+ "enabled": true
+ }
+ }
+
+ Timer {
+ interval: 100
+ repeat: true
+ triggeredOnStart: true
+ running: parent.containsMouse
+ onTriggered: scrollABit()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qmlc
new file mode 100644
index 00000000..83238b25
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuContentScroller.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qml
new file mode 100644
index 00000000..818b9578
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+QtObject {
+ property Component background: null
+ property Component label: null
+ property Component submenuIndicator: null
+ property Component shortcut: null
+ property Component checkmarkIndicator: null
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qmlc
new file mode 100644
index 00000000..f1f2d80b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/MenuItemSubControls.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qml
new file mode 100644
index 00000000..c9a4b68f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qml
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+// KNOWN ISSUES
+// none
+
+/*!
+ \qmltype ModalPopupBehavior
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+Item {
+ id: popupBehavior
+
+ property bool showing: false
+ property bool whenAlso: true // modifier to the "showing" property
+ property bool consumeCancelClick: true
+ property int delay: 0 // delay before popout becomes visible
+ property int deallocationDelay: 3000 // 3 seconds
+
+ property Component popupComponent
+
+ property alias popup: popupLoader.item // read-only
+ property alias window: popupBehavior.root // read-only
+
+ signal prepareToShow
+ signal prepareToHide
+ signal cancelledByClick
+
+ // implementation
+
+ anchors.fill: parent
+
+ onShowingChanged: notifyChange()
+ onWhenAlsoChanged: notifyChange()
+ function notifyChange() {
+ if(showing && whenAlso) {
+ if(popupLoader.sourceComponent == undefined) {
+ popupLoader.sourceComponent = popupComponent;
+ }
+ } else {
+ mouseArea.enabled = false; // disable before opacity is changed in case it has fading behavior
+ if(Qt.isQtObject(popupLoader.item)) {
+ popupBehavior.prepareToHide();
+ popupLoader.item.opacity = 0;
+ }
+ }
+ }
+
+ property Item root: findRoot()
+ function findRoot() {
+ var p = parent;
+ while(p.parent != undefined)
+ p = p.parent;
+
+ return p;
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ enabled: false // enabled only when popout is showing
+ onPressed: {
+ popupBehavior.showing = false;
+ mouse.accepted = consumeCancelClick;
+ cancelledByClick();
+ }
+ }
+
+ Loader {
+ id: popupLoader
+ }
+
+ Timer { // visibility timer
+ running: Qt.isQtObject(popupLoader.item) && showing && whenAlso
+ interval: delay
+ onTriggered: {
+ popupBehavior.prepareToShow();
+ mouseArea.enabled = true;
+ popup.opacity = 1;
+ }
+ }
+
+ Timer { // deallocation timer
+ running: Qt.isQtObject(popupLoader.item) && popupLoader.item.opacity == 0
+ interval: deallocationDelay
+ onTriggered: popupLoader.sourceComponent = undefined
+ }
+
+ states: State {
+ name: "active"
+ when: Qt.isQtObject(popupLoader.item) && popupLoader.item.opacity > 0
+ ParentChange { target: popupBehavior; parent: root }
+ }
+ }
+
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qmlc
new file mode 100644
index 00000000..a300afa4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ModalPopupBehavior.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qml
new file mode 100644
index 00000000..eea7a737
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qml
@@ -0,0 +1,237 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ScrollBar
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+Item {
+ id: scrollbar
+
+ property bool isTransient: false
+ property bool active: false
+ property int orientation: Qt.Horizontal
+ property alias minimumValue: slider.minimumValue
+ property alias maximumValue: slider.maximumValue
+ property alias value: slider.value
+ property int singleStep: 20
+
+ activeFocusOnTab: false
+
+ Accessible.role: Accessible.ScrollBar
+ implicitWidth: panelLoader.implicitWidth
+ implicitHeight: panelLoader.implicitHeight
+
+ property bool upPressed
+ property bool downPressed
+ property bool pageUpPressed
+ property bool pageDownPressed
+ property bool handlePressed
+
+
+ property Item __panel: panelLoader.item
+ Loader {
+ id: panelLoader
+ anchors.fill: parent
+ sourceComponent: __style ? __style.__scrollbar : null
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root)
+ property alias __control: scrollbar
+ property QtObject __styleData: QtObject {
+ readonly property alias horizontal: internal.horizontal
+ readonly property alias upPressed: scrollbar.upPressed
+ readonly property alias downPressed: scrollbar.downPressed
+ readonly property alias handlePressed: scrollbar.handlePressed
+ }
+ }
+
+ MouseArea {
+ id: internal
+ property bool horizontal: orientation === Qt.Horizontal
+ property int pageStep: internal.horizontal ? width : height
+ property bool scrollToClickposition: internal.scrollToClickPosition
+ anchors.fill: parent
+ cursorShape: __panel && __panel.visible ? Qt.ArrowCursor : Qt.IBeamCursor // forces a cursor change
+
+ property bool autoincrement: false
+ property bool scrollToClickPosition: __style ? __style.scrollToClickedPosition : 0
+
+ // Update hover item
+ onEntered: if (!pressed) __panel.activeControl = __panel.hitTest(mouseX, mouseY)
+ onExited: if (!pressed) __panel.activeControl = "none"
+ onMouseXChanged: if (!pressed) __panel.activeControl = __panel.hitTest(mouseX, mouseY)
+ hoverEnabled: Settings.hoverEnabled
+ preventStealing: true
+ property var pressedX
+ property var pressedY
+ property int oldPosition
+ property int grooveSize
+
+ Timer {
+ running: upPressed || downPressed || pageUpPressed || pageDownPressed
+ interval: 350
+ onTriggered: internal.autoincrement = true
+ }
+
+ Timer {
+ running: internal.autoincrement
+ interval: 60
+ repeat: true
+ onTriggered: {
+ if (upPressed && internal.containsMouse)
+ internal.decrement();
+ else if (downPressed && internal.containsMouse)
+ internal.increment();
+ else if (pageUpPressed)
+ internal.decrementPage();
+ else if (pageDownPressed)
+ internal.incrementPage();
+ }
+ }
+
+ onPositionChanged: {
+ if (handlePressed) {
+ if (!horizontal)
+ slider.position = oldPosition + (mouseY - pressedY)
+ else
+ slider.position = oldPosition + (mouseX - pressedX)
+ }
+ }
+
+ onPressed: {
+ if (mouse.source !== Qt.MouseEventNotSynthesized) {
+ mouse.accepted = false
+ return
+ }
+ __panel.activeControl = __panel.hitTest(mouseX, mouseY)
+ scrollToClickposition = scrollToClickPosition
+ var handleRect = __panel.subControlRect("handle")
+ var grooveRect = __panel.subControlRect("groove")
+ grooveSize = horizontal ? grooveRect.width - handleRect.width:
+ grooveRect.height - handleRect.height;
+ if (__panel.activeControl === "handle") {
+ pressedX = mouseX;
+ pressedY = mouseY;
+ handlePressed = true;
+ oldPosition = slider.position;
+ } else if (__panel.activeControl === "up") {
+ decrement();
+ upPressed = Qt.binding(function() {return containsMouse});
+ } else if (__panel.activeControl === "down") {
+ increment();
+ downPressed = Qt.binding(function() {return containsMouse});
+ } else if (!scrollToClickposition){
+ if (__panel.activeControl === "upPage") {
+ decrementPage();
+ pageUpPressed = true;
+ } else if (__panel.activeControl === "downPage") {
+ incrementPage();
+ pageDownPressed = true;
+ }
+ } else { // scroll to click position
+ slider.position = horizontal ? mouseX - handleRect.width/2 - grooveRect.x
+ : mouseY - handleRect.height/2 - grooveRect.y
+ pressedX = mouseX;
+ pressedY = mouseY;
+ handlePressed = true;
+ oldPosition = slider.position;
+ }
+ }
+
+ onReleased: {
+ __panel.activeControl = __panel.hitTest(mouseX, mouseY);
+ autoincrement = false;
+ upPressed = false;
+ downPressed = false;
+ handlePressed = false;
+ pageUpPressed = false;
+ pageDownPressed = false;
+ }
+
+ onWheel: {
+ var stepCount = -(wheel.angleDelta.x ? wheel.angleDelta.x : wheel.angleDelta.y) / 120
+ if (stepCount != 0) {
+ if (wheel.modifiers & Qt.ControlModifier || wheel.modifiers & Qt.ShiftModifier)
+ incrementPage(stepCount)
+ else
+ increment(stepCount)
+ }
+ }
+
+ function incrementPage(stepCount) {
+ value = boundValue(value + getSteps(pageStep, stepCount))
+ }
+
+ function decrementPage(stepCount) {
+ value = boundValue(value - getSteps(pageStep, stepCount))
+ }
+
+ function increment(stepCount) {
+ value = boundValue(value + getSteps(singleStep, stepCount))
+ }
+
+ function decrement(stepCount) {
+ value = boundValue(value - getSteps(singleStep, stepCount))
+ }
+
+ function boundValue(val) {
+ return Math.min(Math.max(val, minimumValue), maximumValue)
+ }
+
+ function getSteps(step, count) {
+ if (count)
+ step *= count
+ return step
+ }
+
+ RangeModel {
+ id: slider
+ minimumValue: 0.0
+ maximumValue: 1.0
+ value: 0
+ stepSize: 0.0
+ inverted: false
+ positionAtMaximum: internal.grooveSize
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qmlc
new file mode 100644
index 00000000..5f71765f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qml
new file mode 100644
index 00000000..f5ef5b17
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qml
@@ -0,0 +1,234 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ScrollViewHeader
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+Item {
+ id: scrollHelper
+
+ property alias horizontalScrollBar: hscrollbar
+ property alias verticalScrollBar: vscrollbar
+ property bool blockUpdates: false
+ property int availableHeight
+ property int availableWidth
+ property int contentHeight
+ property int contentWidth
+ property bool active
+ property int horizontalScrollBarPolicy: Qt.ScrollBarAsNeeded
+ property int verticalScrollBarPolicy: Qt.ScrollBarAsNeeded
+
+
+ property int leftMargin: outerFrame && root.__style ? root.__style.padding.left : 0
+ property int rightMargin: outerFrame && root.__style ? root.__style.padding.right : 0
+ property int topMargin: outerFrame && root.__style ? root.__style.padding.top : 0
+ property int bottomMargin: outerFrame && root.__style ? root.__style.padding.bottom : 0
+
+ anchors.fill: parent
+
+ Timer {
+ id: layoutTimer
+ interval: 0;
+ onTriggered: {
+ blockUpdates = true;
+ scrollHelper.contentWidth = flickableItem !== null ? flickableItem.contentWidth : 0
+ scrollHelper.contentHeight = flickableItem !== null ? flickableItem.contentHeight : 0
+ scrollHelper.availableWidth = viewport.width
+ scrollHelper.availableHeight = viewport.height
+ blockUpdates = false;
+ hscrollbar.valueChanged();
+ vscrollbar.valueChanged();
+ }
+ }
+
+ Connections {
+ target: viewport
+ function onWidthChanged() { layoutTimer.running = true }
+ function onHeightChanged() { layoutTimer.running = true }
+ }
+
+ Connections {
+ target: flickableItem
+ function onContentWidthChanged() { layoutTimer.running = true }
+ function onContentHeightChanged() { layoutTimer.running = true }
+ function onContentXChanged() {
+ hscrollbar.flash()
+ vscrollbar.flash()
+ }
+ function onContentYChanged() {
+ hscrollbar.flash()
+ vscrollbar.flash()
+ }
+ }
+
+ Loader {
+ id: cornerFill
+ z: 1
+ sourceComponent: __style ? __style.corner : null
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: bottomMargin
+ anchors.rightMargin: rightMargin
+ width: visible ? vscrollbar.width : 0
+ height: visible ? hscrollbar.height : 0
+ visible: hscrollbar.visible && !hscrollbar.isTransient && vscrollbar.visible && !vscrollbar.isTransient
+ }
+
+ ScrollBar {
+ id: hscrollbar
+ readonly property int scrollAmount: contentWidth - availableWidth
+ readonly property bool scrollable: scrollAmount > 0
+ isTransient: !!__panel && !!__panel.isTransient
+ active: !!__panel && (__panel.sunken || __panel.activeControl !== "none")
+ enabled: !isTransient || __panel.visible
+ orientation: Qt.Horizontal
+ visible: horizontalScrollBarPolicy == Qt.ScrollBarAsNeeded ? scrollable : horizontalScrollBarPolicy == Qt.ScrollBarAlwaysOn
+ height: visible ? implicitHeight : 0
+ z: 1
+ maximumValue: scrollable ? scrollAmount : 0
+ minimumValue: 0
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: cornerFill.left
+ anchors.leftMargin: leftMargin
+ anchors.bottomMargin: bottomMargin
+ onScrollAmountChanged: {
+ var scrollableAmount = scrollable ? scrollAmount : 0
+ if (flickableItem && (flickableItem.atXBeginning || flickableItem.atXEnd)) {
+ value = Math.min(scrollableAmount, flickableItem.contentX - flickableItem.originX);
+ } else if (value > scrollableAmount) {
+ value = scrollableAmount;
+ }
+ }
+ onValueChanged: {
+ if (flickableItem && !blockUpdates) {
+ flickableItem.contentX = value + flickableItem.originX
+ }
+ }
+ Qml.Binding {
+ target: hscrollbar.__panel
+ property: "raised"
+ value: vscrollbar.active || scrollHelper.active
+ when: hscrollbar.isTransient
+ restoreMode: Binding.RestoreBinding
+ }
+ Qml.Binding {
+ target: hscrollbar.__panel
+ property: "visible"
+ value: true
+ when: !hscrollbar.isTransient || scrollHelper.active
+ restoreMode: Binding.RestoreBinding
+ }
+ function flash() {
+ if (hscrollbar.isTransient) {
+ hscrollbar.__panel.on = true
+ hscrollbar.__panel.visible = true
+ hFlasher.start()
+ }
+ }
+ Timer {
+ id: hFlasher
+ interval: 10
+ onTriggered: hscrollbar.__panel.on = false
+ }
+ }
+
+ ScrollBar {
+ id: vscrollbar
+ readonly property int scrollAmount: contentHeight - availableHeight
+ readonly property bool scrollable: scrollAmount > 0
+ isTransient: !!__panel && !!__panel.isTransient
+ active: !!__panel && (__panel.sunken || __panel.activeControl !== "none")
+ enabled: !isTransient || __panel.visible
+ orientation: Qt.Vertical
+ visible: verticalScrollBarPolicy === Qt.ScrollBarAsNeeded ? scrollable : verticalScrollBarPolicy === Qt.ScrollBarAlwaysOn
+ width: visible ? implicitWidth : 0
+ z: 1
+ anchors.bottom: cornerFill.top
+ maximumValue: scrollable ? scrollAmount + __viewTopMargin : 0
+ minimumValue: 0
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.topMargin: __scrollBarTopMargin + topMargin
+ anchors.rightMargin: rightMargin
+ onScrollAmountChanged: {
+ if (flickableItem && (flickableItem.atYBeginning || flickableItem.atYEnd)) {
+ value = flickableItem.contentY - flickableItem.originY
+ }
+ }
+ onValueChanged: {
+ if (flickableItem && !blockUpdates && enabled) {
+ flickableItem.contentY = value + flickableItem.originY
+ }
+ }
+ Qml.Binding {
+ target: vscrollbar.__panel
+ property: "raised"
+ value: hscrollbar.active || scrollHelper.active
+ when: vscrollbar.isTransient
+ restoreMode: Binding.RestoreBinding
+ }
+ Qml.Binding {
+ target: vscrollbar.__panel
+ property: "visible"
+ value: true
+ when: !vscrollbar.isTransient || scrollHelper.active
+ restoreMode: Binding.RestoreBinding
+ }
+ function flash() {
+ if (vscrollbar.isTransient) {
+ vscrollbar.__panel.on = true
+ vscrollbar.__panel.visible = true
+ vFlasher.start()
+ }
+ }
+ Timer {
+ id: vFlasher
+ interval: 10
+ onTriggered: vscrollbar.__panel.on = false
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qmlc
new file mode 100644
index 00000000..44956859
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ScrollViewHelper.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qml
new file mode 100644
index 00000000..275c24d3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qml
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+Item {
+ id: rootItem
+ property variant input
+ property variant output
+ property variant sourceRect
+ visible: false
+
+ Component.onCompleted: evaluateInput()
+
+ onInputChanged: evaluateInput()
+
+ onSourceRectChanged: evaluateInput()
+
+ function evaluateInput() {
+ if (input == undefined) {
+ output = input
+ }
+ else if (sourceRect != undefined && sourceRect != Qt.rect(0, 0, 0, 0) && !isQQuickShaderEffectSource(input)) {
+ proxySource.sourceItem = input
+ output = proxySource
+ proxySource.sourceRect = sourceRect
+ }
+ else if (isQQuickItemLayerEnabled(input)) {
+ output = input
+ }
+ else if ((isQQuickImage(input) && !hasTileMode(input) && !hasChildren(input))) {
+ output = input
+ }
+ else if (isQQuickShaderEffectSource(input)) {
+ output = input
+ }
+ else {
+ proxySource.sourceItem = input
+ output = proxySource
+ proxySource.sourceRect = Qt.rect(0, 0, 0, 0)
+ }
+ }
+
+ function isQQuickItemLayerEnabled(item) {
+ if (item.hasOwnProperty("layer")) {
+ var l = item["layer"]
+ if (l.hasOwnProperty("enabled") && l["enabled"].toString() == "true")
+ return true
+ }
+ return false
+ }
+
+ function isQQuickImage(item) {
+ var imageProperties = [ "fillMode", "progress", "asynchronous", "sourceSize", "status", "smooth" ]
+ return hasProperties(item, imageProperties)
+ }
+
+ function isQQuickShaderEffectSource(item) {
+ var shaderEffectSourceProperties = [ "hideSource", "format", "sourceItem", "mipmap", "wrapMode", "live", "recursive", "sourceRect" ]
+ return hasProperties(item, shaderEffectSourceProperties)
+ }
+
+ function hasProperties(item, properties) {
+ var counter = 0
+ for (var j = 0; j < properties.length; j++) {
+ if (item.hasOwnProperty(properties [j]))
+ counter++
+ }
+ return properties.length == counter
+ }
+
+ function hasChildren(item) {
+ if (item.hasOwnProperty("childrenRect")) {
+ if (item["childrenRect"].toString() != "QRectF(0, 0, 0, 0)")
+ return true
+ else
+ return false
+ }
+ return false
+ }
+
+ function hasTileMode(item) {
+ if (item.hasOwnProperty("fillMode")) {
+ if (item["fillMode"].toString() != "0")
+ return true
+ else
+ return false
+ }
+ return false
+ }
+
+ ShaderEffectSource {
+ id: proxySource
+ live: rootItem.input != rootItem.output
+ hideSource: false
+ smooth: true
+ visible: false
+ }
+}
+
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qmlc
new file mode 100644
index 00000000..d8b51b1a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SourceProxy.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.js b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.js
new file mode 100644
index 00000000..b0b77e21
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.js
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+var stackView = [];
+
+function push(p)
+{
+ if (!p)
+ return
+ stackView.push(p)
+ __depth++
+ return p
+}
+
+function pop()
+{
+ if (stackView.length === 0)
+ return null
+ var p = stackView.pop()
+ __depth--
+ return p
+}
+
+function current()
+{
+ if (stackView.length === 0)
+ return null
+ return stackView[stackView.length-1]
+}
+
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.jsc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.jsc
new file mode 100644
index 00000000..5b5da217
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackView.jsc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qml
new file mode 100644
index 00000000..dcc14448
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qml
@@ -0,0 +1,141 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+
+/*!
+ \qmltype StackViewSlideTransition
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+StackViewDelegate {
+ id: root
+
+ property bool horizontal: true
+
+ function getTransition(properties)
+ {
+ return root[horizontal ? "horizontalSlide" : "verticalSlide"][properties.name]
+ }
+
+ function transitionFinished(properties)
+ {
+ properties.exitItem.x = 0
+ properties.exitItem.y = 0
+ }
+
+ property QtObject horizontalSlide: QtObject {
+ property Component pushTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "x"
+ from: target.width
+ to: 0
+ duration: 400
+ easing.type: Easing.OutCubic
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "x"
+ from: 0
+ to: -target.width
+ duration: 400
+ easing.type: Easing.OutCubic
+ }
+ }
+
+ property Component popTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "x"
+ from: -target.width
+ to: 0
+ duration: 400
+ easing.type: Easing.OutCubic
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "x"
+ from: 0
+ to: target.width
+ duration: 400
+ easing.type: Easing.OutCubic
+ }
+ }
+ property Component replaceTransition: pushTransition
+ }
+
+ property QtObject verticalSlide: QtObject {
+ property Component pushTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "y"
+ from: target.height
+ to: 0
+ duration: 300
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "y"
+ from: 0
+ to: -target.height
+ duration: 300
+ }
+ }
+
+ property Component popTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "y"
+ from: -target.height
+ to: 0
+ duration: 300
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "y"
+ from: 0
+ to: target.height
+ duration: 300
+ }
+ }
+ property Component replaceTransition: pushTransition
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qmlc
new file mode 100644
index 00000000..abba15c2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/StackViewSlideDelegate.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qml
new file mode 100644
index 00000000..805c9252
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Style
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+
+AbstractStyle {
+ /*! The control this style is attached to. */
+ readonly property Item control: __control
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qmlc
new file mode 100644
index 00000000..a6b1a4ae
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/Style.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qml
new file mode 100644
index 00000000..e4e82c55
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+pragma Singleton
+import QtQuick 2.2
+
+QtObject {
+ property SystemPalette active: SystemPalette { colorGroup: SystemPalette.Active }
+ property SystemPalette disabled: SystemPalette { colorGroup: SystemPalette.Disabled }
+
+ function alternateBase(enabled) { return enabled ? active.alternateBase : disabled.alternateBase }
+ function base(enabled) { return enabled ? active.base : disabled.base }
+ function button(enabled) { return enabled ? active.button : disabled.button }
+ function buttonText(enabled) { return enabled ? active.buttonText : disabled.buttonText }
+ function dark(enabled) { return enabled ? active.dark : disabled.dark }
+ function highlight(enabled) { return enabled ? active.highlight : disabled.highlight }
+ function highlightedText(enabled) { return enabled ? active.highlightedText : disabled.highlightedText }
+ function light(enabled) { return enabled ? active.light : disabled.light }
+ function mid(enabled) { return enabled ? active.mid : disabled.mid }
+ function midlight(enabled) { return enabled ? active.midlight : disabled.midlight }
+ function shadow(enabled) { return enabled ? active.shadow : disabled.shadow }
+ function text(enabled) { return enabled ? active.text : disabled.text }
+ function window(enabled) { return enabled ? active.window : disabled.window }
+ function windowText(enabled) { return enabled ? active.windowText : disabled.windowText }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qmlc
new file mode 100644
index 00000000..66abb87e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/SystemPaletteSingleton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qml
new file mode 100644
index 00000000..1186968d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qml
@@ -0,0 +1,331 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TabBar
+ \internal
+ \inqmlmodule QtQuick.Controls.Private
+*/
+FocusScope {
+ id: tabbar
+ height: Math.max(tabrow.height, Math.max(leftCorner.height, rightCorner.height))
+ width: tabView.width
+
+ activeFocusOnTab: true
+
+ Keys.onRightPressed: {
+ if (tabView && tabView.currentIndex < tabView.count - 1)
+ tabView.currentIndex = tabView.currentIndex + 1
+ }
+ Keys.onLeftPressed: {
+ if (tabView && tabView.currentIndex > 0)
+ tabView.currentIndex = tabView.currentIndex - 1
+ }
+
+ onTabViewChanged: parent = tabView
+ visible: tabView ? tabView.tabsVisible : true
+
+ property var tabView
+ property var style
+ property var styleItem: tabView.__styleItem ? tabView.__styleItem : null
+
+ property bool tabsMovable: styleItem ? styleItem.tabsMovable : false
+
+ property int tabsAlignment: styleItem ? styleItem.tabsAlignment : Qt.AlignLeft
+
+ property int tabOverlap: styleItem ? styleItem.tabOverlap : 0
+
+ property int elide: Text.ElideRight
+
+ property real availableWidth: tabbar.width - leftCorner.width - rightCorner.width
+
+ property var __selectedTabRect
+
+ function tab(index) {
+ for (var i = 0; i < tabrow.children.length; ++i) {
+ if (tabrow.children[i].tabindex == index) {
+ return tabrow.children[i]
+ }
+ }
+ return null;
+ }
+
+ /*! \internal */
+ function __isAncestorOf(item, child) {
+ //TODO: maybe removed from 5.2 if the function was merged in qtdeclarative
+ if (child === item)
+ return false;
+
+ while (child) {
+ child = child.parent;
+ if (child === item)
+ return true;
+ }
+ return false;
+ }
+ Loader {
+ id: background
+ anchors.fill: parent
+ sourceComponent: styleItem ? styleItem.tabBar : undefined
+ }
+
+ ListView {
+ id: tabrow
+ objectName: "tabrow"
+ Accessible.role: Accessible.PageTabList
+ LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
+ spacing: -tabOverlap
+ orientation: Qt.Horizontal
+ interactive: false
+ focus: true
+ clip: true
+
+ // Note this will silence the binding loop warnings caused by QTBUG-35038
+ // and should be removed when this issue is resolved.
+ property int contentWidthWorkaround: contentWidth > 0 ? contentWidth: 0
+ width: Math.min(availableWidth, count ? contentWidthWorkaround : availableWidth)
+ height: currentItem ? currentItem.height : 0
+
+ highlightMoveDuration: 0
+
+ // We cannot bind directly to the currentIndex because the actual model is
+ // populated after the listview is completed, resulting in an invalid contentItem
+ currentIndex: tabView.currentIndex < model.count ? tabView.currentIndex : -1
+ onCurrentIndexChanged: tabrow.positionViewAtIndex(currentIndex, ListView.Contain)
+
+ moveDisplaced: Transition {
+ NumberAnimation {
+ property: "x"
+ duration: 125
+ easing.type: Easing.OutQuad
+ }
+ }
+
+ states: [
+ State {
+ name: "left"
+ when: tabsAlignment === Qt.AlignLeft
+ AnchorChanges { target:tabrow ; anchors.left: parent.left }
+ PropertyChanges { target:tabrow ; anchors.leftMargin: leftCorner.width }
+ },
+ State {
+ name: "center"
+ when: tabsAlignment === Qt.AlignHCenter
+ AnchorChanges { target:tabrow ; anchors.horizontalCenter: tabbar.horizontalCenter }
+ },
+ State {
+ name: "right"
+ when: tabsAlignment === Qt.AlignRight
+ AnchorChanges { target:tabrow ; anchors.right: parent.right }
+ PropertyChanges { target:tabrow ; anchors.rightMargin: rightCorner.width }
+ }
+ ]
+
+ model: tabView.__tabs
+
+ delegate: MouseArea {
+ id: tabitem
+ objectName: "mousearea"
+ hoverEnabled: Settings.hoverEnabled
+ focus: true
+ enabled: modelData.enabled
+
+ Qml.Binding {
+ target: tabbar
+ when: selected
+ property: "__selectedTabRect"
+ value: Qt.rect(x, y, width, height)
+ restoreMode: Binding.RestoreBinding
+ }
+
+ drag.target: tabsMovable ? tabloader : null
+ drag.axis: Drag.XAxis
+ drag.minimumX: drag.active ? 0 : -Number.MAX_VALUE
+ drag.maximumX: tabrow.width - tabitem.width
+
+ property int tabindex: index
+ property bool selected : tabView.currentIndex === index
+ property string title: modelData.title
+ property bool nextSelected: tabView.currentIndex === index + 1
+ property bool previousSelected: tabView.currentIndex === index - 1
+
+ property bool keyPressed: false
+ property bool effectivePressed: pressed && containsMouse || keyPressed
+
+ z: selected ? 1 : -index
+ implicitWidth: tabloader.implicitWidth
+ implicitHeight: tabloader.implicitHeight
+
+ function changeTab() {
+ tabView.currentIndex = index;
+ var next = tabbar.nextItemInFocusChain(true);
+ if (__isAncestorOf(tabView.getTab(currentIndex), next))
+ next.forceActiveFocus();
+ }
+
+ onClicked: {
+ if (tabrow.interactive) {
+ changeTab()
+ }
+ }
+ onPressed: {
+ if (!tabrow.interactive) {
+ changeTab()
+ }
+ }
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && !tabitem.pressed)
+ tabitem.keyPressed = true
+ }
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && tabitem.keyPressed)
+ tabitem.keyPressed = false
+ }
+ onFocusChanged: if (!focus) tabitem.keyPressed = false
+
+ Loader {
+ id: tabloader
+
+ property Item control: tabView
+ property int index: tabindex
+
+ property QtObject styleData: QtObject {
+ readonly property alias index: tabitem.tabindex
+ readonly property alias selected: tabitem.selected
+ readonly property alias title: tabitem.title
+ readonly property alias nextSelected: tabitem.nextSelected
+ readonly property alias previousSelected: tabitem.previousSelected
+ readonly property alias pressed: tabitem.effectivePressed
+ readonly property alias hovered: tabitem.containsMouse
+ readonly property alias enabled: tabitem.enabled
+ readonly property bool activeFocus: tabitem.activeFocus
+ readonly property real availableWidth: tabbar.availableWidth
+ readonly property real totalWidth: tabrow.contentWidth
+ }
+
+ sourceComponent: loader.item ? loader.item.tab : null
+
+ Drag.keys: "application/x-tabbartab"
+ Drag.active: tabitem.drag.active
+ Drag.source: tabitem
+
+ property real __prevX: 0
+ property real __dragX: 0
+ onXChanged: {
+ if (Drag.active) {
+ // keep track for the snap back animation
+ __dragX = tabitem.mapFromItem(tabrow, tabloader.x, 0).x
+
+ // when moving to the left, the hot spot is the left edge and vice versa
+ Drag.hotSpot.x = x < __prevX ? 0 : width
+ __prevX = x
+ }
+ }
+
+ width: tabitem.width
+ state: Drag.active ? "drag" : ""
+
+ transitions: [
+ Transition {
+ to: "drag"
+ PropertyAction { target: tabloader; property: "parent"; value: tabrow }
+ },
+ Transition {
+ from: "drag"
+ SequentialAnimation {
+ PropertyAction { target: tabloader; property: "parent"; value: tabitem }
+ NumberAnimation {
+ target: tabloader
+ duration: 50
+ easing.type: Easing.OutQuad
+ property: "x"
+ from: tabloader.__dragX
+ to: 0
+ }
+ }
+ }
+ ]
+ }
+
+ Accessible.role: Accessible.PageTab
+ Accessible.name: modelData.title
+ }
+ }
+
+ Loader {
+ id: leftCorner
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ sourceComponent: styleItem ? styleItem.leftCorner : undefined
+ width: item ? item.implicitWidth : 0
+ height: item ? item.implicitHeight : 0
+ }
+
+ Loader {
+ id: rightCorner
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ sourceComponent: styleItem ? styleItem.rightCorner : undefined
+ width: item ? item.implicitWidth : 0
+ height: item ? item.implicitHeight : 0
+ }
+
+ DropArea {
+ anchors.fill: tabrow
+ keys: "application/x-tabbartab"
+ onPositionChanged: {
+ var source = drag.source
+ var target = tabrow.itemAt(drag.x, drag.y)
+ if (source && target && source !== target) {
+ source = source.drag.target
+ target = target.drag.target
+ var center = target.parent.x + target.width / 2
+ if ((source.index > target.index && source.x < center)
+ || (source.index < target.index && source.x + source.width > center))
+ tabView.moveTab(source.index, target.index)
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qmlc
new file mode 100644
index 00000000..f737e191
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TabBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qml
new file mode 100644
index 00000000..c5c6584a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+
+/*!
+ \qmltype TableViewItemDelegateLoader
+ \internal
+ \qmlabstract
+ \inqmlmodule QtQuick.Controls.Private
+*/
+
+Loader {
+ id: itemDelegateLoader
+
+ width: __column ? __column.width : 0
+ height: parent ? parent.height : 0
+ visible: __column ? __column.visible : false
+
+ property bool isValid: false
+ sourceComponent: (__model === undefined || !isValid) ? null
+ : __column && __column.delegate ? __column.delegate : __itemDelegate
+
+ // All these properties are internal
+ property int __index: index
+ property Item __rowItem: null
+ property var __model: __rowItem ? __rowItem.itemModel : undefined
+ property var __modelData: __rowItem ? __rowItem.itemModelData : undefined
+ property TableViewColumn __column: null
+ property Component __itemDelegate: null
+ property var __mouseArea: null
+ property var __style: null
+
+ // These properties are exposed to the item delegate
+ readonly property var model: __model
+ readonly property var modelData: __modelData
+
+ property QtObject styleData: QtObject {
+ readonly property int row: __rowItem ? __rowItem.rowIndex : -1
+ readonly property int column: __index
+ readonly property int elideMode: __column ? __column.elideMode : Text.ElideLeft
+ readonly property int textAlignment: __column ? __column.horizontalAlignment : Text.AlignLeft
+ readonly property bool selected: __rowItem ? __rowItem.itemSelected : false
+ readonly property bool hasActiveFocus: __rowItem ? __rowItem.activeFocus : false
+ readonly property bool pressed: __mouseArea && row === __mouseArea.pressedRow && column === __mouseArea.pressedColumn
+ readonly property color textColor: __rowItem ? __rowItem.itemTextColor : "black"
+ readonly property string role: __column ? __column.role : ""
+ readonly property var value: model && model.hasOwnProperty(role) ? model[role] // Qml ListModel and QAbstractItemModel
+ : modelData && modelData.hasOwnProperty(role) ? modelData[role] // QObjectList / QObject
+ : modelData != undefined ? modelData : "" // Models without role
+ onRowChanged: if (row !== -1) itemDelegateLoader.isValid = true
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qmlc
new file mode 100644
index 00000000..c2a46fe3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewItemDelegateLoader.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qml
new file mode 100644
index 00000000..e8af9dd9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qml
@@ -0,0 +1,196 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+QtObject {
+
+ property int count: 0
+ signal selectionChanged
+
+ property bool __dirty: false
+ property var __ranges: []
+
+ function forEach (callback) {
+ if (!(callback instanceof Function)) {
+ console.warn("TableViewSelection.forEach: argument is not a function")
+ return;
+ }
+ __forEach(callback, -1)
+ }
+
+ function contains(index) {
+ for (var i = 0 ; i < __ranges.length ; ++i) {
+ if (__ranges[i][0] <= index && index <= __ranges[i][1])
+ return true;
+ else if (__ranges[i][0] > index)
+ return false;
+ }
+ return false;
+ }
+
+ function clear() {
+ __ranges = []
+ __dirty = true
+ count = 0
+ selectionChanged()
+ }
+
+ function selectAll() { select(0, rowCount - 1) }
+ function select(first, last) { __select(true, first, last) }
+ function deselect(first, last) { __select(false, first, last) }
+
+ // --- private section ---
+
+ function __printRanges() {
+ var out = ""
+ for (var i = 0 ; i < __ranges.length ; ++ i)
+ out += ("{" + __ranges[i][0] + "," + __ranges[i][1] + "} ")
+ print(out)
+ }
+
+ function __count() {
+ var sum = 0
+ for (var i = 0 ; i < __ranges.length ; ++i) {
+ sum += (1 + __ranges[i][1] - __ranges[i][0])
+ }
+ return sum
+ }
+
+ function __forEach (callback, startIndex) {
+ __dirty = false
+ var i, j
+
+ for (i = 0 ; i < __ranges.length && !__dirty ; ++i) {
+ for (j = __ranges[i][0] ; !__dirty && j <= __ranges[i][1] ; ++j) {
+ if (j >= startIndex)
+ callback.call(this, j)
+ }
+ }
+
+ // Restart iteration at last index if selection changed
+ if (__dirty)
+ return __forEach(callback, j)
+ }
+
+ function __selectOne(index) {
+ __ranges = [[index, index]]
+ __dirty = true
+ count = 1
+ selectionChanged();
+ }
+
+ function __select(select, first, last) {
+
+ var i, range
+ var start = first
+ var stop = first
+ var startRangeIndex = -1
+ var stopRangeIndex = -1
+ var newRangePos = 0
+
+ if (first < 0 || last < 0 || first >= rowCount || last >=rowCount) {
+ console.warn("TableViewSelection: index out of range")
+ return
+ }
+
+ if (last !== undefined) {
+ start = first <= last ? first : last
+ stop = first <= last ? last : first
+ }
+
+ if (select) {
+
+ // Find beginning and end ranges
+ for (i = 0 ; i < __ranges.length; ++ i) {
+ range = __ranges[i]
+ if (range[0] > stop + 1) continue; // above range
+ if (range[1] < start - 1) { // below range
+ newRangePos = i + 1
+ continue;
+ }
+ if (startRangeIndex === -1)
+ startRangeIndex = i
+ stopRangeIndex = i
+ }
+
+ if (startRangeIndex !== -1)
+ start = Math.min(__ranges[startRangeIndex][0], start)
+ if (stopRangeIndex !== -1)
+ stop = Math.max(__ranges[stopRangeIndex][1], stop)
+
+ if (startRangeIndex === -1)
+ startRangeIndex = newRangePos
+
+ __ranges.splice(Math.max(0, startRangeIndex),
+ 1 + stopRangeIndex - startRangeIndex, [start, stop])
+
+ } else {
+
+ // Find beginning and end ranges
+ for (i = 0 ; i < __ranges.length; ++ i) {
+ range = __ranges[i]
+ if (range[1] < start) continue; // below range
+ if (range[0] > stop) continue; // above range
+ if (startRangeIndex === -1)
+ startRangeIndex = i
+ stopRangeIndex = i
+ }
+
+ // Slice ranges accordingly
+ if (startRangeIndex >= 0 && stopRangeIndex >= 0) {
+ var startRange = __ranges[startRangeIndex]
+ var stopRange = __ranges[stopRangeIndex]
+ var length = 1 + stopRangeIndex - startRangeIndex
+ if (start <= startRange[0] && stop >= stopRange[1]) { //remove
+ __ranges.splice(startRangeIndex, length)
+ } else if (start - 1 < startRange[0] && stop <= stopRange[1]) { //cut front
+ __ranges.splice(startRangeIndex, length, [stop + 1, stopRange[1]])
+ } else if (start - 1 < startRange[1] && stop >= stopRange[1]) { // cut back
+ __ranges.splice(startRangeIndex, length, [startRange[0], start - 1])
+ } else { //split
+ __ranges.splice(startRangeIndex, length, [startRange[0], start - 1], [stop + 1, stopRange[1]])
+ }
+ }
+ }
+ __dirty = true
+ count = __count() // forces a re-evaluation of indexes in the delegates
+ selectionChanged()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qmlc
new file mode 100644
index 00000000..7421daae
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TableViewSelection.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qml
new file mode 100644
index 00000000..45e97f71
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qml
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Loader {
+ id: handle
+
+ property Item editor
+ property int minimum: -1
+ property int maximum: -1
+ property int position: -1
+ property alias delegate: handle.sourceComponent
+
+ readonly property alias pressed: mouse.pressed
+
+ readonly property real handleX: x + (item ? item.x : 0)
+ readonly property real handleY: y + (item ? item.y : 0)
+ readonly property real handleWidth: item ? item.width : 0
+ readonly property real handleHeight: item ? item.height : 0
+
+ property Item control
+ property QtObject styleData: QtObject {
+ id: styleData
+ signal activated()
+ readonly property alias pressed: mouse.pressed
+ readonly property alias position: handle.position
+ readonly property bool hasSelection: editor.selectionStart !== editor.selectionEnd
+ readonly property real lineHeight: position !== -1 ? editor.positionToRectangle(position).height
+ : editor.cursorRectangle.height
+ }
+
+ function activate() {
+ styleData.activated()
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: item
+ enabled: item && item.visible
+ preventStealing: true
+ property real pressX
+ property point offset
+ property bool handleDragged: false
+
+ onPressed: {
+ Qt.inputMethod.commit()
+ handleDragged = false
+ pressX = mouse.x
+ var handleRect = editor.positionToRectangle(handle.position)
+ var centerX = handleRect.x + (handleRect.width / 2)
+ var centerY = handleRect.y + (handleRect.height / 2)
+ var center = mapFromItem(editor, centerX, centerY)
+ offset = Qt.point(mouseX - center.x, mouseY - center.y)
+ }
+ onReleased: {
+ if (!handleDragged) {
+ // The user just clicked on the handle. In that
+ // case clear the selection.
+ var mousePos = editor.mapFromItem(item, mouse.x, mouse.y)
+ var editorPos = editor.positionAt(mousePos.x, mousePos.y)
+ editor.select(editorPos, editorPos)
+ }
+ }
+ onPositionChanged: {
+ handleDragged = true
+ var pt = mapToItem(editor, mouse.x - offset.x, mouse.y - offset.y)
+
+ // limit vertically within mix/max coordinates or content bounds
+ var min = (minimum !== -1) ? minimum : 0
+ var max = (maximum !== -1) ? maximum : editor.length
+ pt.y = Math.max(pt.y, editor.positionToRectangle(min).y)
+ pt.y = Math.min(pt.y, editor.positionToRectangle(max).y)
+
+ var pos = editor.positionAt(pt.x, pt.y)
+
+ // limit horizontally within min/max character positions
+ if (minimum !== -1)
+ pos = Math.max(pos, minimum)
+ pos = Math.max(pos, 0)
+ if (maximum !== -1)
+ pos = Math.min(pos, maximum)
+ pos = Math.min(pos, editor.length)
+
+ handle.position = pos
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qmlc
new file mode 100644
index 00000000..f1ad2f30
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextHandle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qml
new file mode 100644
index 00000000..ac78c269
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qml
@@ -0,0 +1,201 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Window 2.2
+import QtQuick.Controls.Private 1.0
+
+TextInput {
+ id: input
+
+ property Item control
+ property alias cursorHandle: cursorHandle.delegate
+ property alias selectionHandle: selectionHandle.delegate
+
+ property bool blockRecursion: false
+ property bool hasSelection: selectionStart !== selectionEnd
+ readonly property int selectionPosition: selectionStart !== cursorPosition ? selectionStart : selectionEnd
+ readonly property alias containsMouse: mouseArea.containsMouse
+ property alias editMenu: editMenu
+ cursorDelegate: __style && __style.__cursorDelegate ? __style.__cursorDelegate : null
+
+ selectByMouse: control.selectByMouse && (!Settings.isMobile || !cursorHandle.delegate || !selectionHandle.delegate)
+
+ // force re-evaluation when selection moves:
+ // - cursorRectangle changes => content scrolled
+ // - contentWidth changes => text layout changed
+ property rect selectionRectangle: cursorRectangle.x && contentWidth ? positionToRectangle(selectionPosition)
+ : positionToRectangle(selectionPosition)
+
+ onSelectionStartChanged: syncHandlesWithSelection()
+ onCursorPositionChanged: syncHandlesWithSelection()
+
+ function syncHandlesWithSelection()
+ {
+ if (!blockRecursion && selectionHandle.delegate) {
+ blockRecursion = true
+ // We cannot use property selectionPosition since it gets updated after onSelectionStartChanged
+ cursorHandle.position = cursorPosition
+ selectionHandle.position = (selectionStart !== cursorPosition) ? selectionStart : selectionEnd
+ blockRecursion = false
+ }
+ }
+
+ function activate() {
+ if (activeFocusOnPress) {
+ forceActiveFocus()
+ if (!readOnly)
+ Qt.inputMethod.show()
+ }
+ cursorHandle.activate()
+ selectionHandle.activate()
+ }
+
+ function moveHandles(cursor, selection) {
+ blockRecursion = true
+ cursorPosition = cursor
+ if (selection === -1) {
+ selectWord()
+ selection = selectionStart
+ }
+ selectionHandle.position = selection
+ cursorHandle.position = cursorPosition
+ blockRecursion = false
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ cursorShape: Qt.IBeamCursor
+ acceptedButtons: (input.selectByMouse ? Qt.NoButton : Qt.LeftButton) | (control.menu ? Qt.RightButton : Qt.NoButton)
+ onClicked: {
+ if (editMenu.item)
+ return;
+ var pos = input.positionAt(mouse.x, mouse.y)
+ input.moveHandles(pos, pos)
+ input.activate()
+ }
+ onPressAndHold: {
+ if (editMenu.item)
+ return;
+ var pos = input.positionAt(mouse.x, mouse.y)
+ input.moveHandles(pos, control.selectByMouse ? -1 : pos)
+ input.activate()
+ }
+ }
+
+ EditMenu {
+ id: editMenu
+ input: parent
+ mouseArea: mouseArea
+ control: parent.control
+ cursorHandle: cursorHandle
+ selectionHandle: selectionHandle
+ anchors.fill: parent
+ }
+
+ ScenePosListener {
+ id: listener
+ item: input
+ enabled: input.activeFocus && Qt.platform.os !== "ios" && Settings.isMobile
+ }
+
+ TextHandle {
+ id: selectionHandle
+
+ editor: input
+ z: 1000001 // DefaultWindowDecoration+1
+ parent: !input.activeFocus || Qt.platform.os === "ios" ? control : Window.contentItem // float (QTBUG-42538)
+ control: input.control
+ active: control.selectByMouse && Settings.isMobile
+ maximum: cursorHandle.position - 1
+
+ readonly property var mappedOrigin: editor.mapToItem(parent, 0,0)
+
+ // Mention scenePos in the mappedPos binding to force re-evaluation if it changes
+ readonly property var mappedPos: listener.scenePos.x !== listener.scenePos.y !== Number.MAX_VALUE ?
+ editor.mapToItem(parent, editor.selectionRectangle.x, editor.selectionRectangle.y) : -1
+ x: mappedPos.x
+ y: mappedPos.y
+
+ visible: pressed || (input.hasSelection && handleX + handleWidth >= -1 && handleX - mappedOrigin.x <= control.width + 1)
+
+ onPositionChanged: {
+ if (!input.blockRecursion) {
+ input.blockRecursion = true
+ input.select(selectionHandle.position, cursorHandle.position)
+ if (pressed)
+ input.ensureVisible(position)
+ input.blockRecursion = false
+ }
+ }
+ }
+
+ TextHandle {
+ id: cursorHandle
+
+ editor: input
+ z: 1000001 // DefaultWindowDecoration+1
+ parent: !input.activeFocus || Qt.platform.os === "ios" ? control : Window.contentItem // float (QTBUG-42538)
+ control: input.control
+ active: control.selectByMouse && Settings.isMobile
+ minimum: input.hasSelection ? selectionHandle.position + 1 : -1
+
+ readonly property var mappedOrigin: editor.mapToItem(parent, 0,0)
+
+ // Mention scenePos in the mappedPos binding to force re-evaluation if it changes
+ readonly property var mappedPos: listener.scenePos.x !== listener.scenePos.y !== Number.MAX_VALUE ?
+ editor.mapToItem(parent, editor.cursorRectangle.x, editor.cursorRectangle.y) : -1
+ x: mappedPos.x
+ y: mappedPos.y
+
+ visible: pressed || ((input.cursorVisible || input.hasSelection) && handleX + handleWidth >= -1 && handleX - mappedOrigin.x <= control.width + 1)
+
+ onPositionChanged: {
+ if (!input.blockRecursion) {
+ input.blockRecursion = true
+ if (!input.hasSelection)
+ selectionHandle.position = cursorHandle.position
+ input.select(selectionHandle.position, cursorHandle.position)
+ input.blockRecursion = false
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qmlc
new file mode 100644
index 00000000..86fce2f5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextInputWithHandles.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qml
new file mode 100644
index 00000000..83254698
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+pragma Singleton
+import QtQuick 2.2
+Text {
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qmlc
new file mode 100644
index 00000000..d0e3c559
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TextSingleton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qml
new file mode 100644
index 00000000..e6fba40c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qml
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.4
+import QtQuick.Controls 1.3
+import QtQuick.Controls.Private 1.0
+
+FocusScope {
+ id: button
+
+ property Menu menu
+ readonly property bool pressed: behavior.containsPress || behavior.keyPressed
+ readonly property alias hovered: behavior.containsMouse
+
+ property alias panel: loader.sourceComponent
+ property alias __panel: loader.item
+
+ activeFocusOnTab: true
+ Accessible.role: Accessible.Button
+ implicitWidth: __panel ? __panel.implicitWidth : 0
+ implicitHeight: __panel ? __panel.implicitHeight : 0
+
+ Loader {
+ id: loader
+ anchors.fill: parent
+ property QtObject styleData: QtObject {
+ readonly property alias pressed: button.pressed
+ readonly property alias hovered: button.hovered
+ readonly property alias activeFocus: button.activeFocus
+ }
+ onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", button)
+ }
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && !behavior.keyPressed)
+ behavior.keyPressed = true
+ }
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat && behavior.keyPressed)
+ behavior.keyPressed = false
+ }
+ onFocusChanged: {
+ if (!focus)
+ behavior.keyPressed = false
+ }
+ onPressedChanged: {
+ if (!Settings.hasTouchScreen && !pressed && menu)
+ popupMenuTimer.start()
+ }
+
+ MouseArea {
+ id: behavior
+ property bool keyPressed: false
+
+ anchors.fill: parent
+ enabled: !keyPressed
+ hoverEnabled: Settings.hoverEnabled
+
+ onReleased: {
+ if (Settings.hasTouchScreen && containsMouse && menu)
+ popupMenuTimer.start()
+ }
+
+ Timer {
+ id: popupMenuTimer
+ interval: 10
+ onTriggered: {
+ behavior.keyPressed = false
+ if (Qt.application.layoutDirection === Qt.RightToLeft)
+ menu.__popup(Qt.rect(button.width, button.height, 0, 0), 0)
+ else
+ menu.__popup(Qt.rect(0, 0, button.width, button.height), 0)
+ }
+ }
+ }
+
+ Qml.Binding {
+ target: menu
+ property: "__minimumWidth"
+ value: button.width
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Qml.Binding {
+ target: menu
+ property: "__visualItem"
+ value: button
+ restoreMode: Binding.RestoreBinding
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qmlc
new file mode 100644
index 00000000..e7d0bce4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/ToolMenuButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qml
new file mode 100644
index 00000000..ed9566af
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qml
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TreeViewItemDelegateLoader
+ \internal
+ \qmlabstract
+ \inqmlmodule QtQuick.Controls.Private
+*/
+
+TableViewItemDelegateLoader {
+ id: itemDelegateLoader
+
+ /* \internal */
+ readonly property int __itemIndentation: __style && __index === 0
+ ? __style.__indentation * (styleData.depth + 1) : 0
+ /* \internal */
+ property TreeModelAdaptor __treeModel: null
+
+ // Exposed to the item delegate
+ styleData: QtObject {
+ readonly property int row: __rowItem ? __rowItem.rowIndex : -1
+ readonly property int column: __index
+ readonly property int elideMode: __column ? __column.elideMode : Text.ElideLeft
+ readonly property int textAlignment: __column ? __column.horizontalAlignment : Text.AlignLeft
+ readonly property bool selected: __rowItem ? __rowItem.itemSelected : false
+ readonly property bool hasActiveFocus: __rowItem ? __rowItem.activeFocus : false
+ readonly property bool pressed: __mouseArea && row === __mouseArea.pressedRow && column === __mouseArea.pressedColumn
+ readonly property color textColor: __rowItem ? __rowItem.itemTextColor : "black"
+ readonly property string role: __column ? __column.role : ""
+ readonly property var value: model && model.hasOwnProperty(role) ? model[role] : ""
+ readonly property var index: model ? model["_q_TreeView_ModelIndex"] : __treeModel.index(-1,-1)
+ readonly property int depth: model && column === 0 ? model["_q_TreeView_ItemDepth"] : 0
+ readonly property bool hasChildren: model ? model["_q_TreeView_HasChildren"] : false
+ readonly property bool hasSibling: model ? model["_q_TreeView_HasSibling"] : false
+ readonly property bool isExpanded: model ? model["_q_TreeView_ItemExpanded"] : false
+ }
+
+ onLoaded: {
+ item.x = Qt.binding(function() { return __itemIndentation})
+ item.width = Qt.binding(function() { return width - __itemIndentation })
+ }
+
+ Loader {
+ id: branchDelegateLoader
+ active: __model !== undefined
+ && __index === 0
+ && styleData.hasChildren
+ visible: itemDelegateLoader.width > __itemIndentation
+ sourceComponent: __style && __style.__branchDelegate || null
+ anchors.right: parent.item ? parent.item.left : undefined
+ anchors.rightMargin: __style.__indentation > width ? (__style.__indentation - width) / 2 : 0
+ anchors.verticalCenter: parent.verticalCenter
+ property QtObject styleData: itemDelegateLoader.styleData
+ onLoaded: if (__rowItem) __rowItem.branchDecoration = item
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qmlc
new file mode 100644
index 00000000..cf910880
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/TreeViewItemDelegateLoader.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/qmldir
new file mode 100644
index 00000000..9fe84203
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/qmldir
@@ -0,0 +1,37 @@
+module QtQuick.Controls.Private
+AbstractCheckable 1.0 AbstractCheckable.qml
+CalendarHeaderModel 1.0 CalendarHeaderModel.qml
+Control 1.0 Control.qml
+CalendarUtils 1.0 CalendarUtils.js
+FocusFrame 1.0 FocusFrame.qml
+Margins 1.0 Margins.qml
+BasicButton 1.0 BasicButton.qml
+ScrollBar 1.0 ScrollBar.qml
+ScrollViewHelper 1.0 ScrollViewHelper.qml
+Style 1.0 Style.qml
+MenuItemSubControls 1.0 MenuItemSubControls.qml
+TabBar 1.0 TabBar.qml
+StackViewSlideDelegate 1.0 StackViewSlideDelegate.qml
+StyleHelpers 1.0 style.js
+JSArray 1.0 StackView.js
+TableViewSelection 1.0 TableViewSelection.qml
+FastGlow 1.0 FastGlow.qml
+SourceProxy 1.0 SourceProxy.qml
+GroupBoxStyle 1.0 ../Styles/Base/GroupBoxStyle.qml
+FocusFrameStyle 1.0 ../Styles/Base/FocusFrameStyle.qml
+ToolButtonStyle 1.0 ../Styles/Base/ToolButtonStyle.qml
+MenuContentItem 1.0 MenuContentItem.qml
+MenuContentScroller 1.0 MenuContentScroller.qml
+ColumnMenuContent 1.0 ColumnMenuContent.qml
+ContentItem 1.0 ContentItem.qml
+HoverButton 1.0 HoverButton.qml
+singleton SystemPaletteSingleton 1.0 SystemPaletteSingleton.qml
+singleton TextSingleton 1.0 TextSingleton.qml
+TextHandle 1.0 TextHandle.qml
+TextInputWithHandles 1.0 TextInputWithHandles.qml
+EditMenu 1.0 EditMenu.qml
+EditMenu_base 1.0 EditMenu_base.qml
+ToolMenuButton 1.0 ToolMenuButton.qml
+BasicTableView 1.0 BasicTableView.qml
+TableViewItemDelegateLoader 1.0 TableViewItemDelegateLoader.qml
+TreeViewItemDelegateLoader 1.0 TreeViewItemDelegateLoader.qml
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.js b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.js
new file mode 100644
index 00000000..844fdbda
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.js
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+.pragma library
+
+function underlineAmpersands(match, p1, p2, p3) {
+ if (p2 === "&")
+ return p1.concat(p2, p3)
+ return p1.concat("", p2, "", p3)
+}
+
+function removeAmpersands(match, p1, p2, p3) {
+ return p1.concat(p2, p3)
+}
+
+function replaceAmpersands(text, replaceFunction) {
+ return text.replace(/([^&]*)&(.)([^&]*)/g, replaceFunction)
+}
+
+function stylizeMnemonics(text) {
+ return replaceAmpersands(text, underlineAmpersands)
+}
+
+function removeMnemonics(text) {
+ return replaceAmpersands(text, removeAmpersands)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.jsc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.jsc
new file mode 100644
index 00000000..f079143e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Private/style.jsc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qml
new file mode 100644
index 00000000..9171f7d7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qml
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ProgressBar
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief A progress indicator.
+
+ \image progressbar.png
+
+ The ProgressBar is used to give an indication of the progress of an operation.
+ \l value is updated regularly and must be between \l minimumValue and \l maximumValue.
+
+ \code
+ Column {
+ ProgressBar {
+ value: 0.5
+ }
+ ProgressBar {
+ indeterminate: true
+ }
+ }
+ \endcode
+
+ You can create a custom appearance for a ProgressBar by
+ assigning a \l {ProgressBarStyle}.
+*/
+
+Control {
+ id: progressbar
+
+ /*! This property holds the progress bar's current value.
+ Attempting to change the current value to one outside the minimum-maximum
+ range has no effect on the current value.
+
+ The default value is \c{0}.
+ */
+ property real value: 0
+
+ /*! This property is the progress bar's minimum value.
+ The \l value is clamped to this value.
+ The default value is \c{0}.
+ */
+ property real minimumValue: 0
+
+ /*! This property is the progress bar's maximum value.
+ The \l value is clamped to this value.
+ If maximumValue is smaller than \l minimumValue, \l minimumValue will be enforced.
+ The default value is \c{1}.
+ */
+ property real maximumValue: 1
+
+ /*! This property toggles indeterminate mode.
+ When the actual progress is unknown, use this option.
+ The progress bar will be animated as a busy indicator instead.
+ The default value is \c false.
+ */
+ property bool indeterminate: false
+
+ /*! \qmlproperty enumeration orientation
+
+ This property holds the orientation of the progress bar.
+
+ \list
+ \li Qt.Horizontal - Horizontal orientation. (Default)
+ \li Qt.Vertical - Vertical orientation.
+ \endlist
+ */
+ property int orientation: Qt.Horizontal
+
+ /*! \qmlproperty bool ProgressBar::hovered
+
+ This property indicates whether the control is being hovered.
+ */
+ readonly property alias hovered: hoverArea.containsMouse
+
+ /*! \internal */
+ style: Settings.styleComponent(Settings.style, "ProgressBarStyle.qml", progressbar)
+
+ /*! \internal */
+ property bool __initialized: false
+ /*! \internal */
+ onMaximumValueChanged: setValue(value)
+ /*! \internal */
+ onMinimumValueChanged: setValue(value)
+ /*! \internal */
+ onValueChanged: if (__initialized) setValue(value)
+ /*! \internal */
+ Component.onCompleted: {
+ __initialized = true;
+ setValue(value)
+ }
+
+ activeFocusOnTab: false
+
+ Accessible.role: Accessible.ProgressBar
+ Accessible.name: value
+
+ implicitWidth:(__panel ? __panel.implicitWidth : 0)
+ implicitHeight: (__panel ? __panel.implicitHeight: 0)
+
+ MouseArea {
+ id: hoverArea
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ }
+
+ /*! \internal */
+ function setValue(v) {
+ var newval = parseFloat(v)
+ if (!isNaN(newval)) {
+ // we give minimumValue priority over maximum if they are inconsistent
+ if (newval > maximumValue) {
+ if (maximumValue >= minimumValue)
+ newval = maximumValue;
+ else
+ newval = minimumValue
+ } else if (v < minimumValue) {
+ newval = minimumValue
+ }
+ if (value !== newval)
+ value = newval
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qmlc
new file mode 100644
index 00000000..aac176b7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ProgressBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qml
new file mode 100644
index 00000000..cc191f5b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype RadioButton
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief A radio button with a text label.
+
+ \image radiobutton.png
+
+ A RadioButton is an option button that can be switched on (checked) or off
+ (unchecked). Radio buttons typically present the user with a "one of many"
+ choices. In a group of radio buttons, only one radio button can be
+ checked at a time; if the user selects another button, the previously
+ selected button is switched off.
+
+ \qml
+ GroupBox {
+ title: "Tab Position"
+
+ RowLayout {
+ ExclusiveGroup { id: tabPositionGroup }
+ RadioButton {
+ text: "Top"
+ checked: true
+ exclusiveGroup: tabPositionGroup
+ }
+ RadioButton {
+ text: "Bottom"
+ exclusiveGroup: tabPositionGroup
+ }
+ }
+ }
+ \endqml
+
+ You can create a custom appearance for a RadioButton by
+ assigning a \l {RadioButtonStyle}.
+*/
+
+AbstractCheckable {
+ id: radioButton
+
+ activeFocusOnTab: true
+
+ Accessible.name: text
+ Accessible.role: Accessible.RadioButton
+
+ /*!
+ The style that should be applied to the radio button. Custom style
+ components can be created with:
+
+ \codeline Qt.createComponent("path/to/style.qml", radioButtonId);
+ */
+ style: Settings.styleComponent(Settings.style, "RadioButtonStyle.qml", radioButton)
+
+ __cycleStatesHandler: function() { checked = !checked; }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qmlc
new file mode 100644
index 00000000..8969b581
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/RadioButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qml
new file mode 100644
index 00000000..f79cfc8e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qml
@@ -0,0 +1,374 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+
+/*!
+ \qmltype ScrollView
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup views
+ \ingroup controls
+ \brief Provides a scrolling view within another Item.
+
+ \image scrollview.png
+
+ A ScrollView can be used either to replace a \l Flickable or decorate an
+ existing \l Flickable. Depending on the platform, it will add scroll bars and
+ a content frame.
+
+ Only one Item can be a direct child of the ScrollView and the child is implicitly anchored
+ to fill the scroll view.
+
+ Example:
+ \code
+ ScrollView {
+ Image { source: "largeImage.png" }
+ }
+ \endcode
+
+ In the previous example the Image item will implicitly get scroll behavior as if it was
+ used within a \l Flickable. The width and height of the child item will be used to
+ define the size of the content area.
+
+ Example:
+ \code
+ ScrollView {
+ ListView {
+ ...
+ }
+ }
+ \endcode
+
+ In this case the content size of the ScrollView will simply mirror that of its contained
+ \l flickableItem.
+
+ You can create a custom appearance for a ScrollView by
+ assigning a \l {ScrollViewStyle}.
+*/
+
+FocusScope {
+ id: root
+
+ implicitWidth: 240
+ implicitHeight: 150
+
+ /*!
+ This property tells the ScrollView if it should render
+ a frame around its content.
+
+ The default value is \c false.
+ */
+ property bool frameVisible: false
+
+ /*! \qmlproperty enumeration ScrollView::horizontalScrollBarPolicy
+ \since QtQuick.Controls 1.3
+
+ This property holds the policy for showing the horizontal scrollbar.
+ It can be any of the following values:
+ \list
+ \li Qt.ScrollBarAsNeeded
+ \li Qt.ScrollBarAlwaysOff
+ \li Qt.ScrollBarAlwaysOn
+ \endlist
+
+ The default policy is \c Qt.ScrollBarAsNeeded.
+ */
+ property alias horizontalScrollBarPolicy: scroller.horizontalScrollBarPolicy
+
+ /*! \qmlproperty enumeration ScrollView::verticalScrollBarPolicy
+ \since QtQuick.Controls 1.3
+
+ This property holds the policy for showing the vertical scrollbar.
+ It can be any of the following values:
+ \list
+ \li Qt.ScrollBarAsNeeded
+ \li Qt.ScrollBarAlwaysOff
+ \li Qt.ScrollBarAlwaysOn
+ \endlist
+
+ The default policy is \c Qt.ScrollBarAsNeeded.
+ */
+ property alias verticalScrollBarPolicy: scroller.verticalScrollBarPolicy
+
+ /*!
+ This property controls if there should be a highlight
+ around the frame when the ScrollView has input focus.
+
+ The default value is \c false.
+
+ \note This property is only applicable on some platforms, such
+ as Mac OS.
+ */
+ property bool highlightOnFocus: false
+
+ /*!
+ \qmlproperty Item ScrollView::viewport
+
+ The viewport determines the current "window" on the contentItem.
+ In other words, it clips it and the size of the viewport tells you
+ how much of the content area is visible.
+ */
+ property alias viewport: viewportItem
+
+ /*!
+ \qmlproperty Item ScrollView::flickableItem
+
+ The flickableItem of the ScrollView. If the contentItem provided
+ to the ScrollView is a Flickable, it will be the \l contentItem.
+ */
+ readonly property alias flickableItem: internal.flickableItem
+
+ /*!
+ The contentItem of the ScrollView. This is set by the user.
+
+ Note that the definition of contentItem is somewhat different to that
+ of a Flickable, where the contentItem is implicitly created.
+ */
+ default property Item contentItem
+
+ /*! \internal */
+ property alias __scroller: scroller
+ /*! \internal */
+ property alias __verticalScrollbarOffset: scroller.verticalScrollbarOffset
+ /*! \internal */
+ property alias __wheelAreaScrollSpeed: wheelArea.scrollSpeed
+ /*! \internal */
+ property int __scrollBarTopMargin: 0
+ /*! \internal */
+ property int __viewTopMargin: 0
+ /*! \internal */
+ property alias __horizontalScrollBar: scroller.horizontalScrollBar
+ /*! \internal */
+ property alias __verticalScrollBar: scroller.verticalScrollBar
+ /*! \qmlproperty Component ScrollView::style
+
+ The style Component for this control.
+ \sa {Qt Quick Controls 1 Styles QML Types}
+
+ */
+ property Component style: Settings.styleComponent(Settings.style, "ScrollViewStyle.qml", root)
+
+ /*! \internal */
+ property Style __style: styleLoader.item
+
+ activeFocusOnTab: false
+
+ onContentItemChanged: {
+
+ if (contentItem.hasOwnProperty("contentY") && // Check if flickable
+ contentItem.hasOwnProperty("contentHeight")) {
+ internal.flickableItem = contentItem // "Use content if it is a flickable
+ internal.flickableItem.parent = viewportItem
+ } else {
+ internal.flickableItem = flickableComponent.createObject(viewportItem)
+ contentItem.parent = internal.flickableItem.contentItem
+ }
+ internal.flickableItem.anchors.fill = viewportItem
+ if (!Settings.hasTouchScreen)
+ internal.flickableItem.interactive = false
+ }
+
+
+ children: Item {
+ id: internal
+
+ property Flickable flickableItem
+
+ Loader {
+ id: styleLoader
+ sourceComponent: style
+ onStatusChanged: {
+ if (status === Loader.Error)
+ console.error("Failed to load Style for", root)
+ }
+ property alias __control: root
+ }
+
+ Qml.Binding {
+ target: flickableItem
+ property: "contentHeight"
+ when: contentItem !== flickableItem
+ value: contentItem ? contentItem.height : 0
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Qml.Binding {
+ target: flickableItem
+ when: contentItem !== flickableItem
+ property: "contentWidth"
+ value: contentItem ? contentItem.width : 0
+ restoreMode: Binding.RestoreBinding
+ }
+
+ Connections {
+ target: flickableItem
+
+ function onContentYChanged() {
+ scroller.blockUpdates = true
+ scroller.verticalScrollBar.value = flickableItem.contentY - flickableItem.originY
+ scroller.blockUpdates = false
+ }
+
+ function onContentXChanged() {
+ scroller.blockUpdates = true
+ scroller.horizontalScrollBar.value = flickableItem.contentX - flickableItem.originX
+ scroller.blockUpdates = false
+ }
+
+ }
+
+ anchors.fill: parent
+
+ Component {
+ id: flickableComponent
+ Flickable {}
+ }
+
+ WheelArea {
+ id: wheelArea
+ parent: flickableItem
+ z: -1
+ // ### Note this is needed due to broken mousewheel behavior in Flickable.
+
+ anchors.fill: parent
+
+ property int acceleration: 40
+ property int flickThreshold: Settings.dragThreshold
+ property real speedThreshold: 3
+ property real ignored: 0.001 // ## flick() does not work with 0 yVelocity
+ property int maxFlick: 400
+
+ property bool horizontalRecursionGuard: false
+ property bool verticalRecursionGuard: false
+
+ horizontalMinimumValue: 0
+ horizontalMaximumValue: flickableItem ? flickableItem.contentWidth - viewport.width : 0
+ onHorizontalMaximumValueChanged: {
+ wheelArea.horizontalRecursionGuard = true
+ //if horizontalMaximumValue changed, horizontalValue may be actually synced with
+ wheelArea.horizontalValue = flickableItem.contentX - flickableItem.originX;
+ wheelArea.horizontalRecursionGuard = false
+ }
+
+ verticalMinimumValue: 0
+ verticalMaximumValue: flickableItem ? flickableItem.contentHeight - viewport.height + __viewTopMargin : 0
+ onVerticalMaximumValueChanged: {
+ wheelArea.verticalRecursionGuard = true
+ //if verticalMaximumValue changed, verticalValue may be actually synced with
+ wheelArea.verticalValue = flickableItem.contentY - flickableItem.originY;
+ wheelArea.verticalRecursionGuard = false
+ }
+
+ // The default scroll speed for typical angle-based mouse wheels. The value
+ // comes originally from QTextEdit, which sets 20px steps by default, as well as
+ // QQuickWheelArea.
+ // TODO: centralize somewhere, QPlatformTheme?
+ scrollSpeed: 20 * (__style && __style.__wheelScrollLines || 1)
+
+ Connections {
+ target: flickableItem
+
+ function onContentYChanged() {
+ wheelArea.verticalRecursionGuard = true
+ wheelArea.verticalValue = flickableItem.contentY - flickableItem.originY
+ wheelArea.verticalRecursionGuard = false
+ }
+ function onContentXChanged() {
+ wheelArea.horizontalRecursionGuard = true
+ wheelArea.horizontalValue = flickableItem.contentX - flickableItem.originX
+ wheelArea.horizontalRecursionGuard = false
+ }
+ }
+
+ onVerticalValueChanged: {
+ if (!verticalRecursionGuard) {
+ var effectiveContentY = flickableItem.contentY - flickableItem.originY
+ if (effectiveContentY < flickThreshold && verticalDelta > speedThreshold) {
+ flickableItem.flick(ignored, Math.min(maxFlick, acceleration * verticalDelta))
+ } else if (effectiveContentY > flickableItem.contentHeight - flickThreshold - viewport.height
+ && verticalDelta < -speedThreshold) {
+ flickableItem.flick(ignored, Math.max(-maxFlick, acceleration * verticalDelta))
+ } else {
+ flickableItem.contentY = verticalValue + flickableItem.originY
+ }
+ }
+ }
+
+ onHorizontalValueChanged: {
+ if (!horizontalRecursionGuard)
+ flickableItem.contentX = horizontalValue + flickableItem.originX
+ }
+ }
+
+ ScrollViewHelper {
+ id: scroller
+ anchors.fill: parent
+ active: wheelArea.active
+ property bool outerFrame: !frameVisible || !(__style ? __style.__externalScrollBars : 0)
+ property int scrollBarSpacing: outerFrame ? 0 : (__style ? __style.__scrollBarSpacing : 0)
+ property int verticalScrollbarOffset: verticalScrollBar.visible && !verticalScrollBar.isTransient ?
+ verticalScrollBar.width + scrollBarSpacing : 0
+ property int horizontalScrollbarOffset: horizontalScrollBar.visible && !horizontalScrollBar.isTransient ?
+ horizontalScrollBar.height + scrollBarSpacing : 0
+ Loader {
+ id: frameLoader
+ sourceComponent: __style ? __style.frame : null
+ anchors.fill: parent
+ anchors.rightMargin: scroller.outerFrame ? 0 : scroller.verticalScrollbarOffset
+ anchors.bottomMargin: scroller.outerFrame ? 0 : scroller.horizontalScrollbarOffset
+ }
+
+ Item {
+ id: viewportItem
+ anchors.fill: frameLoader
+ anchors.topMargin: frameVisible ? __style.padding.top : 0
+ anchors.leftMargin: frameVisible ? __style.padding.left : 0
+ anchors.rightMargin: (frameVisible ? __style.padding.right : 0) + (scroller.outerFrame ? scroller.verticalScrollbarOffset : 0)
+ anchors.bottomMargin: (frameVisible ? __style.padding.bottom : 0) + (scroller.outerFrame ? scroller.horizontalScrollbarOffset : 0)
+ clip: true
+ }
+ }
+ FocusFrame { visible: highlightOnFocus && root.activeFocus }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qmlc
new file mode 100644
index 00000000..e454b14f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ScrollView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qml
new file mode 100644
index 00000000..ff2f0c23
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qml
@@ -0,0 +1,347 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Slider
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Provides a vertical or horizontal slider control.
+
+ \image slider.png
+
+ The slider is the classic control for providing a bounded value. It lets
+ the user move a slider handle along a horizontal or vertical groove
+ and translates the handle's position into a value within the legal range.
+
+ \code
+ Slider {
+ value: 0.5
+ }
+ \endcode
+
+ The slider value is by default in the range [0, 1]. If integer values are
+ needed, you can set the \l stepSize.
+
+ You can create a custom appearance for a Slider by
+ assigning a \l {SliderStyle}.
+*/
+
+Control {
+ id: slider
+
+ /*!
+ \qmlproperty enumeration Slider::orientation
+
+ This property holds the layout orientation of the slider.
+ The default value is \c Qt.Horizontal.
+ */
+ property int orientation: Qt.Horizontal
+
+ /*!
+ \qmlproperty real Slider::minimumValue
+
+ This property holds the minimum value of the slider.
+ The default value is \c{0.0}.
+ */
+ property alias minimumValue: range.minimumValue
+
+ /*!
+ \qmlproperty real Slider::maximumValue
+
+ This property holds the maximum value of the slider.
+ The default value is \c{1.0}.
+ */
+ property alias maximumValue: range.maximumValue
+
+ /*!
+ \qmlproperty bool Slider::updateValueWhileDragging
+
+ This property indicates whether the current \l value should be updated while
+ the user is moving the slider handle, or only when the button has been released.
+ This property could for instance be modified if changing the slider value would turn
+ out to be too time consuming.
+
+ The default value is \c true.
+ */
+ property bool updateValueWhileDragging: true
+
+ /*!
+ \qmlproperty bool Slider::pressed
+
+ This property indicates whether the slider handle is being pressed.
+ */
+ readonly property alias pressed: mouseArea.pressed
+
+ /*!
+ \qmlproperty bool Slider::hovered
+
+ This property indicates whether the slider handle is being hovered.
+ */
+ readonly property alias hovered: mouseArea.handleHovered
+
+ /*!
+ \qmlproperty real Slider::stepSize
+
+ This property indicates the slider step size.
+
+ A value of 0 indicates that the value of the slider operates in a
+ continuous range between \l minimumValue and \l maximumValue.
+
+ Any non 0 value indicates a discrete stepSize. The following example
+ will generate a slider with integer values in the range [0-5].
+
+ \qml
+ Slider {
+ maximumValue: 5.0
+ stepSize: 1.0
+ }
+ \endqml
+
+ The default value is \c{0.0}.
+ */
+ property alias stepSize: range.stepSize
+
+ /*!
+ \qmlproperty real Slider::value
+
+ This property holds the current value of the slider.
+ The default value is \c{0.0}.
+ */
+ property alias value: range.value
+
+ /*!
+ \qmlproperty bool Slider::activeFocusOnPress
+
+ This property indicates whether the slider should receive active focus when
+ pressed.
+ */
+ property bool activeFocusOnPress: false
+
+ /*!
+ \qmlproperty bool Slider::tickmarksEnabled
+
+ This property indicates whether the slider should display tickmarks
+ at step intervals. Tick mark spacing is calculated based on the
+ \l stepSize property.
+
+ The default value is \c false.
+
+ \note This property may be ignored on some platforms when using the native style (e.g. Android).
+ */
+ property bool tickmarksEnabled: false
+
+ /*!
+ \qmlproperty bool Slider::wheelEnabled
+
+ This property determines whether the control handles wheel events.
+ The default value is \c true.
+
+ \since QtQuick.Controls 1.6
+ */
+ property alias wheelEnabled: wheelarea.enabled
+
+ /*! \internal */
+ property bool __horizontal: orientation === Qt.Horizontal
+
+ /*! \internal
+ The extra arguments positionAtMinimum and positionAtMaximum are there to force
+ re-evaluation of the handle position when the constraints change (QTBUG-41255),
+ and the same for range.minimumValue (QTBUG-51765) and range.maximumValue (QTBUG-63354).
+ */
+ property real __handlePos: range.valueForPosition(__horizontal ? fakeHandle.x : fakeHandle.y,
+ range.positionAtMinimum, range.positionAtMaximum, range.minimumValue, range.maximumValue)
+
+ activeFocusOnTab: true
+
+ Accessible.role: Accessible.Slider
+ /*! \internal */
+ function accessibleIncreaseAction() {
+ range.increaseSingleStep()
+ }
+ /*! \internal */
+ function accessibleDecreaseAction() {
+ range.decreaseSingleStep()
+ }
+
+ style: Settings.styleComponent(Settings.style, "SliderStyle.qml", slider)
+
+ Keys.onRightPressed: if (__horizontal) range.increaseSingleStep()
+ Keys.onLeftPressed: if (__horizontal) range.decreaseSingleStep()
+ Keys.onUpPressed: if (!__horizontal) range.increaseSingleStep()
+ Keys.onDownPressed: if (!__horizontal) range.decreaseSingleStep()
+
+ RangeModel {
+ id: range
+ minimumValue: 0.0
+ maximumValue: 1.0
+ value: 0
+ stepSize: 0.0
+ inverted: __horizontal ? false : true
+
+ positionAtMinimum: 0
+ positionAtMaximum: __horizontal ? slider.width - fakeHandle.width : slider.height - fakeHandle.height
+ }
+
+ Item {
+ id: fakeHandle
+ anchors.verticalCenter: __horizontal ? parent.verticalCenter : undefined
+ anchors.horizontalCenter: !__horizontal ? parent.horizontalCenter : undefined
+ width: __panel.handleWidth
+ height: __panel.handleHeight
+
+ function updatePos() {
+ if (updateValueWhileDragging && !mouseArea.drag.active)
+ range.position = __horizontal ? x : y
+ }
+
+ onXChanged: updatePos();
+ onYChanged: updatePos();
+ }
+
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ property int clickOffset: 0
+ property real pressX: 0
+ property real pressY: 0
+ property bool handleHovered: false
+
+ function clamp ( val ) {
+ return Math.max(range.positionAtMinimum, Math.min(range.positionAtMaximum, val))
+ }
+
+ function updateHandlePosition(mouse, force) {
+ var pos, overThreshold
+ if (__horizontal) {
+ pos = clamp (mouse.x + clickOffset - fakeHandle.width/2)
+ overThreshold = Math.abs(mouse.x - pressX) >= Settings.dragThreshold
+ if (overThreshold)
+ preventStealing = true
+ if (overThreshold || force)
+ fakeHandle.x = pos
+ } else if (!__horizontal) {
+ pos = clamp (mouse.y + clickOffset- fakeHandle.height/2)
+ overThreshold = Math.abs(mouse.y - pressY) >= Settings.dragThreshold
+ if (overThreshold)
+ preventStealing = true
+ if (overThreshold || force)
+ fakeHandle.y = pos
+ }
+ }
+
+ onPositionChanged: {
+ if (pressed)
+ updateHandlePosition(mouse, !Settings.hasTouchScreen || preventStealing)
+
+ var point = mouseArea.mapToItem(fakeHandle, mouse.x, mouse.y)
+ handleHovered = fakeHandle.contains(Qt.point(point.x, point.y))
+ }
+
+ onPressed: {
+ if (slider.activeFocusOnPress)
+ slider.forceActiveFocus();
+
+ if (handleHovered) {
+ var point = mouseArea.mapToItem(fakeHandle, mouse.x, mouse.y)
+ clickOffset = __horizontal ? fakeHandle.width/2 - point.x : fakeHandle.height/2 - point.y
+ }
+ pressX = mouse.x
+ pressY = mouse.y
+ updateHandlePosition(mouse, !Settings.hasTouchScreen)
+ }
+
+ onReleased: {
+ updateHandlePosition(mouse, Settings.hasTouchScreen)
+ // If we don't update while dragging, this is the only
+ // moment that the range is updated.
+ if (!slider.updateValueWhileDragging)
+ range.position = __horizontal ? fakeHandle.x : fakeHandle.y;
+ clickOffset = 0
+ preventStealing = false
+ }
+
+ onExited: handleHovered = false
+ }
+
+
+ // During the drag, we simply ignore the position set from the range, this
+ // means that setting a value while dragging will not "interrupt" the
+ // dragging activity.
+ Qml.Binding {
+ when: !mouseArea.drag.active
+ target: fakeHandle
+ property: __horizontal ? "x" : "y"
+ value: range.position
+ restoreMode: Binding.RestoreBinding
+ }
+
+ WheelArea {
+ id: wheelarea
+ anchors.fill: parent
+ verticalValue: slider.value
+ horizontalValue: slider.value
+ horizontalMinimumValue: slider.minimumValue
+ horizontalMaximumValue: slider.maximumValue
+ verticalMinimumValue: slider.minimumValue
+ verticalMaximumValue: slider.maximumValue
+ property real step: (slider.maximumValue - slider.minimumValue)/(range.positionAtMaximum - range.positionAtMinimum)
+
+ onVerticalWheelMoved: {
+ if (verticalDelta !== 0) {
+ var delta = Math.abs(verticalDelta)*step > stepSize ? verticalDelta*step : verticalDelta/Math.abs(verticalDelta)*stepSize
+ range.position = range.positionForValue(value - delta * (inverted ? 1 : -1))
+ }
+ }
+
+ onHorizontalWheelMoved: {
+ if (horizontalDelta !== 0) {
+ var delta = Math.abs(horizontalDelta)*step > stepSize ? horizontalDelta*step : horizontalDelta/Math.abs(horizontalDelta)*stepSize
+ range.position = range.positionForValue(value + delta * (inverted ? 1 : -1))
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qmlc
new file mode 100644
index 00000000..3aaa4e2c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Slider.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qml
new file mode 100644
index 00000000..b7ec6a8f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qml
@@ -0,0 +1,397 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype SpinBox
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Provides a spin box control.
+
+ \image spinbox.png
+
+ SpinBox allows the user to choose a value by clicking the up or down buttons, or by
+ pressing up or down on the keyboard. The user can also type the value in manually.
+
+ By default the SpinBox provides discrete values in the range [0-99] with a \l stepSize of 1 and 0 \l decimals.
+
+ \code
+ SpinBox {
+ id: spinbox
+ }
+ \endcode
+
+ Note that if you require decimal values you will need to set the \l decimals to a non 0 value.
+
+ \code
+ SpinBox {
+ id: spinbox
+ decimals: 2
+ }
+ \endcode
+
+*/
+
+Control {
+ id: spinbox
+
+ /*!
+ \qmlproperty real SpinBox::value
+
+ The value of this SpinBox, clamped to \l minimumValue and \l maximumValue.
+
+ The default value is \c{0.0}.
+ */
+ property alias value: validator.value
+
+ /*!
+ \qmlproperty real SpinBox::minimumValue
+
+ The minimum value of the SpinBox range.
+ The \l value is clamped to this value.
+
+ The default value is \c{0.0}.
+ */
+ property alias minimumValue: validator.minimumValue
+
+ /*!
+ \qmlproperty real SpinBox::maximumValue
+
+ The maximum value of the SpinBox range.
+ The \l value is clamped to this value. If maximumValue is smaller than
+ \l minimumValue, \l minimumValue will be enforced.
+
+ The default value is \c{99}.
+ */
+ property alias maximumValue: validator.maximumValue
+
+ /*! \qmlproperty real SpinBox::stepSize
+ The amount by which the \l value is incremented/decremented when a
+ spin button is pressed.
+
+ The default value is \c{1.0}.
+ */
+ property alias stepSize: validator.stepSize
+
+ /*! \qmlproperty string SpinBox::suffix
+ The suffix for the value. I.e "cm" */
+ property alias suffix: validator.suffix
+
+ /*! \qmlproperty string SpinBox::prefix
+ The prefix for the value. I.e "$" */
+ property alias prefix: validator.prefix
+
+ /*! \qmlproperty int SpinBox::decimals
+ This property indicates the amount of decimals.
+ Note that if you enter more decimals than specified, they will
+ be truncated to the specified amount of decimal places.
+ The default value is \c{0}.
+ */
+ property alias decimals: validator.decimals
+
+ /*! \qmlproperty font SpinBox::font
+
+ This property indicates the current font used by the SpinBox.
+ */
+ property alias font: input.font
+
+ /*!
+ \qmlproperty int SpinBox::cursorPosition
+ \since QtQuick.Controls 1.5
+
+ This property holds the position of the cursor in the SpinBox.
+ */
+ property alias cursorPosition: input.cursorPosition
+
+
+ /*! This property indicates whether the Spinbox should get active
+ focus when pressed.
+ The default value is \c true.
+ */
+ property bool activeFocusOnPress: true
+
+ /*! \qmlproperty enumeration horizontalAlignment
+ \since QtQuick.Controls 1.1
+
+ This property indicates how the content is horizontally aligned
+ within the text field.
+
+ The supported values are:
+ \list
+ \li Qt.AlignLeft
+ \li Qt.AlignHCenter
+ \li Qt.AlignRight
+ \endlist
+
+ The default value is style dependent.
+ */
+ property int horizontalAlignment: __panel ? __panel.horizontalAlignment : Qt.AlignLeft
+
+ /*!
+ \qmlproperty bool SpinBox::hovered
+
+ This property indicates whether the control is being hovered.
+ */
+ readonly property bool hovered: mouseArea.containsMouse || input.containsMouse
+ || mouseUp.containsMouse || mouseDown.containsMouse
+
+ /*!
+ \qmlsignal SpinBox::editingFinished()
+ \since QtQuick.Controls 1.1
+
+ This signal is emitted when the Return or Enter key is pressed or
+ the control loses focus.
+
+ The corresponding handler is \c onEditingFinished.
+ */
+ signal editingFinished()
+
+ /*!
+ \qmlproperty bool SpinBox::selectByMouse
+ \since QtQuick.Controls 1.3
+
+ This property determines if the user can select the text with the
+ mouse.
+
+ The default value is \c true.
+ */
+ property bool selectByMouse: true
+
+ /*!
+ \qmlproperty bool SpinBox::inputMethodComposing
+ \since QtQuick.Controls 1.3
+
+ This property holds whether the SpinBox has partial text input from an input method.
+
+ While it is composing an input method may rely on mouse or key events from the SpinBox
+ to edit or commit the partial text. This property can be used to determine when to disable
+ events handlers that may interfere with the correct operation of an input method.
+ */
+ readonly property bool inputMethodComposing: !!input.inputMethodComposing
+
+ /*!
+ \since QtQuick.Controls 1.3
+
+ This property contains the edit \l Menu for working
+ with text selection. Set it to \c null if no menu
+ is wanted.
+ */
+ property Component menu: input.editMenu.defaultMenu
+
+ style: Settings.styleComponent(Settings.style, "SpinBoxStyle.qml", spinbox)
+
+ /*! \internal */
+ function __increment() {
+ validator.increment()
+ if (activeFocus)
+ input.selectValue()
+ }
+
+ /*! \internal */
+ function __decrement() {
+ validator.decrement()
+ if (activeFocus)
+ input.selectValue()
+ }
+
+ /*! \internal */
+ property alias __text: input.text
+
+ /*! \internal */
+ property alias __baselineOffset: input.baselineOffset
+
+ __styleData: QtObject {
+ readonly property bool upEnabled: value != maximumValue;
+ readonly property alias upHovered: mouseUp.containsMouse
+ readonly property alias upPressed: mouseUp.pressed
+
+ readonly property bool downEnabled: value != minimumValue;
+ readonly property alias downPressed: mouseDown.pressed
+ readonly property alias downHovered: mouseDown.containsMouse
+
+ readonly property int contentHeight: Math.max(input.implicitHeight, 16)
+ readonly property int contentWidth: Math.max(maxSizeHint.implicitWidth, minSizeHint.implicitWidth)
+ }
+
+ Text {
+ id: maxSizeHint
+ text: prefix + maximumValue.toFixed(decimals) + suffix
+ font: input.font
+ visible: false
+ }
+
+ Text {
+ id: minSizeHint
+ text: prefix + minimumValue.toFixed(decimals) + suffix
+ font: input.font
+ visible: false
+ }
+
+ activeFocusOnTab: true
+
+ onActiveFocusChanged: if (activeFocus) input.selectValue()
+
+ Accessible.name: input.text
+ Accessible.role: Accessible.SpinBox
+ Accessible.editable: true
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: Settings.hoverEnabled
+ onPressed: if (activeFocusOnPress) input.forceActiveFocus()
+ onWheel: {
+ if (wheel.angleDelta.y > 0)
+ __increment();
+ else
+ __decrement();
+ }
+ }
+
+ TextInputWithHandles {
+ id: input
+ clip: contentWidth > width
+ anchors.fill: parent
+ anchors.leftMargin: __style ? __style.padding.left : 0
+ anchors.topMargin: __style ? __style.padding.top : 0
+ anchors.rightMargin: __style ? __style.padding.right: 0
+ anchors.bottomMargin: __style ? __style.padding.bottom: 0
+
+ control: spinbox
+ cursorHandle: __style ? __style.__cursorHandle : undefined
+ selectionHandle: __style ? __style.__selectionHandle : undefined
+
+ focus: true
+ activeFocusOnPress: spinbox.activeFocusOnPress
+
+ horizontalAlignment: spinbox.horizontalAlignment
+ verticalAlignment: __panel ? __panel.verticalAlignment : Qt.AlignVCenter
+ inputMethodHints: Qt.ImhFormattedNumbersOnly
+
+ validator: SpinBoxValidator {
+ id: validator
+ property bool ready: false // Delay validation until all properties are ready
+ onTextChanged: if (ready) input.text = validator.text
+ Component.onCompleted: {input.text = validator.text ; ready = true}
+ }
+ onAccepted: {
+ input.text = validator.text
+ selectValue()
+ }
+
+ Keys.forwardTo: spinbox
+
+ onEditingFinished: spinbox.editingFinished()
+
+ font: __panel ? __panel.font : TextSingleton.font
+ color: __panel ? __panel.foregroundColor : "black"
+ selectionColor: __panel ? __panel.selectionColor : "black"
+ selectedTextColor: __panel ? __panel.selectedTextColor : "black"
+
+ opacity: parent.enabled ? 1 : 0.5
+ renderType: __style ? __style.renderType : Text.NativeRendering
+
+ function selectValue() {
+ select(prefix.length, text.length - suffix.length)
+ }
+ }
+
+ // Spinbox increment button
+
+ MouseArea {
+ id: mouseUp
+ objectName: "mouseUp"
+ hoverEnabled: Settings.hoverEnabled
+
+ property var upRect: __panel ? __panel.upRect : null
+
+ anchors.left: parent.left
+ anchors.top: parent.top
+
+ anchors.leftMargin: upRect ? upRect.x : 0
+ anchors.topMargin: upRect ? upRect.y : 0
+
+ width: upRect ? upRect.width : 0
+ height: upRect ? upRect.height : 0
+
+ onClicked: __increment()
+ onPressed: if (!Settings.hasTouchScreen && activeFocusOnPress) input.forceActiveFocus()
+
+ property bool autoincrement: false;
+ onReleased: autoincrement = false
+ onExited: autoincrement = false
+ Timer { running: mouseUp.pressed; interval: 350 ; onTriggered: mouseUp.autoincrement = true }
+ Timer { running: mouseUp.autoincrement && mouseUp.containsMouse; interval: 60 ; repeat: true ; onTriggered: __increment() }
+ }
+
+ // Spinbox decrement button
+
+ MouseArea {
+ id: mouseDown
+ objectName: "mouseDown"
+ hoverEnabled: Settings.hoverEnabled
+
+ onClicked: __decrement()
+ onPressed: if (!Settings.hasTouchScreen && activeFocusOnPress) input.forceActiveFocus()
+
+ property var downRect: __panel ? __panel.downRect : null
+
+ anchors.left: parent.left
+ anchors.top: parent.top
+
+ anchors.leftMargin: downRect ? downRect.x : 0
+ anchors.topMargin: downRect ? downRect.y : 0
+
+ width: downRect ? downRect.width : 0
+ height: downRect ? downRect.height : 0
+
+ property bool autoincrement: false;
+ onReleased: autoincrement = false
+ onExited: autoincrement = false
+ Timer { running: mouseDown.pressed; interval: 350 ; onTriggered: mouseDown.autoincrement = true }
+ Timer { running: mouseDown.autoincrement && mouseDown.containsMouse; interval: 60 ; repeat: true ; onTriggered: __decrement() }
+ }
+
+ Keys.onUpPressed: __increment()
+ Keys.onDownPressed: __decrement()
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qmlc
new file mode 100644
index 00000000..b6947e4f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SpinBox.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SplitView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SplitView.qml
new file mode 100644
index 00000000..471e70a0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/SplitView.qml
@@ -0,0 +1,633 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.0
+import QtQuick.Controls.Private 1.0 as Private
+import QtQuick.Window 2.1
+
+/*!
+ \qmltype SplitView
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup views
+ \ingroup controls
+ \brief Lays out items with a draggable splitter between each item.
+
+ \image splitview.png
+
+ SplitView is a control that lays out items horizontally or
+ vertically with a draggable splitter between each item.
+
+ There will always be one (and only one) item in the SplitView that has \l{Layout::fillWidth}{Layout.fillWidth}
+ set to \c true (or \l{Layout::fillHeight}{Layout.fillHeight}, if orientation is Qt.Vertical). This means that the
+ item will get all leftover space when other items have been laid out.
+ By default, the last visible child of the SplitView will have this set, but
+ it can be changed by explicitly setting fillWidth to \c true on another item.
+
+ As the fillWidth item will automatically be resized to fit the extra space, explicit assignments
+ to its width and height properties will be ignored (but \l{Layout::minimumWidth}{Layout.minimumWidth} and
+ \l{Layout::maximumWidth}{Layout.maximumWidth} will still be respected).
+ The initial sizes of other items should be set via their width and height properties.
+ Any binding assignment to an item's width or height will be broken as soon as the user
+ drags that item's splitter handle.
+
+ A handle can belong to the item either on the left or top side, or on the right or bottom side:
+ \list
+ \li If the fillWidth item is to the right: the handle belongs to the left item.
+ \li if the fillWidth item is on the left: the handle belongs to the right item.
+ \endlist
+
+ This will again control which item gets resized when the user drags a handle,
+ and which handle gets hidden when an item is told to hide.
+
+ SplitView supports setting attached Layout properties on child items, which
+ means that you can set the following attached properties for each child:
+ \list
+ \li \l{Layout::minimumWidth}{Layout.minimumWidth}
+ \li \l{Layout::minimumHeight}{Layout.minimumHeight}
+ \li \l{Layout::maximumWidth}{Layout.maximumWidth}
+ \li \l{Layout::maximumHeight}{Layout.maximumHeight}
+ \li \l{Layout::fillWidth}{Layout.fillWidth} (\c true for only one child)
+ \li \l{Layout::fillHeight}{Layout.fillHeight} (\c true for only one child)
+ \endlist
+
+ \note import QtQuick.Layouts 1.0 in your QML file in order to use the Layout
+ attached properties inside SplitView.
+
+ Example:
+
+ To create a SplitView with three items, and let the center item get superfluous space, one
+ could do the following:
+
+ \qml
+ SplitView {
+ anchors.fill: parent
+ orientation: Qt.Horizontal
+
+ Rectangle {
+ width: 200
+ Layout.maximumWidth: 400
+ color: "lightblue"
+ Text {
+ text: "View 1"
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle {
+ id: centerItem
+ Layout.minimumWidth: 50
+ Layout.fillWidth: true
+ color: "lightgray"
+ Text {
+ text: "View 2"
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle {
+ width: 200
+ color: "lightgreen"
+ Text {
+ text: "View 3"
+ anchors.centerIn: parent
+ }
+ }
+ }
+
+ \endqml
+*/
+
+Item {
+ id: root
+
+ /*!
+ \qmlproperty enumeration SplitView::orientation
+
+ This property holds the orientation of the SplitView.
+ The value can be either \c Qt.Horizontal or \c Qt.Vertical.
+ The default value is \c Qt.Horizontal.
+ */
+ property int orientation: Qt.Horizontal
+
+ /*!
+ This property holds the delegate that will be instantiated between each
+ child item. Inside the delegate the following properties are available:
+
+ \table
+ \row \li readonly property bool styleData.index \li Specifies the index of the splitter handle. The handle
+ between the first and the second item will get index 0,
+ the next handle index 1 etc.
+ \row \li readonly property bool styleData.hovered \li The handle is being hovered.
+ \row \li readonly property bool styleData.pressed \li The handle is being pressed.
+ \row \li readonly property bool styleData.resizing \li The handle is being dragged.
+ \endtable
+
+*/
+ property Component handleDelegate: Rectangle {
+ width: 1
+ height: 1
+ color: Qt.darker(pal.window, 1.5)
+ }
+
+ /*!
+ This propery is \c true when the user is resizing any of the items by
+ dragging on the splitter handles.
+ */
+ property bool resizing: false
+
+ /*! \internal */
+ default property alias __contents: contents.data
+ /*! \internal */
+ property alias __items: splitterItems.children
+ /*! \internal */
+ property alias __handles: splitterHandles.children
+
+ clip: true
+ Component.onCompleted: d.init()
+ onWidthChanged: d.updateLayout()
+ onHeightChanged: d.updateLayout()
+ onOrientationChanged: d.changeOrientation()
+
+ /*! \qmlmethod void SplitView::addItem(Item item)
+ Add an \a item to the end of the view.
+ \since QtQuick.Controls 1.3 */
+ function addItem(item) {
+ d.updateLayoutGuard = true
+ d.addItem_impl(item)
+ d.calculateImplicitSize()
+ d.updateLayoutGuard = false
+ d.updateFillIndex()
+ }
+
+ /*! \qmlmethod void SplitView::removeItem(Item item)
+ Remove \a item from the view.
+ \since QtQuick.Controls 1.4 */
+ function removeItem(item) {
+ d.updateLayoutGuard = true
+ var result = d.removeItem_impl(item)
+ if (result !== null) {
+ d.calculateImplicitSize()
+ d.updateLayoutGuard = false
+ d.updateFillIndex()
+ }
+ else {
+ d.updateLayoutGuard = false
+ }
+ }
+
+ SystemPalette { id: pal }
+
+ QtObject {
+ id: d
+
+ readonly property string leftMargin: horizontal ? "leftMargin" : "topMargin"
+ readonly property string topMargin: horizontal ? "topMargin" : "leftMargin"
+ readonly property string rightMargin: horizontal ? "rightMargin" : "bottomMargin"
+
+ property bool horizontal: orientation == Qt.Horizontal
+ readonly property string minimum: horizontal ? "minimumWidth" : "minimumHeight"
+ readonly property string maximum: horizontal ? "maximumWidth" : "maximumHeight"
+ readonly property string otherMinimum: horizontal ? "minimumHeight" : "minimumWidth"
+ readonly property string otherMaximum: horizontal ? "maximumHeight" : "maximumWidth"
+ readonly property string offset: horizontal ? "x" : "y"
+ readonly property string otherOffset: horizontal ? "y" : "x"
+ readonly property string size: horizontal ? "width" : "height"
+ readonly property string otherSize: horizontal ? "height" : "width"
+ readonly property string implicitSize: horizontal ? "implicitWidth" : "implicitHeight"
+ readonly property string implicitOtherSize: horizontal ? "implicitHeight" : "implicitWidth"
+
+ property int fillIndex: -1
+ property bool updateLayoutGuard: true
+
+ function extraMarginSize(item, other) {
+ if (typeof(other) === 'undefined')
+ other = false;
+ if (other === horizontal)
+ // vertical
+ return item.Layout.topMargin + item.Layout.bottomMargin
+ return item.Layout.leftMargin + item.Layout.rightMargin
+ }
+
+ function addItem_impl(item)
+ {
+ // temporarily set fillIndex to new item
+ fillIndex = __items.length
+ if (splitterItems.children.length > 0)
+ handleLoader.createObject(splitterHandles, {"__handleIndex":splitterItems.children.length - 1})
+
+ item.parent = splitterItems
+ d.initItemConnections(item)
+ }
+
+ function initItemConnections(item)
+ {
+ // should match disconnections in terminateItemConnections
+ item.widthChanged.connect(d.updateLayout)
+ item.heightChanged.connect(d.updateLayout)
+ item.Layout.maximumWidthChanged.connect(d.updateLayout)
+ item.Layout.minimumWidthChanged.connect(d.updateLayout)
+ item.Layout.maximumHeightChanged.connect(d.updateLayout)
+ item.Layout.minimumHeightChanged.connect(d.updateLayout)
+ item.Layout.leftMarginChanged.connect(d.updateLayout)
+ item.Layout.topMarginChanged.connect(d.updateLayout)
+ item.Layout.rightMarginChanged.connect(d.updateLayout)
+ item.Layout.bottomMarginChanged.connect(d.updateLayout)
+ item.visibleChanged.connect(d.updateFillIndex)
+ item.Layout.fillWidthChanged.connect(d.updateFillIndex)
+ item.Layout.fillHeightChanged.connect(d.updateFillIndex)
+ }
+
+ function terminateItemConnections(item)
+ {
+ // should match connections in initItemConnections
+ item.widthChanged.disconnect(d.updateLayout)
+ item.heightChanged.disconnect(d.updateLayout)
+ item.Layout.maximumWidthChanged.disconnect(d.updateLayout)
+ item.Layout.minimumWidthChanged.disconnect(d.updateLayout)
+ item.Layout.maximumHeightChanged.disconnect(d.updateLayout)
+ item.Layout.minimumHeightChanged.disconnect(d.updateLayout)
+ item.visibleChanged.disconnect(d.updateFillIndex)
+ item.Layout.fillWidthChanged.disconnect(d.updateFillIndex)
+ item.Layout.fillHeightChanged.disconnect(d.updateFillIndex)
+ }
+
+ function removeItem_impl(item)
+ {
+ var pos = itemPos(item)
+
+ // Check pos range
+ if (pos < 0 || pos >= __items.length)
+ return null
+
+ // Temporary unset the fillIndex
+ fillIndex = __items.length - 1
+
+ // Remove the handle at the left/right of the item that
+ // is going to be removed
+ var handlePos = -1
+ var hasPrevious = pos > 0
+ var hasNext = (pos + 1) < __items.length
+
+ if (hasPrevious)
+ handlePos = pos-1
+ else if (hasNext)
+ handlePos = pos
+ if (handlePos >= 0) {
+ var handle = __handles[handlePos]
+ handle.visible = false
+ handle.parent = null
+ handle.destroy()
+ for (var i = handlePos; i < __handles.length; ++i)
+ __handles[i].__handleIndex = i
+ }
+
+ // Remove the item.
+ // Disconnect the item to be removed
+ terminateItemConnections(item)
+ item.parent = null
+
+ return item
+ }
+
+ function itemPos(item)
+ {
+ for (var i = 0; i < __items.length; ++i)
+ if (item === __items[i])
+ return i
+ return -1
+ }
+
+ function init()
+ {
+ for (var i=0; i<__contents.length; ++i) {
+ var item = __contents[i];
+ if (!item.hasOwnProperty("x"))
+ continue
+ addItem_impl(item)
+ i-- // item was removed from list
+ }
+
+ d.calculateImplicitSize()
+ d.updateLayoutGuard = false
+ d.updateFillIndex()
+ }
+
+ function updateFillIndex()
+ {
+ if (lastItem.visible !== root.visible)
+ return
+ var policy = (root.orientation === Qt.Horizontal) ? "fillWidth" : "fillHeight"
+ for (var i=0; i<__items.length-1; ++i) {
+ if (__items[i].Layout[policy] === true)
+ break;
+ }
+
+ d.fillIndex = i
+ d.updateLayout()
+ }
+
+ function changeOrientation()
+ {
+ if (__items.length == 0)
+ return;
+ d.updateLayoutGuard = true
+
+ // Swap width/height for items and handles:
+ for (var i=0; i<__items.length; ++i) {
+ var item = __items[i]
+ var tmp = item.x
+ item.x = item.y
+ item.y = tmp
+ tmp = item.width
+ item.width = item.height
+ item.height = tmp
+
+ var handle = __handles[i]
+ if (handle) {
+ tmp = handle.x
+ handle.x = handle.y
+ handle.y = handle.x
+ tmp = handle.width
+ handle.width = handle.height
+ handle.height = tmp
+ }
+ }
+
+ // Change d.horizontal explicit, since the binding will change too late:
+ d.horizontal = orientation == Qt.Horizontal
+ d.updateLayoutGuard = false
+ d.updateFillIndex()
+ }
+
+ function calculateImplicitSize()
+ {
+ var implicitSize = 0
+ var implicitOtherSize = 0
+
+ for (var i=0; i<__items.length; ++i) {
+ var item = __items[i];
+ implicitSize += clampedMinMax(item[d.size], item.Layout[minimum], item.Layout[maximum]) + extraMarginSize(item)
+ var os = clampedMinMax(item[otherSize], item.Layout[otherMinimum], item.Layout[otherMaximum]) + extraMarginSize(item, true)
+ implicitOtherSize = Math.max(implicitOtherSize, os)
+
+ var handle = __handles[i]
+ if (handle)
+ implicitSize += handle[d.size] //### Can handles have margins??
+ }
+
+ root[d.implicitSize] = implicitSize
+ root[d.implicitOtherSize] = implicitOtherSize
+ }
+
+ function clampedMinMax(value, minimum, maximum)
+ {
+ if (value < minimum)
+ value = minimum
+ if (value > maximum)
+ value = maximum
+ return value
+ }
+
+ function accumulatedSize(firstIndex, lastIndex, includeFillItemMinimum)
+ {
+ // Go through items and handles, and
+ // calculate their accummulated width.
+ var w = 0
+ for (var i=firstIndex; i __handleIndex)
+ visible: __items[__handleIndex + (resizeLeftItem ? 0 : 1)].visible
+ sourceComponent: handleDelegate
+ onWidthChanged: d.updateLayout()
+ onHeightChanged: d.updateLayout()
+ onXChanged: moveHandle()
+ onYChanged: moveHandle()
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ property real defaultMargin: Private.Settings.hasTouchScreen ? Screen.pixelDensity * 3.5 : 2
+ anchors.leftMargin: (parent.width <= 1) ? -defaultMargin : 0
+ anchors.rightMargin: (parent.width <= 1) ? -defaultMargin : 0
+ anchors.topMargin: (parent.height <= 1) ? -defaultMargin : 0
+ anchors.bottomMargin: (parent.height <= 1) ? -defaultMargin : 0
+ hoverEnabled: Private.Settings.hoverEnabled
+ drag.threshold: 0
+ drag.target: parent
+ drag.axis: root.orientation === Qt.Horizontal ? Drag.XAxis : Drag.YAxis
+ cursorShape: root.orientation === Qt.Horizontal ? Qt.SplitHCursor : Qt.SplitVCursor
+ }
+
+ function moveHandle() {
+ // Moving the handle means resizing an item. Which one,
+ // left or right, depends on where the fillItem is.
+ // 'updateLayout' will be overridden in case new width violates max/min.
+ // 'updateLayout' will be triggered when an item changes width.
+ if (d.updateLayoutGuard)
+ return
+
+ var leftHandle, leftItem, rightItem, rightHandle
+ var leftEdge, rightEdge, newWidth, leftStopX, rightStopX
+ var i
+
+ if (resizeLeftItem) {
+ // Ensure that the handle is not crossing other handles. So
+ // find the first visible handle to the left to determine the left edge:
+ leftEdge = 0
+ for (i=__handleIndex-1; i>=0; --i) {
+ leftHandle = __handles[i]
+ if (leftHandle.visible) {
+ leftEdge = leftHandle[d.offset] + leftHandle[d.size]
+ break;
+ }
+ }
+
+ // Ensure: leftStopX >= itemHandle[d.offset] >= rightStopX
+ var min = d.accumulatedSize(__handleIndex+1, __items.length, true)
+ rightStopX = root[d.size] - min - itemHandle[d.size]
+ leftStopX = Math.max(leftEdge, itemHandle[d.offset])
+ itemHandle[d.offset] = Math.min(rightStopX, Math.max(leftStopX, itemHandle[d.offset]))
+
+ newWidth = itemHandle[d.offset] - leftEdge
+ leftItem = __items[__handleIndex]
+ // The next line will trigger 'updateLayout':
+ leftItem[d.size] = newWidth
+ } else {
+ // Resize item to the right.
+ // Ensure that the handle is not crossing other handles. So
+ // find the first visible handle to the right to determine the right edge:
+ rightEdge = root[d.size]
+ for (i=__handleIndex+1; i<__handles.length; ++i) {
+ rightHandle = __handles[i]
+ if (rightHandle.visible) {
+ rightEdge = rightHandle[d.offset]
+ break;
+ }
+ }
+
+ // Ensure: leftStopX <= itemHandle[d.offset] <= rightStopX
+ min = d.accumulatedSize(0, __handleIndex+1, true)
+ leftStopX = min - itemHandle[d.size]
+ rightStopX = Math.min((rightEdge - itemHandle[d.size]), itemHandle[d.offset])
+ itemHandle[d.offset] = Math.max(leftStopX, Math.min(itemHandle[d.offset], rightStopX))
+
+ newWidth = rightEdge - (itemHandle[d.offset] + itemHandle[d.size])
+ rightItem = __items[__handleIndex+1]
+ // The next line will trigger 'updateLayout':
+ rightItem[d.size] = newWidth
+ }
+ }
+ }
+ }
+
+ Item {
+ id: contents
+ visible: false
+ anchors.fill: parent
+ }
+ Item {
+ id: splitterItems
+ anchors.fill: parent
+ }
+ Item {
+ id: splitterHandles
+ anchors.fill: parent
+ }
+
+ Item {
+ id: lastItem
+ onVisibleChanged: d.updateFillIndex()
+ }
+
+ Component.onDestruction: {
+ for (var i=0; i [A, B, C, D] - "push" transition animation between C and D
+ \li pop() => [A, B] - "pop" transition animation between C and B
+ \li \l{push()}{push(D, replace)} => [A, B, D] - "replace" transition between C and D
+ \li \l{pop()}{pop(A)} => [A] - "pop" transition between C and A
+ \endlist
+
+ \note When the stack is empty, a push() will not perform a
+ transition animation because there is nothing to transition from (typically during
+ application start-up). A pop() on a stack with depth 1 or 0 is a no-operation.
+ If all items need to be removed from the stack, a separate function clear() is
+ available.
+
+ Calling push() returns the item that was pushed onto the stack.
+ Calling pop() returns the item that was popped off the stack. When pop() is
+ called in an unwind operation, the top-most item (the first item that was
+ popped, which will also be the one transitioning out) is returned.
+
+ \section1 Deep Linking
+ \e{Deep linking} means launching an application into a particular state. For example,
+ a newspaper application could be launched into showing a particular article,
+ bypassing the front item (and possibly a section item) that would normally have
+ to be navigated through to get to the article concerned. In terms of StackView, deep
+ linking means the ability to modify the state of the stack, so much so that it is
+ possible to push a set of items to the top of the stack, or to completely reset
+ the stack to a given state.
+
+ The API for deep linking in StackView is the same as for basic navigation. Pushing
+ an array instead of a single item, will involve that all the items in that array will
+ be pushed onto the stack. The transition animation, however, will be conducted as
+ if only the last item in the array was pushed onto the stack. The normal semantics
+ of push() apply for deep linking, meaning that push() adds whatever is pushed onto
+ the stack. Note also that only the last item of the array will be loaded.
+ The rest will be lazy-loaded as needed when entering the screen upon subsequent
+ calls to pop (or when requesting the item by using \a get).
+
+ This gives us the following result, given the stack [A, B, C]:
+
+ \list
+ \li \l{push()}{push([D, E, F])} => [A, B, C, D, E, F] - "push" transition animation between C and F
+ \li \l{push()}{push([D, E, F], replace)} => [A, B, D, E, F] - "replace" transition animation between C and F
+ \li clear(); \l{push()}{push([D, E, F])} => [D, E, F] - no transition animation (since the stack was empty)
+ \endlist
+
+ \section1 Pushing items
+
+ An item pushed onto the StackView can be either an Item, a URL, a string
+ containing a URL, or a Component. To push it, assign it to a property "item"
+ inside a property list, and pass it as an argument to \l{StackView::push}{push}:
+
+ \code
+ stackView.push({item: yourItem})
+ \endcode
+
+ The list can contain several properties that control how the item should be pushed:
+ \list
+ \li \c item: this property is required, and holds the item to be pushed.
+ \li \c properties: a list of QML properties to be assigned to the item upon push. These
+ properties will be copied into the item at load time, or when the item will become
+ the current item (normally upon push).
+ \li \c immediate: set this property to \c true to skip transition effects. When pushing
+ an array, this property only needs to be set on the first element to make the
+ whole operation immediate.
+ \li \c replace: set this property to replace the current item on the stack. When pushing
+ an array, you only need to set this property on the first element to replace
+ as many elements on the stack as inside the array.
+ \li \c destroyOnPop: set this boolean to \c true if StackView needs to destroy the item when
+ it is popped off the stack. By default (if \a destroyOnPop is not specified), StackView
+ will destroy items pushed as components or URLs. Items not destroyed will be re-parented
+ back to the original parents they had before being pushed onto the stack and hidden.
+ If you need to set this property, do it with care, so that items are not leaked.
+ \endlist
+
+ If the only argument needed is "item", the following short-hand notation can be applied:
+
+ \code
+ stackView.push(yourItem)
+ \endcode
+
+ You can push several items in one go by using an array of property lists. This is
+ more efficient than pushing items one by one, as StackView can then load only the
+ last item in the list. The rest will be loaded as they are about to become
+ the current item (which happens when the stack is popped). The following example shows how
+ to push an array of items:
+
+ \code
+ stackView.push([{item: yourItem1}, {item: yourItem2}])
+ \endcode
+
+ If an inline item is pushed, the item is temporarily re-parented into the StackView. When the item
+ is later popped off, it gets re-parented back to its original owner again.
+ If, however, an item is pushed as a component or a URL, the actual item will be created as an
+ item from that component. This happens automatically when the item is about to become the current
+ item in the stack. Ownership of the item will then normally be taken by the StackView, which will
+ automatically destroy the item when it is later popped off. The component that declared the item, by
+ contrast, remains in the ownership of the application and is not destroyed by the stack.
+ This can be overridden by explicitly setting \c{destroyOnPop} in the list of arguments given to push.
+
+ If the \c properties to be pushed are specified, they will be copied into the item at loading time
+ (in case of a component or URL), or when the item becomes the current item (in case of an inline
+ item). The following example shows how this can be done:
+
+ \code
+ stackView.push({item: someItem, properties: {fgcolor: "red", bgcolor: "blue"}})
+ \endcode
+
+
+ \note If an item is declared inside another item, and that parent gets destroyed,
+ (even if a component was used), that child item will also be destroyed.
+ This follows normal Qt parent-child destruction rules, but sometimes comes as a surprise
+ for developers.
+
+ \section1 Lifecycle
+ An item's lifecycle in the StackView can have the following transitions:
+ \list 1
+ \li instantiation
+ \li inactive
+ \li activating
+ \li active
+ \li deactivating
+ \li inactive
+ \li destruction
+ \endlist
+
+ It can move any number of times between inactive and active. When an item is activated,
+ it's visible on the screen and is considered to be the current item. An item
+ in a StackView that is not visible is not activated, even if the item is currently the
+ top-most item in the stack. When the stack becomes visible, the item that is top-most gets
+ activated. Likewise if the stack is then hidden, the topmost item would be deactivated.
+ Popping the item off the top of the stack at this point would not result in further
+ deactivation since the item is not active.
+
+ There is an attached \l{Stack::status}{Stack.status} property that tracks the lifecycle. This
+ property is an enumeration with the following values: \c Stack.Inactive, \c Stack.Activating,
+ \c Stack.Active and \c Stack.Deactivating. Combined with the normal \c Component.onComplete and
+ \c Component.onDestruction signals, the entire lifecycle is thus:
+
+ \list
+ \li Created: Component.onCompleted()
+ \li Activating: Stack.onStatusChanged (Stack.status is Stack.Activating)
+ \li Acivated: Stack.onStatusChanged (Stack.status is Stack.Active)
+ \li Deactivating: Stack.onStatusChanged (Stack.status is Stack.Deactivating)
+ \li Deactivated: Stack.onStatusChanged (Stack.status is Stack.Inactive)
+ \li Destruction: Component.onDestruction()
+ \endlist
+
+ \section1 Finding items
+ Sometimes it is necessary to search for an item, for example, in order to unwind the stack to
+ an item to which the application does not have a reference. This is facilitated using a
+ function find() in StackView. The find() function takes a callback function as its
+ only argument. The callback gets invoked for each item in the stack (starting at the top).
+ If the callback returns true, then it signals that a match has been found and the find()
+ function returns that item. If the callback fails to return true (no match is found),
+ then find() returns \c null.
+
+ The code below searches for an item in the stack that has a name "order_id" and then unwinds to
+ that item. Note that since find() returns \c {null} if no item is found, and since pop unwinds to
+ the bottom of the stack if null is given as the target item, the code works well even in
+ case no matching item is found.
+
+ \code
+ stackView.pop(stackView.find(function(item) {
+ return item.name == "order_id";
+ }));
+ \endcode
+
+ You can also get to an item in the stack using \l {get()}{get(index)}. You should use
+ this function if your item depends on another item in the stack, as the function will
+ ensure that the item at the given index gets loaded before it is returned.
+
+ \code
+ previousItem = stackView.get(myItem.Stack.index - 1));
+ \endcode
+
+ \section1 Transitions
+
+ A transition is performed whenever a item is pushed or popped, and consists of
+ two items: enterItem and exitItem. The StackView itself will never move items
+ around, but instead delegates the job to an external animation set provided
+ by the style or the application developer. How items should visually enter and leave the stack
+ (and the geometry they should end up with) is therefore completely controlled from the outside.
+
+ When the transition starts, the StackView will search for a transition that
+ matches the operation executed. There are three transitions to choose
+ from: \l {StackViewDelegate::}{pushTransition}, \l {StackViewDelegate::}{popTransition},
+ and \l {StackViewDelegate::}{replaceTransition}. Each implements how
+ \c enterItem should animate in, and \c exitItem out. The transitions are
+ collected inside a StackViewDelegate object assigned to
+ \l {StackView::delegate}{delegate}. By default, popTransition and
+ replaceTransition will be the same as pushTransition, unless you set them
+ to something else.
+
+ A simple fade transition could be implemented as:
+
+ \qml
+ StackView {
+ delegate: StackViewDelegate {
+ function transitionFinished(properties)
+ {
+ properties.exitItem.opacity = 1
+ }
+
+ pushTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "opacity"
+ from: 0
+ to: 1
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "opacity"
+ from: 1
+ to: 0
+ }
+ }
+ }
+ }
+ \endqml
+
+ PushTransition needs to inherit from StackViewTransition, which is a ParallelAnimation that
+ contains the properties \c enterItem and \c exitItem. These items should be assigned to the
+ \c target property of animations within the transition. Since the same items instance can
+ be pushed several times to a StackView, you should always override
+ \l {StackViewDelegate::transitionFinished()}{StackViewDelegate.transitionFinished()}.
+ Implement this function to reset any properties animated on the exitItem so that later
+ transitions can expect the items to be in a default state.
+
+ A more complex example could look like the following. Here, the items are lying on the side before
+ being rotated to an upright position:
+
+ \qml
+ StackView {
+ delegate: StackViewDelegate {
+ function transitionFinished(properties)
+ {
+ properties.exitItem.x = 0
+ properties.exitItem.rotation = 0
+ }
+
+ pushTransition: StackViewTransition {
+ SequentialAnimation {
+ ScriptAction {
+ script: enterItem.rotation = 90
+ }
+ PropertyAnimation {
+ target: enterItem
+ property: "x"
+ from: enterItem.width
+ to: 0
+ }
+ PropertyAnimation {
+ target: enterItem
+ property: "rotation"
+ from: 90
+ to: 0
+ }
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "x"
+ from: 0
+ to: -exitItem.width
+ }
+ }
+ }
+ }
+ \endqml
+
+ \section2 Advanced usage
+
+ When the StackView needs a new transition, it first calls
+ \l {StackViewDelegate::getTransition()}{StackViewDelegate.getTransition()}.
+ The base implementation of this function just looks for a property named \c properties.name inside
+ itself (root), which is how it finds \c {property Component pushTransition} in the examples above.
+
+ \code
+ function getTransition(properties)
+ {
+ return root[properties.name]
+ }
+ \endcode
+
+ You can override this function for your delegate if you need extra logic to decide which
+ transition to return. You could for example introspect the items, and return different animations
+ depending on the their internal state. StackView will expect you to return a Component that
+ contains a StackViewTransition, or a StackViewTransition directly. The former is easier, as StackView will
+ then create the transition and later destroy it when it's done, while avoiding any side effects
+ caused by the transition being alive long after it has run. Returning a StackViewTransition directly
+ can be useful if you need to write some sort of transition caching for performance reasons.
+ As an optimization, you can also return \c null to signal that you just want to show/hide the items
+ immediately without creating or running any transitions. You can also override this function if
+ you need to alter the items in any way before the transition starts.
+
+ \c properties contains the properties that will be assigned to the StackViewTransition before
+ it runs. In fact, you can add more properties to this object during the call
+ if you need to initialize additional properties of your custom StackViewTransition when the returned
+ component is instantiated.
+
+ The following example shows how you can decide which animation to use at runtime:
+
+ \qml
+ StackViewDelegate {
+ function getTransition(properties)
+ {
+ return (properties.enterItem.Stack.index % 2) ? horizontalTransition : verticalTransition
+ }
+
+ function transitionFinished(properties)
+ {
+ properties.exitItem.x = 0
+ properties.exitItem.y = 0
+ }
+
+ property Component horizontalTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "x"
+ from: target.width
+ to: 0
+ duration: 300
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "x"
+ from: 0
+ to: target.width
+ duration: 300
+ }
+ }
+
+ property Component verticalTransition: StackViewTransition {
+ PropertyAnimation {
+ target: enterItem
+ property: "y"
+ from: target.height
+ to: 0
+ duration: 300
+ }
+ PropertyAnimation {
+ target: exitItem
+ property: "y"
+ from: 0
+ to: target.height
+ duration: 300
+ }
+ }
+ }
+ \endqml
+
+ \section1 Supported Attached Properties
+
+ Items in a StackView support these attached properties:
+ \list
+ \li \l{Stack::index}{Stack.index} - Contains the index of the item inside the StackView
+ \li \l{Stack::view}{Stack.view} - Contains the StackView the item is in
+ \li \l{Stack::status}{Stack.status} - Contains the status of the item
+ \endlist
+*/
+
+FocusScope {
+ id: root
+
+ /*! \qmlproperty int StackView::depth
+ \readonly
+ The number of items currently pushed onto the stack.
+ */
+ readonly property alias depth: root.__depth
+
+ /*! \qmlproperty Item StackView::currentItem
+ \readonly
+ The currently top-most item in the stack.
+ */
+ readonly property alias currentItem: root.__currentItem
+
+ /*! The first item that should be shown when the StackView is created.
+ \a initialItem can take same value as the first argument to \l{StackView::push()}
+ {StackView.push()}. Note that this is just a convenience for writing
+ \c{Component.onCompleted: stackView.push(myInitialItem)}
+
+ Examples:
+
+ \list
+ \li initialItem: Qt.resolvedUrl("MyItem.qml")
+ \li initialItem: myItem
+ \li initialItem: {"item" : Qt.resolvedUrl("MyRectangle.qml"), "properties" : {"color" : "red"}}
+ \endlist
+ \sa push
+ */
+ property var initialItem: null
+
+ /*! \readonly
+ \a busy is \c true if a transition is running, and \c false otherwise. */
+ readonly property bool busy: __currentTransition !== null
+
+ /*! The transitions to use when pushing or popping items.
+ For better understanding on how to apply custom transitions, read \l{Transitions}.
+ \sa {Transitions} */
+ property StackViewDelegate delegate: StackViewSlideDelegate {}
+
+ /*! \qmlmethod Item StackView::push(Item item)
+ Pushes an \a item onto the stack.
+
+ The function can also take a property list as argument - \c {Item StackView::push(jsobject dict)}, which
+ should contain one or more of the following properties:
+ \list
+ \li \a item: this property is required, and holds the item you want to push.
+ \li \e properties: a list of QML properties that should be assigned
+ to the item upon push. These properties will be copied into the item when it is
+ loaded (in case of a component or URL), or when it becomes the current item for the
+ first time (normally upon push).
+ \li \e immediate: set this property to \c true to skip transition effects. When pushing
+ an array, you only need to set this property on the first element to make the
+ whole operation immediate.
+ \li \e replace: set this property to replace the current item on the stack. When pushing
+ an array, you only need to set this property on the first element to replace
+ as many elements on the stack as inside the array.
+ \li \e destroyOnPop: set this property to specify if the item needs to be destroyed
+ when its popped off the stack. By default (if \e destroyOnPop is not specified),
+ StackView will destroy items pushed as components or URLs. Items
+ not destroyed will be re-parented to the original parents they had before being
+ pushed onto the stack, and hidden. If you need to set this property, do it with
+ care, so that items are not leaked.
+ \endlist
+
+ You can also push an array of items (property lists) if you need to push several items
+ in one go. A transition will then only occur between the current item and the last
+ item in the list. Loading the other items will be deferred until needed.
+
+ Examples:
+ \list
+ \li stackView.push({item:anItem})
+ \li stackView.push({item:aURL, immediate: true, replace: true})
+ \li stackView.push({item:aRectangle, properties:{color:"red"}})
+ \li stackView.push({item:aComponent, properties:{color:"red"}})
+ \li stackView.push({item:aComponent.createObject(), destroyOnPop:true})
+ \li stackView.push([{item:anitem, immediate:true}, {item:aURL}])
+ \endlist
+
+ \note If the only argument needed is "item", you can apply the following short-
+ hand notation: \c{stackView.push(anItem)}.
+
+ Returns the item that became current.
+
+ \sa initialItem
+ \sa {Pushing items}
+ */
+ function push(item) {
+ // Note: we support two different APIs in this function; The old meego API, and
+ // the new "property list" API. Hence the reason for hiding the fact that you
+ // can pass more arguments than shown in the signature:
+ if (__recursionGuard(true))
+ return
+ var properties = arguments[1]
+ var immediate = arguments[2]
+ var replace = arguments[3]
+ var arrayPushed = (item instanceof Array)
+ var firstItem = arrayPushed ? item[0] : item
+ immediate = (immediate || JSArray.stackView.length === 0)
+
+ if (firstItem && firstItem.item && firstItem.hasOwnProperty("x") === false) {
+ // Property list API used:
+ immediate = immediate || firstItem.immediate
+ replace = replace || firstItem.replace
+ }
+
+ // Create, and push, a new javascript object, called "element", onto the stack.
+ // This element contains all the information necessary to construct the item, and
+ // will, after loaded, also contain the loaded item:
+ if (arrayPushed) {
+ if (item.length === 0)
+ return
+ var outElement = replace ? JSArray.pop() : JSArray.current()
+ for (var i=0; i 1 && item !== undefined && item !== inElement.item) {
+ // Pop from the top until we find 'item', and return the corresponding
+ // element. Skip all non-loaded items (except the first), since no one
+ // has any references to such items anyway:
+ while (__depth > 1 && !JSArray.current().loaded)
+ JSArray.pop()
+ inElement = JSArray.current()
+ while (__depth > 1 && item !== inElement.item) {
+ JSArray.pop()
+ __cleanup(inElement)
+ while (__depth > 1 && !JSArray.current().loaded)
+ JSArray.pop()
+ inElement = JSArray.current()
+ }
+ }
+
+ var transition = {
+ inElement: inElement,
+ outElement: outElement,
+ immediate: immediate,
+ replace: false,
+ push: false
+ }
+ __performTransition(transition)
+ __recursionGuard(false)
+ return outElement.item;
+ }
+
+ /*! \qmlmethod void StackView::clear()
+ Remove all items from the stack. No animations will be applied. */
+ function clear() {
+ if (__recursionGuard(true))
+ return
+ if (__currentTransition)
+ __currentTransition.animation.complete()
+ __currentItem = null
+ var count = __depth
+ for (var i=0; i=0; --i) {
+ var element = JSArray.stackView[i];
+ if (onlySearchLoadedItems !== true)
+ __loadElement(element)
+ else if (!element.item)
+ continue
+ if (func(element.item))
+ return element.item
+ }
+ return null;
+ }
+
+ /*! \qmlmethod Item StackView::get(int index, bool dontLoad = false)
+ Returns the item at position \a index in
+ the stack. If \a dontLoad is true, the
+ item will not be forced to load (and \c null
+ will be returned if not yet loaded) */
+ function get(index, dontLoad)
+ {
+ if (index < 0 || index >= JSArray.stackView.length)
+ return null
+ var element = JSArray.stackView[index]
+ if (dontLoad !== true) {
+ __loadElement(element)
+ return element.item
+ } else if (element.item) {
+ return element.item
+ } else {
+ return null
+ }
+ }
+
+ /*! \qmlmethod void StackView::completeTransition()
+ Immediately completes any ongoing transition.
+ /sa Animation.complete
+ */
+ function completeTransition()
+ {
+ if (__recursionGuard(true))
+ return
+ if (__currentTransition)
+ __currentTransition.animation.complete()
+ __recursionGuard(false)
+ }
+
+ /********* DEPRECATED API *********/
+
+ /*! \internal
+ \deprecated Use Push() instead */
+ function replace(item, properties, immediate) {
+ push(item, properties, immediate, true)
+ }
+
+ /********* PRIVATE API *********/
+
+ /*! \internal The currently top-most item on the stack. */
+ property Item __currentItem: null
+ /*! \internal The number of items currently pushed onto the stack. */
+ property int __depth: 0
+ /*! \internal Stores the transition info while a transition is ongoing */
+ property var __currentTransition: null
+ /*! \internal Stops the user from pushing items while preparing a transition */
+ property bool __guard: false
+
+ Component.onCompleted: {
+ if (initialItem)
+ push(initialItem)
+ }
+
+ Component.onDestruction: {
+ if (__currentTransition)
+ __currentTransition.animation.complete()
+ __currentItem = null
+ }
+
+ /*! \internal */
+ function __recursionGuard(use)
+ {
+ if (use && __guard) {
+ console.warn("Warning: StackView: You cannot push/pop recursively!")
+ console.trace()
+ return true
+ }
+ __guard = use
+ }
+
+ /*! \internal */
+ function __loadElement(element)
+ {
+ if (element.loaded) {
+ if (!element.item) {
+ element.item = invalidItemReplacement.createObject(root)
+ element.item.text = "\nError: The item has been deleted outside StackView!"
+ }
+ return
+ }
+ if (!element.itemComponent) {
+ element.item = invalidItemReplacement.createObject(root)
+ element.item.text = "\nError: Invalid item (item was 'null'). "
+ + "This might indicate that the item was deleted outside StackView!"
+ return
+ }
+
+ var comp = __resolveComponent(element.itemComponent, element)
+
+ // Assign properties to item:
+ if (!element.properties)
+ element.properties = {}
+
+ if (comp.hasOwnProperty("createObject")) {
+ if (comp.status === Component.Error) {
+ element.item = invalidItemReplacement.createObject(root)
+ element.item.text = "\nError: Could not load: " + comp.errorString()
+ } else {
+ element.item = comp.createObject(root, element.properties)
+ // Destroy items we create unless the user specified something else:
+ if (!element.hasOwnProperty("destroyOnPop"))
+ element.destroyOnPop = true
+ }
+ } else {
+ // comp is already an Item, so just re-parent it into the StackView:
+ element.item = comp
+ element.originalParent = parent
+ element.item.parent = root
+ for (var prop in element.properties) {
+ if (element.item.hasOwnProperty(prop))
+ element.item[prop] = element.properties[prop];
+ }
+ // Do not destroy items we didn't create, unless the user specified something else:
+ if (!element.hasOwnProperty("destroyOnPop"))
+ element.destroyOnPop = false
+ }
+
+ element.item.Stack.__index = element.index
+ element.item.Stack.__view = root
+ // Let item fill all available space by default:
+ element.item.width = Qt.binding(function() { return root.width })
+ element.item.height = Qt.binding(function() { return root.height })
+ element.loaded = true
+ }
+
+ /*! \internal */
+ function __resolveComponent(unknownObjectType, element)
+ {
+ // We need this extra resolve function since we don't really
+ // know what kind of object the user pushed. So we try to
+ // figure it out by inspecting the object:
+ if (unknownObjectType.hasOwnProperty("createObject")) {
+ return unknownObjectType
+ } else if (typeof unknownObjectType == "string") {
+ return Qt.createComponent(unknownObjectType)
+ } else if (unknownObjectType.hasOwnProperty("x")) {
+ return unknownObjectType
+ } else if (unknownObjectType.hasOwnProperty("item")) {
+ // INVARIANT: user pushed a JS-object
+ element.properties = unknownObjectType.properties
+ if (!unknownObjectType.item)
+ unknownObjectType.item = invalidItemReplacement
+ if (unknownObjectType.hasOwnProperty("destroyOnPop"))
+ element.destroyOnPop = unknownObjectType.destroyOnPop
+ return __resolveComponent(unknownObjectType.item, element)
+ } else {
+ // We cannot determine the type, so assume its a URL:
+ return Qt.createComponent(unknownObjectType)
+ }
+ }
+
+ /*! \internal */
+ function __cleanup(element) {
+ // INVARIANT: element has been removed from JSArray. Destroy its
+ // item, or re-parent it back to the parent it had before it was pushed:
+ var item = element.item
+ if (element.destroyOnPop) {
+ item.destroy()
+ } else {
+ // Mark the item as no longer part of the StackView. It
+ // might reenter on pop if pushed several times:
+ item.visible = false
+ __setStatus(item, Stack.Inactive)
+ item.Stack.__view = null
+ item.Stack.__index = -1
+ if (element.originalParent)
+ item.parent = element.originalParent
+ }
+ }
+
+ /*! \internal */
+ function __setStatus(item, status) {
+ item.Stack.__status = status
+ }
+
+ /*! \internal */
+ function __performTransition(transition)
+ {
+ // Animate item in "outElement" out, and item in "inElement" in. Set a guard to protect
+ // the user from pushing new items on signals that will fire while preparing for the transition
+ // (e.g Stack.onCompleted, Stack.onStatusChanged, Stack.onIndexChanged etc). Otherwise, we will enter
+ // this function several times, which causes the items to be updated half-way.
+ if (__currentTransition)
+ __currentTransition.animation.complete()
+ __loadElement(transition.inElement)
+
+ transition.name = transition.replace ? "replaceTransition" : (transition.push ? "pushTransition" : "popTransition")
+ var enterItem = transition.inElement.item
+ transition.enterItem = enterItem
+
+ // Since an item can be pushed several times, we need to update its properties:
+ enterItem.parent = root
+ enterItem.Stack.__view = root
+ enterItem.Stack.__index = transition.inElement.index
+ __currentItem = enterItem
+
+ if (!transition.outElement) {
+ // A transition consists of two items, but we got just one. So just show the item:
+ enterItem.visible = true
+ __setStatus(enterItem, Stack.Activating)
+ __setStatus(enterItem, Stack.Active)
+ return
+ }
+
+ var exitItem = transition.outElement.item
+ transition.exitItem = exitItem
+ if (enterItem === exitItem)
+ return
+
+ if (root.delegate) {
+ transition.properties = {
+ "name":transition.name,
+ "enterItem":transition.enterItem,
+ "exitItem":transition.exitItem,
+ "immediate":transition.immediate }
+ var anim = root.delegate.getTransition(transition.properties)
+ if (anim.createObject) {
+ anim = anim.createObject(null, transition.properties)
+ anim.runningChanged.connect(function(){ if (anim.running === false) anim.destroy() })
+ }
+ transition.animation = anim
+ }
+
+ if (!transition.animation) {
+ console.warn("Warning: StackView: no", transition.name, "found!")
+ return
+ }
+ if (enterItem.anchors.fill || exitItem.anchors.fill)
+ console.warn("Warning: StackView: cannot transition an item that is anchored!")
+
+ __currentTransition = transition
+ __setStatus(exitItem, Stack.Deactivating)
+ enterItem.visible = true
+ __setStatus(enterItem, Stack.Activating)
+ transition.animation.runningChanged.connect(animationFinished)
+ transition.animation.start()
+ // NB! For empty animations, "animationFinished" is already
+ // executed at this point, leaving __animation === null:
+ if (transition.immediate === true && transition.animation)
+ transition.animation.complete()
+ }
+
+ /*! \internal */
+ function animationFinished()
+ {
+ if (!__currentTransition || __currentTransition.animation.running)
+ return
+
+ __currentTransition.animation.runningChanged.disconnect(animationFinished)
+ __currentTransition.exitItem.visible = false
+ __setStatus(__currentTransition.exitItem, Stack.Inactive);
+ __setStatus(__currentTransition.enterItem, Stack.Active);
+ __currentTransition.properties.animation = __currentTransition.animation
+ root.delegate.transitionFinished(__currentTransition.properties)
+
+ if (!__currentTransition.push || __currentTransition.replace)
+ __cleanup(__currentTransition.outElement)
+
+ __currentTransition = null
+ }
+
+ /*! \internal */
+ property Component invalidItemReplacement: Component {
+ Text {
+ width: parent.width
+ height: parent.height
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackView.qmlc
new file mode 100644
index 00000000..24e5c231
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qml
new file mode 100644
index 00000000..f85eb0ae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+/*!
+ \qmltype StackViewDelegate
+ \inqmlmodule QtQuick.Controls
+ \ingroup controls
+ \since 5.1
+
+ \brief A delegate used by StackView for loading transitions.
+
+ See the documentation for the \l {StackView} component.
+
+*/
+QtObject {
+ id: root
+
+ /*!
+ \qmlmethod Transition StackViewDelegate::getTransition(properties)
+
+ The base implementation of this function just looks for a property named
+ \a {properties}.name inside itself and returns it.
+ \sa {Transitions}
+ */
+ function getTransition(properties)
+ {
+ return root[properties.name]
+ }
+
+ /*!
+ \qmlmethod void StackViewDelegate::transitionFinished(properties)
+
+ Handles the completion of a transition for \a properties. The base
+ implementation of this function is empty.
+
+ \sa {Transitions}
+ */
+ function transitionFinished(properties)
+ {
+ }
+
+ /*!
+ \qmlproperty Component StackViewDelegate::pushTransition
+
+ The transition used on push operation.
+ */
+ property Component pushTransition: StackViewTransition {}
+ /*!
+ \qmlproperty Component StackViewDelegate::popTransition
+
+ The transition used on pop operation.
+ Unless set, the popTransition is the same as pushTransition
+ */
+ property Component popTransition: root["pushTransition"]
+ /*!
+ \qmlproperty Component StackViewDelegate::replaceTransition
+
+ The transition used on replace operation.
+ Unless set, the replaceTransition is the same as pushTransition
+ */
+ property Component replaceTransition: root["pushTransition"]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qmlc
new file mode 100644
index 00000000..23e3c2bb
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewDelegate.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qml
new file mode 100644
index 00000000..9f4719e3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+ParallelAnimation {
+ id: root
+ /*! The name of the animation that is running. Can be one of the following:
+ \list
+ \li 'PushTransition'
+ \li 'PopTransition'
+ \li 'ReplaceTransition'
+ \endlist
+ */
+ property string name
+ /*! The page that is transitioning in. */
+ property Item enterItem
+ /*! The page that is transitioning out */
+ property Item exitItem
+ /*! Set to \c true if the transition is told to
+ fast-forward directly to its end-state */
+ property bool immediate
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qmlc
new file mode 100644
index 00000000..b2f97001
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StackViewTransition.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qml
new file mode 100644
index 00000000..c1168d54
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qml
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype StatusBar
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup applicationwindow
+ \ingroup controls
+ \brief Contains status information in your app.
+
+ The common way of using StatusBar is in relation to \l ApplicationWindow.
+
+ Note that the StatusBar does not provide a layout of its own, but requires
+ you to position its contents, for instance by creating a \l RowLayout.
+
+ If only a single item is used within the StatusBar, it will resize to fit the implicitHeight
+ of its contained item. This makes it particularly suitable for use together with layouts.
+ Otherwise the height is platform dependent.
+
+ \code
+ import QtQuick.Controls 1.2
+ import QtQuick.Layouts 1.0
+
+ ApplicationWindow {
+ statusBar: StatusBar {
+ RowLayout {
+ anchors.fill: parent
+ Label { text: "Read Only" }
+ }
+ }
+ }
+ \endcode
+*/
+
+FocusScope {
+ id: statusbar
+
+ activeFocusOnTab: false
+ Accessible.role: Accessible.StatusBar
+
+ width: parent ? parent.width : implicitWidth
+ implicitWidth: container.leftMargin + container.rightMargin
+ + Math.max(container.layoutWidth, __panel ? __panel.implicitWidth : 0)
+ implicitHeight: container.topMargin + container.bottomMargin
+ + Math.max(container.layoutHeight, __panel ? __panel.implicitHeight : 0)
+
+ /*! \qmlproperty Component StatusBar::style
+
+ The style Component for this control.
+ \sa {StatusBarStyle}
+
+ */
+ property Component style: Settings.styleComponent(Settings.style, "StatusBarStyle.qml", statusbar)
+
+ /*! \internal */
+ property alias __style: styleLoader.item
+
+ /*! \internal */
+ property Item __panel: panelLoader.item
+
+ /*! \internal */
+ default property alias __content: container.data
+
+ /*!
+ \qmlproperty Item StatusBar::contentItem
+
+ This property holds the content Item of the status bar.
+
+ Items declared as children of a StatusBar are automatically parented to the StatusBar's contentItem.
+ Items created dynamically need to be explicitly parented to the contentItem:
+
+ \note The implicit size of the StatusBar is calculated based on the size of its content. If you want to anchor
+ items inside the status bar, you must specify an explicit width and height on the StatusBar itself.
+ */
+ readonly property alias contentItem: container
+
+ data: [
+ Loader {
+ id: panelLoader
+ anchors.fill: parent
+ sourceComponent: styleLoader.item ? styleLoader.item.panel : null
+ onLoaded: item.z = -1
+ Loader {
+ id: styleLoader
+ property alias __control: statusbar
+ sourceComponent: style
+ }
+ },
+ Item {
+ id: container
+ z: 1
+ focus: true
+ anchors.fill: parent
+
+ anchors.topMargin: topMargin
+ anchors.leftMargin: leftMargin
+ anchors.rightMargin: rightMargin
+ anchors.bottomMargin: bottomMargin
+
+ property int topMargin: __style ? __style.padding.top : 0
+ property int bottomMargin: __style ? __style.padding.bottom : 0
+ property int leftMargin: __style ? __style.padding.left : 0
+ property int rightMargin: __style ? __style.padding.right : 0
+
+ property Item layoutItem: container.children.length === 1 ? container.children[0] : null
+ property real layoutWidth: layoutItem ? (layoutItem.implicitWidth || layoutItem.width) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.leftMargin +
+ layoutItem.anchors.rightMargin : 0) : 0
+ property real layoutHeight: layoutItem ? (layoutItem.implicitHeight || layoutItem.height) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.topMargin +
+ layoutItem.anchors.bottomMargin : 0) : 0
+ }]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qmlc
new file mode 100644
index 00000000..b4a6f20d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/StatusBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qml
new file mode 100644
index 00000000..398567bb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qml
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ApplicationWindowStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.4
+ \ingroup controlsstyling
+ \brief Provides custom styling for ApplicationWindow.
+
+ You can create a custom window background by replacing the "background"
+ delegate of ApplicationWindowStyle with a custom design.
+
+ Example:
+ \qml
+ ApplicationWindow {
+ style: ApplicationWindowStyle {
+ background: BorderImage {
+ source: "background.png"
+ border { left: 20; top: 20; right: 20; bottom: 20 }
+ }
+ }
+ }
+ \endqml
+*/
+QtObject {
+ /*! The window attached to this style. */
+ readonly property ApplicationWindow control: __control
+
+ /*! A custom background for the window.
+
+ \note The window might have a custom background color set. The custom
+ background color is automatically filled by the window. The background
+ delegate should respect the custom background color by either hiding
+ itself altogether when a custom background color is set, or by letting
+ the custom background color shine through.
+
+ The following read-only property is available within the scope
+ of the background delegate:
+ \table
+ \row \li \b {styleData.hasColor} : bool \li Whether the window has a custom background color set.
+ \endtable
+ */
+ property Component background: Rectangle {
+ visible: !styleData.hasColor
+ color: SystemPaletteSingleton.window(true)
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ readonly property alias contentArea: contentArea
+ readonly property alias menuBarArea: menuBarArea
+ readonly property alias toolBarArea: toolBarArea
+ readonly property alias statusBarArea: statusBarArea
+
+ Loader {
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Item {
+ id: contentArea
+ anchors.top: toolBarArea.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: statusBarArea.top
+ }
+
+ Item {
+ id: toolBarArea
+ anchors.top: parent.menuBarArea.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ implicitHeight: childrenRect.height
+ height: visibleChildren.length > 0 ? implicitHeight: 0
+ }
+
+ Item {
+ id: menuBarArea
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ implicitHeight: childrenRect.height
+ height: visibleChildren.length > 0 ? implicitHeight: 0
+ }
+
+ Item {
+ id: statusBarArea
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ implicitHeight: childrenRect.height
+ height: visibleChildren.length > 0 ? implicitHeight: 0
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qmlc
new file mode 100644
index 00000000..36455522
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ApplicationWindowStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qml
new file mode 100644
index 00000000..334ee665
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qml
@@ -0,0 +1,164 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype BasicTableViewStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+ \inherits ScrollViewStyle
+ \qmlabstract
+*/
+
+ScrollViewStyle {
+ id: root
+
+ /*! \qmlproperty BasicTableView BasicTableViewStyle::control
+ \internal */
+ readonly property BasicTableView control: __control
+
+ /*! \qmlproperty color BasicTableViewStyle::textColor
+ The text color. */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*! \qmlproperty color BasicTableViewStyle::backgroundColor
+ The background color. */
+ property color backgroundColor: control.backgroundVisible ? SystemPaletteSingleton.base(control.enabled) : "transparent"
+
+ /*! \qmlproperty color BasicTableViewStyle::alternateBackgroundColor
+ The alternate background color. */
+ property color alternateBackgroundColor: "#f5f5f5"
+
+ /*! \qmlproperty color BasicTableViewStyle::highlightedTextColor
+ The text highlight color, used within selections. */
+ property color highlightedTextColor: "white"
+
+ /*! \qmlproperty bool BasicTableViewStyle::activateItemOnSingleClick
+ Activates items on single click.
+
+ Its default value is \c false.
+ */
+ property bool activateItemOnSingleClick: false
+
+ padding.top: control.headerVisible ? 0 : 1
+
+ /*! \qmlproperty Component BasicTableViewStyle::headerDelegate
+ \internal
+
+ Different documentation for TableViewStyle and TreeViewStyle.
+ See qtquickcontrolsstyles-tableviewstyle.qdoc and qtquickcontrolsstyles-treeviewstyle.qdoc
+ */
+ property Component headerDelegate: BorderImage {
+ height: Math.round(textItem.implicitHeight * 1.2)
+ source: "images/header.png"
+ border.left: 4
+ border.bottom: 2
+ border.top: 2
+ Text {
+ id: textItem
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: styleData.textAlignment
+ anchors.leftMargin: horizontalAlignment === Text.AlignLeft ? 12 : 1
+ anchors.rightMargin: horizontalAlignment === Text.AlignRight ? 8 : 1
+ text: styleData.value
+ elide: Text.ElideRight
+ color: textColor
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ Rectangle {
+ width: 1
+ height: parent.height - 2
+ y: 1
+ color: "#ccc"
+ }
+ }
+
+ /*! \qmlproperty Component BasicTableViewStyle::rowDelegate
+ \internal
+
+ Different documentation for TableViewStyle and TreeViewStyle.
+ See qtquickcontrolsstyles-tableviewstyle.qdoc and qtquickcontrolsstyles-treeviewstyle.qdoc
+ */
+ property Component rowDelegate: Rectangle {
+ height: Math.round(TextSingleton.implicitHeight * 1.2)
+ property color selectedColor: control.activeFocus ? "#07c" : "#999"
+ color: styleData.selected ? selectedColor :
+ !styleData.alternate ? alternateBackgroundColor : backgroundColor
+ }
+
+ /*! \qmlproperty Component BasicTableViewStyle::itemDelegate
+ \internal
+
+ Different documentation for TableViewStyle and TreeViewStyle.
+ See qtquickcontrolsstyles-tableviewstyle.qdoc and qtquickcontrolsstyles-treeviewstyle.qdoc
+ */
+ property Component itemDelegate: Item {
+ height: Math.max(16, label.implicitHeight)
+ property int implicitWidth: label.implicitWidth + 20
+
+ Text {
+ id: label
+ objectName: "label"
+ width: parent.width - x - (horizontalAlignment === Text.AlignRight ? 8 : 1)
+ x: (styleData.hasOwnProperty("depth") && styleData.column === 0) ? 0 :
+ horizontalAlignment === Text.AlignRight ? 1 : 8
+ horizontalAlignment: styleData.textAlignment
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: 1
+ elide: styleData.elideMode
+ text: styleData.value !== undefined ? styleData.value.toString() : ""
+ color: styleData.textColor
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+
+ /*! \internal
+ Part of TreeViewStyle
+ */
+ property Component __branchDelegate: null
+
+ /*! \internal
+ Part of TreeViewStyle
+ */
+ property int __indentation: 12
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qmlc
new file mode 100644
index 00000000..9942a0fd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BasicTableViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qml
new file mode 100644
index 00000000..da2a2aa5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype BusyIndicatorStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.2
+ \ingroup controlsstyling
+ \brief Provides custom styling for BusyIndicatorStyle.
+
+ You can create a busy indicator by replacing the "indicator" delegate
+ of the BusyIndicatorStyle with a custom design.
+
+ Example:
+ \qml
+ BusyIndicator {
+ style: BusyIndicatorStyle {
+ indicator: Image {
+ visible: control.running
+ source: "spinner.png"
+ RotationAnimator on rotation {
+ running: control.running
+ loops: Animation.Infinite
+ duration: 2000
+ from: 0 ; to: 360
+ }
+ }
+ }
+ }
+ \endqml
+*/
+Style {
+ id: indicatorstyle
+
+ /*! The \l BusyIndicator this style is attached to. */
+ readonly property BusyIndicator control: __control
+
+ /*! This defines the appearance of the busy indicator. */
+ property Component indicator: Item {
+ id: indicatorItem
+
+ implicitWidth: 48
+ implicitHeight: 48
+
+ opacity: control.running ? 1 : 0
+ Behavior on opacity { OpacityAnimator { duration: 250 } }
+
+ Image {
+ anchors.centerIn: parent
+ anchors.alignWhenCentered: true
+ width: Math.min(parent.width, parent.height)
+ height: width
+ source: width <= 32 ? "images/spinner_small.png" :
+ width >= 48 ? "images/spinner_large.png" :
+ "images/spinner_medium.png"
+ RotationAnimator on rotation {
+ duration: 800
+ loops: Animation.Infinite
+ from: 0
+ to: 360
+ running: indicatorItem.visible && (control.running || indicatorItem.opacity > 0);
+ }
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ anchors.fill: parent
+ implicitWidth: indicatorLoader.implicitWidth
+ implicitHeight: indicatorLoader.implicitHeight
+
+ Loader {
+ id: indicatorLoader
+ sourceComponent: indicator
+ anchors.centerIn: parent
+ width: Math.min(parent.width, parent.height)
+ height: width
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qmlc
new file mode 100644
index 00000000..5ca5f86b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/BusyIndicatorStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qml
new file mode 100644
index 00000000..5a3fa551
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qml
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ButtonStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for Button.
+
+ You can create a custom button by replacing the "background" delegate
+ of the ButtonStyle with a custom design.
+
+ Example:
+ \qml
+ Button {
+ text: "A button"
+ style: ButtonStyle {
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 25
+ border.width: control.activeFocus ? 2 : 1
+ border.color: "#888"
+ radius: 4
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: control.pressed ? "#ccc" : "#eee" }
+ GradientStop { position: 1 ; color: control.pressed ? "#aaa" : "#ccc" }
+ }
+ }
+ }
+ }
+ \endqml
+ If you need a custom label, you can replace the label item.
+*/
+
+Style {
+ id: buttonstyle
+
+ /*! The \l {QtQuick.Controls::}{Button} this style is attached to. */
+ readonly property Button control: __control
+
+ /*! The padding between the background and the label components. */
+ padding {
+ top: 4
+ left: 4
+ right: 4 + (control.menu !== null ? Math.round(TextSingleton.implicitHeight * 0.5) : 0)
+ bottom: 4
+ }
+
+ /*! This defines the background of the button. */
+ property Component background: Item {
+ property bool down: control.pressed || (control.checkable && control.checked)
+ implicitWidth: Math.round(TextSingleton.implicitHeight * 4.5)
+ implicitHeight: Math.max(25, Math.round(TextSingleton.implicitHeight * 1.2))
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: down ? 0 : -1
+ color: "#10000000"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: down ? "#aaa" : "#fefefe" ; position: 0}
+ GradientStop {color: down ? "#ccc" : "#e3e3e3" ; position: down ? 0.1: 1}
+ }
+ radius: TextSingleton.implicitHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ Rectangle {
+ anchors.fill: parent
+ radius: parent.radius
+ color: control.activeFocus ? "#47b" : "white"
+ opacity: control.hovered || control.activeFocus ? 0.1 : 0
+ Behavior on opacity {NumberAnimation{ duration: 100 }}
+ }
+ }
+ Image {
+ id: imageItem
+ visible: control.menu !== null
+ source: "images/arrow-down.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 4
+ opacity: control.enabled ? 0.6 : 0.5
+ }
+ }
+
+ /*! This defines the label of the button. */
+ property Component label: Item {
+ implicitWidth: row.implicitWidth
+ implicitHeight: row.implicitHeight
+ baselineOffset: row.y + text.y + text.baselineOffset
+ Row {
+ id: row
+ anchors.centerIn: parent
+ spacing: 2
+ Image {
+ source: control.iconSource
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ Text {
+ id: text
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ anchors.verticalCenter: parent.verticalCenter
+ text: StyleHelpers.stylizeMnemonics(control.text)
+ color: SystemPaletteSingleton.buttonText(control.enabled)
+ }
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ anchors.fill: parent
+ implicitWidth: Math.max(labelLoader.implicitWidth + padding.left + padding.right, backgroundLoader.implicitWidth)
+ implicitHeight: Math.max(labelLoader.implicitHeight + padding.top + padding.bottom, backgroundLoader.implicitHeight)
+ baselineOffset: labelLoader.item ? padding.top + labelLoader.item.baselineOffset : 0
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ id: labelLoader
+ sourceComponent: label
+ anchors.fill: parent
+ anchors.leftMargin: padding.left
+ anchors.topMargin: padding.top
+ anchors.rightMargin: padding.right
+ anchors.bottomMargin: padding.bottom
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qmlc
new file mode 100644
index 00000000..132f55c9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qml
new file mode 100644
index 00000000..bde2f2cc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qml
@@ -0,0 +1,703 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype CalendarStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.3
+ \ingroup controlsstyling
+ \brief Provides custom styling for \l Calendar.
+
+ \section2 Component Map
+
+ \image calendarstyle-components-week-numbers.png
+
+ The calendar has the following styleable components:
+
+ \table
+ \row \li \image square-white.png
+ \li \l background
+ \li Fills the entire control.
+ \row \li \image square-yellow.png
+ \li \l navigationBar
+ \li
+ \row \li \image square-green.png
+ \li \l dayOfWeekDelegate
+ \li One instance per day of week.
+ \row \li \image square-red.png
+ \li \l weekNumberDelegate
+ \li One instance per week.
+ \row \li \image square-blue.png
+ \li \l dayDelegate
+ \li One instance per day of month.
+ \endtable
+
+ \section2 Custom Style Example
+ \qml
+ Calendar {
+ anchors.centerIn: parent
+
+ style: CalendarStyle {
+ gridVisible: false
+ dayDelegate: Rectangle {
+ gradient: Gradient {
+ GradientStop {
+ position: 0.00
+ color: styleData.selected ? "#111" : (styleData.visibleMonth && styleData.valid ? "#444" : "#666");
+ }
+ GradientStop {
+ position: 1.00
+ color: styleData.selected ? "#444" : (styleData.visibleMonth && styleData.valid ? "#111" : "#666");
+ }
+ GradientStop {
+ position: 1.00
+ color: styleData.selected ? "#777" : (styleData.visibleMonth && styleData.valid ? "#111" : "#666");
+ }
+ }
+
+ Label {
+ text: styleData.date.getDate()
+ anchors.centerIn: parent
+ color: styleData.valid ? "white" : "grey"
+ }
+
+ Rectangle {
+ width: parent.width
+ height: 1
+ color: "#555"
+ anchors.bottom: parent.bottom
+ }
+
+ Rectangle {
+ width: 1
+ height: parent.height
+ color: "#555"
+ anchors.right: parent.right
+ }
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+ id: calendarStyle
+
+ /*!
+ The Calendar this style is attached to.
+ */
+ readonly property Calendar control: __control
+
+ /*!
+ The color of the grid lines.
+ */
+ property color gridColor: "#d3d3d3"
+
+ /*!
+ This property determines the visibility of the grid.
+
+ The default value is \c true.
+ */
+ property bool gridVisible: true
+
+ /*!
+ \internal
+
+ The width of each grid line.
+ */
+ property real __gridLineWidth: 1
+
+ /*! \internal */
+ property color __horizontalSeparatorColor: gridColor
+
+ /*! \internal */
+ property color __verticalSeparatorColor: gridColor
+
+ function __cellRectAt(index) {
+ return CalendarUtils.cellRectAt(index, control.__panel.columns, control.__panel.rows,
+ control.__panel.availableWidth, control.__panel.availableHeight, gridVisible ? __gridLineWidth : 0);
+ }
+
+ function __isValidDate(date) {
+ return date !== undefined
+ && date.getTime() >= control.minimumDate.getTime()
+ && date.getTime() <= control.maximumDate.getTime();
+ }
+
+ /*!
+ The background of the calendar.
+
+ The implicit size of the calendar is calculated based on the implicit size of the background delegate.
+ */
+ property Component background: Rectangle {
+ color: "#fff"
+ implicitWidth: Math.max(250, Math.round(TextSingleton.implicitHeight * 14))
+ implicitHeight: Math.max(250, Math.round(TextSingleton.implicitHeight * 14))
+ }
+
+ /*!
+ The navigation bar of the calendar.
+
+ Styles the bar at the top of the calendar that contains the
+ next month/previous month buttons and the selected date label.
+
+ The properties provided to the delegate are:
+ \table
+ \row \li readonly property string \b styleData.title
+ \li The title of the calendar.
+ \endtable
+ */
+ property Component navigationBar: Rectangle {
+ height: Math.round(TextSingleton.implicitHeight * 2.73)
+ color: "#f9f9f9"
+
+ Rectangle {
+ color: Qt.rgba(1,1,1,0.6)
+ height: 1
+ width: parent.width
+ }
+
+ Rectangle {
+ anchors.bottom: parent.bottom
+ height: 1
+ width: parent.width
+ color: "#ddd"
+ }
+ HoverButton {
+ id: previousMonth
+ width: parent.height
+ height: width
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ source: "images/leftanglearrow.png"
+ onClicked: control.showPreviousMonth()
+ }
+ Label {
+ id: dateText
+ text: styleData.title
+ elide: Text.ElideRight
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: TextSingleton.implicitHeight * 1.25
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: previousMonth.right
+ anchors.leftMargin: 2
+ anchors.right: nextMonth.left
+ anchors.rightMargin: 2
+ }
+ HoverButton {
+ id: nextMonth
+ width: parent.height
+ height: width
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ source: "images/rightanglearrow.png"
+ onClicked: control.showNextMonth()
+ }
+ }
+
+ /*!
+ The delegate that styles each date in the calendar.
+
+ The properties provided to each delegate are:
+ \table
+ \row \li readonly property date \b styleData.date
+ \li The date this delegate represents.
+ \row \li readonly property bool \b styleData.selected
+ \li \c true if this is the selected date.
+ \row \li readonly property int \b styleData.index
+ \li The index of this delegate.
+ \row \li readonly property bool \b styleData.valid
+ \li \c true if this date is greater than or equal to than \l {Calendar::minimumDate}{minimumDate} and
+ less than or equal to \l {Calendar::maximumDate}{maximumDate}.
+ \row \li readonly property bool \b styleData.today
+ \li \c true if this date is equal to today's date.
+ \row \li readonly property bool \b styleData.visibleMonth
+ \li \c true if the month in this date is the visible month.
+ \row \li readonly property bool \b styleData.hovered
+ \li \c true if the mouse is over this cell.
+ \note This property is \c true even when the mouse is hovered over an invalid date.
+ \row \li readonly property bool \b styleData.pressed
+ \li \c true if the mouse is pressed on this cell.
+ \note This property is \c true even when the mouse is pressed on an invalid date.
+ \endtable
+ */
+ property Component dayDelegate: Rectangle {
+ anchors.fill: parent
+ anchors.leftMargin: (!addExtraMargin || control.weekNumbersVisible) && styleData.index % CalendarUtils.daysInAWeek === 0 ? 0 : -1
+ anchors.rightMargin: !addExtraMargin && styleData.index % CalendarUtils.daysInAWeek === CalendarUtils.daysInAWeek - 1 ? 0 : -1
+ anchors.bottomMargin: !addExtraMargin && styleData.index >= CalendarUtils.daysInAWeek * (CalendarUtils.weeksOnACalendarMonth - 1) ? 0 : -1
+ anchors.topMargin: styleData.selected ? -1 : 0
+ color: styleData.date !== undefined && styleData.selected ? selectedDateColor : "transparent"
+
+ readonly property bool addExtraMargin: control.frameVisible && styleData.selected
+ readonly property color sameMonthDateTextColor: "#444"
+ readonly property color selectedDateColor: Qt.platform.os === "osx" ? "#3778d0" : SystemPaletteSingleton.highlight(control.enabled)
+ readonly property color selectedDateTextColor: "white"
+ readonly property color differentMonthDateTextColor: "#bbb"
+ readonly property color invalidDateColor: "#dddddd"
+ Label {
+ id: dayDelegateText
+ text: styleData.date.getDate()
+ anchors.centerIn: parent
+ horizontalAlignment: Text.AlignRight
+ font.pixelSize: Math.min(parent.height/3, parent.width/3)
+ color: {
+ var theColor = invalidDateColor;
+ if (styleData.valid) {
+ // Date is within the valid range.
+ theColor = styleData.visibleMonth ? sameMonthDateTextColor : differentMonthDateTextColor;
+ if (styleData.selected)
+ theColor = selectedDateTextColor;
+ }
+ theColor;
+ }
+ }
+ }
+
+ /*!
+ The delegate that styles each weekday.
+
+ The height of the weekday row is calculated based on the maximum implicit height of the delegates.
+
+ The properties provided to each delegate are:
+ \table
+ \row \li readonly property int \b styleData.index
+ \li The index (0-6) of the delegate.
+ \row \li readonly property int \b styleData.dayOfWeek
+ \li The day of the week this delegate represents. Possible values:
+ \list
+ \li \c Locale.Sunday
+ \li \c Locale.Monday
+ \li \c Locale.Tuesday
+ \li \c Locale.Wednesday
+ \li \c Locale.Thursday
+ \li \c Locale.Friday
+ \li \c Locale.Saturday
+ \endlist
+ \endtable
+ */
+ property Component dayOfWeekDelegate: Rectangle {
+ color: gridVisible ? "#fcfcfc" : "transparent"
+ implicitHeight: Math.round(TextSingleton.implicitHeight * 2.25)
+ Label {
+ text: control.locale.dayName(styleData.dayOfWeek, control.dayOfWeekFormat)
+ anchors.centerIn: parent
+ }
+ }
+
+ /*!
+ The delegate that styles each week number.
+
+ The width of the week number column is calculated based on the maximum implicit width of the delegates.
+
+ The properties provided to each delegate are:
+ \table
+ \row \li readonly property int \b styleData.index
+ \li The index (0-5) of the delegate.
+ \row \li readonly property int \b styleData.weekNumber
+ \li The number of the week this delegate represents.
+ \endtable
+ */
+ property Component weekNumberDelegate: Rectangle {
+ implicitWidth: Math.round(TextSingleton.implicitHeight * 2)
+ Label {
+ text: styleData.weekNumber
+ anchors.centerIn: parent
+ color: "#444"
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ id: panelItem
+
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: backgroundLoader.implicitHeight
+
+ property alias navigationBarItem: navigationBarLoader.item
+
+ property alias dayOfWeekHeaderRow: dayOfWeekHeaderRow
+
+ readonly property int weeksToShow: 6
+ readonly property int rows: weeksToShow
+ readonly property int columns: CalendarUtils.daysInAWeek
+
+ // The combined available width and height to be shared amongst each cell.
+ readonly property real availableWidth: viewContainer.width
+ readonly property real availableHeight: viewContainer.height
+
+ property int hoveredCellIndex: -1
+ property int pressedCellIndex: -1
+ property int pressCellIndex: -1
+ property var pressDate: null
+
+ Rectangle {
+ anchors.fill: parent
+ color: "transparent"
+ border.color: gridColor
+ visible: control.frameVisible
+ }
+
+ Item {
+ id: container
+ anchors.fill: parent
+ anchors.margins: control.frameVisible ? 1 : 0
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ id: navigationBarLoader
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ sourceComponent: navigationBar
+ active: control.navigationBarVisible
+
+ property QtObject styleData: QtObject {
+ readonly property string title: control.locale.standaloneMonthName(control.visibleMonth)
+ + new Date(control.visibleYear, control.visibleMonth, 1).toLocaleDateString(control.locale, " yyyy")
+ }
+ }
+
+ Row {
+ id: dayOfWeekHeaderRow
+ anchors.top: navigationBarLoader.bottom
+ anchors.left: parent.left
+ anchors.leftMargin: (control.weekNumbersVisible ? weekNumbersItem.width : 0)
+ anchors.right: parent.right
+ spacing: gridVisible ? __gridLineWidth : 0
+ property alias __repeater: repeater
+
+ Repeater {
+ id: repeater
+ model: CalendarHeaderModel {
+ locale: control.locale
+ }
+ Loader {
+ id: dayOfWeekDelegateLoader
+ sourceComponent: dayOfWeekDelegate
+ width: __cellRectAt(index).width
+
+ readonly property int __index: index
+ readonly property var __dayOfWeek: dayOfWeek
+
+ property QtObject styleData: QtObject {
+ readonly property alias index: dayOfWeekDelegateLoader.__index
+ readonly property alias dayOfWeek: dayOfWeekDelegateLoader.__dayOfWeek
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: topGridLine
+ color: __horizontalSeparatorColor
+ width: parent.width
+ height: __gridLineWidth
+ visible: gridVisible
+ anchors.top: dayOfWeekHeaderRow.bottom
+ }
+
+ Row {
+ id: gridRow
+ width: weekNumbersItem.width + viewContainer.width
+ height: viewContainer.height
+ anchors.top: topGridLine.bottom
+
+ Column {
+ id: weekNumbersItem
+ visible: control.weekNumbersVisible
+ height: viewContainer.height
+ spacing: gridVisible ? __gridLineWidth : 0
+ Repeater {
+ id: weekNumberRepeater
+ model: panelItem.weeksToShow
+
+ Loader {
+ id: weekNumberDelegateLoader
+ height: __cellRectAt(index * panelItem.columns).height
+ sourceComponent: weekNumberDelegate
+
+ readonly property int __index: index
+ property int __weekNumber: control.__model.weekNumberAt(index)
+
+ Connections {
+ target: control
+
+ function onVisibleMonthChanged() {
+ __weekNumber = control.__model.weekNumberAt(index)
+ }
+
+ function onVisibleYearChanged() {
+ __weekNumber = control.__model.weekNumberAt(index)
+ }
+ }
+
+ Connections {
+ target: control.__model
+ function onCountChanged() {
+ __weekNumber = control.__model.weekNumberAt(index)
+ }
+ }
+
+ property QtObject styleData: QtObject {
+ readonly property alias index: weekNumberDelegateLoader.__index
+ readonly property int weekNumber: weekNumberDelegateLoader.__weekNumber
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: separator
+ anchors.topMargin: - dayOfWeekHeaderRow.height - 1
+ anchors.top: weekNumbersItem.top
+ anchors.bottom: weekNumbersItem.bottom
+
+ width: __gridLineWidth
+ color: __verticalSeparatorColor
+ visible: control.weekNumbersVisible
+ }
+
+ // Contains the grid lines and the grid itself.
+ Item {
+ id: viewContainer
+ width: container.width - (control.weekNumbersVisible ? weekNumbersItem.width + separator.width : 0)
+ height: container.height - navigationBarLoader.height - dayOfWeekHeaderRow.height - topGridLine.height
+
+ Repeater {
+ id: verticalGridLineRepeater
+ model: panelItem.columns - 1
+ delegate: Rectangle {
+ x: __cellRectAt(index + 1).x - __gridLineWidth
+ y: 0
+ width: __gridLineWidth
+ height: viewContainer.height
+ color: gridColor
+ visible: gridVisible
+ }
+ }
+
+ Repeater {
+ id: horizontalGridLineRepeater
+ model: panelItem.rows - 1
+ delegate: Rectangle {
+ x: 0
+ y: __cellRectAt((index + 1) * panelItem.columns).y - __gridLineWidth
+ width: viewContainer.width
+ height: __gridLineWidth
+ color: gridColor
+ visible: gridVisible
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+
+ hoverEnabled: Settings.hoverEnabled
+
+ function cellIndexAt(mouseX, mouseY) {
+ var viewContainerPos = viewContainer.mapFromItem(mouseArea, mouseX, mouseY);
+ var child = viewContainer.childAt(viewContainerPos.x, viewContainerPos.y);
+ // In the tests, the mouseArea sometimes gets picked instead of the cells,
+ // probably because stuff is still loading. To be safe, we check for that here.
+ return child && child !== mouseArea ? child.__index : -1;
+ }
+
+ onEntered: {
+ hoveredCellIndex = cellIndexAt(mouseX, mouseY);
+ if (hoveredCellIndex === undefined) {
+ hoveredCellIndex = cellIndexAt(mouseX, mouseY);
+ }
+
+ var date = view.model.dateAt(hoveredCellIndex);
+ if (__isValidDate(date)) {
+ control.hovered(date);
+ }
+ }
+
+ onExited: {
+ hoveredCellIndex = -1;
+ }
+
+ onPositionChanged: {
+ var indexOfCell = cellIndexAt(mouse.x, mouse.y);
+ var previousHoveredCellIndex = hoveredCellIndex;
+ hoveredCellIndex = indexOfCell;
+ if (indexOfCell !== -1) {
+ var date = view.model.dateAt(indexOfCell);
+ if (__isValidDate(date)) {
+ if (hoveredCellIndex !== previousHoveredCellIndex)
+ control.hovered(date);
+
+ // The date must be different for the pressed signal to be emitted.
+ if (pressed && date.getTime() !== control.selectedDate.getTime()) {
+ control.pressed(date);
+
+ // You can't select dates in a different month while dragging.
+ if (date.getMonth() === control.selectedDate.getMonth()) {
+ control.selectedDate = date;
+ pressedCellIndex = indexOfCell;
+ }
+ }
+ }
+ }
+ }
+
+ onPressed: {
+ pressCellIndex = cellIndexAt(mouse.x, mouse.y);
+ pressDate = null;
+ if (pressCellIndex !== -1) {
+ var date = view.model.dateAt(pressCellIndex);
+ pressedCellIndex = pressCellIndex;
+ pressDate = date;
+ if (__isValidDate(date)) {
+ control.selectedDate = date;
+ control.pressed(date);
+ }
+ }
+ }
+
+ onReleased: {
+ var indexOfCell = cellIndexAt(mouse.x, mouse.y);
+ if (indexOfCell !== -1) {
+ // The cell index might be valid, but the date has to be too. We could let the
+ // selected date validation take care of this, but then the selected date would
+ // change to the earliest day if a day before the minimum date is clicked, for example.
+ var date = view.model.dateAt(indexOfCell);
+ if (__isValidDate(date)) {
+ control.released(date);
+ }
+ }
+ pressedCellIndex = -1;
+ }
+
+ onClicked: {
+ var indexOfCell = cellIndexAt(mouse.x, mouse.y);
+ if (indexOfCell !== -1 && indexOfCell === pressCellIndex) {
+ if (__isValidDate(pressDate))
+ control.clicked(pressDate);
+ }
+ }
+
+ onDoubleClicked: {
+ var indexOfCell = cellIndexAt(mouse.x, mouse.y);
+ if (indexOfCell !== -1) {
+ var date = view.model.dateAt(indexOfCell);
+ if (__isValidDate(date))
+ control.doubleClicked(date);
+ }
+ }
+
+ onPressAndHold: {
+ var indexOfCell = cellIndexAt(mouse.x, mouse.y);
+ if (indexOfCell !== -1 && indexOfCell === pressCellIndex) {
+ var date = view.model.dateAt(indexOfCell);
+ if (__isValidDate(date))
+ control.pressAndHold(date);
+ }
+ }
+ }
+
+ Connections {
+ target: control
+ function onSelectedDateChanged() { view.selectedDateChanged() }
+ }
+
+ Repeater {
+ id: view
+
+ property int currentIndex: -1
+
+ model: control.__model
+
+ Component.onCompleted: selectedDateChanged()
+
+ function selectedDateChanged() {
+ if (model !== undefined && model.locale !== undefined) {
+ currentIndex = model.indexAt(control.selectedDate);
+ }
+ }
+
+ delegate: Loader {
+ id: delegateLoader
+
+ x: __cellRectAt(index).x
+ y: __cellRectAt(index).y
+ width: __cellRectAt(index).width
+ height: __cellRectAt(index).height
+ sourceComponent: dayDelegate
+
+ readonly property int __index: index
+ readonly property date __date: date
+ // We rely on the fact that an invalid QDate will be converted to a Date
+ // whose year is -4713, which is always an invalid date since our
+ // earliest minimum date is the year 1.
+ readonly property bool valid: __isValidDate(date)
+
+ property QtObject styleData: QtObject {
+ readonly property alias index: delegateLoader.__index
+ readonly property bool selected: control.selectedDate.getFullYear() === date.getFullYear() &&
+ control.selectedDate.getMonth() === date.getMonth() &&
+ control.selectedDate.getDate() === date.getDate()
+ readonly property alias date: delegateLoader.__date
+ readonly property bool valid: delegateLoader.valid
+ // TODO: this will not be correct if the app is running when a new day begins.
+ readonly property bool today: date.getTime() === new Date().setHours(0, 0, 0, 0)
+ readonly property bool visibleMonth: date.getMonth() === control.visibleMonth
+ readonly property bool hovered: panelItem.hoveredCellIndex == index
+ readonly property bool pressed: panelItem.pressedCellIndex == index
+ // todo: pressed property here, clicked and doubleClicked in the control itself
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qmlc
new file mode 100644
index 00000000..f47d9789
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CalendarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qml
new file mode 100644
index 00000000..a476a953
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qml
@@ -0,0 +1,193 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.1
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype CheckBoxStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for CheckBox.
+
+ Example:
+ \qml
+ CheckBox {
+ text: "Check Box"
+ style: CheckBoxStyle {
+ indicator: Rectangle {
+ implicitWidth: 16
+ implicitHeight: 16
+ radius: 3
+ border.color: control.activeFocus ? "darkblue" : "gray"
+ border.width: 1
+ Rectangle {
+ visible: control.checked
+ color: "#555"
+ border.color: "#333"
+ radius: 1
+ anchors.margins: 4
+ anchors.fill: parent
+ }
+ }
+ }
+ }
+ \endqml
+*/
+Style {
+ id: checkboxStyle
+
+ /*! The \l CheckBox this style is attached to. */
+ readonly property CheckBox control: __control
+
+ /*! This defines the text label. */
+ property Component label: Item {
+ implicitWidth: text.implicitWidth + 2
+ implicitHeight: text.implicitHeight
+ baselineOffset: text.baselineOffset
+ Rectangle {
+ anchors.fill: text
+ anchors.margins: -1
+ anchors.leftMargin: -3
+ anchors.rightMargin: -3
+ visible: control.activeFocus
+ height: 6
+ radius: 3
+ color: "#224f9fef"
+ border.color: "#47b"
+ opacity: 0.6
+ }
+ Text {
+ id: text
+ text: StyleHelpers.stylizeMnemonics(control.text)
+ anchors.centerIn: parent
+ color: SystemPaletteSingleton.text(control.enabled)
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+ /*! The background under indicator and label. */
+ property Component background
+
+ /*! The spacing between indicator and label. */
+ property int spacing: Math.round(TextSingleton.implicitHeight/4)
+
+ /*! This defines the indicator button. */
+ property Component indicator: Item {
+ implicitWidth: Math.round(TextSingleton.implicitHeight)
+ implicitHeight: implicitWidth
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: -1
+ color: "#44ffffff"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: "#eee" ; position: 0}
+ GradientStop {color: control.pressed ? "#eee" : "#fff" ; position: 0.1}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ radius: TextSingleton.implicitHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ }
+
+ Image {
+ source: "images/check.png"
+ opacity: control.checkedState === Qt.Checked ? control.enabled ? 1 : 0.5 : 0
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: 1
+ Behavior on opacity {NumberAnimation {duration: 80}}
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: Math.round(baserect.radius)
+ antialiasing: true
+ gradient: Gradient {
+ GradientStop {color: control.pressed ? "#555" : "#999" ; position: 0}
+ GradientStop {color: "#555" ; position: 1}
+ }
+ radius: baserect.radius - 1
+ anchors.centerIn: parent
+ anchors.alignWhenCentered: true
+ border.color: "#222"
+ Behavior on opacity {NumberAnimation {duration: 80}}
+ opacity: control.checkedState === Qt.PartiallyChecked ? control.enabled ? 1 : 0.5 : 0
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: Math.max(backgroundLoader.implicitWidth, row.implicitWidth + padding.left + padding.right)
+ implicitHeight: Math.max(backgroundLoader.implicitHeight, labelLoader.implicitHeight + padding.top + padding.bottom,indicatorLoader.implicitHeight + padding.top + padding.bottom)
+ baselineOffset: labelLoader.item ? padding.top + labelLoader.item.baselineOffset : 0
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: background
+ anchors.fill: parent
+ }
+ RowLayout {
+ id: row
+ anchors.fill: parent
+
+ anchors.leftMargin: padding.left
+ anchors.rightMargin: padding.right
+ anchors.topMargin: padding.top
+ anchors.bottomMargin: padding.bottom
+
+ spacing: checkboxStyle.spacing
+ Loader {
+ id: indicatorLoader
+ sourceComponent: indicator
+ }
+ Loader {
+ id: labelLoader
+ Layout.fillWidth: true
+ sourceComponent: label
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qmlc
new file mode 100644
index 00000000..26a5a290
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CheckBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qml
new file mode 100644
index 00000000..b2324e0e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Extras.Private 1.0
+
+ButtonStyle {
+ id: buttonStyle
+
+ label: Text {
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: control.text
+ font.pixelSize: TextSingleton.font.pixelSize * 1.25
+ color: control.pressed || control.checked ? __buttonHelper.textColorDown : __buttonHelper.textColorUp
+ styleColor: control.pressed || control.checked ? __buttonHelper.textRaisedColorDown : __buttonHelper.textRaisedColorUp
+ style: Text.Raised
+ wrapMode: Text.Wrap
+ fontSizeMode: Text.Fit
+ }
+
+ /*! \internal */
+ property alias __buttonHelper: buttonHelper
+
+ CircularButtonStyleHelper {
+ id: buttonHelper
+ control: buttonStyle.control
+ }
+
+ background: Item {
+ implicitWidth: __buttonHelper.implicitWidth
+ implicitHeight: __buttonHelper.implicitHeight
+
+ Canvas {
+ id: backgroundCanvas
+ anchors.fill: parent
+
+ Connections {
+ target: control
+ function onPressedChanged() { backgroundCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ __buttonHelper.paintBackground(ctx);
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qmlc
new file mode 100644
index 00000000..60a11ef1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qml
new file mode 100644
index 00000000..e40b8bb4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qml
@@ -0,0 +1,497 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtGraphicalEffects 1.0
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype CircularGaugeStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for CircularGauge.
+
+ You can create a custom circular gauge by replacing the following delegates:
+ \list
+ \li \l background
+ \li \l tickmark
+ \li \l minorTickmark
+ \li \l tickmarkLabel
+ \li \l needle
+ \li \l foreground
+ \endlist
+
+ Below is an example that changes the needle to a basic orange \l Rectangle:
+ \code
+ CircularGauge {
+ style: CircularGaugeStyle {
+ needle: Rectangle {
+ y: outerRadius * 0.15
+ implicitWidth: outerRadius * 0.03
+ implicitHeight: outerRadius * 0.9
+ antialiasing: true
+ color: Qt.rgba(0.66, 0.3, 0, 1)
+ }
+ }
+ }
+ \endcode
+
+ The result:
+ \image circulargauge-needle-example-2.png CircularGaugeStyle example
+
+ \section2 Direction
+
+ \l minimumValueAngle and \l maximumValueAngle determine not only the
+ position of the tickmarks, labels and needle, but the direction in which
+ they are displayed around the gauge. For example, if \l minimumValueAngle
+ is greater than \l maximumValueAngle, the gauge will be anti-clockwise.
+ Below, there are two gauges: the top gauge has a \l minimumValueAngle of
+ \c -90 degrees and a \l maximumValueAngle of \c 90 degrees, and the bottom
+ gauge has the opposite.
+
+ \image circulargauge-reversed.png Reversed CircularGauge
+
+ \sa {Styling CircularGauge}
+*/
+
+Style {
+ id: circularGaugeStyle
+
+ /*!
+ The \l CircularGauge that this style is attached to.
+ */
+ readonly property CircularGauge control: __control
+
+ /*!
+ The distance from the center of the gauge to the outer edge of the
+ gauge.
+
+ This property is useful for determining the size of the various
+ components of the style, in order to ensure that they are scaled
+ proportionately when the gauge is resized.
+ */
+ readonly property real outerRadius: Math.min(control.width, control.height) * 0.5
+
+ /*!
+ This property determines the angle at which the minimum value is
+ displayed on the gauge.
+
+ The angle set affects the following components of the gauge:
+ \list
+ \li The angle of the needle
+ \li The position of the tickmarks and labels
+ \endlist
+
+ The angle origin points north:
+
+ \image circulargauge-angles.png
+
+ There is no minimum or maximum angle for this property, but the default
+ style only supports angles whose absolute range is less than or equal
+ to \c 360 degrees. This is because ranges higher than \c 360 degrees
+ will cause the tickmarks and labels to overlap each other.
+
+ The default value is \c -145.
+ */
+ property real minimumValueAngle: -145
+
+ /*!
+ This property determines the angle at which the maximum value is
+ displayed on the gauge.
+
+ The angle set affects the following components of the gauge:
+ \list
+ \li The angle of the needle
+ \li The position of the tickmarks and labels
+ \endlist
+
+ The angle origin points north:
+
+ \image circulargauge-angles.png
+
+ There is no minimum or maximum angle for this property, but the default
+ style only supports angles whose absolute range is less than or equal
+ to \c 360 degrees. This is because ranges higher than \c 360 degrees
+ will cause the tickmarks and labels to overlap each other.
+
+ The default value is \c 145.
+ */
+ property real maximumValueAngle: 145
+
+ /*!
+ The range between \l minimumValueAngle and \l maximumValueAngle, in
+ degrees. This value will always be positive.
+ */
+ readonly property real angleRange: control.__panel.circularTickmarkLabel.angleRange
+
+ /*!
+ This property holds the rotation of the needle in degrees.
+ */
+ property real needleRotation: {
+ var percentage = (control.value - control.minimumValue) / (control.maximumValue - control.minimumValue);
+ minimumValueAngle + percentage * angleRange;
+ }
+
+ /*!
+ The interval at which tickmarks are displayed.
+
+ For example, if this property is set to \c 10 (the default),
+ control.minimumValue to \c 0, and control.maximumValue to \c 100,
+ the tickmarks displayed will be 0, 10, 20, etc., to 100,
+ around the gauge.
+ */
+ property real tickmarkStepSize: 10
+
+ /*!
+ The distance in pixels from the outside of the gauge (outerRadius) at
+ which the outermost point of the tickmark line is drawn.
+ */
+ property real tickmarkInset: 0
+
+
+ /*!
+ The amount of tickmarks displayed by the gauge, calculated from
+ \l tickmarkStepSize and the control's
+ \l {CircularGauge::minimumValue}{minimumValue} and
+ \l {CircularGauge::maximumValue}{maximumValue}.
+
+ \sa minorTickmarkCount
+ */
+ readonly property int tickmarkCount: control.__panel.circularTickmarkLabel.tickmarkCount
+
+ /*!
+ The amount of minor tickmarks between each tickmark.
+
+ The default value is \c 4.
+
+ \sa tickmarkCount
+ */
+ property int minorTickmarkCount: 4
+
+ /*!
+ The distance in pixels from the outside of the gauge (outerRadius) at
+ which the outermost point of the minor tickmark line is drawn.
+ */
+ property real minorTickmarkInset: 0
+
+ /*!
+ The distance in pixels from the outside of the gauge (outerRadius) at
+ which the center of the value marker text is drawn.
+ */
+ property real labelInset: __protectedScope.toPixels(0.19)
+
+ /*!
+ The interval at which tickmark labels are displayed.
+
+ For example, if this property is set to \c 10 (the default),
+ control.minimumValue to \c 0, and control.maximumValue to \c 100, the
+ tickmark labels displayed will be 0, 10, 20, etc., to 100,
+ around the gauge.
+ */
+ property real labelStepSize: tickmarkStepSize
+
+ /*!
+ The amount of tickmark labels displayed by the gauge, calculated from
+ \l labelStepSize and the control's
+ \l {CircularGauge::minimumValue}{minimumValue} and
+ \l {CircularGauge::maximumValue}{maximumValue}.
+
+ \sa tickmarkCount, minorTickmarkCount
+ */
+ readonly property int labelCount: control.__panel.circularTickmarkLabel.labelCount
+
+ /*! \qmlmethod real CircularGaugeStyle::valueToAngle(real value)
+ Returns \a value as an angle in degrees.
+
+ This function is useful for custom drawing or positioning of items in
+ the style's components. For example, it can be used to calculate the
+ angles at which to draw an arc around the gauge indicating the safe
+ area for the needle to be within.
+
+ For example, if minimumValueAngle is set to \c 270 and
+ maximumValueAngle is set to \c 90, this function will return \c 270
+ when passed minimumValue and \c 90 when passed maximumValue.
+
+ \sa {Styling CircularGauge#styling-circulargauge-background}{
+ Styling CircularGauge's background}
+ */
+ function valueToAngle(value) {
+ return control.__panel.circularTickmarkLabel.valueToAngle(value);
+ }
+
+ property QtObject __protectedScope: QtObject {
+ /*!
+ Converts a value expressed as a percentage of \l outerRadius to
+ a pixel value.
+ */
+ function toPixels(percentageOfOuterRadius) {
+ return percentageOfOuterRadius * outerRadius;
+ }
+ }
+
+ /*!
+ The background of the gauge.
+
+ If set, the background determines the implicit size of the gauge.
+
+ By default, there is no background defined.
+
+ \sa {Styling CircularGauge#styling-circulargauge-background}{
+ Styling CircularGauge's background}
+ */
+ property Component background
+
+ /*!
+ This component defines each individual tickmark. The position of each
+ tickmark is already set; only the
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight} need to be specified.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this tickmark represents.
+ \endtable
+
+ To illustrate what these properties refer to, we can use the following
+ example:
+
+ \snippet circulargauge-tickmark-indices-values.qml tickmarks
+
+ We've replaced the conventional \e line tickmarks with \l Text items
+ and have hidden the tickmarkLabel component in order to make the
+ association clearer:
+
+ \image circulargauge-tickmark-indices-values.png Tickmarks
+
+ The index property can be useful if you have another model that
+ contains images to display for each index, for example.
+
+ The value property is useful for drawing lower and upper limits around
+ the gauge to indicate the recommended value ranges. For example, speeds
+ above 200 kilometers an hour in a car's speedometer could be indicated
+ as dangerous using this property.
+
+ \sa {Styling CircularGauge#styling-circulargauge-tickmark}{
+ Styling CircularGauge's tickmark}
+ */
+ property Component tickmark: Rectangle {
+ implicitWidth: outerRadius * 0.02
+ antialiasing: true
+ implicitHeight: outerRadius * 0.06
+ color: "#c8c8c8"
+ }
+
+ /*!
+ This component defines each individual minor tickmark. The position of
+ each minor tickmark is already set; only the
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight} need to be specified.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this tickmark represents.
+ \endtable
+
+ \sa {Styling CircularGauge#styling-circulargauge-minorTickmark}{
+ Styling CircularGauge's minorTickmark}
+ */
+ property Component minorTickmark: Rectangle {
+ implicitWidth: outerRadius * 0.01
+ antialiasing: true
+ implicitHeight: outerRadius * 0.03
+ color: "#c8c8c8"
+ }
+
+ /*!
+ This defines the text of each tickmark label on the gauge.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this label.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this label represents.
+ \endtable
+
+ \sa {Styling CircularGauge#styling-circulargauge-tickmarkLabel}{
+ Styling CircularGauge's tickmarkLabel}
+ */
+ property Component tickmarkLabel: Text {
+ font.pixelSize: Math.max(6, __protectedScope.toPixels(0.12))
+ text: styleData.value
+ color: "#c8c8c8"
+ antialiasing: true
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ /*!
+ The needle that points to the gauge's current value.
+
+ This component is drawn below the \l foreground component.
+
+ The style expects the needle to be pointing up at a rotation of \c 0,
+ in order for the rotation to be correct. For example:
+
+ \image circulargauge-needle.png CircularGauge's needle
+
+ When defining your own needle component, the only properties that the
+ style requires you to set are the
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight}.
+
+ Optionally, you can set \l {Item::x}{x} and \l {Item::y}{y} to change
+ the needle's transform origin. Setting the \c x position can be useful
+ for needle images where the needle is not centered exactly
+ horizontally. Setting the \c y position allows you to make the base of
+ the needle hang over the center of the gauge.
+
+ \sa {Styling CircularGauge#styling-circulargauge-needle}{
+ Styling CircularGauge's needle}
+ */
+ property Component needle: Item {
+ implicitWidth: __protectedScope.toPixels(0.08)
+ implicitHeight: 0.9 * outerRadius
+
+ Image {
+ anchors.fill: parent
+ source: "images/needle.png"
+ }
+ }
+
+ /*!
+ The foreground of the gauge. This component is drawn above all others.
+
+ Like \l background, the foreground component fills the entire gauge.
+
+ By default, the knob of the gauge is defined here.
+
+ \sa {Styling CircularGauge#styling-circulargauge-foreground}{
+ Styling CircularGauge's foreground}
+ */
+ property Component foreground: Item {
+ Image {
+ source: "images/knob.png"
+ anchors.centerIn: parent
+ scale: {
+ var idealHeight = __protectedScope.toPixels(0.2);
+ var originalImageHeight = sourceSize.height;
+ idealHeight / originalImageHeight;
+ }
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ id: panelItem
+ implicitWidth: backgroundLoader.item ? backgroundLoader.implicitWidth : TextSingleton.implicitHeight * 16
+ implicitHeight: backgroundLoader.item ? backgroundLoader.implicitHeight : TextSingleton.implicitHeight * 16
+
+ property alias background: backgroundLoader.item
+ property alias circularTickmarkLabel: circularTickmarkLabel_
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: circularGaugeStyle.background
+ width: outerRadius * 2
+ height: outerRadius * 2
+ anchors.centerIn: parent
+ }
+
+ CircularTickmarkLabel {
+ id: circularTickmarkLabel_
+ anchors.fill: backgroundLoader
+
+ minimumValue: control.minimumValue
+ maximumValue: control.maximumValue
+ stepSize: control.stepSize
+ tickmarksVisible: control.tickmarksVisible
+ minimumValueAngle: circularGaugeStyle.minimumValueAngle
+ maximumValueAngle: circularGaugeStyle.maximumValueAngle
+ tickmarkStepSize: circularGaugeStyle.tickmarkStepSize
+ tickmarkInset: circularGaugeStyle.tickmarkInset
+ minorTickmarkCount: circularGaugeStyle.minorTickmarkCount
+ minorTickmarkInset: circularGaugeStyle.minorTickmarkInset
+ labelInset: circularGaugeStyle.labelInset
+ labelStepSize: circularGaugeStyle.labelStepSize
+
+ style: CircularTickmarkLabelStyle {
+ tickmark: circularGaugeStyle.tickmark
+ minorTickmark: circularGaugeStyle.minorTickmark
+ tickmarkLabel: circularGaugeStyle.tickmarkLabel
+ }
+ }
+
+ Loader {
+ id: needleLoader
+ sourceComponent: circularGaugeStyle.needle
+ transform: [
+ Rotation {
+ angle: needleRotation
+ origin.x: needleLoader.width / 2
+ origin.y: needleLoader.height
+ },
+ Translate {
+ x: panelItem.width / 2 - needleLoader.width / 2
+ y: panelItem.height / 2 - needleLoader.height
+ }
+ ]
+ }
+
+ Loader {
+ id: foreground
+ sourceComponent: circularGaugeStyle.foreground
+ anchors.fill: backgroundLoader
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qmlc
new file mode 100644
index 00000000..4afb71df
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularGaugeStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qml
new file mode 100644
index 00000000..494a7f28
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qml
@@ -0,0 +1,309 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras.Private 1.0
+import QtQuick.Extras.Private.CppUtils 1.0
+
+Style {
+ id: circularTickmarkLabelStyle
+
+ /*!
+ The distance from the center of the control to the outer edge.
+ */
+ readonly property real outerRadius: Math.min(control.width, control.height) * 0.5
+
+ property QtObject __protectedScope: QtObject {
+ /*!
+ Converts a value expressed as a percentage of \l outerRadius to
+ a pixel value.
+ */
+ function toPixels(percentageOfOuterRadius) {
+ return percentageOfOuterRadius * outerRadius;
+ }
+ }
+
+ /*!
+ This component defines each individual tickmark. The position of each
+ tickmark is already set; only the size needs to be specified.
+ */
+ property Component tickmark: Rectangle {
+ width: outerRadius * 0.02
+ antialiasing: true
+ height: outerRadius * 0.06
+ color: "#c8c8c8"
+ }
+
+ /*!
+ This component defines each individual minor tickmark. The position of
+ each minor tickmark is already set; only the size needs to be specified.
+ */
+ property Component minorTickmark: Rectangle {
+ width: outerRadius * 0.01
+ antialiasing: true
+ height: outerRadius * 0.03
+ color: "#c8c8c8"
+ }
+
+ /*!
+ This defines the text of each tickmark label on the gauge.
+ */
+ property Component tickmarkLabel: Text {
+ font.pixelSize: Math.max(6, __protectedScope.toPixels(0.12))
+ text: styleData.value
+ color: "#c8c8c8"
+ antialiasing: true
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ id: panelItem
+ implicitWidth: 250
+ implicitHeight: 250
+
+ function rangeUsed(count, stepSize) {
+ return (((count - 1) * stepSize) / (control.maximumValue - control.minimumValue)) * control.angleRange;
+ }
+
+ readonly property real tickmarkSectionSize: rangeUsed(control.tickmarkCount, control.tickmarkStepSize) / (control.tickmarkCount - 1)
+ readonly property real tickmarkSectionValue: (control.maximumValue - control.minimumValue) / (control.tickmarkCount - 1)
+ readonly property real minorTickmarkSectionSize: tickmarkSectionSize / (control.minorTickmarkCount + 1)
+ readonly property real minorTickmarkSectionValue: tickmarkSectionValue / (control.minorTickmarkCount + 1)
+ readonly property int totalMinorTickmarkCount: {
+ // The size of each section within two major tickmarks, expressed as a percentage.
+ var minorSectionPercentage = 1 / (control.minorTickmarkCount + 1);
+ // The amount of major tickmarks not able to be displayed; will be 0 if they all fit.
+ var tickmarksNotDisplayed = control.__tickmarkCount - control.tickmarkCount;
+ var count = control.minorTickmarkCount * (control.tickmarkCount - 1);
+ // We'll try to display as many minor tickmarks as we can to fill up the space.
+ count + tickmarksNotDisplayed / minorSectionPercentage;
+ }
+ readonly property real labelSectionSize: rangeUsed(control.labelCount, control.labelStepSize) / (control.labelCount - 1)
+
+ function toPixels(percentageOfOuterRadius) {
+ return percentageOfOuterRadius * outerRadius;
+ }
+
+ /*!
+ Returns the angle of \a marker (in the range 0 ... n - 1, where n
+ is the amount of markers) on the gauge where sections are of size
+ tickmarkSectionSize.
+ */
+ function tickmarkAngleFromIndex(tickmarkIndex) {
+ return tickmarkIndex * tickmarkSectionSize + control.minimumValueAngle;
+ }
+
+ function labelAngleFromIndex(labelIndex) {
+ return labelIndex * labelSectionSize + control.minimumValueAngle;
+ }
+
+ function labelPosFromIndex(index, labelWidth, labelHeight) {
+ return MathUtils.centerAlongCircle(outerRadius, outerRadius, labelWidth, labelHeight,
+ MathUtils.degToRadOffset(labelAngleFromIndex(index)),
+ outerRadius - control.labelInset)
+ }
+
+ function minorTickmarkAngleFromIndex(minorTickmarkIndex) {
+ var baseAngle = tickmarkAngleFromIndex(Math.floor(minorTickmarkIndex / control.minorTickmarkCount));
+ // + minorTickmarkSectionSize because we don't want the first minor tickmark to start on top of its "parent" tickmark.
+ var relativeMinorAngle = (minorTickmarkIndex % control.minorTickmarkCount * minorTickmarkSectionSize) + minorTickmarkSectionSize;
+ return baseAngle + relativeMinorAngle;
+ }
+
+ function tickmarkValueFromIndex(majorIndex) {
+ return (majorIndex * tickmarkSectionValue) + control.minimumValue;
+ }
+
+ function tickmarkValueFromMinorIndex(minorIndex) {
+ var majorIndex = Math.floor(minorIndex / control.minorTickmarkCount);
+ var relativeMinorIndex = minorIndex % control.minorTickmarkCount;
+ return tickmarkValueFromIndex(majorIndex) + ((relativeMinorIndex * minorTickmarkSectionValue) + minorTickmarkSectionValue);
+ }
+
+ Loader {
+ active: control.tickmarksVisible && tickmark != null
+ width: outerRadius * 2
+ height: outerRadius * 2
+ anchors.centerIn: parent
+
+ sourceComponent: Repeater {
+ id: tickmarkRepeater
+ model: control.tickmarkCount
+ delegate: Loader {
+ id: tickmarkLoader
+ objectName: "tickmark" + styleData.index
+ x: tickmarkRepeater.width / 2
+ y: tickmarkRepeater.height / 2
+
+ transform: [
+ Translate {
+ y: -outerRadius + control.tickmarkInset
+ },
+ Rotation {
+ angle: panelItem.tickmarkAngleFromIndex(styleData.index) - __tickmarkWidthAsAngle / 2
+ }
+ ]
+
+ sourceComponent: tickmark
+
+ property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: tickmarkLoader.__index
+ readonly property real value: tickmarkValueFromIndex(index)
+ }
+
+ readonly property real __tickmarkWidthAsAngle: MathUtils.radToDeg((width / (MathUtils.pi2 * outerRadius)) * MathUtils.pi2)
+ }
+ }
+ }
+ Loader {
+ active: control.tickmarksVisible && minorTickmark != null
+ width: outerRadius * 2
+ height: outerRadius * 2
+ anchors.centerIn: parent
+
+ sourceComponent: Repeater {
+ id: minorRepeater
+ anchors.fill: parent
+ model: totalMinorTickmarkCount
+ delegate: Loader {
+ id: minorTickmarkLoader
+ objectName: "minorTickmark" + styleData.index
+ x: minorRepeater.width / 2
+ y: minorRepeater.height / 2
+ transform: [
+ Translate {
+ y: -outerRadius + control.minorTickmarkInset
+ },
+ Rotation {
+ angle: panelItem.minorTickmarkAngleFromIndex(styleData.index) - __minorTickmarkWidthAsAngle / 2
+ }
+ ]
+
+ sourceComponent: minorTickmark
+
+ property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: minorTickmarkLoader.__index
+ readonly property real value: tickmarkValueFromMinorIndex(index)
+ }
+
+ readonly property real __minorTickmarkWidthAsAngle: MathUtils.radToDeg((width / (MathUtils.pi2 * outerRadius)) * MathUtils.pi2)
+ }
+ }
+ }
+ Loader {
+ id: labelLoader
+ active: control.tickmarksVisible && tickmarkLabel != null
+ width: outerRadius * 2
+ height: outerRadius * 2
+ anchors.centerIn: parent
+
+ sourceComponent: Item {
+ id: labelItem
+ width: outerRadius * 2
+ height: outerRadius * 2
+ anchors.centerIn: parent
+
+ Connections {
+ target: control
+ function onMinimumValueChanged() { valueTextModel.update() }
+ function onMaximumValueChanged() { valueTextModel.update() }
+ function onTickmarkStepSizeChanged() { valueTextModel.update() }
+ function onLabelStepSizeChanged() { valueTextModel.update() }
+ }
+
+ Repeater {
+ id: labelItemRepeater
+
+ Component.onCompleted: valueTextModel.update();
+
+ model: ListModel {
+ id: valueTextModel
+
+ function update() {
+ if (control.labelStepSize === 0) {
+ return;
+ }
+
+ // Make bigger if it's too small and vice versa.
+ // +1 because we want to show 11 values, with, for example: 0, 10, 20... 100.
+ var difference = control.labelCount - count;
+ if (difference > 0) {
+ for (; difference > 0; --difference) {
+ append({ value: 0 });
+ }
+ } else if (difference < 0) {
+ for (; difference < 0; ++difference) {
+ remove(count - 1);
+ }
+ }
+
+ var index = 0;
+ for (var value = control.minimumValue;
+ value <= control.maximumValue && index < count;
+ value += control.labelStepSize, ++index) {
+ setProperty(index, "value", value);
+ }
+ }
+ }
+ delegate: Loader {
+ id: tickmarkLabelDelegateLoader
+ objectName: "labelDelegateLoader" + index
+ sourceComponent: tickmarkLabel
+ x: pos.x
+ y: pos.y
+
+ readonly property point pos: panelItem.labelPosFromIndex(index, width, height);
+
+ readonly property int __index: index
+ readonly property real __value: value
+ property QtObject styleData: QtObject {
+ readonly property var value: index != -1 ? tickmarkLabelDelegateLoader.__value : 0
+ readonly property alias index: tickmarkLabelDelegateLoader.__index
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qmlc
new file mode 100644
index 00000000..ba7fd855
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CircularTickmarkLabelStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qml
new file mode 100644
index 00000000..ea13696c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qml
@@ -0,0 +1,328 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ComboBoxStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for ComboBox.
+*/
+
+Style {
+ id: cbStyle
+
+ /*!
+ \qmlproperty enumeration renderType
+ \since QtQuick.Controls.Styles 1.2
+
+ Override the default rendering type for the control.
+
+ Supported render types are:
+ \list
+ \li Text.QtRendering
+ \li Text.NativeRendering
+ \endlist
+
+ The default value is platform dependent.
+
+ \sa Text::renderType
+ */
+ property int renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The font of the control.
+ */
+ property font font
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The text color.
+ */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The text highlight color, used behind selections.
+ */
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The highlighted text color, used in selections.
+ */
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+ /*! The \l ComboBox this style is attached to. */
+ readonly property ComboBox control: __control
+
+ /*! The padding between the background and the label components. */
+ padding { top: 4 ; left: 6 ; right: 6 ; bottom:4 }
+
+ /*! The size of the drop down button when the combobox is editable. */
+ property int dropDownButtonWidth: Math.round(TextSingleton.implicitHeight)
+
+ /*! \internal Alias kept for backwards compatibility with a spelling mistake in 5.2.0) */
+ property alias drowDownButtonWidth: cbStyle.dropDownButtonWidth
+
+ /*! This defines the background of the button. */
+ property Component background: Item {
+ implicitWidth: Math.round(TextSingleton.implicitHeight * 4.5)
+ implicitHeight: Math.max(25, Math.round(TextSingleton.implicitHeight * 1.2))
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: control.pressed ? 0 : -1
+ color: "#10000000"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: control.pressed ? "#bababa" : "#fefefe" ; position: 0}
+ GradientStop {color: control.pressed ? "#ccc" : "#e3e3e3" ; position: 1}
+ }
+ radius: TextSingleton.implicitHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ Rectangle {
+ anchors.fill: parent
+ radius: parent.radius
+ color: control.activeFocus ? "#47b" : "white"
+ opacity: control.hovered || control.activeFocus ? 0.1 : 0
+ Behavior on opacity {NumberAnimation{ duration: 100 }}
+ }
+ }
+ Image {
+ id: imageItem
+ visible: control.menu !== null
+ source: "images/arrow-down.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: dropDownButtonWidth / 2
+ opacity: control.enabled ? 0.6 : 0.3
+ }
+ }
+
+ /*! \internal */
+ property Component __editor: Item {
+ implicitWidth: 100
+ implicitHeight: Math.max(25, Math.round(TextSingleton.implicitHeight * 1.2))
+ clip: true
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: 0
+ color: "#44ffffff"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ anchors.rightMargin: -radius
+ anchors.bottomMargin: 1
+ gradient: Gradient {
+ GradientStop {color: "#e0e0e0" ; position: 0}
+ GradientStop {color: "#fff" ; position: 0.1}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ radius: TextSingleton.implicitHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ }
+ Rectangle {
+ color: "#aaa"
+ anchors.bottomMargin: 2
+ anchors.topMargin: 1
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ width: 1
+ }
+ }
+
+ /*! This defines the label of the button. */
+ property Component label: Item {
+ implicitWidth: textitem.implicitWidth + 20
+ baselineOffset: textitem.y + textitem.baselineOffset
+ Text {
+ id: textitem
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: 4
+ anchors.rightMargin: 10
+ anchors.verticalCenter: parent.verticalCenter
+ text: control.currentText
+ renderType: cbStyle.renderType
+ font: cbStyle.font
+ color: cbStyle.textColor
+ elide: Text.ElideRight
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ property bool popup: false
+ property font font: cbStyle.font
+ property color textColor: cbStyle.textColor
+ property color selectionColor: cbStyle.selectionColor
+ property color selectedTextColor: cbStyle.selectedTextColor
+ property int dropDownButtonWidth: cbStyle.dropDownButtonWidth
+ anchors.centerIn: parent
+ anchors.fill: parent
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: Math.max(labelLoader.implicitHeight + padding.top + padding.bottom, backgroundLoader.implicitHeight)
+ baselineOffset: labelLoader.item ? padding.top + labelLoader.item.baselineOffset: 0
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+
+ }
+
+ Loader {
+ id: editorLoader
+ anchors.fill: parent
+ anchors.rightMargin: dropDownButtonWidth + padding.right
+ anchors.bottomMargin: -1
+ sourceComponent: control.editable ? __editor : null
+ }
+
+ Loader {
+ id: labelLoader
+ sourceComponent: label
+ visible: !control.editable
+ anchors.fill: parent
+ anchors.leftMargin: padding.left
+ anchors.topMargin: padding.top
+ anchors.rightMargin: padding.right
+ anchors.bottomMargin: padding.bottom
+ }
+ }
+
+ /*! \internal */
+ property Component __dropDownStyle: MenuStyle {
+ font: cbStyle.font
+ __labelColor: cbStyle.textColor
+ __selectedLabelColor: cbStyle.selectedTextColor
+ __selectedBackgroundColor: cbStyle.selectionColor
+ __maxPopupHeight: 600
+ __menuItemType: "comboboxitem"
+ __scrollerStyle: ScrollViewStyle { }
+ }
+
+ /*! \internal */
+ property Component __popupStyle: Style {
+ property int __maxPopupHeight: 400
+ property int submenuOverlap: 0
+ property int submenuPopupDelay: 100
+
+ property Component frame: Rectangle {
+ id: popupFrame
+ border.color: "white"
+ Text {
+ text: "NOT IMPLEMENTED"
+ color: "red"
+ font {
+ pixelSize: 10
+ bold: true
+ }
+ anchors.centerIn: parent
+ rotation: -Math.atan2(popupFrame.height, popupFrame.width) * 180 / Math.PI
+ }
+ }
+
+ property Component menuItemPanel: Text {
+ text: styleData.text
+ }
+
+ property Component __scrollerStyle: null
+ }
+
+ /*! \internal
+ The cursor handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the cursor position. The interactive area is determined by the
+ geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __cursorHandle
+
+ /*! \internal
+ The selection handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the first selected character. The interactive area is determined
+ by the geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __selectionHandle
+
+ /*! \internal
+ The cursor delegate.
+ \since QtQuick.Controls.Styles 1.3
+ */
+ property Component __cursorDelegate
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qmlc
new file mode 100644
index 00000000..f0ea9645
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ComboBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qml
new file mode 100644
index 00000000..5deeb351
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+QtObject {
+ property Item control
+
+ property color buttonColorUpTop: "#e3e3e3"
+ property color buttonColorUpBottom: "#b3b3b3"
+ property color buttonColorDownTop: "#d3d3d3"
+ property color buttonColorDownBottom: "#939393"
+ property color textColorUp: "#4e4e4e"
+ property color textColorDown: "#303030"
+ property color textRaisedColorUp: "#ffffff"
+ property color textRaisedColorDown: "#e3e3e3"
+ property color offColor: "#ff0000"
+ property color offColorShine: "#ff6666"
+ property color onColor: "#00cc00"
+ property color onColorShine: "#66ff66"
+ property color inactiveColor: "#1f1f1f"
+ property color inactiveColorShine: "#666666"
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qmlc
new file mode 100644
index 00000000..c0ce2efc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/CommonStyleHelper.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qml
new file mode 100644
index 00000000..00a1716a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qml
@@ -0,0 +1,230 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtGraphicalEffects 1.0
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private.CppUtils 1.1
+
+/*!
+ \qmltype DelayButtonStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for DelayButton.
+
+ You can create a custom DelayButton by replacing the following delegates:
+ \list
+ \li \l foreground
+ \li \l {ButtonStyle::}{label}
+ \endlist
+*/
+
+CircularButtonStyle {
+ id: delayButtonStyle
+
+ /*!
+ The \l DelayButton that this style is attached to.
+ */
+ readonly property DelayButton control: __control
+
+ /*!
+ The gradient of the progress bar around the button.
+ */
+ property Gradient progressBarGradient: Gradient {
+ GradientStop {
+ position: 0
+ color: "#ff6666"
+ }
+ GradientStop {
+ position: 1
+ color: "#ff0000"
+ }
+ }
+
+ /*!
+ The color of the drop shadow under the progress bar.
+ */
+ property color progressBarDropShadowColor: "#ff6666"
+
+ background: Item {
+ implicitWidth: __buttonHelper.implicitWidth
+ implicitHeight: __buttonHelper.implicitHeight
+
+ Canvas {
+ id: backgroundCanvas
+ anchors.fill: parent
+
+ Connections {
+ target: control
+ function onPressedChanged() { backgroundCanvas.requestPaint() }
+ function onCheckedChanged() { backgroundCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ __buttonHelper.paintBackground(ctx);
+ }
+ }
+ }
+
+ /*!
+ The foreground of the button.
+
+ The progress bar is drawn here.
+ */
+ property Component foreground: Item {
+ id: foregroundItem
+
+ state: "normal"
+ states: [
+ State {
+ name: "normal"
+
+ PropertyChanges {
+ target: foregroundItem
+ opacity: 1
+ }
+ },
+ State {
+ name: "activated"
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "normal"
+ to: "activated"
+ SequentialAnimation {
+ loops: Animation.Infinite
+
+ NumberAnimation {
+ target: foregroundItem
+ property: "opacity"
+ from: 0.8
+ to: 0
+ duration: 500
+ easing.type: Easing.InOutSine
+ }
+ NumberAnimation {
+ target: foregroundItem
+ property: "opacity"
+ from: 0
+ to: 0.8
+ duration: 500
+ easing.type: Easing.InOutSine
+ }
+ }
+ }
+ ]
+
+ Connections {
+ target: control
+ function onActivated() { state = "activated" }
+ function onCheckedChanged() { if (!control.checked) state = "normal" }
+ }
+
+ CircularProgressBar {
+ id: progressBar
+ visible: false
+ width: Math.min(parent.width, parent.height) + progressBarDropShadow.radius * 3 * 2
+ height: width
+ anchors.centerIn: parent
+ antialiasing: true
+ barWidth: __buttonHelper.outerArcLineWidth
+ inset: progressBarDropShadow.radius * 3
+ minimumValueAngle: -180
+ maximumValueAngle: 180
+
+ progress: control.progress
+
+ // TODO: Add gradient property if/when we drop support for building with 5.1.
+ function updateGradient() {
+ clearStops();
+ for (var i = 0; i < progressBarGradient.stops.length; ++i) {
+ addStop(progressBarGradient.stops[i].position, progressBarGradient.stops[i].color);
+ }
+ }
+
+ Component.onCompleted: updateGradient()
+
+ Connections {
+ target: delayButtonStyle
+ function onProgressBarGradientChanged() { progressBar.updateGradient() }
+ }
+ }
+
+ DropShadow {
+ id: progressBarDropShadow
+ anchors.fill: progressBar
+ // QTBUG-33747
+// cached: !control.pressed
+ color: progressBarDropShadowColor
+ source: progressBar
+ }
+ }
+
+ panel: Item {
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: backgroundLoader.implicitHeight
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ id: foregroundLoader
+ anchors.fill: parent
+ sourceComponent: foreground
+ }
+
+ Loader {
+ id: labelLoader
+ sourceComponent: label
+ anchors.fill: parent
+ anchors.leftMargin: padding.left
+ anchors.topMargin: padding.top
+ anchors.rightMargin: padding.right
+ anchors.bottomMargin: padding.bottom
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qmlc
new file mode 100644
index 00000000..16458634
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DelayButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qml
new file mode 100644
index 00000000..95172455
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qml
@@ -0,0 +1,359 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+import QtQuick.Extras.Private.CppUtils 1.0
+
+/*!
+ \qmltype DialStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for Dial.
+
+ You can create a custom dial by replacing the following delegates:
+ \list
+ \li \l background
+ \endlist
+*/
+
+Style {
+ id: dialStyle
+
+ /*!
+ The \l Dial that this style is attached to.
+ */
+ readonly property Dial control: __control
+
+ /*!
+ The distance from the center of the dial to the outer edge of the dial.
+
+ This property is useful for determining the size of the various
+ components of the style, in order to ensure that they are scaled
+ proportionately when the dial is resized.
+ */
+ readonly property real outerRadius: Math.min(control.height, control.width) / 2
+
+ /*!
+ The distance in pixels from the outside of the dial (outerRadius)
+ to the center of the handle.
+ */
+ property real handleInset: (__tickmarkRadius * 4) + ((__handleRadius * 2) * 0.55)
+
+ /*!
+ The interval at which tickmarks are displayed.
+
+ For example, if this property is set to \c 10,
+ control.minimumValue to \c 0, and control.maximumValue to \c 100,
+ the tickmarks displayed will be 0, 10, 20, etc., to 100, along
+ the circumference of the dial.
+ */
+ property real tickmarkStepSize: 1
+
+ /*!
+ The distance in pixels from the outside of the dial (outerRadius) at
+ which the outermost point of the tickmark line is drawn.
+ */
+ property real tickmarkInset: 0
+
+
+ /*!
+ The amount of tickmarks displayed by the dial, calculated from
+ \l tickmarkStepSize and the control's
+ \l {Dial::minimumValue}{minimumValue} and
+ \l {Dial::maximumValue}{maximumValue}.
+
+ \sa minorTickmarkCount
+ */
+ readonly property int tickmarkCount: control.__panel.circularTickmarkLabel.tickmarkCount
+
+ /*!
+ The amount of minor tickmarks between each tickmark.
+
+ \sa tickmarkCount
+ */
+ property int minorTickmarkCount: 0
+
+ /*!
+ The distance in pixels from the outside of the dial (outerRadius) at
+ which the outermost point of the minor tickmark line is drawn.
+ */
+ property real minorTickmarkInset: 0
+
+ /*!
+ The distance in pixels from the outside of the dial (outerRadius) at
+ which the center of the value marker text is drawn.
+ */
+ property real labelInset: 0
+
+ /*!
+ The interval at which tickmark labels are displayed.
+
+ For example, if this property is set to \c 10 (the default),
+ control.minimumValue to \c 0, and control.maximumValue to \c 100, the
+ tickmark labels displayed will be 0, 10, 20, etc., to 100,
+ along the circumference of the dial.
+ */
+ property real labelStepSize: tickmarkStepSize
+
+ /*!
+ The amount of tickmark labels displayed by the dial, calculated from
+ \l labelStepSize and the control's
+ \l {Dial::minimumValue}{minimumValue} and
+ \l {Dial::maximumValue}{maximumValue}.
+
+ \sa tickmarkCount, minorTickmarkCount
+ */
+ readonly property int labelCount: control.__panel.circularTickmarkLabel.labelCount
+
+ /*! \qmlmethod real DialStyle::valueToAngle(real value)
+ Returns \a value as an angle in degrees.
+
+ This function is useful for custom drawing or positioning of items in
+ the style's components. For example, it can be used to calculate the
+ angles at which to draw an arc around the dial indicating the safe
+ range of values.
+ */
+ function valueToAngle(value) {
+ return control.__panel.circularTickmarkLabel.valueToAngle(value);
+ }
+
+ /*! \internal */
+ readonly property real __tickmarkRadius: outerRadius * 0.06
+
+ /*! \internal */
+ readonly property real __handleRadius: outerRadius * 0.15
+
+ /*!
+ \internal
+
+ This property determines whether it is possible to change the value of
+ the dial simply by pressing/tapping.
+
+ If \c false, the user must drag to rotate the dial and hence change the
+ value.
+
+ This property is useful for touch devices, where it is easy to
+ accidentally tap while flicking, for example.
+ */
+ property bool __dragToSet: Settings.hasTouchScreen && Settings.isMobile
+
+ /*!
+ The background of the dial.
+
+ The implicit size of the dial is taken from this component.
+ */
+ property Component background: Item {
+ id: backgroundItem
+ implicitWidth: backgroundHelper.implicitWidth
+ implicitHeight: backgroundHelper.implicitHeight
+
+ CircularButtonStyleHelper {
+ id: backgroundHelper
+ control: dialStyle.control
+ property color zeroMarkerColor: "#a8a8a8"
+ property color zeroMarkerColorTransparent: "transparent"
+ property real zeroMarkerLength: outerArcLineWidth * 1.25
+ property real zeroMarkerWidth: outerArcLineWidth * 0.3
+
+ smallestAxis: Math.min(backgroundItem.width, backgroundItem.height) - __tickmarkRadius * 4
+ }
+
+ Canvas {
+ id: backgroundCanvas
+ anchors.fill: parent
+
+ readonly property real xCenter: width / 2
+ readonly property real yCenter: height / 2
+
+ onPaint: {
+ var ctx = getContext("2d");
+ backgroundHelper.paintBackground(ctx);
+ }
+ }
+ }
+
+ /*!
+ The handle of the dial.
+
+ The handle is automatically positioned within the dial, based on the
+ \l handleInset and the implicit width and height of the handle itself.
+ */
+ property Component handle: Canvas {
+ implicitWidth: __handleRadius * 2
+ implicitHeight: __handleRadius * 2
+
+ HandleStyleHelper {
+ id: handleHelper
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ handleHelper.paintHandle(ctx, 1, 1, width - 2, height - 2);
+ }
+ }
+
+ /*!
+ This component defines each individual tickmark. The position of each
+ tickmark is already set; only the
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight} need to be specified.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this tickmark represents.
+ \endtable
+ */
+ property Component tickmark: Rectangle {
+ implicitWidth: outerRadius * 0.015 + (styleData.index === 0 || styleData.index === tickmarkCount ? 1 : (styleData.index) / tickmarkCount) * __tickmarkRadius * 0.75
+ implicitHeight: implicitWidth
+ radius: height / 2
+ color: styleData.index === 0 ? "transparent" : Qt.rgba(0, 0, 0, 0.266)
+ antialiasing: true
+ border.width: styleData.index === 0 ? Math.max(1, outerRadius * 0.0075) : 0
+ border.color: Qt.rgba(0, 0, 0, 0.266)
+ }
+
+ /*!
+ This component defines each individual minor tickmark. The position of each
+ minor tickmark is already set; only the
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight} need to be specified.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this tickmark represents.
+ \endtable
+
+ By default, no minor tickmark is defined.
+ */
+ property Component minorTickmark
+
+ /*!
+ This defines the text of each tickmark label on the dial.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this label.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this label represents.
+ \endtable
+
+ By default, no label is defined.
+ */
+ property Component tickmarkLabel
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: backgroundLoader.implicitHeight
+
+ property alias background: backgroundLoader.item
+ property alias circularTickmarkLabel: circularTickmarkLabel_
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: dialStyle.background
+ width: outerRadius * 2
+ height: width
+ anchors.centerIn: parent
+ }
+
+ Loader {
+ id: handleLoader
+ sourceComponent: dialStyle.handle
+ x: backgroundLoader.x + __pos.x - width / 2
+ y: backgroundLoader.y + __pos.y - height / 2
+
+ readonly property point __pos: {
+ var radians = 0;
+ if (control.__wrap) {
+ radians = (control.value - control.minimumValue) /
+ (control.maximumValue - control.minimumValue) *
+ (MathUtils.pi2) + backgroundHelper.zeroAngle;
+ } else {
+ radians = -(Math.PI * 8 - (control.value - control.minimumValue) * 10 *
+ Math.PI / (control.maximumValue - control.minimumValue)) / 6;
+ }
+
+ return MathUtils.centerAlongCircle(backgroundLoader.width / 2, backgroundLoader.height / 2,
+ 0, 0, radians, outerRadius - handleInset)
+ }
+ }
+
+ CircularTickmarkLabel {
+ id: circularTickmarkLabel_
+ anchors.fill: backgroundLoader
+
+ minimumValue: control.minimumValue
+ maximumValue: control.maximumValue
+ stepSize: control.stepSize
+ tickmarksVisible: control.tickmarksVisible
+ minimumValueAngle: -150
+ maximumValueAngle: 150
+ tickmarkStepSize: dialStyle.tickmarkStepSize
+ tickmarkInset: dialStyle.tickmarkInset
+ minorTickmarkCount: dialStyle.minorTickmarkCount
+ minorTickmarkInset: dialStyle.minorTickmarkInset
+ labelInset: dialStyle.labelInset
+ labelStepSize: dialStyle.labelStepSize
+
+ style: CircularTickmarkLabelStyle {
+ tickmark: dialStyle.tickmark
+ minorTickmark: dialStyle.minorTickmark
+ tickmarkLabel: dialStyle.tickmarkLabel
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qmlc
new file mode 100644
index 00000000..4999b689
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/DialStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qml
new file mode 100644
index 00000000..3db24796
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qml
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype FocusFrameStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+*/
+Item {
+ property int margin: -3
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qmlc
new file mode 100644
index 00000000..a8804c55
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/FocusFrameStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qml
new file mode 100644
index 00000000..4ad1f7ef
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qml
@@ -0,0 +1,544 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype GaugeStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for Gauge.
+
+ You can create a custom gauge by replacing the following delegates:
+ \list
+ \li \l background
+ \li valueBar
+ \li tickmarkLabel
+ \endlist
+
+ Below, you'll find an example of how to create a temperature gauge that
+ changes color as its value increases:
+
+ \code
+ import QtQuick 2.2
+ import QtQuick.Controls 1.4
+ import QtQuick.Controls.Styles 1.4
+ import QtQuick.Extras 1.4
+
+ Rectangle {
+ width: 80
+ height: 200
+
+ Timer {
+ running: true
+ repeat: true
+ interval: 2000
+ onTriggered: gauge.value = gauge.value == gauge.maximumValue ? 5 : gauge.maximumValue
+ }
+
+ Gauge {
+ id: gauge
+ anchors.fill: parent
+ anchors.margins: 10
+
+ value: 5
+ Behavior on value {
+ NumberAnimation {
+ duration: 1000
+ }
+ }
+
+ style: GaugeStyle {
+ valueBar: Rectangle {
+ implicitWidth: 16
+ color: Qt.rgba(gauge.value / gauge.maximumValue, 0, 1 - gauge.value / gauge.maximumValue, 1)
+ }
+ }
+ }
+ }
+ \endcode
+
+ \image gauge-temperature.png
+ The gauge displaying values at various points during the animation.
+
+ \sa {Styling Gauge}
+*/
+
+Style {
+ id: gaugeStyle
+
+ /*!
+ The \l Gauge that this style is attached to.
+ */
+ readonly property Gauge control: __control
+
+ /*!
+ This property holds the value displayed by the gauge as a position in
+ pixels.
+
+ It is useful for custom styling.
+ */
+ readonly property real valuePosition: control.__panel.valuePosition
+
+ /*!
+ The background of the gauge, displayed behind the \l valueBar.
+
+ By default, no background is defined.
+ */
+ property Component background
+
+ /*!
+ Each tickmark displayed by the gauge.
+
+ To set the size of the tickmarks, specify an
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight}.
+
+ The widest tickmark will determine the space set aside for all
+ tickmarks. For this reason, the \c implicitWidth of each tickmark
+ should be greater than or equal to that of each minor tickmark. If you
+ need minor tickmarks to have greater widths than the major tickmarks,
+ set the larger width in a child item of the \l minorTickmark component.
+
+ For layouting reasons, each tickmark should have the same
+ \c implicitHeight. If different heights are needed for individual
+ tickmarks, specify those heights in a child item of the component.
+
+ In the example below, we decrease the height of the tickmarks:
+
+ \code
+ tickmark: Item {
+ implicitWidth: 18
+ implicitHeight: 1
+
+ Rectangle {
+ color: "#c8c8c8"
+ anchors.fill: parent
+ anchors.leftMargin: 3
+ anchors.rightMargin: 3
+ }
+ }
+ \endcode
+
+ \image gauge-tickmark-example.png Gauge tickmark example
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this tickmark represents.
+ \row \li \c {readonly property real} \b styleData.valuePosition
+ \li The value that this tickmark represents as a position in
+ pixels, with 0 being at the bottom of the gauge.
+ \endtable
+
+ \sa minorTickmark
+ */
+ property Component tickmark: Item {
+ implicitWidth: Math.round(TextSingleton.height * 1.1)
+ implicitHeight: Math.max(2, Math.round(TextSingleton.height * 0.1))
+
+ Rectangle {
+ color: "#c8c8c8"
+ anchors.fill: parent
+ anchors.leftMargin: Math.round(TextSingleton.implicitHeight * 0.2)
+ anchors.rightMargin: Math.round(TextSingleton.implicitHeight * 0.2)
+ }
+ }
+
+ /*!
+ Each minor tickmark displayed by the gauge.
+
+ To set the size of the minor tickmarks, specify an
+ \l {Item::implicitWidth}{implicitWidth} and
+ \l {Item::implicitHeight}{implicitHeight}.
+
+ For layouting reasons, each minor tickmark should have the same
+ \c implicitHeight. If different heights are needed for individual
+ tickmarks, specify those heights in a child item of the component.
+
+ In the example below, we decrease the width of the minor tickmarks:
+
+ \code
+ minorTickmark: Item {
+ implicitWidth: 8
+ implicitHeight: 1
+
+ Rectangle {
+ color: "#cccccc"
+ anchors.fill: parent
+ anchors.leftMargin: 2
+ anchors.rightMargin: 4
+ }
+ }
+ \endcode
+
+ \image gauge-minorTickmark-example.png Gauge minorTickmark example
+
+ Each instance of this component has access to the following property:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this minor tickmark.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this minor tickmark represents.
+ \row \li \c {readonly property real} \b styleData.valuePosition
+ \li The value that this minor tickmark represents as a
+ position in pixels, with 0 being at the bottom of the
+ gauge.
+ \endtable
+
+ \sa tickmark
+ */
+ property Component minorTickmark: Item {
+ implicitWidth: Math.round(TextSingleton.implicitHeight * 0.65)
+ implicitHeight: Math.max(1, Math.round(TextSingleton.implicitHeight * 0.05))
+
+ Rectangle {
+ color: "#c8c8c8"
+ anchors.fill: parent
+ anchors.leftMargin: control.__tickmarkAlignment === Qt.AlignBottom || control.__tickmarkAlignment === Qt.AlignRight
+ ? Math.max(3, Math.round(TextSingleton.implicitHeight * 0.2))
+ : 0
+ anchors.rightMargin: control.__tickmarkAlignment === Qt.AlignBottom || control.__tickmarkAlignment === Qt.AlignRight
+ ? 0
+ : Math.max(3, Math.round(TextSingleton.implicitHeight * 0.2))
+ }
+ }
+
+ /*!
+ This defines the text of each tickmark label on the gauge.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this label.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value that this label represents.
+ \endtable
+ */
+ property Component tickmarkLabel: Text {
+ text: control.formatValue(styleData.value)
+ font: control.font
+ color: "#c8c8c8"
+ antialiasing: true
+ }
+
+ /*!
+ The bar that represents the value of the gauge.
+
+ To height of the value bar is automatically resized according to
+ \l {Gauge::value}{value}, and does not need to be specified.
+
+ When a custom valueBar is defined, its
+ \l {Item::implicitWidth}{implicitWidth} property must be set.
+ */
+ property Component valueBar: Rectangle {
+ color: "#00bbff"
+ implicitWidth: TextSingleton.implicitHeight
+ }
+
+ /*!
+ The bar that represents the foreground of the gauge.
+
+ This component is drawn above every other component.
+ */
+ property Component foreground: Canvas {
+ readonly property real xCenter: width / 2
+ readonly property real yCenter: height / 2
+ property real shineLength: height * 0.95
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ ctx.beginPath();
+ ctx.rect(0, 0, width, height);
+
+ var gradient = ctx.createLinearGradient(0, yCenter, width, yCenter);
+
+ gradient.addColorStop(0, Qt.rgba(1, 1, 1, 0.08));
+ gradient.addColorStop(1, Qt.rgba(1, 1, 1, 0.20));
+ ctx.fillStyle = gradient;
+ ctx.fill();
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ id: panelComponent
+ implicitWidth: control.orientation === Qt.Vertical ? tickmarkLabelBoundsWidth + rawBarWidth : TextSingleton.height * 14
+ implicitHeight: control.orientation === Qt.Vertical ? TextSingleton.height * 14 : tickmarkLabelBoundsWidth + rawBarWidth
+
+ readonly property int tickmarkCount: (control.maximumValue - control.minimumValue) / control.tickmarkStepSize + 1
+ readonly property real tickmarkSpacing: (tickmarkLabelBounds.height - tickmarkWidth * tickmarkCount) / (tickmarkCount - 1)
+
+ property real tickmarkLength: tickmarkColumn.width
+ // Can't deduce this from the column, so we set it from within the first tickmark delegate loader.
+ property real tickmarkWidth: 2
+
+ readonly property real tickmarkOffset: control.orientation === Qt.Vertical ? control.__hiddenText.height / 2 : control.__hiddenText.width / 2
+
+ readonly property real minorTickmarkStep: control.tickmarkStepSize / (control.minorTickmarkCount + 1);
+
+ /*!
+ Returns the marker text that should be displayed based on
+ \a markerPos (\c 0 to \c 1.0).
+ */
+ function markerTextFromPos(markerPos) {
+ return markerPos * (control.maximumValue - control.minimumValue) + control.minimumValue;
+ }
+
+ readonly property real rawBarWidth: valueBarLoader.item.implicitWidth
+ readonly property real barLength: (control.orientation === Qt.Vertical ? control.height : control.width) - (tickmarkOffset * 2 - 2)
+
+ readonly property real tickmarkLabelBoundsWidth: tickmarkLength + (control.orientation === Qt.Vertical ? control.__hiddenText.width : control.__hiddenText.height)
+ readonly property int valuePosition: valueBarLoader.height
+
+ Item {
+ id: container
+
+ width: control.orientation === Qt.Vertical ? parent.width : parent.height
+ height: control.orientation === Qt.Vertical ? parent.height : parent.width
+ rotation: control.orientation === Qt.Horizontal ? 90 : 0
+ transformOrigin: Item.Center
+ anchors.centerIn: parent
+
+ Item {
+ id: valueBarItem
+
+ x: control.__tickmarkAlignment === Qt.AlignLeft || control.__tickmarkAlignment === Qt.AlignTop ? tickmarkLabelBounds.x + tickmarkLabelBounds.width : 0
+ width: rawBarWidth
+ height: barLength
+ anchors.verticalCenter: parent.verticalCenter
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: background
+ anchors.fill: parent
+ }
+
+ Loader {
+ id: valueBarLoader
+ sourceComponent: valueBar
+
+ readonly property real valueAsPercentage: (control.value - control.minimumValue) / (control.maximumValue - control.minimumValue)
+
+ y: Math.round(parent.height - height)
+ height: Math.round(valueAsPercentage * parent.height)
+ }
+ }
+ Item {
+ id: tickmarkLabelBounds
+
+ x: control.__tickmarkAlignment === Qt.AlignLeft || control.__tickmarkAlignment === Qt.AlignTop ? 0 : valueBarItem.width
+ width: tickmarkLabelBoundsWidth
+ height: barLength
+ anchors.verticalCenter: parent.verticalCenter
+ // We want our items to be laid out from bottom to top, but Column can't do that, so we flip
+ // the whole item containing the tickmarks and labels vertically. Then, we flip each tickmark
+ // and label back again.
+ transform: Rotation {
+ axis.x: 1
+ axis.y: 0
+ axis.z: 0
+ origin.x: tickmarkLabelBounds.width / 2
+ origin.y: tickmarkLabelBounds.height / 2
+ angle: 180
+ }
+
+ Column {
+ id: tickmarkColumn
+ x: control.__tickmarkAlignment === Qt.AlignRight || control.__tickmarkAlignment === Qt.AlignBottom ? 0 : tickmarkLabelBounds.width - width
+ spacing: tickmarkSpacing
+ anchors.verticalCenter: parent.verticalCenter
+
+ Repeater {
+ id: tickmarkRepeater
+ model: tickmarkCount
+ delegate: Loader {
+ id: tickmarkDelegateLoader
+
+ sourceComponent: gaugeStyle.tickmark
+ transform: Rotation {
+ axis.x: 1
+ axis.y: 0
+ axis.z: 0
+ origin.x: tickmarkDelegateLoader.width / 2
+ origin.y: tickmarkDelegateLoader.height / 2
+ angle: 180
+ }
+
+ onHeightChanged: {
+ if (index == 0)
+ tickmarkWidth = height;
+ }
+
+ readonly property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: tickmarkDelegateLoader.__index
+ readonly property real value: (index / (tickmarkCount - 1)) * (control.maximumValue - control.minimumValue) + control.minimumValue
+ readonly property int valuePosition: Math.round(tickmarkDelegateLoader.y)
+ }
+ }
+ }
+ }
+
+ // Doesn't need to be in a column, since we assume that the major tickmarks will always be longer than us.
+ Repeater {
+ id: minorTickmarkRepeater
+ model: (tickmarkCount - 1) * control.minorTickmarkCount
+ delegate: Loader {
+ id: minorTickmarkDelegateLoader
+
+ x: control.__tickmarkAlignment === Qt.AlignRight || control.__tickmarkAlignment === Qt.AlignBottom ? 0 : tickmarkLabelBounds.width - width
+ y: {
+ var tickmarkWidthOffset = Math.floor(index / control.minorTickmarkCount) * tickmarkWidth + tickmarkWidth;
+ var relativePosition = (index % control.minorTickmarkCount + 1) * (tickmarkSpacing / (control.minorTickmarkCount + 1));
+ var clusterOffset = Math.floor(index / control.minorTickmarkCount) * tickmarkSpacing;
+ // We assume that each minorTickmark's height is the same.
+ return clusterOffset + tickmarkWidthOffset + relativePosition - height / 2;
+ }
+
+ transform: Rotation {
+ axis.x: 1
+ axis.y: 0
+ axis.z: 0
+ origin.x: minorTickmarkDelegateLoader.width / 2
+ origin.y: minorTickmarkDelegateLoader.height / 2
+ angle: 180
+ }
+
+ sourceComponent: gaugeStyle.minorTickmark
+
+ readonly property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: minorTickmarkDelegateLoader.__index
+ readonly property real value: {
+ var tickmarkIndex = Math.floor(index / control.minorTickmarkCount);
+ return index * minorTickmarkStep + minorTickmarkStep * tickmarkIndex + minorTickmarkStep + control.minimumValue;
+ }
+ readonly property int valuePosition: Math.round(minorTickmarkDelegateLoader.y)
+ }
+ }
+ }
+
+ Item {
+ id: tickmarkLabelItem
+ x: control.__tickmarkAlignment === Qt.AlignRight || control.__tickmarkAlignment === Qt.AlignBottom
+ ? tickmarkLength
+ : tickmarkLabelBounds.width - tickmarkLength - width
+ width: control.__hiddenText.width
+ // Use the bar height instead of the container's, as the labels seem to be translated by 1 when we
+ // flip the control vertically, and this fixes that.
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+
+ Repeater {
+ id: tickmarkTextRepeater
+ model: tickmarkCount
+ delegate: Item {
+ x: {
+ if (control.orientation === Qt.Vertical)
+ return 0;
+
+ // Align the text to the edge of the tickmarks.
+ return ((width - height) / 2) * (control.__tickmarkAlignment === Qt.AlignBottom ? -1 : 1);
+ }
+ y: index * labelDistance - height / 2
+
+ width: control.__hiddenText.width
+ height: control.__hiddenText.height
+
+ transformOrigin: Item.Center
+ rotation: control.orientation === Qt.Vertical ? 0 : 90
+
+ readonly property real labelDistance: tickmarkLabelBounds.height / (tickmarkCount - 1)
+
+ Loader {
+ id: tickmarkTextRepeaterDelegate
+
+ x: {
+ if (control.orientation === Qt.Horizontal) {
+ return parent.width / 2 - width / 2;
+ }
+
+ return control.__tickmarkAlignment === Qt.AlignRight || control.__tickmarkAlignment === Qt.AlignBottom
+ ? 0
+ : parent.width - width;
+ }
+
+ transform: Rotation {
+ axis.x: 1
+ axis.y: 0
+ axis.z: 0
+ origin.x: tickmarkTextRepeaterDelegate.width / 2
+ origin.y: tickmarkTextRepeaterDelegate.height / 2
+ angle: 180
+ }
+
+ sourceComponent: tickmarkLabel
+
+ readonly property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: tickmarkTextRepeaterDelegate.__index
+ readonly property real value: markerTextFromPos(index / (tickmarkTextRepeater.count - 1))
+ }
+ }
+ }
+ }
+ }
+ }
+ Loader {
+ id: foregroundLoader
+ sourceComponent: foreground
+ anchors.fill: valueBarItem
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qmlc
new file mode 100644
index 00000000..d2fc21d9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GaugeStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qml
new file mode 100644
index 00000000..061a8069
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qml
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype GroupBoxStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+ \ingroup controlsstyling
+ \since 5.1
+*/
+Style {
+
+ /*! The \l GroupBox this style is attached to. */
+ readonly property GroupBox control: __control
+
+ /*! The margin from the content item to the groupbox. */
+ padding {
+ top: (control.title.length > 0 || control.checkable ? TextSingleton.implicitHeight : 0) + 10
+ left: 8
+ right: 8
+ bottom: 6
+ }
+
+ /*! The title text color. */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*! The check box. */
+ property Component checkbox: Item {
+ implicitWidth: 18
+ implicitHeight: 18
+ BorderImage {
+ anchors.fill: parent
+ source: "images/editbox.png"
+ border.top: 6
+ border.bottom: 6
+ border.left: 6
+ border.right: 6
+ }
+ Rectangle {
+ height: 16
+ width: 16
+ antialiasing: true
+ visible: control.checked
+ color: "#666"
+ radius: 1
+ anchors.margins: 4
+ anchors.fill: parent
+ anchors.topMargin: 3
+ anchors.bottomMargin: 5
+ border.color: "#222"
+ opacity: control.enabled ? 1 : 0.5
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1
+ color: "transparent"
+ border.color: "#33ffffff"
+ }
+ }
+ BorderImage {
+ anchors.fill: parent
+ anchors.margins: -1
+ source: "images/focusframe.png"
+ visible: control.activeFocus
+ border.left: 4
+ border.right: 4
+ border.top: 4
+ border.bottom: 4
+ }
+ }
+
+ /*! The groupbox frame. */
+ property Component panel: Item {
+ anchors.fill: parent
+ Loader {
+ id: checkboxloader
+ anchors.left: parent.left
+ sourceComponent: control.checkable ? checkbox : null
+ anchors.verticalCenter: label.verticalCenter
+ width: item ? item.implicitWidth : 0
+ }
+
+ Text {
+ id: label
+ anchors.top: parent.top
+ anchors.left: checkboxloader.right
+ anchors.margins: 4
+ text: control.title
+ color: textColor
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ BorderImage {
+ anchors.fill: parent
+ anchors.topMargin: padding.top - 7
+ source: "images/groupbox.png"
+ border.left: 4
+ border.right: 4
+ border.top: 4
+ border.bottom: 4
+ visible: !control.flat
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qmlc
new file mode 100644
index 00000000..a92fe66d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/GroupBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qml
new file mode 100644
index 00000000..0713c9ff
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+
+Style {
+ id: handleStyle
+ property alias handleColorTop: __helper.handleColorTop
+ property alias handleColorBottom: __helper.handleColorBottom
+ property alias handleColorBottomStop: __helper.handleColorBottomStop
+
+ HandleStyleHelper {
+ id: __helper
+ }
+
+ property Component handle: Item {
+ implicitWidth: 50
+ implicitHeight: 50
+
+ Canvas {
+ id: handleCanvas
+ anchors.fill: parent
+
+ onPaint: {
+ var ctx = getContext("2d");
+ __helper.paintHandle(ctx);
+ }
+ }
+ }
+
+ property Component panel: Item {
+ Loader {
+ id: handleLoader
+ sourceComponent: handle
+ anchors.fill: parent
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qmlc
new file mode 100644
index 00000000..2dff1750
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qml
new file mode 100644
index 00000000..78059bfe
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+QtObject {
+ id: handleStyleHelper
+
+ property color handleColorTop: "#969696"
+ property color handleColorBottom: Qt.rgba(0.9, 0.9, 0.9, 0.298)
+ property real handleColorBottomStop: 0.7
+
+ property color handleRingColorTop: "#b0b0b0"
+ property color handleRingColorBottom: "transparent"
+
+ /*!
+ If \a ctx is the only argument, this is equivalent to calling
+ paintHandle(\c ctx, \c 0, \c 0, \c ctx.canvas.width, \c ctx.canvas.height).
+ */
+ function paintHandle(ctx, handleX, handleY, handleWidth, handleHeight) {
+ ctx.reset();
+
+ if (handleWidth < 0)
+ return;
+
+ if (arguments.length == 1) {
+ handleX = 0;
+ handleY = 0;
+ handleWidth = ctx.canvas.width;
+ handleHeight = ctx.canvas.height;
+ }
+
+ ctx.beginPath();
+ var gradient = ctx.createRadialGradient(handleX, handleY, 0,
+ handleX, handleY, handleWidth * 1.5);
+ gradient.addColorStop(0, handleColorTop);
+ gradient.addColorStop(handleColorBottomStop, handleColorBottom);
+ ctx.ellipse(handleX, handleY, handleWidth, handleHeight);
+ ctx.fillStyle = gradient;
+ ctx.fill();
+
+ /* Draw the ring gradient around the handle. */
+ // Clip first, so we only draw inside the ring.
+ ctx.beginPath();
+ ctx.ellipse(handleX, handleY, handleWidth, handleHeight);
+ ctx.ellipse(handleX + 2, handleY + 2, handleWidth - 4, handleHeight - 4);
+ ctx.clip();
+
+ ctx.beginPath();
+ gradient = ctx.createLinearGradient(handleX + handleWidth / 2, handleY,
+ handleX + handleWidth / 2, handleY + handleHeight);
+ gradient.addColorStop(0, handleRingColorTop);
+ gradient.addColorStop(1, handleRingColorBottom);
+ ctx.ellipse(handleX, handleY, handleWidth, handleHeight);
+ ctx.fillStyle = gradient;
+ ctx.fill();
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qmlc
new file mode 100644
index 00000000..3a116ee3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/HandleStyleHelper.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qml
new file mode 100644
index 00000000..ade34b0a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qml
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype MenuBarStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.3
+ \ingroup controlsstyling
+ \brief Provides custom styling for MenuBar.
+
+ \note Styling menu bars may not be supported on platforms using native menu bars
+ through their QPA plugin.
+*/
+
+Style {
+ id: root
+
+ /*!
+ \qmlmethod string MenuBarStyle::formatMnemonic(string text, bool underline = false)
+ Returns a formatted string to render mnemonics for a given menu item \a text.
+
+ The mnemonic character is prefixed by an ampersand in the original string.
+
+ Passing \c true for \e underline will underline the mnemonic character (e.g.,
+ \c formatMnemonic("&File", true) will return \c "File"). Passing \c false
+ for \a underline will return the plain text form (e.g., \c formatMnemonic("&File", false)
+ will return \c "File").
+
+ \sa Label
+ */
+ function formatMnemonic(text, underline) {
+ return underline ? StyleHelpers.stylizeMnemonics(text) : StyleHelpers.removeMnemonics(text)
+ }
+
+ /*! The background for the full menu bar.
+
+ The background will be extended to the full containing window width.
+ Its height will always fit all of the menu bar items. The final size
+ will include the paddings.
+ */
+ property Component background: Rectangle {
+ color: "#dcdcdc"
+ implicitHeight: 20
+ }
+
+ /*! The menu bar item.
+
+ \target styleData properties
+ This item has to be configured using the \b styleData object which is in scope,
+ and contains the following read-only properties:
+ \table
+ \row \li \b {styleData.index} : int \li The index of the menu item in its menu.
+ \row \li \b {styleData.selected} : bool \li \c true if the menu item is selected.
+ \row \li \b {styleData.open} : bool \li \c true when the pull down menu is open.
+ \row \li \b {styleData.text} : string \li The menu bar item's text.
+ \row \li \b {styleData.underlineMnemonic} : bool \li When \c true, the style should underline the menu item's label mnemonic.
+ \endtable
+
+ */
+ property Component itemDelegate: Rectangle {
+ implicitWidth: text.width + 12
+ implicitHeight: text.height + 4
+ color: styleData.enabled && styleData.open ? "#49d" : "transparent"
+
+ Text {
+ id: text
+ font: root.font
+ text: formatMnemonic(styleData.text, styleData.underlineMnemonic)
+ anchors.centerIn: parent
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ color: styleData.open ? "white" : SystemPaletteSingleton.windowText(control.enabled && styleData.enabled)
+ }
+ }
+
+ /*! The style component for the menubar's own menus and their submenus.
+
+ \sa {MenuStyle}
+ */
+ property Component menuStyle: MenuStyle {
+ font: root.font
+ }
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The font of the control.
+ */
+ property font font
+
+ /*! \internal */
+ property bool __isNative: true
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qmlc
new file mode 100644
index 00000000..d193fe0c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qml
new file mode 100644
index 00000000..f40e0af7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qml
@@ -0,0 +1,477 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype MenuStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.3
+ \ingroup controlsstyling
+ \brief Provides custom styling for Menu.
+
+ \target styleData properties
+ The \b styleData object contains the following read-only properties:
+ \table
+ \row \li \b {styleData.index} : int \li The index of the menu item in its menu.
+ \row \li \b {styleData.type} : enumeration \li The type of menu item. See below for possible values.
+ \row \li \b {styleData.selected} : bool \li \c true if the menu item is selected.
+ \row \li \b {styleData.pressed} : bool \li \c true if the menu item is pressed. Available since 5.4.
+ \row \li \b {styleData.text} : string \li The menu item's text, or title if it's a submenu.
+ \row \li \b {styleData.underlineMnemonic} : bool \li Whether the style should underline the menu item's label mnemonic.
+ \row \li \b {styleData.shortcut} : string \li The text for the menu item's shortcut.
+ \row \li \b {styleData.iconSource} : url \li The source URL to the menu item's icon. Undefined if it has no icon.
+ \row \li \b {styleData.enabled} : bool \li \c true if the menu item is enabled.
+ \row \li \b {styleData.checkable} : bool \li \c true if the menu item is checkable.
+ \row \li \b {styleData.exclusive} : bool \li \c true if the menu item is checkable, and it's part of an \l ExclusiveGroup.
+ \row \li \b {styleData.checked} : bool \li \c true if the menu item is checkable and currently checked.
+ \row \li \b {styleData.scrollerDirection} : enumeration \li If the menu item is a scroller, its pointing direction.
+ Valid values are \c Qt.UpArrow, \c Qt.DownArrow, and \c Qt.NoArrow.
+ \endtable
+
+ The valid values for \b {styleData.type} are:
+ \list
+ \li MenuItemType.Item
+ \li MenuItemType.Menu
+ \li MenuItemType.Separator
+ \li MenuItemType.ScrollIndicator
+ \endlist
+
+ \note Styling menus may not be supported on platforms using native menus
+ through their QPA plugin.
+*/
+
+Style {
+ id: styleRoot
+
+ padding {
+ top: 1
+ bottom: 1
+ left: 1
+ right: 1
+ }
+
+ /*! The amount of pixels by which a submenu popup overlaps horizontally its parent menu. */
+ property int submenuOverlap: 1
+
+ /*! The number of milliseconds to wait before opening a submenu. */
+ property int submenuPopupDelay: 200
+
+ /*!
+ \qmlmethod string MenuStyle::formatMnemonic(string text, bool underline = false)
+ Returns a rich-text string to render mnemonics for a given menu item \a text.
+
+ The mnemonic character is prefixed by an ampersand in the original string.
+
+ Passing \c true for \a underline will underline the mnemonic character (e.g.,
+ \c formatMnemonic("&Open...", true) will return \c "Open..."). Passing \c false
+ for \a underline will return the plain text form (e.g., \c formatMnemonic("&Open...", false)
+ will return \c "Open...").
+
+ \sa Label
+ */
+ function formatMnemonic(text, underline) {
+ return underline ? StyleHelpers.stylizeMnemonics(text) : StyleHelpers.removeMnemonics(text)
+ }
+
+ /*! The background frame for the menu popup.
+
+ The \l Menu will resize the frame to its contents plus the padding.
+ */
+ property Component frame: Rectangle {
+ color: styleRoot.__backgroundColor
+ border { width: 1; color: styleRoot.__borderColor }
+ }
+
+ /*! \qmlproperty Object MenuStyle::itemDelegate
+
+ The object containing the menu item subcontrol components. These subcontrols are used
+ for normal menu items only, i.e. not for separators or scroll indicators.
+
+ The subcontrols are:
+
+ \list
+ \li \b {itemDelegate.background} : Component
+
+ The menu item background component.
+
+ Its appearance generally changes with \l {styleData properties} {styleData.selected}
+ and \l {styleData properties} {styleData.enabled}.
+
+ The default implementation shows only when the item is enabled and selected. It remains
+ invisible otherwise.
+
+ \li \b {itemDelegate.label} : Component
+
+ Component for the actual text label.
+
+ The text itself is fetched from \l {styleData properties} {styleData.text}, and its appearance should depend
+ on \l {styleData properties} {styleData.enabled} and \l {styleData properties} {styleData.selected}.
+
+ If \l {styleData properties} {styleData.underlineMnemonic} is true, the label should underline its mnemonic
+ character. \l formatMnemonic provides the default formatting.
+
+ \li \b {itemDelegate.submenuIndicator} : Component
+
+ It indicates that the current menu item is a submenu.
+
+ Only used when \l {styleData properties} {styleData.type} equals \c MenuItemType.Menu.
+
+ \li \b {itemDelegate.shortcut} : Component
+
+ Displays the shortcut attached to the menu item.
+
+ Only used when \l {styleData properties} {styleData.shortcut} is not empty.
+
+ \li \b {itemDelegate.checkmarkIndicator} : Component
+
+ Will be used when \l {styleData properties} {styleData.checkable} is \c true and its appearance
+ may depend on \l {styleData properties} {styleData.exclusive}, i.e., whether it will behave like a
+ checkbox or a radio button. Use \l {styleData properties} {styleData.checked} for the checked state.
+ \endlist
+
+ \note This property cannot be overwritten although all of the subcontrol properties can.
+ */
+ property alias itemDelegate: internalMenuItem
+
+ MenuItemSubControls {
+ id: internalMenuItem
+
+ background: Rectangle {
+ visible: styleData.selected && styleData.enabled
+ gradient: Gradient {
+ id: selectedGradient
+ GradientStop { color: Qt.lighter(__selectedBackgroundColor, 1.3); position: -0.2 }
+ GradientStop { color: __selectedBackgroundColor; position: 1.4 }
+ }
+
+ border.width: 1
+ border.color: Qt.darker(__selectedBackgroundColor, 1)
+ antialiasing: true
+ }
+
+ label: Text {
+ text: formatMnemonic(styleData.text, styleData.underlineMnemonic)
+ color: __currentTextColor
+ font: styleRoot.font
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ submenuIndicator: Text {
+ text: __mirrored ? "\u25c2" : "\u25b8" // BLACK LEFT/RIGHT-POINTING SMALL TRIANGLE
+ font: styleRoot.font
+ color: __currentTextColor
+ style: styleData.selected ? Text.Normal : Text.Raised
+ styleColor: Qt.lighter(color, 4)
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ shortcut: Text {
+ text: styleData.shortcut
+ font {
+ bold: styleRoot.font.bold
+ capitalization: styleRoot.font.capitalization
+ family: styleRoot.font.family
+ italic: styleRoot.font.italic
+ letterSpacing: styleRoot.font.letterSpacing
+ pixelSize: styleRoot.font.pixelSize * 0.9
+ strikeout: styleRoot.font.strikeout
+ underline: styleRoot.font.underline
+ weight: styleRoot.font.weight
+ wordSpacing: styleRoot.font.wordSpacing
+ }
+ color: __currentTextColor
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ checkmarkIndicator: Loader {
+ sourceComponent: styleData.exclusive ? exclusiveCheckMark : nonExclusiveCheckMark
+ Component {
+ id: exclusiveCheckMark
+ Rectangle {
+ x: 1
+ width: 10
+ height: 10
+ color: "white"
+ border.color: "gray"
+ antialiasing: true
+ radius: height/2
+
+ Rectangle {
+ anchors.centerIn: parent
+ visible: styleData.checked
+ width: 4
+ height: 4
+ color: "#666"
+ border.color: "#222"
+ antialiasing: true
+ radius: height/2
+ }
+ }
+ }
+
+ Component {
+ id: nonExclusiveCheckMark
+ BorderImage {
+ width: 12
+ height: 12
+ source: "images/editbox.png"
+ border.top: 6
+ border.bottom: 6
+ border.left: 6
+ border.right: 6
+
+ Rectangle {
+ antialiasing: true
+ visible: styleData.checked
+ color: "#666"
+ radius: 1
+ anchors.margins: 4
+ anchors.fill: parent
+ border.color: "#222"
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1
+ color: "transparent"
+ border.color: "#33ffffff"
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /*! Component for the separator menu item.
+
+ Will be used when \l {styleData properties} {styleData.type} equals \c MenuItemType.Separator.
+ */
+ property Component separator: Item {
+ implicitHeight: styleRoot.font.pixelSize / 2
+ Rectangle {
+ width: parent.width - 2
+ height: 1
+ x: 1
+ anchors.verticalCenter: parent.verticalCenter
+ color: "darkgray"
+ }
+ }
+
+ /*! Component for the scroll indicator menu item.
+
+ Will be used when \l {styleData properties} {styleData.type} equals \c MenuItemType.ScrollIndicator.
+ Its appearance should follow \l {styleData properties} {styleData.scrollerDirection}.
+
+ This is the item added at the top and bottom of the menu popup when its contents won't fit the screen
+ to indicate more content is available in the direction of the arrow.
+ */
+ property Component scrollIndicator: Image {
+ anchors.centerIn: parent
+ source: styleData.scrollerDirection === Qt.UpArrow ? "images/arrow-up.png" : "images/arrow-down.png"
+ }
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The font of the control.
+ */
+ property font font
+
+ /*! \internal */
+ property string __menuItemType: "menuitem"
+
+ /*! \internal
+ The menu popup frame background color.
+
+ This is set to be a uniform background. If you want a gradient or a pixmap,
+ you should override \l frame.
+
+ \sa frame, borderColor
+ */
+ property color __backgroundColor: "#dcdcdc"
+
+ /*! \internal
+ The menu popup frame border color.
+
+ The border width is set to 1 pixel. Override \l frame if you want a larger border.
+
+ \sa frame, backgroundColor
+ */
+ property color __borderColor: "darkgray"
+
+ /*! \internal
+ The maximum height for a popup before it will show scrollers.
+ */
+ property int __maxPopupHeight: 600
+
+ /*! \internal
+ The menu item background color when selected.
+
+ This property is provided for convenience and only sets the color.
+ It does not change the style in any other way.
+ */
+ property color __selectedBackgroundColor: "#49d"
+
+ /*! \internal
+ The menu item label color.
+
+ When set, keyboard shorcuts get the same color as the item's text.
+
+ \sa selectedLabelColor, disabledLabelColor
+ */
+ property color __labelColor: "#444"
+
+ /*! \internal
+ The menu item label color when selected.
+
+ \sa labelColor, selectedLabelColor
+ */
+ property color __selectedLabelColor: "white"
+
+ /*! \internal
+ The menu item label color when disabled.
+
+ \sa labelColor, disabledLabelColor
+ */
+ property color __disabledLabelColor: "gray"
+
+
+ /*! \internal */
+ readonly property bool __mirrored: Qt.application.layoutDirection === Qt.RightToLeft
+
+ /*! \internal
+ The margin between the frame and the menu item label's left side.
+
+ Generally, this should be large enough to fit optional checkmarks on
+ the label's left side.
+ */
+ property int __leftLabelMargin: 18
+
+ /*! \internal
+ The margin between the menu item label's right side and the frame. */
+ property int __rightLabelMargin: 12
+
+ /*! \internal
+ The minimum spacing between the menu item label's text right side and any
+ element located on its right (submenu indicator or shortcut).
+ */
+ property int __minRightLabelSpacing: 28
+
+ /*! \internal */
+ property Component __scrollerStyle: null
+
+ /*! \internal
+ The menu item contents itself.
+
+ The default implementation uses \l MenuItemStyle.
+ */
+ property Component menuItemPanel: Item {
+ id: panel
+
+ property QtObject __styleData: styleData
+ /*! \internal
+ The current color of the text label.
+
+ Use this if you're overriding e.g. \l shortcutIndicator to keep the color matched
+ with \l label, or to derive new colors from it.
+ */
+ property color currentTextColor: !styleData.enabled ? __disabledLabelColor :
+ styleData.selected ? __selectedLabelColor : __labelColor
+
+ implicitWidth: Math.max((parent ? parent.width : 0),
+ Math.round(__leftLabelMargin + labelLoader.width + __rightLabelMargin +
+ (rightIndicatorLoader.active ? __minRightLabelSpacing + rightIndicatorLoader.width : 0)))
+ implicitHeight: Math.round(styleData.type === MenuItemType.Separator ? separatorLoader.implicitHeight :
+ !!styleData.scrollerDirection ? styleRoot.font.pixelSize * 0.75 : labelLoader.height + 4)
+
+ Loader {
+ property alias styleData: panel.__styleData
+ property alias __currentTextColor: panel.currentTextColor
+ anchors.fill: parent
+ sourceComponent: itemDelegate.background
+ }
+
+ Loader {
+ id: separatorLoader
+ property alias styleData: panel.__styleData
+ property alias __currentTextColor: panel.currentTextColor
+ anchors.fill: parent
+ sourceComponent: separator
+ active: styleData.type === MenuItemType.Separator
+ }
+
+ Loader {
+ property alias styleData: panel.__styleData
+ property alias __currentTextColor: panel.currentTextColor
+ x: __mirrored ? parent.width - width - 4 : 4
+ anchors.verticalCenterOffset: -1
+ anchors.verticalCenter: parent.verticalCenter
+ active: __menuItemType === "menuitem" && styleData.checkable
+ sourceComponent: itemDelegate.checkmarkIndicator
+ }
+
+ Loader {
+ id: labelLoader
+ readonly property real offset: __menuItemType === "menuitem" ? __leftLabelMargin : 6
+ property alias styleData: panel.__styleData
+ property alias __currentTextColor: panel.currentTextColor
+ x: __mirrored ? parent.width - width - offset : offset
+ y: 1
+ active: styleData.type !== MenuItemType.Separator
+ sourceComponent: itemDelegate.label
+ baselineOffset: item ? item.baselineOffset : 0.0
+ }
+
+ Loader {
+ id: rightIndicatorLoader
+ property alias styleData: panel.__styleData
+ property alias __currentTextColor: panel.currentTextColor
+ active: styleData.type === MenuItemType.Menu || styleData.shortcut !== ""
+ sourceComponent: styleData.type === MenuItemType.Menu ? itemDelegate.submenuIndicator : itemDelegate.shortcut
+ LayoutMirroring.enabled: __mirrored
+ baselineOffset: item ? item.baselineOffset : 0.0
+ anchors {
+ right: parent.right
+ rightMargin: 6
+ baseline: !styleData.isSubmenu ? labelLoader.baseline : undefined
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qmlc
new file mode 100644
index 00000000..b06fba7a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/MenuStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qml
new file mode 100644
index 00000000..ddeb4edd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qml
@@ -0,0 +1,404 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtGraphicalEffects 1.0
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+import QtQuick.Extras.Private.CppUtils 1.0
+
+/*!
+ \qmltype PieMenuStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for PieMenu.
+
+ PieMenuStyle is a style for PieMenu that draws each section of the menu as a
+ filled "slice".
+
+ You can create a custom pie menu by replacing the following delegates:
+ \list
+ \li \l background
+ \li \l cancel
+ \li \l menuItem
+ \li \l title
+ \endlist
+
+ To customize the appearance of each menuItem without having to define your
+ own, you can use the \l backgroundColor and \l selectionColor properties.
+ To customize the drop shadow, use the \l shadowColor, \l shadowRadius and
+ \l shadowSpread properties.
+
+ Icons that are too large for the section that they are in will be scaled
+ down appropriately.
+
+ To style individual sections of the menu, use the menuItem component:
+ \code
+ PieMenuStyle {
+ shadowRadius: 0
+
+ menuItem: Item {
+ id: item
+ rotation: -90 + sectionCenterAngle(styleData.index)
+
+ Rectangle {
+ width: parent.height * 0.2
+ height: width
+ color: "darkorange"
+ radius: width / 2
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+
+ Text {
+ id: textItem
+ text: control.menuItems[styleData.index].text
+ anchors.centerIn: parent
+ color: control.currentIndex === styleData.index ? "red" : "white"
+ rotation: -item.rotation
+ }
+ }
+ }
+ }
+ \endcode
+
+ \image piemenu-menuitem-example.png A custom PieMenu
+*/
+
+Style {
+ id: pieMenuStyle
+
+ /*!
+ The \l PieMenu that this style is attached to.
+ */
+ readonly property PieMenu control: __control
+
+ /*! The background color. */
+ property color backgroundColor: Qt.rgba(0.6, 0.6, 0.6, 0.66)
+
+ /*! The selection color. */
+ property color selectionColor: "#eee"
+
+ /*!
+ The shadow color.
+
+ \sa DropShadow
+ */
+ property color shadowColor: Qt.rgba(0, 0, 0, 0.26)
+
+ /*!
+ The shadow radius.
+
+ \sa DropShadow
+ */
+ property real shadowRadius: 10
+
+ /*!
+ The shadow spread.
+
+ \sa DropShadow
+ */
+ property real shadowSpread: 0.3
+
+ /*!
+ The distance from the center of the menu to the outer edge of the menu.
+
+ \sa cancelRadius
+ */
+ readonly property real radius: Math.min(control.width, control.height) * 0.5
+
+ /*!
+ The radius of the area that is used to cancel the menu.
+
+ \sa radius
+ */
+ property real cancelRadius: radius * 0.4
+
+ /*!
+ The angle (in degrees) at which the first menu item will be drawn.
+
+ The absolute range formed by \a startAngle and \l endAngle must be
+ less than or equal to \c 360 degrees.
+
+ Menu items are displayed clockwise when \a startAngle is less than
+ \l endAngle, otherwise they are displayed anti-clockwise.
+
+ \sa endAngle
+ */
+ property real startAngle: -90
+
+ /*!
+ The angle (in degrees) at which the last menu item will be drawn.
+
+ The absolute range formed by \l startAngle and \a endAngle must be
+ less than or equal to \c 360 degrees.
+
+ Menu items are displayed clockwise when \l startAngle is less than
+ \a endAngle, otherwise they are displayed anti-clockwise.
+
+ \sa startAngle
+ */
+ property real endAngle: 90
+
+ /*!
+ \qmlmethod real PieMenuStyle::sectionStartAngle(int itemIndex)
+ Returns the start of the section at \a itemIndex as an angle in degrees.
+ */
+ function sectionStartAngle(itemIndex) {
+ return MathUtils.radToDegOffset(control.__protectedScope.sectionStartAngle(itemIndex));
+ }
+
+ /*!
+ \qmlmethod real PieMenuStyle::sectionCenterAngle(int itemIndex)
+ Returns the center of the section at \a itemIndex as an angle in
+ degrees.
+ */
+ function sectionCenterAngle(itemIndex) {
+ return MathUtils.radToDegOffset(control.__protectedScope.sectionCenterAngle(itemIndex));
+ }
+
+ /*!
+ \qmlmethod real PieMenuStyle::sectionEndAngle(int itemIndex)
+ Returns the end of the section at \a itemIndex as an angle in degrees.
+ */
+ function sectionEndAngle(itemIndex) {
+ return MathUtils.radToDegOffset(control.__protectedScope.sectionEndAngle(itemIndex));
+ }
+
+ /*!
+ \internal
+
+ The distance in pixels from the center of each menu item's icon to the
+ center of the menu. A higher value means that the icons will be further
+ from the center of the menu.
+ */
+ readonly property real __iconOffset: cancelRadius + ((radius - cancelRadius) / 2)
+
+ /*! \internal */
+ readonly property real __selectableRadius: radius - cancelRadius
+
+ /*! \internal */
+ property int __implicitWidth: Math.round(TextSingleton.implicitHeight * 12.5)
+
+ /*! \internal */
+ property int __implicitHeight: __implicitWidth
+
+ /*!
+ The background of the menu.
+
+ By default, there is no background defined.
+ */
+ property Component background
+
+ /*!
+ The cancel component of the menu.
+
+ This is an area in the center of the menu that closes the menu when
+ clicked.
+
+ By default, it is not visible.
+ */
+ property Component cancel: null
+
+ /*!
+ The component that displays the text of the currently selected menu
+ item, or the title if there is no current item.
+
+ The current item's text is available via the \c styleData.text
+ property.
+ */
+ property Component title: Text {
+ font.pointSize: 20
+ text: styleData.text
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: "#ccc"
+ antialiasing: true
+ }
+
+ /*!
+ This component defines each section of the pie menu.
+
+ This component covers the width and height of the control.
+
+ No mouse events are propagated to this component, which means that
+ controls like Button will not function when used within it. You can
+ check if the mouse is over this section by comparing
+ \c control.currentIndex to \c styleData.index.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this menu item.
+ \row \li \c {readonly property bool} \b styleData.hovered
+ \li \c true if this menu item is under the mouse.
+ \row \li \c {readonly property bool} \b styleData.pressed
+ \li \c true if the mouse is pressed down on this menu item.
+ \endtable
+ */
+ property Component menuItem: Item {
+ id: actionRootDelegateItem
+
+ function drawRingSection(ctx, x, y, section, r, ringWidth, ringColor) {
+ ctx.fillStyle = ringColor;
+
+ // Draw one section.
+ ctx.beginPath();
+ ctx.moveTo(x,y);
+
+ // Canvas draws 0 degrees at 3 o'clock, whereas we want it to draw it at 12.
+ var start = control.__protectedScope.sectionStartAngle(section);
+ var end = control.__protectedScope.sectionEndAngle(section);
+ ctx.arc(x, y, r, start, end, start > end);
+ ctx.fill();
+
+ // Either change this to the background color, or use the global composition.
+ ctx.fillStyle = "black";
+ ctx.globalCompositeOperation = "destination-out";
+ ctx.beginPath();
+ ctx.moveTo(x, y);
+ ctx.arc(x, y, ringWidth, 0, Math.PI * 2);
+ ctx.closePath();
+ ctx.fill();
+
+ // If using the global composition method, make sure to change it back to default.
+ ctx.globalCompositeOperation = "source-over";
+ }
+
+ Canvas {
+ id: actionCanvas
+ anchors.fill: parent
+ property color currentColor: control.currentIndex === styleData.index ? selectionColor : backgroundColor
+
+ Connections {
+ target: pieMenuStyle
+ function onStartAngleChanged() { actionCanvas.requestPaint() }
+ function onEndAngleChanged() { actionCanvas.requestPaint() }
+ }
+
+ Connections {
+ target: control
+ function onCurrentIndexChanged() { actionCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+ drawRingSection(ctx, width / 2, height / 2, styleData.index, radius, cancelRadius, currentColor);
+ }
+ }
+
+ readonly property var __styleData: styleData
+
+ PieMenuIcon {
+ control: pieMenuStyle.control
+ styleData: __styleData
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: __implicitWidth
+ implicitHeight: __implicitHeight
+
+ property alias titleItem: titleLoader.item
+
+ Item {
+ id: itemgroup
+ anchors.fill: parent
+ visible: false
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: background
+ anchors.fill: parent
+ }
+
+ Loader {
+ id: cancelLoader
+ sourceComponent: cancel
+ anchors.centerIn: parent
+ }
+
+ Repeater {
+ id: menuItemRepeater
+ model: control.__protectedScope.visibleItems
+
+ delegate: Loader {
+ id: menuItemLoader
+ anchors.fill: parent
+ sourceComponent: menuItem
+
+ readonly property int __index: index
+ property QtObject styleData: QtObject {
+ readonly property alias index: menuItemLoader.__index
+ readonly property bool hovered: control.currentIndex === index
+ readonly property bool pressed: control.__protectedScope.pressedIndex === index
+ }
+ }
+ }
+ }
+ DropShadow {
+ id: dropShadow
+ anchors.fill: itemgroup
+ spread: shadowSpread
+ samples: shadowRadius * 2 + 1
+ transparentBorder: true
+ color: shadowColor
+ source: itemgroup
+ }
+
+ Loader {
+ id: titleLoader
+ sourceComponent: title
+ x: parent.x + parent.width / 2 - width / 2
+ y: -height - 10
+
+ property QtObject styleData: QtObject {
+ property string text: control.currentIndex !== -1
+ ? control.__protectedScope.visibleItems[control.currentIndex].text
+ : control.title
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qmlc
new file mode 100644
index 00000000..6e1036dc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/PieMenuStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qml
new file mode 100644
index 00000000..d51e056d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qml
@@ -0,0 +1,261 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ProgressBarStyle
+
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for ProgressBar.
+
+ Example:
+ \qml
+ ProgressBar {
+ value: slider.value
+ style: ProgressBarStyle {
+ background: Rectangle {
+ radius: 2
+ color: "lightgray"
+ border.color: "gray"
+ border.width: 1
+ implicitWidth: 200
+ implicitHeight: 24
+ }
+ progress: Rectangle {
+ color: "lightsteelblue"
+ border.color: "steelblue"
+ }
+ }
+ }
+ \endqml
+
+ Note that the example above is somewhat simplified and will not animate
+ an indeterminate progress bar. The following snippet demonstrates
+ how you can incorporate a custom animation for the indeterminate
+ state as well.
+
+ \code
+ progress: Rectangle {
+ border.color: "steelblue"
+ color: "lightsteelblue"
+
+ // Indeterminate animation by animating alternating stripes:
+ Item {
+ anchors.fill: parent
+ anchors.margins: 1
+ visible: control.indeterminate
+ clip: true
+ Row {
+ Repeater {
+ Rectangle {
+ color: index % 2 ? "steelblue" : "lightsteelblue"
+ width: 20 ; height: control.height
+ }
+ model: control.width / 20 + 2
+ }
+ XAnimator on x {
+ from: 0 ; to: -40
+ loops: Animation.Infinite
+ running: control.indeterminate
+ }
+ }
+ }
+ }
+ \endcode
+
+
+*/
+
+Style {
+ id: progressBarStyle
+
+ /*! The \l ProgressBar this style is attached to. */
+ readonly property ProgressBar control: __control
+
+ /*! A value in the range [0-1] indicating the current progress. */
+ readonly property real currentProgress: control.indeterminate ? 1.0 :
+ control.value / control.maximumValue
+
+ /*! This property holds the visible contents of the progress bar
+ You can access the Slider through the \c control property.
+
+ For convenience, you can also access the readonly property \c styleData.progress
+ which provides the current progress as a \c real in the range [0-1]
+ */
+ padding { top: 0 ; left: 0 ; right: 0 ; bottom: 0 }
+
+ /*! \qmlproperty Component ProgressBarStyle::progress
+ The progress component for this style.
+ */
+ property Component progress: Item {
+ property color progressColor: "#49d"
+ anchors.fill: parent
+ clip: true
+ Rectangle {
+ id: base
+ anchors.fill: parent
+ radius: TextSingleton.implicitHeight * 0.16
+ antialiasing: true
+ gradient: Gradient {
+ GradientStop {color: Qt.lighter(progressColor, 1.3) ; position: 0}
+ GradientStop {color: progressColor ; position: 1.4}
+ }
+ border.width: 1
+ border.color: Qt.darker(progressColor, 1.2)
+ Rectangle {
+ color: "transparent"
+ radius: 1.5
+ clip: true
+ antialiasing: true
+ anchors.fill: parent
+ anchors.margins: 1
+ border.color: Qt.rgba(1,1,1,0.1)
+ Image {
+ visible: control.indeterminate
+ height: parent.height
+ NumberAnimation on x {
+ from: -39
+ to: 0
+ running: control.indeterminate
+ duration: 800
+ loops: Animation.Infinite
+ }
+ fillMode: Image.Tile
+ width: parent.width + 25
+ source: "images/progress-indeterminate.png"
+ }
+ }
+ }
+ Rectangle {
+ height: parent.height - 2
+ width: 1
+ y: 1
+ anchors.right: parent.right
+ anchors.rightMargin: 1
+ color: Qt.rgba(1,1,1,0.1)
+ visible: splitter.visible
+ }
+ Rectangle {
+ id: splitter
+ height: parent.height - 2
+ width: 1
+ y: 1
+ anchors.right: parent.right
+ color: Qt.darker(progressColor, 1.2)
+ property int offset: currentProgress * control.width
+ visible: offset > base.radius && offset < control.width - base.radius + 1
+ }
+ }
+
+ /*! \qmlproperty Component ProgressBarStyle::background
+ The background component for this style.
+
+ \note The implicitWidth and implicitHeight of the background component
+ must be set.
+ */
+ property Component background: Item {
+ implicitWidth: 200
+ implicitHeight: Math.max(17, Math.round(TextSingleton.implicitHeight * 0.7))
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: control.pressed ? 0 : -1
+ color: "#44ffffff"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: "#eee" ; position: 0}
+ GradientStop {color: "#fff" ; position: 0.1}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ radius: TextSingleton.implicitHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ Rectangle {
+ anchors.fill: parent
+ radius: parent.radius
+ color: control.activeFocus ? "#47b" : "white"
+ opacity: control.hovered || control.activeFocus ? 0.1 : 0
+ Behavior on opacity {NumberAnimation{ duration: 100 }}
+ }
+ }
+ }
+
+ /*! \qmlproperty Component ProgressBarStyle::panel
+ The panel component for this style.
+ */
+ property Component panel: Item{
+ property bool horizontal: control.orientation == Qt.Horizontal
+ implicitWidth: horizontal ? backgroundLoader.implicitWidth : backgroundLoader.implicitHeight
+ implicitHeight: horizontal ? backgroundLoader.implicitHeight : backgroundLoader.implicitWidth
+
+ Item {
+ width: horizontal ? parent.width : parent.height
+ height: !horizontal ? parent.width : parent.height
+ y: horizontal ? 0 : width
+ rotation: horizontal ? 0 : -90
+ transformOrigin: Item.TopLeft
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ sourceComponent: progressBarStyle.progress
+ anchors.topMargin: padding.top
+ anchors.leftMargin: padding.left
+ anchors.rightMargin: padding.right
+ anchors.bottomMargin: padding.bottom
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ width: currentProgress * (parent.width - padding.left - padding.right)
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qmlc
new file mode 100644
index 00000000..cff41523
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ProgressBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qml
new file mode 100644
index 00000000..6e3a2dc4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qml
@@ -0,0 +1,172 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype RadioButtonStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for RadioButton.
+
+ Example:
+ \qml
+ RadioButton {
+ text: "Radio Button"
+ style: RadioButtonStyle {
+ indicator: Rectangle {
+ implicitWidth: 16
+ implicitHeight: 16
+ radius: 9
+ border.color: control.activeFocus ? "darkblue" : "gray"
+ border.width: 1
+ Rectangle {
+ anchors.fill: parent
+ visible: control.checked
+ color: "#555"
+ radius: 9
+ anchors.margins: 4
+ }
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+ id: radiobuttonStyle
+
+ /*! The \l RadioButton this style is attached to. */
+ readonly property RadioButton control: __control
+
+ /*! This defines the text label. */
+ property Component label: Item {
+ implicitWidth: text.implicitWidth + 2
+ implicitHeight: text.implicitHeight
+ baselineOffset: text.y + text.baselineOffset
+ Rectangle {
+ anchors.fill: text
+ anchors.margins: -1
+ anchors.leftMargin: -3
+ anchors.rightMargin: -3
+ visible: control.activeFocus
+ height: 6
+ radius: 3
+ color: "#224f9fef"
+ border.color: "#47b"
+ opacity: 0.6
+ }
+ Text {
+ id: text
+ text: StyleHelpers.stylizeMnemonics(control.text)
+ anchors.centerIn: parent
+ color: SystemPaletteSingleton.text(control.enabled)
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+
+ /*! The background under indicator and label. */
+ property Component background
+
+ /*! The spacing between indicator and label. */
+ property int spacing: Math.round(TextSingleton.implicitHeight/4)
+
+ /*! This defines the indicator button. */
+ property Component indicator: Rectangle {
+ width: Math.round(TextSingleton.implicitHeight)
+ height: width
+ gradient: Gradient {
+ GradientStop {color: "#eee" ; position: 0}
+ GradientStop {color: control.pressed ? "#eee" : "#fff" ; position: 0.4}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ border.color: control.activeFocus ? "#16c" : "gray"
+ antialiasing: true
+ radius: height/2
+ Rectangle {
+ anchors.centerIn: parent
+ width: Math.round(parent.width * 0.5)
+ height: width
+ gradient: Gradient {
+ GradientStop {color: "#999" ; position: 0}
+ GradientStop {color: "#555" ; position: 1}
+ }
+ border.color: "#222"
+ antialiasing: true
+ radius: height/2
+ Behavior on opacity {NumberAnimation {duration: 80}}
+ opacity: control.checked ? control.enabled ? 1 : 0.5 : 0
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: Math.max(backgroundLoader.implicitWidth, row.implicitWidth + padding.left + padding.right)
+ implicitHeight: Math.max(backgroundLoader.implicitHeight, labelLoader.implicitHeight + padding.top + padding.bottom,indicatorLoader.implicitHeight + padding.top + padding.bottom)
+ baselineOffset: labelLoader.item ? padding.top + labelLoader.item.baselineOffset : 0
+
+ Loader {
+ id:backgroundLoader
+ sourceComponent: background
+ anchors.fill: parent
+ }
+ Row {
+ id: row
+ anchors.fill: parent
+
+ anchors.leftMargin: padding.left
+ anchors.rightMargin: padding.right
+ anchors.topMargin: padding.top
+ anchors.bottomMargin: padding.bottom
+
+ spacing: radiobuttonStyle.spacing
+ Loader {
+ id: indicatorLoader
+ sourceComponent: indicator
+ }
+ Loader {
+ id: labelLoader
+ sourceComponent: label
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qmlc
new file mode 100644
index 00000000..9d8c6f9a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/RadioButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qml
new file mode 100644
index 00000000..36b518d3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qml
@@ -0,0 +1,406 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ScrollViewStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup viewsstyling
+ \ingroup controlsstyling
+ \brief Provides custom styling for ScrollView.
+*/
+Style {
+ id: root
+
+ /*! The \l ScrollView this style is attached to. */
+ readonly property ScrollView control: __control
+
+ /*! This property controls the frame border padding of the scrollView. */
+ padding {left: 1; top: 1; right: 1; bottom: 1}
+
+ /*! This Component paints the corner area between scroll bars */
+ property Component corner: Rectangle { color: "#ccc" }
+
+ /*! This component determines if the flickable should reposition itself at the
+ mouse location when clicked. */
+ property bool scrollToClickedPosition: true
+
+ /*! This property holds whether the scroll bars are transient. Transient scroll bars
+ appear when the content is scrolled and disappear when they are no longer needed.
+
+ The default value is platform dependent. */
+ property bool transientScrollBars: Settings.isMobile && Settings.hasTouchScreen
+
+ /*! This Component paints the frame around scroll bars. */
+ property Component frame: Rectangle {
+ color: control["backgroundVisible"] ? "white": "transparent"
+ border.color: "#999"
+ border.width: 1
+ radius: 1
+ visible: control.frameVisible
+ }
+
+ /*! This is the minimum extent of the scroll bar handle.
+
+ The default value is \c 30.
+ */
+
+ property int minimumHandleLength: 30
+
+ /*! This property controls the edge overlap
+ between the handle and the increment/decrement buttons.
+
+ The default value is \c 30.
+ */
+
+ property int handleOverlap: 1
+
+ /*! This component controls the appearance of the
+ scroll bar background.
+
+ You can access the following state properties:
+
+ \table
+ \row \li property bool \b styleData.hovered
+ \row \li property bool \b styleData.horizontal
+ \endtable
+ */
+
+ property Component scrollBarBackground: Item {
+ property bool sticky: false
+ property bool hovered: styleData.hovered
+ implicitWidth: Math.round(TextSingleton.implicitHeight)
+ implicitHeight: Math.round(TextSingleton.implicitHeight)
+ clip: true
+ opacity: transientScrollBars ? 0.5 : 1.0
+ visible: !Settings.hasTouchScreen && (!transientScrollBars || sticky)
+ Rectangle {
+ anchors.fill: parent
+ color: "#ddd"
+ border.color: "#aaa"
+ anchors.rightMargin: styleData.horizontal ? -2 : -1
+ anchors.leftMargin: styleData.horizontal ? -2 : 0
+ anchors.topMargin: styleData.horizontal ? 0 : -2
+ anchors.bottomMargin: styleData.horizontal ? -1 : -2
+ }
+ onHoveredChanged: if (hovered) sticky = true
+ onVisibleChanged: if (!visible) sticky = false
+ }
+
+ /*! This component controls the appearance of the
+ scroll bar handle.
+
+ You can access the following state properties:
+
+ \table
+ \row \li property bool \b styleData.hovered
+ \row \li property bool \b styleData.pressed
+ \row \li property bool \b styleData.horizontal
+ \endtable
+ */
+
+ property Component handle: Item {
+ property bool sticky: false
+ property bool hovered: __activeControl !== "none"
+ implicitWidth: Math.round(TextSingleton.implicitHeight) + 1
+ implicitHeight: Math.round(TextSingleton.implicitHeight) + 1
+ BorderImage {
+ id: img
+ opacity: styleData.pressed && !transientScrollBars ? 0.5 : styleData.hovered ? 1 : 0.8
+ source: "images/scrollbar-handle-" + (transientScrollBars ? "transient" : styleData.horizontal ? "horizontal" : "vertical") + ".png"
+ border.left: transientScrollBars ? 5 : 2
+ border.top: transientScrollBars ? 5 : 2
+ border.right: transientScrollBars ? 5 : 2
+ border.bottom: transientScrollBars ? 5 : 2
+ anchors.top: !styleData.horizontal ? parent.top : undefined
+ anchors.margins: transientScrollBars ? 2 : 0
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ anchors.left: styleData.horizontal ? parent.left : undefined
+ width: !styleData.horizontal && transientScrollBars ? sticky ? 13 : 10 : parent.width
+ height: styleData.horizontal && transientScrollBars ? sticky ? 13 : 10 : parent.height
+ Behavior on width { enabled: !styleData.horizontal && transientScrollBars; NumberAnimation { duration: 100 } }
+ Behavior on height { enabled: styleData.horizontal && transientScrollBars; NumberAnimation { duration: 100 } }
+ }
+ onHoveredChanged: if (hovered) sticky = true
+ onVisibleChanged: if (!visible) sticky = false
+ }
+
+ /*! This component controls the appearance of the
+ scroll bar increment button.
+
+ You can access the following state properties:
+
+ \table
+ \row \li property bool \b styleData.hovered
+ \row \li property bool \b styleData.pressed
+ \row \li property bool \b styleData.horizontal
+ \endtable
+ */
+ property Component incrementControl: Rectangle {
+ visible: !transientScrollBars
+ implicitWidth: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight)
+ implicitHeight: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight)
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: -1
+ anchors.rightMargin: -1
+ border.color: "#aaa"
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1
+ color: "transparent"
+ border.color: "#44ffffff"
+ }
+ Image {
+ source: styleData.horizontal ? "images/arrow-right.png" : "images/arrow-down.png"
+ anchors.centerIn: parent
+ opacity: control.enabled ? 0.6 : 0.5
+ }
+ gradient: Gradient {
+ GradientStop {color: styleData.pressed ? "lightgray" : "white" ; position: 0}
+ GradientStop {color: styleData.pressed ? "lightgray" : "lightgray" ; position: 1}
+ }
+ }
+ }
+
+ /*! This component controls the appearance of the
+ scroll bar decrement button.
+
+ You can access the following state properties:
+
+ \table
+ \row \li property bool \b styleData.hovered
+ \row \li property bool \b styleData.pressed
+ \row \li property bool \b styleData.horizontal
+ \endtable
+ */
+ property Component decrementControl: Rectangle {
+ visible: !transientScrollBars
+ implicitWidth: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight)
+ implicitHeight: transientScrollBars ? 0 : Math.round(TextSingleton.implicitHeight)
+ Rectangle {
+ anchors.fill: parent
+ anchors.topMargin: styleData.horizontal ? 0 : -1
+ anchors.leftMargin: styleData.horizontal ? -1 : 0
+ anchors.bottomMargin: styleData.horizontal ? -1 : 0
+ anchors.rightMargin: styleData.horizontal ? 0 : -1
+ color: "lightgray"
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1
+ color: "transparent"
+ border.color: "#44ffffff"
+ }
+ Image {
+ source: styleData.horizontal ? "images/arrow-left.png" : "images/arrow-up.png"
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: styleData.horizontal ? 0 : -1
+ anchors.horizontalCenterOffset: styleData.horizontal ? -1 : 0
+ opacity: control.enabled ? 0.6 : 0.5
+ }
+ gradient: Gradient {
+ GradientStop {color: styleData.pressed ? "lightgray" : "white" ; position: 0}
+ GradientStop {color: styleData.pressed ? "lightgray" : "lightgray" ; position: 1}
+ }
+ border.color: "#aaa"
+ }
+ }
+
+ /*! \internal */
+ property Component __scrollbar: Item {
+ id: panel
+ property string activeControl: "none"
+ property bool scrollToClickPosition: true
+ property bool isTransient: transientScrollBars
+
+ property bool on: false
+ property bool raised: false
+ property bool sunken: __styleData.upPressed | __styleData.downPressed | __styleData.handlePressed
+
+ states: State {
+ name: "out"
+ when: isTransient
+ && (!__stickyScrollbars || !flickableItem.moving)
+ && panel.activeControl === "none"
+ && !panel.on
+ && !panel.raised
+ PropertyChanges { target: panel; opacity: 0 }
+ }
+
+ transitions: Transition {
+ to: "out"
+ SequentialAnimation {
+ PauseAnimation { duration: root.__scrollBarFadeDelay }
+ NumberAnimation { properties: "opacity"; duration: root.__scrollBarFadeDuration }
+ PropertyAction { target: panel; property: "visible"; value: false }
+ }
+ }
+
+ implicitWidth: __styleData.horizontal ? 200 : bg.implicitWidth
+ implicitHeight: __styleData.horizontal ? bg.implicitHeight : 200
+
+ function pixelMetric(arg) {
+ if (arg === "scrollbarExtent")
+ return (__styleData.horizontal ? bg.height : bg.width);
+ return 0;
+ }
+
+ function styleHint(arg) {
+ return false;
+ }
+
+ function hitTest(argX, argY) {
+ if (itemIsHit(handleControl, argX, argY))
+ return "handle"
+ else if (itemIsHit(incrementLoader, argX, argY))
+ return "up";
+ else if (itemIsHit(decrementLoader, argX, argY))
+ return "down";
+ else if (itemIsHit(bg, argX, argY)) {
+ if (__styleData.horizontal && argX < handleControl.x || !__styleData.horizontal && argY < handleControl.y)
+ return "upPage"
+ else
+ return "downPage"
+ }
+
+ return "none";
+ }
+
+ function subControlRect(arg) {
+ if (arg === "handle") {
+ return Qt.rect(handleControl.x, handleControl.y, handleControl.width, handleControl.height);
+ } else if (arg === "groove") {
+ if (__styleData.horizontal) {
+ return Qt.rect(incrementLoader.width - handleOverlap,
+ 0,
+ __control.width - (incrementLoader.width + decrementLoader.width - handleOverlap * 2),
+ __control.height);
+ } else {
+ return Qt.rect(0,
+ incrementLoader.height - handleOverlap,
+ __control.width,
+ __control.height - (incrementLoader.height + decrementLoader.height - handleOverlap * 2));
+ }
+ }
+ return Qt.rect(0,0,0,0);
+ }
+
+ function itemIsHit(argItem, argX, argY) {
+ var pos = argItem.mapFromItem(__control, argX, argY);
+ return (pos.x >= 0 && pos.x <= argItem.width && pos.y >= 0 && pos.y <= argItem.height);
+ }
+
+ Loader {
+ id: incrementLoader
+ anchors.top: parent.top
+ anchors.left: parent.left
+ sourceComponent: decrementControl
+ property QtObject styleData: QtObject {
+ readonly property bool hovered: activeControl === "up"
+ readonly property bool pressed: __styleData.upPressed
+ readonly property bool horizontal: __styleData.horizontal
+ }
+ }
+
+ Loader {
+ id: bg
+ anchors.top: __styleData.horizontal ? undefined : incrementLoader.bottom
+ anchors.bottom: __styleData.horizontal ? undefined : decrementLoader.top
+ anchors.left: __styleData.horizontal ? incrementLoader.right : undefined
+ anchors.right: __styleData.horizontal ? decrementLoader.left : undefined
+ sourceComponent: scrollBarBackground
+ property QtObject styleData: QtObject {
+ readonly property bool horizontal: __styleData.horizontal
+ readonly property bool hovered: activeControl !== "none"
+ }
+ }
+
+ Loader {
+ id: decrementLoader
+ anchors.bottom: __styleData.horizontal ? undefined : parent.bottom
+ anchors.right: __styleData.horizontal ? parent.right : undefined
+ sourceComponent: incrementControl
+ property QtObject styleData: QtObject {
+ readonly property bool hovered: activeControl === "down"
+ readonly property bool pressed: __styleData.downPressed
+ readonly property bool horizontal: __styleData.horizontal
+ }
+ }
+
+ property var flickableItem: control.flickableItem
+ property int extent: Math.max(minimumHandleLength, __styleData.horizontal ?
+ Math.min(1, ((flickableItem && flickableItem.contentWidth > 0.0) ? flickableItem.width/flickableItem.contentWidth : 1)) * bg.width :
+ Math.min(1, ((flickableItem && flickableItem.contentHeight > 0.0) ? flickableItem.height/flickableItem.contentHeight : 1)) * bg.height)
+ readonly property real range: __control.maximumValue - __control.minimumValue
+ readonly property real begin: __control.value - __control.minimumValue
+
+ Loader {
+ id: handleControl
+ height: __styleData.horizontal ? implicitHeight : extent
+ width: __styleData.horizontal ? extent : implicitWidth
+ anchors.top: bg.top
+ anchors.left: bg.left
+ anchors.topMargin: __styleData.horizontal || range === 0 ? 0 : -handleOverlap + (2 * begin * (bg.height + (2 * handleOverlap) - extent) + range) / (2 * range)
+ anchors.leftMargin: __styleData.horizontal && range !== 0 ? -handleOverlap + (2 * begin * (bg.width + (2 * handleOverlap) - extent) + range) / (2 * range) : 0
+ sourceComponent: handle
+ property QtObject styleData: QtObject {
+ readonly property bool hovered: activeControl === "handle"
+ readonly property bool pressed: __styleData.handlePressed
+ readonly property bool horizontal: __styleData.horizontal
+ }
+ readonly property alias __activeControl: panel.activeControl
+ }
+ }
+
+ /*! \internal */
+ property bool __externalScrollBars: false
+ /*! \internal */
+ property int __scrollBarSpacing: 4
+ /*! \internal */
+ property int __scrollBarFadeDelay: 450
+ /*! \internal */
+ property int __scrollBarFadeDuration: 200
+ /*! \internal */
+ property bool __stickyScrollbars: false
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qmlc
new file mode 100644
index 00000000..8cb9221c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ScrollViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qml
new file mode 100644
index 00000000..ca503064
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qml
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype SliderStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for Slider.
+
+ The slider style allows you to create a custom appearance for
+ a \l Slider control.
+
+ The implicit size of the slider is calculated based on the
+ maximum implicit size of the \c background and \c handle
+ delegates combined.
+
+ Example:
+ \qml
+ Slider {
+ anchors.centerIn: parent
+ style: SliderStyle {
+ groove: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 8
+ color: "gray"
+ radius: 8
+ }
+ handle: Rectangle {
+ anchors.centerIn: parent
+ color: control.pressed ? "white" : "lightgray"
+ border.color: "gray"
+ border.width: 2
+ implicitWidth: 34
+ implicitHeight: 34
+ radius: 12
+ }
+ }
+ }
+ \endqml
+*/
+Style {
+ id: styleitem
+
+ /*! The \l Slider this style is attached to. */
+ readonly property Slider control: __control
+
+ padding { top: 0 ; left: 0 ; right: 0 ; bottom: 0 }
+
+ /*! This property holds the item for the slider handle.
+ You can access the slider through the \c control property
+ */
+ property Component handle: Item{
+ implicitWidth: implicitHeight
+ implicitHeight: TextSingleton.implicitHeight * 1.2
+
+ FastGlow {
+ source: handle
+ anchors.fill: parent
+ anchors.bottomMargin: -1
+ anchors.topMargin: 1
+ smooth: true
+ color: "#11000000"
+ spread: 0.8
+ transparentBorder: true
+ blur: 0.1
+
+ }
+ Rectangle {
+ id: handle
+ anchors.fill: parent
+
+ radius: width/2
+ gradient: Gradient {
+ GradientStop { color: control.pressed ? "#e0e0e0" : "#fff" ; position: 1 }
+ GradientStop { color: "#eee" ; position: 0 }
+ }
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 1
+ radius: width/2
+ border.color: "#99ffffff"
+ color: control.activeFocus ? "#224f7fbf" : "transparent"
+ }
+ border.color: control.activeFocus ? "#47b" : "#777"
+ }
+
+ }
+ /*! This property holds the background groove of the slider.
+
+ You can access the handle position through the \c styleData.handlePosition property.
+ */
+ property Component groove: Item {
+ property color fillColor: "#49d"
+ anchors.verticalCenter: parent.verticalCenter
+ implicitWidth: Math.round(TextSingleton.implicitHeight * 4.5)
+ implicitHeight: Math.max(6, Math.round(TextSingleton.implicitHeight * 0.3))
+ Rectangle {
+ radius: height/2
+ anchors.fill: parent
+ border.width: 1
+ border.color: "#888"
+ gradient: Gradient {
+ GradientStop { color: "#bbb" ; position: 0 }
+ GradientStop { color: "#ccc" ; position: 0.6 }
+ GradientStop { color: "#ccc" ; position: 1 }
+ }
+ }
+ Item {
+ clip: true
+ width: styleData.handlePosition
+ height: parent.height
+ Rectangle {
+ anchors.fill: parent
+ border.color: Qt.darker(fillColor, 1.2)
+ radius: height/2
+ gradient: Gradient {
+ GradientStop {color: Qt.lighter(fillColor, 1.3) ; position: 0}
+ GradientStop {color: fillColor ; position: 1.4}
+ }
+ }
+ }
+ }
+
+ /*! This property holds the tick mark labels.
+ \since QtQuick.Controls.Styles 1.1
+
+ Every tickmark that should be drawn must be defined within this
+ component, so it is common to use a \l Repeater, for example.
+
+ You can access the handle width through the \c styleData.handleWidth property.
+ */
+ property Component tickmarks: Repeater {
+ id: repeater
+ model: control.stepSize > 0 ? 1 + (control.maximumValue - control.minimumValue) / control.stepSize : 0
+ Rectangle {
+ color: "#777"
+ width: 1 ; height: 3
+ y: repeater.height
+ x: styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))
+ }
+ }
+
+ /*! This property holds the slider style panel.
+
+ Note that it is generally not recommended to override this.
+ */
+ property Component panel: Item {
+ id: root
+ property int handleWidth: handleLoader.width
+ property int handleHeight: handleLoader.height
+
+ property bool horizontal : control.orientation === Qt.Horizontal
+ property int horizontalSize: grooveLoader.implicitWidth + padding.left + padding.right
+ property int verticalSize: Math.max(handleLoader.implicitHeight, grooveLoader.implicitHeight) + padding.top + padding.bottom
+
+ implicitWidth: horizontal ? horizontalSize : verticalSize
+ implicitHeight: horizontal ? verticalSize : horizontalSize
+
+ y: horizontal ? 0 : height
+ rotation: horizontal ? 0 : -90
+ transformOrigin: Item.TopLeft
+
+ Item {
+
+ anchors.fill: parent
+
+ Loader {
+ id: grooveLoader
+ property QtObject styleData: QtObject {
+ readonly property int handlePosition: handleLoader.x + handleLoader.width/2
+ }
+ x: padding.left
+ sourceComponent: groove
+ width: (horizontal ? parent.width : parent.height) - padding.left - padding.right
+ y: Math.round(padding.top + (Math.round(horizontal ? parent.height : parent.width - padding.top - padding.bottom) - grooveLoader.item.height)/2)
+ }
+ Loader {
+ id: tickMarkLoader
+ anchors.fill: parent
+ sourceComponent: control.tickmarksEnabled ? tickmarks : null
+ property QtObject styleData: QtObject { readonly property int handleWidth: control.__panel.handleWidth }
+ }
+ Loader {
+ id: handleLoader
+ sourceComponent: handle
+ anchors.verticalCenter: grooveLoader.verticalCenter
+ x: Math.round((control.__handlePos - control.minimumValue) / (control.maximumValue - control.minimumValue) * ((horizontal ? root.width : root.height) - item.width))
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qmlc
new file mode 100644
index 00000000..b70a77bd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SliderStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qml
new file mode 100644
index 00000000..bc57ef6e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qml
@@ -0,0 +1,258 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype SpinBoxStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.2
+ \ingroup controlsstyling
+ \brief Provides custom styling for SpinBox.
+
+ Example:
+ \qml
+ SpinBox {
+ style: SpinBoxStyle{
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ border.color: "gray"
+ radius: 2
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+ id: spinboxStyle
+
+ /*! The \l SpinBox this style is attached to. */
+ readonly property SpinBox control: __control
+
+ /*! The content margins of the text field. */
+ padding { top: 1 ; left: Math.round(styleData.contentHeight/2) ; right: Math.max(22, Math.round(styleData.contentHeight)) ; bottom: 0 }
+ /*! \qmlproperty enumeration horizontalAlignment
+
+ This property defines the default text aligment.
+
+ The supported values are:
+ \list
+ \li Qt.AlignLeft
+ \li Qt.AlignHCenter
+ \li Qt.AlignRight
+ \endlist
+
+ The default value is Qt.AlignRight
+ */
+ property int horizontalAlignment: Qt.AlignRight
+
+ /*! The text color. */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*! The text highlight color, used behind selections. */
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+
+ /*! The highlighted text color, used in selections. */
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+ /*!
+ \qmlproperty enumeration renderType
+
+ Override the default rendering type for the control.
+
+ Supported render types are:
+ \list
+ \li Text.QtRendering
+ \li Text.NativeRendering
+ \endlist
+
+ The default value is platform dependent.
+
+ \sa Text::renderType
+ */
+ property int renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+
+ /*!
+ \since QtQuick.Controls.Styles 1.3
+ The font of the control.
+ */
+ property font font
+
+ /*! The button used to increment the value. */
+ property Component incrementControl: Item {
+ implicitWidth: padding.right
+ Image {
+ source: "images/arrow-up.png"
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: 1
+ opacity: control.enabled ? (styleData.upPressed ? 1 : 0.6) : 0.5
+ }
+ }
+
+ /*! The button used to decrement the value. */
+ property Component decrementControl: Item {
+ implicitWidth: padding.right
+ Image {
+ source: "images/arrow-down.png"
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -2
+ opacity: control.enabled ? (styleData.downPressed ? 1 : 0.6) : 0.5
+ }
+ }
+
+ /*! The background of the SpinBox. */
+ property Component background: Item {
+ implicitHeight: Math.max(25, Math.round(styleData.contentHeight * 1.2))
+ implicitWidth: styleData.contentWidth + padding.left + padding.right
+ baselineOffset: control.__baselineOffset
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: -1
+ color: "#44ffffff"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: "#eee" ; position: 0}
+ GradientStop {color: "#fff" ; position: 0.1}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ radius: control.font.pixelSize * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ id: styleitem
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: backgroundLoader.implicitHeight
+ baselineOffset: backgroundLoader.item ? backgroundLoader.item.baselineOffset : 0
+
+ property font font: spinboxStyle.font
+
+ property color foregroundColor: spinboxStyle.textColor
+ property color selectionColor: spinboxStyle.selectionColor
+ property color selectedTextColor: spinboxStyle.selectedTextColor
+
+ property var margins: spinboxStyle.padding
+
+ property rect upRect: Qt.rect(width - incrementControlLoader.implicitWidth, 0, incrementControlLoader.implicitWidth, height / 2 + 1)
+ property rect downRect: Qt.rect(width - decrementControlLoader.implicitWidth, height / 2, decrementControlLoader.implicitWidth, height / 2)
+
+ property int horizontalAlignment: spinboxStyle.horizontalAlignment
+ property int verticalAlignment: Qt.AlignVCenter
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ id: incrementControlLoader
+ x: upRect.x
+ y: upRect.y
+ width: upRect.width
+ height: upRect.height
+ sourceComponent: incrementControl
+ }
+
+ Loader {
+ id: decrementControlLoader
+ x: downRect.x
+ y: downRect.y
+ width: downRect.width
+ height: downRect.height
+ sourceComponent: decrementControl
+ }
+ }
+
+ /*! \internal
+ The cursor handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the cursor position. The interactive area is determined by the
+ geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __cursorHandle
+
+ /*! \internal
+ The selection handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the first selected character. The interactive area is determined
+ by the geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __selectionHandle
+
+ /*! \internal
+ The cursor delegate.
+ \since QtQuick.Controls.Styles 1.3
+ */
+ property Component __cursorDelegate
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qmlc
new file mode 100644
index 00000000..c4a6cf34
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SpinBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qml
new file mode 100644
index 00000000..8b620424
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype StatusBarStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \ingroup controlsstyling
+ \since 5.2
+ \brief Provides custom styling for StatusBar.
+
+ The status bar can be defined by overriding the background component and
+ setting the content padding.
+
+ Example:
+ \qml
+ StatusBar {
+ style: StatusBarStyle {
+ padding {
+ left: 8
+ right: 8
+ top: 3
+ bottom: 3
+ }
+ background: Rectangle {
+ implicitHeight: 16
+ implicitWidth: 200
+ gradient: Gradient{
+ GradientStop{color: "#eee" ; position: 0}
+ GradientStop{color: "#ccc" ; position: 1}
+ }
+ Rectangle {
+ anchors.top: parent.top
+ width: parent.width
+ height: 1
+ color: "#999"
+ }
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+
+ /*! The content padding inside the status bar. */
+ padding {
+ left: 3
+ right: 3
+ top: 3
+ bottom: 2
+ }
+
+ /*! This defines the background of the status bar. */
+ property Component background: Rectangle {
+ implicitHeight: 16
+ implicitWidth: 200
+
+ gradient: Gradient{
+ GradientStop{color: "#eee" ; position: 0}
+ GradientStop{color: "#ccc" ; position: 1}
+ }
+
+ Rectangle {
+ anchors.top: parent.top
+ width: parent.width
+ height: 1
+ color: "#999"
+ }
+ }
+
+ /*! This defines the panel of the status bar. */
+ property Component panel: Loader {
+ sourceComponent: background
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qmlc
new file mode 100644
index 00000000..731d9c95
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qml
new file mode 100644
index 00000000..ae9f2110
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qml
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtGraphicalEffects 1.0
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+
+/*!
+ \qmltype StatusIndicatorStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for StatusIndicatorStyle.
+
+ You can create a custom status indicator by defining the \l indicator
+ component.
+*/
+
+Style {
+ id: pieMenuStyle
+
+ /*!
+ The \l StatusIndicator that this style is attached to.
+ */
+ readonly property StatusIndicator control: __control
+
+ /*!
+ The color that instances of
+ \l [QtQuickExtras]{StatusIndicator} will have.
+ The \l [QtQuickExtras]{StatusIndicator::}{color}
+ property in \l [QtQuickExtras]{StatusIndicator}
+ will override this property when set.
+ */
+ property color color: "red"
+
+ /*!
+ This defines the indicator in both its on and off status.
+ */
+ property Component indicator: Item {
+ readonly property real shineStep: 0.05
+ readonly property real smallestAxis: Math.min(control.width, control.height)
+ readonly property real outerRecessPercentage: 0.11
+ readonly property color offColor: Qt.rgba(0.13, 0.13, 0.13)
+ readonly property color baseColor: control.active ? control.color : offColor
+
+ implicitWidth: TextSingleton.implicitHeight * 2
+ implicitHeight: implicitWidth
+
+ Canvas {
+ id: backgroundCanvas
+ width: Math.min(parent.width, parent.height)
+ // height: width --- QTBUG-42878
+ height: Math.min(parent.width, parent.height)
+ anchors.centerIn: parent
+
+ Connections {
+ target: control
+ function onActiveChanged() { backgroundCanvas.requestPaint() }
+ function onColorChanged() { backgroundCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ // Draw the semi-transparent background.
+ ctx.beginPath();
+ var gradient = ctx.createLinearGradient(width / 2, 0, width / 2, height * 0.75);
+ gradient.addColorStop(0.0, Qt.rgba(0, 0, 0, control.active ? 0.1 : 0.25));
+ gradient.addColorStop(1.0, control.active ? Qt.rgba(0, 0, 0, 0.1) : Qt.rgba(0.74, 0.74, 0.74, 0.25));
+
+ ctx.fillStyle = gradient;
+ ctx.ellipse(0, 0, width, height);
+ ctx.fill();
+ }
+ }
+
+ Item {
+ id: shadowGuard
+ anchors.fill: backgroundCanvas
+ anchors.margins: -shadow.radius
+
+ Canvas {
+ id: colorCanvas
+ anchors.fill: parent
+ anchors.margins: shadow.radius
+
+ Connections {
+ target: control
+ function onActiveChanged() { colorCanvas.requestPaint() }
+ function onColorChanged() { colorCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ // Draw the actual color within the circle.
+ ctx.beginPath();
+ ctx.fillStyle = baseColor;
+ var recess = smallestAxis * outerRecessPercentage;
+ ctx.ellipse(recess, recess, width - recess * 2, height - recess * 2);
+ ctx.fill();
+ }
+ }
+ }
+
+ DropShadow {
+ id: shadow
+ source: shadowGuard
+ color: control.color
+ cached: true
+ anchors.fill: shadowGuard
+ visible: control.active
+ }
+
+ Canvas {
+ id: foregroundCanvas
+ anchors.fill: backgroundCanvas
+
+ Connections {
+ target: control
+ function onActiveChanged() { foregroundCanvas.requestPaint() }
+ function onColorChanged() { foregroundCanvas.requestPaint() }
+ }
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ // Draw the first shine.
+ ctx.beginPath();
+ ctx.fillStyle = Qt.rgba(1, 1, 1, 0.03);
+ var recessPercentage = outerRecessPercentage + shineStep * 0.65;
+ var recess = smallestAxis * recessPercentage;
+ ctx.ellipse(recess, recess, width - recess * 2, height - recess * 2);
+ ctx.fill();
+
+ // Draw the second, inner shine.
+ ctx.beginPath();
+ ctx.fillStyle = Qt.rgba(1, 1, 1, 0.06);
+ recessPercentage += shineStep;
+ recess = smallestAxis * recessPercentage;
+ ctx.ellipse(recess, recess, width - recess * 2, height - recess * 2);
+ ctx.fill();
+
+ // Now draw the final arced shine that goes over the first and second shines.
+ // First, clip the entire shine area.
+ ctx.beginPath();
+ recessPercentage -= shineStep;
+ recess = smallestAxis * recessPercentage;
+ ctx.ellipse(recess, recess, width - recess * 2, height - recess * 2);
+ ctx.clip();
+
+ if (!control.active) {
+ // Then, clip the bottom area out of the shine.
+ ctx.ellipse(recess, height * 0.425, width - recess * 2, height - recess * 2);
+ ctx.clip();
+ }
+
+ ctx.beginPath();
+ var gradient;
+ if (!control.active) {
+ // Draw the shine arc.
+ gradient = ctx.createLinearGradient(width / 2, height * 0.2, width / 2, height * 0.65);
+ gradient.addColorStop(0.0, Qt.rgba(1, 1, 1, 0.05));
+ gradient.addColorStop(1.0, "transparent");
+ } else {
+ // Draw the radial shine.
+ gradient = ctx.createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, width * 0.5 /* (same as height) */);
+ gradient.addColorStop(0.0, Qt.lighter(baseColor, 1.4));
+ gradient.addColorStop(1.0, "transparent");
+ }
+
+ ctx.fillStyle = gradient;
+ ctx.ellipse(recess, recess, width - recess * 2, height - recess * 2);
+ ctx.fill();
+ }
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: indicatorLoader.implicitWidth
+ implicitHeight: indicatorLoader.implicitHeight
+
+ Loader {
+ id: indicatorLoader
+ width: Math.max(1, parent.width)
+ height: Math.max(1, parent.height)
+ anchors.centerIn: parent
+ sourceComponent: indicator
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qmlc
new file mode 100644
index 00000000..f416a34a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/StatusIndicatorStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qml
new file mode 100644
index 00000000..39db036b
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qml
@@ -0,0 +1,169 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype SwitchStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.2
+ \ingroup controlsstyling
+ \brief Provides custom styling for Switch.
+
+ Example:
+ \qml
+ Switch {
+ style: SwitchStyle {
+ groove: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 20
+ radius: 9
+ border.color: control.activeFocus ? "darkblue" : "gray"
+ border.width: 1
+ }
+ }
+ }
+ \endqml
+*/
+Style {
+ id: switchstyle
+
+ /*! The content padding. */
+ padding {
+ top: 0
+ left: 0
+ right: 0
+ bottom: 0
+ }
+
+ /*! This defines the switch handle. */
+ property Component handle: Rectangle {
+ opacity: control.enabled ? 1.0 : 0.5
+ implicitWidth: Math.round((parent.parent.width - padding.left - padding.right)/2)
+ implicitHeight: control.height - padding.top - padding.bottom
+
+ border.color: control.activeFocus ? Qt.darker(highlight, 2) : Qt.darker(button, 2)
+ property color bg: control.activeFocus ? Qt.darker(highlight, 1.2) : button
+ property color highlight: SystemPaletteSingleton.highlight(control.enabled)
+ property color button: SystemPaletteSingleton.button(control.enabled)
+ gradient: Gradient {
+ GradientStop {color: Qt.lighter(bg, 1.4) ; position: 0}
+ GradientStop {color: bg ; position: 1}
+ }
+
+ radius: 2
+ }
+
+ /*! This property holds the background groove of the switch. */
+ property Component groove: Rectangle {
+ property color shadow: control.checked ? Qt.darker(highlight, 1.2): "#999"
+ property color bg: control.checked ? highlight:"#bbb"
+ property color highlight: SystemPaletteSingleton.highlight(control.enabled)
+
+ implicitWidth: Math.round(implicitHeight * 3)
+ implicitHeight: Math.max(16, Math.round(TextSingleton.implicitHeight))
+
+ border.color: "gray"
+ color: "red"
+
+ radius: 2
+ Behavior on shadow {ColorAnimation{ duration: 80 }}
+ Behavior on bg {ColorAnimation{ duration: 80 }}
+ gradient: Gradient {
+ GradientStop {color: shadow; position: 0}
+ GradientStop {color: bg ; position: 0.2}
+ GradientStop {color: bg ; position: 1}
+ }
+ Rectangle {
+ color: "#44ffffff"
+ height: 1
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: -1
+ width: parent.width - 2
+ x: 1
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+
+ implicitWidth: Math.round(grooveLoader.width + padding.left + padding.right)
+ implicitHeight: grooveLoader.implicitHeight + padding.top + padding.bottom
+
+ property var __handle: handleLoader
+ property int min: padding.left
+ property int max: grooveLoader.width - handleLoader.width - padding.right
+
+ Loader {
+ id: grooveLoader
+ y: padding.top
+ x: padding.left
+
+ sourceComponent: groove
+ anchors.verticalCenter: parent.verticalCenter
+
+
+ Loader {
+ id: handleLoader
+
+ z:1
+
+ x: control.checked ? max : min
+
+ anchors.top: grooveLoader.top
+ anchors.bottom: grooveLoader.bottom
+ anchors.topMargin: padding.top
+ anchors.bottomMargin: padding.bottom
+
+ Behavior on x {
+ id: behavior
+ enabled: handleLoader.status === Loader.Ready
+ NumberAnimation {
+ duration: 150
+ easing.type: Easing.OutCubic
+ }
+ }
+
+ sourceComponent: handle
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qmlc
new file mode 100644
index 00000000..a3c105a4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/SwitchStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qml
new file mode 100644
index 00000000..2d7d2d91
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qml
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TabViewStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup viewsstyling
+ \ingroup controlsstyling
+ \brief Provides custom styling for TabView.
+
+\qml
+ TabView {
+ id: frame
+ anchors.fill: parent
+ anchors.margins: 4
+ Tab { title: "Tab 1" }
+ Tab { title: "Tab 2" }
+ Tab { title: "Tab 3" }
+
+ style: TabViewStyle {
+ frameOverlap: 1
+ tab: Rectangle {
+ color: styleData.selected ? "steelblue" :"lightsteelblue"
+ border.color: "steelblue"
+ implicitWidth: Math.max(text.width + 4, 80)
+ implicitHeight: 20
+ radius: 2
+ Text {
+ id: text
+ anchors.centerIn: parent
+ text: styleData.title
+ color: styleData.selected ? "white" : "black"
+ }
+ }
+ frame: Rectangle { color: "steelblue" }
+ }
+ }
+\endqml
+
+*/
+
+Style {
+
+ /*! The \l ScrollView this style is attached to. */
+ readonly property TabView control: __control
+
+ /*! This property holds whether the user can move the tabs.
+ Tabs are not movable by default. */
+ property bool tabsMovable: false
+
+ /*! This property holds the horizontal alignment of
+ the tab buttons. Supported values are:
+ \list
+ \li Qt.AlignLeft (default)
+ \li Qt.AlignHCenter
+ \li Qt.AlignRight
+ \endlist
+ */
+ property int tabsAlignment: Qt.AlignLeft
+
+ /*! This property holds the amount of overlap there are between
+ individual tab buttons. */
+ property int tabOverlap: 1
+
+ /*! This property holds the amount of overlap there are between
+ individual tab buttons and the frame. */
+ property int frameOverlap: 2
+
+ /*! This defines the tab frame. */
+ property Component frame: Rectangle {
+ color: "#dcdcdc"
+ border.color: "#aaa"
+
+ Rectangle {
+ anchors.fill: parent
+ color: "transparent"
+ border.color: "#66ffffff"
+ anchors.margins: 1
+ }
+ }
+
+ /*! This defines the tab. You can access the tab state through the
+ \c styleData property, with the following properties:
+
+ \table
+ \row \li readonly property int \b styleData.index \li This is the current tab index.
+ \row \li readonly property bool \b styleData.selected \li This is the active tab.
+ \row \li readonly property string \b styleData.title \li Tab title text.
+ \row \li readonly property bool \b styleData.nextSelected \li The next tab is selected.
+ \row \li readonly property bool \b styleData.previousSelected \li The previous tab is selected.
+ \row \li readonly property bool \b styleData.pressed \li The tab is being pressed. (since QtQuick.Controls.Styles 1.3)
+ \row \li readonly property bool \b styleData.hovered \li The tab is being hovered.
+ \row \li readonly property bool \b styleData.enabled \li The tab is enabled. (since QtQuick.Controls.Styles 1.2)
+ \row \li readonly property bool \b styleData.activeFocus \li The tab button has keyboard focus.
+ \row \li readonly property bool \b styleData.availableWidth \li The available width for the tabs.
+ \row \li readonly property bool \b styleData.totalWidth \li The total width of the tabs. (since QtQuick.Controls.Styles 1.2)
+ \endtable
+ */
+ property Component tab: Item {
+ scale: control.tabPosition === Qt.TopEdge ? 1 : -1
+
+ property int totalOverlap: tabOverlap * (control.count - 1)
+ property real maxTabWidth: control.count > 0 ? (styleData.availableWidth + totalOverlap) / control.count : 0
+
+ implicitWidth: Math.round(Math.min(maxTabWidth, textitem.implicitWidth + 20))
+ implicitHeight: Math.round(textitem.implicitHeight + 10)
+
+ Item {
+ anchors.fill: parent
+ anchors.bottomMargin: styleData.selected ? 0 : 2
+ BorderImage {
+ anchors.fill: parent
+ source: styleData.selected ? "images/tab_selected.png" : "images/tab.png"
+ border.top: 6
+ border.bottom: 6
+ border.left: 6
+ border.right: 6
+ anchors.topMargin: styleData.selected ? 0 : 1
+ }
+ }
+ Text {
+ id: textitem
+ anchors.fill: parent
+ anchors.leftMargin: 4
+ anchors.rightMargin: 4
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ text: styleData.title
+ elide: Text.ElideMiddle
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ scale: control.tabPosition === Qt.TopEdge ? 1 : -1
+ color: SystemPaletteSingleton.text(styleData.enabled)
+ Rectangle {
+ anchors.centerIn: parent
+ width: textitem.paintedWidth + 6
+ height: textitem.paintedHeight + 4
+ visible: (styleData.activeFocus && styleData.selected)
+ radius: 3
+ color: "#224f9fef"
+ border.color: "#47b"
+ }
+ }
+ }
+
+ /*! This defines the left corner. */
+ property Component leftCorner: null
+
+ /*! This defines the right corner. */
+ property Component rightCorner: null
+
+ /*! This defines the tab bar background. */
+ property Component tabBar: null
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qmlc
new file mode 100644
index 00000000..cea0d59d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TabViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qml
new file mode 100644
index 00000000..f7a6bfa1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qml
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+
+BasicTableViewStyle {
+ id: root
+
+ readonly property TableView control: __control
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qmlc
new file mode 100644
index 00000000..2ad2120a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TableViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qml
new file mode 100644
index 00000000..8c08e211
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qml
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TextAreaStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.2
+ \ingroup controlsstyling
+ \brief Provides custom styling for TextArea.
+
+ Example:
+ \qml
+ TextArea {
+ style: TextAreaStyle {
+ textColor: "#333"
+ selectionColor: "steelblue"
+ selectedTextColor: "#eee"
+ backgroundColor: "#eee"
+ }
+ }
+ \endqml
+*/
+
+ScrollViewStyle {
+ id: style
+
+ /*! The \l TextArea this style is attached to. */
+ readonly property TextArea control: __control
+
+ /*! The current font. */
+ property font font
+
+ /*! The text color. */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*! The text highlight color, used behind selections. */
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+
+ /*! The highlighted text color, used in selections. */
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+ /*! The background color. */
+ property color backgroundColor: control.backgroundVisible ? SystemPaletteSingleton.base(control.enabled) : "transparent"
+
+ /*!
+ \qmlproperty enumeration renderType
+
+ Override the default rendering type for the control.
+
+ Supported render types are:
+ \list
+ \li Text.QtRendering
+ \li Text.NativeRendering
+ \endlist
+
+ The default value is platform dependent.
+
+ \sa Text::renderType
+ */
+ property int renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+
+ /*! The default margin, in pixels, around the text in the TextArea.
+ \since QtQuick.Controls.Styles 1.3
+ \sa TextArea::textMargin */
+ property real textMargin: 4
+
+ /*! \internal
+ The cursor handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the cursor position. The interactive area is determined by the
+ geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __cursorHandle
+
+ /*! \internal
+ The selection handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the first selected character. The interactive area is determined
+ by the geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __selectionHandle
+
+ /*! \internal
+ The cursor delegate.
+ \since QtQuick.Controls.Styles 1.3
+ */
+ property Component __cursorDelegate
+
+ /*! \internal
+ The delegate for the cut/copy/paste menu.
+ \since QtQuick.Controls.Styles 1.4
+ */
+ property Component __editMenu
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qmlc
new file mode 100644
index 00000000..4c8f422b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextAreaStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qml
new file mode 100644
index 00000000..338b7af0
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qml
@@ -0,0 +1,221 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TextFieldStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.1
+ \ingroup controlsstyling
+ \brief Provides custom styling for TextField.
+
+ Example:
+ \qml
+ TextField {
+ style: TextFieldStyle {
+ textColor: "black"
+ background: Rectangle {
+ radius: 2
+ implicitWidth: 100
+ implicitHeight: 24
+ border.color: "#333"
+ border.width: 1
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+ id: style
+
+ /*! The \l TextField this style is attached to. */
+ readonly property TextField control: __control
+
+ /*! The content margins of the text field. */
+ padding { top: 4 ; left: Math.round(control.__contentHeight/3) ; right: control.__contentHeight/3 ; bottom: 4 }
+
+ /*! The current font. */
+ property font font
+
+ /*! The text color. */
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+
+ /*! The text highlight color, used behind selections. */
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+
+ /*! The highlighted text color, used in selections. */
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+ /*!
+ \qmlproperty string passwordCharacter
+ \since QtQuick.Controls.Styles 1.4
+
+ The password character that is displayed when echoMode
+ on the TextField is set to TextInput.Password or
+ TextInput.PasswordEchoOnEdit.
+ */
+ property string passwordCharacter: Qt.styleHints.passwordMaskCharacter
+
+ /*!
+ \qmlproperty enumeration renderType
+ \since QtQuick.Controls.Styles 1.1
+
+ Override the default rendering type for the control.
+
+ Supported render types are:
+ \list
+ \li Text.QtRendering
+ \li Text.NativeRendering
+ \endlist
+
+ The default value is platform dependent.
+
+ \sa Text::renderType
+ */
+ property int renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+
+ /*! The placeholder text color, used when the text field is empty.
+ \since QtQuick.Controls.Styles 1.1
+ */
+ property color placeholderTextColor: Qt.rgba(0, 0, 0, 0.5)
+
+ /*! The background of the text field. */
+ property Component background: Item {
+ Rectangle {
+ anchors.fill: parent
+ anchors.bottomMargin: -1
+ color: "#44ffffff"
+ radius: baserect.radius
+ }
+ Rectangle {
+ id: baserect
+ gradient: Gradient {
+ GradientStop {color: "#e0e0e0" ; position: 0}
+ GradientStop {color: "#fff" ; position: 0.1}
+ GradientStop {color: "#fff" ; position: 1}
+ }
+ radius: control.__contentHeight * 0.16
+ anchors.fill: parent
+ border.color: control.activeFocus ? "#47b" : "#999"
+ }
+ }
+
+ /*! \internal */
+ property Component panel: Item {
+ anchors.fill: parent
+
+ property int topMargin: padding.top
+ property int leftMargin: padding.left
+ property int rightMargin: padding.right
+ property int bottomMargin: padding.bottom
+
+ property color textColor: style.textColor
+ property color selectionColor: style.selectionColor
+ property color selectedTextColor: style.selectedTextColor
+
+ implicitWidth: backgroundLoader.implicitWidth || Math.round(control.__contentHeight * 8)
+ implicitHeight: backgroundLoader.implicitHeight || Math.max(25, Math.round(control.__contentHeight * 1.2))
+ baselineOffset: padding.top + control.__baselineOffset
+
+ property color placeholderTextColor: style.placeholderTextColor
+ property font font: style.font
+
+ Loader {
+ id: backgroundLoader
+ sourceComponent: background
+ anchors.fill: parent
+ }
+ }
+
+ /*! \internal
+ The cursor handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the cursor position. The interactive area is determined by the
+ geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __cursorHandle
+
+ /*! \internal
+ The selection handle.
+ \since QtQuick.Controls.Styles 1.3
+
+ The parent of the handle is positioned to the top left corner of
+ the first selected character. The interactive area is determined
+ by the geometry of the handle delegate.
+
+ The following signals and read-only properties are available within the scope
+ of the handle delegate:
+ \table
+ \row \li \b {styleData.activated()} [signal] \li Emitted when the handle is activated ie. the editor is clicked.
+ \row \li \b {styleData.pressed} : bool \li Whether the handle is pressed.
+ \row \li \b {styleData.position} : int \li The character position of the handle.
+ \row \li \b {styleData.lineHeight} : real \li The height of the line the handle is on.
+ \row \li \b {styleData.hasSelection} : bool \li Whether the editor has selected text.
+ \endtable
+ */
+ property Component __selectionHandle
+
+ /*! \internal
+ The cursor delegate.
+ \since QtQuick.Controls.Styles 1.3
+ */
+ property Component __cursorDelegate
+
+ /*! \internal
+ The delegate for the cut/copy/paste menu.
+ \since QtQuick.Controls.Styles 1.4
+ */
+ property Component __editMenu
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qmlc
new file mode 100644
index 00000000..fb5607a6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TextFieldStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qml
new file mode 100644
index 00000000..2c47b4bf
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qml
@@ -0,0 +1,290 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtGraphicalEffects 1.0
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+import QtQuick.Extras.Private.CppUtils 1.0
+
+/*!
+ \qmltype ToggleButtonStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for ToggleButton.
+
+ You can create a custom toggle button by replacing the same delegates that
+ \l {ButtonStyle} provides.
+*/
+
+CircularButtonStyle {
+ id: circularButtonStyle
+
+ /*!
+ The \l ToggleButton that this style is attached to.
+ */
+ readonly property ToggleButton control: __control
+
+ /*!
+ The gradient that is displayed on the inactive state indicator. The
+ inactive state indicator will be the checked gradient when the button
+ is unchecked, and the unchecked gradient when the button is checked.
+
+ \sa checkedGradient, uncheckedGradient
+ */
+ property Gradient inactiveGradient: Gradient {
+ GradientStop {
+ position: 0
+ color: commonStyleHelper.inactiveColor
+ }
+ GradientStop {
+ position: 1
+ color: commonStyleHelper.inactiveColorShine
+ }
+ }
+
+ /*!
+ The gradient that is displayed on the checked state indicator.
+
+ \sa uncheckedGradient, inactiveGradient
+ */
+ property Gradient checkedGradient: Gradient {
+ GradientStop {
+ position: 0
+ color: commonStyleHelper.onColor
+ }
+ GradientStop {
+ position: 1
+ color: commonStyleHelper.onColorShine
+ }
+ }
+
+ /*!
+ The gradient that is displayed on the unchecked state indicator.
+
+ \sa checkedGradient, inactiveGradient
+ */
+ property Gradient uncheckedGradient: Gradient {
+ GradientStop {
+ position: 0
+ color: commonStyleHelper.offColor
+ }
+ GradientStop {
+ position: 1
+ color: commonStyleHelper.offColorShine
+ }
+ }
+
+ /*!
+ The color that is used for the drop shadow below the checked state
+ indicator.
+
+ \sa uncheckedDropShadowColor
+ */
+ property color checkedDropShadowColor: commonStyleHelper.onColor
+
+ /*!
+ The color that is used for the drop shadow below the checked state
+ indicator.
+
+ \sa checkedDropShadowColor
+ */
+ property color uncheckedDropShadowColor: commonStyleHelper.offColor
+
+ CommonStyleHelper {
+ id: commonStyleHelper
+ }
+
+ background: Item {
+ implicitWidth: __buttonHelper.implicitWidth
+ implicitHeight: __buttonHelper.implicitHeight
+
+ Connections {
+ target: control
+ function onPressedChanged() {
+ backgroundCanvas.requestPaint();
+ }
+
+ function onCheckedChanged() {
+ uncheckedCanvas.requestPaint();
+ checkedCanvas.requestPaint();
+ }
+ }
+
+ Connections {
+ target: circularButtonStyle
+
+ function onCheckedGradientChanged() { checkedCanvas.requestPaint() }
+ function onCheckedDropShadowColorChanged() { checkedCanvas.requestPaint() }
+ function onUncheckedGradientChanged() { uncheckedCanvas.requestPaint() }
+ function onUncheckedDropShadowColorChanged() { uncheckedCanvas.requestPaint() }
+ function onInactiveGradientChanged() {
+ checkedCanvas.requestPaint();
+ uncheckedCanvas.requestPaint();
+ }
+ }
+
+ Connections {
+ target: circularButtonStyle.checkedGradient
+ function onUpdated() { checkedCanvas.requestPaint() }
+ }
+
+ Connections {
+ target: circularButtonStyle.uncheckedGradient
+ function onUpdated() { uncheckedCanvas.requestPaint() }
+ }
+
+ Connections {
+ target: circularButtonStyle.inactiveGradient
+ function onUpdated() {
+ uncheckedCanvas.requestPaint();
+ checkedCanvas.requestPaint();
+ }
+ }
+
+ Canvas {
+ id: backgroundCanvas
+ anchors.fill: parent
+
+ onPaint: {
+ var ctx = getContext("2d");
+ __buttonHelper.paintBackground(ctx);
+ }
+ }
+
+ Canvas {
+ id: uncheckedCanvas
+ anchors.fill: parent
+ anchors.margins: -(__buttonHelper.radius * 3)
+ visible: control.checked
+
+ readonly property real xCenter: width / 2
+ readonly property real yCenter: height / 2
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ /* Draw unchecked indicator */
+ ctx.beginPath();
+ ctx.lineWidth = __buttonHelper.outerArcLineWidth - __buttonHelper.innerArcLineWidth;
+ ctx.arc(xCenter, yCenter, __buttonHelper.outerArcRadius + __buttonHelper.innerArcLineWidth / 2,
+ MathUtils.degToRad(180), MathUtils.degToRad(270), false);
+ var gradient = ctx.createLinearGradient(xCenter, yCenter + __buttonHelper.radius,
+ xCenter, yCenter - __buttonHelper.radius);
+ var relevantGradient = control.checked ? inactiveGradient : uncheckedGradient;
+ for (var i = 0; i < relevantGradient.stops.length; ++i) {
+ gradient.addColorStop(relevantGradient.stops[i].position, relevantGradient.stops[i].color);
+ }
+ ctx.strokeStyle = gradient;
+ ctx.stroke();
+ }
+ }
+
+ Canvas {
+ id: checkedCanvas
+ anchors.fill: parent
+ anchors.margins: -(__buttonHelper.radius * 3)
+ visible: !control.checked
+
+ readonly property real xCenter: width / 2
+ readonly property real yCenter: height / 2
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ /* Draw checked indicator */
+ ctx.beginPath();
+ ctx.lineWidth = __buttonHelper.outerArcLineWidth - __buttonHelper.innerArcLineWidth;
+ ctx.arc(xCenter, yCenter, __buttonHelper.outerArcRadius + __buttonHelper.innerArcLineWidth / 2,
+ MathUtils.degToRad(270), MathUtils.degToRad(0), false);
+ var gradient = ctx.createLinearGradient(xCenter, yCenter + __buttonHelper.radius,
+ xCenter, yCenter - __buttonHelper.radius);
+ var relevantGradient = control.checked ? checkedGradient : inactiveGradient;
+ for (var i = 0; i < relevantGradient.stops.length; ++i) {
+ gradient.addColorStop(relevantGradient.stops[i].position, relevantGradient.stops[i].color);
+ }
+ ctx.strokeStyle = gradient;
+ ctx.stroke();
+ }
+ }
+
+ DropShadow {
+ id: uncheckedDropShadow
+ anchors.fill: uncheckedCanvas
+ cached: true
+ color: uncheckedDropShadowColor
+ source: uncheckedCanvas
+ visible: !control.checked
+ }
+
+ DropShadow {
+ id: checkedDropShadow
+ anchors.fill: checkedCanvas
+ cached: true
+ color: checkedDropShadowColor
+ source: checkedCanvas
+ visible: control.checked
+ }
+ }
+
+ panel: Item {
+ implicitWidth: backgroundLoader.implicitWidth
+ implicitHeight: backgroundLoader.implicitHeight
+
+ Loader {
+ id: backgroundLoader
+ anchors.fill: parent
+ sourceComponent: background
+ }
+
+ Loader {
+ id: labelLoader
+ sourceComponent: label
+ anchors.fill: parent
+ anchors.leftMargin: padding.left
+ anchors.topMargin: padding.top
+ anchors.rightMargin: padding.right
+ anchors.bottomMargin: padding.bottom
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qmlc
new file mode 100644
index 00000000..26514fc9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qml
new file mode 100644
index 00000000..8c34efa9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qml
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ToolBarStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \ingroup controlsstyling
+ \since 5.2
+ \brief Provides custom styling for ToolBar.
+
+ The tool bar can be defined by overriding the background component and
+ setting the content padding.
+
+ Example:
+ \qml
+ ToolBar {
+ style: ToolBarStyle {
+ padding {
+ left: 8
+ right: 8
+ top: 3
+ bottom: 3
+ }
+ background: Rectangle {
+ implicitWidth: 100
+ implicitHeight: 40
+ border.color: "#999"
+ gradient: Gradient {
+ GradientStop { position: 0 ; color: "#fff" }
+ GradientStop { position: 1 ; color: "#eee" }
+ }
+ }
+ }
+ }
+ \endqml
+*/
+
+Style {
+
+ /*! The content padding inside the tool bar. */
+ padding {
+ left: 6
+ right: 6
+ top: 3
+ bottom: 3
+ }
+
+ /*! This defines the background of the tool bar. */
+ property Component background: Item {
+ implicitHeight: 40
+ implicitWidth: 200
+ Rectangle {
+ anchors.fill: parent
+ gradient: Gradient{
+ GradientStop{color: "#eee" ; position: 0}
+ GradientStop{color: "#ccc" ; position: 1}
+ }
+ Rectangle {
+ anchors.bottom: parent.bottom
+ width: parent.width
+ height: 1
+ color: "#999"
+ }
+ }
+ }
+
+ /*! This defines the menu button appearance on platforms
+ that have a unified tool bar and menu bar.
+
+ \since QtQuick.Controls.Styles 1.3
+
+ The following read-only properties are available within the scope
+ of the menu button delegate:
+ \table
+ \row \li \b {styleData.pressed} : bool \li Whether the button is pressed.
+ \row \li \b {styleData.hovered} : bool \li Whether the button is hovered.
+ \row \li \b {styleData.activeFocus} : bool \li Whether the button has active focus.
+ \endtable
+ */
+ property Component menuButton: null
+
+ /*! This defines the panel of the tool bar. */
+ property Component panel: Loader {
+ sourceComponent: background
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qmlc
new file mode 100644
index 00000000..5c5bc3f9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml
new file mode 100644
index 00000000..9387188c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ToolButtonStyle
+ \internal
+ \ingroup controlsstyling
+ \inqmlmodule QtQuick.Controls.Styles
+*/
+Style {
+ readonly property ToolButton control: __control
+ property Component panel: Item {
+ id: styleitem
+ implicitWidth: (hasIcon ? icon.width : Math.max(label.implicitWidth + frame.border.left + frame.border.right, 36))
+ + (arrow.visible ? 10 : 0)
+ implicitHeight: hasIcon ? icon.height : Math.max(label.implicitHeight, 36)
+
+ readonly property bool hasIcon: icon.status === Image.Ready || icon.status === Image.Loading
+
+ Rectangle {
+ anchors.fill: parent
+ visible: control.pressed || (control.checkable && control.checked)
+ color: "lightgray"
+ radius:4
+ border.color: "#aaa"
+ }
+ Item {
+ anchors.left: parent.left
+ anchors.right: arrow.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ clip: true
+ Text {
+ id: label
+ visible: !hasIcon
+ anchors.centerIn: parent
+ text: StyleHelpers.stylizeMnemonics(control.text)
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ Image {
+ id: icon
+ anchors.centerIn: parent
+ source: control.iconSource
+ }
+ }
+
+ BorderImage {
+ id: frame
+ anchors.fill: parent
+ anchors.margins: -1
+ anchors.topMargin: -2
+ anchors.rightMargin: 0
+ source: "images/focusframe.png"
+ visible: control.activeFocus
+ border.left: 4
+ border.right: 4
+ border.top: 4
+ border.bottom: 4
+ }
+
+ Image {
+ id: arrow
+ visible: control.menu !== null
+ source: visible ? "images/arrow-down.png" : ""
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: visible ? 3 : 0
+ opacity: control.enabled ? 0.7 : 0.5
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qmlc
new file mode 100644
index 00000000..1daee201
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qml
new file mode 100644
index 00000000..72825ccc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qml
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.5
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Private 1.0
+
+BasicTableViewStyle {
+ id: root
+
+ readonly property TreeView control: __control
+
+ property int indentation: 16
+
+ property Component branchDelegate: Item {
+ width: indentation
+ height: 16
+ Text {
+ visible: styleData.column === 0 && styleData.hasChildren
+ text: styleData.isExpanded ? "\u25bc" : "\u25b6"
+ color: !control.activeFocus || styleData.selected ? styleData.textColor : "#666"
+ font.pointSize: 10
+ renderType: Text.NativeRendering
+ style: Text.PlainText
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: 2
+ }
+ }
+
+ __branchDelegate: branchDelegate
+ __indentation: indentation
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qmlc
new file mode 100644
index 00000000..cc409ffe
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TreeViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qml
new file mode 100644
index 00000000..c70aea6c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qml
@@ -0,0 +1,334 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype TumblerStyle
+ \inqmlmodule QtQuick.Controls.Styles
+ \since 5.5
+ \ingroup controlsstyling
+ \brief Provides custom styling for Tumbler.
+
+ You can create a custom tumbler by replacing the following delegates:
+ \list
+ \li \l background
+ \li \l foreground
+ \li \l separator
+ \li \l delegate
+ \li \l highlight
+ \li \l frame
+ \endlist
+*/
+
+Style {
+ id: tumblerStyle
+
+ padding.left: __padding
+ padding.right: __padding
+ padding.top: __padding
+ padding.bottom: __padding
+
+ /*!
+ The \l Tumbler that this style is attached to.
+ */
+ readonly property Tumbler control: __control
+
+ /*!
+ \obsolete
+
+ This property holds the spacing between each delegate.
+
+ This property has no effect.
+ */
+ property real spacing: 0
+
+ /*!
+ This property holds the amount of items visible in each column.
+
+ This value should be an odd number.
+ */
+ property int visibleItemCount: 3
+
+ /*!
+ \internal
+
+ TODO: how do we handle differing padding values?
+ */
+ readonly property real __padding: Math.max(6, Math.round(TextSingleton.implicitHeight * 0.4))
+ /*! \internal */
+ property real __delegateHeight: 0
+ /*! \internal */
+ property real __separatorWidth: 0
+
+ /*!
+ The background of the tumbler.
+ */
+ property Component background: Rectangle {
+ gradient: Gradient {
+ GradientStop { position: 0.00; color: "#acacac" }
+ GradientStop { position: 0.12; color: "#d5d5d5" }
+ GradientStop { position: 0.24; color: "#e8e8e8" }
+ GradientStop { position: 0.39; color: "#ffffff" }
+ GradientStop { position: 0.61; color: "#ffffff" }
+ GradientStop { position: 0.76; color: "#e8e8e8" }
+ GradientStop { position: 0.88; color: "#d5d5d5" }
+ GradientStop { position: 1.00; color: "#acacac" }
+ }
+ }
+
+ /*!
+ The foreground of the tumbler.
+ */
+ property Component foreground: Item {
+ clip: true
+
+ Rectangle {
+ id: rect
+ anchors.fill: parent
+ // Go one pixel larger than our parent so that we can hide our one pixel frame
+ // that the shadow is created from.
+ anchors.margins: -1
+ color: "transparent"
+ border.color: "black"
+ visible: false
+ }
+
+ DropShadow {
+ anchors.fill: rect
+ source: rect
+ samples: 15
+ spread: 0.45
+ cached: true
+ }
+ }
+
+ /*!
+ The separator between each column.
+
+ The \l {Item::}{implicitWidth} property must be set, and should be the
+ same value for each separator.
+ */
+ property Component separator: Canvas {
+ implicitWidth: Math.max(10, Math.round(TextSingleton.implicitHeight * 0.4))
+
+ onPaint: {
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ ctx.fillStyle = "#11000000";
+ ctx.fillRect(0, 0, width, height);
+ ctx.fillStyle = "#11000000";
+ ctx.fillRect(width * 0.2, 0, width * 0.6, height);
+ ctx.fillStyle = "#66000000";
+ ctx.fillRect(width * 0.4, 0, width * 0.2, height);
+ }
+ }
+
+ /*!
+ The foreground of each column.
+
+ In terms of stacking order, this component is displayed above the
+ delegate and highlight components, but below the foreground component.
+
+ \table
+ \row \li \c {readonly property int} \b styleData.column
+ \li The index of the column that contains this item.
+ \row \li \c {readonly property bool} \b styleData.activeFocus
+ \li \c true if the column that contains this item has active focus.
+
+ \endtable
+
+ Delegates for items in specific columns can be defined using
+ TumblerColumn's \l {TumblerColumn::columnForeground}{columnForeground}
+ property, which will be used instead of this component.
+ */
+ property Component columnForeground
+
+ /*!
+ The frame around the tumbler.
+
+ The \l {Item::}{implicitWidth} property must be set, and should be the
+ same value for each separator.
+ */
+ property Component frame: Canvas {
+ onPaint: {
+ // workaround for QTBUG-40792
+ var ctx = getContext("2d");
+ ctx.reset();
+
+ var cornerRadius = Math.max(2, Math.round(TextSingleton.implicitHeight * 0.2));
+ var outerLineWidth = Math.max(1, Math.round(TextSingleton.implicitHeight * 0.05));
+ var innerLineWidth = __padding - outerLineWidth;
+
+ ctx.save();
+ ctx.lineWidth = outerLineWidth;
+ ctx.beginPath();
+ ctx.roundedRect(0, 0, width, height, cornerRadius, cornerRadius);
+ ctx.roundedRect(outerLineWidth, outerLineWidth, width - outerLineWidth * 2, height - outerLineWidth * 2,
+ cornerRadius - outerLineWidth, cornerRadius - outerLineWidth);
+ ctx.clip();
+
+ ctx.beginPath();
+ ctx.rect(0, 0, width, height);
+ var gradient = ctx.createLinearGradient(width / 2, 0, width / 2, height);
+ gradient.addColorStop(0, "#33b3b3b3");
+ gradient.addColorStop(1, "#4ce6e6e6");
+ ctx.fillStyle = gradient;
+ ctx.fill();
+ ctx.restore();
+
+ // The inner stroke must account for its corner radius.
+ cornerRadius -= outerLineWidth;
+
+ ctx.save();
+ ctx.lineWidth = innerLineWidth;
+ ctx.beginPath();
+ ctx.roundedRect(outerLineWidth, outerLineWidth, width - outerLineWidth * 2, height - outerLineWidth * 2,
+ cornerRadius, cornerRadius);
+ ctx.roundedRect(outerLineWidth + innerLineWidth, outerLineWidth + innerLineWidth,
+ width - outerLineWidth * 2 - innerLineWidth * 2, height - outerLineWidth * 2 - innerLineWidth * 2,
+ cornerRadius - innerLineWidth, cornerRadius - innerLineWidth);
+ ctx.clip();
+
+ ctx.beginPath();
+ ctx.rect(0, 0, width, height);
+ gradient = ctx.createLinearGradient(width / 2, 0, width / 2, height);
+ gradient.addColorStop(0, "#4c666666");
+ gradient.addColorStop(1, "#40cccccc");
+ ctx.fillStyle = gradient;
+ ctx.fill();
+ ctx.restore();
+ }
+ }
+
+ /*!
+ The delegate provides a template defining each item instantiated in the
+ column. Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this delegate in the model.
+ \row \li \c {readonly property int} \b styleData.column
+ \li The index of the column that contains this item.
+ \row \li \c {readonly property real} \b styleData.value
+ \li The value for this delegate from the model.
+ \row \li \c {readonly property bool} \b styleData.current
+ \li \c true if this delegate is the current item.
+ \row \li \c {readonly property real} \b styleData.displacement
+ \li \c A value from \c {-visibleItemCount / 2} to
+ \c {visibleItemCount / 2} which represents how far away
+ this item is from being the current item, with \c 0 being
+ completely current.
+
+ For example, the item below will be 40% opaque when
+ it is not the current item, and transition to 100%
+ opacity when it becomes the current item:
+
+ \code
+ delegate: Text {
+ text: styleData.value
+ opacity: 0.4 + Math.max(0, 1 - Math.abs(styleData.displacement)) * 0.6
+ }
+ \endcode
+ \row \li \c {readonly property bool} \b styleData.activeFocus
+ \li \c true if the column that contains this item has active focus.
+
+ \endtable
+
+ Properties of the model are also available depending upon the type of
+ \l {qml-data-models}{Data Model}.
+
+ Delegates for items in specific columns can be defined using
+ TumblerColumn's \l {TumblerColumn::delegate}{delegate} property, which
+ will be used instead of this delegate.
+
+ The \l {Item::}{implicitHeight} property must be set, and it must be
+ the same for each delegate.
+ */
+ property Component delegate: Item {
+ implicitHeight: (control.height - padding.top - padding.bottom) / tumblerStyle.visibleItemCount
+
+ Text {
+ id: label
+ text: styleData.value
+ color: "#666666"
+ opacity: 0.4 + Math.max(0, 1 - Math.abs(styleData.displacement)) * 0.6
+ font.pixelSize: Math.round(TextSingleton.font.pixelSize * 1.25)
+ anchors.centerIn: parent
+ }
+ }
+
+ /*!
+ The delegate for the highlight of each column.
+
+ Delegates for the highlight of specific columns can be defined using
+ TumblerColumn's \l {TumblerColumn::highlight}{highlight} property,
+ which will be used instead of this delegate.
+
+ Each instance of this component has access to the following properties:
+
+ \table
+ \row \li \c {readonly property int} \b styleData.index
+ \li The index of this column in the tumbler.
+ \row \li \c {readonly property int} \b styleData.columnIndex
+ \li The index of the column that contains this highlight.
+ \row \li \c {readonly property bool} \b styleData.activeFocus
+ \li \c true if the column that contains this highlight has active focus.
+ \endtable
+ */
+ property Component highlight
+
+ /*! \internal */
+ property Component panel: Item {
+ implicitWidth: {
+ var w = (__separatorWidth * (control.columnCount - 1)) + tumblerStyle.padding.left + tumblerStyle.padding.right;
+ for (var i = 0; i < control.columnCount; ++i)
+ w += control.getColumn(i).width;
+ return w;
+ }
+ implicitHeight: TextSingleton.implicitHeight * 10 + tumblerStyle.padding.top + tumblerStyle.padding.bottom
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qmlc
new file mode 100644
index 00000000..a3a073a5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/TumblerStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down.png
new file mode 100644
index 00000000..dadd4f81
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down@2x.png
new file mode 100644
index 00000000..2829fd19
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-down@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left.png
new file mode 100644
index 00000000..7693fc72
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left@2x.png
new file mode 100644
index 00000000..0005b3e7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-left@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right.png
new file mode 100644
index 00000000..b5cb2b27
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right@2x.png
new file mode 100644
index 00000000..21b36f7b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-right@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up.png
new file mode 100644
index 00000000..d8a8247c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up@2x.png
new file mode 100644
index 00000000..1bd44d52
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/arrow-up@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button.png
new file mode 100644
index 00000000..3793f3ef
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button_down.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button_down.png
new file mode 100644
index 00000000..7b016fa9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/button_down.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check.png
new file mode 100644
index 00000000..ad1df957
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check@2x.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check@2x.png
new file mode 100644
index 00000000..3eb4ae77
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/check@2x.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/editbox.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/editbox.png
new file mode 100644
index 00000000..f0e6ee43
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/editbox.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/focusframe.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/focusframe.png
new file mode 100644
index 00000000..aad56612
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/focusframe.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/groupbox.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/groupbox.png
new file mode 100644
index 00000000..680e926a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/groupbox.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/header.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/header.png
new file mode 100644
index 00000000..aaf8f99e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/header.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/knob.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/knob.png
new file mode 100644
index 00000000..9a948fd8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/knob.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/leftanglearrow.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/leftanglearrow.png
new file mode 100644
index 00000000..1e479a3d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/leftanglearrow.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/needle.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/needle.png
new file mode 100644
index 00000000..316dad71
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/needle.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/progress-indeterminate.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/progress-indeterminate.png
new file mode 100644
index 00000000..2ff41b45
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/progress-indeterminate.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/rightanglearrow.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/rightanglearrow.png
new file mode 100644
index 00000000..52f1a241
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/rightanglearrow.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-horizontal.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-horizontal.png
new file mode 100644
index 00000000..67f582d8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-horizontal.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-transient.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-transient.png
new file mode 100644
index 00000000..34e7dd6a
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-transient.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-vertical.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-vertical.png
new file mode 100644
index 00000000..280dac50
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/scrollbar-handle-vertical.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-groove.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-groove.png
new file mode 100644
index 00000000..a9d059b7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-groove.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-handle.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-handle.png
new file mode 100644
index 00000000..0d4ee9c5
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/slider-handle.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_large.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_large.png
new file mode 100644
index 00000000..8e6a7738
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_large.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_medium.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_medium.png
new file mode 100644
index 00000000..48a24d58
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_medium.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_small.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_small.png
new file mode 100644
index 00000000..c3e86dc6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/spinner_small.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab.png
new file mode 100644
index 00000000..ce116cc6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab_selected.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab_selected.png
new file mode 100644
index 00000000..e0cb16a6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Base/images/tab_selected.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qml
new file mode 100644
index 00000000..455cafb9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qml
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Controls.Styles 1.3
+
+ApplicationWindowStyle { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qmlc
new file mode 100644
index 00000000..2c56326f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ApplicationWindowStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qml
new file mode 100644
index 00000000..b73729d7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qml
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Controls.Styles 1.1
+
+BusyIndicatorStyle { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qmlc
new file mode 100644
index 00000000..373da7a3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/BusyIndicatorStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qml
new file mode 100644
index 00000000..21fc28b3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qml
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ property Component panel: StyleItem {
+ id: styleitem
+ elementType: "button"
+ sunken: control.pressed || (control.checkable && control.checked)
+ raised: !(control.pressed || (control.checkable && control.checked))
+ hover: control.hovered
+ text: control.iconSource === "" ? "" : control.text
+ hasFocus: control.activeFocus
+ hints: control.styleHints
+ // If no icon, let the style do the drawing
+ activeControl: control.isDefault ? "default" : "f"
+
+ properties: {
+ "icon": control.__iconAction.__icon,
+ "menu": control.menu
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qmlc
new file mode 100644
index 00000000..84f2cea0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qml
new file mode 100644
index 00000000..ec22f775
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qml
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick.Controls.Styles 1.1
+
+CalendarStyle {}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qmlc
new file mode 100644
index 00000000..fc74dcd9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CalendarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qml
new file mode 100644
index 00000000..7ed68699
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qml
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ property Component panel: Item {
+ anchors.fill: parent
+
+ implicitWidth: styleitem.implicitWidth
+ implicitHeight: styleitem.implicitHeight
+ baselineOffset: styleitem.baselineOffset
+ StyleItem {
+ id: styleitem
+ elementType: "checkbox"
+ sunken: control.pressed
+ on: control.checked || control.pressed
+ hover: control.hovered
+ enabled: control.enabled
+ hasFocus: control.activeFocus && styleitem.style == "mac"
+ hints: control.styleHints
+ properties: {"partiallyChecked": (control.checkedState === Qt.PartiallyChecked) }
+ contentHeight: textitem.implicitHeight
+ contentWidth: Math.ceil(textitem.implicitWidth) + 4
+ property int indicatorWidth: pixelMetric("indicatorwidth") + (macStyle ? 2 : 4)
+ property bool macStyle: (style === "mac")
+
+ Text {
+ id: textitem
+ text: control.text
+ anchors.left: parent.left
+ anchors.leftMargin: parent.indicatorWidth
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: parent.macStyle ? 1 : 0
+ anchors.right: parent.right
+ renderType: Text.NativeRendering
+ elide: Text.ElideRight
+ enabled: control.enabled
+ color: SystemPaletteSingleton.windowText(control.enabled)
+ StyleItem {
+ elementType: "focusrect"
+ anchors.margins: -1
+ anchors.leftMargin: -2
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ width: textitem.implicitWidth + 3
+ visible: control.activeFocus
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qmlc
new file mode 100644
index 00000000..51973ebf
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qml
new file mode 100644
index 00000000..cd5ce47d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qml
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import "." as Desktop
+
+Style {
+ readonly property ComboBox control: __control
+ property int renderType: Text.NativeRendering
+ padding { top: 4 ; left: 6 ; right: 6 ; bottom:4 }
+ property Component panel: Item {
+ property bool popup: !!styleItem.styleHint("comboboxpopup")
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+ property int dropDownButtonWidth: 24
+
+ implicitWidth: 125
+ implicitHeight: styleItem.implicitHeight
+ baselineOffset: styleItem.baselineOffset
+ anchors.fill: parent
+ StyleItem {
+ id: styleItem
+
+ height: parent.height
+ width: parent.width
+ elementType: "combobox"
+ sunken: control.pressed
+ raised: !sunken
+ hover: control.hovered
+ enabled: control.enabled
+ // The style makes sure the text rendering won't overlap the decoration.
+ // In that case, 35 pixels margin in this case looks good enough. Worst
+ // case, the ellipsis will be truncated (2nd worst, not visible at all).
+ text: elidedText(control.currentText, Text.ElideRight, parent.width - 35)
+ hasFocus: control.activeFocus
+ // contentHeight as in QComboBox
+ contentHeight: Math.max(Math.ceil(textHeight("")), 14) + 2
+
+ hints: control.styleHints
+ properties: {
+ "popup": control.__popup,
+ "editable" : control.editable
+ }
+ }
+ }
+
+ property Component __popupStyle: MenuStyle {
+ __menuItemType: "comboboxitem"
+ }
+
+ property Component __dropDownStyle: Style {
+ id: dropDownStyleRoot
+ property int __maxPopupHeight: 600
+ property int submenuOverlap: 0
+ property int submenuPopupDelay: 0
+
+ property Component frame: StyleItem {
+ elementType: "frame"
+ Component.onCompleted: {
+ var defaultFrameWidth = pixelMetric("defaultframewidth")
+ dropDownStyleRoot.padding.left = defaultFrameWidth
+ dropDownStyleRoot.padding.right = defaultFrameWidth
+ dropDownStyleRoot.padding.top = defaultFrameWidth
+ dropDownStyleRoot.padding.bottom = defaultFrameWidth
+ }
+ }
+
+ property Component menuItemPanel: StyleItem {
+ elementType: "itemrow"
+ selected: styleData.selected
+
+ implicitWidth: textItem.implicitWidth
+ implicitHeight: textItem.implicitHeight
+
+ StyleItem {
+ id: textItem
+ elementType: "item"
+ contentWidth: textWidth(text)
+ contentHeight: textHeight(text)
+ text: styleData.text
+ selected: parent ? parent.selected : false
+ }
+ }
+
+ property Component __scrollerStyle: Desktop.ScrollViewStyle { }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qmlc
new file mode 100644
index 00000000..2d6ed8a2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml
new file mode 100644
index 00000000..59f52e60
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype FocusFrameStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+*/
+StyleItem {
+ property int margin: -3
+ anchors.fill: parent
+ elementType: "focusframe"
+}
+
+
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qmlc
new file mode 100644
index 00000000..8fd3f9f9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml
new file mode 100644
index 00000000..b3128933
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+
+Style {
+ readonly property GroupBox control: __control
+
+ property var __style: StyleItem { id: style }
+ property int titleHeight: 18
+
+ Component.onCompleted: {
+ var stylename = __style.style
+ if (stylename.indexOf("windows") > -1)
+ titleHeight = 9
+ }
+
+ padding {
+ top: Math.round(Settings.dpiScaleFactor * (control.title.length > 0 || control.checkable ? titleHeight : 0) + (style.style == "mac" ? 9 : 6))
+ left: Math.round(Settings.dpiScaleFactor * 8)
+ right: Math.round(Settings.dpiScaleFactor * 8)
+ bottom: Math.round(Settings.dpiScaleFactor * 7 + (style.style.indexOf("windows") > -1 ? 2 : 0))
+ }
+
+ property Component panel: StyleItem {
+ anchors.fill: parent
+ id: styleitem
+ elementType: "groupbox"
+ text: control.title
+ on: control.checked
+ hasFocus: control.__checkbox.activeFocus
+ activeControl: control.checkable ? "checkbox" : ""
+ properties: { "checkable" : control.checkable , "sunken" : !control.flat}
+ border {top: 32 ; bottom: 8}
+ Accessible.role: Accessible.Grouping
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qmlc
new file mode 100644
index 00000000..04b57990
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qml
new file mode 100644
index 00000000..8e517c8a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import "." as Desktop
+
+Style {
+ id: styleRoot
+
+ property Component background: StyleItem {
+ elementType: "menubar"
+
+ Component.onCompleted: {
+ styleRoot.padding.left = pixelMetric("menubarhmargin") + pixelMetric("menubarpanelwidth")
+ styleRoot.padding.right = pixelMetric("menubarhmargin") + pixelMetric("menubarpanelwidth")
+ styleRoot.padding.top = pixelMetric("menubarvmargin") + pixelMetric("menubarpanelwidth")
+ styleRoot.padding.bottom = pixelMetric("menubarvmargin") + pixelMetric("menubarpanelwidth")
+ }
+ }
+
+ property Component itemDelegate: StyleItem {
+ elementType: "menubaritem"
+
+ text: styleData.text
+ property string plainText: StyleHelpers.removeMnemonics(text)
+ contentWidth: textWidth(plainText)
+ contentHeight: textHeight(plainText)
+ width: implicitWidth
+
+ enabled: styleData.enabled
+ sunken: styleData.open
+ selected: (parent && styleData.selected) || sunken
+
+ hints: { "showUnderlined": styleData.underlineMnemonic }
+ }
+
+ property Component menuStyle: Desktop.MenuStyle { }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qmlc
new file mode 100644
index 00000000..c2d86be3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qml
new file mode 100644
index 00000000..282860ae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Window 2.1
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ id: styleRoot
+
+ property string __menuItemType: "menuitem"
+
+ property int submenuOverlap: 0
+ property int submenuPopupDelay: 0
+ property int __maxPopupHeight: 0
+
+ property Component frame: StyleItem {
+ elementType: "menu"
+
+ Rectangle {
+ visible: anchors.margins > 0
+ anchors {
+ fill: parent
+ margins: pixelMetric("menupanelwidth")
+ }
+ color: SystemPaletteSingleton.window(control.enabled)
+ }
+
+ Component.onCompleted: {
+ var menuHMargin = pixelMetric("menuhmargin")
+ var menuVMargin = pixelMetric("menuvmargin")
+ var menuPanelWidth = pixelMetric("menupanelwidth")
+ styleRoot.padding.left = menuHMargin + menuPanelWidth
+ styleRoot.padding.right = menuHMargin + menuPanelWidth
+ styleRoot.padding.top = menuVMargin + menuPanelWidth
+ styleRoot.padding.bottom = menuVMargin + menuPanelWidth
+ styleRoot.submenuOverlap = 2 * menuPanelWidth
+ styleRoot.submenuPopupDelay = styleHint("submenupopupdelay")
+ }
+
+ // ### The Screen attached property can only be set on an Item,
+ // ### and will get its values only when put on a Window.
+ readonly property int desktopAvailableHeight: Screen.desktopAvailableHeight
+ Qml.Binding {
+ target: styleRoot
+ property: "__maxPopupHeight"
+ value: desktopAvailableHeight * 0.99
+ restoreMode: Binding.RestoreBinding
+ }
+ }
+
+ property Component menuItemPanel: StyleItem {
+ elementType: __menuItemType
+
+ text: styleData.text
+ property string textAndShorcut: text + (styleData.shortcut ? "\t" + styleData.shortcut : "")
+ contentWidth: textWidth(textAndShorcut)
+ contentHeight: textHeight(textAndShorcut)
+
+ enabled: styleData.enabled
+ selected: styleData.selected
+ on: styleData.checkable && styleData.checked
+
+ hints: { "showUnderlined": styleData.underlineMnemonic }
+
+ properties: {
+ "checkable": styleData.checkable,
+ "exclusive": styleData.exclusive,
+ "shortcut": styleData.shortcut,
+ "type": styleData.type,
+ "scrollerDirection": styleData.scrollerDirection,
+ "icon": !!__menuItem && __menuItem.__icon
+ }
+ }
+
+ property Component scrollIndicator: menuItemPanel
+
+ property Component __scrollerStyle: null
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qmlc
new file mode 100644
index 00000000..e1c94ea4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/MenuStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qml
new file mode 100644
index 00000000..aa44b1ae
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ property Component panel: StyleItem {
+ anchors.fill: parent
+ elementType: "progressbar"
+ // XXX: since desktop uses int instead of real, the progressbar
+ // range [0..1] must be stretched to a good precision
+ property int factor : 1000
+ property int decimals: 3
+ value: indeterminate ? 0 : control.value.toFixed(decimals) * factor // does indeterminate value need to be 1 on windows?
+ minimum: indeterminate ? 0 : control.minimumValue.toFixed(decimals) * factor
+ maximum: indeterminate ? 0 : control.maximumValue.toFixed(decimals) * factor
+ enabled: control.enabled
+ horizontal: control.orientation === Qt.Horizontal
+ hints: control.styleHints
+ contentWidth: horizontal ? 200 : 23
+ contentHeight: horizontal ? 23 : 200
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qmlc
new file mode 100644
index 00000000..239933b1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qml
new file mode 100644
index 00000000..c2173878
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qml
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ readonly property RadioButton control: __control
+ property Component panel: Item {
+ anchors.fill: parent
+
+ implicitWidth: styleitem.implicitWidth
+ implicitHeight: styleitem.implicitHeight
+ baselineOffset: styleitem.baselineOffset
+
+ StyleItem {
+ id: styleitem
+ elementType: "radiobutton"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: macStyle ? -1 : 0
+ sunken: control.pressed
+ on: control.checked || control.pressed
+ hover: control.hovered
+ enabled: control.enabled
+ hasFocus: control.activeFocus && styleitem.style == "mac"
+ hints: control.styleHints
+ contentHeight: textitem.implicitHeight
+ contentWidth: Math.ceil(textitem.implicitWidth) + 4
+ property int indicatorWidth: pixelMetric("indicatorwidth") + (macStyle ? 2 : 4)
+ property bool macStyle: (style === "mac")
+
+ Text {
+ id: textitem
+ text: control.text
+ anchors.left: parent.left
+ anchors.leftMargin: parent.indicatorWidth
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: parent.macStyle ? 2 : 0
+ anchors.right: parent.right
+ renderType: Text.NativeRendering
+ elide: Text.ElideRight
+ enabled: control.enabled
+ color: SystemPaletteSingleton.windowText(control.enabled)
+ StyleItem {
+ elementType: "focusrect"
+ anchors.margins: -1
+ anchors.leftMargin: -2
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ width: textitem.implicitWidth + 3
+ visible: control.activeFocus
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qmlc
new file mode 100644
index 00000000..dfcf4722
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qml
new file mode 100644
index 00000000..5fd6e322
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qml
@@ -0,0 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+pragma Singleton
+import QtQuick.Controls.Private 1.0
+StyleItem {
+ elementType: "itemrow"
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qmlc
new file mode 100644
index 00000000..abc54eba
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/RowItemSingleton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qml
new file mode 100644
index 00000000..d8677384
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qml
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ id: root
+
+ padding {
+ property int frameWidth: __styleitem.pixelMetric("defaultframewidth")
+ left: frameWidth
+ top: frameWidth
+ bottom: frameWidth
+ right: frameWidth
+ }
+
+ property StyleItem __styleitem: StyleItem { elementType: "frame" }
+
+ property Component frame: StyleItem {
+ id: styleitem
+ elementType: "frame"
+ sunken: true
+ visible: control.frameVisible
+ textureHeight: 64
+ textureWidth: 64
+ border {
+ top: 16
+ left: 16
+ right: 16
+ bottom: 16
+ }
+ }
+
+ property Component corner: StyleItem { elementType: "scrollareacorner" }
+
+ readonly property bool __externalScrollBars: __styleitem.styleHint("externalScrollBars")
+ readonly property int __scrollBarSpacing: __styleitem.pixelMetric("scrollbarspacing")
+ readonly property bool scrollToClickedPosition: __styleitem.styleHint("scrollToClickPosition") !== 0
+ property bool transientScrollBars: false
+
+ readonly property int __wheelScrollLines: __styleitem.styleHint("wheelScrollLines")
+
+ property Component __scrollbar: StyleItem {
+ anchors.fill:parent
+ elementType: "scrollbar"
+ hover: activeControl != "none"
+ activeControl: "none"
+ sunken: __styleData.upPressed | __styleData.downPressed | __styleData.handlePressed
+ minimum: __control.minimumValue
+ maximum: __control.maximumValue
+ value: __control.value
+ horizontal: __styleData.horizontal
+ enabled: __control.enabled
+
+ implicitWidth: horizontal ? 200 : pixelMetric("scrollbarExtent")
+ implicitHeight: horizontal ? pixelMetric("scrollbarExtent") : 200
+
+ onIsTransientChanged: root.transientScrollBars = isTransient
+ }
+
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qmlc
new file mode 100644
index 00000000..f122c1fe
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qml
new file mode 100644
index 00000000..bba9d54d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ readonly property Item control: __control
+ property Component panel: StyleItem {
+ elementType: "slider"
+ sunken: control.pressed
+ implicitWidth: 200
+ contentHeight: horizontal ? 22 : 200
+ contentWidth: horizontal ? 200 : 22
+
+ maximum: control.maximumValue*100
+ minimum: control.minimumValue*100
+ step: control.stepSize*100
+ value: control.__handlePos*100
+ horizontal: control.orientation === Qt.Horizontal
+ enabled: control.enabled
+ hasFocus: control.activeFocus
+ hover: control.hovered
+ hints: control.styleHints
+ activeControl: control.tickmarksEnabled ? "ticks" : ""
+ property int handleWidth: 15
+ property int handleHeight: 15
+ }
+ padding { top: 0 ; left: 0 ; right: 0 ; bottom: 0 }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qmlc
new file mode 100644
index 00000000..22ed7857
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SliderStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qml
new file mode 100644
index 00000000..50e13ab4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qml
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ readonly property SpinBox control: __control
+
+ padding {
+ top: control.__panel ? control.__panel.topPadding + (styleitem.style === "mac" ? 2 : 0) : 0
+ left: control.__panel ? control.__panel.leftPadding : 0
+ right: control.__panel ? control.__panel.rightPadding : 0
+ bottom: control.__panel ? control.__panel.bottomPadding : 0
+ }
+ StyleItem {id: styleitem ; visible: false}
+
+ property int renderType: Text.NativeRendering
+
+ property Component panel: Item {
+ id: style
+
+ property rect upRect
+ property rect downRect
+
+ property int horizontalAlignment: Qt.platform.os === "osx" ? Qt.AlignRight : Qt.AlignLeft
+ property int verticalAlignment: Qt.AlignVCenter
+
+ property alias font: styleitem.font
+
+ property color foregroundColor: SystemPaletteSingleton.text(control.enabled)
+ property color backgroundColor: SystemPaletteSingleton.base(control.enabled)
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+ property int topPadding: edit.anchors.topMargin
+ property int leftPadding: 3 + edit.anchors.leftMargin
+ property int rightPadding: 3 + edit.anchors.rightMargin
+ property int bottomPadding: edit.anchors.bottomMargin
+
+ width: 100
+ height: styleitem.implicitHeight
+
+ implicitWidth: 2 + styleitem.implicitWidth
+ implicitHeight: styleitem.implicitHeight
+ baselineOffset: styleitem.baselineOffset
+
+ Item {
+ id: edit
+ anchors.fill: parent
+ FocusFrame {
+ anchors.fill: parent
+ focusMargin:-6
+ visible: spinbox.activeFocus && styleitem.styleHint("focuswidget")
+ }
+ }
+
+ function updateRect() {
+ style.upRect = styleitem.subControlRect("up");
+ style.downRect = styleitem.subControlRect("down");
+ var inputRect = styleitem.subControlRect("edit");
+ edit.anchors.topMargin = inputRect.y
+ edit.anchors.leftMargin = inputRect.x
+ edit.anchors.rightMargin = style.width - inputRect.width - edit.anchors.leftMargin
+ edit.anchors.bottomMargin = style.height - inputRect.height - edit.anchors.topMargin
+ }
+
+ Component.onCompleted: updateRect()
+ onWidthChanged: updateRect()
+ onHeightChanged: updateRect()
+
+ StyleItem {
+ id: styleitem
+ elementType: "spinbox"
+ anchors.fill: parent
+ sunken: (styleData.downEnabled && styleData.downPressed) || (styleData.upEnabled && styleData.upPressed)
+ hover: control.hovered
+ hints: control.styleHints
+ hasFocus: control.activeFocus
+ enabled: control.enabled
+ value: (styleData.upPressed ? 1 : 0) |
+ (styleData.downPressed ? 1<<1 : 0) |
+ (styleData.upEnabled ? (1<<2) : 0) |
+ (styleData.downEnabled ? (1<<3) : 0)
+ contentWidth: styleData.contentWidth
+ contentHeight: styleData.contentHeight
+ textureHeight: implicitHeight
+ border {top: 6 ; bottom: 6}
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qmlc
new file mode 100644
index 00000000..5168139f
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qml
new file mode 100644
index 00000000..744cff35
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype StatusBarStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+*/
+Style {
+
+ padding.left: 4
+ padding.right: 4
+ padding.top: 3
+ padding.bottom: 2
+
+ property Component panel: StyleItem {
+ implicitHeight: 16
+ implicitWidth: 200
+ anchors.fill: parent
+ elementType: "statusbar"
+ textureWidth: 64
+ border {left: 16 ; right: 16}
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qmlc
new file mode 100644
index 00000000..fc7ebc94
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qml
new file mode 100644
index 00000000..719b6331
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qml
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+
+SwitchStyle {
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qmlc
new file mode 100644
index 00000000..6cb34cfc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/SwitchStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qml
new file mode 100644
index 00000000..c571e220
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qml
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+Style {
+ id: root
+
+ property bool tabsMovable: false
+ property int tabsAlignment: __barstyle.styleHint("tabbaralignment") === "center" ? Qt.AlignHCenter : Qt.AlignLeft;
+ property int tabOverlap: __barstyle.pixelMetric("taboverlap");
+ property int frameOverlap: __barstyle.pixelMetric("tabbaseoverlap");
+
+ property StyleItem __barstyle: StyleItem {
+ elementType: "tab"
+ properties: { "tabposition" : (control.tabPosition === Qt.TopEdge ? "Top" : "Bottom") }
+ visible: false
+ }
+
+ property Component frame: StyleItem {
+ id: styleitem
+ anchors.fill: parent
+ anchors.topMargin: 1//stack.baseOverlap
+ z: style == "oxygen" ? 1 : 0
+ elementType: "tabframe"
+ value: tabbarItem && tabsVisible && tabbarItem.tab(currentIndex) ? tabbarItem.tab(currentIndex).x : 0
+ minimum: tabbarItem && tabsVisible && tabbarItem.tab(currentIndex) ? tabbarItem.tab(currentIndex).width : 0
+ maximum: tabbarItem && tabsVisible ? tabbarItem.width : width
+ properties: { "selectedTabRect" : tabbarItem.__selectedTabRect, "orientation" : control.tabPosition }
+ hints: control.styleHints
+ Component.onCompleted: {
+ stack.frameWidth = styleitem.pixelMetric("defaultframewidth");
+ stack.style = style;
+ }
+ border{
+ top: 16
+ bottom: 16
+ }
+ textureHeight: 64
+ }
+
+ property Component tab: Item {
+ id: item
+ property string tabpos: control.count === 1 ? "only" : index === 0 ? "beginning" : index === control.count - 1 ? "end" : "middle"
+ property string selectedpos: styleData.nextSelected ? "next" : styleData.previousSelected ? "previous" : ""
+ property string orientation: control.tabPosition === Qt.TopEdge ? "Top" : "Bottom"
+ property int tabHSpace: __barstyle.pixelMetric("tabhspace");
+ property int tabVSpace: __barstyle.pixelMetric("tabvspace");
+ property int totalOverlap: tabOverlap * (control.count - 1)
+ property real maxTabWidth: control.count > 0 ? (control.width + totalOverlap) / control.count : 0
+ implicitWidth: Math.min(maxTabWidth, Math.max(50, styleitem.textWidth(styleData.title)) + tabHSpace + 2)
+ implicitHeight: Math.max(styleitem.font.pixelSize + tabVSpace + 6, 0)
+
+ StyleItem {
+ id: styleitem
+
+ elementType: "tab"
+ paintMargins: style === "mac" ? 0 : 2
+
+ anchors.fill: parent
+ anchors.topMargin: style === "mac" ? 2 : 0
+ anchors.rightMargin: -paintMargins
+ anchors.bottomMargin: -1
+ anchors.leftMargin: -paintMargins + (style === "mac" && selected ? -1 : 0)
+ properties: { "hasFrame" : true, "orientation": orientation, "tabpos": tabpos, "selectedpos": selectedpos }
+ hints: control.styleHints
+
+ enabled: styleData.enabled
+ selected: styleData.selected
+ text: elidedText(styleData.title, tabbarItem.elide, item.width - item.tabHSpace)
+ hover: styleData.hovered
+ hasFocus: tabbarItem.activeFocus && selected
+ }
+ }
+
+ property Component leftCorner: null
+ property Component rightCorner: null
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qmlc
new file mode 100644
index 00000000..fd82b889
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qml
new file mode 100644
index 00000000..6c008b30
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qml
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import "."
+
+ScrollViewStyle {
+ id: root
+
+ readonly property BasicTableView control: __control
+ property int __indentation: 8
+ property bool activateItemOnSingleClick: __styleitem.styleHint("activateItemOnSingleClick")
+ property color textColor: __styleitem.textColor
+ property color backgroundColor: SystemPaletteSingleton.base(control.enabled)
+ property color highlightedTextColor: __styleitem.highlightedTextColor
+
+ property StyleItem __styleitem: StyleItem{
+ property color textColor: styleHint("textColor")
+ property color highlightedTextColor: styleHint("highlightedTextColor")
+ elementType: "item"
+ visible: false
+ active: control.activeFocus
+ onActiveChanged: {
+ highlightedTextColor = styleHint("highlightedTextColor")
+ textColor = styleHint("textColor")
+ }
+ }
+
+ property Component headerDelegate: StyleItem {
+ elementType: "header"
+ activeControl: itemSort
+ raised: true
+ sunken: styleData.pressed
+ text: styleData.value
+ hover: styleData.containsMouse
+ hints: control.styleHints
+ properties: {"headerpos": headerPosition, "textalignment": styleData.textAlignment}
+ property string itemSort: (control.sortIndicatorVisible && styleData.column === control.sortIndicatorColumn) ? (control.sortIndicatorOrder == Qt.AscendingOrder ? "up" : "down") : "";
+ property string headerPosition: !styleData.resizable && control.columnCount === 1 ? "only" :
+ !styleData.resizable && styleData.column === control.columnCount-1 ? "end" :
+ styleData.column === 0 ? "beginning" : ""
+ }
+
+ property Component rowDelegate: BorderImage {
+ visible: styleData.selected || styleData.alternate
+ source: "image://__tablerow/" + (styleData.alternate ? "alternate_" : "")
+ + (styleData.selected ? "selected_" : "")
+ + (control.activeFocus ? "active" : "")
+ height: Math.max(16, RowItemSingleton.implicitHeight)
+ border.left: 4 ; border.right: 4
+ }
+
+ property Component itemDelegate: Item {
+ height: Math.max(16, label.implicitHeight)
+ property int implicitWidth: label.implicitWidth + 16
+
+ Text {
+ id: label
+ objectName: "label"
+ width: parent.width
+ font: __styleitem.font
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: styleData.hasOwnProperty("depth") && styleData.column === 0 ? 0 :
+ horizontalAlignment === Text.AlignRight ? 1 : 8
+ anchors.rightMargin: (styleData.hasOwnProperty("depth") && styleData.column === 0)
+ || horizontalAlignment !== Text.AlignRight ? 1 : 8
+ horizontalAlignment: styleData.textAlignment
+ anchors.verticalCenter: parent.verticalCenter
+ elide: styleData.elideMode
+ text: styleData.value !== undefined ? styleData.value : ""
+ color: styleData.textColor
+ renderType: Text.NativeRendering
+ }
+ }
+
+ property Component __branchDelegate: null
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qmlc
new file mode 100644
index 00000000..ef696ee9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TableViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qml
new file mode 100644
index 00000000..8a39f8ab
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+ScrollViewStyle {
+ property font font: __styleitem.font
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+ property color backgroundColor: control.backgroundVisible ? SystemPaletteSingleton.base(control.enabled) : "transparent"
+
+ property StyleItem __styleitem: StyleItem{
+ elementType: "edit"
+ visible: false
+ active: control.activeFocus
+ }
+
+ property int renderType: Text.NativeRendering
+ property real textMargin: 4
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qmlc
new file mode 100644
index 00000000..9d9ae51e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextAreaStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qml
new file mode 100644
index 00000000..fd58d344
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ property int renderType: Text.NativeRendering
+
+ property Component panel: StyleItem {
+ id: textfieldstyle
+ elementType: "edit"
+ anchors.fill: parent
+
+ sunken: true
+ hasFocus: control.activeFocus
+ hover: hovered
+ hints: control.styleHints
+
+ property color textColor: SystemPaletteSingleton.text(control.enabled)
+ property color placeholderTextColor: "darkGray"
+ property color selectionColor: SystemPaletteSingleton.highlight(control.enabled)
+ property color selectedTextColor: SystemPaletteSingleton.highlightedText(control.enabled)
+
+
+ property bool rounded: !!hints["rounded"]
+ property int topMargin: style === "mac" ? 3 : 2
+ property int leftMargin: rounded ? 12 : 4
+ property int rightMargin: leftMargin
+ property int bottomMargin: 2
+
+ contentWidth: 100
+ // Form QLineEdit::sizeHint
+ contentHeight: Math.max(control.__contentHeight, 16)
+
+ FocusFrame {
+ anchors.fill: parent
+ visible: textfield.activeFocus && textfieldstyle.styleHint("focuswidget") && !rounded
+ }
+ textureHeight: implicitHeight
+ textureWidth: 32
+ border {top: 8 ; bottom: 8 ; left: 8 ; right: 8}
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qmlc
new file mode 100644
index 00000000..798a64c7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qml
new file mode 100644
index 00000000..fe1840ab
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype StatusBarStyle
+ \internal
+ \inqmlmodule QtQuick.Controls.Styles
+*/
+Style {
+
+ padding.left: 6
+ padding.right: 6
+ padding.top: 1
+ padding.bottom: style.style === "mac" ? 1 : style.style === "fusion" ? 3 : 2
+
+ StyleItem { id: style ; visible: false}
+
+ property Component panel: StyleItem {
+ id: toolbar
+ anchors.fill: parent
+ elementType: "toolbar"
+ textureWidth: 64
+ border {left: 16 ; right: 16}
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qmlc
new file mode 100644
index 00000000..904f9fe6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qml
new file mode 100644
index 00000000..a4e15465
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+Style {
+ property Component panel: StyleItem {
+ id: styleitem
+
+ anchors.fill: parent
+ elementType: "toolbutton"
+ on: control.checkable && control.checked
+ sunken: control.pressed
+ raised: !(control.checkable && control.checked) && control.hovered
+ hover: control.hovered
+ hasFocus: control.activeFocus
+ hints: control.styleHints
+ text: control.text
+
+ properties: {
+ "icon": control.__iconAction.__icon,
+ "position": control.__position,
+ "menu" : control.menu !== null
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qmlc
new file mode 100644
index 00000000..81644110
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qml
new file mode 100644
index 00000000..3ec6073a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Private 1.0
+import "." as Desktop
+
+Desktop.TableViewStyle {
+ id: root
+
+ __indentation: 12
+
+ __branchDelegate: StyleItem {
+ id: si
+ elementType: "itembranchindicator"
+ properties: {
+ "hasChildren": styleData.hasChildren,
+ "hasSibling": styleData.hasSibling && !styleData.isExpanded
+ }
+ on: styleData.isExpanded
+ selected: styleData.selected
+ hasFocus: __styleitem.active
+
+ Component.onCompleted: {
+ root.__indentation = si.pixelMetric("treeviewindentation")
+ implicitWidth = root.__indentation
+ implicitHeight = implicitWidth
+ var rect = si.subControlRect("dummy");
+ width = rect.width
+ height = rect.height
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qmlc
new file mode 100644
index 00000000..ca18c852
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/TreeViewStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/qmldir
new file mode 100644
index 00000000..1b691871
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Desktop/qmldir
@@ -0,0 +1,2 @@
+singleton RowItemSingleton 1.0 RowItemSingleton.qml
+designersupported
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/plugins.qmltypes
new file mode 100644
index 00000000..e69de29b
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qmldir
new file mode 100644
index 00000000..2fe49220
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qmldir
@@ -0,0 +1,4 @@
+module QtQuick.Controls.Styles.Flat
+plugin qtquickextrasflatplugin
+classname QtQuickExtrasStylesPlugin
+depends QtQml 2.14
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qtquickextrasflatplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qtquickextrasflatplugin.dll
new file mode 100644
index 00000000..347bc6fd
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/Flat/qtquickextrasflatplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/qmldir
new file mode 100644
index 00000000..4b2f9844
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Styles/qmldir
@@ -0,0 +1,38 @@
+module QtQuick.Controls.Styles
+ApplicationWindowStyle 1.3 Base/ApplicationWindowStyle.qml
+ButtonStyle 1.0 Base/ButtonStyle.qml
+BusyIndicatorStyle 1.1 Base/BusyIndicatorStyle.qml
+CalendarStyle 1.1 Base/CalendarStyle.qml
+CheckBoxStyle 1.0 Base/CheckBoxStyle.qml
+ComboBoxStyle 1.0 Base/ComboBoxStyle.qml
+MenuStyle 1.2 Base/MenuStyle.qml
+MenuBarStyle 1.2 Base/MenuBarStyle.qml
+ProgressBarStyle 1.0 Base/ProgressBarStyle.qml
+RadioButtonStyle 1.0 Base/RadioButtonStyle.qml
+ScrollViewStyle 1.0 Base/ScrollViewStyle.qml
+SliderStyle 1.0 Base/SliderStyle.qml
+SpinBoxStyle 1.1 Base/SpinBoxStyle.qml
+SwitchStyle 1.1 Base/SwitchStyle.qml
+TabViewStyle 1.0 Base/TabViewStyle.qml
+TableViewStyle 1.0 Base/TableViewStyle.qml
+TreeViewStyle 1.4 Base/TreeViewStyle.qml
+TextAreaStyle 1.1 Base/TextAreaStyle.qml
+TextFieldStyle 1.0 Base/TextFieldStyle.qml
+ToolBarStyle 1.0 Base/ToolBarStyle.qml
+StatusBarStyle 1.0 Base/StatusBarStyle.qml
+
+CircularGaugeStyle 1.0 Base/CircularGaugeStyle.qml
+CircularButtonStyle 1.0 Base/CircularButtonStyle.qml
+CircularTickmarkLabelStyle 1.0 Base/CircularTickmarkLabelStyle.qml
+CommonStyleHelper 1.0 Base/CommonStyleHelper.qml
+DelayButtonStyle 1.0 Base/DelayButtonStyle.qml
+DialStyle 1.1 Base/DialStyle.qml
+GaugeStyle 1.0 Base/GaugeStyle.qml
+HandleStyle 1.0 Base/HandleStyle.qml
+HandleStyleHelper 1.0 Base/HandleStyleHelper.qml
+PieMenuStyle 1.3 Base/PieMenuStyle.qml
+StatusIndicatorStyle 1.1 Base/StatusIndicatorStyle.qml
+ToggleButtonStyle 1.0 Base/ToggleButtonStyle.qml
+TumblerStyle 1.2 Base/TumblerStyle.qml
+
+designersupported
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qml
new file mode 100644
index 00000000..b33f7d00
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qml
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype Switch
+ \inqmlmodule QtQuick.Controls
+ \since 5.2
+ \ingroup controls
+ \brief A switch.
+
+ \image switch.png
+ \caption On and Off states of a Switch.
+
+ A Switch is a toggle button that can be switched on (checked) or off
+ (unchecked). Switches are typically used to represent features in an
+ application that can be enabled or disabled without affecting others.
+
+ On mobile platforms, switches are commonly used to enable or disable
+ features.
+
+ \qml
+ Column {
+ Switch { checked: true }
+ Switch { checked: false }
+ }
+ \endqml
+
+ You can create a custom appearance for a Switch by
+ assigning a \l {SwitchStyle}.
+*/
+
+Control {
+ id: root
+
+ /*!
+ This property is \c true if the control is checked.
+ The default value is \c false.
+ */
+ property bool checked: false
+
+ /*!
+ \qmlproperty bool Switch::pressed
+ \since QtQuick.Controls 1.3
+
+ This property is \c true when the control is pressed.
+ */
+ readonly property alias pressed: internal.pressed
+
+ /*!
+ This property is \c true if the control takes the focus when it is
+ pressed; \l{QQuickItem::forceActiveFocus()}{forceActiveFocus()} will be
+ called on the control.
+ */
+ property bool activeFocusOnPress: false
+
+ /*!
+ This property stores the ExclusiveGroup that the control belongs to.
+ */
+ property ExclusiveGroup exclusiveGroup: null
+
+ /*!
+ \since QtQuick.Controls 1.3
+
+ This signal is emitted when the control is clicked.
+ */
+ signal clicked
+
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Space && !event.isAutoRepeat)
+ checked = !checked;
+ }
+
+ /*! \internal */
+ onExclusiveGroupChanged: {
+ if (exclusiveGroup)
+ exclusiveGroup.bindCheckable(root)
+ }
+
+ MouseArea {
+ id: internal
+
+ property Item handle: __panel.__handle
+ property int min: __panel.min
+ property int max: __panel.max
+ focus: true
+ anchors.fill: parent
+ drag.threshold: 0
+ drag.target: handle
+ drag.axis: Drag.XAxis
+ drag.minimumX: min
+ drag.maximumX: max
+
+ onPressed: {
+ if (activeFocusOnPress)
+ root.forceActiveFocus()
+ }
+
+ onReleased: {
+ if (drag.active) {
+ checked = (handle.x < max/2) ? false : true;
+ internal.handle.x = checked ? internal.max : internal.min
+ } else {
+ checked = (handle.x === max) ? false : true
+ }
+ }
+
+ onClicked: root.clicked()
+ }
+
+ onCheckedChanged: {
+ if (internal.handle)
+ internal.handle.x = checked ? internal.max : internal.min
+ }
+
+ activeFocusOnTab: true
+ Accessible.role: Accessible.CheckBox
+ Accessible.name: "switch"
+
+ /*!
+ The style that should be applied to the switch. Custom style
+ components can be created with:
+
+ \codeline Qt.createComponent("path/to/style.qml", switchId);
+ */
+ style: Settings.styleComponent(Settings.style, "SwitchStyle.qml", root)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qmlc
new file mode 100644
index 00000000..feb134de
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Switch.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qml
new file mode 100644
index 00000000..657d389c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qml
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+/*!
+ \qmltype Tab
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup viewaddons
+ \ingroup controls
+ \brief Tab represents the content of a tab in a TabView.
+
+ A Tab item inherits from Loader and provides a similar
+ API.
+
+ Tabs are lazily loaded; only tabs that have been made current (for example,
+ by clicking on them) will have valid content. You can force loading of tabs
+ by setting the active property to \c true:
+
+ \code
+ Tab {
+ active: true
+ }
+ \endcode
+
+ \sa TabView
+*/
+
+Loader {
+ id: tab
+ anchors.fill: parent
+
+ /*! This property holds the title of the tab. */
+ property string title
+
+ /*! \internal */
+ property bool __inserted: false
+
+ Accessible.role: Accessible.LayeredPane
+ active: false
+ visible: false
+
+ activeFocusOnTab: false
+
+ onVisibleChanged: if (visible) active = true
+
+ /*! \internal */
+ default property alias component: tab.sourceComponent
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qmlc
new file mode 100644
index 00000000..f820b75e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/Tab.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qml
new file mode 100644
index 00000000..2579636f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qml
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TabView
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup views
+ \ingroup controls
+ \brief A control that allows the user to select one of multiple stacked items.
+
+ \image tabview.png
+
+ TabView provides tab-based navigation model for your application.
+ For example, the following snippet uses tabs to present rectangles of
+ different color on each tab page:
+
+ \qml
+ TabView {
+ Tab {
+ title: "Red"
+ Rectangle { color: "red" }
+ }
+ Tab {
+ title: "Blue"
+ Rectangle { color: "blue" }
+ }
+ Tab {
+ title: "Green"
+ Rectangle { color: "green" }
+ }
+ }
+ \endqml
+
+ \note You can create a custom appearance for a TabView by
+ assigning a \l {TabViewStyle}.
+
+ \l Tab represents the content of a tab in a TabView.
+*/
+
+FocusScope {
+ id: root
+
+ implicitWidth: 240
+ implicitHeight: 150
+
+ /*! The current tab index */
+ property int currentIndex: 0
+
+ /*! The current tab count */
+ readonly property int count: __tabs.count
+
+ /*! The visibility of the tab frame around contents */
+ property bool frameVisible: true
+
+ /*! The visibility of the tab bar */
+ property bool tabsVisible: true
+
+ /*!
+ \qmlproperty enumeration TabView::tabPosition
+
+ \list
+ \li Qt.TopEdge (default)
+ \li Qt.BottomEdge
+ \endlist
+ */
+ property int tabPosition: Qt.TopEdge
+
+ /*!
+ \qmlproperty Item TabView::contentItem
+ \since QtQuick.Controls 1.3
+
+ This property holds the content item of the tab view.
+
+ Tabs declared as children of a TabView are automatically parented to the TabView's contentItem.
+ */
+ readonly property alias contentItem: stack
+
+ /*! \internal */
+ default property alias data: stack.data
+
+ /*!
+ \qmlmethod Tab TabView::addTab(string title, Component component)
+
+ Adds a new tab with the given \a title and an optional \a component.
+
+ Returns the newly added tab.
+ */
+ function addTab(title, component) {
+ return insertTab(__tabs.count, title, component)
+ }
+
+ /*!
+ \qmlmethod Tab TabView::insertTab(int index, string title, Component component)
+
+ Inserts a new tab at \a index, with the given \a title and
+ an optional \a component.
+
+ Returns the newly added tab.
+ */
+ function insertTab(index, title, component) {
+ var tab = tabcomp.createObject()
+ tab.sourceComponent = component
+ tab.title = title
+ // insert at appropriate index first, then set the parent to
+ // avoid onChildrenChanged appending it to the end of the list
+ __tabs.insert(index, {tab: tab})
+ tab.__inserted = true
+ tab.parent = stack
+ __didInsertIndex(index)
+ __setOpacities()
+ return tab
+ }
+
+ /*! \qmlmethod void TabView::removeTab(int index)
+ Removes and destroys a tab at the given \a index. */
+ function removeTab(index) {
+ var tab = __tabs.get(index).tab
+ __willRemoveIndex(index)
+ __tabs.remove(index, 1)
+ tab.destroy()
+ __setOpacities()
+ }
+
+ /*! \qmlmethod void TabView::moveTab(int from, int to)
+ Moves a tab \a from index \a to another. */
+ function moveTab(from, to) {
+ __tabs.move(from, to, 1)
+
+ if (currentIndex == from) {
+ currentIndex = to
+ } else {
+ var start = Math.min(from, to)
+ var end = Math.max(from, to)
+ if (currentIndex >= start && currentIndex <= end) {
+ if (from < to)
+ --currentIndex
+ else
+ ++currentIndex
+ }
+ }
+ }
+
+ /*! \qmlmethod Tab TabView::getTab(int index)
+ Returns the \l Tab item at \a index. */
+ function getTab(index) {
+ var data = __tabs.get(index)
+ return data && data.tab
+ }
+
+ /*! \internal */
+ property ListModel __tabs: ListModel { }
+
+ /*! \internal */
+ property Component style: Settings.styleComponent(Settings.style, "TabViewStyle.qml", root)
+
+ /*! \internal */
+ property var __styleItem: loader.item
+
+ onCurrentIndexChanged: __setOpacities()
+
+ /*! \internal */
+ function __willRemoveIndex(index) {
+ // Make sure currentIndex will points to the same tab after the removal.
+ // Also activate the next index if the current index is being removed,
+ // except when it's both the current and last index.
+ if (count > 1 && (currentIndex > index || currentIndex == count -1))
+ --currentIndex
+ }
+ function __didInsertIndex(index) {
+ // Make sure currentIndex points to the same tab as before the insertion.
+ if (count > 1 && currentIndex >= index)
+ currentIndex++
+ }
+
+ function __setOpacities() {
+ for (var i = 0; i < __tabs.count; ++i) {
+ var child = __tabs.get(i).tab
+ child.visible = (i == currentIndex ? true : false)
+ }
+ }
+
+ activeFocusOnTab: false
+
+ Component {
+ id: tabcomp
+ Tab {}
+ }
+
+ TabBar {
+ id: tabbarItem
+ objectName: "tabbar"
+ tabView: root
+ style: loader.item
+ anchors.top: parent.top
+ anchors.left: root.left
+ anchors.right: root.right
+ }
+
+ Loader {
+ id: loader
+ z: tabbarItem.z - 1
+ sourceComponent: style
+ property var __control: root
+ }
+
+ Loader {
+ id: frameLoader
+ z: tabbarItem.z - 1
+
+ anchors.fill: parent
+ anchors.topMargin: tabPosition === Qt.TopEdge && tabbarItem && tabsVisible ? Math.max(0, tabbarItem.height - baseOverlap) : 0
+ anchors.bottomMargin: tabPosition === Qt.BottomEdge && tabbarItem && tabsVisible ? Math.max(0, tabbarItem.height -baseOverlap) : 0
+ sourceComponent: frameVisible && loader.item ? loader.item.frame : null
+
+ property int baseOverlap: __styleItem ? __styleItem.frameOverlap : 0
+
+ Item {
+ id: stack
+
+ anchors.fill: parent
+ anchors.margins: (frameVisible ? frameWidth : 0)
+ anchors.topMargin: anchors.margins + (style =="mac" ? 6 : 0)
+ anchors.bottomMargin: anchors.margins
+
+ property int frameWidth
+ property string style
+ property bool completed: false
+
+ Component.onCompleted: {
+ addTabs(stack.children)
+ completed = true
+ }
+
+ onChildrenChanged: {
+ if (completed)
+ stack.addTabs(stack.children)
+ }
+
+ function addTabs(tabs) {
+ var tabAdded = false
+ for (var i = 0 ; i < tabs.length ; ++i) {
+ var tab = tabs[i]
+ if (!tab.__inserted && tab.Accessible.role === Accessible.LayeredPane) {
+ tab.__inserted = true
+ // reparent tabs created dynamically by createObject(tabView)
+ tab.parent = stack
+ // a dynamically added tab should also get automatically removed when destructed
+ if (completed)
+ tab.Component.onDestruction.connect(stack.onDynamicTabDestroyed.bind(tab))
+ __tabs.append({tab: tab})
+ tabAdded = true
+ }
+ }
+ if (tabAdded)
+ __setOpacities()
+ }
+
+ function onDynamicTabDestroyed() {
+ for (var i = 0; i < __tabs.count; ++i) {
+ if (__tabs.get(i).tab === this) {
+ __willRemoveIndex(i)
+ __tabs.remove(i, 1)
+ __setOpacities()
+ break
+ }
+ }
+ }
+ }
+ onLoaded: { item.z = -1 }
+ }
+
+ onChildrenChanged: stack.addTabs(root.children)
+
+ states: [
+ State {
+ name: "Bottom"
+ when: tabPosition === Qt.BottomEdge && tabbarItem != undefined
+ PropertyChanges {
+ target: tabbarItem
+ anchors.topMargin: -frameLoader.baseOverlap
+ }
+ AnchorChanges {
+ target: tabbarItem
+ anchors.top: frameLoader.bottom
+ }
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qmlc
new file mode 100644
index 00000000..d74d7b65
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TabView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qml
new file mode 100644
index 00000000..1dbdafd7
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qml
@@ -0,0 +1,319 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.3
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+import QtQuick.Window 2.1
+
+BasicTableView {
+ id: root
+
+ property var model
+
+ readonly property int rowCount: __listView.count
+ property alias currentRow: root.__currentRow
+
+ signal activated(int row)
+ signal clicked(int row)
+ signal doubleClicked(int row)
+ signal pressAndHold(int row)
+
+ function positionViewAtRow(row, mode) {
+ __listView.positionViewAtIndex(row, mode)
+ }
+
+ function rowAt(x, y) {
+ var obj = root.mapToItem(__listView.contentItem, x, y)
+ return __listView.indexAt(obj.x, obj.y)
+ }
+
+ readonly property alias selection: selectionObject
+
+ style: Settings.styleComponent(Settings.style, "TableViewStyle.qml", root)
+
+ Accessible.role: Accessible.Table
+
+ // Internal stuff. Do not look
+
+ onModelChanged: selection.clear()
+
+ __viewTypeName: "TableView"
+ __model: model
+
+ __itemDelegateLoader: TableViewItemDelegateLoader {
+ __style: root.__style
+ __itemDelegate: root.itemDelegate
+ __mouseArea: mousearea
+ }
+
+ __mouseArea: MouseArea {
+ id: mousearea
+
+ parent: __listView
+ width: __listView.width
+ height: __listView.height
+ z: -1
+ propagateComposedEvents: true
+ focus: true
+
+ property bool autoincrement: false
+ property bool autodecrement: false
+ property int previousRow: 0
+ property int clickedRow: -1
+ property int dragRow: -1
+ property int firstKeyRow: -1
+ property int pressedRow: -1
+ property int pressedColumn: -1
+
+ TableViewSelection {
+ id: selectionObject
+ }
+
+ function selected(rowIndex) {
+ if (dragRow > -1 && (rowIndex >= clickedRow && rowIndex <= dragRow
+ || rowIndex <= clickedRow && rowIndex >= dragRow))
+ return selection.contains(clickedRow)
+
+ return selection.count && selection.contains(rowIndex)
+ }
+
+ onReleased: {
+ pressedRow = -1
+ pressedColumn = -1
+ autoincrement = false
+ autodecrement = false
+ var clickIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (clickIndex > -1) {
+ if (Settings.hasTouchScreen) {
+ __listView.currentIndex = clickIndex
+ mouseSelect(clickIndex, mouse.modifiers)
+ }
+ previousRow = clickIndex
+ }
+
+ if (mousearea.dragRow >= 0) {
+ selection.__select(selection.contains(mousearea.clickedRow), mousearea.clickedRow, mousearea.dragRow)
+ mousearea.dragRow = -1
+ }
+ }
+
+ function decrementCurrentIndex() {
+ __listView.decrementCurrentIndexBlocking();
+
+ var newIndex = __listView.indexAt(0, __listView.contentY)
+ if (newIndex !== -1) {
+ if (selectionMode > SelectionMode.SingleSelection)
+ mousearea.dragRow = newIndex
+ else if (selectionMode === SelectionMode.SingleSelection)
+ selection.__selectOne(newIndex)
+ }
+ }
+
+ function incrementCurrentIndex() {
+ __listView.incrementCurrentIndexBlocking();
+
+ var newIndex = Math.max(0, __listView.indexAt(0, __listView.height + __listView.contentY))
+ if (newIndex !== -1) {
+ if (selectionMode > SelectionMode.SingleSelection)
+ mousearea.dragRow = newIndex
+ else if (selectionMode === SelectionMode.SingleSelection)
+ selection.__selectOne(newIndex)
+ }
+ }
+
+ // Handle vertical scrolling whem dragging mouse outside boundraries
+ Timer {
+ running: mousearea.autoincrement && __verticalScrollBar.visible
+ repeat: true
+ interval: 20
+ onTriggered: mousearea.incrementCurrentIndex()
+ }
+
+ Timer {
+ running: mousearea.autodecrement && __verticalScrollBar.visible
+ repeat: true
+ interval: 20
+ onTriggered: mousearea.decrementCurrentIndex()
+ }
+
+ onPositionChanged: {
+ if (mouseY > __listView.height && pressed) {
+ if (autoincrement) return;
+ autodecrement = false;
+ autoincrement = true;
+ } else if (mouseY < 0 && pressed) {
+ if (autodecrement) return;
+ autoincrement = false;
+ autodecrement = true;
+ } else {
+ autoincrement = false;
+ autodecrement = false;
+ }
+
+ if (pressed && containsMouse) {
+ pressedRow = Math.max(0, __listView.indexAt(0, mouseY + __listView.contentY))
+ pressedColumn = __listView.columnAt(mouseX)
+ if (!Settings.hasTouchScreen) {
+ if (pressedRow >= 0 && pressedRow !== currentRow) {
+ __listView.currentIndex = pressedRow;
+ if (selectionMode === SelectionMode.SingleSelection) {
+ selection.__selectOne(pressedRow)
+ } else if (selectionMode > 1) {
+ dragRow = pressedRow
+ }
+ }
+ }
+ }
+ }
+
+ onClicked: {
+ var clickIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (clickIndex > -1) {
+ if (root.__activateItemOnSingleClick)
+ root.activated(clickIndex)
+ root.clicked(clickIndex)
+ }
+ }
+
+ onPressed: {
+ pressedRow = __listView.indexAt(0, mouseY + __listView.contentY)
+ pressedColumn = __listView.columnAt(mouseX)
+ __listView.forceActiveFocus()
+ if (pressedRow > -1 && !Settings.hasTouchScreen) {
+ __listView.currentIndex = pressedRow
+ mouseSelect(pressedRow, mouse.modifiers)
+ mousearea.clickedRow = pressedRow
+ }
+ }
+
+ onExited: {
+ mousearea.pressedRow = -1
+ mousearea.pressedColumn = -1
+ }
+
+ onCanceled: {
+ mousearea.pressedRow = -1
+ mousearea.pressedColumn = -1
+ }
+
+ function mouseSelect(index, modifiers) {
+ if (selectionMode) {
+ if (modifiers & Qt.ShiftModifier && (selectionMode === SelectionMode.ExtendedSelection)) {
+ selection.select(previousRow, index)
+ } else if (selectionMode === SelectionMode.MultiSelection ||
+ (selectionMode === SelectionMode.ExtendedSelection && modifiers & Qt.ControlModifier)) {
+ selection.__select(!selection.contains(index) , index)
+ } else {
+ selection.__selectOne(index)
+ }
+ }
+ }
+
+ onDoubleClicked: {
+ var clickIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (clickIndex > -1) {
+ if (!root.__activateItemOnSingleClick)
+ root.activated(clickIndex)
+ root.doubleClicked(clickIndex)
+ }
+ }
+
+ onPressAndHold: {
+ var pressIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (pressIndex > -1)
+ root.pressAndHold(pressIndex)
+ }
+
+ // Note: with boolean preventStealing we are keeping the flickable from
+ // eating our mouse press events
+ preventStealing: !Settings.hasTouchScreen
+
+ function keySelect(shiftPressed, row) {
+ if (row < 0 || row > rowCount - 1)
+ return
+ if (shiftPressed && (selectionMode >= SelectionMode.ExtendedSelection)) {
+ selection.__ranges = new Array()
+ selection.select(mousearea.firstKeyRow, row)
+ } else {
+ selection.__selectOne(row)
+ }
+ }
+
+ Keys.forwardTo: [root]
+
+ Keys.onUpPressed: {
+ event.accepted = __listView.decrementCurrentIndexBlocking()
+ if (selectionMode)
+ keySelect(event.modifiers & Qt.ShiftModifier, currentRow)
+ }
+
+ Keys.onDownPressed: {
+ event.accepted = __listView.incrementCurrentIndexBlocking()
+ if (selectionMode)
+ keySelect(event.modifiers & Qt.ShiftModifier, currentRow)
+ }
+
+ Keys.onPressed: {
+ __listView.scrollIfNeeded(event.key)
+
+ if (event.key === Qt.Key_Shift) {
+ firstKeyRow = currentRow
+ }
+
+ if (event.key === Qt.Key_A && event.modifiers & Qt.ControlModifier) {
+ if (selectionMode > 1)
+ selection.selectAll()
+ }
+ }
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Shift)
+ firstKeyRow = -1
+ }
+
+ Keys.onReturnPressed: {
+ if (currentRow > -1)
+ root.activated(currentRow);
+ else
+ event.accepted = false
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qmlc
new file mode 100644
index 00000000..2d88a64e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qml
new file mode 100644
index 00000000..9fa05b3d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qml
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+/*!
+ \qmltype TableViewColumn
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup viewitems
+ \ingroup controls
+ \brief Used to define columns in a \l TableView or in a \l TreeView.
+
+ \image tableview.png
+
+ TableViewColumn represents a column within a TableView or a TreeView. It provides
+ properties to decide how the data in that column is presented.
+
+ \qml
+ TableView {
+ TableViewColumn { role: "title"; title: "Title"; width: 100 }
+ TableViewColumn { role: "author"; title: "Author"; width: 200 }
+ model: libraryModel
+ }
+ \endqml
+
+ \sa TableView, TreeView
+*/
+
+QtObject {
+
+ /*! \internal */
+ property Item __view: null
+
+ /*! \internal */
+ property int __index: -1
+
+ /*! The title text of the column. */
+ property string title
+
+ /*! The model \c role of the column. */
+ property string role
+
+ /*! The current width of the column.
+ The default value depends on platform. If only one
+ column is defined, the width expands to the viewport.
+ */
+ property int width: (__view && __view.columnCount === 1) ? __view.viewport.width : 160
+
+ /*! The visible status of the column. */
+ property bool visible: true
+
+ /*! Determines if the column should be resizable.
+ \since QtQuick.Controls 1.1 */
+ property bool resizable: true
+
+ /*! Determines if the column should be movable.
+ The default value is \c true.
+ \note A non-movable column may get indirectly moved if adjacent columns are movable.
+ \since QtQuick.Controls 1.1 */
+ property bool movable: true
+
+ /*! \qmlproperty enumeration TableViewColumn::elideMode
+ The text elide mode of the column.
+ Allowed values are:
+ \list
+ \li Text.ElideNone
+ \li Text.ElideLeft
+ \li Text.ElideMiddle
+ \li Text.ElideRight - the default
+ \endlist
+ \sa {Text::elide}{elide} */
+ property int elideMode: Text.ElideRight
+
+ /*! \qmlproperty enumeration TableViewColumn::horizontalAlignment
+ The horizontal text alignment of the column.
+ Allowed values are:
+ \list
+ \li Text.AlignLeft - the default
+ \li Text.AlignRight
+ \li Text.AlignHCenter
+ \li Text.AlignJustify
+ \endlist
+ \sa {Text::horizontalAlignment}{horizontalAlignment} */
+ property int horizontalAlignment: Text.AlignLeft
+
+ /*! The delegate of the column. This can be used to set the itemDelagate
+ of a \l TableView or \l TreeView for a specific column.
+
+ In the delegate you have access to the following special properties:
+ \list
+ \li styleData.selected - if the item is currently selected
+ \li styleData.value - the value or text for this item
+ \li styleData.textColor - the default text color for an item
+ \li styleData.row - the index of the row
+ \li styleData.column - the index of the column
+ \li styleData.elideMode - the elide mode of the column
+ \li styleData.textAlignment - the horizontal text alignment of the column
+ \endlist
+ */
+ property Component delegate
+
+ property int accessibleRole: Accessible.ColumnHeader
+
+ /*! \qmlmethod void TableViewColumn::resizeToContents()
+ Resizes the column so that the implicitWidth of the contents on every row will fit.
+ \since QtQuick.Controls 1.2 */
+ function resizeToContents() {
+ var minWidth = 0
+ var listdata = __view.__listView.children[0]
+ for (var i = 0; __index === -1 && i < __view.__columns.length; ++i) {
+ if (__view.__columns[i] === this)
+ __index = i
+ }
+ // ### HACK We don't have direct access to the instantiated item,
+ // so we go spelunking. Each 'item' variable check is annotated
+ // with the expected object it should point to in BasicTableView.
+ for (var row = 0 ; row < listdata.children.length ; ++row) {
+ var item = listdata.children[row] ? listdata.children[row].rowItem : undefined
+ if (item) { // FocusScope { id: rowitem }
+ item = item.children[1]
+ if (item) { // Row { id: itemrow }
+ item = item.children[__index]
+ if (item) { // Repeater.delegate a.k.a. __view.__itemDelegateLoader
+ var indent = __view.__isTreeView && __index === 0 ? item.__itemIndentation : 0
+ item = item.item
+ if (item && item.hasOwnProperty("implicitWidth")) {
+ minWidth = Math.max(minWidth, item.implicitWidth + indent)
+ }
+ }
+ }
+ }
+ }
+ if (minWidth)
+ width = minWidth
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qmlc
new file mode 100644
index 00000000..3f5bb3bf
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TableViewColumn.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qml
new file mode 100644
index 00000000..d289780e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qml
@@ -0,0 +1,978 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.6
+import QtQuick.Window 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+/*!
+ \qmltype TextArea
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Displays multiple lines of editable formatted text.
+
+ \image textarea.png
+
+ It can display both plain and rich text. For example:
+
+ \qml
+ TextArea {
+ width: 240
+ text:
+ "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " +
+ "sed do eiusmod tempor incididunt ut labore et dolore magna " +
+ "aliqua. Ut enim ad minim veniam, quis nostrud exercitation " +
+ "ullamco laboris nisi ut aliquip ex ea commodo cosnsequat. ";
+ }
+ \endqml
+
+ Clipboard support is provided by the cut(), copy(), and paste() functions, and the selection can
+ be handled in a traditional "mouse" mechanism by setting selectByMouse, or handled completely
+ from QML by manipulating selectionStart and selectionEnd, or using selectAll() or selectWord().
+
+ You can translate between cursor positions (characters from the start of the document) and pixel
+ points using positionAt() and positionToRectangle().
+
+ You can create a custom appearance for a TextArea by
+ assigning a \l {TextAreaStyle}.
+
+ \sa TextField, TextEdit
+*/
+
+ScrollView {
+ id: area
+
+ /*!
+ \qmlproperty bool TextArea::activeFocusOnPress
+
+ Whether the TextEdit should gain active focus on a mouse press. By default this is
+ set to true.
+ */
+ property alias activeFocusOnPress: edit.activeFocusOnPress
+
+ /*!
+ \qmlproperty url TextArea::baseUrl
+
+ This property specifies a base URL which is used to resolve relative URLs
+ within the text.
+
+ The default value is the url of the QML file instantiating the TextArea item.
+ */
+ property alias baseUrl: edit.baseUrl
+
+ /*!
+ \qmlproperty bool TextArea::canPaste
+
+ Returns true if the TextArea is writable and the content of the clipboard is
+ suitable for pasting into the TextArea.
+ */
+ readonly property alias canPaste: edit.canPaste
+
+ /*!
+ \qmlproperty bool TextArea::canRedo
+
+ Returns true if the TextArea is writable and there are \l {undo}{undone}
+ operations that can be redone.
+ */
+ readonly property alias canRedo: edit.canRedo
+
+ /*!
+ \qmlproperty bool TextArea::canUndo
+
+ Returns true if the TextArea is writable and there are previous operations
+ that can be undone.
+ */
+ readonly property alias canUndo: edit.canUndo
+
+ /*!
+ \qmlproperty color TextArea::textColor
+
+ The text color.
+
+ \qml
+ TextArea { textColor: "orange" }
+ \endqml
+ */
+ property alias textColor: edit.color
+
+ /*!
+ \qmlproperty int TextArea::cursorPosition
+ The position of the cursor in the TextArea.
+ */
+ property alias cursorPosition: edit.cursorPosition
+
+ /*!
+ \qmlproperty rect TextArea::cursorRectangle
+ \since QtQuick.Controls 1.3
+
+ The rectangle where the text cursor is rendered within the text area.
+ */
+ readonly property alias cursorRectangle: edit.cursorRectangle
+
+ /*! \qmlproperty font TextArea::font
+
+ The font of the TextArea.
+ */
+ property alias font: edit.font
+
+ /*!
+ \qmlproperty enumeration TextArea::horizontalAlignment
+
+ Sets the alignment of the text within the TextArea item's width.
+
+ By default, the horizontal text alignment follows the natural alignment of the text,
+ for example, text that is read from left to right will be aligned to the left.
+
+ The valid values for \c horizontalAlignment are:
+ \list
+ \li TextEdit.AlignLeft (Default)
+ \li TextEdit.AlignRight
+ \li TextEdit.AlignHCenter
+ \endlist
+
+ When using the attached property LayoutMirroring::enabled to mirror application
+ layouts, the horizontal alignment of text will also be mirrored. However, the property
+ \c horizontalAlignment will remain unchanged. To query the effective horizontal alignment
+ of TextArea, use the read-only property \c effectiveHorizontalAlignment.
+ */
+ property alias horizontalAlignment: edit.horizontalAlignment
+
+ /*!
+ \qmlproperty enumeration TextArea::effectiveHorizontalAlignment
+
+ Gets the effective horizontal alignment of the text within the TextArea item's width.
+
+ To set/get the default horizontal alignment of TextArea, use the property \c horizontalAlignment.
+
+ */
+ readonly property alias effectiveHorizontalAlignment: edit.effectiveHorizontalAlignment
+
+ /*!
+ \qmlproperty enumeration TextArea::verticalAlignment
+
+ Sets the alignment of the text within the TextArea item's height.
+
+ The valid values for \c verticalAlignment are:
+ \list
+ \li TextEdit.AlignTop
+ \li TextEdit.AlignBottom
+ \li TextEdit.AlignVCenter (Default)
+ \endlist
+ */
+ property alias verticalAlignment: edit.verticalAlignment
+
+ /*!
+ \qmlproperty bool TextArea::inputMethodComposing
+ \since QtQuick.Controls 1.3
+
+ This property holds whether the TextArea has partial text input from an input method.
+
+ While it is composing an input method may rely on mouse or key events from the TextArea
+ to edit or commit the partial text. This property can be used to determine when to disable
+ events handlers that may interfere with the correct operation of an input method.
+ */
+ readonly property bool inputMethodComposing: !!edit.inputMethodComposing
+
+ /*!
+ \qmlproperty enumeration TextArea::inputMethodHints
+
+ Provides hints to the input method about the expected content of the text edit, and how it
+ should operate.
+
+ The value is a bit-wise combination of flags or Qt.ImhNone if no hints are set.
+
+ The default value is \c Qt.ImhNone.
+
+ Flags that alter behavior are:
+
+ \list
+ \li Qt.ImhHiddenText - Characters should be hidden, as is typically used when entering passwords.
+ \li Qt.ImhSensitiveData - Typed text should not be stored by the active input method
+ in any persistent storage like predictive user dictionary.
+ \li Qt.ImhNoAutoUppercase - The input method should not try to automatically switch to upper case
+ when a sentence ends.
+ \li Qt.ImhPreferNumbers - Numbers are preferred (but not required).
+ \li Qt.ImhPreferUppercase - Upper case letters are preferred (but not required).
+ \li Qt.ImhPreferLowercase - Lower case letters are preferred (but not required).
+ \li Qt.ImhNoPredictiveText - Do not use predictive text (i.e. dictionary lookup) while typing.
+
+ \li Qt.ImhDate - The text editor functions as a date field.
+ \li Qt.ImhTime - The text editor functions as a time field.
+ \endlist
+
+ Flags that restrict input (exclusive flags) are:
+
+ \list
+ \li Qt.ImhDigitsOnly - Only digits are allowed.
+ \li Qt.ImhFormattedNumbersOnly - Only number input is allowed. This includes decimal point and minus sign.
+ \li Qt.ImhUppercaseOnly - Only upper case letter input is allowed.
+ \li Qt.ImhLowercaseOnly - Only lower case letter input is allowed.
+ \li Qt.ImhDialableCharactersOnly - Only characters suitable for phone dialing are allowed.
+ \li Qt.ImhEmailCharactersOnly - Only characters suitable for email addresses are allowed.
+ \li Qt.ImhUrlCharactersOnly - Only characters suitable for URLs are allowed.
+ \endlist
+
+ Masks:
+
+ \list
+ \li Qt.ImhExclusiveInputMask - This mask yields nonzero if any of the exclusive flags are used.
+ \endlist
+ */
+ property alias inputMethodHints: edit.inputMethodHints
+
+ /*!
+ \qmlproperty int TextArea::length
+
+ Returns the total number of plain text characters in the TextArea item.
+
+ As this number doesn't include any formatting markup, it may not be the same as the
+ length of the string returned by the \l text property.
+
+ This property can be faster than querying the length the \l text property as it doesn't
+ require any copying or conversion of the TextArea's internal string data.
+ */
+ readonly property alias length: edit.length
+
+ /*!
+ \qmlproperty int TextArea::lineCount
+
+ Returns the total number of lines in the TextArea item.
+ */
+ readonly property alias lineCount: edit.lineCount
+
+ /*!
+ \qmlproperty bool TextArea::readOnly
+
+ Whether the user can interact with the TextArea item.
+
+ The difference from a disabled text field is that it will appear
+ to be active, and text can be selected and copied.
+
+ If this property is set to \c true, the text cannot be edited by user interaction.
+
+ By default this property is \c false.
+ */
+ property alias readOnly: edit.readOnly
+ Accessible.readOnly: readOnly
+
+ /*!
+ \qmlproperty string TextArea::selectedText
+
+ This read-only property provides the text currently selected in the
+ text edit.
+ */
+ readonly property alias selectedText: edit.selectedText
+
+ /*!
+ \qmlproperty int TextArea::selectionEnd
+
+ The cursor position after the last character in the current selection.
+
+ This property is read-only. To change the selection, use select(start,end),
+ selectAll(), or selectWord().
+
+ \sa selectionStart, cursorPosition, selectedText
+ */
+ readonly property alias selectionEnd: edit.selectionEnd
+
+ /*!
+ \qmlproperty int TextArea::selectionStart
+
+ The cursor position before the first character in the current selection.
+
+ This property is read-only. To change the selection, use select(start,end),
+ selectAll(), or selectWord().
+
+ \sa selectionEnd, cursorPosition, selectedText
+ */
+ readonly property alias selectionStart: edit.selectionStart
+
+ /*!
+ \qmlproperty bool TextArea::tabChangesFocus
+
+ This property holds whether Tab changes focus, or is accepted as input.
+
+ Defaults to \c false.
+ */
+ property bool tabChangesFocus: false
+
+ /*!
+ \qmlproperty string TextArea::text
+
+ The text to display. If the text format is AutoText the text edit will
+ automatically determine whether the text should be treated as
+ rich text. This determination is made using Qt::mightBeRichText().
+ */
+ property alias text: edit.text
+
+ /*!
+ \qmlproperty enumeration TextArea::textFormat
+
+ The way the text property should be displayed.
+
+ \list
+ \li TextEdit.AutoText
+ \li TextEdit.PlainText
+ \li TextEdit.RichText
+ \endlist
+
+ The default is TextEdit.PlainText. If the text format is TextEdit.AutoText the text edit
+ will automatically determine whether the text should be treated as
+ rich text. This determination is made using Qt::mightBeRichText().
+ */
+ property alias textFormat: edit.textFormat
+
+ /*!
+ \qmlproperty enumeration TextArea::wrapMode
+
+ Set this property to wrap the text to the TextArea item's width.
+
+ \list
+ \li TextEdit.NoWrap (default) - no wrapping will be performed.
+ \li TextEdit.WordWrap - wrapping is done on word boundaries only.
+ \li TextEdit.WrapAnywhere - wrapping is done at any point on a line, even if it occurs in the middle of a word.
+ \li TextEdit.Wrap - if possible, wrapping occurs at a word boundary; otherwise it will occur at the appropriate point on the line, even in the middle of a word.
+ \endlist
+ */
+ property alias wrapMode: edit.wrapMode
+
+ /*!
+ \qmlproperty bool TextArea::selectByMouse
+
+ This property determines if the user can select the text with the
+ mouse.
+
+ The default value is \c true.
+ */
+ property bool selectByMouse: true
+
+ /*!
+ \qmlproperty bool TextArea::selectByKeyboard
+
+ This property determines if the user can select the text with the
+ keyboard.
+
+ If set to \c true, the user can use the keyboard to select the text
+ even if the editor is read-only. If set to \c false, the user cannot
+ use the keyboard to select the text even if the editor is editable.
+
+ The default value is \c true when the editor is editable,
+ and \c false when read-only.
+
+ \sa readOnly
+ */
+ property alias selectByKeyboard: edit.selectByKeyboard
+
+ /*!
+ \qmlsignal TextArea::linkActivated(string link)
+
+ This signal is emitted when the user clicks on a link embedded in the text.
+ The link must be in rich text or HTML format and the
+ \e link string provides access to the particular link.
+
+ The corresponding handler is \c onLinkActivated.
+ */
+ signal linkActivated(string link)
+
+ /*!
+ \qmlsignal TextArea::linkHovered(string link)
+ \since QtQuick.Controls 1.1
+
+ This signal is emitted when the user hovers a link embedded in the text.
+ The link must be in rich text or HTML format and the
+ \e link string provides access to the particular link.
+
+ \sa hoveredLink
+
+ The corresponding handler is \c onLinkHovered.
+ */
+ signal linkHovered(string link)
+
+ /*!
+ \qmlsignal TextArea::editingFinished()
+ \since QtQuick.Controls 1.5
+
+ This signal is emitted when the text area loses focus.
+
+ The corresponding handler is \c onEditingFinished.
+ */
+ signal editingFinished()
+
+ /*!
+ \qmlproperty string TextArea::hoveredLink
+ \since QtQuick.Controls 1.1
+
+ This property contains the link string when user hovers a link
+ embedded in the text. The link must be in rich text or HTML format
+ and the link string provides access to the particular link.
+ */
+ readonly property alias hoveredLink: edit.hoveredLink
+
+ /*!
+ \since QtQuick.Controls 1.3
+
+ This property contains the edit \l Menu for working
+ with text selection. Set it to \c null if no menu
+ is wanted.
+
+ \sa Menu
+ */
+ property Component menu: editMenu.defaultMenu
+
+ /*!
+ \qmlmethod void TextArea::append(string text)
+
+ Appends a string \a text as a new line to the end of the text area.
+ */
+ function append (string) {
+ edit.append(string)
+ __verticalScrollBar.value = __verticalScrollBar.maximumValue
+ }
+
+ /*!
+ \qmlmethod void TextArea::copy()
+
+ Copies the currently selected text to the system clipboard.
+ */
+ function copy() {
+ edit.copy();
+ }
+
+ /*!
+ \qmlmethod void TextArea::cut()
+
+ Moves the currently selected text to the system clipboard.
+ */
+ function cut() {
+ edit.cut();
+ }
+
+ /*!
+ \qmlmethod void TextArea::deselect()
+
+ Removes active text selection.
+ */
+ function deselect() {
+ edit.deselect();
+ }
+
+ /*!
+ \qmlmethod string TextArea::getFormattedText(int start, int end)
+
+ Returns the section of text that is between the \a start and \a end positions.
+
+ The returned text will be formatted according to the \l textFormat property.
+ */
+ function getFormattedText(start, end) {
+ return edit.getFormattedText(start, end);
+ }
+
+ /*!
+ \qmlmethod string TextArea::getText(int start, int end)
+
+ Returns the section of text that is between the \a start and \a end positions.
+
+ The returned text does not include any rich text formatting.
+ */
+ function getText(start, end) {
+ return edit.getText(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextArea::insert(int position, string text)
+
+ Inserts \a text into the TextArea at \a position.
+ */
+ function insert(position, text) {
+ edit.insert(position, text);
+ }
+
+ /*!
+ \qmlmethod bool TextArea::isRightToLeft(int start, int end)
+
+ Returns true if the natural reading direction of the editor text
+ found between positions \a start and \a end is right to left.
+ */
+ function isRightToLeft(start, end) {
+ return edit.isRightToLeft(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextArea::moveCursorSelection(int position, SelectionMode mode = TextEdit.SelectCharacters)
+
+ Moves the cursor to \a position and updates the selection according to the optional \a mode
+ parameter. (To only move the cursor, set the \l cursorPosition property.)
+
+ When this method is called it additionally sets either the
+ selectionStart or the selectionEnd (whichever was at the previous cursor position)
+ to the specified position. This allows you to easily extend and contract the selected
+ text range.
+
+ The selection mode specifies whether the selection is updated on a per character or a per word
+ basis. If not specified the selection mode will default to TextEdit.SelectCharacters.
+
+ \list
+ \li TextEdit.SelectCharacters - Sets either the selectionStart or selectionEnd (whichever was at
+ the previous cursor position) to the specified position.
+ \li TextEdit.SelectWords - Sets the selectionStart and selectionEnd to include all
+ words between the specified position and the previous cursor position. Words partially in the
+ range are included.
+ \endlist
+
+ For example, take this sequence of calls:
+
+ \code
+ cursorPosition = 5
+ moveCursorSelection(9, TextEdit.SelectCharacters)
+ moveCursorSelection(7, TextEdit.SelectCharacters)
+ \endcode
+
+ This moves the cursor to the 5th position, extends the selection end from 5 to 9,
+ and then retracts the selection end from 9 to 7, leaving the text from the 5th
+ position to the 7th position selected (the 6th and 7th characters).
+
+ The same sequence with TextEdit.SelectWords will extend the selection start to a word boundary
+ before or on the 5th position, and extend the selection end to a word boundary on or past the 9th position.
+ */
+ function moveCursorSelection(position, mode) {
+ edit.moveCursorSelection(position, mode);
+ }
+
+ /*!
+ \qmlmethod void TextArea::paste()
+
+ Replaces the currently selected text by the contents of the system clipboard.
+ */
+ function paste() {
+ edit.paste();
+ }
+
+ /*!
+ \qmlmethod int TextArea::positionAt(int x, int y)
+
+ Returns the text position closest to pixel position (\a x, \a y).
+
+ Position 0 is before the first character, position 1 is after the first character
+ but before the second, and so on until position \l {text}.length, which is after all characters.
+ */
+ function positionAt(x, y) {
+ return edit.positionAt(x, y);
+ }
+
+ /*!
+ \qmlmethod rectangle TextArea::positionToRectangle(position)
+
+ Returns the rectangle at the given \a position in the text. The x, y,
+ and height properties correspond to the cursor that would describe
+ that position.
+ */
+ function positionToRectangle(position) {
+ return edit.positionToRectangle(position);
+ }
+
+ /*!
+ \qmlmethod void TextArea::redo()
+
+ Redoes the last operation if redo is \l {canRedo}{available}.
+ */
+ function redo() {
+ edit.redo();
+ }
+
+ /*!
+ \qmlmethod string TextArea::remove(int start, int end)
+
+ Removes the section of text that is between the \a start and \a end positions from the TextArea.
+ */
+ function remove(start, end) {
+ return edit.remove(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextArea::select(int start, int end)
+
+ Causes the text from \a start to \a end to be selected.
+
+ If either start or end is out of range, the selection is not changed.
+
+ After calling this, selectionStart will become the lesser
+ and selectionEnd will become the greater (regardless of the order passed
+ to this method).
+
+ \sa selectionStart, selectionEnd
+ */
+ function select(start, end) {
+ edit.select(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextArea::selectAll()
+
+ Causes all text to be selected.
+ */
+ function selectAll() {
+ edit.selectAll();
+ }
+
+ /*!
+ \qmlmethod void TextArea::selectWord()
+
+ Causes the word closest to the current cursor position to be selected.
+ */
+ function selectWord() {
+ edit.selectWord();
+ }
+
+ /*!
+ \qmlmethod void TextArea::undo()
+
+ Undoes the last operation if undo is \l {canUndo}{available}. Deselects any
+ current selection, and updates the selection start to the current cursor
+ position.
+ */
+ function undo() {
+ edit.undo();
+ }
+
+ /*! \qmlproperty bool TextArea::backgroundVisible
+
+ This property determines if the background should be filled or not.
+
+ The default value is \c true.
+ */
+ property alias backgroundVisible: colorRect.visible
+
+ /*! \internal */
+ default property alias data: area.data
+
+ /*! \qmlproperty real TextArea::textMargin
+ \since QtQuick.Controls 1.1
+
+ The margin, in pixels, around the text in the TextArea.
+ */
+ property alias textMargin: edit.textMargin
+
+ /*! \qmlproperty real TextArea::contentWidth
+ \since QtQuick.Controls 1.3
+
+ The width of the text content.
+ */
+ readonly property alias contentWidth: edit.contentWidth
+
+ /*! \qmlproperty real TextArea::contentHeight
+ \since QtQuick.Controls 1.3
+
+ The height of the text content.
+ */
+ readonly property alias contentHeight: edit.contentHeight
+
+ frameVisible: true
+
+ activeFocusOnTab: true
+
+ Accessible.role: Accessible.EditableText
+
+ style: Settings.styleComponent(Settings.style, "TextAreaStyle.qml", area)
+
+ /*!
+ \qmlproperty TextDocument TextArea::textDocument
+
+ This property exposes the \l QQuickTextDocument of this TextArea.
+ \sa TextEdit::textDocument
+ */
+ property alias textDocument: edit.textDocument
+
+ Flickable {
+ id: flickable
+
+ interactive: !edit.selectByMouse
+ anchors.fill: parent
+
+ TextEdit {
+ id: edit
+ focus: true
+ cursorDelegate: __style && __style.__cursorDelegate ? __style.__cursorDelegate : null
+ persistentSelection: true
+
+ Rectangle {
+ id: colorRect
+ parent: viewport
+ anchors.fill: parent
+ color: __style ? __style.backgroundColor : "white"
+ z: -1
+ }
+
+ property int layoutRecursionDepth: 0
+
+ function doLayout() {
+ // scrollbars affect the document/viewport size and vice versa, so we
+ // must allow the layout loop to recurse twice until the sizes stabilize
+ if (layoutRecursionDepth <= 2) {
+ layoutRecursionDepth++
+
+ if (wrapMode == TextEdit.NoWrap) {
+ __horizontalScrollBar.visible = edit.contentWidth > viewport.width
+ edit.width = Math.max(viewport.width, edit.contentWidth)
+ } else {
+ __horizontalScrollBar.visible = false
+ edit.width = viewport.width
+ }
+ edit.height = Math.max(viewport.height, edit.contentHeight)
+
+ flickable.contentWidth = edit.contentWidth
+ flickable.contentHeight = edit.contentHeight
+
+ layoutRecursionDepth--
+ }
+ }
+
+ Connections {
+ target: area.viewport
+ function onWidthChanged() { edit.doLayout() }
+ function onHeightChanged() { edit.doLayout() }
+ }
+ onContentWidthChanged: edit.doLayout()
+ onContentHeightChanged: edit.doLayout()
+ onWrapModeChanged: edit.doLayout()
+
+ renderType: __style ? __style.renderType : Text.NativeRendering
+ font: __style ? __style.font : TextSingleton.font
+ color: __style ? __style.textColor : "darkgray"
+ selectionColor: __style ? __style.selectionColor : "darkred"
+ selectedTextColor: __style ? __style.selectedTextColor : "white"
+ wrapMode: TextEdit.WordWrap
+ textMargin: __style && __style.textMargin !== undefined ? __style.textMargin : 4
+
+ selectByMouse: area.selectByMouse && Qt.platform.os != "ios" && (!Settings.isMobile || !cursorHandle.delegate || !selectionHandle.delegate)
+ readOnly: false
+
+ Keys.forwardTo: area
+
+ KeyNavigation.priority: KeyNavigation.BeforeItem
+ KeyNavigation.tab: area.tabChangesFocus ? area.KeyNavigation.tab : null
+ KeyNavigation.backtab: area.tabChangesFocus ? area.KeyNavigation.backtab : null
+
+ property bool blockRecursion: false
+ property bool hasSelection: selectionStart !== selectionEnd
+ readonly property int selectionPosition: selectionStart !== cursorPosition ? selectionStart : selectionEnd
+
+ // force re-evaluation when contentWidth changes => text layout changes => selection moves
+ property rect selectionRectangle: contentWidth ? positionToRectangle(selectionPosition)
+ : positionToRectangle(selectionPosition)
+
+ onSelectionStartChanged: syncHandlesWithSelection()
+ onCursorPositionChanged: syncHandlesWithSelection()
+
+ function syncHandlesWithSelection()
+ {
+ if (!blockRecursion && selectionHandle.delegate) {
+ blockRecursion = true
+ // We cannot use property selectionPosition since it gets updated after onSelectionStartChanged
+ cursorHandle.position = cursorPosition
+ selectionHandle.position = (selectionStart !== cursorPosition) ? selectionStart : selectionEnd
+ blockRecursion = false
+ }
+ ensureVisible(cursorRectangle)
+ }
+
+ function ensureVisible(rect) {
+ if (rect.y >= flickableItem.contentY + viewport.height - rect.height - textMargin) {
+ // moving down
+ flickableItem.contentY = rect.y - viewport.height + rect.height + textMargin
+ } else if (rect.y < flickableItem.contentY) {
+ // moving up
+ flickableItem.contentY = rect.y - textMargin
+ }
+
+ if (rect.x >= flickableItem.contentX + viewport.width - textMargin) {
+ // moving right
+ flickableItem.contentX = rect.x - viewport.width + textMargin
+ } else if (rect.x < flickableItem.contentX) {
+ // moving left
+ flickableItem.contentX = rect.x - textMargin
+ }
+ }
+
+ onLinkActivated: area.linkActivated(link)
+ onLinkHovered: area.linkHovered(link)
+ onEditingFinished: area.editingFinished()
+
+ function activate() {
+ if (activeFocusOnPress) {
+ forceActiveFocus()
+ if (!readOnly)
+ Qt.inputMethod.show()
+ }
+ cursorHandle.activate()
+ selectionHandle.activate()
+ }
+
+ function moveHandles(cursor, selection) {
+ blockRecursion = true
+ cursorPosition = cursor
+ if (selection === -1) {
+ selectWord()
+ selection = selectionStart
+ }
+ selectionHandle.position = selection
+ cursorHandle.position = cursorPosition
+ blockRecursion = false
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ cursorShape: edit.hoveredLink ? Qt.PointingHandCursor : Qt.IBeamCursor
+ acceptedButtons: (edit.selectByMouse ? Qt.NoButton : Qt.LeftButton) | (area.menu ? Qt.RightButton : Qt.NoButton)
+ onClicked: {
+ if (editMenu.item)
+ return;
+ var pos = edit.positionAt(mouse.x, mouse.y)
+ edit.moveHandles(pos, pos)
+ edit.activate()
+ }
+ onPressAndHold: {
+ if (editMenu.item)
+ return;
+ var pos = edit.positionAt(mouse.x, mouse.y)
+ edit.moveHandles(pos, area.selectByMouse ? -1 : pos)
+ edit.activate()
+ }
+ }
+
+ EditMenu {
+ id: editMenu
+ control: area
+ input: edit
+ mouseArea: mouseArea
+ cursorHandle: cursorHandle
+ selectionHandle: selectionHandle
+ flickable: flickable
+ anchors.fill: parent
+ }
+
+ ScenePosListener {
+ id: listener
+ item: edit
+ enabled: edit.activeFocus && Qt.platform.os !== "ios" && Settings.isMobile
+ }
+
+ TextHandle {
+ id: selectionHandle
+
+ editor: edit
+ control: area
+ z: 1000001 // DefaultWindowDecoration+1
+ parent: !edit.activeFocus || Qt.platform.os === "ios" ? editor : Window.contentItem // float (QTBUG-42538)
+ active: area.selectByMouse && Settings.isMobile
+ delegate: __style.__selectionHandle
+ maximum: cursorHandle.position - 1
+
+ // Mention scenePos, contentX and contentY in the mappedPos binding to force re-evaluation if they change
+ property var mappedPos: listener.scenePos.x !== listener.scenePos.y !== flickableItem.contentX !== flickableItem.contentY !== Number.MAX_VALUE ?
+ editor.mapToItem(parent, editor.selectionRectangle.x, editor.selectionRectangle.y) : -1
+ x: mappedPos.x
+ y: mappedPos.y
+
+ property var posInViewport: flickableItem.contentX !== flickableItem.contentY !== Number.MAX_VALUE ?
+ viewport.mapFromItem(parent, handleX, handleY) : -1
+ visible: pressed || (edit.hasSelection
+ && posInViewport.y + handleHeight >= -1
+ && posInViewport.y <= viewport.height + 1
+ && posInViewport.x + handleWidth >= -1
+ && posInViewport.x <= viewport.width + 1)
+
+ onPositionChanged: {
+ if (!edit.blockRecursion) {
+ edit.blockRecursion = true
+ edit.select(selectionHandle.position, cursorHandle.position)
+ if (pressed)
+ edit.ensureVisible(edit.selectionRectangle)
+ edit.blockRecursion = false
+ }
+ }
+ }
+
+ TextHandle {
+ id: cursorHandle
+
+ editor: edit
+ control: area
+ z: 1000001 // DefaultWindowDecoration+1
+ parent: !edit.activeFocus || Qt.platform.os === "ios" ? editor : Window.contentItem // float (QTBUG-42538)
+ active: area.selectByMouse && Settings.isMobile
+ delegate: __style.__cursorHandle
+ minimum: edit.hasSelection ? selectionHandle.position + 1 : -1
+
+ // Mention scenePos, contentX and contentY in the mappedPos binding to force re-evaluation if they change
+ property var mappedPos: listener.scenePos.x !== listener.scenePos.y !== flickableItem.contentX !== flickableItem.contentY !== Number.MAX_VALUE ?
+ editor.mapToItem(parent, editor.cursorRectangle.x, editor.cursorRectangle.y) : -1
+ x: mappedPos.x
+ y: mappedPos.y
+
+ property var posInViewport: flickableItem.contentX !== flickableItem.contentY !== Number.MAX_VALUE ?
+ viewport.mapFromItem(parent, handleX, handleY) : -1
+ visible: pressed || ((edit.cursorVisible || edit.hasSelection)
+ && posInViewport.y + handleHeight >= -1
+ && posInViewport.y <= viewport.height + 1
+ && posInViewport.x + handleWidth >= -1
+ && posInViewport.x <= viewport.width + 1)
+
+ onPositionChanged: {
+ if (!edit.blockRecursion) {
+ edit.blockRecursion = true
+ if (!edit.hasSelection)
+ selectionHandle.position = cursorHandle.position
+ edit.select(selectionHandle.position, cursorHandle.position)
+ edit.blockRecursion = false
+ }
+ }
+ }
+ }
+ }
+
+ Keys.onPressed: {
+ if (event.key == Qt.Key_PageUp) {
+ __verticalScrollBar.value -= area.height
+ } else if (event.key == Qt.Key_PageDown)
+ __verticalScrollBar.value += area.height
+ }
+
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qmlc
new file mode 100644
index 00000000..75903e28
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextArea.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qml
new file mode 100644
index 00000000..d0d1d5cc
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qml
@@ -0,0 +1,672 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.6
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype TextField
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Displays a single line of editable plain text.
+
+ \image textfield.png
+
+ TextField is used to accept a line of text input. Input constraints can be
+ placed on a TextField item (for example, through a \l validator or \l
+ inputMask). Setting \l echoMode to an appropriate value enables
+ TextField to be used for a password input field.
+
+ \qml
+ TextField {
+ placeholderText: qsTr("Enter name")
+ }
+ \endqml
+
+ You can create a custom appearance for a TextField by
+ assigning a \l {TextFieldStyle}.
+
+ \sa TextArea, TextInput
+*/
+
+Control {
+ id: textfield
+
+ /*!
+ \qmlproperty bool TextField::acceptableInput
+
+ Returns \c true if the text field contains acceptable
+ text.
+
+ If a validator or input mask was set, this property will return \c
+ true if the current text satisfies the validator or mask as
+ a final string (not as an intermediate string).
+
+ The default value is \c true.
+
+ \sa validator, inputMask, accepted
+
+ */
+ readonly property alias acceptableInput: textInput.acceptableInput // read only
+
+ /*!
+ \qmlproperty bool TextField::activeFocusOnPress
+
+ This property is set to \c true if the TextField should gain active
+ focus on a mouse press.
+
+ The default value is \c true.
+ */
+ property alias activeFocusOnPress: textInput.activeFocusOnPress
+
+ /*!
+ \qmlproperty bool TextField::canPaste
+
+ Returns \c true if the TextField is writable and the content of the
+ clipboard is suitable for pasting into the TextField.
+ */
+ readonly property alias canPaste: textInput.canPaste
+
+ /*!
+ \qmlproperty bool TextField::canRedo
+
+ Returns \c true if the TextField is writable and there are \l
+ {undo}{undone} operations that can be redone.
+ */
+ readonly property alias canRedo: textInput.canRedo
+
+ /*!
+ \qmlproperty bool TextField::canUndo
+
+ Returns \c true if the TextField is writable and there are previous
+ operations that can be undone.
+ */
+ readonly property alias canUndo: textInput.canUndo
+
+ /*!
+ \qmlproperty color TextField::textColor
+
+ This property holds the text color.
+ */
+ property alias textColor: textInput.color
+
+ /*!
+ \qmlproperty int TextField::cursorPosition
+
+ This property holds the position of the cursor in the TextField.
+ */
+ property alias cursorPosition: textInput.cursorPosition
+
+ /*!
+ \qmlproperty rect TextField::cursorRectangle
+ \since QtQuick.Controls 1.3
+
+ The rectangle where the text cursor is rendered within the text field.
+ */
+ readonly property alias cursorRectangle: textInput.cursorRectangle
+
+ /*!
+ \qmlproperty string TextField::displayText
+
+ This property holds the text displayed in the TextField.
+
+ If \l echoMode is set to TextInput::Normal, this holds the
+ same value as the TextField::text property. Otherwise,
+ this property holds the text visible to the user, while
+ the \l text property holds the actual entered text.
+ */
+ readonly property alias displayText: textInput.displayText
+
+ /*!
+ \qmlproperty enumeration TextField::echoMode
+
+ Specifies how the text should be displayed in the
+ TextField.
+
+ The possible modes are:
+ \list
+ \li TextInput.Normal - Displays the text as it is. (Default)
+ \li TextInput.Password - Displays asterisks instead of characters.
+ \li TextInput.NoEcho - Displays nothing.
+ \li TextInput.PasswordEchoOnEdit - Displays characters as they are
+ entered while editing, otherwise displays asterisks.
+ \endlist
+ */
+ property alias echoMode: textInput.echoMode
+ Accessible.passwordEdit: echoMode == TextInput.Password || echoMode === TextInput.PasswordEchoOnEdit
+
+ /*!
+ \qmlproperty font TextField::font
+
+ Sets the font of the TextField.
+ */
+ property alias font: textInput.font
+
+ /*!
+ \qmlproperty enumeration TextField::horizontalAlignment
+
+ Sets the alignment of the text within the TextField item's width.
+
+ By default, the horizontal text alignment follows the natural alignment
+ of the text, for example text that is read from left to right will be
+ aligned to the left.
+
+ The possible alignment values are:
+ \list
+ \li TextInput.AlignLeft
+ \li TextInput.AlignRight
+ \li TextInput.AlignHCenter
+ \endlist
+
+ When using the attached property, LayoutMirroring::enabled, to mirror
+ application layouts, the horizontal alignment of text will also be
+ mirrored. However, the property \c horizontalAlignment will remain
+ unchanged. To query the effective horizontal alignment of TextField, use
+ the read-only property \c effectiveHorizontalAlignment.
+ */
+ property alias horizontalAlignment: textInput.horizontalAlignment
+
+ /*!
+ \qmlproperty enumeration TextField::effectiveHorizontalAlignment
+
+ Gets the effective horizontal alignment of the text within the TextField
+ item's width.
+
+ \l horizontalAlignment contains the default horizontal alignment.
+
+ \sa horizontalAlignment
+
+ */
+ readonly property alias effectiveHorizontalAlignment: textInput.effectiveHorizontalAlignment
+
+ /*!
+ \qmlproperty enumeration TextField::verticalAlignment
+
+ Sets the alignment of the text within the TextField item's height.
+
+ The possible alignment values are:
+ \list
+ \li TextInput.AlignTop
+ \li TextInput.AlignBottom
+ \li TextInput.AlignVCenter (default).
+ \endlist
+ */
+ property alias verticalAlignment: textInput.verticalAlignment
+
+ /*!
+ \qmlproperty string TextField::inputMask
+
+ Sets an input mask on the TextField, restricting the allowable text
+ inputs. See QLineEdit::inputMask for further details, as the exact same
+ mask strings are used by TextField.
+
+ \sa acceptableInput, validator
+ */
+ property alias inputMask: textInput.inputMask
+
+ /*!
+ \qmlproperty bool TextField::inputMethodComposing
+ \since QtQuick.Controls 1.3
+
+ This property holds whether the TextField has partial text input from an input method.
+
+ While it is composing an input method may rely on mouse or key events from the TextField
+ to edit or commit the partial text. This property can be used to determine when to disable
+ events handlers that may interfere with the correct operation of an input method.
+ */
+ readonly property bool inputMethodComposing: !!textInput.inputMethodComposing
+
+ /*!
+ \qmlproperty enumeration TextField::inputMethodHints
+
+ Provides hints to the input method about the expected content of the
+ text field and how it should operate.
+
+ The value is a bit-wise combination of flags, or \c Qt.ImhNone if no
+ hints are set.
+
+ The default value is \c Qt.ImhNone.
+
+ Flags that alter behavior are:
+
+ \list
+ \li Qt.ImhHiddenText - Characters should be hidden, as is typically used when entering passwords.
+ This is automatically set when setting echoMode to \c TextInput.Password.
+ \li Qt.ImhSensitiveData - Typed text should not be stored by the active input method
+ in any persistent storage like predictive user dictionary.
+ \li Qt.ImhNoAutoUppercase - The input method should not try to automatically switch to upper case
+ when a sentence ends.
+ \li Qt.ImhPreferNumbers - Numbers are preferred (but not required).
+ \li Qt.ImhPreferUppercase - Uppercase letters are preferred (but not required).
+ \li Qt.ImhPreferLowercase - Lowercase letters are preferred (but not required).
+ \li Qt.ImhNoPredictiveText - Do not use predictive text (for example, dictionary lookup) while typing.
+
+ \li Qt.ImhDate - The text editor functions as a date field.
+ \li Qt.ImhTime - The text editor functions as a time field.
+ \li Qt.ImhMultiLine - The text editor doesn't close software input keyboard when Return or Enter key is pressed (since QtQuick.Controls 1.3).
+ \endlist
+
+ Flags that restrict input (exclusive flags) are:
+
+ \list
+ \li Qt.ImhDigitsOnly - Only digits are allowed.
+ \li Qt.ImhFormattedNumbersOnly - Only number input is allowed. This includes decimal point and minus sign.
+ \li Qt.ImhUppercaseOnly - Only uppercase letter input is allowed.
+ \li Qt.ImhLowercaseOnly - Only lowercase letter input is allowed.
+ \li Qt.ImhDialableCharactersOnly - Only characters suitable for phone dialing are allowed.
+ \li Qt.ImhEmailCharactersOnly - Only characters suitable for email addresses are allowed.
+ \li Qt.ImhUrlCharactersOnly - Only characters suitable for URLs are allowed.
+ \endlist
+
+ Masks:
+ \list
+ \li Qt.ImhExclusiveInputMask - This mask yields nonzero if any of the exclusive flags are used.
+ \endlist
+ */
+ property alias inputMethodHints: textInput.inputMethodHints
+
+ /*!
+ \qmlproperty int TextField::length
+
+ Returns the total number of characters in the TextField item.
+
+ If the TextField has an input mask, the length will include mask
+ characters and may differ from the length of the string returned by the
+ \l text property.
+
+ This property can be faster than querying the length of the \l text
+ property as it doesn't require any copying or conversion of the
+ TextField's internal string data.
+ */
+ readonly property alias length: textInput.length
+
+ /*!
+ \qmlproperty int TextField::maximumLength
+
+ This property holds the maximum permitted length of the text in the
+ TextField.
+
+ If the text is too long, it is truncated at the limit.
+ */
+ property alias maximumLength: textInput.maximumLength
+
+ /*!
+ \qmlproperty string TextField::placeholderText
+
+ This property contains the text that is shown in the text field when the
+ text field is empty.
+ */
+ property alias placeholderText: placeholderTextComponent.text
+
+ /*!
+ \qmlproperty bool TextField::readOnly
+
+ Sets whether user input can modify the contents of the TextField. Read-
+ only is different from a disabled text field in that the text field will
+ appear to be active and text can still be selected and copied.
+
+ If readOnly is set to \c true, then user input will not affect the text.
+ Any bindings or attempts to set the text property will still
+ work, however.
+ */
+ property alias readOnly: textInput.readOnly
+ Accessible.readOnly: readOnly
+
+ /*!
+ \qmlproperty bool TextField::selectByMouse
+ \since QtQuick.Controls 1.3
+
+ This property determines if the user can select the text with the
+ mouse.
+
+ The default value is \c true.
+ */
+ property bool selectByMouse: true
+
+ /*!
+ \qmlproperty string TextField::selectedText
+
+ Provides the text currently selected in the text input.
+
+ It is equivalent to the following snippet, but is faster and easier
+ to use.
+
+ \code
+ myTextField.text.toString().substring(myTextField.selectionStart, myTextField.selectionEnd);
+ \endcode
+ */
+ readonly property alias selectedText: textInput.selectedText
+
+ /*!
+ \qmlproperty int TextField::selectionEnd
+
+ The cursor position after the last character in the current selection.
+
+ This property is read-only. To change the selection, use
+ select(start,end), selectAll(), or selectWord().
+
+ \sa selectionStart, cursorPosition, selectedText
+ */
+ readonly property alias selectionEnd: textInput.selectionEnd
+
+ /*!
+ \qmlproperty int TextField::selectionStart
+
+ The cursor position before the first character in the current selection.
+
+ This property is read-only. To change the selection, use select(start,end),
+ selectAll(), or selectWord().
+
+ \sa selectionEnd, cursorPosition, selectedText
+ */
+ readonly property alias selectionStart: textInput.selectionStart
+
+ /*!
+ \qmlproperty string TextField::text
+
+ This property contains the text in the TextField.
+ */
+ property alias text: textInput.text
+
+ /*!
+ \qmlproperty Validator TextField::validator
+
+ Allows you to set a validator on the TextField. When a validator is set,
+ the TextField will only accept input which leaves the text property in
+ an intermediate state. The accepted signal will only be sent
+ if the text is in an acceptable state when enter is pressed.
+
+ Currently supported validators are \l[QtQuick]{IntValidator},
+ \l[QtQuick]{DoubleValidator}, and \l[QtQuick]{RegExpValidator}. An
+ example of using validators is shown below, which allows input of
+ integers between 11 and 31 into the text input:
+
+ \code
+ import QtQuick 2.2
+ import QtQuick.Controls 1.2
+
+ TextField {
+ validator: IntValidator {bottom: 11; top: 31;}
+ focus: true
+ }
+ \endcode
+
+ \sa acceptableInput, inputMask, accepted
+ */
+ property alias validator: textInput.validator
+
+ /*!
+ \since QtQuick.Controls 1.3
+
+ This property contains the edit \l Menu for working
+ with text selection. Set it to \c null if no menu
+ is wanted.
+ */
+ property Component menu: textInput.editMenu.defaultMenu
+
+ /*!
+ \qmlsignal TextField::accepted()
+
+ This signal is emitted when the Return or Enter key is pressed.
+ Note that if there is a \l validator or \l inputMask set on the text
+ field, the signal will only be emitted if the input is in an acceptable
+ state.
+
+ The corresponding handler is \c onAccepted.
+ */
+ signal accepted()
+
+ /*!
+ \qmlsignal TextField::editingFinished()
+ \since QtQuick.Controls 1.1
+
+ This signal is emitted when the Return or Enter key is pressed or
+ the text field loses focus. Note that if there is a validator or
+ inputMask set on the text field and enter/return is pressed, this
+ signal will only be emitted if the input follows
+ the inputMask and the validator returns an acceptable state.
+
+ The corresponding handler is \c onEditingFinished.
+ */
+ signal editingFinished()
+
+ /*!
+ \qmlmethod void TextField::copy()
+
+ Copies the currently selected text to the system clipboard.
+ */
+ function copy() {
+ textInput.copy()
+ }
+
+ /*!
+ \qmlmethod void TextField::cut()
+
+ Moves the currently selected text to the system clipboard.
+ */
+ function cut() {
+ textInput.cut()
+ }
+
+ /*!
+ \qmlmethod void TextField::deselect()
+
+ Removes active text selection.
+ */
+ function deselect() {
+ textInput.deselect();
+ }
+
+ /*!
+ \qmlmethod string TextField::getText(int start, int end)
+
+ Removes the section of text that is between the \a start and \a end
+ positions from the TextField.
+ */
+ function getText(start, end) {
+ return textInput.getText(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextField::insert(int position, string text)
+
+ Inserts \a text into the TextField at \a position.
+ */
+ function insert(position, text) {
+ textInput.insert(position, text);
+ }
+
+ /*!
+ \qmlmethod bool TextField::isRightToLeft(int start, int end)
+
+ Returns \c true if the natural reading direction of the editor text
+ found between positions \a start and \a end is right to left.
+ */
+ function isRightToLeft(start, end) {
+ return textInput.isRightToLeft(start, end);
+ }
+
+ /*!
+ \qmlmethod void TextField::paste()
+
+ Replaces the currently selected text by the contents of the system
+ clipboard.
+ */
+ function paste() {
+ textInput.paste()
+ }
+
+ /*!
+ \qmlmethod void TextField::redo()
+
+ Performs the last operation if redo is \l {canRedo}{available}.
+ */
+ function redo() {
+ textInput.redo();
+ }
+
+ /*!
+ \qmlmethod void TextField::remove(int start, int end)
+ \since QtQuick.Controls 1.4
+
+ Removes the section of text that is between the \a start and \a end positions.
+ */
+ function remove(start, end) {
+ textInput.remove(start, end)
+ }
+
+ /*!
+ \qmlmethod void TextField::select(int start, int end)
+
+ Causes the text from \a start to \a end to be selected.
+
+ If either start or end is out of range, the selection is not changed.
+
+ After calling select, selectionStart will become the lesser
+ and selectionEnd will become the greater (regardless of the order passed
+ to this method).
+
+ \sa selectionStart, selectionEnd
+ */
+ function select(start, end) {
+ textInput.select(start, end)
+ }
+
+ /*!
+ \qmlmethod void TextField::selectAll()
+
+ Causes all text to be selected.
+ */
+ function selectAll() {
+ textInput.selectAll()
+ }
+
+ /*!
+ \qmlmethod void TextField::selectWord()
+
+ Causes the word closest to the current cursor position to be selected.
+ */
+ function selectWord() {
+ textInput.selectWord()
+ }
+
+ /*!
+ \qmlmethod void TextField::undo()
+
+ Reverts the last operation if undo is \l {canUndo}{available}. undo()
+ deselects any current selection and updates the selection start to the
+ current cursor position.
+ */
+ function undo() {
+ textInput.undo();
+ }
+
+ /*! \qmlproperty bool TextField::hovered
+
+ This property holds whether the control is being hovered.
+ */
+ readonly property alias hovered: textInput.containsMouse
+
+ /*! \internal */
+ property alias __contentHeight: textInput.contentHeight
+
+ /*! \internal */
+ property alias __contentWidth: textInput.contentWidth
+
+ /*! \internal */
+ property alias __baselineOffset: textInput.baselineOffset
+
+ style: Settings.styleComponent(Settings.style, "TextFieldStyle.qml", textInput)
+
+ activeFocusOnTab: true
+
+ Accessible.name: text
+ Accessible.role: Accessible.EditableText
+ Accessible.description: placeholderText
+
+ Text {
+ id: placeholderTextComponent
+ anchors.fill: textInput
+ font: textInput.font
+ horizontalAlignment: textInput.horizontalAlignment
+ verticalAlignment: textInput.verticalAlignment
+ opacity: !textInput.displayText && (!textInput.activeFocus || textInput.horizontalAlignment !== Qt.AlignHCenter) ? 1.0 : 0.0
+ color: __panel ? __panel.placeholderTextColor : "darkgray"
+ clip: contentWidth > width;
+ elide: Text.ElideRight
+ renderType: __style ? __style.renderType : Text.NativeRendering
+ }
+
+ TextInputWithHandles {
+ id: textInput
+ focus: true
+ passwordCharacter: __style && __style.passwordCharacter !== undefined ? __style.passwordCharacter
+ : Qt.styleHints.passwordMaskCharacter
+ selectionColor: __panel ? __panel.selectionColor : "darkred"
+ selectedTextColor: __panel ? __panel.selectedTextColor : "white"
+
+ control: textfield
+ cursorHandle: __style ? __style.__cursorHandle : undefined
+ selectionHandle: __style ? __style.__selectionHandle : undefined
+
+ font: __panel ? __panel.font : TextSingleton.font
+ anchors.leftMargin: __panel ? __panel.leftMargin : 0
+ anchors.topMargin: __panel ? __panel.topMargin : 0
+ anchors.rightMargin: __panel ? __panel.rightMargin : 0
+ anchors.bottomMargin: __panel ? __panel.bottomMargin : 0
+
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+
+ color: __panel ? __panel.textColor : "darkgray"
+ clip: contentWidth > width
+
+ renderType: __style ? __style.renderType : Text.NativeRendering
+
+ Keys.forwardTo: textfield
+
+ EnterKey.type: control.EnterKey.type
+
+ onAccepted: textfield.accepted()
+
+ onEditingFinished: textfield.editingFinished()
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qmlc
new file mode 100644
index 00000000..26e12cf3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TextField.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qml
new file mode 100644
index 00000000..2e8a8fa3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qml
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ToolBar
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup applicationwindow
+ \ingroup controls
+ \brief Contains ToolButton and related controls.
+
+ \image toolbar.png
+
+ The common way of using ToolBar is in relation to \l ApplicationWindow. It
+ provides styling and is generally designed to work well with ToolButton as
+ well as other controls.
+
+ Note that the ToolBar does not provide a layout of its own, but requires
+ you to position its contents, for instance by creating a \l RowLayout.
+
+ If only a single item is used within the ToolBar, it will resize to fit the implicitHeight
+ of its contained item. This makes it particularly suitable for use together with layouts.
+ Otherwise the height is platform dependent.
+
+ \code
+ ApplicationWindow {
+ ...
+ toolBar:ToolBar {
+ RowLayout {
+ anchors.fill: parent
+ ToolButton {
+ iconSource: "new.png"
+ }
+ ToolButton {
+ iconSource: "open.png"
+ }
+ ToolButton {
+ iconSource: "save-as.png"
+ }
+ Item { Layout.fillWidth: true }
+ CheckBox {
+ text: "Enabled"
+ checked: true
+ Layout.alignment: Qt.AlignRight
+ }
+ }
+ }
+ }
+ \endcode
+*/
+
+FocusScope {
+ id: toolbar
+
+ activeFocusOnTab: false
+ Accessible.role: Accessible.ToolBar
+ LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
+ LayoutMirroring.childrenInherit: true
+
+ width: parent ? parent.width : implicitWidth
+ implicitWidth: container.leftMargin + container.rightMargin
+ + Math.max(container.layoutWidth, __panel ? __panel.implicitWidth : 0)
+ implicitHeight: container.topMargin + container.bottomMargin
+ + Math.max(container.layoutHeight, __panel ? __panel.implicitHeight : 0)
+
+ /*! \internal */
+ property Component style: Settings.styleComponent(Settings.style, "ToolBarStyle.qml", toolbar)
+
+ /*! \internal */
+ property alias __style: styleLoader.item
+
+ /*! \internal */
+ property Item __panel: panelLoader.item
+
+ /*! \internal */
+ default property alias __content: container.data
+
+ /*! \internal */
+ property var __menu
+
+ /*!
+ \qmlproperty Item ToolBar::contentItem
+
+ This property holds the content Item of the tool bar.
+
+ Items declared as children of a ToolBar are automatically parented to the ToolBar's contentItem.
+ Items created dynamically need to be explicitly parented to the contentItem:
+
+ \note The implicit size of the ToolBar is calculated based on the size of its content. If you want to anchor
+ items inside the tool bar, you must specify an explicit width and height on the ToolBar itself.
+ */
+ readonly property alias contentItem: container
+
+ data: [
+ Loader {
+ id: panelLoader
+ anchors.fill: parent
+ sourceComponent: styleLoader.item ? styleLoader.item.panel : null
+ onLoaded: item.z = -1
+ Loader {
+ id: styleLoader
+ property alias __control: toolbar
+ sourceComponent: style
+ }
+ },
+ Item {
+ id: container
+ z: 1
+ focus: true
+ anchors.fill: parent
+
+ anchors.topMargin: topMargin
+ anchors.leftMargin: leftMargin
+ anchors.rightMargin: rightMargin + (buttonLoader.active ? buttonLoader.width + rightMargin : 0)
+ anchors.bottomMargin: bottomMargin
+
+ property int topMargin: __style ? __style.padding.top : 0
+ property int bottomMargin: __style ? __style.padding.bottom : 0
+ property int leftMargin: __style ? __style.padding.left : 0
+ property int rightMargin: __style ? __style.padding.right : 0
+
+ property Item layoutItem: container.children.length === 1 ? container.children[0] : null
+ property real layoutWidth: layoutItem ? (layoutItem.implicitWidth || layoutItem.width) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.leftMargin +
+ layoutItem.anchors.rightMargin : 0) : 0
+ property real layoutHeight: layoutItem ? (layoutItem.implicitHeight || layoutItem.height) +
+ (layoutItem.anchors.fill ? layoutItem.anchors.topMargin +
+ layoutItem.anchors.bottomMargin : 0) : 0
+ },
+ Loader {
+ id: buttonLoader
+ anchors.right: parent.right
+ anchors.rightMargin: container.rightMargin
+ anchors.verticalCenter: parent.verticalCenter
+ sourceComponent: ToolMenuButton {
+ menu: toolbar.__menu
+ panel: toolbar.__style.menuButton || null
+ }
+ active: !!__menu && __menu.items.length > 0 && !!__style.menuButton
+ }
+ ]
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qmlc
new file mode 100644
index 00000000..d9defd0b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolBar.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qml
new file mode 100644
index 00000000..1d5e474f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype ToolButton
+ \inqmlmodule QtQuick.Controls
+ \since 5.1
+ \ingroup controls
+ \brief Provides a button type that is typically used within a ToolBar.
+
+ \image toolbar.png
+
+ ToolButton is functionally similar to \l {QtQuick.Controls::}{Button}, but
+ can provide a look that is more suitable within a \l ToolBar.
+
+ \code
+ ApplicationWindow {
+ ...
+ toolBar: ToolBar {
+ RowLayout {
+ ToolButton {
+ iconSource: "new.png"
+ }
+ ToolButton {
+ iconSource: "open.png"
+ }
+ ToolButton {
+ iconSource: "save-as.png"
+ }
+ Item { Layout.fillWidth: true }
+ CheckBox {
+ text: "Enabled"
+ checked: true
+ }
+ }
+ }
+ }
+ \endcode
+
+ You can create a custom appearance for a ToolButton by
+ assigning a \l {ButtonStyle}.
+*/
+
+Button {
+ id: button
+ style: Settings.styleComponent(Settings.style, "ToolButtonStyle.qml", button)
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qmlc
new file mode 100644
index 00000000..ff422440
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/ToolButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qml
new file mode 100644
index 00000000..2bedb9e6
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qml
@@ -0,0 +1,421 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.2
+import QtQml.Models 2.2
+
+BasicTableView {
+ id: root
+
+ property var model: null
+ property alias rootIndex: modelAdaptor.rootIndex
+
+ readonly property var currentIndex: modelAdaptor.updateCount, modelAdaptor.mapRowToModelIndex(__currentRow)
+ property ItemSelectionModel selection: null
+
+ signal activated(var index)
+ signal clicked(var index)
+ signal doubleClicked(var index)
+ signal pressAndHold(var index)
+ signal expanded(var index)
+ signal collapsed(var index)
+
+ function isExpanded(index) {
+ if (index.valid && index.model !== model) {
+ console.warn("TreeView.isExpanded: model and index mismatch")
+ return false
+ }
+ return modelAdaptor.isExpanded(index)
+ }
+
+ function collapse(index) {
+ if (index.valid && index.model !== model)
+ console.warn("TreeView.collapse: model and index mismatch")
+ else
+ modelAdaptor.collapse(index)
+ }
+
+ function expand(index) {
+ if (index.valid && index.model !== model)
+ console.warn("TreeView.expand: model and index mismatch")
+ else
+ modelAdaptor.expand(index)
+ }
+
+ function indexAt(x, y) {
+ var obj = root.mapToItem(__listView.contentItem, x, y)
+ return modelAdaptor.mapRowToModelIndex(__listView.indexAt(obj.x, obj.y))
+ }
+
+ style: Settings.styleComponent(Settings.style, "TreeViewStyle.qml", root)
+
+ // Internal stuff. Do not look
+
+ __viewTypeName: "TreeView"
+
+ __model: TreeModelAdaptor {
+ id: modelAdaptor
+ model: root.model
+
+ // Hack to force re-evaluation of the currentIndex binding
+ property int updateCount: 0
+ onModelReset: updateCount++
+ onRowsInserted: updateCount++
+ onRowsRemoved: updateCount++
+
+ onExpanded: root.expanded(index)
+ onCollapsed: root.collapsed(index)
+ }
+
+ __itemDelegateLoader: TreeViewItemDelegateLoader {
+ __style: root.__style
+ __itemDelegate: root.itemDelegate
+ __mouseArea: mouseArea
+ __treeModel: modelAdaptor
+ }
+
+ onSelectionModeChanged: if (!!selection) selection.clear()
+
+ __mouseArea: MouseArea {
+ id: mouseArea
+
+ parent: __listView
+ width: __listView.width
+ height: __listView.height
+ z: -1
+ propagateComposedEvents: true
+ focus: true
+ // If there is not a touchscreen, keep the flickable from eating our mouse drags.
+ // If there is a touchscreen, flicking is possible, but selection can be done only by tapping, not by dragging.
+ preventStealing: !Settings.hasTouchScreen
+
+ property var clickedIndex: undefined
+ property var pressedIndex: undefined
+ property bool selectOnRelease: false
+ property int pressedColumn: -1
+ readonly property alias currentRow: root.__currentRow
+ readonly property alias currentIndex: root.currentIndex
+
+ // Handle vertical scrolling whem dragging mouse outside boundaries
+ property int autoScroll: 0 // 0 -> do nothing; 1 -> increment; 2 -> decrement
+ property bool shiftPressed: false // forward shift key state to the autoscroll timer
+
+ Timer {
+ running: mouseArea.autoScroll !== 0 && __verticalScrollBar.visible
+ interval: 20
+ repeat: true
+ onTriggered: {
+ var oldPressedIndex = mouseArea.pressedIndex
+ var row
+ if (mouseArea.autoScroll === 1) {
+ __listView.incrementCurrentIndexBlocking();
+ row = __listView.indexAt(0, __listView.height + __listView.contentY)
+ if (row === -1)
+ row = __listView.count - 1
+ } else {
+ __listView.decrementCurrentIndexBlocking();
+ row = __listView.indexAt(0, __listView.contentY)
+ }
+
+ var index = modelAdaptor.mapRowToModelIndex(row)
+ if (index !== oldPressedIndex) {
+ mouseArea.pressedIndex = index
+ var modifiers = mouseArea.shiftPressed ? Qt.ShiftModifier : Qt.NoModifier
+ mouseArea.mouseSelect(index, modifiers, true /* drag */)
+ }
+ }
+ }
+
+ function mouseSelect(modelIndex, modifiers, drag) {
+ if (!selection) {
+ maybeWarnAboutSelectionMode()
+ return
+ }
+
+ if (selectionMode) {
+ selection.setCurrentIndex(modelIndex, ItemSelectionModel.NoUpdate)
+ if (selectionMode === SelectionMode.SingleSelection) {
+ selection.select(modelIndex, ItemSelectionModel.ClearAndSelect)
+ } else {
+ var selectRowRange = (drag && (selectionMode === SelectionMode.MultiSelection
+ || (selectionMode === SelectionMode.ExtendedSelection
+ && modifiers & Qt.ControlModifier)))
+ || modifiers & Qt.ShiftModifier
+ var itemSelection = !selectRowRange || clickedIndex === modelIndex ? modelIndex
+ : modelAdaptor.selectionForRowRange(clickedIndex, modelIndex)
+
+ if (selectionMode === SelectionMode.MultiSelection
+ || selectionMode === SelectionMode.ExtendedSelection && modifiers & Qt.ControlModifier) {
+ if (drag)
+ selection.select(itemSelection, ItemSelectionModel.ToggleCurrent)
+ else
+ selection.select(modelIndex, ItemSelectionModel.Toggle)
+ } else if (modifiers & Qt.ShiftModifier) {
+ selection.select(itemSelection, ItemSelectionModel.SelectCurrent)
+ } else {
+ clickedIndex = modelIndex // Needed only when drag is true
+ selection.select(modelIndex, ItemSelectionModel.ClearAndSelect)
+ }
+ }
+ }
+ }
+
+ function keySelect(keyModifiers) {
+ if (selectionMode) {
+ if (!keyModifiers)
+ clickedIndex = currentIndex
+ if (!(keyModifiers & Qt.ControlModifier))
+ mouseSelect(currentIndex, keyModifiers, keyModifiers & Qt.ShiftModifier)
+ }
+ }
+
+ function selected(row) {
+ if (selectionMode === SelectionMode.NoSelection)
+ return false
+
+ var modelIndex = null
+ if (!!selection) {
+ modelIndex = modelAdaptor.mapRowToModelIndex(row)
+ if (modelIndex.valid) {
+ if (selectionMode === SelectionMode.SingleSelection)
+ return selection.currentIndex === modelIndex
+ return selection.hasSelection && selection.isSelected(modelIndex)
+ } else {
+ return false
+ }
+ }
+
+ return row === currentRow
+ && (selectionMode === SelectionMode.SingleSelection
+ || (selectionMode > SelectionMode.SingleSelection && !selection))
+ }
+
+ function branchDecorationContains(x, y) {
+ var clickedItem = __listView.itemAt(0, y + __listView.contentY)
+ if (!(clickedItem && clickedItem.rowItem))
+ return false
+ var branchDecoration = clickedItem.rowItem.branchDecoration
+ if (!branchDecoration)
+ return false
+ var pos = mapToItem(branchDecoration, x, y)
+ return branchDecoration.contains(Qt.point(pos.x, pos.y))
+ }
+
+ function maybeWarnAboutSelectionMode() {
+ if (selectionMode > SelectionMode.SingleSelection)
+ console.warn("TreeView: Non-single selection is not supported without an ItemSelectionModel.")
+ }
+
+ onPressed: {
+ var pressedRow = __listView.indexAt(0, mouseY + __listView.contentY)
+ pressedIndex = modelAdaptor.mapRowToModelIndex(pressedRow)
+ pressedColumn = __listView.columnAt(mouseX)
+ selectOnRelease = false
+ __listView.forceActiveFocus()
+ if (pressedRow === -1
+ || Settings.hasTouchScreen
+ || branchDecorationContains(mouse.x, mouse.y)) {
+ return
+ }
+ if (selectionMode === SelectionMode.ExtendedSelection
+ && selection.isSelected(pressedIndex)) {
+ selectOnRelease = true
+ return
+ }
+ __listView.currentIndex = pressedRow
+ if (!clickedIndex)
+ clickedIndex = pressedIndex
+ mouseSelect(pressedIndex, mouse.modifiers, false)
+ if (!mouse.modifiers)
+ clickedIndex = pressedIndex
+ }
+
+ onReleased: {
+ if (selectOnRelease) {
+ var releasedRow = __listView.indexAt(0, mouseY + __listView.contentY)
+ var releasedIndex = modelAdaptor.mapRowToModelIndex(releasedRow)
+ if (releasedRow >= 0 && releasedIndex === pressedIndex)
+ mouseSelect(pressedIndex, mouse.modifiers, false)
+ }
+ pressedIndex = undefined
+ pressedColumn = -1
+ autoScroll = 0
+ selectOnRelease = false
+ }
+
+ onPositionChanged: {
+ // NOTE: Testing for pressed is not technically needed, at least
+ // until we decide to support tooltips or some other hover feature
+ if (mouseY > __listView.height && pressed) {
+ if (autoScroll === 1) return;
+ autoScroll = 1
+ } else if (mouseY < 0 && pressed) {
+ if (autoScroll === 2) return;
+ autoScroll = 2
+ } else {
+ autoScroll = 0
+ }
+
+ if (pressed && containsMouse) {
+ var oldPressedIndex = pressedIndex
+ var pressedRow = __listView.indexAt(0, mouseY + __listView.contentY)
+ pressedIndex = modelAdaptor.mapRowToModelIndex(pressedRow)
+ pressedColumn = __listView.columnAt(mouseX)
+ if (pressedRow > -1 && oldPressedIndex !== pressedIndex) {
+ __listView.currentIndex = pressedRow
+ mouseSelect(pressedIndex, mouse.modifiers, true /* drag */)
+ }
+ }
+ }
+
+ onExited: {
+ pressedIndex = undefined
+ pressedColumn = -1
+ selectOnRelease = false
+ }
+
+ onCanceled: {
+ pressedIndex = undefined
+ pressedColumn = -1
+ autoScroll = 0
+ selectOnRelease = false
+ }
+
+ onClicked: {
+ var clickIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (clickIndex > -1) {
+ var modelIndex = modelAdaptor.mapRowToModelIndex(clickIndex)
+ if (branchDecorationContains(mouse.x, mouse.y)) {
+ if (modelAdaptor.isExpanded(modelIndex))
+ modelAdaptor.collapse(modelIndex)
+ else
+ modelAdaptor.expand(modelIndex)
+ } else {
+ if (Settings.hasTouchScreen) {
+ // compensate for the fact that onPressed didn't select on press: do it here instead
+ pressedIndex = modelAdaptor.mapRowToModelIndex(clickIndex)
+ pressedColumn = __listView.columnAt(mouseX)
+ selectOnRelease = false
+ __listView.forceActiveFocus()
+ __listView.currentIndex = clickIndex
+ if (!clickedIndex)
+ clickedIndex = pressedIndex
+ mouseSelect(pressedIndex, mouse.modifiers, false)
+ if (!mouse.modifiers)
+ clickedIndex = pressedIndex
+ }
+ if (root.__activateItemOnSingleClick && !mouse.modifiers)
+ root.activated(modelIndex)
+ }
+ root.clicked(modelIndex)
+ }
+ }
+
+ onDoubleClicked: {
+ var clickIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (clickIndex > -1) {
+ var modelIndex = modelAdaptor.mapRowToModelIndex(clickIndex)
+ if (!root.__activateItemOnSingleClick)
+ root.activated(modelIndex)
+ root.doubleClicked(modelIndex)
+ }
+ }
+
+ onPressAndHold: {
+ var pressIndex = __listView.indexAt(0, mouseY + __listView.contentY)
+ if (pressIndex > -1) {
+ var modelIndex = modelAdaptor.mapRowToModelIndex(pressIndex)
+ root.pressAndHold(modelIndex)
+ }
+ }
+
+ Keys.forwardTo: [root]
+
+ Keys.onUpPressed: {
+ event.accepted = __listView.decrementCurrentIndexBlocking()
+ keySelect(event.modifiers)
+ }
+
+ Keys.onDownPressed: {
+ event.accepted = __listView.incrementCurrentIndexBlocking()
+ keySelect(event.modifiers)
+ }
+
+ Keys.onRightPressed: {
+ if (root.currentIndex.valid)
+ root.expand(currentIndex)
+ else
+ event.accepted = false
+ }
+
+ Keys.onLeftPressed: {
+ if (root.currentIndex.valid)
+ root.collapse(currentIndex)
+ else
+ event.accepted = false
+ }
+
+ Keys.onReturnPressed: {
+ if (root.currentIndex.valid)
+ root.activated(currentIndex)
+ else
+ event.accepted = false
+ }
+
+ Keys.onPressed: {
+ __listView.scrollIfNeeded(event.key)
+
+ if (event.key === Qt.Key_A && event.modifiers & Qt.ControlModifier
+ && !!selection && selectionMode > SelectionMode.SingleSelection) {
+ var sel = modelAdaptor.selectionForRowRange(0, __listView.count - 1)
+ selection.select(sel, ItemSelectionModel.SelectCurrent)
+ } else if (event.key === Qt.Key_Shift) {
+ shiftPressed = true
+ }
+ }
+
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Shift)
+ shiftPressed = false
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qmlc
new file mode 100644
index 00000000..fb2b8c6c
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/TreeView.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/plugins.qmltypes
new file mode 100644
index 00000000..0242497c
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/plugins.qmltypes
@@ -0,0 +1,3439 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtQuick.Controls 1.5'
+
+Module {
+ dependencies: [
+ "QtGraphicalEffects 1.12",
+ "QtQml 2.14",
+ "QtQml.Models 2.2",
+ "QtQuick 2.9",
+ "QtQuick.Controls.Styles 1.4",
+ "QtQuick.Extras 1.4",
+ "QtQuick.Layouts 1.1",
+ "QtQuick.Window 2.2"
+ ]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/AbstractItemModel 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QQuickAbstractStyle1"
+ defaultProperty: "data"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/AbstractStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "padding"; type: "QQuickPadding1"; isReadonly: true; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "QQuickAction1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls/Action 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "text"; type: "string" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "__icon"; type: "QVariant"; isReadonly: true }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "shortcut"; type: "QVariant" }
+ Signal {
+ name: "triggered"
+ Parameter { name: "source"; type: "QObject"; isPointer: true }
+ }
+ Signal { name: "triggered" }
+ Signal {
+ name: "toggled"
+ Parameter { name: "checked"; type: "bool" }
+ }
+ Signal {
+ name: "shortcutChanged"
+ Parameter { name: "shortcut"; type: "QVariant" }
+ }
+ Signal { name: "iconChanged" }
+ Signal {
+ name: "tooltipChanged"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "trigger"
+ Parameter { name: "source"; type: "QObject"; isPointer: true }
+ }
+ Method { name: "trigger" }
+ }
+ Component {
+ name: "QQuickCalendarModel1"
+ prototype: "QAbstractListModel"
+ exports: ["QtQuick.Controls.Private/CalendarModel 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "visibleDate"; type: "QDate" }
+ Property { name: "locale"; type: "QLocale" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Signal {
+ name: "visibleDateChanged"
+ Parameter { name: "visibleDate"; type: "QDate" }
+ }
+ Signal {
+ name: "localeChanged"
+ Parameter { name: "locale"; type: "QLocale" }
+ }
+ Signal {
+ name: "countChanged"
+ Parameter { name: "count"; type: "int" }
+ }
+ Method {
+ name: "dateAt"
+ type: "QDateTime"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "indexAt"
+ type: "int"
+ Parameter { name: "visibleDate"; type: "QDate" }
+ }
+ Method {
+ name: "weekNumberAt"
+ type: "int"
+ Parameter { name: "row"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickControlSettings1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/Settings 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Property { name: "style"; type: "QUrl"; isReadonly: true }
+ Property { name: "styleName"; type: "string" }
+ Property { name: "stylePath"; type: "string" }
+ Property { name: "dpiScaleFactor"; type: "double"; isReadonly: true }
+ Property { name: "dragThreshold"; type: "double"; isReadonly: true }
+ Property { name: "hasTouchScreen"; type: "bool"; isReadonly: true }
+ Property { name: "isMobile"; type: "bool"; isReadonly: true }
+ Property { name: "hoverEnabled"; type: "bool"; isReadonly: true }
+ Method {
+ name: "styleComponent"
+ type: "QQmlComponent*"
+ Parameter { name: "styleDirUrl"; type: "QUrl" }
+ Parameter { name: "controlStyleName"; type: "string" }
+ Parameter { name: "control"; type: "QObject"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QQuickControlsPrivate1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/Controls 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickControlsPrivate1Attached"
+ }
+ Component {
+ name: "QQuickControlsPrivate1Attached"
+ prototype: "QObject"
+ Property { name: "window"; type: "QQuickWindow"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ name: "QQuickExclusiveGroup1"
+ defaultProperty: "__actions"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls/ExclusiveGroup 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "current"; type: "QObject"; isPointer: true }
+ Property { name: "__actions"; type: "QQuickAction1"; isList: true; isReadonly: true }
+ Method {
+ name: "bindCheckable"
+ Parameter { name: "o"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "unbindCheckable"
+ Parameter { name: "o"; type: "QObject"; isPointer: true }
+ }
+ }
+ Component {
+ name: "QQuickMenu1"
+ defaultProperty: "items"
+ prototype: "QQuickMenuText1"
+ exports: ["QtQuick.Controls.Private/MenuPrivate 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "MenuType"
+ values: {
+ "DefaultMenu": 0,
+ "EditMenu": 1
+ }
+ }
+ Property { name: "title"; type: "string" }
+ Property { name: "items"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "__selectedIndex"; type: "int" }
+ Property { name: "__popupVisible"; type: "bool"; isReadonly: true }
+ Property { name: "__contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__minimumWidth"; type: "int" }
+ Property { name: "__font"; type: "QFont" }
+ Property { name: "__xOffset"; type: "double" }
+ Property { name: "__yOffset"; type: "double" }
+ Property { name: "__action"; type: "QQuickAction1"; isReadonly: true; isPointer: true }
+ Property { name: "__popupGeometry"; type: "QRect"; isReadonly: true }
+ Property { name: "__isProxy"; type: "bool" }
+ Signal { name: "aboutToShow" }
+ Signal { name: "aboutToHide" }
+ Signal { name: "popupVisibleChanged" }
+ Signal { name: "__menuPopupDestroyed" }
+ Signal { name: "menuContentItemChanged" }
+ Signal { name: "minimumWidthChanged" }
+ Signal { name: "__proxyChanged" }
+ Method { name: "__dismissMenu" }
+ Method { name: "__closeAndDestroy" }
+ Method { name: "__dismissAndDestroy" }
+ Method { name: "popup" }
+ Method {
+ name: "addItem"
+ type: "QQuickMenuItem1*"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "insertItem"
+ type: "QQuickMenuItem1*"
+ Parameter { type: "int" }
+ Parameter { type: "string" }
+ }
+ Method { name: "addSeparator" }
+ Method {
+ name: "insertSeparator"
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "insertItem"
+ Parameter { type: "int" }
+ Parameter { type: "QQuickMenuBase1"; isPointer: true }
+ }
+ Method {
+ name: "removeItem"
+ Parameter { type: "QQuickMenuBase1"; isPointer: true }
+ }
+ Method { name: "clear" }
+ Method {
+ name: "__popup"
+ Parameter { name: "targetRect"; type: "QRectF" }
+ Parameter { name: "atItemIndex"; type: "int" }
+ Parameter { name: "menuType"; type: "MenuType" }
+ }
+ Method {
+ name: "__popup"
+ Parameter { name: "targetRect"; type: "QRectF" }
+ Parameter { name: "atItemIndex"; type: "int" }
+ }
+ Method {
+ name: "__popup"
+ Parameter { name: "targetRect"; type: "QRectF" }
+ }
+ }
+ Component {
+ name: "QQuickMenuBar1"
+ defaultProperty: "menus"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/MenuBarPrivate 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "menus"; type: "QQuickMenu1"; isList: true; isReadonly: true }
+ Property { name: "__contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__parentWindow"; type: "QQuickWindow"; isPointer: true }
+ Property { name: "__isNative"; type: "bool" }
+ Signal { name: "nativeChanged" }
+ Signal { name: "contentItemChanged" }
+ }
+ Component {
+ name: "QQuickMenuBase1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls/MenuBase 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "visible"; type: "bool" }
+ Property { name: "type"; type: "QQuickMenuItemType1::MenuItemType"; isReadonly: true }
+ Property { name: "__parentMenu"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "__isNative"; type: "bool"; isReadonly: true }
+ Property { name: "__visualItem"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QQuickMenuItem1"
+ prototype: "QQuickMenuText1"
+ exports: ["QtQuick.Controls/MenuItem 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "text"; type: "string" }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "shortcut"; type: "QVariant" }
+ Property { name: "action"; type: "QQuickAction1"; isPointer: true }
+ Signal { name: "triggered" }
+ Signal {
+ name: "toggled"
+ Parameter { name: "checked"; type: "bool" }
+ }
+ Method { name: "trigger" }
+ }
+ Component {
+ name: "QQuickMenuItemType1"
+ exports: ["QtQuick.Controls/MenuItemType 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "MenuItemType"
+ values: {
+ "Separator": 0,
+ "Item": 1,
+ "Menu": 2,
+ "ScrollIndicator": 3
+ }
+ }
+ }
+ Component {
+ name: "QQuickMenuSeparator1"
+ prototype: "QQuickMenuBase1"
+ exports: ["QtQuick.Controls/MenuSeparator 1.0"]
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickMenuText1"
+ prototype: "QQuickMenuBase1"
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "__icon"; type: "QVariant"; isReadonly: true }
+ Signal { name: "__textChanged" }
+ }
+ Component {
+ name: "QQuickPadding1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/Padding 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "left"; type: "int" }
+ Property { name: "top"; type: "int" }
+ Property { name: "right"; type: "int" }
+ Property { name: "bottom"; type: "int" }
+ Method {
+ name: "setLeft"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setTop"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setRight"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setBottom"
+ Parameter { name: "arg"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickPopupWindow1"
+ defaultProperty: "popupContentItem"
+ prototype: "QQuickWindow"
+ exports: ["QtQuick.Controls.Private/PopupWindow 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "popupContentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "parentItem"; type: "QQuickItem"; isPointer: true }
+ Signal { name: "popupDismissed" }
+ Signal { name: "geometryChanged" }
+ Method { name: "show" }
+ Method { name: "dismissPopup" }
+ }
+ Component {
+ name: "QQuickRangeModel1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/RangeModel 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "value"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "stepSize"; type: "double" }
+ Property { name: "position"; type: "double" }
+ Property { name: "positionAtMinimum"; type: "double" }
+ Property { name: "positionAtMaximum"; type: "double" }
+ Property { name: "inverted"; type: "bool" }
+ Signal {
+ name: "valueChanged"
+ Parameter { name: "value"; type: "double" }
+ }
+ Signal {
+ name: "positionChanged"
+ Parameter { name: "position"; type: "double" }
+ }
+ Signal {
+ name: "stepSizeChanged"
+ Parameter { name: "stepSize"; type: "double" }
+ }
+ Signal {
+ name: "invertedChanged"
+ Parameter { name: "inverted"; type: "bool" }
+ }
+ Signal {
+ name: "minimumChanged"
+ Parameter { name: "min"; type: "double" }
+ }
+ Signal {
+ name: "maximumChanged"
+ Parameter { name: "max"; type: "double" }
+ }
+ Signal {
+ name: "positionAtMinimumChanged"
+ Parameter { name: "min"; type: "double" }
+ }
+ Signal {
+ name: "positionAtMaximumChanged"
+ Parameter { name: "max"; type: "double" }
+ }
+ Method { name: "toMinimum" }
+ Method { name: "toMaximum" }
+ Method {
+ name: "setValue"
+ Parameter { name: "value"; type: "double" }
+ }
+ Method {
+ name: "setPosition"
+ Parameter { name: "position"; type: "double" }
+ }
+ Method { name: "increaseSingleStep" }
+ Method { name: "decreaseSingleStep" }
+ Method {
+ name: "valueForPosition"
+ type: "double"
+ Parameter { name: "position"; type: "double" }
+ }
+ Method {
+ name: "positionForValue"
+ type: "double"
+ Parameter { name: "value"; type: "double" }
+ }
+ }
+ Component {
+ name: "QQuickRangedDate1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/RangedDate 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "date"; type: "QDateTime" }
+ Property { name: "minimumDate"; type: "QDateTime" }
+ Property { name: "maximumDate"; type: "QDateTime" }
+ }
+ Component {
+ name: "QQuickRootItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ Method {
+ name: "setWidth"
+ Parameter { name: "w"; type: "int" }
+ }
+ Method {
+ name: "setHeight"
+ Parameter { name: "h"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickScenePosListener1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/ScenePosListener 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "item"; type: "QQuickItem"; isPointer: true }
+ Property { name: "scenePos"; type: "QPointF"; isReadonly: true }
+ Property { name: "enabled"; type: "bool" }
+ }
+ Component {
+ name: "QQuickSelectionMode1"
+ exports: ["QtQuick.Controls/SelectionMode 1.1"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "SelectionMode"
+ values: {
+ "NoSelection": 0,
+ "SingleSelection": 1,
+ "ExtendedSelection": 2,
+ "MultiSelection": 3,
+ "ContiguousSelection": 4
+ }
+ }
+ }
+ Component {
+ name: "QQuickSpinBoxValidator1"
+ prototype: "QValidator"
+ exports: ["QtQuick.Controls.Private/SpinBoxValidator 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "text"; type: "string"; isReadonly: true }
+ Property { name: "value"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "decimals"; type: "int" }
+ Property { name: "stepSize"; type: "double" }
+ Property { name: "prefix"; type: "string" }
+ Property { name: "suffix"; type: "string" }
+ Method { name: "increment" }
+ Method { name: "decrement" }
+ }
+ Component {
+ name: "QQuickStack1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls/Stack 1.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "Inactive": 0,
+ "Deactivating": 1,
+ "Activating": 2,
+ "Active": 3
+ }
+ }
+ Property { name: "index"; type: "int"; isReadonly: true }
+ Property { name: "__index"; type: "int" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "__status"; type: "Status" }
+ Property { name: "view"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "__view"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QQuickStyleItem1"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Private/StyleItem 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "border"; type: "QQuickPadding1"; isReadonly: true; isPointer: true }
+ Property { name: "sunken"; type: "bool" }
+ Property { name: "raised"; type: "bool" }
+ Property { name: "active"; type: "bool" }
+ Property { name: "selected"; type: "bool" }
+ Property { name: "hasFocus"; type: "bool" }
+ Property { name: "on"; type: "bool" }
+ Property { name: "hover"; type: "bool" }
+ Property { name: "horizontal"; type: "bool" }
+ Property { name: "isTransient"; type: "bool" }
+ Property { name: "elementType"; type: "string" }
+ Property { name: "text"; type: "string" }
+ Property { name: "activeControl"; type: "string" }
+ Property { name: "style"; type: "string"; isReadonly: true }
+ Property { name: "hints"; type: "QVariantMap" }
+ Property { name: "properties"; type: "QVariantMap" }
+ Property { name: "font"; type: "QFont"; isReadonly: true }
+ Property { name: "minimum"; type: "int" }
+ Property { name: "maximum"; type: "int" }
+ Property { name: "value"; type: "int" }
+ Property { name: "step"; type: "int" }
+ Property { name: "paintMargins"; type: "int" }
+ Property { name: "contentWidth"; type: "int" }
+ Property { name: "contentHeight"; type: "int" }
+ Property { name: "textureWidth"; type: "int" }
+ Property { name: "textureHeight"; type: "int" }
+ Signal { name: "transientChanged" }
+ Signal { name: "infoChanged" }
+ Signal { name: "hintChanged" }
+ Signal {
+ name: "contentWidthChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "contentHeightChanged"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Signal {
+ name: "textureWidthChanged"
+ Parameter { name: "w"; type: "int" }
+ }
+ Signal {
+ name: "textureHeightChanged"
+ Parameter { name: "h"; type: "int" }
+ }
+ Method {
+ name: "pixelMetric"
+ type: "int"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "styleHint"
+ type: "QVariant"
+ Parameter { type: "string" }
+ }
+ Method { name: "updateSizeHint" }
+ Method { name: "updateRect" }
+ Method { name: "updateBaselineOffset" }
+ Method { name: "updateItem" }
+ Method {
+ name: "hitTest"
+ type: "string"
+ Parameter { name: "x"; type: "int" }
+ Parameter { name: "y"; type: "int" }
+ }
+ Method {
+ name: "subControlRect"
+ type: "QRectF"
+ Parameter { name: "subcontrolString"; type: "string" }
+ }
+ Method {
+ name: "elidedText"
+ type: "string"
+ Parameter { name: "text"; type: "string" }
+ Parameter { name: "elideMode"; type: "int" }
+ Parameter { name: "width"; type: "int" }
+ }
+ Method {
+ name: "hasThemeIcon"
+ type: "bool"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "textWidth"
+ type: "double"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "textHeight"
+ type: "double"
+ Parameter { type: "string" }
+ }
+ }
+ Component {
+ name: "QQuickTooltip1"
+ prototype: "QObject"
+ exports: ["QtQuick.Controls.Private/Tooltip 1.0"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+ Method {
+ name: "showText"
+ Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
+ Parameter { name: "pos"; type: "QPointF" }
+ Parameter { name: "text"; type: "string" }
+ }
+ Method { name: "hideText" }
+ }
+ Component {
+ name: "QQuickTreeModelAdaptor1"
+ prototype: "QAbstractListModel"
+ exports: ["QtQuick.Controls.Private/TreeModelAdaptor 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
+ Property { name: "rootIndex"; type: "QModelIndex" }
+ Signal {
+ name: "modelChanged"
+ Parameter { name: "model"; type: "QAbstractItemModel"; isPointer: true }
+ }
+ Signal {
+ name: "expanded"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "collapsed"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "expand"
+ Parameter { type: "QModelIndex" }
+ }
+ Method {
+ name: "collapse"
+ Parameter { type: "QModelIndex" }
+ }
+ Method {
+ name: "setModel"
+ Parameter { name: "model"; type: "QAbstractItemModel"; isPointer: true }
+ }
+ Method {
+ name: "mapRowToModelIndex"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ }
+ Method {
+ name: "selectionForRowRange"
+ type: "QItemSelection"
+ Parameter { name: "fromIndex"; type: "QModelIndex" }
+ Parameter { name: "toIndex"; type: "QModelIndex" }
+ }
+ Method {
+ name: "isExpanded"
+ type: "bool"
+ Parameter { type: "QModelIndex" }
+ }
+ }
+ Component {
+ name: "QQuickWheelArea1"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["QtQuick.Controls.Private/WheelArea 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "verticalDelta"; type: "double" }
+ Property { name: "horizontalDelta"; type: "double" }
+ Property { name: "horizontalMinimumValue"; type: "double" }
+ Property { name: "horizontalMaximumValue"; type: "double" }
+ Property { name: "verticalMinimumValue"; type: "double" }
+ Property { name: "verticalMaximumValue"; type: "double" }
+ Property { name: "horizontalValue"; type: "double" }
+ Property { name: "verticalValue"; type: "double" }
+ Property { name: "scrollSpeed"; type: "double" }
+ Property { name: "active"; type: "bool" }
+ Property { name: "inverted"; type: "bool"; isReadonly: true }
+ Signal { name: "verticalWheelMoved" }
+ Signal { name: "horizontalWheelMoved" }
+ }
+ Component {
+ prototype: "QQuickWindowQmlImpl"
+ name: "QtQuick.Controls/ApplicationWindow 1.0"
+ exports: ["QtQuick.Controls/ApplicationWindow 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "menuBar"; type: "MenuBar_QMLTYPE_4"; isPointer: true }
+ Property { name: "toolBar"; type: "QQuickItem"; isPointer: true }
+ Property { name: "statusBar"; type: "QQuickItem"; isPointer: true }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__topBottomMargins"; type: "double" }
+ Property { name: "__qwindowsize_max"; type: "double"; isReadonly: true }
+ Property { name: "__width"; type: "double" }
+ Property { name: "__height"; type: "double" }
+ Property { name: "contentItem"; type: "ContentItem_QMLTYPE_2"; isReadonly: true; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "__panel"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ }
+ Component {
+ prototype: "QObject"
+ name: "QtQuick.Controls.Styles/ApplicationWindowStyle 1.3"
+ exports: ["QtQuick.Controls.Styles/ApplicationWindowStyle 1.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ Property {
+ name: "control"
+ type: "ApplicationWindow_QMLTYPE_14"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/BusyIndicator 1.1"
+ exports: ["QtQuick.Controls/BusyIndicator 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "running"; type: "bool" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/BusyIndicatorStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/BusyIndicatorStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "BusyIndicator_QMLTYPE_21"; isReadonly: true; isPointer: true }
+ Property { name: "indicator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Button 1.0"
+ exports: ["QtQuick.Controls/Button 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "isDefault"; type: "bool" }
+ Property { name: "menu"; type: "Menu_QMLTYPE_55"; isPointer: true }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "action"; type: "QQuickAction1"; isPointer: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "text"; type: "string" }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "__position"; type: "string" }
+ Property { name: "__iconOverriden"; type: "bool"; isReadonly: true }
+ Property { name: "__action"; type: "QQuickAction1"; isPointer: true }
+ Property { name: "__iconAction"; type: "QQuickAction1"; isReadonly: true; isPointer: true }
+ Property { name: "__behavior"; type: "QVariant" }
+ Property { name: "__effectivePressed"; type: "bool" }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Signal { name: "clicked" }
+ Method { name: "accessiblePressAction"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ButtonStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ButtonStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Button_QMLTYPE_60"; isReadonly: true; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Calendar 1.2"
+ exports: ["QtQuick.Controls/Calendar 1.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "visibleMonth"; type: "int" }
+ Property { name: "visibleYear"; type: "int" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "weekNumbersVisible"; type: "bool" }
+ Property { name: "navigationBarVisible"; type: "bool" }
+ Property { name: "dayOfWeekFormat"; type: "int" }
+ Property { name: "locale"; type: "QVariant" }
+ Property { name: "__model"; type: "QQuickCalendarModel1"; isPointer: true }
+ Property { name: "selectedDate"; type: "QDateTime" }
+ Property { name: "minimumDate"; type: "QDateTime" }
+ Property { name: "maximumDate"; type: "QDateTime" }
+ Property { name: "__locale"; type: "QVariant" }
+ Signal {
+ name: "hovered"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "pressed"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Method { name: "showPreviousMonth"; type: "QVariant" }
+ Method { name: "showNextMonth"; type: "QVariant" }
+ Method { name: "showPreviousYear"; type: "QVariant" }
+ Method { name: "showNextYear"; type: "QVariant" }
+ Method { name: "__selectPreviousMonth"; type: "QVariant" }
+ Method { name: "__selectNextMonth"; type: "QVariant" }
+ Method { name: "__selectPreviousWeek"; type: "QVariant" }
+ Method { name: "__selectNextWeek"; type: "QVariant" }
+ Method { name: "__selectFirstDayOfMonth"; type: "QVariant" }
+ Method { name: "__selectLastDayOfMonth"; type: "QVariant" }
+ Method { name: "__selectPreviousDay"; type: "QVariant" }
+ Method { name: "__selectNextDay"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Calendar 1.6"
+ exports: ["QtQuick.Controls/Calendar 1.6"]
+ exportMetaObjectRevisions: [6]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "visibleMonth"; type: "int" }
+ Property { name: "visibleYear"; type: "int" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "weekNumbersVisible"; type: "bool" }
+ Property { name: "navigationBarVisible"; type: "bool" }
+ Property { name: "dayOfWeekFormat"; type: "int" }
+ Property { name: "locale"; type: "QVariant" }
+ Property { name: "__model"; type: "QQuickCalendarModel1"; isPointer: true }
+ Property { name: "selectedDate"; type: "QDateTime" }
+ Property { name: "minimumDate"; type: "QDateTime" }
+ Property { name: "maximumDate"; type: "QDateTime" }
+ Property { name: "__locale"; type: "QVariant" }
+ Signal {
+ name: "hovered"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "pressed"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "released"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "date"; type: "QDateTime" }
+ }
+ Method { name: "showPreviousMonth"; type: "QVariant" }
+ Method { name: "showNextMonth"; type: "QVariant" }
+ Method { name: "showPreviousYear"; type: "QVariant" }
+ Method { name: "showNextYear"; type: "QVariant" }
+ Method { name: "__selectPreviousMonth"; type: "QVariant" }
+ Method { name: "__selectNextMonth"; type: "QVariant" }
+ Method { name: "__selectPreviousWeek"; type: "QVariant" }
+ Method { name: "__selectNextWeek"; type: "QVariant" }
+ Method { name: "__selectFirstDayOfMonth"; type: "QVariant" }
+ Method { name: "__selectLastDayOfMonth"; type: "QVariant" }
+ Method { name: "__selectPreviousDay"; type: "QVariant" }
+ Method { name: "__selectNextDay"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/CalendarStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/CalendarStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Calendar_QMLTYPE_65"; isReadonly: true; isPointer: true }
+ Property { name: "gridColor"; type: "QColor" }
+ Property { name: "gridVisible"; type: "bool" }
+ Property { name: "__gridLineWidth"; type: "double" }
+ Property { name: "__horizontalSeparatorColor"; type: "QColor" }
+ Property { name: "__verticalSeparatorColor"; type: "QColor" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "navigationBar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "dayDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "dayOfWeekDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "weekNumberDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Method {
+ name: "__cellRectAt"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "__isValidDate"
+ type: "QVariant"
+ Parameter { name: "date"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/CheckBox 1.0"
+ exports: ["QtQuick.Controls/CheckBox 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "checkedState"; type: "int" }
+ Property { name: "partiallyCheckedEnabled"; type: "bool" }
+ Property { name: "__ignoreChecked"; type: "bool" }
+ Property { name: "__ignoreCheckedState"; type: "bool" }
+ Method { name: "__cycleCheckBoxStates"; type: "QVariant" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "__cycleStatesHandler"; type: "QVariant" }
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Signal { name: "clicked" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/CheckBoxStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/CheckBoxStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "CheckBox_QMLTYPE_88"; isReadonly: true; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "spacing"; type: "int" }
+ Property { name: "indicator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/CircularButtonStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/CircularButtonStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property {
+ name: "__buttonHelper"
+ type: "CircularButtonStyleHelper_QMLTYPE_93"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "control"; type: "Button_QMLTYPE_60"; isReadonly: true; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/CircularGaugeStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/CircularGaugeStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "CircularGauge_QMLTYPE_97"; isReadonly: true; isPointer: true }
+ Property { name: "outerRadius"; type: "double"; isReadonly: true }
+ Property { name: "minimumValueAngle"; type: "double" }
+ Property { name: "maximumValueAngle"; type: "double" }
+ Property { name: "angleRange"; type: "double"; isReadonly: true }
+ Property { name: "needleRotation"; type: "double" }
+ Property { name: "tickmarkStepSize"; type: "double" }
+ Property { name: "tickmarkInset"; type: "double" }
+ Property { name: "tickmarkCount"; type: "int"; isReadonly: true }
+ Property { name: "minorTickmarkCount"; type: "int" }
+ Property { name: "minorTickmarkInset"; type: "double" }
+ Property { name: "labelInset"; type: "double" }
+ Property { name: "labelStepSize"; type: "double" }
+ Property { name: "labelCount"; type: "int"; isReadonly: true }
+ Property { name: "__protectedScope"; type: "QObject"; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minorTickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmarkLabel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "needle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "foreground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Method {
+ name: "valueToAngle"
+ type: "QVariant"
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/CircularTickmarkLabelStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/CircularTickmarkLabelStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "outerRadius"; type: "double"; isReadonly: true }
+ Property { name: "__protectedScope"; type: "QObject"; isPointer: true }
+ Property { name: "tickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minorTickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmarkLabel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/ComboBox 1.0"
+ exports: ["QtQuick.Controls/ComboBox 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "textRole"; type: "string" }
+ Property { name: "editable"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "__popup"; type: "QVariant" }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "currentIndex"; type: "int" }
+ Property { name: "currentText"; type: "string"; isReadonly: true }
+ Property { name: "editText"; type: "string" }
+ Property { name: "inputMethodHints"; type: "int" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "validator"; type: "QValidator"; isPointer: true }
+ Property { name: "acceptableInput"; type: "bool"; isReadonly: true }
+ Signal { name: "accepted" }
+ Signal {
+ name: "activated"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "textAt"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "find"
+ type: "QVariant"
+ Parameter { name: "text"; type: "QVariant" }
+ }
+ Method { name: "selectAll"; type: "QVariant" }
+ Method { name: "__selectPrevItem"; type: "QVariant" }
+ Method { name: "__selectNextItem"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ComboBoxStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ComboBoxStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "renderType"; type: "int" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "control"; type: "ComboBox_QMLTYPE_120"; isReadonly: true; isPointer: true }
+ Property { name: "dropDownButtonWidth"; type: "int" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__editor"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__dropDownStyle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__popupStyle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__selectionHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "drowDownButtonWidth"; type: "int" }
+ }
+ Component {
+ prototype: "QObject"
+ name: "QtQuick.Controls.Styles/CommonStyleHelper 1.0"
+ exports: ["QtQuick.Controls.Styles/CommonStyleHelper 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ Property { name: "control"; type: "QQuickItem"; isPointer: true }
+ Property { name: "buttonColorUpTop"; type: "QColor" }
+ Property { name: "buttonColorUpBottom"; type: "QColor" }
+ Property { name: "buttonColorDownTop"; type: "QColor" }
+ Property { name: "buttonColorDownBottom"; type: "QColor" }
+ Property { name: "textColorUp"; type: "QColor" }
+ Property { name: "textColorDown"; type: "QColor" }
+ Property { name: "textRaisedColorUp"; type: "QColor" }
+ Property { name: "textRaisedColorDown"; type: "QColor" }
+ Property { name: "offColor"; type: "QColor" }
+ Property { name: "offColorShine"; type: "QColor" }
+ Property { name: "onColor"; type: "QColor" }
+ Property { name: "onColorShine"; type: "QColor" }
+ Property { name: "inactiveColor"; type: "QColor" }
+ Property { name: "inactiveColorShine"; type: "QColor" }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/DelayButtonStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/DelayButtonStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "DelayButton_QMLTYPE_159"; isReadonly: true; isPointer: true }
+ Property { name: "progressBarGradient"; type: "QQuickGradient"; isPointer: true }
+ Property { name: "progressBarDropShadowColor"; type: "QColor" }
+ Property { name: "foreground"; type: "QQmlComponent"; isPointer: true }
+ Property {
+ name: "__buttonHelper"
+ type: "CircularButtonStyleHelper_QMLTYPE_93"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/DialStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/DialStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Dial_QMLTYPE_165"; isReadonly: true; isPointer: true }
+ Property { name: "outerRadius"; type: "double"; isReadonly: true }
+ Property { name: "handleInset"; type: "double" }
+ Property { name: "tickmarkStepSize"; type: "double" }
+ Property { name: "tickmarkInset"; type: "double" }
+ Property { name: "tickmarkCount"; type: "int"; isReadonly: true }
+ Property { name: "minorTickmarkCount"; type: "int" }
+ Property { name: "minorTickmarkInset"; type: "double" }
+ Property { name: "labelInset"; type: "double" }
+ Property { name: "labelStepSize"; type: "double" }
+ Property { name: "labelCount"; type: "int"; isReadonly: true }
+ Property { name: "__tickmarkRadius"; type: "double"; isReadonly: true }
+ Property { name: "__handleRadius"; type: "double"; isReadonly: true }
+ Property { name: "__dragToSet"; type: "bool" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minorTickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmarkLabel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Method {
+ name: "valueToAngle"
+ type: "QVariant"
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/GaugeStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/GaugeStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Gauge_QMLTYPE_173"; isReadonly: true; isPointer: true }
+ Property { name: "valuePosition"; type: "double"; isReadonly: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minorTickmark"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmarkLabel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "valueBar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "foreground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/GroupBox 1.0"
+ exports: ["QtQuick.Controls/GroupBox 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "__content"
+ Property { name: "title"; type: "string" }
+ Property { name: "flat"; type: "bool" }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "__content"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "__checkbox"; type: "CheckBox_QMLTYPE_88"; isReadonly: true; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/HandleStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/HandleStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handleColorTop"; type: "QColor" }
+ Property { name: "handleColorBottom"; type: "QColor" }
+ Property { name: "handleColorBottomStop"; type: "double" }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QObject"
+ name: "QtQuick.Controls.Styles/HandleStyleHelper 1.0"
+ exports: ["QtQuick.Controls.Styles/HandleStyleHelper 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ Property { name: "handleColorTop"; type: "QColor" }
+ Property { name: "handleColorBottom"; type: "QColor" }
+ Property { name: "handleColorBottomStop"; type: "double" }
+ Property { name: "handleRingColorTop"; type: "QColor" }
+ Property { name: "handleRingColorBottom"; type: "QColor" }
+ Method {
+ name: "paintHandle"
+ type: "QVariant"
+ Parameter { name: "ctx"; type: "QVariant" }
+ Parameter { name: "handleX"; type: "QVariant" }
+ Parameter { name: "handleY"; type: "QVariant" }
+ Parameter { name: "handleWidth"; type: "QVariant" }
+ Parameter { name: "handleHeight"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickText"
+ name: "QtQuick.Controls/Label 1.0"
+ exports: ["QtQuick.Controls/Label 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ }
+ Component {
+ prototype: "QQuickMenu1"
+ name: "QtQuick.Controls/Menu 1.0"
+ exports: ["QtQuick.Controls/Menu 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "items"
+ Property { name: "__selfComponent"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__usingDefaultStyle"; type: "bool" }
+ Property { name: "__parentContentItem"; type: "QVariant" }
+ Property { name: "__currentIndex"; type: "int" }
+ Method {
+ name: "addMenu"
+ type: "QVariant"
+ Parameter { name: "title"; type: "QVariant" }
+ }
+ Method {
+ name: "insertMenu"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "title"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickMenuBar1"
+ name: "QtQuick.Controls/MenuBar 1.0"
+ exports: ["QtQuick.Controls/MenuBar 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "menus"
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__menuBarComponent"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/MenuBarStyle 1.2"
+ exports: ["QtQuick.Controls.Styles/MenuBarStyle 1.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "menuStyle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "__isNative"; type: "bool" }
+ Method {
+ name: "formatMnemonic"
+ type: "QVariant"
+ Parameter { name: "text"; type: "QVariant" }
+ Parameter { name: "underline"; type: "QVariant" }
+ }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/MenuStyle 1.2"
+ exports: ["QtQuick.Controls.Styles/MenuStyle 1.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "submenuOverlap"; type: "int" }
+ Property { name: "submenuPopupDelay"; type: "int" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "separator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "scrollIndicator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "__menuItemType"; type: "string" }
+ Property { name: "__backgroundColor"; type: "QColor" }
+ Property { name: "__borderColor"; type: "QColor" }
+ Property { name: "__maxPopupHeight"; type: "int" }
+ Property { name: "__selectedBackgroundColor"; type: "QColor" }
+ Property { name: "__labelColor"; type: "QColor" }
+ Property { name: "__selectedLabelColor"; type: "QColor" }
+ Property { name: "__disabledLabelColor"; type: "QColor" }
+ Property { name: "__mirrored"; type: "bool"; isReadonly: true }
+ Property { name: "__leftLabelMargin"; type: "int" }
+ Property { name: "__rightLabelMargin"; type: "int" }
+ Property { name: "__minRightLabelSpacing"; type: "int" }
+ Property { name: "__scrollerStyle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "menuItemPanel"; type: "QQmlComponent"; isPointer: true }
+ Property {
+ name: "itemDelegate"
+ type: "MenuItemSubControls_QMLTYPE_125"
+ isReadonly: true
+ isPointer: true
+ }
+ Method {
+ name: "formatMnemonic"
+ type: "QVariant"
+ Parameter { name: "text"; type: "QVariant" }
+ Parameter { name: "underline"; type: "QVariant" }
+ }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/PieMenuStyle 1.3"
+ exports: ["QtQuick.Controls.Styles/PieMenuStyle 1.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "PieMenu_QMLTYPE_192"; isReadonly: true; isPointer: true }
+ Property { name: "backgroundColor"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "shadowColor"; type: "QColor" }
+ Property { name: "shadowRadius"; type: "double" }
+ Property { name: "shadowSpread"; type: "double" }
+ Property { name: "radius"; type: "double"; isReadonly: true }
+ Property { name: "cancelRadius"; type: "double" }
+ Property { name: "startAngle"; type: "double" }
+ Property { name: "endAngle"; type: "double" }
+ Property { name: "__iconOffset"; type: "double"; isReadonly: true }
+ Property { name: "__selectableRadius"; type: "double"; isReadonly: true }
+ Property { name: "__implicitWidth"; type: "int" }
+ Property { name: "__implicitHeight"; type: "int" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "cancel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "title"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "menuItem"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Method {
+ name: "sectionStartAngle"
+ type: "QVariant"
+ Parameter { name: "itemIndex"; type: "QVariant" }
+ }
+ Method {
+ name: "sectionCenterAngle"
+ type: "QVariant"
+ Parameter { name: "itemIndex"; type: "QVariant" }
+ }
+ Method {
+ name: "sectionEndAngle"
+ type: "QVariant"
+ Parameter { name: "itemIndex"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/ProgressBar 1.0"
+ exports: ["QtQuick.Controls/ProgressBar 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "value"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "indeterminate"; type: "bool" }
+ Property { name: "orientation"; type: "int" }
+ Property { name: "__initialized"; type: "bool" }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Method {
+ name: "setValue"
+ type: "QVariant"
+ Parameter { name: "v"; type: "QVariant" }
+ }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ProgressBarStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ProgressBarStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "ProgressBar_QMLTYPE_207"; isReadonly: true; isPointer: true }
+ Property { name: "currentProgress"; type: "double"; isReadonly: true }
+ Property { name: "progress"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/RadioButton 1.0"
+ exports: ["QtQuick.Controls/RadioButton 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "checked"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "__cycleStatesHandler"; type: "QVariant" }
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Signal { name: "clicked" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/RadioButtonStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/RadioButtonStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "RadioButton_QMLTYPE_214"; isReadonly: true; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "spacing"; type: "int" }
+ Property { name: "indicator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/ScrollView 1.0"
+ exports: ["QtQuick.Controls/ScrollView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentItem"
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ScrollViewStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ScrollViewStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "ScrollView_QMLTYPE_37"; isReadonly: true; isPointer: true }
+ Property { name: "corner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "scrollToClickedPosition"; type: "bool" }
+ Property { name: "transientScrollBars"; type: "bool" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minimumHandleLength"; type: "int" }
+ Property { name: "handleOverlap"; type: "int" }
+ Property { name: "scrollBarBackground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "incrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "decrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__scrollbar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__externalScrollBars"; type: "bool" }
+ Property { name: "__scrollBarSpacing"; type: "int" }
+ Property { name: "__scrollBarFadeDelay"; type: "int" }
+ Property { name: "__scrollBarFadeDuration"; type: "int" }
+ Property { name: "__stickyScrollbars"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Slider 1.0"
+ exports: ["QtQuick.Controls/Slider 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "orientation"; type: "int" }
+ Property { name: "updateValueWhileDragging"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "tickmarksEnabled"; type: "bool" }
+ Property { name: "__horizontal"; type: "bool" }
+ Property { name: "__handlePos"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "stepSize"; type: "double" }
+ Property { name: "value"; type: "double" }
+ Property { name: "wheelEnabled"; type: "bool" }
+ Method { name: "accessibleIncreaseAction"; type: "QVariant" }
+ Method { name: "accessibleDecreaseAction"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Slider 1.6"
+ exports: ["QtQuick.Controls/Slider 1.6"]
+ exportMetaObjectRevisions: [6]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "orientation"; type: "int" }
+ Property { name: "updateValueWhileDragging"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "tickmarksEnabled"; type: "bool" }
+ Property { name: "__horizontal"; type: "bool" }
+ Property { name: "__handlePos"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "stepSize"; type: "double" }
+ Property { name: "value"; type: "double" }
+ Property { name: "wheelEnabled"; type: "bool" }
+ Method { name: "accessibleIncreaseAction"; type: "QVariant" }
+ Method { name: "accessibleDecreaseAction"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/SliderStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/SliderStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Slider_QMLTYPE_218"; isReadonly: true; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "groove"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tickmarks"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/SpinBox 1.0"
+ exports: ["QtQuick.Controls/SpinBox 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "value"; type: "double" }
+ Property { name: "minimumValue"; type: "double" }
+ Property { name: "maximumValue"; type: "double" }
+ Property { name: "stepSize"; type: "double" }
+ Property { name: "suffix"; type: "string" }
+ Property { name: "prefix"; type: "string" }
+ Property { name: "decimals"; type: "int" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "__text"; type: "string" }
+ Property { name: "__baselineOffset"; type: "double" }
+ Signal { name: "editingFinished" }
+ Method { name: "__increment"; type: "QVariant" }
+ Method { name: "__decrement"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/SpinBoxStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/SpinBoxStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "SpinBox_QMLTYPE_238"; isReadonly: true; isPointer: true }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "renderType"; type: "int" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "incrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "decrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__selectionHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickItem"
+ name: "QtQuick.Controls/SplitView 1.0"
+ exports: ["QtQuick.Controls/SplitView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "__contents"
+ Property { name: "orientation"; type: "int" }
+ Property { name: "handleDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "resizing"; type: "bool" }
+ Property { name: "__contents"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "__items"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Property { name: "__handles"; type: "QQuickItem"; isList: true; isReadonly: true }
+ Method {
+ name: "addItem"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ Method {
+ name: "removeItem"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/StackView 1.0"
+ exports: ["QtQuick.Controls/StackView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "initialItem"; type: "QVariant" }
+ Property { name: "busy"; type: "bool"; isReadonly: true }
+ Property { name: "delegate"; type: "StackViewDelegate_QMLTYPE_252"; isPointer: true }
+ Property { name: "__currentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__depth"; type: "int" }
+ Property { name: "__currentTransition"; type: "QVariant" }
+ Property { name: "__guard"; type: "bool" }
+ Property { name: "invalidItemReplacement"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "depth"; type: "int"; isReadonly: true }
+ Property { name: "currentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Method {
+ name: "push"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ Method {
+ name: "pop"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ Method { name: "clear"; type: "QVariant" }
+ Method {
+ name: "find"
+ type: "QVariant"
+ Parameter { name: "func"; type: "QVariant" }
+ Parameter { name: "onlySearchLoadedItems"; type: "QVariant" }
+ }
+ Method {
+ name: "get"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "dontLoad"; type: "QVariant" }
+ }
+ Method { name: "completeTransition"; type: "QVariant" }
+ Method {
+ name: "replace"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ Parameter { name: "properties"; type: "QVariant" }
+ Parameter { name: "immediate"; type: "QVariant" }
+ }
+ Method {
+ name: "__recursionGuard"
+ type: "QVariant"
+ Parameter { name: "use"; type: "QVariant" }
+ }
+ Method {
+ name: "__loadElement"
+ type: "QVariant"
+ Parameter { name: "element"; type: "QVariant" }
+ }
+ Method {
+ name: "__resolveComponent"
+ type: "QVariant"
+ Parameter { name: "unknownObjectType"; type: "QVariant" }
+ Parameter { name: "element"; type: "QVariant" }
+ }
+ Method {
+ name: "__cleanup"
+ type: "QVariant"
+ Parameter { name: "element"; type: "QVariant" }
+ }
+ Method {
+ name: "__setStatus"
+ type: "QVariant"
+ Parameter { name: "item"; type: "QVariant" }
+ Parameter { name: "status"; type: "QVariant" }
+ }
+ Method {
+ name: "__performTransition"
+ type: "QVariant"
+ Parameter { name: "transition"; type: "QVariant" }
+ }
+ Method { name: "animationFinished"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QObject"
+ name: "QtQuick.Controls/StackViewDelegate 1.0"
+ exports: ["QtQuick.Controls/StackViewDelegate 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ Property { name: "pushTransition"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "popTransition"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "replaceTransition"; type: "QQmlComponent"; isPointer: true }
+ Method {
+ name: "getTransition"
+ type: "QVariant"
+ Parameter { name: "properties"; type: "QVariant" }
+ }
+ Method {
+ name: "transitionFinished"
+ type: "QVariant"
+ Parameter { name: "properties"; type: "QVariant" }
+ }
+ }
+ Component {
+ prototype: "QQuickParallelAnimation"
+ name: "QtQuick.Controls/StackViewTransition 1.0"
+ exports: ["QtQuick.Controls/StackViewTransition 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "animations"
+ Property { name: "name"; type: "string" }
+ Property { name: "enterItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "exitItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "immediate"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/StatusBar 1.0"
+ exports: ["QtQuick.Controls/StatusBar 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "__content"
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "__content"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/StatusBarStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/StatusBarStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/StatusIndicatorStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/StatusIndicatorStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property {
+ name: "control"
+ type: "StatusIndicator_QMLTYPE_261"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "indicator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/Switch 1.1"
+ exports: ["QtQuick.Controls/Switch 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "checked"; type: "bool" }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Signal { name: "clicked" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/SwitchStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/SwitchStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "groove"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickLoader"
+ name: "QtQuick.Controls/Tab 1.0"
+ exports: ["QtQuick.Controls/Tab 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "component"
+ Property { name: "title"; type: "string" }
+ Property { name: "__inserted"; type: "bool" }
+ Property { name: "component"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TabView 1.0"
+ exports: ["QtQuick.Controls/TabView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "currentIndex"; type: "int" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "tabsVisible"; type: "bool" }
+ Property { name: "tabPosition"; type: "int" }
+ Property { name: "__tabs"; type: "QQmlListModel"; isPointer: true }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__styleItem"; type: "QVariant" }
+ Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Method {
+ name: "addTab"
+ type: "QVariant"
+ Parameter { name: "title"; type: "QVariant" }
+ Parameter { name: "component"; type: "QVariant" }
+ }
+ Method {
+ name: "insertTab"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "title"; type: "QVariant" }
+ Parameter { name: "component"; type: "QVariant" }
+ }
+ Method {
+ name: "removeTab"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "moveTab"
+ type: "QVariant"
+ Parameter { name: "from"; type: "QVariant" }
+ Parameter { name: "to"; type: "QVariant" }
+ }
+ Method {
+ name: "getTab"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "__willRemoveIndex"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "__didInsertIndex"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method { name: "__setOpacities"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TabViewStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/TabViewStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "TabView_QMLTYPE_280"; isReadonly: true; isPointer: true }
+ Property { name: "tabsMovable"; type: "bool" }
+ Property { name: "tabsAlignment"; type: "int" }
+ Property { name: "tabOverlap"; type: "int" }
+ Property { name: "frameOverlap"; type: "int" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tab"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "leftCorner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rightCorner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "tabBar"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TableView 1.0"
+ exports: ["QtQuick.Controls/TableView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "__columns"
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "rowCount"; type: "int"; isReadonly: true }
+ Property { name: "currentRow"; type: "int" }
+ Property {
+ name: "selection"
+ type: "TableViewSelection_QMLTYPE_308"
+ isReadonly: true
+ isPointer: true
+ }
+ Signal {
+ name: "activated"
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "row"; type: "int" }
+ }
+ Method {
+ name: "positionViewAtRow"
+ type: "QVariant"
+ Parameter { name: "row"; type: "QVariant" }
+ Parameter { name: "mode"; type: "QVariant" }
+ }
+ Method {
+ name: "rowAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Property { name: "alternatingRowColors"; type: "bool" }
+ Property { name: "headerVisible"; type: "bool" }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rowDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "headerDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "sortIndicatorColumn"; type: "int" }
+ Property { name: "sortIndicatorVisible"; type: "bool" }
+ Property { name: "sortIndicatorOrder"; type: "int" }
+ Property { name: "selectionMode"; type: "int" }
+ Property { name: "__viewTypeName"; type: "string" }
+ Property { name: "__isTreeView"; type: "bool"; isReadonly: true }
+ Property { name: "__itemDelegateLoader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__model"; type: "QVariant" }
+ Property { name: "__activateItemOnSingleClick"; type: "bool" }
+ Property { name: "__mouseArea"; type: "QQuickItem"; isPointer: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "contentHeader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "contentFooter"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "columnCount"; type: "int"; isReadonly: true }
+ Property { name: "section"; type: "QQuickViewSection"; isReadonly: true; isPointer: true }
+ Property { name: "__columns"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "__currentRowItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "__currentRow"; type: "int" }
+ Property { name: "__listView"; type: "QQuickListView"; isReadonly: true; isPointer: true }
+ Method {
+ name: "addColumn"
+ type: "QVariant"
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "insertColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "removeColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "moveColumn"
+ type: "QVariant"
+ Parameter { name: "from"; type: "QVariant" }
+ Parameter { name: "to"; type: "QVariant" }
+ }
+ Method {
+ name: "getColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method { name: "resizeColumnsToContents"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QObject"
+ name: "QtQuick.Controls/TableViewColumn 1.0"
+ exports: ["QtQuick.Controls/TableViewColumn 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ Property { name: "__view"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__index"; type: "int" }
+ Property { name: "title"; type: "string" }
+ Property { name: "role"; type: "string" }
+ Property { name: "width"; type: "int" }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "resizable"; type: "bool" }
+ Property { name: "movable"; type: "bool" }
+ Property { name: "elideMode"; type: "int" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Method { name: "resizeToContents"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TableViewStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/TableViewStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "TableView_QMLTYPE_312"; isReadonly: true; isPointer: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "backgroundColor"; type: "QColor" }
+ Property { name: "alternateBackgroundColor"; type: "QColor" }
+ Property { name: "highlightedTextColor"; type: "QColor" }
+ Property { name: "activateItemOnSingleClick"; type: "bool" }
+ Property { name: "headerDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rowDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__branchDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__indentation"; type: "int" }
+ Property { name: "corner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "scrollToClickedPosition"; type: "bool" }
+ Property { name: "transientScrollBars"; type: "bool" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minimumHandleLength"; type: "int" }
+ Property { name: "handleOverlap"; type: "int" }
+ Property { name: "scrollBarBackground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "incrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "decrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__scrollbar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__externalScrollBars"; type: "bool" }
+ Property { name: "__scrollBarSpacing"; type: "int" }
+ Property { name: "__scrollBarFadeDelay"; type: "int" }
+ Property { name: "__scrollBarFadeDuration"; type: "int" }
+ Property { name: "__stickyScrollbars"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TextArea 1.0"
+ exports: ["QtQuick.Controls/TextArea 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "tabChangesFocus"; type: "bool" }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "effectiveHorizontalAlignment"; type: "int"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "int" }
+ Property { name: "inputMethodHints"; type: "int" }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "textFormat"; type: "int" }
+ Property { name: "wrapMode"; type: "int" }
+ Property { name: "selectByKeyboard"; type: "bool" }
+ Property { name: "hoveredLink"; type: "string"; isReadonly: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "textMargin"; type: "double" }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "textDocument"; type: "QQuickTextDocument"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal { name: "editingFinished" }
+ Method {
+ name: "append"
+ type: "QVariant"
+ Parameter { name: "string"; type: "QVariant" }
+ }
+ Method { name: "copy"; type: "QVariant" }
+ Method { name: "cut"; type: "QVariant" }
+ Method { name: "deselect"; type: "QVariant" }
+ Method {
+ name: "getFormattedText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "getText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "insert"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "text"; type: "QVariant" }
+ }
+ Method {
+ name: "isRightToLeft"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "mode"; type: "QVariant" }
+ }
+ Method { name: "paste"; type: "QVariant" }
+ Method {
+ name: "positionAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Method {
+ name: "positionToRectangle"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ }
+ Method { name: "redo"; type: "QVariant" }
+ Method {
+ name: "remove"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "select"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method { name: "selectAll"; type: "QVariant" }
+ Method { name: "selectWord"; type: "QVariant" }
+ Method { name: "undo"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TextArea 1.3"
+ exports: ["QtQuick.Controls/TextArea 1.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "tabChangesFocus"; type: "bool" }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "effectiveHorizontalAlignment"; type: "int"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "int" }
+ Property { name: "inputMethodHints"; type: "int" }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "textFormat"; type: "int" }
+ Property { name: "wrapMode"; type: "int" }
+ Property { name: "selectByKeyboard"; type: "bool" }
+ Property { name: "hoveredLink"; type: "string"; isReadonly: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "textMargin"; type: "double" }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "textDocument"; type: "QQuickTextDocument"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal { name: "editingFinished" }
+ Method {
+ name: "append"
+ type: "QVariant"
+ Parameter { name: "string"; type: "QVariant" }
+ }
+ Method { name: "copy"; type: "QVariant" }
+ Method { name: "cut"; type: "QVariant" }
+ Method { name: "deselect"; type: "QVariant" }
+ Method {
+ name: "getFormattedText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "getText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "insert"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "text"; type: "QVariant" }
+ }
+ Method {
+ name: "isRightToLeft"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "mode"; type: "QVariant" }
+ }
+ Method { name: "paste"; type: "QVariant" }
+ Method {
+ name: "positionAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Method {
+ name: "positionToRectangle"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ }
+ Method { name: "redo"; type: "QVariant" }
+ Method {
+ name: "remove"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "select"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method { name: "selectAll"; type: "QVariant" }
+ Method { name: "selectWord"; type: "QVariant" }
+ Method { name: "undo"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TextArea 1.5"
+ exports: ["QtQuick.Controls/TextArea 1.5"]
+ exportMetaObjectRevisions: [5]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "tabChangesFocus"; type: "bool" }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "baseUrl"; type: "QUrl" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "effectiveHorizontalAlignment"; type: "int"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "int" }
+ Property { name: "inputMethodHints"; type: "int" }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "lineCount"; type: "int"; isReadonly: true }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "textFormat"; type: "int" }
+ Property { name: "wrapMode"; type: "int" }
+ Property { name: "selectByKeyboard"; type: "bool" }
+ Property { name: "hoveredLink"; type: "string"; isReadonly: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "textMargin"; type: "double" }
+ Property { name: "contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "textDocument"; type: "QQuickTextDocument"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "linkActivated"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal {
+ name: "linkHovered"
+ Parameter { name: "link"; type: "string" }
+ }
+ Signal { name: "editingFinished" }
+ Method {
+ name: "append"
+ type: "QVariant"
+ Parameter { name: "string"; type: "QVariant" }
+ }
+ Method { name: "copy"; type: "QVariant" }
+ Method { name: "cut"; type: "QVariant" }
+ Method { name: "deselect"; type: "QVariant" }
+ Method {
+ name: "getFormattedText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "getText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "insert"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "text"; type: "QVariant" }
+ }
+ Method {
+ name: "isRightToLeft"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "moveCursorSelection"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "mode"; type: "QVariant" }
+ }
+ Method { name: "paste"; type: "QVariant" }
+ Method {
+ name: "positionAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Method {
+ name: "positionToRectangle"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ }
+ Method { name: "redo"; type: "QVariant" }
+ Method {
+ name: "remove"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "select"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method { name: "selectAll"; type: "QVariant" }
+ Method { name: "selectWord"; type: "QVariant" }
+ Method { name: "undo"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TextAreaStyle 1.1"
+ exports: ["QtQuick.Controls.Styles/TextAreaStyle 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "TextArea_QMLTYPE_318"; isReadonly: true; isPointer: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "backgroundColor"; type: "QColor" }
+ Property { name: "renderType"; type: "int" }
+ Property { name: "textMargin"; type: "double" }
+ Property { name: "__cursorHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__selectionHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__editMenu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "corner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "scrollToClickedPosition"; type: "bool" }
+ Property { name: "transientScrollBars"; type: "bool" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minimumHandleLength"; type: "int" }
+ Property { name: "handleOverlap"; type: "int" }
+ Property { name: "scrollBarBackground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "incrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "decrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__scrollbar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__externalScrollBars"; type: "bool" }
+ Property { name: "__scrollBarSpacing"; type: "int" }
+ Property { name: "__scrollBarFadeDelay"; type: "int" }
+ Property { name: "__scrollBarFadeDuration"; type: "int" }
+ Property { name: "__stickyScrollbars"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TextField 1.0"
+ exports: ["QtQuick.Controls/TextField 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "inputMethodComposing"; type: "bool"; isReadonly: true }
+ Property { name: "selectByMouse"; type: "bool" }
+ Property { name: "menu"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "acceptableInput"; type: "bool"; isReadonly: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "canPaste"; type: "bool"; isReadonly: true }
+ Property { name: "canRedo"; type: "bool"; isReadonly: true }
+ Property { name: "canUndo"; type: "bool"; isReadonly: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "cursorPosition"; type: "int" }
+ Property { name: "cursorRectangle"; type: "QRectF"; isReadonly: true }
+ Property { name: "displayText"; type: "string"; isReadonly: true }
+ Property { name: "echoMode"; type: "int" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "horizontalAlignment"; type: "int" }
+ Property { name: "effectiveHorizontalAlignment"; type: "int"; isReadonly: true }
+ Property { name: "verticalAlignment"; type: "int" }
+ Property { name: "inputMask"; type: "string" }
+ Property { name: "inputMethodHints"; type: "int" }
+ Property { name: "length"; type: "int"; isReadonly: true }
+ Property { name: "maximumLength"; type: "int" }
+ Property { name: "placeholderText"; type: "string" }
+ Property { name: "readOnly"; type: "bool" }
+ Property { name: "selectedText"; type: "string"; isReadonly: true }
+ Property { name: "selectionEnd"; type: "int"; isReadonly: true }
+ Property { name: "selectionStart"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string" }
+ Property { name: "validator"; type: "QValidator"; isPointer: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Property { name: "__contentHeight"; type: "double"; isReadonly: true }
+ Property { name: "__contentWidth"; type: "double"; isReadonly: true }
+ Property { name: "__baselineOffset"; type: "double" }
+ Signal { name: "accepted" }
+ Signal { name: "editingFinished" }
+ Method { name: "copy"; type: "QVariant" }
+ Method { name: "cut"; type: "QVariant" }
+ Method { name: "deselect"; type: "QVariant" }
+ Method {
+ name: "getText"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "insert"
+ type: "QVariant"
+ Parameter { name: "position"; type: "QVariant" }
+ Parameter { name: "text"; type: "QVariant" }
+ }
+ Method {
+ name: "isRightToLeft"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method { name: "paste"; type: "QVariant" }
+ Method { name: "redo"; type: "QVariant" }
+ Method {
+ name: "remove"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method {
+ name: "select"
+ type: "QVariant"
+ Parameter { name: "start"; type: "QVariant" }
+ Parameter { name: "end"; type: "QVariant" }
+ }
+ Method { name: "selectAll"; type: "QVariant" }
+ Method { name: "selectWord"; type: "QVariant" }
+ Method { name: "undo"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TextFieldStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/TextFieldStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "TextField_QMLTYPE_324"; isReadonly: true; isPointer: true }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "selectionColor"; type: "QColor" }
+ Property { name: "selectedTextColor"; type: "QColor" }
+ Property { name: "passwordCharacter"; type: "string" }
+ Property { name: "renderType"; type: "int" }
+ Property { name: "placeholderTextColor"; type: "QColor" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__selectionHandle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__cursorDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__editMenu"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ToggleButtonStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ToggleButtonStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "ToggleButton_QMLTYPE_327"; isReadonly: true; isPointer: true }
+ Property { name: "inactiveGradient"; type: "QQuickGradient"; isPointer: true }
+ Property { name: "checkedGradient"; type: "QQuickGradient"; isPointer: true }
+ Property { name: "uncheckedGradient"; type: "QQuickGradient"; isPointer: true }
+ Property { name: "checkedDropShadowColor"; type: "QColor" }
+ Property { name: "uncheckedDropShadowColor"; type: "QColor" }
+ Property {
+ name: "__buttonHelper"
+ type: "CircularButtonStyleHelper_QMLTYPE_93"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "label"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/ToolBar 1.0"
+ exports: ["QtQuick.Controls/ToolBar 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "__content"
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__menu"; type: "QVariant" }
+ Property { name: "__style"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "__content"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/ToolBarStyle 1.0"
+ exports: ["QtQuick.Controls.Styles/ToolBarStyle 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "menuButton"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "control"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/ToolButton 1.0"
+ exports: ["QtQuick.Controls/ToolButton 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "isDefault"; type: "bool" }
+ Property { name: "menu"; type: "Menu_QMLTYPE_55"; isPointer: true }
+ Property { name: "checkable"; type: "bool" }
+ Property { name: "checked"; type: "bool" }
+ Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true }
+ Property { name: "action"; type: "QQuickAction1"; isPointer: true }
+ Property { name: "activeFocusOnPress"; type: "bool" }
+ Property { name: "text"; type: "string" }
+ Property { name: "tooltip"; type: "string" }
+ Property { name: "iconSource"; type: "QUrl" }
+ Property { name: "iconName"; type: "string" }
+ Property { name: "__position"; type: "string" }
+ Property { name: "__iconOverriden"; type: "bool"; isReadonly: true }
+ Property { name: "__action"; type: "QQuickAction1"; isPointer: true }
+ Property { name: "__iconAction"; type: "QQuickAction1"; isReadonly: true; isPointer: true }
+ Property { name: "__behavior"; type: "QVariant" }
+ Property { name: "__effectivePressed"; type: "bool" }
+ Property { name: "pressed"; type: "bool"; isReadonly: true }
+ Property { name: "hovered"; type: "bool"; isReadonly: true }
+ Signal { name: "clicked" }
+ Method { name: "accessiblePressAction"; type: "QVariant" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "QObject"; isPointer: true }
+ Property { name: "__panel"; type: "QQuickItem"; isPointer: true }
+ Property { name: "styleHints"; type: "QVariant" }
+ Property { name: "__styleData"; type: "QObject"; isPointer: true }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TreeView 1.4"
+ exports: ["QtQuick.Controls/TreeView 1.4"]
+ exportMetaObjectRevisions: [4]
+ isComposite: true
+ defaultProperty: "__columns"
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "currentIndex"; type: "QVariant"; isReadonly: true }
+ Property { name: "selection"; type: "QItemSelectionModel"; isPointer: true }
+ Property { name: "rootIndex"; type: "QModelIndex" }
+ Signal {
+ name: "activated"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "expanded"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "collapsed"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "isExpanded"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "collapse"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "expand"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "indexAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Property { name: "alternatingRowColors"; type: "bool" }
+ Property { name: "headerVisible"; type: "bool" }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rowDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "headerDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "sortIndicatorColumn"; type: "int" }
+ Property { name: "sortIndicatorVisible"; type: "bool" }
+ Property { name: "sortIndicatorOrder"; type: "int" }
+ Property { name: "selectionMode"; type: "int" }
+ Property { name: "__viewTypeName"; type: "string" }
+ Property { name: "__isTreeView"; type: "bool"; isReadonly: true }
+ Property { name: "__itemDelegateLoader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__model"; type: "QVariant" }
+ Property { name: "__activateItemOnSingleClick"; type: "bool" }
+ Property { name: "__mouseArea"; type: "QQuickItem"; isPointer: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "contentHeader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "contentFooter"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "columnCount"; type: "int"; isReadonly: true }
+ Property { name: "section"; type: "QQuickViewSection"; isReadonly: true; isPointer: true }
+ Property { name: "__columns"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "__currentRowItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "__currentRow"; type: "int" }
+ Property { name: "__listView"; type: "QQuickListView"; isReadonly: true; isPointer: true }
+ Method {
+ name: "addColumn"
+ type: "QVariant"
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "insertColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "removeColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "moveColumn"
+ type: "QVariant"
+ Parameter { name: "from"; type: "QVariant" }
+ Parameter { name: "to"; type: "QVariant" }
+ }
+ Method {
+ name: "getColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method { name: "resizeColumnsToContents"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickFocusScope"
+ name: "QtQuick.Controls/TreeView 1.5"
+ exports: ["QtQuick.Controls/TreeView 1.5"]
+ exportMetaObjectRevisions: [5]
+ isComposite: true
+ defaultProperty: "__columns"
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "currentIndex"; type: "QVariant"; isReadonly: true }
+ Property { name: "selection"; type: "QItemSelectionModel"; isPointer: true }
+ Property { name: "rootIndex"; type: "QModelIndex" }
+ Signal {
+ name: "activated"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "clicked"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "doubleClicked"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "pressAndHold"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "expanded"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Signal {
+ name: "collapsed"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "isExpanded"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "collapse"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "expand"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "indexAt"
+ type: "QVariant"
+ Parameter { name: "x"; type: "QVariant" }
+ Parameter { name: "y"; type: "QVariant" }
+ }
+ Property { name: "alternatingRowColors"; type: "bool" }
+ Property { name: "headerVisible"; type: "bool" }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rowDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "headerDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "sortIndicatorColumn"; type: "int" }
+ Property { name: "sortIndicatorVisible"; type: "bool" }
+ Property { name: "sortIndicatorOrder"; type: "int" }
+ Property { name: "selectionMode"; type: "int" }
+ Property { name: "__viewTypeName"; type: "string" }
+ Property { name: "__isTreeView"; type: "bool"; isReadonly: true }
+ Property { name: "__itemDelegateLoader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__model"; type: "QVariant" }
+ Property { name: "__activateItemOnSingleClick"; type: "bool" }
+ Property { name: "__mouseArea"; type: "QQuickItem"; isPointer: true }
+ Property { name: "backgroundVisible"; type: "bool" }
+ Property { name: "contentHeader"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "contentFooter"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "columnCount"; type: "int"; isReadonly: true }
+ Property { name: "section"; type: "QQuickViewSection"; isReadonly: true; isPointer: true }
+ Property { name: "__columns"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "__currentRowItem"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "__currentRow"; type: "int" }
+ Property { name: "__listView"; type: "QQuickListView"; isReadonly: true; isPointer: true }
+ Method {
+ name: "addColumn"
+ type: "QVariant"
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "insertColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ Parameter { name: "column"; type: "QVariant" }
+ }
+ Method {
+ name: "removeColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method {
+ name: "moveColumn"
+ type: "QVariant"
+ Parameter { name: "from"; type: "QVariant" }
+ Parameter { name: "to"; type: "QVariant" }
+ }
+ Method {
+ name: "getColumn"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QVariant" }
+ }
+ Method { name: "resizeColumnsToContents"; type: "QVariant" }
+ Property { name: "frameVisible"; type: "bool" }
+ Property { name: "highlightOnFocus"; type: "bool" }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Property { name: "__scrollBarTopMargin"; type: "int" }
+ Property { name: "__viewTopMargin"; type: "int" }
+ Property { name: "style"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__style"; type: "Style_QMLTYPE_3"; isPointer: true }
+ Property { name: "horizontalScrollBarPolicy"; type: "int" }
+ Property { name: "verticalScrollBarPolicy"; type: "int" }
+ Property { name: "viewport"; type: "QQuickItem"; isReadonly: true; isPointer: true }
+ Property { name: "flickableItem"; type: "QQuickFlickable"; isReadonly: true; isPointer: true }
+ Property {
+ name: "__scroller"
+ type: "ScrollViewHelper_QMLTYPE_32"
+ isReadonly: true
+ isPointer: true
+ }
+ Property { name: "__verticalScrollbarOffset"; type: "int" }
+ Property { name: "__wheelAreaScrollSpeed"; type: "double" }
+ Property {
+ name: "__horizontalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ Property {
+ name: "__verticalScrollBar"
+ type: "ScrollBar_QMLTYPE_28"
+ isReadonly: true
+ isPointer: true
+ }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TreeViewStyle 1.4"
+ exports: ["QtQuick.Controls.Styles/TreeViewStyle 1.4"]
+ exportMetaObjectRevisions: [4]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "TreeView_QMLTYPE_350"; isReadonly: true; isPointer: true }
+ Property { name: "indentation"; type: "int" }
+ Property { name: "branchDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "textColor"; type: "QColor" }
+ Property { name: "backgroundColor"; type: "QColor" }
+ Property { name: "alternateBackgroundColor"; type: "QColor" }
+ Property { name: "highlightedTextColor"; type: "QColor" }
+ Property { name: "activateItemOnSingleClick"; type: "bool" }
+ Property { name: "headerDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "rowDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "itemDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__branchDelegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__indentation"; type: "int" }
+ Property { name: "corner"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "scrollToClickedPosition"; type: "bool" }
+ Property { name: "transientScrollBars"; type: "bool" }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "minimumHandleLength"; type: "int" }
+ Property { name: "handleOverlap"; type: "int" }
+ Property { name: "scrollBarBackground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "handle"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "incrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "decrementControl"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__scrollbar"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "__externalScrollBars"; type: "bool" }
+ Property { name: "__scrollBarSpacing"; type: "int" }
+ Property { name: "__scrollBarFadeDelay"; type: "int" }
+ Property { name: "__scrollBarFadeDuration"; type: "int" }
+ Property { name: "__stickyScrollbars"; type: "bool" }
+ }
+ Component {
+ prototype: "QQuickAbstractStyle1"
+ name: "QtQuick.Controls.Styles/TumblerStyle 1.2"
+ exports: ["QtQuick.Controls.Styles/TumblerStyle 1.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "control"; type: "Tumbler_QMLTYPE_353"; isReadonly: true; isPointer: true }
+ Property { name: "spacing"; type: "double" }
+ Property { name: "visibleItemCount"; type: "int" }
+ Property { name: "__padding"; type: "double"; isReadonly: true }
+ Property { name: "__delegateHeight"; type: "double" }
+ Property { name: "__separatorWidth"; type: "double" }
+ Property { name: "background"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "foreground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "separator"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "columnForeground"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "frame"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "highlight"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "panel"; type: "QQmlComponent"; isPointer: true }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qmldir
new file mode 100644
index 00000000..6641de86
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qmldir
@@ -0,0 +1,8 @@
+module QtQuick.Controls
+plugin qtquickcontrolsplugin
+classname QtQuickControls1Plugin
+typeinfo plugins.qmltypes
+designersupported
+depends QtQuick.Window 2.2
+depends QtQuick.Layouts 1.0
+depends QtQml 2.14
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qtquickcontrolsplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qtquickcontrolsplugin.dll
new file mode 100644
index 00000000..17d97394
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Controls/qtquickcontrolsplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qml
new file mode 100644
index 00000000..f8c8e220
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qml
@@ -0,0 +1,405 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Dialogs 1.0
+import QtQuick.Window 2.1
+import "qml"
+
+AbstractColorDialog {
+ id: root
+ property bool __valueSet: true // guard to prevent binding loops
+ function __setControlsFromColor() {
+ __valueSet = false
+ hueSlider.value = root.currentHue
+ saturationSlider.value = root.currentSaturation
+ lightnessSlider.value = root.currentLightness
+ alphaSlider.value = root.currentAlpha
+ crosshairs.x = root.currentLightness * paletteMap.width
+ crosshairs.y = (1.0 - root.currentSaturation) * paletteMap.height
+ __valueSet = true
+ }
+ onCurrentColorChanged: __setControlsFromColor()
+
+ Rectangle {
+ id: content
+ implicitHeight: Math.min(root.__maximumDimension, Screen.pixelDensity * (usePaletteMap ? 120 : 50))
+ implicitWidth: Math.min(root.__maximumDimension, usePaletteMap ? Screen.pixelDensity * (usePaletteMap ? 100 : 50) : implicitHeight * 1.5)
+ color: palette.window
+ focus: root.visible
+ property real bottomMinHeight: sliders.height + buttonRow.height + outerSpacing * 3
+ property real spacing: 8
+ property real outerSpacing: 12
+ property bool usePaletteMap: true
+
+ Keys.onPressed: {
+ event.accepted = true
+ switch (event.key) {
+ case Qt.Key_Return:
+ case Qt.Key_Select:
+ accept()
+ break
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ reject()
+ break
+ case Qt.Key_C:
+ if (event.modifiers & Qt.ControlModifier)
+ colorField.copyAll()
+ break
+ case Qt.Key_V:
+ if (event.modifiers & Qt.ControlModifier) {
+ colorField.paste()
+ root.currentColor = colorField.text
+ }
+ break
+ default:
+ // do nothing
+ event.accepted = false
+ break
+ }
+ }
+
+ SystemPalette { id: palette }
+
+ Item {
+ id: paletteFrame
+ visible: content.usePaletteMap
+ anchors {
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ margins: content.outerSpacing
+ }
+ height: Math.min(content.height - content.bottomMinHeight, content.width - content.outerSpacing * 2)
+
+ Image {
+ id: paletteMap
+ x: (parent.width - width) / 2
+ width: height
+ onWidthChanged: root.__setControlsFromColor()
+ height: parent.height
+ source: "images/checkers.png"
+ fillMode: Image.Tile
+
+ // note we smoothscale the shader from a smaller version to improve performance
+ ShaderEffect {
+ id: map
+ width: 64
+ height: 64
+ opacity: alphaSlider.value
+ scale: paletteMap.width / width;
+ layer.enabled: true
+ layer.smooth: true
+ anchors.centerIn: parent
+ property real hue: hueSlider.value
+
+ fragmentShader: content.OpenGLInfo.profile === OpenGLInfo.CoreProfile ? "#version 150
+ in vec2 qt_TexCoord0;
+ uniform float qt_Opacity;
+ uniform float hue;
+ out vec4 fragColor;
+
+ float hueToIntensity(float v1, float v2, float h) {
+ h = fract(h);
+ if (h < 1.0 / 6.0)
+ return v1 + (v2 - v1) * 6.0 * h;
+ else if (h < 1.0 / 2.0)
+ return v2;
+ else if (h < 2.0 / 3.0)
+ return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
+
+ return v1;
+ }
+
+ vec3 HSLtoRGB(vec3 color) {
+ float h = color.x;
+ float l = color.z;
+ float s = color.y;
+
+ if (s < 1.0 / 256.0)
+ return vec3(l, l, l);
+
+ float v1;
+ float v2;
+ if (l < 0.5)
+ v2 = l * (1.0 + s);
+ else
+ v2 = (l + s) - (s * l);
+
+ v1 = 2.0 * l - v2;
+
+ float d = 1.0 / 3.0;
+ float r = hueToIntensity(v1, v2, h + d);
+ float g = hueToIntensity(v1, v2, h);
+ float b = hueToIntensity(v1, v2, h - d);
+ return vec3(r, g, b);
+ }
+
+ void main() {
+ vec4 c = vec4(1.0);
+ c.rgb = HSLtoRGB(vec3(hue, 1.0 - qt_TexCoord0.t, qt_TexCoord0.s));
+ fragColor = c * qt_Opacity;
+ }
+ " : "
+ varying mediump vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform highp float hue;
+
+ highp float hueToIntensity(highp float v1, highp float v2, highp float h) {
+ h = fract(h);
+ if (h < 1.0 / 6.0)
+ return v1 + (v2 - v1) * 6.0 * h;
+ else if (h < 1.0 / 2.0)
+ return v2;
+ else if (h < 2.0 / 3.0)
+ return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
+
+ return v1;
+ }
+
+ highp vec3 HSLtoRGB(highp vec3 color) {
+ highp float h = color.x;
+ highp float l = color.z;
+ highp float s = color.y;
+
+ if (s < 1.0 / 256.0)
+ return vec3(l, l, l);
+
+ highp float v1;
+ highp float v2;
+ if (l < 0.5)
+ v2 = l * (1.0 + s);
+ else
+ v2 = (l + s) - (s * l);
+
+ v1 = 2.0 * l - v2;
+
+ highp float d = 1.0 / 3.0;
+ highp float r = hueToIntensity(v1, v2, h + d);
+ highp float g = hueToIntensity(v1, v2, h);
+ highp float b = hueToIntensity(v1, v2, h - d);
+ return vec3(r, g, b);
+ }
+
+ void main() {
+ lowp vec4 c = vec4(1.0);
+ c.rgb = HSLtoRGB(vec3(hue, 1.0 - qt_TexCoord0.t, qt_TexCoord0.s));
+ gl_FragColor = c * qt_Opacity;
+ }
+ "
+ }
+
+ MouseArea {
+ id: mapMouseArea
+ anchors.fill: parent
+ onPositionChanged: {
+ if (pressed && containsMouse) {
+ var xx = Math.max(0, Math.min(mouse.x, parent.width))
+ var yy = Math.max(0, Math.min(mouse.y, parent.height))
+ saturationSlider.value = 1.0 - yy / parent.height
+ lightnessSlider.value = xx / parent.width
+ // TODO if we constrain the movement here, can avoid the containsMouse test
+ crosshairs.x = mouse.x - crosshairs.radius
+ crosshairs.y = mouse.y - crosshairs.radius
+ }
+ }
+ onPressed: positionChanged(mouse)
+ }
+
+ Image {
+ id: crosshairs
+ property int radius: width / 2 // truncated to int
+ source: "images/crosshairs.png"
+ }
+
+ BorderImage {
+ anchors.fill: parent
+ anchors.margins: -1
+ anchors.leftMargin: -2
+ source: "images/sunken_frame.png"
+ border.left: 8
+ border.right: 8
+ border.top: 8
+ border.bottom: 8
+ }
+ }
+ }
+
+ Column {
+ id: sliders
+ anchors {
+ top: paletteFrame.bottom
+ left: parent.left
+ right: parent.right
+ margins: content.outerSpacing
+ }
+
+ ColorSlider {
+ id: hueSlider
+ value: 0.5
+ onValueChanged: if (__valueSet) root.currentColor = Qt.hsla(hueSlider.value, saturationSlider.value, lightnessSlider.value, alphaSlider.value)
+ text: qsTr("Hue")
+ trackDelegate: Rectangle {
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ gradient: Gradient {
+ GradientStop {position: 0.000; color: Qt.rgba(1, 0, 0, 1)}
+ GradientStop {position: 0.167; color: Qt.rgba(1, 1, 0, 1)}
+ GradientStop {position: 0.333; color: Qt.rgba(0, 1, 0, 1)}
+ GradientStop {position: 0.500; color: Qt.rgba(0, 1, 1, 1)}
+ GradientStop {position: 0.667; color: Qt.rgba(0, 0, 1, 1)}
+ GradientStop {position: 0.833; color: Qt.rgba(1, 0, 1, 1)}
+ GradientStop {position: 1.000; color: Qt.rgba(1, 0, 0, 1)}
+ }
+ }
+ }
+
+ ColorSlider {
+ id: saturationSlider
+ visible: !content.usePaletteMap
+ value: 0.5
+ onValueChanged: if (__valueSet) root.currentColor = Qt.hsla(hueSlider.value, saturationSlider.value, lightnessSlider.value, alphaSlider.value)
+ text: qsTr("Saturation")
+ trackDelegate: Rectangle {
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ gradient: Gradient {
+ GradientStop { position: 0; color: Qt.hsla(hueSlider.value, 0.0, lightnessSlider.value, 1.0) }
+ GradientStop { position: 1; color: Qt.hsla(hueSlider.value, 1.0, lightnessSlider.value, 1.0) }
+ }
+ }
+ }
+
+ ColorSlider {
+ id: lightnessSlider
+ visible: !content.usePaletteMap
+ value: 0.5
+ onValueChanged: if (__valueSet) root.currentColor = Qt.hsla(hueSlider.value, saturationSlider.value, lightnessSlider.value, alphaSlider.value)
+ text: qsTr("Luminosity")
+ trackDelegate: Rectangle {
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ gradient: Gradient {
+ GradientStop { position: 0; color: "black" }
+ GradientStop { position: 0.5; color: Qt.hsla(hueSlider.value, saturationSlider.value, 0.5, 1.0) }
+ GradientStop { position: 1; color: "white" }
+ }
+ }
+ }
+
+ ColorSlider {
+ id: alphaSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 1.0
+ onValueChanged: if (__valueSet) root.currentColor = Qt.hsla(hueSlider.value, saturationSlider.value, lightnessSlider.value, alphaSlider.value)
+ text: qsTr("Alpha")
+ visible: root.showAlphaChannel
+ trackDelegate: Item {
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ Image {
+ anchors {fill: parent}
+ source: "images/checkers.png"
+ fillMode: Image.TileVertically
+ }
+ Rectangle {
+ anchors.fill: parent
+ gradient: Gradient {
+ GradientStop { position: 0; color: "transparent" }
+ GradientStop { position: 1; color: Qt.hsla(hueSlider.value,
+ saturationSlider.value,
+ lightnessSlider.value, 1.0) }
+ } }
+ }
+ }
+ }
+
+ Item {
+ id: buttonRow
+ height: Math.max(buttonsOnly.height, copyIcon.height)
+ width: parent.width
+ anchors {
+ left: parent.left
+ right: parent.right
+ bottom: content.bottom
+ margins: content.outerSpacing
+ }
+ Row {
+ spacing: content.spacing
+ height: visible ? parent.height : 0
+ visible: !Settings.isMobile
+ TextField {
+ id: colorField
+ text: root.currentColor.toString()
+ anchors.verticalCenter: parent.verticalCenter
+ onAccepted: root.currentColor = text
+ Component.onCompleted: width = implicitWidth + 10
+ }
+ Image {
+ id: copyIcon
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/copy.png"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: colorField.copyAll()
+ }
+ }
+ }
+ Row {
+ id: buttonsOnly
+ spacing: content.spacing
+ anchors.right: parent.right
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ onClicked: root.reject()
+ }
+ Button {
+ id: okButton
+ text: qsTr("OK")
+ onClicked: root.accept()
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qmlc
new file mode 100644
index 00000000..f8caa8e4
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultColorDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qml
new file mode 100644
index 00000000..3ca030c4
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qml
@@ -0,0 +1,207 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Dialogs 1.2
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.1
+import "qml"
+
+AbstractDialog {
+ id: root
+ default property alias data: defaultContentItem.data
+
+ signal actionChosen(var action)
+
+ onVisibilityChanged: if (visible && contentItem) contentItem.forceActiveFocus()
+
+ Rectangle {
+ id: content
+ property real spacing: 6
+ property real outerSpacing: 12
+ property real buttonsRowImplicitHeight: 0
+ property real buttonsRowImplicitWidth: Screen.pixelDensity * 50
+ property bool buttonsInSingleRow: defaultContentItem.width >= buttonsRowImplicitWidth
+ property real minimumHeight: implicitHeight
+ property real minimumWidth: implicitWidth
+ implicitHeight: defaultContentItem.implicitHeight + spacing + outerSpacing * 2 + Math.max(buttonsRight.implicitHeight, buttonsRowImplicitHeight)
+ implicitWidth: Math.min(root.__maximumDimension, Math.max(
+ defaultContentItem.implicitWidth, buttonsRowImplicitWidth, Screen.pixelDensity * 50) + outerSpacing * 2)
+ color: palette.window
+ Keys.onPressed: {
+ event.accepted = handleKey(event.key)
+ }
+
+ SystemPalette { id: palette }
+
+ Item {
+ id: defaultContentItem
+ anchors {
+ left: parent.left
+ right: parent.right
+ top: parent.top
+ bottom: buttonsLeft.implicitHeight ? buttonsLeft.top : buttonsRight.top
+ margins: content.outerSpacing
+ bottomMargin: buttonsLeft.implicitHeight + buttonsRight.implicitHeight > 0 ? content.spacing : 0
+ }
+ implicitHeight: children.length === 1 ? children[0].implicitHeight
+ : (children.length ? childrenRect.height : 0)
+ implicitWidth: children.length === 1 ? children[0].implicitWidth
+ : (children.length ? childrenRect.width : 0)
+ }
+
+ Flow {
+ id: buttonsLeft
+ spacing: content.spacing
+ anchors {
+ left: parent.left
+ bottom: content.buttonsInSingleRow ? parent.bottom : buttonsRight.top
+ margins: content.outerSpacing
+ }
+
+ Repeater {
+ id: buttonsLeftRepeater
+ Button {
+ text: (buttonsLeftRepeater.model && buttonsLeftRepeater.model[index] ? buttonsLeftRepeater.model[index].text : index)
+ onClicked: content.handleButton(buttonsLeftRepeater.model[index].standardButton)
+ }
+ }
+
+ Button {
+ id: moreButton
+ text: qsTr("Show Details...")
+ visible: false
+ }
+ }
+
+ Flow {
+ id: buttonsRight
+ spacing: content.spacing
+ layoutDirection: Qt.RightToLeft
+ anchors {
+ left: parent.left
+ right: parent.right
+ bottom: parent.bottom
+ margins: content.outerSpacing
+ }
+
+ Repeater {
+ id: buttonsRightRepeater
+ // TODO maybe: insert gaps if the button requires it (destructive buttons only)
+ Button {
+ text: (buttonsRightRepeater.model && buttonsRightRepeater.model[index] ? buttonsRightRepeater.model[index].text : index)
+ onClicked: content.handleButton(buttonsRightRepeater.model[index].standardButton)
+ }
+ }
+ }
+
+ function handleButton(button) {
+ var action = {
+ "button": button,
+ "key": 0,
+ "accepted": true,
+ }
+ root.actionChosen(action)
+ if (action.accepted) {
+ click(button)
+ }
+ }
+
+ function handleKey(key) {
+ var button = 0
+ switch (key) {
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ button = StandardButton.Cancel
+ break
+ case Qt.Key_Enter:
+ case Qt.Key_Return:
+ button = StandardButton.Ok
+ break
+ default:
+ return false
+ }
+ var action = {
+ "button": button,
+ "key": key,
+ "accepted": true,
+ }
+ root.actionChosen(action)
+ if (action.accepted) {
+ switch (button) {
+ case StandardButton.Cancel:
+ reject()
+ break
+ case StandardButton.Ok:
+ accept()
+ break
+ }
+ }
+ return true
+ }
+ }
+ function setupButtons() {
+ buttonsLeftRepeater.model = root.__standardButtonsLeftModel()
+ buttonsRightRepeater.model = root.__standardButtonsRightModel()
+ if (buttonsRightRepeater.model && buttonsRightRepeater.model.length > 0)
+ content.buttonsRowImplicitHeight = buttonsRight.visibleChildren[0].implicitHeight
+ if (buttonsLeftRepeater.count + buttonsRightRepeater.count < 1)
+ return;
+ var calcWidth = 0;
+
+ function calculateForButton(i, b) {
+ var buttonWidth = b.implicitWidth;
+ if (buttonWidth > 0) {
+ if (i > 0)
+ buttonWidth += content.spacing
+ calcWidth += buttonWidth
+ }
+ }
+
+ for (var i = 0; i < buttonsRight.visibleChildren.length; ++i)
+ calculateForButton(i, buttonsRight.visibleChildren[i])
+ content.minimumWidth = Math.max(calcWidth + content.outerSpacing * 2, content.implicitWidth)
+ for (i = 0; i < buttonsLeft.visibleChildren.length; ++i)
+ calculateForButton(i, buttonsLeft.visibleChildren[i])
+ content.buttonsRowImplicitWidth = calcWidth + content.spacing
+ }
+ onStandardButtonsChanged: setupButtons()
+ Component.onCompleted: setupButtons()
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qmlc
new file mode 100644
index 00000000..a6770ee6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultDialogWrapper.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml
new file mode 100644
index 00000000..077b5acd
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml
@@ -0,0 +1,488 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0 as ControlsPrivate
+import QtQuick.Dialogs 1.1
+import QtQuick.Dialogs.Private 1.1
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.1
+import Qt.labs.folderlistmodel 2.1
+import Qt.labs.settings 1.0
+import "qml"
+
+AbstractFileDialog {
+ id: root
+
+ property Component modelComponent: Component {
+ FolderListModel {
+ showFiles: !root.selectFolder
+ nameFilters: root.selectedNameFilterExtensions
+ sortField: (view.sortIndicatorColumn === 0 ? FolderListModel.Name :
+ (view.sortIndicatorColumn === 1 ? FolderListModel.Type :
+ (view.sortIndicatorColumn === 2 ? FolderListModel.Size : FolderListModel.LastModified)))
+ sortReversed: view.sortIndicatorOrder === Qt.DescendingOrder
+ }
+ }
+
+ onVisibleChanged: {
+ if (visible) {
+ // If the TableView doesn't have a model yet, create it asynchronously to avoid a UI freeze
+ if (!view.model) {
+ var incubator = modelComponent.incubateObject(null, { })
+ function init(model) {
+ view.model = model
+ model.nameFilters = root.selectedNameFilterExtensions
+ root.folder = model.folder
+ }
+
+ if (incubator.status === Component.Ready) {
+ init(incubator.object)
+ } else {
+ incubator.onStatusChanged = function(status) {
+ if (status === Component.Ready)
+ init(incubator.object)
+ }
+ }
+ }
+
+ view.needsWidthAdjustment = true
+ view.selection.clear()
+ view.focus = true
+ }
+ }
+
+ Component.onCompleted: {
+ filterField.currentIndex = root.selectedNameFilterIndex
+ root.favoriteFolders = settings.favoriteFolders
+ }
+
+ Component.onDestruction: {
+ settings.favoriteFolders = root.favoriteFolders
+ }
+
+ property Settings settings: Settings {
+ category: "QQControlsFileDialog"
+ property alias width: root.width
+ property alias height: root.height
+ property alias sidebarWidth: sidebar.width
+ property alias sidebarSplit: shortcutsScroll.height
+ property alias sidebarVisible: root.sidebarVisible
+ property variant favoriteFolders: []
+ }
+
+ property bool showFocusHighlight: false
+ property SystemPalette palette: SystemPalette { }
+ property var favoriteFolders: []
+
+ function dirDown(path) {
+ view.selection.clear()
+ root.folder = "file://" + path
+ }
+ function dirUp() {
+ view.selection.clear()
+ if (view.model.parentFolder != "")
+ root.folder = view.model.parentFolder
+ }
+ function acceptSelection() {
+ // transfer the view's selections to QQuickFileDialog
+ clearSelection()
+ if (selectFolder && view.selection.count === 0)
+ addSelection(folder)
+ else {
+ view.selection.forEach(function(idx) {
+ if (view.model.isFolder(idx)) {
+ if (selectFolder)
+ addSelection(view.model.get(idx, "fileURL"))
+ } else {
+ if (!selectFolder)
+ addSelection(view.model.get(idx, "fileURL"))
+ }
+ })
+ }
+ accept()
+ }
+
+ property Action dirUpAction: Action {
+ text: "\ue810"
+ shortcut: "Ctrl+U"
+ onTriggered: dirUp()
+ tooltip: qsTr("Go up to the folder containing this one")
+ }
+
+ Rectangle {
+ id: window
+ implicitWidth: Math.min(root.__maximumDimension, Math.max(Screen.pixelDensity * 100, splitter.implicitWidth))
+ implicitHeight: Math.min(root.__maximumDimension, Screen.pixelDensity * 80)
+ color: root.palette.window
+
+ Qml.Binding {
+ target: view.model
+ property: "folder"
+ value: root.folder
+ restoreMode: Binding.RestoreBinding
+ }
+ Qml.Binding {
+ target: currentPathField
+ property: "text"
+ value: root.urlToPath(root.folder)
+ restoreMode: Binding.RestoreBinding
+ }
+ Keys.onPressed: {
+ event.accepted = true
+ switch (event.key) {
+ case Qt.Key_Back:
+ case Qt.Key_Escape:
+ reject()
+ break
+ default:
+ event.accepted = false
+ break
+ }
+ }
+ Keys.forwardTo: [view.flickableItem]
+
+ SplitView {
+ id: splitter
+ x: 0
+ width: parent.width
+ anchors.top: titleBar.bottom
+ anchors.bottom: bottomBar.top
+
+ Column {
+ id: sidebar
+ Component.onCompleted: if (width < 1) width = sidebarSplitter.maxShortcutWidth
+ height: parent.height
+ width: 0 // initial width only; settings and onCompleted will override it
+ visible: root.sidebarVisible
+ SplitView {
+ id: sidebarSplitter
+ orientation: Qt.Vertical
+ property real rowHeight: 10
+ property real maxShortcutWidth: 80
+ width: parent.width
+ height: parent.height - favoritesButtons.height
+
+ ScrollView {
+ id: shortcutsScroll
+ Component.onCompleted: {
+ if (height < 1)
+ height = sidebarSplitter.rowHeight * 4.65
+ Layout.minimumHeight = sidebarSplitter.rowHeight * 2.65
+ }
+ height: 0 // initial width only; settings and onCompleted will override it
+ ListView {
+ id: shortcutsView
+ model: __shortcuts.length
+ anchors.bottomMargin: ControlsPrivate.Settings.hasTouchScreen ? Screen.pixelDensity * 3.5 : anchors.margins
+ implicitHeight: model.count * sidebarSplitter.rowHeight
+ delegate: Item {
+ id: shortcutItem
+ width: sidebarSplitter.width
+ height: shortcutLabel.implicitHeight * 1.5
+ Text {
+ id: shortcutLabel
+ text: __shortcuts[index].name
+ anchors {
+ verticalCenter: parent.verticalCenter
+ left: parent.left
+ right: parent.right
+ margins: 4
+ }
+ elide: Text.ElideLeft
+ renderType: ControlsPrivate.Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ Component.onCompleted: {
+ sidebarSplitter.rowHeight = parent.height
+ if (implicitWidth * 1.2 > sidebarSplitter.maxShortcutWidth)
+ sidebarSplitter.maxShortcutWidth = implicitWidth * 1.2
+ }
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.folder = __shortcuts[index].url
+ }
+ }
+ }
+ }
+
+ ScrollView {
+ Layout.minimumHeight: sidebarSplitter.rowHeight * 2.5
+ ListView {
+ id: favorites
+ model: root.favoriteFolders
+ anchors.topMargin: ControlsPrivate.Settings.hasTouchScreen ? Screen.pixelDensity * 3.5 : anchors.margins
+ delegate: Item {
+ width: favorites.width
+ height: folderLabel.implicitHeight * 1.5
+ Text {
+ id: folderLabel
+ text: root.favoriteFolders[index]
+ anchors {
+ verticalCenter: parent.verticalCenter
+ left: parent.left
+ right: parent.right
+ margins: 4
+ }
+ elide: Text.ElideLeft
+ renderType: ControlsPrivate.Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ Menu {
+ id: favoriteCtxMenu
+ title: root.favoriteFolders[index]
+ MenuItem {
+ text: qsTr("Remove favorite")
+ onTriggered: {
+ root.favoriteFolders.splice(index, 1)
+ favorites.model = root.favoriteFolders
+ }
+ }
+ }
+ MouseArea {
+ id: favoriteArea
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ hoverEnabled: true
+ onClicked: {
+ if (mouse.button == Qt.LeftButton)
+ root.folder = root.favoriteFolders[index]
+ else if (mouse.button == Qt.RightButton)
+ favoriteCtxMenu.popup()
+ }
+ onExited: ControlsPrivate.Tooltip.hideText()
+ onCanceled: ControlsPrivate.Tooltip.hideText()
+ Timer {
+ interval: 1000
+ running: favoriteArea.containsMouse && !favoriteArea.pressed && folderLabel.truncated
+ onTriggered: ControlsPrivate.Tooltip.showText(favoriteArea,
+ Qt.point(favoriteArea.mouseX, favoriteArea.mouseY), urlToPath(root.favoriteFolders[index]))
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Row {
+ id: favoritesButtons
+ height: plusButton.height + 1
+ anchors.right: parent.right
+ anchors.rightMargin: 6
+ layoutDirection: Qt.RightToLeft
+ Button {
+ id: plusButton
+ style: IconButtonStyle { }
+ text: "\ue83e"
+ tooltip: qsTr("Add the current directory as a favorite")
+ width: height
+ onClicked: {
+ root.favoriteFolders.push(root.folder)
+ favorites.model = root.favoriteFolders
+ }
+ }
+ }
+ }
+
+ TableView {
+ id: view
+ sortIndicatorVisible: true
+ Layout.fillWidth: true
+ Layout.minimumWidth: 40
+ property bool needsWidthAdjustment: true
+ selectionMode: root.selectMultiple ?
+ (ControlsPrivate.Settings.hasTouchScreen ? SelectionMode.MultiSelection : SelectionMode.ExtendedSelection) :
+ SelectionMode.SingleSelection
+ onRowCountChanged: if (needsWidthAdjustment && rowCount > 0) {
+ resizeColumnsToContents()
+ needsWidthAdjustment = false
+ }
+ model: null
+
+ onActivated: if (view.focus) {
+ if (view.selection.count > 0 && view.model.isFolder(row)) {
+ dirDown(view.model.get(row, "filePath"))
+ } else {
+ root.acceptSelection()
+ }
+ }
+ onClicked: currentPathField.text = view.model.get(row, "filePath")
+
+
+ TableViewColumn {
+ id: fileNameColumn
+ role: "fileName"
+ title: qsTr("Filename")
+ delegate: Item {
+ implicitWidth: pathText.implicitWidth + pathText.anchors.leftMargin + pathText.anchors.rightMargin
+ IconGlyph {
+ id: fileIcon
+ x: 4
+ height: parent.height - 2
+ unicode: view.model.isFolder(styleData.row) ? "\ue804" : "\ue802"
+ }
+ Text {
+ id: pathText
+ text: styleData.value
+ anchors {
+ left: parent.left
+ right: parent.right
+ leftMargin: fileIcon.width + 6
+ rightMargin: 4
+ verticalCenter: parent.verticalCenter
+ }
+ color: styleData.textColor
+ elide: Text.ElideRight
+ renderType: ControlsPrivate.Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+ }
+ TableViewColumn {
+ role: "fileSuffix"
+ title: qsTr("Type", "file type (extension)")
+ // TODO should not need to create a whole new component just to customize the text value
+ // something like textFormat: function(text) { return view.model.get(styleData.row, "fileIsDir") ? "folder" : text }
+ delegate: Item {
+ implicitWidth: sizeText.implicitWidth + sizeText.anchors.leftMargin + sizeText.anchors.rightMargin
+ Text {
+ id: sizeText
+ text: view.model.get(styleData.row, "fileIsDir") ? "folder" : styleData.value
+ anchors {
+ left: parent.left
+ right: parent.right
+ leftMargin: 4
+ rightMargin: 4
+ verticalCenter: parent.verticalCenter
+ }
+ color: styleData.textColor
+ elide: Text.ElideRight
+ renderType: ControlsPrivate.Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+ }
+ TableViewColumn {
+ role: "fileSize"
+ title: qsTr("Size", "file size")
+ horizontalAlignment: Text.AlignRight
+ }
+ TableViewColumn { id: modifiedColumn; role: "fileModified" ; title: qsTr("Modified", "last-modified time") }
+ TableViewColumn { id: accessedColumn; role: "fileAccessed" ; title: qsTr("Accessed", "last-accessed time") }
+ }
+ }
+
+ ToolBar {
+ id: titleBar
+ RowLayout {
+ anchors.fill: parent
+ ToolButton {
+ action: dirUpAction
+ style: IconButtonStyle { }
+ Layout.maximumWidth: height * 1.5
+ }
+ TextField {
+ id: currentPathField
+ Layout.fillWidth: true
+ function doAccept() {
+ root.clearSelection()
+ if (root.addSelection(root.pathToUrl(text)))
+ root.accept()
+ else
+ root.folder = root.pathFolder(text)
+ }
+ onAccepted: doAccept()
+ }
+ }
+ }
+ Item {
+ id: bottomBar
+ width: parent.width
+ height: buttonRow.height + buttonRow.spacing * 2
+ anchors.bottom: parent.bottom
+
+ Row {
+ id: buttonRow
+ anchors.right: parent.right
+ anchors.rightMargin: spacing
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: 4
+ Button {
+ id: toggleSidebarButton
+ checkable: true
+ style: IconButtonStyle { }
+ text: "\u25E7"
+ height: cancelButton.height
+ width: height
+ checked: root.sidebarVisible
+ onClicked: {
+ root.sidebarVisible = !root.sidebarVisible
+ }
+ }
+ ComboBox {
+ id: filterField
+ model: root.nameFilters
+ visible: !selectFolder
+ width: bottomBar.width - toggleSidebarButton.width - cancelButton.width - okButton.width - parent.spacing * 6
+ anchors.verticalCenter: parent.verticalCenter
+ onCurrentTextChanged: {
+ root.selectNameFilter(currentText)
+ if (view.model)
+ view.model.nameFilters = root.selectedNameFilterExtensions
+ }
+ }
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ onClicked: root.reject()
+ }
+ Button {
+ id: okButton
+ text: root.selectFolder ? qsTr("Choose") : (selectExisting ? qsTr("Open") : qsTr("Save"))
+ onClicked: {
+ if (view.model.isFolder(view.currentRow) && !selectFolder)
+ dirDown(view.model.get(view.currentRow, "filePath"))
+ else if (!(root.selectExisting))
+ currentPathField.doAccept()
+ else
+ root.acceptSelection()
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qmlc
new file mode 100644
index 00000000..5a4490c2
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qml
new file mode 100644
index 00000000..ee6366a5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qml
@@ -0,0 +1,403 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Dialogs 1.1
+import QtQuick.Dialogs.Private 1.1
+import QtQuick.Layouts 1.1
+import QtQuick.Window 2.1
+import "qml"
+
+AbstractFontDialog {
+ id: root
+
+ property alias font: content.externalFont
+ property alias currentFont: content.font
+
+ Rectangle {
+ id: content
+ SystemPalette { id: palette }
+
+ implicitWidth: Math.min(root.__maximumDimension, Math.max(Screen.pixelDensity * 100, mainLayout.implicitWidth + outerSpacing * 2))
+ implicitHeight: Math.min(root.__maximumDimension, Math.max(Screen.pixelDensity * 60, mainLayout.implicitHeight + outerSpacing * 2))
+ property real spacing: 6
+ property real outerSpacing: 12
+ color: palette.window
+
+ property font font: Qt.font({ family: "Helvetica", pointSize: 24, weight: Font.Normal })
+ property font externalFont
+ property string writingSystem
+ property string writingSystemSample
+ property var pointSizes
+
+ onExternalFontChanged: {
+ if (Component.status != Component.Ready)
+ return
+
+ if (content.font != content.externalFont) {
+ font = externalFont
+ wsComboBox.reset()
+ fontListView.reset()
+ weightListView.reset()
+ }
+ }
+
+ Component.onCompleted: externalFontChanged()
+
+ onWritingSystemSampleChanged: { sample.text = writingSystemSample; }
+
+ Keys.onPressed: {
+ event.accepted = true
+ switch (event.key) {
+ case Qt.Key_Return:
+ case Qt.Key_Select:
+ updateUponAccepted()
+ break
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ reject()
+ break
+ default:
+ // do nothing
+ event.accepted = false
+ break
+ }
+ }
+
+ function updateUponAccepted() {
+ root.font = content.font
+ root.accept()
+ }
+
+ ColumnLayout {
+ id: mainLayout
+ anchors { fill: parent; margins: content.outerSpacing }
+ spacing: content.spacing
+
+ GridLayout {
+ columnSpacing: content.spacing; rowSpacing: content.spacing
+ columns: 3
+
+ Label { id: fontNameLabel; Layout.fillWidth: true; text: qsTr("Font"); font.bold: true }
+ Label { id: weightLabel; text: qsTr("Weight"); font.bold: true }
+ Label { id: sizeLabel; text: qsTr("Size"); font.bold: true }
+ TableView {
+ id: fontListView
+ focus: true
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredWidth: fontColumn.width
+ headerVisible: false
+ function reset() {
+ fontModel.findIndex()
+ content.pointSizes = fontModel.pointSizes()
+ fontModel.findPointSizesIndex()
+ }
+ TableViewColumn{ id: fontColumn; role: "family"; title: qsTr("Font Family") }
+ model: FontListModel {
+ id: fontModel
+ scalableFonts: root.scalableFonts
+ nonScalableFonts: root.nonScalableFonts
+ monospacedFonts: root.monospacedFonts
+ proportionalFonts: root.proportionalFonts
+ Component.onCompleted: fontListView.reset()
+ onModelReset: { findIndex(); }
+ function findIndex() {
+ fontListView.selection.clear()
+ if (fontModel.count <= 0 || fontListView.rowCount <= 0)
+ return
+
+ var currentRow = 0
+ if (content.font.family != "") {
+ for (var i = 0; i < fontModel.count; ++i) {
+ if (content.font.family == fontModel.get(i).family) {
+ currentRow = i
+ break
+ }
+ }
+ }
+ content.font.family = fontModel.get(currentRow).family
+ fontListView.selection.select(currentRow)
+ fontListView.positionViewAtRow(currentRow, ListView.Contain)
+ fontListView.clicked(currentRow)
+ }
+ function findPointSizesIndex() {
+ pointSizesListView.selection.clear()
+ if (content.pointSizes.length <= 0 || pointSizesListView.rowCount <= 0)
+ return
+
+ var currentRow = -1
+ for (var i = 0; i < content.pointSizes.length; ++i) {
+ if (content.font.pointSize == content.pointSizes[i]) {
+ currentRow = i
+ break
+ }
+ }
+ if (currentRow != -1) {
+ content.font.pointSize = content.pointSizes[currentRow]
+ pointSizesListView.selection.select(currentRow)
+ pointSizesListView.positionViewAtRow(currentRow, ListView.Contain)
+ pointSizesListView.clicked(currentRow)
+ }
+ }
+ }
+ function select(row) {
+ if (row == -1)
+ return
+ currentRow = row
+ content.font.family = fontModel.get(row).family
+ positionViewAtRow(row, ListView.Contain)
+ }
+ onClicked: select(row)
+ onCurrentRowChanged: select(currentRow)
+ }
+ TableView {
+ id: weightListView
+ implicitWidth: (Component.status == Component.Ready) ? (weightColumn.width + content.outerSpacing) : (100)
+ Layout.fillHeight: true
+ Component.onCompleted: resizeColumnsToContents();
+ headerVisible: false
+ function reset() {
+ weightModel.findIndex()
+ }
+ TableViewColumn { id: weightColumn; role: "name"; title: qsTr("Weight") }
+ model: ListModel {
+ id: weightModel
+ ListElement { name: qsTr("Thin"); weight: Font.Thin }
+ ListElement { name: qsTr("ExtraLight"); weight: Font.ExtraLight }
+ ListElement { name: qsTr("Light"); weight: Font.Light }
+ ListElement { name: qsTr("Normal"); weight: Font.Normal }
+ ListElement { name: qsTr("Medium"); weight: Font.Medium }
+ ListElement { name: qsTr("DemiBold"); weight: Font.DemiBold }
+ ListElement { name: qsTr("Bold"); weight: Font.Bold }
+ ListElement { name: qsTr("ExtraBold"); weight: Font.ExtraBold }
+ ListElement { name: qsTr("Black"); weight: Font.Black }
+ Component.onCompleted: weightListView.reset()
+ function findIndex() {
+ var currentRow = 1
+ for (var i = 0; i < weightModel.count; ++i) {
+ if (content.font.weight == weightModel.get(i).weight) {
+ currentRow = i
+ break
+ }
+ }
+ content.font.weight = weightModel.get(currentRow).family
+ weightListView.selection.select(currentRow)
+ weightListView.positionViewAtRow(currentRow, ListView.Contain)
+ weightListView.clicked(currentRow)
+ }
+ }
+ function select(row) {
+ if (row == -1)
+ return
+ currentRow = row
+ content.font.weight = weightModel.get(row).weight
+ positionViewAtRow(row, ListView.Contain)
+ }
+ onClicked: select(row)
+ onCurrentRowChanged: select(currentRow)
+ }
+ ColumnLayout {
+ SpinBox {
+ id: pointSizeSpinBox;
+ implicitWidth: (Component.status == Component.Ready) ? (psColumn.width + content.outerSpacing) : (80)
+ value: content.font.pointSize
+ decimals: 0
+ minimumValue: 1
+ maximumValue: 512
+ onValueChanged: {
+ content.font.pointSize = Number(value);
+ updatePointSizesIndex();
+ }
+ function updatePointSizesIndex() {
+ pointSizesListView.selection.clear()
+ if (content.pointSizes.length <= 0 || pointSizesListView.rowCount <= 0)
+ return
+ var currentRow = -1
+ for (var i = 0; i < content.pointSizes.length; ++i) {
+ if (content.font.pointSize == content.pointSizes[i]) {
+ currentRow = i
+ break
+ }
+ }
+ if (currentRow < 0)
+ return
+ content.font.pointSize = content.pointSizes[currentRow]
+ pointSizesListView.selection.select(currentRow)
+ pointSizesListView.positionViewAtRow(currentRow, ListView.Contain)
+ pointSizesListView.clicked(currentRow)
+ }
+ }
+ TableView {
+ id: pointSizesListView
+ Layout.fillHeight: true
+ headerVisible: false
+ implicitWidth: (Component.status == Component.Ready) ? (psColumn.width + content.outerSpacing) : (80)
+ Component.onCompleted: resizeColumnsToContents();
+ TableViewColumn{ id: psColumn; role: ""; title: qsTr("Size") }
+ model: content.pointSizes
+ property bool guard: false
+ function select(row) {
+ if (row == -1 || !guard)
+ return
+ currentRow = row
+ content.font.pointSize = content.pointSizes[row]
+ pointSizeSpinBox.value = content.pointSizes[row]
+ positionViewAtRow(row, ListView.Contain)
+ }
+ onClicked: select(row)
+ onCurrentRowChanged: {
+ select(currentRow)
+ if (!guard)
+ guard = true
+ }
+ }
+ }
+ }
+
+ RowLayout {
+ spacing: content.spacing
+ Layout.fillHeight: false
+ ColumnLayout {
+ spacing: content.spacing
+ Layout.rowSpan: 3
+ Label { id: optionsLabel; text: qsTr("Style"); font.bold: true }
+ CheckBox {
+ id: italicCheckBox
+ text: qsTr("Italic")
+ checked: content.font.italic
+ onClicked: { content.font.italic = italicCheckBox.checked }
+ }
+ CheckBox {
+ id: underlineCheckBox
+ text: qsTr("Underline")
+ checked: content.font.underline
+ onClicked: { content.font.underline = underlineCheckBox.checked }
+ }
+ CheckBox {
+ id: overlineCheckBox
+ text: qsTr("Overline")
+ checked: content.font.overline
+ onClicked: { content.font.overline = overlineCheckBox.checked }
+ }
+ CheckBox {
+ id: strikeoutCheckBox
+ text: qsTr("Strikeout")
+ checked: content.font.strikeout
+ onClicked: { content.font.strikeout = strikeoutCheckBox.checked }
+ }
+ Item { Layout.fillHeight: true; } //spacer
+ Label { id: writingSystemLabel; text: qsTr("Writing System"); font.bold: true }
+ }
+
+ ColumnLayout {
+ Layout.rowSpan: 3
+ spacing: content.spacing
+ Layout.columnSpan: 2
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Label { id: sampleLabel; text: qsTr("Sample"); font.bold: true }
+
+ Rectangle {
+ clip: true
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ implicitWidth: Math.min(360, sample.implicitWidth + parent.spacing)
+ implicitHeight: Math.min(240, sample.implicitHeight + parent.spacing)
+ color: "white"
+ border.color: "#999"
+ TextInput {
+ id: sample
+ activeFocusOnTab: true
+ Accessible.name: text
+ Accessible.role: Accessible.EditableText
+ anchors.centerIn: parent
+ font: content.font
+ onFocusChanged: if (!focus && sample.text == "") sample.text = content.writingSystemSample
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+ }
+ }
+
+ RowLayout {
+ id: buttonRow
+ Layout.columnSpan: 3
+ spacing: content.spacing
+ ComboBox {
+ id: wsComboBox
+ function reset() {
+ if (wsModel.count > 0) {
+ currentIndex = 0
+ }
+ }
+ textRole: "name"
+ model: WritingSystemListModel {
+ id: wsModel
+ Component.onCompleted: wsComboBox.reset()
+ }
+ onCurrentIndexChanged: {
+ if (currentIndex == -1)
+ return
+
+ content.writingSystem = wsModel.get(currentIndex).name
+ fontModel.writingSystem = content.writingSystem
+ content.writingSystemSample = wsModel.get(currentIndex).sample
+ fontListView.reset()
+ }
+ }
+ Item { Layout.fillWidth: true; } //spacer
+ Button {
+ text: qsTr("Cancel")
+ onClicked: root.reject()
+ }
+ Button {
+ text: qsTr("OK")
+ onClicked: {
+ content.updateUponAccepted()
+ }
+ }
+ }
+ }
+ }
+}
+
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qmlc
new file mode 100644
index 00000000..dba0ab47
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultFontDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qml
new file mode 100644
index 00000000..d2f2a078
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qml
@@ -0,0 +1,320 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Dialogs 1.1
+import QtQuick.Window 2.1
+import "qml"
+
+AbstractMessageDialog {
+ id: root
+
+ Rectangle {
+ id: content
+ property real spacing: 6
+ property real outerSpacing: 12
+ property real buttonsRowImplicitWidth: Screen.pixelDensity * 50
+ implicitHeight: contentColumn.implicitHeight + outerSpacing * 2
+ onImplicitHeightChanged: root.height = implicitHeight
+ implicitWidth: Math.min(root.__maximumDimension, Math.max(
+ mainText.implicitWidth, buttonsRowImplicitWidth) + outerSpacing * 2);
+ onImplicitWidthChanged: root.width = implicitWidth
+ color: palette.window
+ focus: root.visible
+ Keys.onPressed: {
+ event.accepted = true
+ if (event.modifiers === Qt.ControlModifier)
+ switch (event.key) {
+ case Qt.Key_A:
+ detailedText.selectAll()
+ break
+ case Qt.Key_C:
+ detailedText.copy()
+ break
+ case Qt.Key_Period:
+ if (Qt.platform.os === "osx")
+ reject()
+ break
+ } else switch (event.key) {
+ case Qt.Key_Escape:
+ case Qt.Key_Back:
+ reject()
+ break
+ case Qt.Key_Enter:
+ case Qt.Key_Return:
+ accept()
+ break
+ }
+ }
+
+ Column {
+ id: contentColumn
+ spacing: content.spacing
+ x: content.outerSpacing
+ y: content.outerSpacing
+ width: content.width - content.outerSpacing * 2
+
+ SystemPalette { id: palette }
+
+ Item {
+ width: parent.width
+ height: Math.max(icon.height, mainText.height + informativeText.height + content.spacing)
+ Image {
+ id: icon
+ source: root.standardIconSource
+ }
+
+ Text {
+ id: mainText
+ anchors {
+ left: icon.right
+ leftMargin: content.spacing
+ right: parent.right
+ }
+ text: root.text
+ font.weight: Font.Bold
+ wrapMode: Text.WordWrap
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ Text {
+ id: informativeText
+ anchors {
+ left: icon.right
+ right: parent.right
+ top: mainText.bottom
+ leftMargin: content.spacing
+ topMargin: content.spacing
+ }
+ text: root.informativeText
+ wrapMode: Text.WordWrap
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+
+
+ Flow {
+ id: buttons
+ spacing: content.spacing
+ layoutDirection: Qt.RightToLeft
+ width: parent.width + content.outerSpacing
+ x: -content.outerSpacing
+ Button {
+ id: okButton
+ text: qsTr("OK")
+ onClicked: root.click(StandardButton.Ok)
+ visible: root.standardButtons & StandardButton.Ok
+ }
+ Button {
+ id: openButton
+ text: qsTr("Open")
+ onClicked: root.click(StandardButton.Open)
+ visible: root.standardButtons & StandardButton.Open
+ }
+ Button {
+ id: saveButton
+ text: qsTr("Save")
+ onClicked: root.click(StandardButton.Save)
+ visible: root.standardButtons & StandardButton.Save
+ }
+ Button {
+ id: saveAllButton
+ text: qsTr("Save All")
+ onClicked: root.click(StandardButton.SaveAll)
+ visible: root.standardButtons & StandardButton.SaveAll
+ }
+ Button {
+ id: retryButton
+ text: qsTr("Retry")
+ onClicked: root.click(StandardButton.Retry)
+ visible: root.standardButtons & StandardButton.Retry
+ }
+ Button {
+ id: ignoreButton
+ text: qsTr("Ignore")
+ onClicked: root.click(StandardButton.Ignore)
+ visible: root.standardButtons & StandardButton.Ignore
+ }
+ Button {
+ id: applyButton
+ text: qsTr("Apply")
+ onClicked: root.click(StandardButton.Apply)
+ visible: root.standardButtons & StandardButton.Apply
+ }
+ Button {
+ id: yesButton
+ text: qsTr("Yes")
+ onClicked: root.click(StandardButton.Yes)
+ visible: root.standardButtons & StandardButton.Yes
+ }
+ Button {
+ id: yesAllButton
+ text: qsTr("Yes to All")
+ onClicked: root.click(StandardButton.YesToAll)
+ visible: root.standardButtons & StandardButton.YesToAll
+ }
+ Button {
+ id: noButton
+ text: qsTr("No")
+ onClicked: root.click(StandardButton.No)
+ visible: root.standardButtons & StandardButton.No
+ }
+ Button {
+ id: noAllButton
+ text: qsTr("No to All")
+ onClicked: root.click(StandardButton.NoToAll)
+ visible: root.standardButtons & StandardButton.NoToAll
+ }
+ Button {
+ id: discardButton
+ text: qsTr("Discard")
+ onClicked: root.click(StandardButton.Discard)
+ visible: root.standardButtons & StandardButton.Discard
+ }
+ Button {
+ id: resetButton
+ text: qsTr("Reset")
+ onClicked: root.click(StandardButton.Reset)
+ visible: root.standardButtons & StandardButton.Reset
+ }
+ Button {
+ id: restoreDefaultsButton
+ text: qsTr("Restore Defaults")
+ onClicked: root.click(StandardButton.RestoreDefaults)
+ visible: root.standardButtons & StandardButton.RestoreDefaults
+ }
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ onClicked: root.click(StandardButton.Cancel)
+ visible: root.standardButtons & StandardButton.Cancel
+ }
+ Button {
+ id: abortButton
+ text: qsTr("Abort")
+ onClicked: root.click(StandardButton.Abort)
+ visible: root.standardButtons & StandardButton.Abort
+ }
+ Button {
+ id: closeButton
+ text: qsTr("Close")
+ onClicked: root.click(StandardButton.Close)
+ visible: root.standardButtons & StandardButton.Close
+ }
+ Button {
+ id: moreButton
+ text: qsTr("Show Details...")
+ onClicked: content.state = (content.state === "" ? "expanded" : "")
+ visible: root.detailedText.length > 0
+ }
+ Button {
+ id: helpButton
+ text: qsTr("Help")
+ onClicked: root.click(StandardButton.Help)
+ visible: root.standardButtons & StandardButton.Help
+ }
+ onVisibleChildrenChanged: calculateImplicitWidth()
+ }
+ }
+
+ Item {
+ id: details
+ width: parent.width
+ implicitHeight: detailedText.implicitHeight + content.spacing
+ height: 0
+ clip: true
+
+ anchors {
+ left: parent.left
+ right: parent.right
+ top: contentColumn.bottom
+ topMargin: content.spacing
+ leftMargin: content.outerSpacing
+ rightMargin: content.outerSpacing
+ }
+
+ Flickable {
+ id: flickable
+ contentHeight: detailedText.height
+ anchors.fill: parent
+ anchors.topMargin: content.spacing
+ anchors.bottomMargin: content.outerSpacing
+ TextEdit {
+ id: detailedText
+ text: root.detailedText
+ width: details.width
+ wrapMode: Text.WordWrap
+ readOnly: true
+ selectByMouse: true
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "expanded"
+ PropertyChanges {
+ target: details
+ height: content.height - contentColumn.height - content.spacing - content.outerSpacing
+ }
+ PropertyChanges {
+ target: content
+ implicitHeight: contentColumn.implicitHeight + content.spacing * 2 +
+ detailedText.implicitHeight + content.outerSpacing * 2
+ }
+ PropertyChanges {
+ target: moreButton
+ text: qsTr("Hide Details")
+ }
+ }
+ ]
+ }
+ function calculateImplicitWidth() {
+ if (buttons.visibleChildren.length < 2)
+ return;
+ var calcWidth = 0;
+ for (var i = 0; i < buttons.visibleChildren.length; ++i)
+ calcWidth += Math.max(100, buttons.visibleChildren[i].implicitWidth) + content.spacing
+ content.buttonsRowImplicitWidth = content.outerSpacing + calcWidth
+ }
+ Component.onCompleted: calculateImplicitWidth()
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qmlc
new file mode 100644
index 00000000..ba1028bc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/DefaultMessageDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/dialogsprivateplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/dialogsprivateplugin.dll
new file mode 100644
index 00000000..cbf79312
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/dialogsprivateplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/plugins.qmltypes
new file mode 100644
index 00000000..f508d501
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/plugins.qmltypes
@@ -0,0 +1,334 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtQuick.Dialogs.Private 1.1'
+
+Module {
+ dependencies: ["QtQuick 2.0"]
+ Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
+ name: "QQuickFontListModel"
+ prototype: "QAbstractListModel"
+ exports: ["QtQuick.Dialogs.Private/FontListModel 1.1"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "writingSystem"; type: "string" }
+ Property { name: "scalableFonts"; type: "bool" }
+ Property { name: "nonScalableFonts"; type: "bool" }
+ Property { name: "monospacedFonts"; type: "bool" }
+ Property { name: "proportionalFonts"; type: "bool" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Signal { name: "rowCountChanged" }
+ Method {
+ name: "setScalableFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setNonScalableFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setMonospacedFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setProportionalFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "get"
+ type: "QJSValue"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method { name: "pointSizes"; type: "QJSValue" }
+ }
+ Component {
+ name: "QQuickWritingSystemListModel"
+ prototype: "QAbstractListModel"
+ exports: ["QtQuick.Dialogs.Private/WritingSystemListModel 1.1"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "writingSystems"; type: "QStringList"; isReadonly: true }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Signal { name: "rowCountChanged" }
+ Method {
+ name: "get"
+ type: "QJSValue"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/qmldir
new file mode 100644
index 00000000..562d59e3
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/Private/qmldir
@@ -0,0 +1,4 @@
+module QtQuick.Dialogs.Private
+plugin dialogsprivateplugin
+classname QtQuick2DialogsPrivatePlugin
+typeinfo plugins.qmltypes
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qml
new file mode 100644
index 00000000..891b371d
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.PrivateWidgets 1.0
+
+QtColorDialog { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qmlc
new file mode 100644
index 00000000..1e4de339
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetColorDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qml
new file mode 100644
index 00000000..f888431a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.PrivateWidgets 1.0
+
+QtFileDialog { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qmlc
new file mode 100644
index 00000000..cffd7a28
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFileDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qml
new file mode 100644
index 00000000..e1a10e57
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.PrivateWidgets 1.1
+
+QtFontDialog { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qmlc
new file mode 100644
index 00000000..96fca2e6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetFontDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qml
new file mode 100644
index 00000000..52e8f1c1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qml
@@ -0,0 +1,43 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.PrivateWidgets 1.1
+
+QtMessageDialog { }
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qmlc
new file mode 100644
index 00000000..d5d4d7f1
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/WidgetMessageDialog.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/dialogplugin.dll b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/dialogplugin.dll
new file mode 100644
index 00000000..04df3790
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/dialogplugin.dll differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkers.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkers.png
new file mode 100644
index 00000000..72cb9f03
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkers.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkmark.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkmark.png
new file mode 100644
index 00000000..821aafcc
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/checkmark.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/copy.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/copy.png
new file mode 100644
index 00000000..2aeb2828
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/copy.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/critical.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/critical.png
new file mode 100644
index 00000000..dc9c5aeb
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/critical.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/crosshairs.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/crosshairs.png
new file mode 100644
index 00000000..9a61946e
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/crosshairs.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/information.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/information.png
new file mode 100644
index 00000000..0a2eb87d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/information.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/question.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/question.png
new file mode 100644
index 00000000..2dd92fd7
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/question.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/slider_handle.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/slider_handle.png
new file mode 100644
index 00000000..e3b96543
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/slider_handle.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/sunken_frame.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/sunken_frame.png
new file mode 100644
index 00000000..178c3092
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/sunken_frame.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/warning.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/warning.png
new file mode 100644
index 00000000..cba78f6b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/warning.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/window_border.png b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/window_border.png
new file mode 100644
index 00000000..23c011d0
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/images/window_border.png differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/plugins.qmltypes b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/plugins.qmltypes
new file mode 100644
index 00000000..559bb48a
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/plugins.qmltypes
@@ -0,0 +1,484 @@
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated by:
+// 'qmlplugindump -nonrelocatable QtQuick.Dialogs 1.3'
+
+Module {
+ dependencies: [
+ "Qt.labs.folderlistmodel 2.1",
+ "Qt.labs.settings 1.0",
+ "QtGraphicalEffects 1.12",
+ "QtQml 2.14",
+ "QtQml.Models 2.2",
+ "QtQuick 2.9",
+ "QtQuick.Controls 1.5",
+ "QtQuick.Controls.Styles 1.4",
+ "QtQuick.Extras 1.4",
+ "QtQuick.Layouts 1.1",
+ "QtQuick.Window 2.2"
+ ]
+ Component {
+ name: "QQuickAbstractColorDialog"
+ prototype: "QQuickAbstractDialog"
+ Property { name: "showAlphaChannel"; type: "bool" }
+ Property { name: "color"; type: "QColor" }
+ Property { name: "currentColor"; type: "QColor" }
+ Property { name: "currentHue"; type: "double"; isReadonly: true }
+ Property { name: "currentSaturation"; type: "double"; isReadonly: true }
+ Property { name: "currentLightness"; type: "double"; isReadonly: true }
+ Property { name: "currentAlpha"; type: "double"; isReadonly: true }
+ Signal { name: "selectionAccepted" }
+ Method {
+ name: "setVisible"
+ Parameter { name: "v"; type: "bool" }
+ }
+ Method {
+ name: "setModality"
+ Parameter { name: "m"; type: "Qt::WindowModality" }
+ }
+ Method {
+ name: "setTitle"
+ Parameter { name: "t"; type: "string" }
+ }
+ Method {
+ name: "setColor"
+ Parameter { name: "arg"; type: "QColor" }
+ }
+ Method {
+ name: "setCurrentColor"
+ Parameter { name: "currentColor"; type: "QColor" }
+ }
+ Method {
+ name: "setShowAlphaChannel"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ }
+ Component {
+ name: "QQuickAbstractDialog"
+ prototype: "QObject"
+ Enum {
+ name: "StandardButton"
+ values: {
+ "NoButton": 0,
+ "Ok": 1024,
+ "Save": 2048,
+ "SaveAll": 4096,
+ "Open": 8192,
+ "Yes": 16384,
+ "YesToAll": 32768,
+ "No": 65536,
+ "NoToAll": 131072,
+ "Abort": 262144,
+ "Retry": 524288,
+ "Ignore": 1048576,
+ "Close": 2097152,
+ "Cancel": 4194304,
+ "Discard": 8388608,
+ "Help": 16777216,
+ "Apply": 33554432,
+ "Reset": 67108864,
+ "RestoreDefaults": 134217728,
+ "NButtons": 134217729
+ }
+ }
+ Enum {
+ name: "StandardButtons"
+ values: {
+ "NoButton": 0,
+ "Ok": 1024,
+ "Save": 2048,
+ "SaveAll": 4096,
+ "Open": 8192,
+ "Yes": 16384,
+ "YesToAll": 32768,
+ "No": 65536,
+ "NoToAll": 131072,
+ "Abort": 262144,
+ "Retry": 524288,
+ "Ignore": 1048576,
+ "Close": 2097152,
+ "Cancel": 4194304,
+ "Discard": 8388608,
+ "Help": 16777216,
+ "Apply": 33554432,
+ "Reset": 67108864,
+ "RestoreDefaults": 134217728,
+ "NButtons": 134217729
+ }
+ }
+ Property { name: "visible"; type: "bool" }
+ Property { name: "modality"; type: "Qt::WindowModality" }
+ Property { name: "title"; type: "string" }
+ Property { name: "isWindow"; type: "bool"; isReadonly: true }
+ Property { name: "x"; type: "int" }
+ Property { name: "y"; type: "int" }
+ Property { name: "width"; type: "int" }
+ Property { name: "height"; type: "int" }
+ Property { name: "__maximumDimension"; type: "int"; isReadonly: true }
+ Signal { name: "visibilityChanged" }
+ Signal { name: "geometryChanged" }
+ Signal { name: "accepted" }
+ Signal { name: "rejected" }
+ Method { name: "open" }
+ Method { name: "close" }
+ Method {
+ name: "setX"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setY"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setWidth"
+ Parameter { name: "arg"; type: "int" }
+ }
+ Method {
+ name: "setHeight"
+ Parameter { name: "arg"; type: "int" }
+ }
+ }
+ Component {
+ name: "QQuickAbstractFileDialog"
+ prototype: "QQuickAbstractDialog"
+ Property { name: "selectExisting"; type: "bool" }
+ Property { name: "selectMultiple"; type: "bool" }
+ Property { name: "selectFolder"; type: "bool" }
+ Property { name: "folder"; type: "QUrl" }
+ Property { name: "nameFilters"; type: "QStringList" }
+ Property { name: "selectedNameFilter"; type: "string" }
+ Property { name: "selectedNameFilterExtensions"; type: "QStringList"; isReadonly: true }
+ Property { name: "selectedNameFilterIndex"; type: "int" }
+ Property { name: "fileUrl"; type: "QUrl"; isReadonly: true }
+ Property { name: "fileUrls"; type: "QList"; isReadonly: true }
+ Property { name: "sidebarVisible"; type: "bool" }
+ Property { name: "defaultSuffix"; type: "string" }
+ Property { name: "shortcuts"; type: "QJSValue"; isReadonly: true }
+ Property { name: "__shortcuts"; type: "QJSValue"; isReadonly: true }
+ Signal { name: "filterSelected" }
+ Signal { name: "fileModeChanged" }
+ Signal { name: "selectionAccepted" }
+ Method {
+ name: "setVisible"
+ Parameter { name: "v"; type: "bool" }
+ }
+ Method {
+ name: "setTitle"
+ Parameter { name: "t"; type: "string" }
+ }
+ Method {
+ name: "setSelectExisting"
+ Parameter { name: "s"; type: "bool" }
+ }
+ Method {
+ name: "setSelectMultiple"
+ Parameter { name: "s"; type: "bool" }
+ }
+ Method {
+ name: "setSelectFolder"
+ Parameter { name: "s"; type: "bool" }
+ }
+ Method {
+ name: "setFolder"
+ Parameter { name: "f"; type: "QUrl" }
+ }
+ Method {
+ name: "setNameFilters"
+ Parameter { name: "f"; type: "QStringList" }
+ }
+ Method {
+ name: "selectNameFilter"
+ Parameter { name: "f"; type: "string" }
+ }
+ Method {
+ name: "setSelectedNameFilterIndex"
+ Parameter { name: "idx"; type: "int" }
+ }
+ Method {
+ name: "setSidebarVisible"
+ Parameter { name: "s"; type: "bool" }
+ }
+ Method {
+ name: "setDefaultSuffix"
+ Parameter { name: "suffix"; type: "string" }
+ }
+ }
+ Component {
+ name: "QQuickAbstractFontDialog"
+ prototype: "QQuickAbstractDialog"
+ Property { name: "scalableFonts"; type: "bool" }
+ Property { name: "nonScalableFonts"; type: "bool" }
+ Property { name: "monospacedFonts"; type: "bool" }
+ Property { name: "proportionalFonts"; type: "bool" }
+ Property { name: "font"; type: "QFont" }
+ Property { name: "currentFont"; type: "QFont" }
+ Signal { name: "selectionAccepted" }
+ Method {
+ name: "setVisible"
+ Parameter { name: "v"; type: "bool" }
+ }
+ Method {
+ name: "setModality"
+ Parameter { name: "m"; type: "Qt::WindowModality" }
+ }
+ Method {
+ name: "setTitle"
+ Parameter { name: "t"; type: "string" }
+ }
+ Method {
+ name: "setFont"
+ Parameter { name: "arg"; type: "QFont" }
+ }
+ Method {
+ name: "setCurrentFont"
+ Parameter { name: "arg"; type: "QFont" }
+ }
+ Method {
+ name: "setScalableFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setNonScalableFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setMonospacedFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ Method {
+ name: "setProportionalFonts"
+ Parameter { name: "arg"; type: "bool" }
+ }
+ }
+ Component {
+ name: "QQuickAbstractMessageDialog"
+ prototype: "QQuickAbstractDialog"
+ Enum {
+ name: "Icon"
+ values: {
+ "NoIcon": 0,
+ "Information": 1,
+ "Warning": 2,
+ "Critical": 3,
+ "Question": 4
+ }
+ }
+ Property { name: "text"; type: "string" }
+ Property { name: "informativeText"; type: "string" }
+ Property { name: "detailedText"; type: "string" }
+ Property { name: "icon"; type: "Icon" }
+ Property { name: "standardIconSource"; type: "QUrl"; isReadonly: true }
+ Property { name: "standardButtons"; type: "QQuickAbstractDialog::StandardButtons" }
+ Property {
+ name: "clickedButton"
+ type: "QQuickAbstractDialog::StandardButton"
+ isReadonly: true
+ }
+ Signal { name: "buttonClicked" }
+ Signal { name: "discard" }
+ Signal { name: "help" }
+ Signal { name: "yes" }
+ Signal { name: "no" }
+ Signal { name: "apply" }
+ Signal { name: "reset" }
+ Method {
+ name: "setVisible"
+ Parameter { name: "v"; type: "bool" }
+ }
+ Method {
+ name: "setTitle"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setText"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setInformativeText"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setDetailedText"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setIcon"
+ Parameter { name: "icon"; type: "Icon" }
+ }
+ Method {
+ name: "setStandardButtons"
+ Parameter { name: "buttons"; type: "StandardButtons" }
+ }
+ Method {
+ name: "click"
+ Parameter { name: "button"; type: "QQuickAbstractDialog::StandardButton" }
+ }
+ }
+ Component {
+ name: "QQuickColorDialog"
+ defaultProperty: "contentItem"
+ prototype: "QQuickAbstractColorDialog"
+ exports: ["QtQuick.Dialogs/AbstractColorDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QQuickDialog1"
+ defaultProperty: "contentItem"
+ prototype: "QQuickAbstractDialog"
+ exports: ["QtQuick.Dialogs/AbstractDialog 1.2"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "title"; type: "string" }
+ Property { name: "standardButtons"; type: "QQuickAbstractDialog::StandardButtons" }
+ Property {
+ name: "clickedButton"
+ type: "QQuickAbstractDialog::StandardButton"
+ isReadonly: true
+ }
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Signal { name: "buttonClicked" }
+ Signal { name: "discard" }
+ Signal { name: "help" }
+ Signal { name: "yes" }
+ Signal { name: "no" }
+ Signal { name: "apply" }
+ Signal { name: "reset" }
+ Method {
+ name: "setTitle"
+ Parameter { name: "arg"; type: "string" }
+ }
+ Method {
+ name: "setStandardButtons"
+ Parameter { name: "buttons"; type: "StandardButtons" }
+ }
+ Method {
+ name: "click"
+ Parameter { name: "button"; type: "QQuickAbstractDialog::StandardButton" }
+ }
+ Method { name: "__standardButtonsLeftModel"; type: "QJSValue" }
+ Method { name: "__standardButtonsRightModel"; type: "QJSValue" }
+ }
+ Component {
+ name: "QQuickFileDialog"
+ defaultProperty: "contentItem"
+ prototype: "QQuickAbstractFileDialog"
+ exports: ["QtQuick.Dialogs/AbstractFileDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ Method { name: "clearSelection" }
+ Method {
+ name: "addSelection"
+ type: "bool"
+ Parameter { name: "path"; type: "QUrl" }
+ }
+ }
+ Component {
+ name: "QQuickFontDialog"
+ defaultProperty: "contentItem"
+ prototype: "QQuickAbstractFontDialog"
+ exports: ["QtQuick.Dialogs/AbstractFontDialog 1.1"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QQuickMessageDialog"
+ defaultProperty: "contentItem"
+ prototype: "QQuickAbstractMessageDialog"
+ exports: ["QtQuick.Dialogs/AbstractMessageDialog 1.1"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "contentItem"; type: "QQuickItem"; isPointer: true }
+ }
+ Component {
+ name: "QQuickStandardButton"
+ exports: ["QtQuick.Dialogs/StandardButton 1.1"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ name: "QQuickStandardIcon"
+ exports: ["QtQuick.Dialogs/StandardIcon 1.1"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
+ prototype: "QQuickColorDialog"
+ name: "QtQuick.Dialogs/ColorDialog 1.0"
+ exports: ["QtQuick.Dialogs/ColorDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentItem"
+ Property { name: "__valueSet"; type: "bool" }
+ Method { name: "__setControlsFromColor"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickDialog1"
+ name: "QtQuick.Dialogs/Dialog 1.2"
+ exports: ["QtQuick.Dialogs/Dialog 1.2"]
+ exportMetaObjectRevisions: [2]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Signal {
+ name: "actionChosen"
+ Parameter { name: "action"; type: "QVariant" }
+ }
+ Method { name: "setupButtons"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickDialog1"
+ name: "QtQuick.Dialogs/Dialog 1.3"
+ exports: ["QtQuick.Dialogs/Dialog 1.3"]
+ exportMetaObjectRevisions: [3]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
+ Signal {
+ name: "actionChosen"
+ Parameter { name: "action"; type: "QVariant" }
+ }
+ Method { name: "setupButtons"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickFileDialog"
+ name: "QtQuick.Dialogs/FileDialog 1.0"
+ exports: ["QtQuick.Dialogs/FileDialog 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "contentItem"
+ Property { name: "modelComponent"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "settings"; type: "QQmlSettings"; isPointer: true }
+ Property { name: "showFocusHighlight"; type: "bool" }
+ Property { name: "palette"; type: "QQuickSystemPalette"; isPointer: true }
+ Property { name: "favoriteFolders"; type: "QVariant" }
+ Property { name: "dirUpAction"; type: "QQuickAction1"; isPointer: true }
+ Method {
+ name: "dirDown"
+ type: "QVariant"
+ Parameter { name: "path"; type: "QVariant" }
+ }
+ Method { name: "dirUp"; type: "QVariant" }
+ Method { name: "acceptSelection"; type: "QVariant" }
+ }
+ Component {
+ prototype: "QQuickFontDialog"
+ name: "QtQuick.Dialogs/FontDialog 1.1"
+ exports: ["QtQuick.Dialogs/FontDialog 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "contentItem"
+ Property { name: "font"; type: "QFont" }
+ Property { name: "currentFont"; type: "QFont" }
+ }
+ Component {
+ prototype: "QQuickMessageDialog"
+ name: "QtQuick.Dialogs/MessageDialog 1.1"
+ exports: ["QtQuick.Dialogs/MessageDialog 1.1"]
+ exportMetaObjectRevisions: [1]
+ isComposite: true
+ defaultProperty: "contentItem"
+ Method { name: "calculateImplicitWidth"; type: "QVariant" }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qml
new file mode 100644
index 00000000..8322910f
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qml
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls.Private 1.0
+
+Item {
+ id: colorSlider
+
+ property real value: 1
+ property real maximum: 1
+ property real minimum: 0
+ property string text: ""
+ property bool pressed: mouseArea.pressed
+ property bool integer: false
+ property Component trackDelegate
+ property string handleSource: "../images/slider_handle.png"
+
+ width: parent.width
+ height: handle.height + textText.implicitHeight
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = (track.width - 10) * (value - minimum) / (maximum - minimum) + 5;
+ return Math.min(Math.max(pos, 5), track.width - 5) - 10;
+ } else {
+ return 5;
+ }
+ }
+
+ SystemPalette { id: palette }
+
+ Column {
+ id: column
+ width: parent.width
+ spacing: 12
+ Text {
+ id: textText
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: colorSlider.text
+ anchors.left: parent.left
+ color: palette.windowText
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ }
+
+ Item {
+ id: track
+ height: 8
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Loader {
+ sourceComponent: trackDelegate
+ width: parent.height
+ height: parent.width
+ y: width
+ }
+
+ BorderImage {
+ source: "../images/sunken_frame.png"
+ border.left: 8
+ border.right: 8
+ border.top:8
+ border.bottom: 8
+ anchors.fill: track
+ anchors.margins: -1
+ anchors.topMargin: -2
+ anchors.leftMargin: -2
+ }
+
+ Image {
+ id: handle
+ anchors.verticalCenter: parent.verticalCenter
+ smooth: true
+ source: "../images/slider_handle.png"
+ x: updatePos() - 8
+ z: 1
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors {left: parent.left; right: parent.right; verticalCenter: parent.verticalCenter}
+ height: handle.height
+ width: handle.width
+ preventStealing: true
+
+ onPressed: {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = colorSlider.integer ? Math.round(realValue) : realValue;
+ }
+
+ onPositionChanged: {
+ if (pressed) {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = colorSlider.integer ? Math.round(realValue) : realValue;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qmlc
new file mode 100644
index 00000000..577d4742
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/ColorSlider.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml
new file mode 100644
index 00000000..ceb8b215
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+Rectangle {
+ color: "#80000000"
+ anchors.fill: parent
+ z: 1000000
+ property alias content: borderImage.content
+ property bool dismissOnOuterClick: true
+ signal dismissed
+ MouseArea {
+ anchors.fill: parent
+ onClicked: if (dismissOnOuterClick) dismissed()
+ BorderImage {
+ id: borderImage
+ property Item content
+
+ MouseArea { anchors.fill: parent }
+
+ width: content ? content.width + 15 : 0
+ height: content ? content.height + 15 : 0
+ onWidthChanged: if (content) content.x = 5
+ onHeightChanged: if (content) content.y = 5
+ border { left: 10; top: 10; right: 10; bottom: 10 }
+ clip: true
+ source: "../images/window_border.png"
+ anchors.centerIn: parent
+ onContentChanged: if (content) content.parent = borderImage
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qmlc
new file mode 100644
index 00000000..51139d48
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/DefaultWindowDecoration.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qml
new file mode 100644
index 00000000..a09debeb
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Private 1.0
+import QtQuick.Controls.Styles 1.1
+
+ButtonStyle {
+ FontLoader { id: iconFont; source: "icons.ttf" }
+
+ label: Text {
+ id: text
+ font.family: iconFont.name
+ font.pointSize: TextSingleton.font.pointSize * 1.5
+ renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering
+ text: control.text
+ color: SystemPaletteSingleton.buttonText(control.enabled)
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qmlc
new file mode 100644
index 00000000..795bc41d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconButtonStyle.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qml
new file mode 100644
index 00000000..728ce7e1
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+
+Text {
+ id: icon
+ width: height
+ verticalAlignment: Text.AlignVCenter
+ font.family: iconFont.name
+ property alias unicode: icon.text
+ FontLoader { id: iconFont; source: "icons.ttf"; onNameChanged: console.log("custom font" + name) }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qmlc
new file mode 100644
index 00000000..d1a1a5e6
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/IconGlyph.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/icons.ttf b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/icons.ttf
new file mode 100644
index 00000000..54289ca9
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/icons.ttf differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/qmldir
new file mode 100644
index 00000000..b130eec8
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qml/qmldir
@@ -0,0 +1,3 @@
+ColorSlider 1.0 ColorSlider.qml
+IconButtonStyle 1.0 IconButtonStyle.qml
+IconGlyph 1.0 IconGlyph.qml
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qmldir b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qmldir
new file mode 100644
index 00000000..88df140e
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Dialogs/qmldir
@@ -0,0 +1,10 @@
+module QtQuick.Dialogs
+plugin dialogplugin
+classname QtQuick2DialogsPlugin
+typeinfo plugins.qmltypes
+depends Qt.labs.folderlistmodel 1.0
+depends Qt.labs.settings 1.0
+depends QtQuick.Dialogs.Private 1.0
+depends QtQuick.Controls 1.3
+depends QtQuick.PrivateWidgets 1.1
+depends QtQml 2.14
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qml
new file mode 100644
index 00000000..d42e17d5
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qml
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+// Workaround for QTBUG-37751; we need this import for RangeModel, although we shouldn't.
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype CircularGauge
+ \inqmlmodule QtQuick.Extras
+ \since 5.5
+ \ingroup extras
+ \ingroup extras-non-interactive
+ \brief A gauge that displays a value within a range along an arc.
+
+ \image circulargauge.png CircularGauge
+
+ The CircularGauge is similar to traditional mechanical gauges that use a
+ needle to display a value from some input, such as the speed of a vehicle or
+ air pressure, for example.
+
+ The minimum and maximum values displayable by the gauge can be set with the
+ \l minimumValue and \l maximumValue properties. The angle at which these
+ values are displayed can be set with the
+ \l {CircularGaugeStyle::}{minimumValueAngle} and
+ \l {CircularGaugeStyle::}{maximumValueAngle} properties of
+ \l {CircularGaugeStyle}.
+
+ Example:
+ \code
+ CircularGauge {
+ value: accelerating ? maximumValue : 0
+ anchors.centerIn: parent
+
+ property bool accelerating: false
+
+ Keys.onSpacePressed: accelerating = true
+ Keys.onReleased: {
+ if (event.key === Qt.Key_Space) {
+ accelerating = false;
+ event.accepted = true;
+ }
+ }
+
+ Component.onCompleted: forceActiveFocus()
+
+ Behavior on value {
+ NumberAnimation {
+ duration: 1000
+ }
+ }
+ }
+ \endcode
+
+ You can create a custom appearance for a CircularGauge by assigning a
+ \l {CircularGaugeStyle}.
+*/
+
+Control {
+ id: circularGauge
+
+ style: Settings.styleComponent(Settings.style, "CircularGaugeStyle.qml", circularGauge)
+
+ /*!
+ \qmlproperty real CircularGauge::minimumValue
+
+ This property holds the smallest value displayed by the gauge.
+ */
+ property alias minimumValue: range.minimumValue
+
+ /*!
+ \qmlproperty real CircularGauge::maximumValue
+
+ This property holds the largest value displayed by the gauge.
+ */
+ property alias maximumValue: range.maximumValue
+
+ /*!
+ This property holds the current value displayed by the gauge, which will
+ always be between \l minimumValue and \l maximumValue, inclusive.
+ */
+ property alias value: range.value
+
+ /*!
+ \qmlproperty real CircularGauge::stepSize
+
+ This property holds the size of the value increments that the needle
+ displays.
+
+ For example, when stepSize is \c 10 and value is \c 0, adding \c 5 to
+ \l value will have no visible effect on the needle, although \l value
+ will still be incremented. Adding an extra \c 5 to \l value will then
+ cause the needle to point to \c 10.
+ */
+ property alias stepSize: range.stepSize
+
+ /*!
+ This property determines whether or not the gauge displays tickmarks,
+ minor tickmarks, and labels.
+
+ For more fine-grained control over what is displayed, the following
+ style components of
+ \l CircularGaugeStyle can be
+ used:
+
+ \list
+ \li \l {CircularGaugeStyle::}{tickmark}
+ \li \l {CircularGaugeStyle::}{minorTickmark}
+ \li \l {CircularGaugeStyle::}{tickmarkLabel}
+ \endlist
+ */
+ property bool tickmarksVisible: true
+
+ RangeModel {
+ id: range
+ minimumValue: 0
+ maximumValue: 100
+ stepSize: 0
+ value: minimumValue
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qmlc
new file mode 100644
index 00000000..4879a7f3
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/CircularGauge.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qml
new file mode 100644
index 00000000..9a0c3a25
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qml
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.14 as Qml
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+
+/*!
+ \qmltype DelayButton
+ \inherits QtQuickControls::Button
+ \inqmlmodule QtQuick.Extras
+ \since 5.5
+ \ingroup extras
+ \ingroup extras-interactive
+ \brief A checkable button that triggers an action when held in long enough.
+
+ \image delaybutton.png A DelayButton
+
+ The DelayButton is a checkable button that incorporates a delay before
+ the button becomes checked and the \l activated signal is emitted. This
+ delay prevents accidental presses.
+
+ The current progress is expressed as a decimal value between \c 0.0 and
+ \c 1.0. The time it takes for \l activated to be emitted is measured in
+ milliseconds, and can be set with the \l delay property.
+
+ The progress is indicated by a progress indicator around the button. When
+ the indicator reaches completion, it flashes.
+
+ \image delaybutton-progress.png A DelayButton being held down
+ A DelayButton being held down
+ \image delaybutton-activated.png A DelayButton after being activated
+ A DelayButton after being activated
+
+ You can create a custom appearance for a DelayButton by assigning a
+ \l {DelayButtonStyle}.
+*/
+
+Button {
+ id: root
+
+ style: Settings.styleComponent(Settings.style, "DelayButtonStyle.qml", root)
+
+ /*!
+ \qmlproperty real DelayButton::progress
+
+ This property holds the current progress as displayed by the progress
+ indicator, in the range \c 0.0 - \c 1.0.
+ */
+ readonly property alias progress: root.__progress
+
+ /*!
+ This property holds the time it takes (in milliseconds) for \l progress
+ to reach \c 1.0 and emit \l activated.
+
+ The default value is \c 3000 ms.
+ */
+ property int delay: 3000
+
+ /*!
+ This signal is emitted when \l progress reaches \c 1.0 and the button
+ becomes checked.
+ */
+ signal activated
+
+
+ /*! \internal */
+ property real __progress: 0.0
+
+ Behavior on __progress {
+ id: progressBehavior
+
+ NumberAnimation {
+ id: numberAnimation
+ }
+ }
+
+ Qml.Binding {
+ // Force checkable to false to get full control over the checked -property
+ target: root
+ property: "checkable"
+ value: false
+ restoreMode: Binding.RestoreBinding
+ }
+
+ onProgressChanged: {
+ if (__progress === 1.0) {
+ checked = true;
+ activated();
+ }
+ }
+
+ onCheckedChanged: {
+ if (checked) {
+ if (__progress < 1) {
+ // Programmatically activated the button; don't animate.
+ progressBehavior.enabled = false;
+ __progress = 1;
+ progressBehavior.enabled = true;
+ }
+ } else {
+ // Unchecked the button after it was flashing; it should instantly stop
+ // flashing (with no reversed progress bar).
+ progressBehavior.enabled = false;
+ __progress = 0;
+ progressBehavior.enabled = true;
+ }
+ }
+
+ onPressedChanged: {
+ if (checked) {
+ if (pressed) {
+ // Pressed the button to stop the activation.
+ checked = false;
+ }
+ } else {
+ var effectiveDelay = pressed ? delay : delay * 0.3;
+ // Not active. Either the button is being held down or let go.
+ numberAnimation.duration = Math.max(0, (pressed ? 1 - __progress : __progress) * effectiveDelay);
+ __progress = pressed ? 1 : 0;
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qmlc
new file mode 100644
index 00000000..419644f8
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/DelayButton.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qml
new file mode 100644
index 00000000..688f13d9
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qml
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype Dial
+ \inqmlmodule QtQuick.Extras
+ \since 5.5
+ \ingroup extras
+ \ingroup extras-interactive
+ \brief A circular dial that is rotated to set a value.
+
+ \image dial.png A Dial
+
+ The Dial is similar to a traditional dial knob that is found on devices
+ such as stereos or industrial equipment. It allows the user to specify a
+ value within a range.
+
+ Like CircularGauge, Dial can display tickmarks to give an indication of
+ the current value. When a suitable stepSize is combined with
+ \l {DialStyle::}{tickmarkStepSize},
+ the dial "snaps" to each tickmark.
+
+ You can create a custom appearance for a Dial by assigning a
+ \l {DialStyle}.
+*/
+
+Control {
+ id: dial
+
+ activeFocusOnTab: true
+ style: Settings.styleComponent(Settings.style, "DialStyle.qml", dial)
+
+ /*!
+ \qmlproperty real Dial::value
+
+ The angle of the handle along the dial, in the range of
+ \c 0.0 to \c 1.0.
+
+ The default value is \c{0.0}.
+ */
+ property alias value: range.value
+
+ /*!
+ \qmlproperty real Dial::minimumValue
+
+ The smallest value allowed by the dial.
+
+ The default value is \c{0.0}.
+
+ \sa value, maximumValue
+ */
+ property alias minimumValue: range.minimumValue
+
+ /*!
+ \qmlproperty real Dial::maximumValue
+
+ The largest value allowed by the dial.
+
+ The default value is \c{1.0}.
+
+ \sa value, minimumValue
+ */
+ property alias maximumValue: range.maximumValue
+
+ /*!
+ \qmlproperty real Dial::hovered
+
+ This property holds whether the button is being hovered.
+ */
+ readonly property alias hovered: mouseArea.containsMouse
+
+ /*!
+ \qmlproperty real Dial::stepSize
+
+ The default value is \c{0.0}.
+ */
+ property alias stepSize: range.stepSize
+
+ /*!
+ \internal
+ Determines whether the dial can be freely rotated past the zero marker.
+
+ The default value is \c false.
+ */
+ property bool __wrap: false
+
+ /*!
+ This property specifies whether the dial should gain active focus when
+ pressed.
+
+ The default value is \c false.
+
+ \sa pressed
+ */
+ property bool activeFocusOnPress: false
+
+ /*!
+ \qmlproperty bool Dial::pressed
+
+ Returns \c true if the dial is pressed.
+
+ \sa activeFocusOnPress
+ */
+ readonly property alias pressed: mouseArea.pressed
+
+ /*!
+ This property determines whether or not the dial displays tickmarks,
+ minor tickmarks, and labels.
+
+ For more fine-grained control over what is displayed, the following
+ style components of
+ \l {DialStyle} can be used:
+
+ \list
+ \li \l {DialStyle::}{tickmark}
+ \li \l {DialStyle::}{minorTickmark}
+ \li \l {DialStyle::}{tickmarkLabel}
+ \endlist
+
+ The default value is \c true.
+ */
+ property bool tickmarksVisible: true
+
+ Keys.onLeftPressed: value -= stepSize
+ Keys.onDownPressed: value -= stepSize
+ Keys.onRightPressed: value += stepSize
+ Keys.onUpPressed: value += stepSize
+ Keys.onPressed: {
+ if (event.key === Qt.Key_Home) {
+ value = minimumValue;
+ event.accepted = true;
+ } else if (event.key === Qt.Key_End) {
+ value = maximumValue;
+ event.accepted = true;
+ }
+ }
+
+ RangeModel {
+ id: range
+ minimumValue: 0.0
+ maximumValue: 1.0
+ stepSize: 0
+ value: 0
+ }
+
+ MouseArea {
+ id: mouseArea
+ hoverEnabled: true
+ parent: __panel.background.parent
+ anchors.fill: parent
+
+ onPositionChanged: {
+ if (pressed) {
+ value = valueFromPoint(mouseX, mouseY);
+ }
+ }
+ onPressed: {
+ if (!__style.__dragToSet)
+ value = valueFromPoint(mouseX, mouseY);
+
+ if (activeFocusOnPress)
+ dial.forceActiveFocus();
+ }
+
+ function bound(val) { return Math.max(minimumValue, Math.min(maximumValue, val)); }
+
+ function valueFromPoint(x, y)
+ {
+ var yy = height / 2.0 - y;
+ var xx = x - width / 2.0;
+ var angle = (xx || yy) ? Math.atan2(yy, xx) : 0;
+
+ if (angle < Math.PI/ -2)
+ angle = angle + Math.PI * 2;
+
+ var range = maximumValue - minimumValue;
+ var value;
+ if (__wrap)
+ value = (minimumValue + range * (Math.PI * 3 / 2 - angle) / (2 * Math.PI));
+ else
+ value = (minimumValue + range * (Math.PI * 4 / 3 - angle) / (Math.PI * 10 / 6));
+
+ return bound(value)
+ }
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qmlc
new file mode 100644
index 00000000..40778d4d
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Dial.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qml
new file mode 100644
index 00000000..276cc125
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qml
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+
+/*!
+ \qmltype Gauge
+ \inqmlmodule QtQuick.Extras
+ \since 5.5
+ \ingroup extras
+ \ingroup extras-non-interactive
+ \brief A straight gauge that displays a value within a range.
+
+ \image gauge.png Gauge
+
+ The Gauge control displays a value within some range along a horizontal or
+ vertical axis. It can be thought of as an extension of ProgressBar,
+ providing tickmarks and labels to provide a visual measurement of the
+ progress.
+
+ The minimum and maximum values displayable by the gauge can be set with the
+ \l minimumValue and \l maximumValue properties.
+
+ Example:
+ \code
+ Gauge {
+ minimumValue: 0
+ value: 50
+ maximumValue: 100
+ anchors.centerIn: parent
+ }
+ \endcode
+
+ You can create a custom appearance for a Gauge by assigning a
+ \l {GaugeStyle}.
+*/
+
+Control {
+ id: gauge
+
+ style: Settings.styleComponent(Settings.style, "GaugeStyle.qml", gauge)
+
+ /*!
+ This property holds the smallest value displayed by the gauge.
+
+ The default value is \c 0.
+ */
+ property alias minimumValue: range.minimumValue
+
+ /*!
+ This property holds the value displayed by the gauge.
+
+ The default value is \c 0.
+ */
+ property alias value: range.value
+
+ /*!
+ This property holds the largest value displayed by the gauge.
+
+ The default value is \c 100.
+ */
+ property alias maximumValue: range.maximumValue
+
+ /*!
+ This property determines the orientation of the gauge.
+
+ The default value is \c Qt.Vertical.
+ */
+ property int orientation: Qt.Vertical
+
+ /*!
+ This property determines the alignment of each tickmark within the
+ gauge. When \l orientation is \c Qt.Vertical, the valid values are:
+
+ \list
+ \li Qt.AlignLeft
+ \li Qt.AlignRight
+ \endlist
+
+ Any other value will cause \c Qt.AlignLeft to be used, which is also the
+ default value for this orientation.
+
+ When \l orientation is \c Qt.Horizontal, the valid values are:
+
+ \list
+ \li Qt.AlignTop
+ \li Qt.AlignBottom
+ \endlist
+
+ Any other value will cause \c Qt.AlignBottom to be used, which is also
+ the default value for this orientation.
+ */
+ property int tickmarkAlignment: orientation == Qt.Vertical ? Qt.AlignLeft : Qt.AlignBottom
+ property int __tickmarkAlignment: {
+ if (orientation == Qt.Vertical) {
+ return (tickmarkAlignment == Qt.AlignLeft || tickmarkAlignment == Qt.AlignRight) ? tickmarkAlignment : Qt.AlignLeft;
+ }
+
+ return (tickmarkAlignment == Qt.AlignTop || tickmarkAlignment == Qt.AlignBottom) ? tickmarkAlignment : Qt.AlignBottom;
+ }
+
+ /*!
+ \internal
+
+ TODO: finish this
+
+ This property determines whether or not the tickmarks and their labels
+ are drawn inside (over) the gauge. The value of this property affects
+ \l tickmarkAlignment.
+ */
+ property bool __tickmarksInside: false
+
+ /*!
+ This property determines the rate at which tickmarks are drawn on the
+ gauge. The lower the value, the more often tickmarks are drawn.
+
+ The default value is \c 10.
+ */
+ property real tickmarkStepSize: 10
+
+ /*!
+ This property determines the amount of minor tickmarks drawn between
+ each regular tickmark.
+
+ The default value is \c 4.
+ */
+ property int minorTickmarkCount: 4
+
+ /*!
+ \qmlproperty font Gauge::font
+
+ The font to use for the tickmark text.
+ */
+ property alias font: hiddenText.font
+
+ /*!
+ This property accepts a function that formats the given \a value for
+ display in
+ \l {GaugeStyle::}{tickmarkLabel}.
+
+ For example, to provide a custom format that displays all values with 3
+ decimal places:
+
+ \code
+ formatValue: function(value) {
+ return value.toFixed(3);
+ }
+ \endcode
+
+ The default function does no formatting.
+ */
+ property var formatValue: function(value) {
+ return value;
+ }
+
+ property alias __hiddenText: hiddenText
+ Text {
+ id: hiddenText
+ text: formatValue(maximumValue)
+ visible: false
+ }
+
+ RangeModel {
+ id: range
+ minimumValue: 0
+ value: 0
+ maximumValue: 100
+ }
+}
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qmlc b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qmlc
new file mode 100644
index 00000000..ca7aa59b
Binary files /dev/null and b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/Gauge.qmlc differ
diff --git a/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/PieMenu.qml b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/PieMenu.qml
new file mode 100644
index 00000000..cfaaecbe
--- /dev/null
+++ b/OTHERS/Jarvis/ools/PyQt5/Qt5/qml/QtQuick/Extras/PieMenu.qml
@@ -0,0 +1,738 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Extras module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.2
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls.Private 1.0
+import QtQuick.Extras 1.4
+import QtQuick.Extras.Private 1.0
+import QtQuick.Extras.Private.CppUtils 1.0 as CppUtils
+
+/*!
+ \qmltype PieMenu
+ \inqmlmodule QtQuick.Extras
+ \since 5.5
+ \ingroup extras
+ \ingroup extras-interactive
+ \brief A popup menu that displays several menu items along an arc.
+
+ \image piemenu.png A PieMenu
+
+ The PieMenu provides a radial context menu as an alternative to a
+ traditional menu. All of the items in a PieMenu are an equal distance
+ from the center of the control.
+
+ \section2 Populating the Menu
+
+ To create a menu, define at least one MenuItem as a child of it:
+ \code
+ PieMenu {
+ id: pieMenu
+
+ MenuItem {
+ text: "Action 1"
+ onTriggered: print("Action 1")
+ }
+ MenuItem {
+ text: "Action 2"
+ onTriggered: print("Action 2")
+ }
+ MenuItem {
+ text: "Action 3"
+ onTriggered: print("Action 3")
+ }
+ }
+ \endcode
+
+ By default, only the currently selected item's text is displayed above the
+ menu. To provide text that is always visible when there is no current item,
+ set the \l title property.
+
+ \section2 Displaying the Menu
+
+ The typical use case for a menu is to open at the point of the mouse
+ cursor after a right click occurs. To do that, define a MouseArea that
+ covers the region upon which clicks should open the menu. When the
+ MouseArea is right-clicked, call the popup() function:
+ \code
+ MouseArea {
+ anchors.fill: parent
+ acceptedButtons: Qt.RightButton
+
+ onClicked: pieMenu.popup(mouseX, mouseY)
+ }
+ \endcode
+
+ If the menu is opened in a position where some of its menu items would be
+ outside of \l boundingItem, it is automatically moved to a position where
+ they will not be hidden. By default, the boundingItem is set to the parent
+ of the menu. It can also be set to \c null to prevent this behavior.
+
+ PieMenu can be displayed at any position on the screen. With a traditional
+ context menu, the menu would be positioned with its top left corner at the
+ position of the right click, but since PieMenu is radial, we position it
+ centered over the position of the right click.
+
+ To create a PieMenu that opens after a long press and selects items upon
+ releasing, you can combine ActivationMode.ActivateOnRelease with a
+ MouseArea using a Timer:
+ \code
+ MouseArea {
+ id: touchArea
+ anchors.fill: parent
+
+ Timer {
+ id: pressAndHoldTimer
+ interval: 300
+ onTriggered: pieMenu.popup(touchArea.mouseX, touchArea.mouseY);
+ }
+
+ onPressed: pressAndHoldTimer.start()
+ onReleased: pressAndHoldTimer.stop();
+ }
+
+ PieMenu {
+ id: pieMenu
+
+ triggerMode: TriggerMode.TriggerOnRelease
+
+ MenuItem {
+ text: "Action 1"
+ onTriggered: print("Action 1")
+ }
+ MenuItem {
+ text: "Action 2"
+ onTriggered: print("Action 2")
+ }
+ MenuItem {
+ text: "Action 3"
+ onTriggered: print("Action 3")
+ }
+ }
+ \endcode
+
+ You can hide individual menu items by setting their visible property to
+ \c false. Hiding items does not affect the
+ \l {PieMenuStyle::}{startAngle} or
+ \l {PieMenuStyle::}{endAngle}; the
+ remaining items will grow to consume the available space.
+
+ You can create a custom appearance for a PieMenu by assigning a \l {PieMenuStyle}
+*/
+
+Control {
+ id: pieMenu
+ visible: false
+
+ style: Settings.styleComponent(Settings.style, "PieMenuStyle.qml", pieMenu)
+
+ /*!
+ This property reflects the angle (in radians) created by the imaginary
+ line from the center of the menu to the position of the cursor.
+
+ Its value is undefined when the menu is not visible.
+ */
+ readonly property real selectionAngle: {
+ var centerX = width / 2;
+ var centerY = height / 2;
+ var targetX = __protectedScope.selectionPos.x;
+ var targetY = __protectedScope.selectionPos.y;
+
+ var xDistance = centerX - targetX;
+ var yDistance = centerY - targetY;
+
+ var angleToTarget = Math.atan2(xDistance, yDistance) * -1;
+ angleToTarget;
+ }
+
+ /*!
+ \qmlproperty enumeration PieMenu::activationMode
+
+ This property determines the method for selecting items in the menu.
+
+ \list
+ \li An activationMode of \a ActivationMode.ActivateOnPress means that menu
+ items will only be selected when a mouse press event occurs over them.
+
+ \li An activationMode of \a ActivationMode.ActivateOnRelease means that menu
+ items will only be selected when a mouse release event occurs over them.
+ This means that the user must keep the mouse button down after opening
+ the menu and release the mouse over the item they wish to select.
+
+ \li An activationMode of \a ActivationMode.ActivateOnClick means that menu
+ items will only be selected when the user clicks once over them.
+ \endlist
+
+ \warning Changing the activationMode while the menu is visible will
+ result in undefined behavior.
+
+ \deprecated Use triggerMode instead.
+ */
+ property alias activationMode: pieMenu.triggerMode
+
+ /*!
+ \qmlproperty enumeration PieMenu::triggerMode
+
+ This property determines the method for selecting items in the menu.
+
+ \list
+ \li A triggerMode of \a TriggerMode.TriggerOnPress means that menu
+ items will only be selected when a mouse press event occurs over them.
+
+ \li A triggerMode of \a TriggerMode.TriggerOnRelease means that menu
+ items will only be selected when a mouse release event occurs over them.
+ This means that the user must keep the mouse button down after opening
+ the menu and release the mouse over the item they wish to select.
+
+ \li A triggerMode of \a TriggerMode.TriggerOnClick means that menu
+ items will only be selected when the user clicks once over them.
+ \endlist
+
+ \warning Changing the triggerMode while the menu is visible will
+ result in undefined behavior.
+ */
+ property int triggerMode: TriggerMode.TriggerOnClick
+
+ /*!
+ \qmlproperty list