Full Code of Aseman-Land/QtAseman for AI

master f7a98f680c26 cached
927 files
4.1 MB
1.1M tokens
1354 symbols
1 requests
Download .txt
Showing preview only (4,520K chars total). Download the full file or copy to clipboard to get everything.
Repository: Aseman-Land/QtAseman
Branch: master
Commit: f7a98f680c26
Files: 927
Total size: 4.1 MB

Directory structure:
gitextract_q4s_ssy3/

├── .github/
│   └── workflows/
│       └── qt.yml
├── .gitignore
├── .gitmodules
├── .qmake.conf
├── LICENSE
├── README.md
├── SourceDiary.sh
├── aseman.pri
├── aseman.pro
├── debian/
│   ├── .directory
│   ├── changelog
│   ├── compat
│   ├── control
│   ├── copyright
│   ├── files
│   ├── libqt5asemancore-dev.dirs
│   ├── libqt5asemancore-dev.install
│   ├── libqt5asemancore.dirs
│   ├── libqt5asemancore.install
│   ├── libqt5asemangeo-dev.dirs
│   ├── libqt5asemangeo-dev.install
│   ├── libqt5asemangeo.dirs
│   ├── libqt5asemangeo.install
│   ├── libqt5asemangui-dev.dirs
│   ├── libqt5asemangui-dev.install
│   ├── libqt5asemangui.dirs
│   ├── libqt5asemangui.install
│   ├── libqt5asemanmultimedia-dev.dirs
│   ├── libqt5asemanmultimedia-dev.install
│   ├── libqt5asemanmultimedia.dirs
│   ├── libqt5asemanmultimedia.install
│   ├── libqt5asemannetwork-dev.dirs
│   ├── libqt5asemannetwork-dev.install
│   ├── libqt5asemannetwork.dirs
│   ├── libqt5asemannetwork.install
│   ├── libqt5asemanqml-dev.dirs
│   ├── libqt5asemanqml-dev.install
│   ├── libqt5asemanqml.dirs
│   ├── libqt5asemanqml.install
│   ├── libqt5asemansql-dev.dirs
│   ├── libqt5asemansql-dev.install
│   ├── libqt5asemansql.dirs
│   ├── libqt5asemansql.install
│   ├── libqt5asemanwidgets-dev.dirs
│   ├── libqt5asemanwidgets-dev.install
│   ├── libqt5asemanwidgets.dirs
│   ├── libqt5asemanwidgets.install
│   ├── qml-module-asemanawesome.dirs
│   ├── qml-module-asemanawesome.install
│   ├── qml-module-asemanbase.dirs
│   ├── qml-module-asemanbase.install
│   ├── qml-module-asemancontrols.dirs
│   ├── qml-module-asemancontrols.install
│   ├── qml-module-asemanmaterial.dirs
│   ├── qml-module-asemanmaterial.install
│   ├── qml-module-asemanmodels.dirs
│   ├── qml-module-asemanmodels.install
│   ├── qml-module-asemanmodern.dirs
│   ├── qml-module-asemanmodern.install
│   ├── qml-module-asemanmultimedia.dirs
│   ├── qml-module-asemanmultimedia.install
│   ├── qml-module-asemannetwork.dirs
│   ├── qml-module-asemannetwork.install
│   ├── qml-module-asemansql.dirs
│   ├── qml-module-asemansql.install
│   ├── qml-module-asemanviewport.dirs
│   ├── qml-module-asemanviewport.install
│   ├── qml-module-asemanwidgets.dirs
│   ├── qml-module-asemanwidgets.install
│   ├── qt5aseman-wizards-qtcreator.dirs
│   ├── qt5aseman-wizards-qtcreator.install
│   ├── rules
│   └── source/
│       └── format
├── demos/
│   ├── RegularApp/
│   │   ├── .gitignore
│   │   ├── AppWindow.qml
│   │   ├── RegularApp.pro
│   │   ├── android/
│   │   │   ├── AndroidManifest.xml
│   │   │   └── res/
│   │   │       ├── drawable/
│   │   │       │   └── splash.xml
│   │   │       └── values/
│   │   │           └── style.xml
│   │   ├── global/
│   │   │   ├── MainMenuItem.qml
│   │   │   ├── MainPage.qml
│   │   │   └── QmlControls.qml
│   │   ├── graphical/
│   │   │   ├── GraphicalComponentsExample.qml
│   │   │   └── SideMenuExample.qml
│   │   ├── main.cpp
│   │   ├── main.qml
│   │   ├── models/
│   │   │   ├── CountriesModelExample.qml
│   │   │   ├── FileSystemModelExample.qml
│   │   │   └── ModelComponentExamples.qml
│   │   ├── nongraphical/
│   │   │   ├── DownloaderExample.qml
│   │   │   ├── EncrypterExample.qml
│   │   │   ├── ImageColorAnalizorExample.qml
│   │   │   ├── MapDownloaderExample.qml
│   │   │   ├── NetworkSleepManagerExample.qml
│   │   │   ├── NonGraphicalComponentsExample.qml
│   │   │   ├── NotificationExample.qml
│   │   │   └── SettingsExample.qml
│   │   ├── qml.qrc
│   │   ├── qtquickcontrols2.conf
│   │   └── static/
│   │       ├── AsemanAppExample.qml
│   │       ├── BackHandlerExample.qml
│   │       ├── DesktopExample.qml
│   │       ├── DevicesExample.qml
│   │       ├── StaticComponentsExample.qml
│   │       ├── TextToolsExample.qml
│   │       ├── ToolsExample.qml
│   │       └── ViewExample.qml
│   ├── template/
│   │   ├── app.pro
│   │   ├── main.cpp
│   │   └── qml/
│   │       ├── MainWindow.qml
│   │       ├── imports/
│   │       │   ├── forms/
│   │       │   │   ├── ErrorDialogForm.ui.qml
│   │       │   │   ├── MainForm.ui.qml
│   │       │   │   ├── WaitDialog.ui.qml
│   │       │   │   └── qmldir
│   │       │   ├── globals/
│   │       │   │   ├── Colors.qml
│   │       │   │   ├── Constants.qml
│   │       │   │   ├── Fonts.qml
│   │       │   │   ├── GlobalSettings.qml
│   │       │   │   └── qmldir
│   │       │   ├── models/
│   │       │   │   ├── ExampleModel.qml
│   │       │   │   └── qmldir
│   │       │   └── requests/
│   │       │       ├── BaseRequest.qml
│   │       │       ├── ExampleRequest.qml
│   │       │       └── qmldir
│   │       ├── main.qml
│   │       ├── qml.qrc
│   │       ├── qtquickcontrols2.conf
│   │       └── routes/
│   │           ├── ErrorDialog.qml
│   │           ├── ExamplePopup.qml
│   │           ├── ViewController.qml
│   │           └── WaitDialog.qml
│   └── translation-example/
│       ├── UpdateTranslations.sh
│       ├── main.qml
│       ├── mainforms/
│       │   └── MainWindow.qml
│       ├── translations/
│       │   ├── lang-en.qm
│       │   └── lang-fa.qm
│       └── translations_sources/
│           ├── lang-en.ts
│           └── lang-fa.ts
├── documents/
│   ├── .gitignore
│   ├── AsemanQml.Base.md
│   └── Doxyfile
├── examples/
│   └── examples.pro
├── index.html
├── marketplace/
│   ├── manifest.json
│   └── marketplace.md
├── src/
│   ├── CMakeLists.txt
│   ├── android/
│   │   ├── android.pro
│   │   ├── java/
│   │   │   ├── READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt
│   │   │   ├── java.pro
│   │   │   └── src/
│   │   │       ├── com/
│   │   │       │   └── hmkcode/
│   │   │       │       └── android/
│   │   │       │           └── image/
│   │   │       │               └── RealPathUtil.java
│   │   │       └── io/
│   │   │           └── aseman/
│   │   │               └── android/
│   │   │                   ├── AsemanActivity.java
│   │   │                   ├── AsemanApplication.java
│   │   │                   ├── AsemanBootBroadcast.java
│   │   │                   ├── AsemanJavaLayer.java
│   │   │                   ├── AsemanMultimedia.java
│   │   │                   ├── AsemanQtService.java
│   │   │                   ├── AsemanService.java
│   │   │                   ├── AsemanServiceDelegate.java
│   │   │                   └── extra/
│   │   │                       ├── AsemanCameraCapture.java
│   │   │                       └── AsemanLocationListener.java
│   │   └── java-qt6/
│   │       ├── READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt
│   │       ├── java-qt6.pro
│   │       └── src/
│   │           ├── com/
│   │           │   └── hmkcode/
│   │           │       └── android/
│   │           │           └── image/
│   │           │               └── RealPathUtil.java
│   │           └── io/
│   │               └── aseman/
│   │                   └── android/
│   │                       ├── AsemanActivity.java
│   │                       ├── AsemanApplication.java
│   │                       ├── AsemanBootBroadcast.java
│   │                       ├── AsemanJavaLayer.java
│   │                       ├── AsemanMultimedia.java
│   │                       ├── AsemanQtService.java
│   │                       ├── AsemanService.java
│   │                       ├── AsemanServiceDelegate.java
│   │                       └── extra/
│   │                           ├── AsemanCameraCapture.java
│   │                           └── AsemanLocationListener.java
│   ├── asemanqml/
│   │   ├── CMakeLists.txt
│   │   ├── asemanqml.pri
│   │   ├── asemanqml.pro
│   │   ├── awesome/
│   │   │   ├── Awesome/
│   │   │   │   └── Awesome.qml
│   │   │   ├── CMakeLists.txt
│   │   │   ├── awesome.pri
│   │   │   ├── awesome.pro
│   │   │   ├── awesomeplugin.cpp
│   │   │   ├── awesomeplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanawesome.qrc
│   │   │   └── qmldir
│   │   ├── base/
│   │   │   ├── Base/
│   │   │   │   ├── AsemanFlickable.qml
│   │   │   │   ├── AsemanGridView.qml
│   │   │   │   ├── AsemanListView.qml
│   │   │   │   ├── BackAction.qml
│   │   │   │   ├── CachedImage.qml
│   │   │   │   ├── CoverList.qml
│   │   │   │   ├── CrashController.qml
│   │   │   │   ├── DelayPropertySwitch.qml
│   │   │   │   ├── FileSystemView.qml
│   │   │   │   ├── MaterialFrame.qml
│   │   │   │   ├── NullMouseArea.qml
│   │   │   │   ├── PointMapListener.qml
│   │   │   │   ├── RoundedImage.qml
│   │   │   │   ├── RoundedItem.qml
│   │   │   │   ├── SelectableList.qml
│   │   │   │   ├── ShadowRectangle.qml
│   │   │   │   └── qmldir
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemandelegateswitch.cpp
│   │   │   ├── asemandelegateswitch.h
│   │   │   ├── asemanqmlplugin.cpp
│   │   │   ├── asemanqmlplugin.h
│   │   │   ├── asemanqttoolsitembase.cpp
│   │   │   ├── asemanqttoolsitembase.h
│   │   │   ├── base.pri
│   │   │   ├── base.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanqml.qrc
│   │   │   └── qmldir
│   │   ├── controls/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Controls/
│   │   │   │   ├── AsemanApplication.qml
│   │   │   │   ├── AsemanWindow.qml
│   │   │   │   ├── CircularProgressBar.qml
│   │   │   │   ├── DateTimeChooser.qml
│   │   │   │   ├── Drawer.qml
│   │   │   │   ├── DynamicTabBar.qml
│   │   │   │   ├── ExtendedFab.qml
│   │   │   │   ├── HScrollBar.qml
│   │   │   │   ├── Header.qml
│   │   │   │   ├── HeaderMenuButton.qml
│   │   │   │   ├── Helper.qml
│   │   │   │   ├── HelperPoint.qml
│   │   │   │   ├── MenuIcon.qml
│   │   │   │   ├── PanelDrawer.qml
│   │   │   │   ├── PanelFlicker.qml
│   │   │   │   ├── Slider.qml
│   │   │   │   ├── TabView.qml
│   │   │   │   ├── TextArea.qml
│   │   │   │   ├── TextCursorArea.qml
│   │   │   │   ├── TextField.qml
│   │   │   │   ├── Tooltip.qml
│   │   │   │   ├── private/
│   │   │   │   │   └── GlobalBusyDialog.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanqttoolsitemcontrols.cpp
│   │   │   ├── asemanqttoolsitemcontrols.h
│   │   │   ├── controls.pri
│   │   │   ├── controls.pro
│   │   │   ├── controlsplugin.cpp
│   │   │   ├── controlsplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemancontrols.qrc
│   │   │   └── qmldir
│   │   ├── controls_beta/
│   │   │   ├── Beta/
│   │   │   │   ├── AsemanApplication.qml
│   │   │   │   ├── AsemanWindow.qml
│   │   │   │   ├── BottomDrawer.qml
│   │   │   │   ├── BusyIndicator.qml
│   │   │   │   ├── Button.qml
│   │   │   │   ├── CheckBox.qml
│   │   │   │   ├── CheckBoxDelegate.qml
│   │   │   │   ├── ColumnLayout.qml
│   │   │   │   ├── ComboBox.qml
│   │   │   │   ├── ComboBoxDelegate.qml
│   │   │   │   ├── Dialog.qml
│   │   │   │   ├── DialogScene.qml
│   │   │   │   ├── FloatPage.qml
│   │   │   │   ├── Footer.qml
│   │   │   │   ├── FooterButton.qml
│   │   │   │   ├── Header.qml
│   │   │   │   ├── HeaderMenuButton.qml
│   │   │   │   ├── Icon.qml
│   │   │   │   ├── ItemDelegate.qml
│   │   │   │   ├── Label.qml
│   │   │   │   ├── Menu.qml
│   │   │   │   ├── MenuButton.qml
│   │   │   │   ├── MenuIcon.qml
│   │   │   │   ├── MenuPopup.qml
│   │   │   │   ├── Page.qml
│   │   │   │   ├── Private/
│   │   │   │   │   ├── AbstractViewportScene.qml
│   │   │   │   │   ├── FreeGeometryViewportScene.qml
│   │   │   │   │   ├── FreeSizeViewportScene.qml
│   │   │   │   │   └── SnappedViewportScene.qml
│   │   │   │   ├── ProgressBar.qml
│   │   │   │   ├── RadioButton.qml
│   │   │   │   ├── RowLayout.qml
│   │   │   │   ├── ScrollBar.qml
│   │   │   │   ├── ScrollView.qml
│   │   │   │   ├── Slider.qml
│   │   │   │   ├── StackPage.qml
│   │   │   │   ├── SwipeView.qml
│   │   │   │   ├── Switch.qml
│   │   │   │   ├── SwitchDelegate.qml
│   │   │   │   ├── TabBar.qml
│   │   │   │   ├── TabButton.qml
│   │   │   │   ├── TextArea.qml
│   │   │   │   ├── TextField.qml
│   │   │   │   ├── ViewportContainer.qml
│   │   │   │   ├── Window.qml
│   │   │   │   ├── qmldir
│   │   │   │   └── styles/
│   │   │   │       └── simple/
│   │   │   │           ├── BottomDrawerStyle.qml
│   │   │   │           ├── BusyIndicatorStyle.qml
│   │   │   │           ├── ButtonStyle.qml
│   │   │   │           ├── CheckBoxDelegateStyle.qml
│   │   │   │           ├── CheckBoxStyle.qml
│   │   │   │           ├── ComboBoxDelegateStyle.qml
│   │   │   │           ├── ComboBoxPopupStyle.qml
│   │   │   │           ├── ComboBoxStyle.qml
│   │   │   │           ├── DialogSceneStyle.qml
│   │   │   │           ├── DialogStyle.qml
│   │   │   │           ├── FastDropShadow.qml
│   │   │   │           ├── FloatPageStyle.qml
│   │   │   │           ├── FooterButtonStyle.qml
│   │   │   │           ├── FooterStyle.qml
│   │   │   │           ├── HeaderStyle.qml
│   │   │   │           ├── IconStyle.qml
│   │   │   │           ├── ItemDelegateStyle.qml
│   │   │   │           ├── LabelStyle.qml
│   │   │   │           ├── MenuButtonStyle.qml
│   │   │   │           ├── MenuPopupStyle.qml
│   │   │   │           ├── MenuStyle.qml
│   │   │   │           ├── PageStyle.qml
│   │   │   │           ├── ProgressBarStyle.qml
│   │   │   │           ├── RadioButtonStyle.qml
│   │   │   │           ├── ScrollBarStyle.qml
│   │   │   │           ├── ScrollViewStyle.qml
│   │   │   │           ├── SliderStyle.qml
│   │   │   │           ├── StackPageStyle.qml
│   │   │   │           ├── SwipeViewStyle.qml
│   │   │   │           ├── SwitchDelegateStyle.qml
│   │   │   │           ├── SwitchStyle.qml
│   │   │   │           ├── TabBarStyle.qml
│   │   │   │           ├── TabButtonStyle.qml
│   │   │   │           ├── TextAreaStyle.qml
│   │   │   │           └── TextFieldStyle.qml
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanqttoolsitemcontrolsbeta.cpp
│   │   │   ├── asemanqttoolsitemcontrolsbeta.h
│   │   │   ├── asemanquickabstractbutton.cpp
│   │   │   ├── asemanquickabstractbutton.h
│   │   │   ├── asemanquickabstractstyle.cpp
│   │   │   ├── asemanquickabstractstyle.h
│   │   │   ├── asemanquickboxsize.cpp
│   │   │   ├── asemanquickboxsize.h
│   │   │   ├── asemanquickcolumnlayout.cpp
│   │   │   ├── asemanquickcolumnlayout.h
│   │   │   ├── asemanquickcontrolitem.cpp
│   │   │   ├── asemanquickcontrolitem.h
│   │   │   ├── asemanquicklayout.cpp
│   │   │   ├── asemanquicklayout.h
│   │   │   ├── asemanquickmainpalette.cpp
│   │   │   ├── asemanquickmainpalette.h
│   │   │   ├── asemanquickradiobuttoncontrol.cpp
│   │   │   ├── asemanquickradiobuttoncontrol.h
│   │   │   ├── asemanquickradiobuttongroup.cpp
│   │   │   ├── asemanquickradiobuttongroup.h
│   │   │   ├── asemanquickrowlayout.cpp
│   │   │   ├── asemanquickrowlayout.h
│   │   │   ├── asemanquicksceneitem.cpp
│   │   │   ├── asemanquicksceneitem.h
│   │   │   ├── asemanquickscrollviewcore.cpp
│   │   │   ├── asemanquickscrollviewcore.h
│   │   │   ├── asemanquickstyleattachedproperty.cpp
│   │   │   ├── asemanquickstyleattachedproperty.h
│   │   │   ├── asemanquickstyleditem.cpp
│   │   │   ├── asemanquickstyleditem.h
│   │   │   ├── beta.pri
│   │   │   ├── controls_beta.pri
│   │   │   ├── controls_beta.pro
│   │   │   ├── controlsbetaplugin.cpp
│   │   │   ├── controlsbetaplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemancontrols_beta.qrc
│   │   │   └── qmldir
│   │   ├── graphicaleffects/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GraphicalEffects/
│   │   │   │   ├── Qt5/
│   │   │   │   │   ├── Colorize.qml
│   │   │   │   │   ├── Desaturate.qml
│   │   │   │   │   ├── DropShadow.qml
│   │   │   │   │   ├── FastBlur.qml
│   │   │   │   │   ├── LevelAdjust.qml
│   │   │   │   │   ├── OpacityMask.qml
│   │   │   │   │   ├── RadialGradient.qml
│   │   │   │   │   ├── ThresholdMask.qml
│   │   │   │   │   └── qmldir
│   │   │   │   └── Qt6/
│   │   │   │       ├── Colorize.qml
│   │   │   │       ├── Desaturate.qml
│   │   │   │       ├── DropShadow.qml
│   │   │   │       ├── FastBlur.qml
│   │   │   │       ├── LevelAdjust.qml
│   │   │   │       ├── OpacityMask.qml
│   │   │   │       ├── RadialGradient.qml
│   │   │   │       ├── ThresholdMask.qml
│   │   │   │       └── qmldir
│   │   │   ├── asemangraphicaleffectsplugin.cpp
│   │   │   ├── asemangraphicaleffectsplugin.h
│   │   │   ├── asemanqttoolsitemgraphicaleffects.cpp
│   │   │   ├── asemanqttoolsitemgraphicaleffects.h
│   │   │   ├── graphicaleffects.pri
│   │   │   ├── graphicaleffects.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemangraphicaleffects.qrc
│   │   │   └── qmldir
│   │   ├── import/
│   │   │   └── AsemanQml/
│   │   │       ├── Awesome/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Base/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Controls/
│   │   │       │   ├── Beta/
│   │   │       │   │   ├── plugins.qmltypes
│   │   │       │   │   └── qmldir
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── GraphicalEffects/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── MaterialIcons/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Models/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Modern/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Multimedia/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Network/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Sql/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Viewport/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       └── Widgets/
│   │   │           ├── plugins.qmltypes
│   │   │           └── qmldir
│   │   ├── materialicons/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MaterialIcons/
│   │   │   │   └── MaterialIcons.qml
│   │   │   ├── materialicons.pri
│   │   │   ├── materialicons.pro
│   │   │   ├── materialiconsplugin.cpp
│   │   │   ├── materialiconsplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmaterialicons.qrc
│   │   │   └── qmldir
│   │   ├── models/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanabstractquicklistmodelhint.cpp
│   │   │   ├── asemanabstractquicklistmodelhint.h
│   │   │   ├── asemanmodelsplugin.cpp
│   │   │   ├── asemanmodelsplugin.h
│   │   │   ├── asemanqttoolsitemmodels.cpp
│   │   │   ├── asemanqttoolsitemmodels.h
│   │   │   ├── asemanquicklistmodel.cpp
│   │   │   ├── asemanquicklistmodel.h
│   │   │   ├── asemanquicklistmodelcamelcasehint.cpp
│   │   │   ├── asemanquicklistmodelcamelcasehint.h
│   │   │   ├── asemanquicklistmodelcopyhint.cpp
│   │   │   ├── asemanquicklistmodelcopyhint.h
│   │   │   ├── asemanquicklistmodeldeletehint.cpp
│   │   │   ├── asemanquicklistmodeldeletehint.h
│   │   │   ├── asemanquicklistmodelformathint.cpp
│   │   │   ├── asemanquicklistmodelformathint.h
│   │   │   ├── asemanquicklistmodelsource.cpp
│   │   │   ├── asemanquicklistmodelsource.h
│   │   │   ├── models.pri
│   │   │   ├── models.pro
│   │   │   ├── plugins.qmltypes
│   │   │   └── qmldir
│   │   ├── modern/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Modern/
│   │   │   │   ├── FancyNavigationBar.qml
│   │   │   │   ├── FancyPage.qml
│   │   │   │   ├── FancySearchBar.qml
│   │   │   │   ├── FastDropShadow.qml
│   │   │   │   ├── FastRectengleShadow.qml
│   │   │   │   ├── LazyList.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanqttoolsitemmodern.cpp
│   │   │   ├── asemanqttoolsitemmodern.h
│   │   │   ├── modern.pri
│   │   │   ├── modern.pro
│   │   │   ├── modernplugin.cpp
│   │   │   ├── modernplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmodern.qrc
│   │   │   └── qmldir
│   │   ├── multimedia/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Multimedia/
│   │   │   │   ├── VideoPlayer.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanmultimediaplugin.cpp
│   │   │   ├── asemanmultimediaplugin.h
│   │   │   ├── asemanqttoolsitemmultimedia.cpp
│   │   │   ├── asemanqttoolsitemmultimedia.h
│   │   │   ├── multimedia.pri
│   │   │   ├── multimedia.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmultimedia.qrc
│   │   │   └── qmldir
│   │   ├── network/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemannetworkplugin.cpp
│   │   │   ├── asemannetworkplugin.h
│   │   │   ├── asemanqttoolsitemnetwork.cpp
│   │   │   ├── asemanqttoolsitemnetwork.h
│   │   │   ├── network.pri
│   │   │   ├── network.pro
│   │   │   ├── plugins.qmltypes
│   │   │   └── qmldir
│   │   ├── sql/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanqttoolsitemsql.cpp
│   │   │   ├── asemanqttoolsitemsql.h
│   │   │   ├── asemanquicksqlobject.cpp
│   │   │   ├── asemanquicksqlobject.h
│   │   │   ├── asemansqlplugin.cpp
│   │   │   ├── asemansqlplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmldir
│   │   │   ├── sql.pri
│   │   │   └── sql.pro
│   │   ├── viewport/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Viewport/
│   │   │   │   ├── AbstractViewportType.qml
│   │   │   │   ├── AndroidActivityViewport.qml
│   │   │   │   ├── AndroidBottomDrawerViewport.qml
│   │   │   │   ├── AndroidDefaultPagesViewport.qml
│   │   │   │   ├── AndroidDialogViewport.qml
│   │   │   │   ├── IOSBottomDrawerViewport.qml
│   │   │   │   ├── IOSContextMenuViewport.qml
│   │   │   │   ├── IOSDialogViewport.qml
│   │   │   │   ├── IOSNormalViewport.qml
│   │   │   │   ├── IOSPopupViewport.qml
│   │   │   │   ├── NoneViewport.qml
│   │   │   │   ├── SplitedViewport.qml
│   │   │   │   ├── Viewport.qml
│   │   │   │   ├── ViewportController.qml
│   │   │   │   ├── ViewportPage.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanabstractviewporttype.cpp
│   │   │   ├── asemanabstractviewporttype.h
│   │   │   ├── asemanqttoolsitemviewport.cpp
│   │   │   ├── asemanqttoolsitemviewport.h
│   │   │   ├── asemanviewport.cpp
│   │   │   ├── asemanviewport.h
│   │   │   ├── asemanviewportcontroller.cpp
│   │   │   ├── asemanviewportcontroller.h
│   │   │   ├── asemanviewportcontrollerroute.cpp
│   │   │   ├── asemanviewportcontrollerroute.h
│   │   │   ├── asemanviewportitem.cpp
│   │   │   ├── asemanviewportitem.h
│   │   │   ├── asemanviewportplugin.cpp
│   │   │   ├── asemanviewportplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanviewport.qrc
│   │   │   ├── qmldir
│   │   │   ├── viewport.pri
│   │   │   └── viewport.pro
│   │   └── widgets/
│   │       ├── CMakeLists.txt
│   │       ├── asemanqttoolsitemwidgets.cpp
│   │       ├── asemanqttoolsitemwidgets.h
│   │       ├── asemanwidgetsplugin.cpp
│   │       ├── asemanwidgetsplugin.h
│   │       ├── plugins.qmltypes
│   │       ├── qmldir
│   │       ├── widgets.pri
│   │       └── widgets.pro
│   ├── core/
│   │   ├── CMakeLists.txt
│   │   ├── aseman_macros.h
│   │   ├── asemanabstractlistmodel.cpp
│   │   ├── asemanabstractlistmodel.h
│   │   ├── asemanautostartmanager.cpp
│   │   ├── asemanautostartmanager.h
│   │   ├── asemancalendarconverter.cpp
│   │   ├── asemancalendarconverter.h
│   │   ├── asemancalendarconvertercore.cpp
│   │   ├── asemancalendarconvertercore.h
│   │   ├── asemancalendarmodel.cpp
│   │   ├── asemancalendarmodel.h
│   │   ├── asemancore_global.h
│   │   ├── asemancoreresource_lib.qrc
│   │   ├── asemancountriesmodel.cpp
│   │   ├── asemancountriesmodel.h
│   │   ├── asemandebugobjectcounter.cpp
│   │   ├── asemandebugobjectcounter.h
│   │   ├── asemanencrypter.cpp
│   │   ├── asemanencrypter.h
│   │   ├── asemanfilesystemmodel.cpp
│   │   ├── asemanfilesystemmodel.h
│   │   ├── asemanglobals.h
│   │   ├── asemanhashobject.cpp
│   │   ├── asemanhashobject.h
│   │   ├── asemanlistmodel.cpp
│   │   ├── asemanlistmodel.h
│   │   ├── asemanlistobject.cpp
│   │   ├── asemanlistobject.h
│   │   ├── asemanlistrecord.cpp
│   │   ├── asemanlistrecord.h
│   │   ├── asemanmapobject.cpp
│   │   ├── asemanmapobject.h
│   │   ├── asemanmixedlistmodel.cpp
│   │   ├── asemanmixedlistmodel.h
│   │   ├── asemanqtlogger.cpp
│   │   ├── asemanqtlogger.h
│   │   ├── asemanrefresherobject.cpp
│   │   ├── asemanrefresherobject.h
│   │   ├── asemansettings.cpp
│   │   ├── asemansettings.h
│   │   ├── asemansimpleqtcryptor.cpp
│   │   ├── asemansimpleqtcryptor.h
│   │   ├── core.pri
│   │   ├── core.pro
│   │   ├── files/
│   │   │   └── countries.csv
│   │   └── private/
│   │       └── serpent_sbox.h
│   ├── geo/
│   │   ├── CMakeLists.txt
│   │   ├── asemangeo_global.h
│   │   ├── asemanlocationlistener.cpp
│   │   ├── asemanlocationlistener.h
│   │   ├── geo.pri
│   │   ├── geo.pro
│   │   └── private/
│   │       ├── asemanabstractlocationlistenercore.cpp
│   │       ├── asemanabstractlocationlistenercore.h
│   │       ├── asemanandroidlocationlistenercore.cpp
│   │       ├── asemanandroidlocationlistenercore.h
│   │       ├── asemanqtlocationlistenercore.cpp
│   │       └── asemanqtlocationlistenercore.h
│   ├── gui/
│   │   ├── CMakeLists.txt
│   │   ├── asemanapplication.cpp
│   │   ├── asemanapplication.h
│   │   ├── asemandevices.cpp
│   │   ├── asemandevices.h
│   │   ├── asemanglobaltranslations.cpp
│   │   ├── asemanglobaltranslations.h
│   │   ├── asemangui_global.h
│   │   ├── asemanimagecoloranalizor.cpp
│   │   ├── asemanimagecoloranalizor.h
│   │   ├── asemanjavalayer.cpp
│   │   ├── asemanjavalayer.h
│   │   ├── asemankeyhandler.cpp
│   │   ├── asemankeyhandler.h
│   │   ├── asemanmacmanager.h
│   │   ├── asemanmacmanager.mm
│   │   ├── asemanmimeapps.cpp
│   │   ├── asemanmimeapps.h
│   │   ├── asemanmimedata.cpp
│   │   ├── asemanmimedata.h
│   │   ├── asemanobjectiveclayer.h
│   │   ├── asemanobjectiveclayer.mm
│   │   ├── asemantexttools.cpp
│   │   ├── asemantexttools.h
│   │   ├── asemantitlebarcolorgrabber.cpp
│   │   ├── asemantitlebarcolorgrabber.h
│   │   ├── asemantools.cpp
│   │   ├── asemantools.h
│   │   ├── asemantranslationmanager.cpp
│   │   ├── asemantranslationmanager.h
│   │   ├── asemanwindowdetails.cpp
│   │   ├── asemanwindowdetails.h
│   │   ├── gui.pri
│   │   └── gui.pro
│   ├── httpserver/
│   │   ├── asemanhttpserver.cpp
│   │   ├── asemanhttpserver.h
│   │   ├── asemanhttpserver_global.h
│   │   └── httpserver.pro
│   ├── multimedia/
│   │   ├── CMakeLists.txt
│   │   ├── asemanandroidmultimedia.cpp
│   │   ├── asemanandroidmultimedia.h
│   │   ├── asemanaudioencodersettings.cpp
│   │   ├── asemanaudioencodersettings.h
│   │   ├── asemanaudiorecorder.cpp
│   │   ├── asemanaudiorecorder.h
│   │   ├── asemancameracapture.cpp
│   │   ├── asemancameracapture.h
│   │   ├── asemanmultimedia_global.h
│   │   ├── asemanmultimediadatabase.cpp
│   │   ├── asemanmultimediadatabase.h
│   │   ├── multimedia.pri
│   │   ├── multimedia.pro
│   │   └── private/
│   │       ├── asemanabstractcameracapturecore.cpp
│   │       ├── asemanabstractcameracapturecore.h
│   │       ├── asemanandroidcameracapturecore.cpp
│   │       ├── asemanandroidcameracapturecore.h
│   │       ├── asemannullcameracapturecore.cpp
│   │       └── asemannullcameracapturecore.h
│   ├── network/
│   │   ├── CMakeLists.txt
│   │   ├── asemandownloader.cpp
│   │   ├── asemandownloader.h
│   │   ├── asemanfiledownloaderqueue.cpp
│   │   ├── asemanfiledownloaderqueue.h
│   │   ├── asemanfiledownloaderqueueitem.cpp
│   │   ├── asemanfiledownloaderqueueitem.h
│   │   ├── asemanhostchecker.cpp
│   │   ├── asemanhostchecker.h
│   │   ├── asemannetwork_global.h
│   │   ├── asemannetworkmanager.cpp
│   │   ├── asemannetworkmanager.h
│   │   ├── asemannetworkmanageritem.cpp
│   │   ├── asemannetworkmanageritem.h
│   │   ├── asemannetworkproxy.cpp
│   │   ├── asemannetworkproxy.h
│   │   ├── asemannetworkquickobject.cpp
│   │   ├── asemannetworkquickobject.h
│   │   ├── asemannetworkrequestmanager.cpp
│   │   ├── asemannetworkrequestmanager.h
│   │   ├── asemannetworkrequestobject.cpp
│   │   ├── asemannetworkrequestobject.h
│   │   ├── asemannetworkrequestreply.cpp
│   │   ├── asemannetworkrequestreply.h
│   │   ├── asemannetworksleepmanager.cpp
│   │   ├── asemannetworksleepmanager.h
│   │   ├── asemansocketinterface.cpp
│   │   ├── asemansocketinterface.h
│   │   ├── network.pri
│   │   └── network.pro
│   ├── qml/
│   │   ├── CMakeLists.txt
│   │   ├── asemanapplicationitem.cpp
│   │   ├── asemanapplicationitem.h
│   │   ├── asemanapplicationsingleton.cpp
│   │   ├── asemanapplicationsingleton.h
│   │   ├── asemanbackhandler.cpp
│   │   ├── asemanbackhandler.h
│   │   ├── asemandevicesitem.cpp
│   │   ├── asemandevicesitem.h
│   │   ├── asemandragarea.cpp
│   │   ├── asemandragarea.h
│   │   ├── asemandragobject.cpp
│   │   ├── asemandragobject.h
│   │   ├── asemanfileresourcemanager.cpp
│   │   ├── asemanfileresourcemanager.h
│   │   ├── asemanitemgrabber.cpp
│   │   ├── asemanitemgrabber.h
│   │   ├── asemanmouseeventlistener.cpp
│   │   ├── asemanmouseeventlistener.h
│   │   ├── asemanprocess.cpp
│   │   ├── asemanprocess.h
│   │   ├── asemanproxycomponent.cpp
│   │   ├── asemanproxycomponent.h
│   │   ├── asemanqmlengine.cpp
│   │   ├── asemanqmlengine.h
│   │   ├── asemanqmlimage.cpp
│   │   ├── asemanqmlimage.h
│   │   ├── asemanqttools.cpp
│   │   ├── asemanqttools.h
│   │   ├── asemanquickobject.cpp
│   │   ├── asemanquickobject.h
│   │   ├── asemanquickview.cpp
│   │   ├── asemanquickview.h
│   │   ├── asemanquickviewwrapper.cpp
│   │   ├── asemanquickviewwrapper.h
│   │   ├── asemantools_global.h
│   │   ├── asemantoolsitem.cpp
│   │   ├── asemantoolsitem.h
│   │   ├── private/
│   │   │   ├── osxviewcontroller.h
│   │   │   ├── osxviewcontroller.mm
│   │   │   └── quickios/
│   │   │       ├── qidevice.cpp
│   │   │       ├── qidevice.h
│   │   │       ├── qidevice.mm
│   │   │       ├── qiimagepicker.cpp
│   │   │       ├── qiimagepicker.h
│   │   │       ├── qisystemdispatcher.cpp
│   │   │       ├── qisystemdispatcher.h
│   │   │       ├── qisystemutils.mm
│   │   │       ├── qiviewdelegate.h
│   │   │       ├── qiviewdelegate.mm
│   │   │       ├── quickios.cpp
│   │   │       ├── quickios.h
│   │   │       └── quickios.pri
│   │   ├── qml.pri
│   │   ├── qml.pro
│   │   └── qtsingleapplication/
│   │       ├── qtlocalpeer.cpp
│   │       ├── qtlocalpeer.h
│   │       ├── qtlockedfile.cpp
│   │       ├── qtlockedfile.h
│   │       ├── qtlockedfile_unix.cpp
│   │       ├── qtlockedfile_win.cpp
│   │       ├── qtsingleapplication.cpp
│   │       ├── qtsingleapplication.h
│   │       ├── qtsinglecoreapplication.cpp
│   │       └── qtsinglecoreapplication.h
│   ├── sql/
│   │   ├── CMakeLists.txt
│   │   ├── asemansql_global.h
│   │   ├── asemansqlobject.cpp
│   │   ├── asemansqlobject.h
│   │   ├── sql.pri
│   │   └── sql.pro
│   ├── src.pri
│   ├── src.pro
│   ├── styles/
│   │   ├── iosstyle/
│   │   │   ├── ApplicationWindow.qml
│   │   │   ├── BoxShadow.qml
│   │   │   ├── BusyIndicator.qml
│   │   │   ├── Button.qml
│   │   │   ├── CheckBox.qml
│   │   │   ├── CheckDelegate.qml
│   │   │   ├── CheckIndicator.qml
│   │   │   ├── ComboBox.qml
│   │   │   ├── CursorDelegate.qml
│   │   │   ├── DelayButton.qml
│   │   │   ├── Dial.qml
│   │   │   ├── Dialog.qml
│   │   │   ├── DialogButtonBox.qml
│   │   │   ├── Drawer.qml
│   │   │   ├── ElevationEffect.qml
│   │   │   ├── FastDropShadow.qml
│   │   │   ├── Frame.qml
│   │   │   ├── GroupBox.qml
│   │   │   ├── ItemDelegate.qml
│   │   │   ├── Label.qml
│   │   │   ├── Menu.qml
│   │   │   ├── MenuBar.qml
│   │   │   ├── MenuBarItem.qml
│   │   │   ├── MenuItem.qml
│   │   │   ├── MenuSeparator.qml
│   │   │   ├── Page.qml
│   │   │   ├── PageIndicator.qml
│   │   │   ├── Pane.qml
│   │   │   ├── Popup.qml
│   │   │   ├── ProgressBar.qml
│   │   │   ├── RadioButton.qml
│   │   │   ├── RadioDelegate.qml
│   │   │   ├── RadioIndicator.qml
│   │   │   ├── RangeSlider.qml
│   │   │   ├── RectangularGlow.qml
│   │   │   ├── RoundButton.qml
│   │   │   ├── ScrollBar.qml
│   │   │   ├── ScrollIndicator.qml
│   │   │   ├── Slider.qml
│   │   │   ├── SliderHandle.qml
│   │   │   ├── SpinBox.qml
│   │   │   ├── StackView.qml
│   │   │   ├── SwipeDelegate.qml
│   │   │   ├── SwipeView.qml
│   │   │   ├── Switch.qml
│   │   │   ├── SwitchDelegate.qml
│   │   │   ├── SwitchIndicator.qml
│   │   │   ├── TabBar.qml
│   │   │   ├── TabButton.qml
│   │   │   ├── TextArea.qml
│   │   │   ├── TextField.qml
│   │   │   ├── ToolBar.qml
│   │   │   ├── ToolButton.qml
│   │   │   ├── ToolSeparator.qml
│   │   │   ├── ToolTip.qml
│   │   │   ├── Tumbler.qml
│   │   │   ├── iosstyle.pri
│   │   │   ├── iosstyle.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmldir
│   │   │   ├── qquickiosstyleripple.cpp
│   │   │   ├── qquickiosstyleripple_p.h
│   │   │   ├── qquickiosstylestyle.cpp
│   │   │   ├── qquickiosstylestyle_ios.h
│   │   │   ├── qquickiosstylestyle_ios.mm
│   │   │   ├── qquickiosstylestyle_p.h
│   │   │   ├── qquickiosstyletheme.cpp
│   │   │   ├── qquickiosstyletheme_p.h
│   │   │   ├── qt_attribution.json
│   │   │   ├── qtquickcontrols2iosstylestyleplugin.cpp
│   │   │   ├── qtquickcontrols2iosstylestyleplugin.qrc
│   │   │   └── shaders/
│   │   │       ├── +glslcore/
│   │   │       │   └── RectangularGlow.frag
│   │   │       ├── +hlsl/
│   │   │       │   └── RectangularGlow.frag
│   │   │       └── RectangularGlow.frag
│   │   └── styles.pro
│   ├── widgets/
│   │   ├── CMakeLists.txt
│   │   ├── asemanandroidnativenotification.cpp
│   │   ├── asemanandroidnativenotification.h
│   │   ├── asemandesktoptools.cpp
│   │   ├── asemandesktoptools.h
│   │   ├── asemanfonthandler.cpp
│   │   ├── asemanfonthandler.h
│   │   ├── asemankdewallet.cpp
│   │   ├── asemankdewallet.h
│   │   ├── asemanlinuxnativenotification.cpp
│   │   ├── asemanlinuxnativenotification.h
│   │   ├── asemanmacnativenotification.cpp
│   │   ├── asemanmacnativenotification.h
│   │   ├── asemannativenotification.cpp
│   │   ├── asemannativenotification.h
│   │   ├── asemannativenotificationitem.cpp
│   │   ├── asemannativenotificationitem.h
│   │   ├── asemannotification.cpp
│   │   ├── asemannotification.h
│   │   ├── asemansystemtray.cpp
│   │   ├── asemansystemtray.h
│   │   ├── asemantaskbarbutton.cpp
│   │   ├── asemantaskbarbutton.h
│   │   ├── asemanwidgets_global.h
│   │   ├── private/
│   │   │   ├── asemanabstracttaskbarbuttonengine.cpp
│   │   │   ├── asemanabstracttaskbarbuttonengine.h
│   │   │   ├── asemanmactaskbarbuttonengine.cpp
│   │   │   ├── asemanmactaskbarbuttonengine.h
│   │   │   ├── asemanunitytaskbarbuttonengine.cpp
│   │   │   ├── asemanunitytaskbarbuttonengine.h
│   │   │   ├── asemanwintaskbarbuttonengine.cpp
│   │   │   └── asemanwintaskbarbuttonengine.h
│   │   ├── widgets.pri
│   │   └── widgets.pro
│   └── wizards/
│       ├── qtcreator/
│       │   ├── qtasemanapplication/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── android/
│       │   │   │   ├── AndroidManifest.xml
│       │   │   │   ├── android.pri
│       │   │   │   ├── build.gradle
│       │   │   │   └── res/
│       │   │   │       ├── .directory
│       │   │   │       ├── drawable/
│       │   │   │       │   └── splash.xml
│       │   │   │       └── values/
│       │   │   │           └── style.xml
│       │   │   ├── app.pro
│       │   │   ├── app.qbs
│       │   │   ├── full/
│       │   │   │   ├── qml/
│       │   │   │   │   ├── MainWindow.qml
│       │   │   │   │   ├── imports/
│       │   │   │   │   │   ├── forms/
│       │   │   │   │   │   │   ├── ErrorDialogForm.ui.qml
│       │   │   │   │   │   │   ├── MainForm.ui.qml
│       │   │   │   │   │   │   ├── WaitDialog.ui.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   ├── globals/
│       │   │   │   │   │   │   ├── Colors.qml
│       │   │   │   │   │   │   ├── Constants.qml
│       │   │   │   │   │   │   ├── Fonts.qml
│       │   │   │   │   │   │   ├── GlobalSettings.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   ├── models/
│       │   │   │   │   │   │   ├── ExampleModel.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   └── requests/
│       │   │   │   │   │       ├── BaseRequest.qml
│       │   │   │   │   │       ├── ExampleRequest.qml
│       │   │   │   │   │       └── qmldir
│       │   │   │   │   ├── main.qml
│       │   │   │   │   ├── qml.qrc
│       │   │   │   │   ├── qtquickcontrols2.conf
│       │   │   │   │   └── routes/
│       │   │   │   │       ├── ErrorDialog.qml
│       │   │   │   │       ├── ExamplePopup.qml
│       │   │   │   │       ├── ViewController.qml
│       │   │   │   │       └── WaitDialog.qml
│       │   │   │   └── wizard.json
│       │   │   ├── ios/
│       │   │   │   ├── Info.plist
│       │   │   │   ├── Launch.xib
│       │   │   │   ├── ios.pri
│       │   │   │   ├── osxviewcontroller.h
│       │   │   │   └── osxviewcontroller.mm
│       │   │   ├── main.cpp
│       │   │   ├── qtquickcontrols2.conf
│       │   │   └── simple/
│       │   │       ├── qml/
│       │   │       │   ├── MainForm.ui.qml
│       │   │       │   ├── MainWindow.qml
│       │   │       │   ├── main.qml
│       │   │       │   ├── qml.qrc
│       │   │       │   └── qtquickcontrols2.conf
│       │   │       └── wizard.json
│       │   └── qtcreator.pro
│       └── wizards.pro
├── sync.profile
└── tests/
    ├── auto/
    │   ├── auto.pro
    │   └── cmake/
    │       └── cmake.pro
    └── tests.pro

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/qt.yml
================================================
name: CI build

on: [push]

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        version:
          - 5.15.0
          
        platform:
          - gcc_64
          - android
          - msvc2019
          - msvc2019_64
          - mingw81_64
          - mingw81_32
          - clang_64

        include:
          - platform: gcc_64
            os: ubuntu-latest
          - platform: android
            os: ubuntu-latest
          - platform: msvc2019_64
            os: windows-latest
          - platform: msvc2019
            os: windows-latest
          - platform: mingw81_64
            os: windows-latest
          - platform: mingw81_32
            os: windows-latest
          - platform: clang_64
            os: macos-latest
            
    runs-on: ${{matrix.os}}
    steps:
      - uses: actions/checkout@v1
        with:
          submodules: recursive
      - uses: actions/setup-python@v1
      - uses: Skycoder42/action-setup-qt@master
        id: qt
        with:
          version: ${{matrix.version}}
          platform: ${{matrix.platform}}
          packages: qt.tools.ifw.32
      - name: qmake
        run: |
          qmake CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} "QT_TOOL_PATH=${{steps.qt.outputs.qtdir}}/Tools" aseman.pro
          ${{steps.qt.outputs.make}} qmake_all
      - name: make module
        run: |
          ${{steps.qt.outputs.make}}
          ${{steps.qt.outputs.make}} INSTALL_ROOT="${{steps.qt.outputs.installdir}}" install
      - name: upload module to releases
        uses: Skycoder42/action-upload-release@master
        if: startsWith(github.ref, 'refs/tags/')
        with:
          repo_token: ${{secrets.GITHUB_TOKEN}}
          directory: ${{steps.qt.outputs.outdir}}
          platform: ${{matrix.platform}}
          asset_name: nut-${{matrix.platform}}-${{matrix.version}}
          tag: ${{github.ref}}
          overwrite: true

  deploy:
    if: startsWith(github.ref, 'refs/tags/')
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
        with:
          submodules: recursive
          path: source
      - uses: actions/setup-python@v1
      - uses: Skycoder42/action-deploy-qt@master
        with:
          token: ${{secrets.GITHUB_TOKEN}}
          version: 5.15.0
          host: ${{secrets.SSHFS_HOST}}
          key: ${{secrets.SSHFS_KEY}}
          port: ${{secrets.SSHFS_PORT}} 


================================================
FILE: .gitignore
================================================
# C++ objects and libs

*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib

# Qt-es

/build
/old
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
Makefile*
*build-*

# QtCreator

*.autosave

# QtCtreator Qml
*.qmlproject.user
*.qmlproject.user.*

# QtCtreator CMake
CMakeLists.txt.user*

# OSX
.DS_Store


================================================
FILE: .gitmodules
================================================
[submodule "src/httpserver/qhttp"]
	path = src/httpserver/qhttp
	url = https://github.com/Aseman-Land/qhttp.git


================================================
FILE: .qmake.conf
================================================
load(qt_build_config)

MODULE_VERSION = 3.1.5


================================================
FILE: LICENSE
================================================
                   GNU LESSER GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.


  This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.

  0. Additional Definitions.

  As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.

  "The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.

  An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.

  A "Combined Work" is a work produced by combining or linking an
Application with the Library.  The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".

  The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.

  The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.

  1. Exception to Section 3 of the GNU GPL.

  You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.

  2. Conveying Modified Versions.

  If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:

   a) under this License, provided that you make a good faith effort to
   ensure that, in the event an Application does not supply the
   function or data, the facility still operates, and performs
   whatever part of its purpose remains meaningful, or

   b) under the GNU GPL, with none of the additional permissions of
   this License applicable to that copy.

  3. Object Code Incorporating Material from Library Header Files.

  The object code form of an Application may incorporate material from
a header file that is part of the Library.  You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:

   a) Give prominent notice with each copy of the object code that the
   Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the object code with a copy of the GNU GPL and this license
   document.

  4. Combined Works.

  You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:

   a) Give prominent notice with each copy of the Combined Work that
   the Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the Combined Work with a copy of the GNU GPL and this license
   document.

   c) For a Combined Work that displays copyright notices during
   execution, include the copyright notice for the Library among
   these notices, as well as a reference directing the user to the
   copies of the GNU GPL and this license document.

   d) Do one of the following:

       0) Convey the Minimal Corresponding Source under the terms of this
       License, and the Corresponding Application Code in a form
       suitable for, and under terms that permit, the user to
       recombine or relink the Application with a modified version of
       the Linked Version to produce a modified Combined Work, in the
       manner specified by section 6 of the GNU GPL for conveying
       Corresponding Source.

       1) Use a suitable shared library mechanism for linking with the
       Library.  A suitable mechanism is one that (a) uses at run time
       a copy of the Library already present on the user's computer
       system, and (b) will operate properly with a modified version
       of the Library that is interface-compatible with the Linked
       Version.

   e) Provide Installation Information, but only if you would otherwise
   be required to provide such information under section 6 of the
   GNU GPL, and only to the extent that such information is
   necessary to install and execute a modified version of the
   Combined Work produced by recombining or relinking the
   Application with a modified version of the Linked Version. (If
   you use option 4d0, the Installation Information must accompany
   the Minimal Corresponding Source and Corresponding Application
   Code. If you use option 4d1, you must provide the Installation
   Information in the manner specified by section 6 of the GNU GPL
   for conveying Corresponding Source.)

  5. Combined Libraries.

  You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:

   a) Accompany the combined library with a copy of the same work based
   on the Library, uncombined with any other library facilities,
   conveyed under the terms of this License.

   b) Give prominent notice with the combined library that part of it
   is a work based on the Library, and explaining where to find the
   accompanying uncombined form of the same work.

  6. Revised Versions of the GNU Lesser General Public License.

  The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

  Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.

  If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.


================================================
FILE: README.md
================================================
<img src="icons/logo.png" align="right" />

# Qt Aseman

- [What is QtAseman?](https://github.com/Aseman-Land/QtAseman#what-is-qtaseman)
- [New in QtAseman 3.1.x](https://github.com/Aseman-Land/QtAseman#new-in-qtaseman-31x)
- [How to Install](https://github.com/Aseman-Land/QtAseman#how-to-install)
- [How to Build](https://github.com/Aseman-Land/QtAseman#how-to-build)
- [How to create a QML application using QtAseman](https://github.com/Aseman-Land/QtAseman#how-to-create-a-qml-application-using-qtaseman)
- [QtAseman QML modules](https://github.com/Aseman-Land/QtAseman#qtaseman-qml-modules)
- [Documents](https://github.com/Aseman-Land/QtAseman#documents)
- [Donation](https://github.com/Aseman-Land/QtAseman#donation)

## What is QtAseman

QtAseman is a set of tools, design patterns and architectures that we have developed over the years in various projects for wide range of uses. Now, with it's proven stability, we have decided to release this collection with the name QtAseman as an Open Source and Free tool under the LGPLv3 license.

![Snapshot](https://aseman.io/projects/qtaseman/snapshot.png)

Some main features to use on QML are:

- Viewport tools that provides unique page manager system (page, popup, stack, dialog and ...)
- Gestures for viewports 
- Transparent statusbar and optional navigation bar on mobile devices
- Some extra Qml controls components like Drawer, Header, TextField, CircularProgressBar and ...
- BackHandler system
- Font awesome and Material icons fonts
- VideoPlayer component
- Some graphical components like shadows for easy to use and better experiance
- Network and Http Request handler
- Models and Abstract models with better experience
- Encrypt/Decrypt tools
- Qt/C++ Like Hash, Map and List objects
- Tools to get more device infos like deviceId, density, keyboard height, statusBar height and ...
- Translation manager tools
- Settings manager
- Some other tools like file read/write methods, type convert methods and ...
- Process executer tools from QML

## New in QtAseman 3.9.x

- QtAseman's Control Beta.
  It's a simple example:

```js
import QtQuick 2.15
import AsemanQml.Controls.Beta 3.0
import AsemanQml.MaterialIcons 2.0

Window {
    title: qsTr("Hello World")

    Style.primaryColor: "#3f51b5"
    Style.primaryTextColor: "#fff"
    
    Page {
        id: page
        anchors.fill: parent
        title: "Home"
        header: Header {
            width: parent.width
        }
        
        Button {
            id: btn
            anchors.centerIn: parent
            highlighted: true
            icon: MaterialIcons.mdi_dialpad
            text: "Test Page"
            onClicked: test_stack.open()
        }
    }

    StackPage {
        id: test_stack
        Page {
            id: testStack
            header: Header {
                height: 50
                width: parent.width
            }

            Button {
                anchors.centerIn: parent
                highlighted: true
                icon: MaterialIcons.mdi_chevron_left
                text: "Back"
                onClicked: test_stack.close()
            }
        }
    }
}
```



## How to Install

Currently binary packages only available on the ubuntu (launchpad) repositories. To install it on the ubuntu 20.04 LTS:

```bash
sudo add-apt-repository ppa:aseman/qt-modules
sudo apt install qt5aseman
```

and to install development files install `qt5aseman-dev` package.
on Arch you can use [AUR](https://aur.archlinux.org/packages/qt-aseman) (Thanks [molaeiali](https://github.com/molaeiali)):

```bash
yay -S qt-aseman
```

## How to build

QtAseman uses standard Qt module mechanisms and it only depends on Qt libraries. Therefor it's quite easy to build on all platforms. Just clone it and build it easily:

```bash
git clone https://github.com/Aseman-Land/QtAseman.git --recursive
cd QtAseman
mkdir build && cd build
qmake -r ..
make -j2
make install
```

The easiest way to build is to open it using QtCreator and click on the build icon :)
Afterwards just run `make install` command to install it in the Qt location.

### QtCreator Wizard

It will install automatically on Linux based operating systems.

For other Operating systems, to install QtCreator's wizards, Just copy `src/wizards/qtcreator/qtasemanapplication/` directory to `share/qtcreator/templates/wizards/projects/` directory of the QtCreator.

## How to create a QML application using QtAseman

One of the main assets of QtAseman is that you can add it to your project without any extra change to the standard structure of the default QML app.

So To create an application using QtAseman, Just create a new QML project in your QtCreator and add AsemanQML module to the project. Now you can use all QtAseman components:

```js
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.12

AsemanWindow {
    visible: true
    width: 480
    height: 720
    title: qsTr("QtAseman Example")
    
    Label {
        anchors.centerIn: parent
        text: "Hello World! :)"
    }
}
```

If you wish to change any application attribute like applicationName or applicationOrganization you can create an `AsemanApp` object in the parent of  `AsemanWindow`. Although it's completely optional and you can ignore it.

```js
import AsemanQml.Controls 2.0

AsemanApplication {
    id: app
    applicationAbout: "QtAseman Application"
    applicationDisplayName: "QtAseman"
    applicationId: "be2a1f0c-34aa-44ed-8e65-4b1720e560b8"
    organizationDomain: "aseman.io"
    
    AsemanWindow {
        visible: true
        width: 480
        height: 720
    }
}
```

We suggest you to also create an AsemanApplication object, because QtAseman handles config file paths better while this attributes is set.

**Note**: In order to make all modules work correctly on android devices you must replace `io.aseman.android.AsemanApplication` and `io.aseman.android.AsemanActivity` with Qt's values in the android manifest file.

## QtAseman QML Modules

There are many modules and components in QtAseman that will help you create applications without use of any extra C++ code.
Also QtAseman offers a great software architecture for each module that makes development much more easier and faster.

### AsemanQml.Base

AsemanQml.Base module provides many base and core modules for your application. For example modules like Device infos, Desktop functions tools, data type converters, lists, hashes and etc. are placed in Base module.

here is one of the main uses of Base module:

```js
import AsemanQml.Controls 2.0
import AsemanQml.Base 2.0

AsemanWindow {
    visible: true
    width: 480
    height: 720
    title: qsTr("QtAseman Example")
    
    Rectangle {
        height: Devices.statusBarHeight
        width: parent.width
        color: "blue"
    }
}
```

QtAseman makes mobile status bars transparent by default and `Devices.statusBarHeight` returns the status bar height of the device. The above example makes the status bar color blue. If there is no status bar on the device (like desktop operation systems) it returns zero as the result.

You can get other useful values like screen density, suggested font density, main OS folder locations, platform details, device type and etc. using `Devices` component.

Also there is `Tools` component that provides some extra tools for applications, like methods to read or write to/from files or methods to convert json to variant map or convert url to local path and etc.

For example below codes create sha256 hash:

```js
var sha = Tools.hash("12345", Tools.Sha256);
```

Or below codes read text from file:

```js
var text = Tools.readText("/home/bardia/file.txt");
```

There is also a `Process` component that runs processes or a great back handler component named `BackHandler`.

#### BackHandler

`BackHandler` component provides back mechanism for your application. It's simple and easy to work with, plus all components of QtAseman support it by default, therefore it handles back actions automatically without the direct interference of developer.

Below example shows you how to use `BackHandler` component in your code:

```js

Button {
    anchors.centerIn: parent
    text: "Show"
    onClicked: subRect.visible = true
}

Rectangle {
    id: subRect
    anchors.fill: parent
    visible: false
    onVisibleChanged: {
        if (visible)
            BackHandler.pushHandler(subRect, function(){ subRect.visible = false })
        else
            BackHandler.removeHandler(subRect)
    }

    Button {
        anchors.centerIn: parent
        text: "Hide"
        onClicked: BackHandler.back()
    }
}
```

Beside clicking on the hide button to trigger back function, you can press Esc button or the physical back button of device. On mobile devices if there is no back function in the BackHandler stack and back() method is called, application will try to quit.

**Note**: You must use AsemanWindow object to make Esc or Physical back button work.

#### Settings

Creates a settings file in a specific path and stores settings values there:

````js
Settings {
    id: settings
    category: "General"
    source: AsemanApp.homePath + "/ui-settings.ini"

    property bool languageInited: false
    property int nightMode: 0
    property int colorTheme: 0
    property int darkColorTheme: 3
}
````

Every change in setting's property is saved and can be restored within the next load of application.

#### Translations

`Translations` and `TranslationManager` provide functions and tools to manage translation in your application:

```js
TranslationManager {
    id: translationManager
    
    // Finds all lang-*.qm files in the sourceDirectory using three below lines
    sourceDirectory: "../translations"
    delimiters: "-"
    fileName: "lang"
    
    localeName: "fa"
}

Button {
    // Everytime translation changed to other language, Every refresher texts
    // will refreshed and translated to the new language
    text: qsTr("Dismiss") + Translations.refresher
}
```

#### RoundedItem

It renders every included child item as rounded. For example below code shows an image with rounded corners:

```js
RoundedItem {
    width: 100
    height: 100
    radius: 10
    
    Image {
        anchors.fill: parent
        source: "image.png"
    }
}
```

#### DelegateSwitch

`DelegateSwitch` provides a component to switch between two or more children components on the fly. For example:

```js
ListView {
    model: 20
    delegate: DelegateSwitch {
        current: model.index % 2
        Component {
            Rectangle {
                width: 100; height: 40
                color: "red"
            }
        }
        Component {
            Rectangle {
                width: 40; height: 40
                color: "blue"
            }
        }
    }
}
```

This example shows red rectangles on even indexes and blue squeres on odd indexes.

#### ReadMore

 To read more about Base module, please read [this document](documents/AsemanQml.Base.md).

### AsemanQml.Controls

Controls module provides any control module like QtQuick.Controls. For example It provides `AsemanApplication ` , `AsemanWindow`, `SideMenu`, `Header` and many other components.

Below example shows a simple usage of the `Controls` component.

```js
import QtQuick 2.9
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0

AsemanWindow {
    visible: true
    width: 480
    height: 720
    title: qsTr("Hello World")
    
    Header {
        width: parent.width
        text: "Hello"
        color: "#18f"
    }

    Drawer {
        id: menu
        anchors.fill: parent
        delegate: Rectangle {
            anchors.fill: parent
            color: "#333"
        }
    }

    HeaderMenuButton {
        id: btn
        /* 
         * If BackHandler stack is not empty, It shows back 
         * button instead of hamburger btn. 
         */
        ratio: BackHandler.count? 1 : menu.percent
        onClicked: BackHandler.count? BackHandler.back() : menu.show()
    }
}
```

### AsemanQml.Viewport

Viewport module provides a new design architecture for applications. 

There is a `Viewport` component that provides a manage mechanism for your page, popup, dialogs and etc.

[![Viewport Video](https://aseman.io/aseman/viewport.jpg)](https://youtu.be/hqBt8GOXQB0ase)

Below example shows you the usage of the `Viewport` component.

```js
import AsemanQml.Viewport 2.0
/*
 * Viewport component manage pages and Way of the they opened.
 * Like popups, pages, dialogs or ...
 * It also supports BackHandler by default like other QtAseman components
 */
Viewport {
    id: viewPort
    anchors.fill: parent
    mainItem: Page {
        // Main/Default Viewport item
        anchors.fill: parent

        Button {
            text: "Open"
            anchors.centerIn: parent
            
            // append hiComponent to the viewPort stack and open it as page
            // append() returns a refrence to the created ui object.
            // Types are: page, activity, popup, dialog, menu and drawer
            onClicked: viewPort.append(hiComponent, undefined, "page")
        }
    }
}

Component {
    id: hiComponent
    Page {
        id: page
        anchors.fill: parent
        property int cnt

        Button {
            id: btn
            text: "Open " + (page.cnt+1)
            anchors.centerIn: parent
            
            // append method could also pass properties to the dest object
            onClicked: viewPort.append(hiComponent, {"counter": page.cnt+1}, "popup")
        }
    }
}
```

There is also an attached property, you can use to call append function in the Viewport's childeren components:

```js
Viewport.viewport.append(...)
```

#### ViewportController

Using `ViewportController` components you won't need to create a complicated architecture. It helps you to make your architecture quite easy and dynamic.

Below example shows you how to create UI and open them easily in the apps.

Using this design architecture, you create separated UI files, link them to their specific path and just call them using controllers anywhere in the App.
`ViewportController` opens them automatically in the `Viewport`.

```js
Viewport {
    id: viewPort
    anchors.fill: parent
    mainItem: Page {
        anchors.fill: parent

        Button {
            text: "Open"
            anchors.centerIn: parent
            // Trigger the path and open UI item that linked to the path.
            // trigger() returns a refrence to the created ui object.
            onClicked: controller.trigger("main://test/bardia")
        }
    }
}

ViewportController {
    id: controller
    viewport: viewPort

    // Define all your UI routes that connect paths to UI components.
    ViewportControllerRoute {
        route: /main:\/\/test\/.*/
        sourceComponent: hiComponent
        viewportType: "popup" 
    }

    ViewportControllerRoute {
        route: /about:\/\/aseman\/.*/
        // You can also use `source` property and pass component's url to it.
        sourceComponent: aboutComponent
        viewportType: "page" 
    }
}

Component {
    id: hiComponent
    Page {
        anchors.fill: parent
        
        Button {
            text: "About"
            anchors.centerIn: parent
            /*
             * You can also pass properties to object using js map
             * or using html query way (about://aseman/test?text=about&color=blue)
             */
            onClicked: controller.trigger("about://aseman/test", {"text": "about"})
        }
    }
}
Component {
    id: aboutComponent
    Label {
        anchors.fill: parent
        verticalAlignment: Text.AlignVCenter
        horizontalAlignment: Text.AlignHCenter
        
         // If you specify a url property, triggered url will put to this property
        property string url
        
         // If you specify a properties property, initial properties will put to this property
        property variant properties
    }
}
```

There is also an attached property, you can use to call trigger function in the Viewport's childeren components:

```js
MouseArea {
    onClicked: Viewport.controller.trigger("about://aseman/test", {"text": "about"})
}
```

`Viewport.controller` method returns first controller of the parent Viewport. If you wish to get all controllers as array, use `Viewport.allController` method instead.

#### ViewportType Attached Property

Using `ViewportType` attached property, you can change some attributes on the current Viewport's type item:

```js
ViewportType.gestureWidth: 10 // Change touch/mouse gesture area's width
ViewportType.touchToClose: false // Disable touch background to close feature
ViewportType.blockBack: true // Disable press back to close feature
ViewportType.open: false // Close current page of the viewport
ViewportType.transformOrigin: Qt.point(10, 20) // Sets transform origin on some types like menu
```

### AsemanQml.Network

Network module provides components to send network requests. For Example `NetworkRequestManager` and `NetworkRequest` could send http requests like post, get, put and etc.
Below example shows you a simple usage of network module.

```js
import AsemanQml.Network 2.0

Button {
    text: "Signup"
    onClicked: networkManager.post(signInRequest) // get, post, put or ...
}

BusyIndicator { running: signInRequest.refreshing }

NetworkRequestManager { id: networkManager }

NetworkRequest {
    id: signInRequest
    contentType: NetworkRequest.TypeJson
    url: "https://example.com/auth/signIn"
    headers: {
        "Authorization": "Bearer ...",
    }

    // Properties will post as json file map
    property string username: "test"
    property string password: "pass1234"
        
    // If you specified url property with TypeForm, It will send file, Else send it as string
    property url filePath

    onServerError: ; // server error codes
    onClientError: ; // client error codes
    onSuccessfull: {
        // Response contains response map if it's json
        // or if not response text
        console.debug(response.token)
    }
}
```

You can create many simple request files in your project and every time you need them, just send them to the server using NetworkRequestManager and get your response.

### AsemanQml.Models

Models module provide some ready to use models like `CountriesModel` and `FileSystemModel` and Also provide a new Model mechanism that make works with models easier on the QML.

#### AsemanListModel

AsemanListModel provides a model component for advanced usage of QML. Below example shows how to use AsemanListModel in your code:

```js
AsemanListModel {
    id: model
    data: [
        {
            "name": "bardia",
            "age": 30 + 2 // It supports js values too.
        },
        {
            "name": "amir",
            "age": 31
        }
    ]
    // cachePath store model data to the file and restore it everytime
    // Application load again
    cachePath: AsemanApp.homePath + "/ages.model"
}
```

**Note**: `AsemanApp.homePath` returns standard path to store config files.

And You can manage your model using below methods:

```js
var value = model.get(idx, "propertyName");
var allValues = model.get(idx); // allValues.propertyName is equal to value
model.clear();
model.append({"name", "bardia", "age": 30});
var data = model.data; // Get all data of the model as list
var json = Tools.variantToJson(data); // Convert data to json string
```

#### AsemanListModelSource

You can use `AsemanListModelSource` component to pass two or more different sources to the `AsemanListModel`:

```js
AsemanListModel {
    AsemanListModelSource {
        // obj is an object that has a result property, returns variant/array/map
        source: obj.result
        path: "data->users[2]->childeren"
    }
    AsemanListModelSource {
        source: { title: "test", list: [a, b, c, d] }
        path: "list"
    }
}
```

It useful when for example you want to merge two or more requests responses to one model.

#### Model's Hints

There is a mechanism to arrange and change model's data in easier way without even one line JavaScript code using Aseman's Models mechanism.
This feature is Hints. You can rename keys (for example change user_name to userName), even change paths of them (for example change results.user.name to userName), change values formats (for example change gregorian date to jalali date), or ... using hints.

```js
AsemanListModel {
    ...
	
    // Copy "results.user.name" to "userName"
    ModelCopyHint {
        path: "results->user->name"
        targetPath: "userName"
    }
    
    // Make all "results.user.nickname" values upperCase
    ModelFormatHint {
        path: "results->user->nickname"
        method: function(arg) { return arg.toUpperCase() }
    }
    
    // Convert all keys to camel case.
    ModelCamelCaseHint {
    }
    
    // Delete "results.images[0].caption"
    ModelDeleteHint {
		path: "results->images[0]->caption"
    }
}
```

### AsemanQml.Sql

Sql module provides some tools to add SQL features to your applications. It supports SQLite, MySQL, PostgreSQL and also MSSQL. Below example shows how to use it:

```js
import AsemanQml.Sql 2.0

AsemanListModel {
    id: model
    data: mysql.select("INNER JOIN ...", "title LIKE :title and id > :id", {title: "hi%", id: 10})
    // Also you can use it without join and also where arguments.
}

SqlObject {
    id: mysql
    databaseName: "TestDB"
    driver: SqlObject.MySQL
    host: "127.0.0.1"; port: 3306
    userName: "user"; password: "password"
    
    table: "TestTable"
    primaryKeys: ["id"]
    property int id: 10
    property string title
    property date updateTime
    
    Component.onCompleted: {
    	// It fetchs title and updateTime of id=10 to title and updateTime properties
        fetch();
        
        title = "Hi :)"
        update(); // Update value,
    }
}

SqlObject {
    id: sqlite
    databaseName: "/Path/to/db"
    driver: SqlObject.SQLite
    
    Component.onCompleted: {
        var result = query("SOME QUERY");
        // You can use queryAsync("SOME QUERY", {...binds...}, function(res){...})
        // Method to run queries in async mode
        console.debug( Tools.variantToJson(result) );
    }
}
```

### AsemanQml.MaterialIcons and AsemanQml.Awesome

These two modules provide access to the MaterialIcons and FontAwesome font icons. The usage is easy:

```js
import AsemanQml.MaterialIcons 2.0
import AsemanQml.Awesome 2.0

Label {
    font.family: Awesome.family
    text: Awesome.fa_github
}
Label {
    font.family: MaterialIcons.family
    text: MaterialIcons.mdi_github
}
```

## Advanced options using C++

If you need to access advanced options or create components inherited from QtAseman or even have further use using C++  simply add below line to your `.pro` file and use components there:

```
QT += asemancore asemangui asemanqml asemannetwork asemanwidgets asemangeo
```

### AsemanHttpServer

AsemanHttpServer is a [qhttp](https://github.com/azadkuh/qhttp) fork, that create routing API for it. So it's async, thread supports and easy to use:

```c++
AsemanHttpServer server;

// Sync
server.route("/hello/sync", AsemanHttpServer::HttpMethod::GET, [](const AsemanHttpServer::Request &) {
    return QStringLiteral("Hello Sync");
});

// ASync
server.route("/hello/async", AsemanHttpServer::HttpMethod::GET, [](const AsemanHttpServer::Request &, AsemanHttpServer::Responder *responder) {
    responder->write(QStringLiteral("Hello ASync"));
});

// ASync Threaded (It will run on another thread automatically)
server.route("/hello/async", AsemanHttpServer::HttpMethod::GET, [](const AsemanHttpServer::Request &, AsemanHttpServer::Responder *responder) {
    // Runs on another thread
    responder->write(QStringLiteral("Hello ASync"));
}, true);
```

## Documents

We have started to document all modules and their essential details using Doxygen standards we will put them in documents folder, but the full documentation process is under developing and not completed yet.

## Donation

[Help us to keep QtAseman up to date](https://aseman-land.github.io/QtAseman)


================================================
FILE: SourceDiary.sh
================================================
#! /bin/sh
# Set the home if not already set.
if [ "${ASEMAN_SRC_PATH}" = "" ]; then
    ASEMAN_SRC_PATH="`echo $0 | grep ^/`"
    if [ "$ASEMAN_SRC_PATH" = "" ]; then
	ASEMAN_SRC_PATH="$PWD"/"$0"
    fi
    cd `dirname $ASEMAN_SRC_PATH`
    ASEMAN_SRC_PATH=$PWD
    cd -
fi

cd $ASEMAN_SRC_PATH
OUTPUT="`find -name '*.h' -type f` `find -name '*.cpp' -type f` `find -name '*.ui' -type f` `find -name '*.qrc' -type f` `find -name '*.pro' -type f` `find -name '*.pri' -type f` `find -name '*.qml' -type f` `find -name '*.py' -type f` `find -name '*.java' -type f` `find -name '*.js' -type f` `find -name '*.html' -type f` `find -name '*xml' -type f` `find -name '*.ts' -type f` "

wc -mwl $OUTPUT
echo "  in the "`echo $OUTPUT | wc -w`" Files"


================================================
FILE: aseman.pri
================================================
DEFINES += QASEMAN_STATIC
include (src/src.pri)


================================================
FILE: aseman.pro
================================================
load(qt_parts)
system($$[QT_INSTALL_BINS]/syncqt.pl -version 3.1.5 -outdir $$OUT_PWD)


================================================
FILE: debian/.directory
================================================
[Dolphin]
GroupedSorting=true
SortRole=type
Timestamp=2020,4,18,0,53,2
Version=4
ViewMode=1


================================================
FILE: debian/changelog
================================================
qtaseman (3.1.5-1aseman-focal) focal; urgency=medium

  * Add error callback to queryAsync.
  * Add statusBarStyle on iOS

 -- Aseman IO <contact@aseman.io>  Sun, 06 Sep 2020 13:40:00 +0330


qtaseman (3.1.4-1aseman-focal) focal; urgency=medium

  * Add queryAsync to SqlObject which run sql queries in async mode.

 -- Aseman IO <contact@aseman.io>  Sat, 06 Jun 2020 13:40:00 +0330


qtaseman (3.1.3-1aseman-focal) focal; urgency=medium

  * Add keys and values properties to HashObject and MapObject
  * Add compact support to Tools.variantToJson function
  * Transparent background for none viewport type
  * ViewportType.sourceObject property which is not used on any types currently
  * Improve Viewport's ContextMenu on Android
  * Add Viewport's float type which is ios-popup on ios and android-activity on android
  * Some improvement and bugfixes

 -- Aseman IO <contact@aseman.io>  Fri, 29 May 2020 00:30:00 +0330


qtaseman (3.1.2-1aseman-focal) focal; urgency=medium

  * Network multipart requests bugfix
  * Add close support for items placed on the middle of the Viewport's
  * Add ViewportControllers initial properties to `property variant properies`
  * Add ViewportType.transformOrigin. It currently used on the Viewport's menu type
  * Checkboxes wrong colors bugfix
  * Add js values support for NetworkRequestObjects
  * Add DelayPropertySwitch component

 -- Aseman IO <contact@aseman.io>  Thu, 21 May 2020 04:27:00 +0330


qtaseman (3.1.1-1aseman-focal) focal; urgency=medium

  * Update Wizards
  * Change insert query to replace on SQL module
  * Many bugfix and Improvements on Viewports

 -- Aseman IO <contact@aseman.io>  Tue, 12 May 2020 23:27:00 +0330


qtaseman (3.1.0-3aseman-focal) focal; urgency=medium

  * Increase ios-page gesture width
  * Bugfix on ios-page
  * iOS style for QtQuickControls 
  * Viewport's context menu type 
  * AsemanQml.Models module 
  * AsemanQml.Sql module 
  * Rewrite Viewport's types 
  * Add Attached property to the Viewports 
  * QtCreator wizards to create Aseman Apps easily 

 -- Aseman IO <contact@aseman.io>  Wed, 06 May 2020 15:30:00 +0330


qtaseman (3.00.1-2aseman-focal) focal; urgency=medium

  * Increase ios-page gesture width
  * Bugfix on ios-page

 -- Aseman IO <contact@aseman.io>  Sat, 18 Apr 2020 20:50:00 +0330


qtaseman (3.00.1-1aseman-focal) focal; urgency=medium

  * Bugfix on TextField and TextArea components

 -- Aseman IO <contact@aseman.io>  Sat, 18 Apr 2020 10:50:00 +0330


qtaseman (3.00.0-1aseman-focal) focal; urgency=medium

  * RC version of QtAseman 3.0.0

 -- Aseman IO <contact@aseman.io>  Sat, 18 Apr 2020 10:50:00 +0330


================================================
FILE: debian/compat
================================================
9


================================================
FILE: debian/control
================================================
Source: qtaseman
Section: libs
Priority: optional
Maintainer: Aseman Team <contact@aseman.io>
Build-Depends:
 debhelper (>= 8.0.0),
 g++ (>= 4:4.7),
 gcc (>= 4:4.7),
 qtbase5-dev (>= 5.9.0),
 libqt5sql5-sqlite (>= 5.9.0),
 libqt5multimediaquick5 (>= 5.9.0),
 libqt5multimedia5-plugins (>= 5.9.0),
 libqt5multimedia5 (>= 5.9.0),
 qtpositioning5-dev (>= 5.9.0),
 libqt5sensors5-dev (>= 5.9.0),
 qtchooser,
 qt5keychain-dev,
 qt5-qmake,
 qt5-default,
 libqt5qml5 (>= 5.9.0),
 libqt5qml-graphicaleffects (>= 5.9.0) | qml-module-qtgraphicaleffects,
 qtdeclarative5-controls-plugin (>= 5.9.0) | qml-module-qtquick-controls,
 qtdeclarative5-dev (>= 5.9.0),
 libqt5quick5 (>= 5.9.0),
 qtmultimedia5-dev (>= 5.9.0),
 libqt5webkit5-dev (>= 5.1.0)
Standards-Version: 3.9.5
Homepage: https://github.com/Aseman-Land/QtAseman
Vcs-Git: https://github.com/Aseman-Land/QtAseman

Package: libqt5asemancore
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtCore Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemancore-dev
Section: libdevel
Architecture: any
Depends: libqt5asemancore (= ${binary:Version})
Description: QtCore Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemangui
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtGui Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemangui-dev
Section: libdevel
Architecture: any
Depends: libqt5asemangui (= ${binary:Version})
Description: QtGui Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanwidgets
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtWidgets Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanwidgets-dev
Section: libdevel
Architecture: any
Depends: libqt5asemanwidgets (= ${binary:Version})
Description: QtWidgets Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemannetwork
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtNetwork Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemannetwork-dev
Section: libdevel
Architecture: any
Depends: libqt5asemannetwork (= ${binary:Version})
Description: QtNetwork Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemansql
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtSql Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemansql-dev
Section: libdevel
Architecture: any
Depends: libqt5asemansql (= ${binary:Version})
Description: QtSql Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemangeo
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtGeo Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemangeo-dev
Section: libdevel
Architecture: any
Depends: libqt5asemangeo (= ${binary:Version})
Description: QtGeo Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanmultimedia
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtMultimedia Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanmultimedia-dev
Section: libdevel
Architecture: any
Depends: libqt5asemanmultimedia (= ${binary:Version})
Description: QtMultimedia Aseman tools development files, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanqml
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtQml Aseman tools, 
 It's free and released under the GPLv3 license.

Package: libqt5asemanqml-dev
Section: libdevel
Architecture: any
Depends: libqt5asemanqml (= ${binary:Version})
Description: QtQml Aseman tools,  development files, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanbase
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, 
 libqt5qml-graphicaleffects (>= 5.9.0) | qml-module-qtgraphicaleffects,
 qtdeclarative5-controls-plugin (>= 5.9.0) | qml-module-qtquick-controls
Description: QtQml Aseman Base components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanwidgets
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Widgets components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemannetwork
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtQml Aseman Network components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemansql
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: QtQml Aseman Sql components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanmultimedia
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Multimedia components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanviewport
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Viewport components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanmodern
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Modern components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemancontrols
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Controls components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanmodels
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Models components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanawesome
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Aseman Font Awesome components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qml-module-asemanmaterial
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
 qml-module-asemanbase
Description: QtQml Material font icons components for the Qml, 
 It's free and released under the GPLv3 license.

Package: qt5aseman
Section: libs
Architecture: any
Depends: libqt5asemancore (= ${binary:Version}),
 libqt5asemangui (= ${binary:Version}),
 libqt5asemanwidgets (= ${binary:Version}),
 libqt5asemannetwork (= ${binary:Version}),
 libqt5asemansql (= ${binary:Version}),
 libqt5asemangeo (= ${binary:Version}),
 libqt5asemanmultimedia (= ${binary:Version}),
 libqt5asemanqml (= ${binary:Version}),
 qml-module-asemanbase, qml-module-asemanwidgets,
 qml-module-asemanmultimedia, qml-module-asemanawesome,
 qml-module-asemanmaterial, qml-module-asemanmodern,
 qml-module-asemancontrols, qml-module-asemanviewport,
 qml-module-asemannetwork, qml-module-asemanmodels,
 qml-module-asemansql
Description: Qt Aseman full package, 
 It's free and released under the GPLv3 license.

Package: qt5aseman-dev
Section: libdevel
Architecture: any
Depends: libqt5asemancore-dev (= ${binary:Version}),
 libqt5asemangui-dev (= ${binary:Version}),
 libqt5asemanwidgets-dev (= ${binary:Version}),
 libqt5asemannetwork-dev (= ${binary:Version}),
 libqt5asemansql-dev (= ${binary:Version}),
 libqt5asemangeo-dev (= ${binary:Version}),
 libqt5asemanmultimedia-dev (= ${binary:Version}),
 libqt5asemanqml-dev (= ${binary:Version}),
 qt5aseman (= ${binary:Version}),
 qt5aseman-wizards-qtcreator (= ${binary:Version})
Description: Qt Aseman full development package, 
 It's free and released under the GPLv3 license.

Package: qt5aseman-wizards-qtcreator
Section: libdevel
Architecture: any
Depends: qt5aseman (= ${binary:Version})
Description: Qt Aseman qtcreator wizards, 
 It's free and released under the GPLv3 license.


================================================
FILE: debian/copyright
================================================
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: telegramqml
Source: aseman.co/telegramqml

Files: *
Copyright: 2015 Aseman Team
License: GPL-3.0+

Files: debian/*
Copyright: 2015 Aseman Team <contact@aseman.co>
License: GPL-3.0+

License: GPL-3.0+
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 .
 This package is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
 .
 On Debian systems, the complete text of the GNU General
 Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
# Please avoid to pick license terms that are more restrictive than the
# packaged work, as it may make Debian's contributions unacceptable upstream.


================================================
FILE: debian/files
================================================
qtaseman_3.1.5-1aseman-focal_source.buildinfo libs optional


================================================
FILE: debian/libqt5asemancore-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemancore-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanCore/*


================================================
FILE: debian/libqt5asemancore.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemancore.install
================================================
usr/lib/*-linux-gnu/libQAsemanCore*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanCore/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanCore.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemancore*


================================================
FILE: debian/libqt5asemangeo-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemangeo-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanGeo/*


================================================
FILE: debian/libqt5asemangeo.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemangeo.install
================================================
usr/lib/*-linux-gnu/libQAsemanGeo*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanGeo/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanGeo.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemangeo*


================================================
FILE: debian/libqt5asemangui-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemangui-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanGui/*


================================================
FILE: debian/libqt5asemangui.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemangui.install
================================================
usr/lib/*-linux-gnu/libQAsemanGui*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanGui/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanGui.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemangui*


================================================
FILE: debian/libqt5asemanmultimedia-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemanmultimedia-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanMultimedia/*


================================================
FILE: debian/libqt5asemanmultimedia.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemanmultimedia.install
================================================
usr/lib/*-linux-gnu/libQAsemanMultimedia*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanMultimedia/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanMultimedia.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemanmultimedia*


================================================
FILE: debian/libqt5asemannetwork-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemannetwork-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanNetwork/*


================================================
FILE: debian/libqt5asemannetwork.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemannetwork.install
================================================
usr/lib/*-linux-gnu/libQAsemanNetwork*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanNetwork/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanNetwork.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemannetwork*


================================================
FILE: debian/libqt5asemanqml-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemanqml-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanQml/*


================================================
FILE: debian/libqt5asemanqml.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemanqml.install
================================================
usr/lib/*-linux-gnu/libQAsemanQml*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanQml/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanQml.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemanqml*


================================================
FILE: debian/libqt5asemansql-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemansql-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanSql/*


================================================
FILE: debian/libqt5asemansql.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemansql.install
================================================
usr/lib/*-linux-gnu/libQAsemanSql*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanSql/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanSql.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemansql*


================================================
FILE: debian/libqt5asemanwidgets-dev.dirs
================================================
usr/include


================================================
FILE: debian/libqt5asemanwidgets-dev.install
================================================
usr/include/*-linux-gnu/qt5/QAsemanWidgets/*


================================================
FILE: debian/libqt5asemanwidgets.dirs
================================================
usr/lib


================================================
FILE: debian/libqt5asemanwidgets.install
================================================
usr/lib/*-linux-gnu/libQAsemanWidgets*
usr/lib/*-linux-gnu/cmake/Qt5QAsemanWidgets/*
usr/lib/*-linux-gnu/pkgconfig/QAsemanWidgets.pc
usr/lib/*-linux-gnu/qt5/mkspecs/modules/qt_lib_asemanwidgets*


================================================
FILE: debian/qml-module-asemanawesome.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanawesome.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Awesome/*


================================================
FILE: debian/qml-module-asemanbase.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanbase.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Base/*


================================================
FILE: debian/qml-module-asemancontrols.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemancontrols.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Controls/*


================================================
FILE: debian/qml-module-asemanmaterial.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanmaterial.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/MaterialIcons/*


================================================
FILE: debian/qml-module-asemanmodels.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanmodels.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Models/*


================================================
FILE: debian/qml-module-asemanmodern.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanmodern.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Modern/*


================================================
FILE: debian/qml-module-asemanmultimedia.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanmultimedia.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Multimedia/*


================================================
FILE: debian/qml-module-asemannetwork.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemannetwork.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Network/*


================================================
FILE: debian/qml-module-asemansql.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemansql.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Sql/*


================================================
FILE: debian/qml-module-asemanviewport.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanviewport.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Viewport/*


================================================
FILE: debian/qml-module-asemanwidgets.dirs
================================================
usr/lib


================================================
FILE: debian/qml-module-asemanwidgets.install
================================================
usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Widgets/*


================================================
FILE: debian/qt5aseman-wizards-qtcreator.dirs
================================================
usr/share


================================================
FILE: debian/qt5aseman-wizards-qtcreator.install
================================================
usr/share/qtcreator/templates/wizards/projects/qtasemanapplication/*


================================================
FILE: debian/rules
================================================
#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
	dh $@ 

override_dh_auto_configure:
	dh_auto_configure -- 

override_dh_install:
	dh_install

override_dh_clean:
	dh_clean


================================================
FILE: debian/source/format
================================================
3.0 (native)


================================================
FILE: demos/RegularApp/.gitignore
================================================
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------

*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash

# qtcreator generated files
*.pro.user*

# xemacs temporary files
*.flc

# Vim temporary files
.*.swp

# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*

# MinGW generated files
*.Debug
*.Release

# Python byte code
*.pyc

# Binaries
# --------
*.dll
*.exe



================================================
FILE: demos/RegularApp/AppWindow.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import QtQuick.Window 2.2
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Viewport 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import QtQuick.Dialogs 1.2
import "graphical"
import "nongraphical"
import "static"
import "models"
import "global"

AsemanWindow {
    id: mainWin
    width: 480
    height: 720
    title: qsTr("Hello World")
    visible: true
    backController: true

    Material.accent: Material.LightBlue
    Material.theme: Material.Light

    property bool mirror

    LayoutMirroring.enabled: mirror
    LayoutMirroring.childrenInherit: true

    Rectangle {
        anchors.fill: parent
        color: "#000000"
    }

    Viewport {
        id: viewport
        anchors.fill: parent

        mainItem: Rectangle {
            anchors.fill: parent

            AsemanFlickable {
                id: flick
                width: parent.width
                anchors.top: header.bottom
                anchors.bottom: parent.bottom
                contentWidth: column.width
                contentHeight: column.height

                Column {
                    id: column
                    width: flick.width

                    MainMenuItem {
                        text: "Right To Left"
                        onClicked: layoutSwitch.checked = !layoutSwitch.checked
                        Switch {
                            id: layoutSwitch
                            anchors.verticalCenter: parent.verticalCenter
                            anchors.right: parent.right
                            onCheckedChanged: mirror = checked
                        }
                    }
                    MainMenuItem {
                        text: "Graphical Components"
                        onClicked: viewport.append(graphicalComponents, {}, "stack")
                    }
                    MainMenuItem {
                        text: "Model Components"
                        onClicked: viewport.append(modelComponents, {}, "ios-bottomdrawer")
                    }
                    MainMenuItem {
                        text: "Non-Graphical Components"
                        onClicked: viewport.append(nonGraphicalComponents, {}, "popup")
                    }
                    MainMenuItem {
                        text: "Static Components"
                        onClicked: viewport.append(staticComponents, {}, "activity")
                    }
                }
            }

            RoundButton {
                anchors.left: parent.left
                anchors.right: parent.right
                anchors.bottom: parent.bottom
                anchors.margins: 10 * Devices.density
                highlighted: true
                text: qsTr("Github")
                onClicked: Qt.openUrlExternally("https://github.com/Aseman-Land/aseman-qt-tools")
            }

            HScrollBar {
                anchors.right: flick.right
                anchors.top: flick.top
                height: flick.height
                width: 6*Devices.density
                color: "#18f"
                scrollArea: flick
            }

            Header {
                id: header
                width: parent.width
                color: "#18f"
                text: qsTr("SlidePageManager")
                shadow: true
            }
        }
    }

    Component {
        id: staticComponents
        StaticComponentsExample {
            anchors.fill: parent
            onAppendRequest: viewport.append(component, {}, "stack")
        }
    }

    Component {
        id: graphicalComponents
        GraphicalComponentsExample {
            anchors.fill: parent
            onAppendRequest: viewport.append(component, {}, "popup")
        }
    }

    Component {
        id: modelComponents
        ModelComponentExamples {
            width: Viewport.viewport.width
            height: Viewport.viewport.height * 0.6
            onAppendRequest: viewport.append(component, {}, "popup")
        }
    }

    Component {
        id: nonGraphicalComponents
        NonGraphicalComponentsExample {
            anchors.fill: parent
            onAppendRequest: viewport.append(component, {}, "activity")
        }
    }
}


================================================
FILE: demos/RegularApp/RegularApp.pro
================================================
QT += quick network
android: QT += androidextras
CONFIG += c++11

SOURCES += main.cpp 
RESOURCES += qml.qrc

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android


================================================
FILE: demos/RegularApp/android/AndroidManifest.xml
================================================
<?xml version="1.0"?>
<manifest package="co.aseman.demo.regular" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="land.aseman.android.AsemanApplication" android:icon="@mipmap/ic_launcher" android:label="RegularApp">
        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="land.aseman.android.AsemanActivity" android:label="RegularApp" android:screenOrientation="unspecified" android:theme="@style/splashScreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <!-- Application arguments -->
            <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
            <!-- Application arguments -->

            <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
            <meta-data android:name="android.app.repository" android:value="default"/>
            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
            <!-- Deploy Qt libs as part of package -->
            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
            <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
            <!-- Run with local libs -->
            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
            <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
            <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
            <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
            <!--  Messages maps -->
            <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
            <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
            <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
            <!--  Messages maps -->

            <!-- Splash screen -->
            <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
            <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
            <!-- Splash screen -->

            <!-- Background running -->
            <!-- Warning: changing this value to true may cause unexpected crashes if the
                          application still try to draw after
                          "applicationStateChanged(Qt::ApplicationSuspended)"
                          signal is sent! -->
            <meta-data android:name="android.app.background_running" android:value="false"/>
            <!-- Background running -->

            <!-- auto screen scale factor -->
            <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
            <!-- auto screen scale factor -->

            <!-- extract android style -->
            <!-- available android:values :
                * full - useful QWidget & Quick Controls 1 apps
                * minimal - useful for Quick Controls 2 apps, it is much faster than "full"
                * none - useful for apps that don't use any of the above Qt modules
                -->
            <meta-data android:name="android.app.extract_android_style" android:value="minimal"/>
            <!-- extract android style -->
    </activity>

    <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->

    </application>

    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="18"/>
    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>

    <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
         Remove the comment if you do not require these default permissions. -->
    <!-- %%INSERT_PERMISSIONS -->

    <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
         Remove the comment if you do not require these default features. -->
    <!-- %%INSERT_FEATURES -->

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

</manifest>


================================================
FILE: demos/RegularApp/android/res/drawable/splash.xml
================================================
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:src="@drawable/splash_image"
        android:gravity="center"
        tools:ignore="ResourceCycle"/>

================================================
FILE: demos/RegularApp/android/res/values/style.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="splashScreenTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:adjustViewBounds">true</item>
        <item name="android:scaleType">centerCrop</item>
    </style>

<!--    
    <style name="AppTheme" parent="@android:style/Theme.Material">
        <item name="android:colorPrimary">#efefef</item>
        <item name="android:colorPrimaryDark">#333333</item>
        <item name="android:colorAccent">#F44336</item> 
    </style>
-->
</resources>


================================================
FILE: demos/RegularApp/global/MainMenuItem.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import QtQuick.Controls 2.3

ItemDelegate {
    id: item
    width: parent.width
    height: 60*Devices.density

    Rectangle {
        width: parent.width
        anchors.bottom: parent.bottom
        height: 1
        color: "#eee"
    }
}


================================================
FILE: demos/RegularApp/global/MainPage.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import AsemanQml.Base 2.0

Item {
    clip: true

    SwipeView {
        id: swipeView
        width: parent.width
        anchors.top: tabBar.bottom
        anchors.bottom: parent.bottom
        onCurrentIndexChanged: {
            BackHandler.removeHandler(swipeView)
            if(currentIndex > 0)
                BackHandler.pushHandler(swipeView, function(){currentIndex = 0})
        }

        QmlControls {}
        Item {}
    }

    TabBar {
        id: tabBar
        width: parent.width
        currentIndex: swipeView.currentIndex
        onCurrentIndexChanged: swipeView.currentIndex = currentIndex

        TabButton { text: qsTr("Home") }
        TabButton { text: qsTr("Page") }
    }
}


================================================
FILE: demos/RegularApp/global/QmlControls.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

Item {

    ColumnLayout {
        anchors.centerIn: parent

        Switch {
            text: qsTr("Switch")
        }

        SpinBox {
        }

        Slider {
            value: 0.5
        }

        CheckBox {
            text: qsTr("Check Box")
        }

        RowLayout {
            anchors.horizontalCenter: parent.horizontalCenter

            Button {
                text: qsTr("Press Me 1")
            }

            Button {
                text: qsTr("Press Me 2")
            }
        }
    }
}


================================================
FILE: demos/RegularApp/graphical/GraphicalComponentsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0
import "../global"

Rectangle {
    id: gcItem
    color: masterPalette.window

    signal appendRequest(variant component)

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            MainMenuItem {
                text: "Side Menu"
                onClicked: appendRequest(sideMenu_component)
            }
            MainMenuItem {
                text: "Show Popup"
                onClicked: msgDialog.visible = true
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Graphical Components")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }

    Popup {
        id: msgDialog
        x: (gcItem.width - width) / 2
        y: (gcItem.height - height) / 2
        width: Math.min(gcItem.width, gcItem.height) / 3 * 2
        height: settingsColumn.implicitHeight + topPadding + bottomPadding
        modal: true
        focus: true

        contentItem: ColumnLayout {
            id: settingsColumn
            spacing: 20
            z: 100

            Label {
                text: "Message"
                font.bold: true
            }

            Label {
                text: "It's just a test message :)"
            }

            RowLayout {
                spacing: 10

                Button {
                    id: okButton
                    text: "Ok"
                    onClicked: msgDialog.close()

                    Material.foreground: Material.LightBlue
                    Material.background: "transparent"
                    Material.elevation: 0

                    Layout.preferredWidth: 0
                    Layout.fillWidth: true
                }
            }
        }
    }

    Component {
        id: sideMenu_component
        SideMenuExample {
            anchors.fill: parent
        }
    }

    Component {
        id: qmlcontrols_component
        Rectangle {
            height: gcItem.height/2
            width: gcItem.width
            NullMouseArea { anchors.fill: parent }
            QmlControls { anchors.fill: parent }
        }
    }
}


================================================
FILE: demos/RegularApp/graphical/SideMenuExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import "../global"

Rectangle {
    color: masterPalette.window

    MainPage {
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("SideMenu")
        shadow: true
    }

    Drawer {
        id: sidebar
        anchors.fill: parent
        delegate: MouseArea {
            anchors.fill: parent

            Rectangle {
                anchors.fill: parent
                color: "#f0f0f0"
            }
        }
    }

    HeaderMenuButton {
        ratio: sidebar.percent
        buttonColor: Qt.rgba(1-ratio, 1-ratio, 1-ratio, 1)
        onClicked: {
            if(sidebar.showed)
                sidebar.discard()
            else
                sidebar.show()
        }
    }
}


================================================
FILE: demos/RegularApp/main.cpp
================================================
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}


================================================
FILE: demos/RegularApp/main.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0

AsemanApplication {
    id: app
    applicationName: "Regular App"
    applicationAbout: "It's an regular app"
    applicationDisplayName: "Regular App"
    applicationVersion: "1.0.0"
    applicationId: "5371c896-7f09-4013-a657-e6338fae82b0"
    organizationDomain: "io.aseman"
    organizationName: "Aseman Team"

    AppWindow {
        visible: true
    }
}


================================================
FILE: demos/RegularApp/models/CountriesModelExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Models 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0
import "../global"

Rectangle {
    color: masterPalette.window
    clip: true

    TextField {
        id: filterBar
        anchors.top: header.bottom
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.margins: 10*Devices.density
        placeholderText: qsTr("Filter...")
    }

    AsemanListView {
        id: listv
        width: parent.width
        anchors.top: filterBar.bottom
        anchors.bottom: parent.bottom
        anchors.topMargin: 10*Devices.density
        clip: true
        model: CountriesModel {
            filter: filterBar.text
        }

        delegate: MainMenuItem {
            width: listv.width
            text: "%1 (+%2)".arg(model.name).arg(model.callingCode)
        }
    }

    HScrollBar {
        anchors.right: listv.right
        anchors.top: listv.top
        height: listv.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: listv
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("CountriesModel")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/models/FileSystemModelExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Models 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0
import "../global"

Rectangle {
    color: masterPalette.window
    clip: true

    Button {
        id: backBtn
        anchors.bottom: parent.bottom
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.margins: 10*Devices.density
        text: qsTr("Parent Folder")
        onClicked: listv.model.folder = listv.model.parentFolder
    }

    AsemanListView {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: backBtn.top
        anchors.topMargin: 10*Devices.density
        clip: true
        model: FileSystemModel {
            folder: AsemanApp.startPath
        }

        delegate: MainMenuItem {
            width: listv.width
            text: model.fileName
            onClicked: {
                if(model.fileIsDir)
                    listv.model.folder = model.filePath
                else
                    Qt.openUrlExternally(model.fileUrl)
            }
        }
    }

    HScrollBar {
        anchors.right: listv.right
        anchors.top: listv.top
        height: listv.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: listv
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("FileSystemModel")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/models/ModelComponentExamples.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Models 2.0
import "../global"

Item {
    id: scItem

    signal appendRequest(variant component)

    Rectangle {
        anchors.fill: parent
        color: masterPalette.window
        opacity: 0.5
    }

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            MainMenuItem {
                text: "CountriesModel"
                onClicked: appendRequest(countriesModel_component)
            }

            MainMenuItem {
                text: "FileSystemModel"
                onClicked: appendRequest(fileSystemModel_component)
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "transparent"
        text: qsTr("Model Components")
        shadow: true
        light: false
        shadowOpacity: 0
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }

    Component {
        id: countriesModel_component
        CountriesModelExample {
            anchors.fill: parent
        }
    }

    Component {
        id: fileSystemModel_component
        FileSystemModelExample {
            anchors.fill: parent
        }
    }
}


================================================
FILE: demos/RegularApp/nongraphical/DownloaderExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Item {

    Downloader {
        id: downloader
        path: linkTxt.text
    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            TextField {
                id: linkTxt
                placeholderText: qsTr("Download Link: http://...")
                enabled: !downloader.downloading
                Layout.fillWidth: true
            }

            Button {
                text: downloader.downloading? "Stop" : "Download"
                Layout.fillWidth: true
                Material.foreground: Material.LightBlue
                onClicked: {
                    if(downloader.downloading)
                        downloader.stop()
                    else
                        downloader.start()
                }
            }

            Label {
                text: qsTr("Downloading to the RAM...\nTo download to memory, use destination property.")
                visible: downloader.downloading
            }

            ProgressBar {
                value: downloader.recievedBytes/downloader.totalBytes
                visible: downloader.downloading
                Layout.fillWidth: true
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Downloader")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/EncrypterExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Item {

    property variant encryptedData: null

    Encrypter {
        id: encrypter
        key: keyTxt.text
    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            TextField {
                id: keyTxt
                placeholderText: qsTr("Encrypt Key")
                Layout.fillWidth: true
            }

            TextArea {
                id: txt
                Layout.fillWidth: true
                Layout.preferredHeight: 200*Devices.density
                enabled: encryptedData == null
            }

            Button {
                text: encryptedData? "Decrypt" : "Encrypt"
                Layout.fillWidth: true
                Material.foreground: Material.LightBlue
                onClicked: {
                    if(encryptedData) {
                        var data = encrypter.decrypt(encryptedData)
                        if(data == "") {
                            txt.color = "#ff0000"
                            txt.text = "No valid key"
                            return
                        }

                        txt.text = data
                        txt.color = "#000000"
                        encryptedData = null
                    } else {
                        encryptedData = encrypter.encrypt(txt.text)
                        txt.text = encryptedData
                    }
                }
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Encrypter")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/ImageColorAnalizorExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: analizer.color!="#000000"? analizer.color : "#ffffff"

    property variant encryptedData: null

    Behavior on color {
        ColorAnimation { easing.type: Easing.OutCubic; duration: 1000 }
    }

    ImageColorAnalizor {
        id: analizer
        method: algorithm.currentIndex
    }

    Connections {
        target: Devices
        onSelectImageResult: analizer.source = Devices.localFilesPrePath + path
    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            id: column
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            Label {
                text: "Algorithm:"
                Layout.fillWidth: true
                font.bold: true
            }

            ComboBox {
                id: algorithm
                Layout.fillWidth: true
                model: ["Normal", "Saturation"]
            }

            Button {
                text: "Select Image"
                Layout.fillWidth: true
                Material.foreground: Material.LightBlue
                onClicked: Devices.getOpenPictures()
            }
        }

        Image {
            anchors.top: column.bottom
            anchors.bottom: parent.bottom
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.margins: 20*Devices.density
            verticalAlignment: Image.AlignTop
            horizontalAlignment: Image.AlignHCenter
            fillMode: Image.PreserveAspectFit
            source: analizer.source
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("ImageColorAnalizor")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/MapDownloaderExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Item {

//    MapDownloader {
//        id: mapDownloader
//        destination: Devices.localFilesPrePath + AsemanApp.tempPath
//        mapProvider: mapProviderCombo.currentIndex
//        size: Qt.size(img.width, img.height)
//        zoom: 16
//    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            id: column
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            ComboBox {
                id: mapProviderCombo
                Layout.fillWidth: true
                model: ["Google Map"]
            }

            TextArea {
                id: altTxt
                placeholderText: qsTr("Altitude")
                Layout.fillWidth: true
            }

            TextField {
                id: longTxt
                placeholderText: qsTr("Longitude")
                Layout.fillWidth: true
            }

            Button {
                text: "Download"
                Layout.fillWidth: true
                Material.foreground: Material.LightBlue
                onClicked: mapDownloader.download( Qt.point(altTxt.text, longTxt.text) )
            }
        }

        Image {
            id: img
            anchors.top: column.bottom
            anchors.bottom: parent.bottom
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.margins: 20*Devices.density
            verticalAlignment: Image.AlignTop
            horizontalAlignment: Image.AlignHCenter
            fillMode: Image.PreserveAspectFit
//            source: mapDownloader.image

            BusyIndicator {
                anchors.centerIn: parent
                width: 40*Devices.density
                height: width
                running: false //mapDownloader.downloading
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("MapDownloader")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/NetworkSleepManagerExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Item {

    NetworkSleepManager {
        id: nwsManager
        host: "aseman.co"
        port: 80
        interval: 5000
        networkManager: true
    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            Label {
                text: nwsManager.available? "Network Available" : "Network Unreachable"
                color: nwsManager.available? "#009900" : "#990000"
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("NetworkSleepManager")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/NonGraphicalComponentsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import "../global"

Rectangle {
    id: scItem
    color: masterPalette.window

    signal appendRequest(variant component)

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            MainMenuItem {
                text: "Downloader"
                onClicked: appendRequest(downloader_component)
            }
            MainMenuItem {
                text: "Encrypter"
                onClicked: appendRequest(encrypter_component)
            }
            MainMenuItem {
                text: "ImageColorAnalizor"
                onClicked: appendRequest(imageColorAnalizor_component)
            }
            MainMenuItem {
                text: "MapDownloader"
                onClicked: appendRequest(mapDownloader_component)
            }
            MainMenuItem {
                text: "NetworkSleepManager"
                onClicked: appendRequest(networkSleepManager_component)
            }
            MainMenuItem {
                text: "Notification"
                onClicked: appendRequest(notification_component)
            }
            MainMenuItem {
                text: "Settings"
                onClicked: appendRequest(settings_component)
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Non-Graphical Components")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }

    Component {
        id: settings_component
        SettingsExample {
            anchors.fill: parent
        }
    }

    Component {
        id: downloader_component
        DownloaderExample {
            anchors.fill: parent
        }
    }

    Component {
        id: encrypter_component
        EncrypterExample {
            anchors.fill: parent
        }
    }

    Component {
        id: imageColorAnalizor_component
        ImageColorAnalizorExample {
            anchors.fill: parent
        }
    }

    Component {
        id: mapDownloader_component
        MapDownloaderExample {
            anchors.fill: parent
        }
    }

    Component {
        id: networkSleepManager_component
        NetworkSleepManagerExample {
            anchors.fill: parent
        }
    }

    Component {
        id: notification_component
        NotificationExample {
            anchors.fill: parent
        }
    }
}


================================================
FILE: demos/RegularApp/nongraphical/NotificationExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Widgets 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Item {

    Notification {
        id: notification
    }

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        ColumnLayout {
            anchors.left: parent.left
            anchors.right: parent.right
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            TextField {
                id: titleTxt
                placeholderText: qsTr("Title")
                Layout.fillWidth: true
            }

            TextArea {
                id: body
                placeholderText: qsTr("Body text")
                Layout.fillWidth: true
                Layout.preferredHeight: 200*Devices.density
            }

            Button {
                text: "Send"
                Layout.fillWidth: true
                Material.foreground: Material.LightBlue
                onClicked: notification.sendNotify(titleTxt.text, body.text, "")
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Notification")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/nongraphical/SettingsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import QtQuick.Controls 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Base 2.0

Item {

    Settings {
        id: settings
        source: AsemanApp.homePath + "/settings.ini"
        category: "General"

        property int number: 10
        property string text: "test Text"
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Settings")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }

    Label {
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.top: header.bottom
        anchors.margins: 10*Devices.density
        text: "Every changes in this page will be saved."
    }

    Column {
        anchors.centerIn: parent

        SpinBox {
            anchors.horizontalCenter: parent.horizontalCenter
            value: settings.number
            onValueChanged: settings.number = value
        }

        TextField {
            anchors.horizontalCenter: parent.horizontalCenter
            text: settings.text
            onTextChanged: settings.text = text
        }
    }
}


================================================
FILE: demos/RegularApp/qml.qrc
================================================
<RCC>
    <qresource prefix="/">
        <file>qtquickcontrols2.conf</file>
        <file>main.qml</file>
        <file>AppWindow.qml</file>
        <file>static/AsemanAppExample.qml</file>
        <file>static/BackHandlerExample.qml</file>
        <file>static/DesktopExample.qml</file>
        <file>static/DevicesExample.qml</file>
        <file>static/StaticComponentsExample.qml</file>
        <file>static/TextToolsExample.qml</file>
        <file>static/ToolsExample.qml</file>
        <file>static/ViewExample.qml</file>
        <file>nongraphical/DownloaderExample.qml</file>
        <file>nongraphical/EncrypterExample.qml</file>
        <file>nongraphical/ImageColorAnalizorExample.qml</file>
        <file>nongraphical/MapDownloaderExample.qml</file>
        <file>nongraphical/NetworkSleepManagerExample.qml</file>
        <file>nongraphical/NonGraphicalComponentsExample.qml</file>
        <file>nongraphical/NotificationExample.qml</file>
        <file>nongraphical/SettingsExample.qml</file>
        <file>models/CountriesModelExample.qml</file>
        <file>models/FileSystemModelExample.qml</file>
        <file>models/ModelComponentExamples.qml</file>
        <file>graphical/GraphicalComponentsExample.qml</file>
        <file>graphical/SideMenuExample.qml</file>
        <file>global/MainMenuItem.qml</file>
        <file>global/MainPage.qml</file>
        <file>global/QmlControls.qml</file>
    </qresource>
</RCC>


================================================
FILE: demos/RegularApp/qtquickcontrols2.conf
================================================
[Controls]
Style=Material

[Universal]
Theme=Dark
Accent=Red

[Material]
Theme=Light
Accent=Blue
 


================================================
FILE: demos/RegularApp/static/AsemanAppExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width
            spacing: 20*Devices.density

            Item { height: 20*Devices.density; width: 10 }
            GroupBox {
                title: qsTr("Paths")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "homePath: <b>" + AsemanApp.homePath + "</b>" }
                    Label { text: "startPath: <b>" + AsemanApp.startPath + "</b>" }
                    Label { text: "appPath: <b>" + AsemanApp.appPath + "</b>" }
                    Label { text: "appFilePath: <b>" + AsemanApp.appFilePath + "</b>" }
                    Label { text: "logPath: <b>" + AsemanApp.logPath + "</b>" }
                    Label { text: "confsPath: <b>" + AsemanApp.confsPath + "</b>" }
                    Label { text: "tempPath: <b>" + AsemanApp.tempPath + "</b>" }
                    Label { text: "backupsPath: <b>" + AsemanApp.backupsPath + "</b>" }
                    Label { text: "cameraPath: <b>" + AsemanApp.cameraPath + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Statuses")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "isDebug: " + (AsemanApp.isDebug? "<b>true</b>" : "false") }
                    Label {
                        text: "appType: <b>" + appTypeName + "</b>"
                        property string appTypeName: {
                            switch(AsemanApp.appType) {
                            case AsemanApp.NoneApplication:
                                return "NoneApplication"
                            case AsemanApp.CoreApplication:
                                return "CoreApplication"
                            case AsemanApp.GuiApplication:
                                return "GuiApplication"
                            case AsemanApp.WidgetApplication:
                                return "WidgetApplication"
                            }
                        }
                    }
                    Label { text: "isRunning: " + (AsemanApp.isRunning? "<b>true</b>" : "false") }
                    Label {
                        text: "applicationState: <b>" + applicationStateName + "</b>"
                        property string applicationStateName: {
                            switch(AsemanApp.applicationState) {
                            case AsemanApp.ApplicationSuspended:
                                return "Suspended"
                            case AsemanApp.ApplicationHidden:
                                return "Hidden"
                            case AsemanApp.ApplicationInactive:
                                return "Inactive"
                            case AsemanApp.ApplicationActive:
                                return "Active"
                            }
                        }
                    }
                    Label { text: "quitOnLastWindowClosed: " + (AsemanApp.quitOnLastWindowClosed? "<b>true</b>" : "false") }
                }
            }

            GroupBox {
                title: qsTr("App Details")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    Label { text: "applicationName: <b>" + AsemanApp.applicationName + "</b>" }
                    Label { text: "applicationVersion: <b>" + AsemanApp.applicationVersion + "</b>" }
                    Label { text: "organizationName: <b>" + AsemanApp.organizationName + "</b>" }
                    Label { text: "organizationDomain: <b>" + AsemanApp.organizationDomain + "</b>" }
                    Label { text: "applicationAbout: <b>" + AsemanApp.applicationAbout + "</b>" }
                    Label { text: "applicationId: <b>" + AsemanApp.applicationId + "</b>" }
                    Label { text: "applicationDisplayName: <b>" + AsemanApp.applicationDisplayName + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Methods")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    RowLayout {
                        Button { text: "back"; onClicked: AsemanApp.back() }
                    }
                }
            }
            Item { height: 20*Devices.density; width: 10 }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("AsemanApp")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/static/BackHandlerExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.7
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0

Item {

    Item {
        id: listv
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom

        Column {
            anchors.left: parent.left
            anchors.top: parent.top
            anchors.margins: 20*Devices.density

            Repeater {
                model: 5
                CheckBox {
                    id: checkBox
                    text: "Check " + index
                    onCheckedChanged: {
                        if(checked)
                            BackHandler.pushHandler(checkBox, function(){checkBox.checked = false})
                        else
                            BackHandler.removeHandler(checkBox)
                    }
                }
            }
        }
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("BackHandler")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "white"
        onClicked: AsemanApp.back()
    }
}


================================================
FILE: demos/RegularApp/static/DesktopExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            Item { height: 20*Devices.density; width: 10 }
            GroupBox {
                title: qsTr("Methods")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    RowLayout {
                        Button { text: "Open File"; onClicked: resultLabel.text = Desktop.getOpenFileName() }
                        Button { text: "Open Files"; onClicked: resultLabel.text = Desktop.getOpenFileNames().join("\n") }
                    }
                    RowLayout {
                        Button { text: "Save File"; onClicked: resultLabel.text = Desktop.getSaveFileName() }
                        Button { text: "Get Directory"; onClicked: resultLabel.text = Desktop.getExistingDirectory() }
                    }
                    RowLayout {
                        Button { text: "Get Font"; onClicked: resultLabel.text = Desktop.getFont() }
                        Button { text: "Get Color"; onClicked: resultLabel.text = Desktop.getColor() }
                    }
                    RowLayout {
                        Button { text: "Get Text"; onClicked: resultLabel.text = Desktop.getText(View.window, "Title", "Enter the text") }
                        Button { text: "Show Menu"; onClicked: resultLabel.text = Desktop.showMenu(["Zero", "One", "", "Three"]) }
                    }
                    RowLayout {
                        Button { text: "YES or NO"; onClicked: resultLabel.text = Desktop.yesOrNo(View.window, "Title", "Just yes or no?") }
                        Button { text: "Show Message"; onClicked: Desktop.showMessage(View.window, "Title", "It's the message") }
                    }
                }
            }

            Item { height: 20*Devices.density; width: 10 }
            Label {
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                text: "Result:"
                font.bold: true
            }

            Label {
                id: resultLabel
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
            }

            Item { height: 20*Devices.density; width: 10 }

            GroupBox {
                title: qsTr("Properties")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    RowLayout {
                        Button { text: "Show Tooltip"; onClicked: Desktop.tooltip = "Just a test tooltip" }
                    }

                    Label {
                        text: "Desktop Session: <b>" + desktopName + "</b>"
                        property string desktopName: {
                            switch(Desktop.desktopSession) {
                            case Desktop.Gnome:
                                return "Unknown"
                            case Desktop.GnomeFallBack:
                                return "GnomeFallBack"
                            case Desktop.Unity:
                                return "Unity"
                            case Desktop.Kde:
                                return "Kde"
                            case Desktop.Plasma:
                                return "Plasma"
                            case Desktop.Windows:
                                return "Windows"
                            case Desktop.Mac:
                                return "Mac"
                            default:
                            case Desktop.Unknown:
                                return "Unknown"
                            }
                        }
                    }
                }
            }

            Item { height: 20*Devices.density; width: 10 }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Desktop")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/static/DevicesExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width
            spacing: 20*Devices.density

            Item { height: 20*Devices.density; width: 10 }
            GroupBox {
                title: qsTr("Device Properties")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "isMobile: " + (Devices.isMobile? "<b>true</b>" : "false") }
                    Label { text: "isTablet: " + (Devices.isTablet? "<b>true</b>" : "false") }
                    Label { text: "isLargeTablet: " + (Devices.isLargeTablet? "<b>true</b>" : "false") }
                    Label { text: "isTouchDevice: " + (Devices.isTouchDevice? "<b>true</b>" : "false") }
                    Label { text: "isDesktop: " + (Devices.isDesktop? "<b>true</b>" : "false") }
                    Label { text: "isMacX: " + (Devices.isMacX? "<b>true</b>" : "false") }
                    Label { text: "isWindows: " + (Devices.isWindows? "<b>true</b>" : "false") }
                    Label { text: "isWindows8: " + (Devices.isWindows8? "<b>true</b>" : "false") }
                    Label { text: "isLinux: " + (Devices.isLinux? "<b>true</b>" : "false") }
                    Label { text: "isAndroid: " + (Devices.isAndroid? "<b>true</b>" : "false") }
                    Label { text: "isIOS: " + (Devices.isIOS? "<b>true</b>" : "false") }
                    Label { text: "isUbuntuTouch: " + (Devices.isUbuntuTouch? "<b>true</b>" : "false") }
                    Label { text: "isWindowsPhone: " + (Devices.isWindowsPhone? "<b>true</b>" : "false") }
                }
            }

            GroupBox {
                title: qsTr("Screen Properties")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "lcdPhysicalSize: <b>" + Math.floor(Devices.lcdPhysicalSize*10)/10 + "</b>" }
                    Label { text: "lcdPhysicalWidth: <b>" + Math.floor(Devices.lcdPhysicalWidth*10)/10 + "</b>" }
                    Label { text: "lcdPhysicalHeight: <b>" + Math.floor(Devices.lcdPhysicalHeight*10)/10 + "</b>" }
                    Label { text: "lcdDpiX: <b>" + Math.floor(Devices.lcdDpiX*10)/10 + "</b>" }
                    Label { text: "lcdDpiY: <b>" + Math.floor(Devices.lcdDpiY*10)/10 + "</b>" }
                    Label { text: "screenSize: <b>" + Devices.screenSize.width + "x" + Devices.screenSize.height + "</b>" }
                    Label { text: "keyboardHeight: <b>" + Devices.keyboardHeight + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Densities")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "density: <b>" + Math.floor(Devices.density*10)/10 + "</b>" }
                    Label { text: "densityDpi: <b>" + Math.floor(Devices.densityDpi*10)/10 + "</b>" }
                    Label { text: "fontDensity: <b>" + Math.floor(Devices.fontDensity*10)/10 + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Operating System")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "transparentStatusBar: <b>" + Devices.transparentStatusBar + "</b>" }
                    Label { text: "transparentNavigationBar: <b>" + Devices.transparentNavigationBar + "</b>" }
                    Label { text: "standardTitleBarHeight: <b>" + Math.floor(Devices.standardTitleBarHeight*10)/10 + "</b>" }
                    Label { text: "statusBarHeight: <b>" + Math.floor(Devices.statusBarHeight*10)/10 + "</b>" }
                    Label { text: "navigationBarHeight: <b>" + Math.floor(Devices.navigationBarHeight*10)/10 + "</b>" }

                    Label { text: "clipboard: <b>" + Devices.clipboard + "</b>" }
                    Label { text: "keyboard: <b>" + Devices.keyboard + "</b>" }

                    Label { text: "deviceName: <b>" + Devices.deviceName + "</b>" }
                    Label { text: "localFilesPrePath: <b>" + Devices.localFilesPrePath + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Paths")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    Label { text: "cameraLocation: <b>" + Devices.cameraLocation + "</b>" }
                    Label { text: "picturesLocation: <b>" + Devices.picturesLocation + "</b>" }
                    Label { text: "musicsLocation: <b>" + Devices.musicsLocation + "</b>" }
                    Label { text: "documentsLocation: <b>" + Devices.documentsLocation + "</b>" }
                    Label { text: "downloadsLocation: <b>" + Devices.downloadsLocation + "</b>" }
                    Label { text: "resourcePath: <b>" + Devices.resourcePathQml + "</b>" }
                    Label { text: "libsPath: <b>" + Devices.libsPath + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Methods")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    RowLayout {
                        Button { text: "showKeyboard"; onClicked: Devices.showKeyboard() }
                        Button { text: "hideKeyboard"; onClicked: Devices.hideKeyboard() }
                    }
                    RowLayout {
                        Button { text: "Share"; onClicked: Devices.share("AsemanQtTools", "It's a message from AsemanQtTools") }
                        Button { text: "Open File"; onClicked: Devices.openFile("/path/to/file") }
                    }
                    RowLayout {
                        Button { text: "Share File"; onClicked: Devices.shareFile("/path/to/file") }
                        Button { text: "Camera"; onClicked: Devices.startCameraPicture() }
                    }
                }
            }
            Item { height: 20*Devices.density; width: 10 }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Devices")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/static/StaticComponentsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import "../global"

Rectangle {
    id: scItem
    color: masterPalette.window

    signal appendRequest(variant component)

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            MainMenuItem {
                text: "AsemanApp"
                onClicked: appendRequest(asemanApp_component)
            }
            MainMenuItem {
                text: "BackHandler"
                onClicked: appendRequest(backHandler_component)
            }
            MainMenuItem {
                text: "Devices"
                onClicked: appendRequest(devices_component)
            }
            MainMenuItem {
                text: "Desktop"
                onClicked: appendRequest(desktop_component)
            }
            MainMenuItem {
                text: "TextTools"
                onClicked: appendRequest(textToolsComponent)
            }
            MainMenuItem {
                text: "Tools"
                onClicked: appendRequest(toolsComponent)
            }
            MainMenuItem {
                text: "View"
                onClicked: appendRequest(view_component)
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Static Components")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }

    Component {
        id: asemanApp_component
        AsemanAppExample {
            anchors.fill: parent
        }
    }

    Component {
        id: backHandler_component
        BackHandlerExample {
            anchors.fill: parent
        }
    }

    Component {
        id: devices_component
        DevicesExample {
            anchors.fill: parent
        }
    }

    Component {
        id: desktop_component
        DesktopExample {
            anchors.fill: parent
        }
    }

    Component {
        id: textToolsComponent
        TextToolsExample {
            anchors.fill: parent
        }
    }

    Component {
        id: toolsComponent
        ToolsExample {
            anchors.fill: parent
        }
    }

    Component {
        id: view_component
        ViewExample {
            anchors.fill: parent
        }
    }
}


================================================
FILE: demos/RegularApp/static/TextToolsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width
            spacing: 20*Devices.density

            Item { height: 20*Devices.density; width: 10 }
            GroupBox {
                title: qsTr("htmlWidth(string)")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter

                ColumnLayout {
                    width: parent.width

                    TextArea {
                        id: htmlText
                        Layout.preferredWidth: parent.width
                        Layout.preferredHeight: 200*Devices.density
                        placeholderText: "Write html code to calculate width"
                    }

                    Label { text: "The width is: " + TextTools.htmlWidth(htmlText.text) }
                }
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("TextTools")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/static/ToolsExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0
import "../global"

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width

            MainMenuItem {
                text: "Visit Documents on Github"
                onClicked: Qt.openUrlExternally("https://github.com/Aseman-Land/aseman-qt-tools/blob/master/documents/tools.md")
            }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("Tools")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/RegularApp/static/ViewExample.qml
================================================
/*
    Copyright (C) 2017 Aseman Team
    http://aseman.co

    AsemanQtTools is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AsemanQtTools is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Rectangle {
    color: masterPalette.window
    clip: true

    AsemanFlickable {
        id: flick
        width: parent.width
        anchors.top: header.bottom
        anchors.bottom: parent.bottom
        contentWidth: column.width
        contentHeight: column.height

        Column {
            id: column
            width: flick.width
            spacing: 20*Devices.density

            Item { height: 20*Devices.density; width: 10 }
            GroupBox {
                title: qsTr("Heights")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: Math.floor(width/(180*Devices.density))

                    Label { text: "statusBarHeight: <b>" + Math.floor(View.statusBarHeight*10)/10 + "</b>" }
                    Label { text: "navigationBarHeight: <b>" + Math.floor(View.navigationBarHeight*10)/10 + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Objects")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    Label { text: "root: <b>" + View.root + "</b>" }
                    Label { text: "window: <b>" + View.window + "</b>" }
                }
            }

            GroupBox {
                title: qsTr("Other")
                width: parent.width - 40*Devices.density
                anchors.horizontalCenter: parent.horizontalCenter
                clip: true

                GridLayout {
                    width: parent.width
                    columns: 1

                    Label {
                        text: "layoutDirection: <b>" + layoutDirectionName + "</b>"
                        property string layoutDirectionName: {
                            switch(View.layoutDirection) {
                            case Qt.LeftToRight:
                                return "LeftToRight"
                            case Qt.RightToLeft:
                                return "RightToLeft"
                            }
                        }
                    }
                    Label { text: "offlineStoragePath: <b>" + View.offlineStoragePath + "</b>" }
                }
            }
            Item { height: 20*Devices.density; width: 10 }
        }
    }

    HScrollBar {
        anchors.right: flick.right
        anchors.top: flick.top
        height: flick.height
        width: 6*Devices.density
        color: "#18f"
        scrollArea: flick
    }

    Header {
        id: header
        width: parent.width
        color: "#18f"
        text: qsTr("View")
        shadow: true
    }

    HeaderMenuButton {
        ratio: 1
        buttonColor: "#ffffff"
        onClicked: BackHandler.back()
    }
}


================================================
FILE: demos/template/app.pro
================================================
QT += quick qml
CONFIG += c++11

QML_IMPORT_PATH += \
    $$PWD/qml/imports

RESOURCES += \
    qml/qml.qrc

SOURCES += \
    main.cpp


================================================
FILE: demos/template/main.cpp
================================================
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.addImportPath(":/imports/");
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}


================================================
FILE: demos/template/qml/MainWindow.qml
================================================
import QtQuick 2.12
import AsemanQml.Controls 2.0
import AsemanQml.Viewport 2.0
import QtQuick.Controls 2.3
import forms 1.0
import models 1.0
import "routes"

AsemanWindow {
    width: 500
    height: 820

    Viewport {
        id: viewport
        anchors.fill: parent
        mainItem: MainForm {
            anchors.fill: parent
            listView.model: ExampleModel {}
            onItemClicked: Viewport.controller.trigger("popup:/dialog/example", {"id": id})
        }
    }

    ViewController {
        viewport: viewport
    }
}


================================================
FILE: demos/template/qml/imports/forms/ErrorDialogForm.ui.qml
================================================
import QtQuick 2.12
import AsemanQml.Base 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import globals 1.0

Item {
    id: element
    width: Constants.width
    height: columnLayout.height

    property alias bodyLabel: bodyLabel
    property alias titleLabel: titleLabel
    property alias repeater: repeater

    signal itemClicked(int index, string title)

    Frame {
        anchors.fill: parent
        opacity: 0.7
    }

    ColumnLayout {
        id: columnLayout
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
        anchors.left: parent.left
        spacing: 0

        ColumnLayout {
            Layout.topMargin: 12
            Layout.fillHeight: true
            Layout.fillWidth: true
            Layout.margins: 10
            spacing: 6

            Label {
                id: titleLabel
                Layout.fillWidth: true
                font.bold: true
                font.pixelSize: 10 * Devices.fontDensity
                horizontalAlignment: Devices.isAndroid ? Text.AlignLeft : Text.AlignHCenter
                wrapMode: Text.WrapAtWordBoundaryOrAnywhere
                text: "Title"
            }

            Label {
                id: bodyLabel
                Layout.fillWidth: true
                Layout.fillHeight: true
                font.pixelSize: 9 * Devices.fontDensity
                horizontalAlignment: Devices.isAndroid ? Text.AlignLeft : Text.AlignHCenter
                wrapMode: Text.WrapAtWordBoundaryOrAnywhere
                text: "Message's body"
            }
        }

        Rectangle {
            Layout.topMargin: 6
            Layout.fillWidth: true
            Layout.preferredHeight: 1
            color: "#88888888"
            visible: !Devices.isAndroid
            opacity: 0.4
        }

        RowLayout {
            spacing: 0
            Layout.fillWidth: true

            Repeater {
                id: repeater
                model: ["Ok"]
                Button {
                    id: btn
                    Layout.fillWidth: true
                    topInset: 0
                    bottomInset: 0
                    leftInset: 0
                    rightInset: 0
                    highlighted: true
                    flat: true
                    hoverEnabled: false
                    text: modelData

                    Connections {
                        target: btn
                        onClicked: element.itemClicked(model.index, modelData)
                    }
                }
            }
        }
    }
}


================================================
FILE: demos/template/qml/imports/forms/MainForm.ui.qml
================================================
import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Viewport 2.0
import globals 1.0

Page {
    width: Constants.width
    height: Constants.height

    property alias listView: listView

    signal itemClicked(int id)

    Label {
        anchors.centerIn: parent
        font.pixelSize: 12 * Devices.fontDensity
        text: qsTr("List is empty") + Translations.refresher
        visible: listView.count == 0
    }

    ListView {
        id: listView
        anchors.top: header.bottom
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.bottom: parent.bottom
        delegate: ItemDelegate {
            id: del
            height: 60
            width: listView.width
            text: model.title

            Connections {
                target: del
                onClicked: itemClicked(model.id)
            }
        }
    }

    Header {
        id: header
        anchors.left: parent.left
        anchors.right: parent.right
        color: Material.primary
        text: qsTr("App") + Translations.refresher
    }
}


================================================
FILE: demos/template/qml/imports/forms/WaitDialog.ui.qml
================================================
import QtQuick 2.12
import AsemanQml.Base 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import globals 1.0

Item {
    id: element
    width: 200 * Devices.density
    height: 150 * Devices.density

    Frame {
        id: dialogBackground
        anchors.fill: parent
        opacity: 0.7
    }

    ColumnLayout {
        id: dialogLayout
        spacing: 4 * Devices.density
        anchors.verticalCenter: parent.verticalCenter
        anchors.horizontalCenter: parent.horizontalCenter

        BusyIndicator {
            id: busyIndicator
            Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
            running: element.visible
        }

        Label {
            id: waitLabel
            text: qsTr("Please Wait...") + Translations.refresher
            Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
            font.pixelSize: 9 * Devices.fontDensity
        }
    }
}


================================================
FILE: demos/template/qml/imports/forms/qmldir
================================================
ErrorDialogForm 1.0 ErrorDialogForm.ui.qml
MainForm 1.0 MainForm.ui.qml
WaitDialog 1.0 WaitDialog.ui.qml


================================================
FILE: demos/template/qml/imports/globals/Colors.qml
================================================
pragma Singleton

import QtQuick 2.10
import AsemanQml.Base 2.0

QtObject {
}


================================================
FILE: demos/template/qml/imports/globals/Constants.qml
================================================
pragma Singleton

import QtQuick 2.10
import AsemanQml.Base 2.0

QtObject {
    readonly property int width: 480
    readonly property int height: 800
    
    readonly property string cachePath: AsemanApp.homePath + "/cache"

    Component.onCompleted: {
        Tools.mkDir(cachePath)
    }
}


================================================
FILE: demos/template/qml/imports/globals/Fonts.qml
================================================
pragma Singleton

import QtQuick 2.10
import AsemanQml.Base 2.0

AsemanObject
{
    property alias ubuntuFont: ubuntu_font.name

    FontLoader { id: ubuntu_font; source: "fonts/Ubuntu-R.ttf" }

    function init() {
    }
}


================================================
FILE: demos/template/qml/imports/globals/GlobalSettings.qml
================================================
pragma Singleton

import QtQuick 2.7
import AsemanQml.Base 2.0

Settings {
        category: "General"
        source: AsemanApp.homePath + "/settings.ini"

        property bool languageInited: false
}



================================================
FILE: demos/template/qml/imports/globals/qmldir
================================================
singleton Constants 1.0 Constants.qml
singleton GlobalSettings 1.0 GlobalSettings.qml
singleton Fonts 1.0 Fonts.qml
singleton Colors 1.0 Colors.qml


================================================
FILE: demos/template/qml/imports/models/ExampleModel.qml
================================================
import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Models 2.0
import requests 1.0
import globals 1.0

AsemanListModel {
    cachePath: Constants.cachePath + "/example.cache"

    ExampleRequest {
        id: req
        allowGlobalBusy: true
    }

    AsemanListModelSource {
        source: req.response
    }
}


================================================
FILE: demos/template/qml/imports/models/qmldir
================================================
 ExampleModel 1.0 ExampleModel.qml


================================================
FILE: demos/template/qml/imports/requests/BaseRequest.qml
================================================
import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Network 2.0
import AsemanQml.Viewport 2.0
import globals 1.0

NetworkRequest {
    id: req
    contentType: 0 //NetworkRequest.TypeJson
    ignoreKeys: ["baseUrl", "refreshingState", "allowGlobalBusy"]
    ignoreRegExp: /^_\w+$/
    headers: {
        "Content-Type": "application/json"
    }

    readonly property string baseUrl: "https://jsonplaceholder.typicode.com"
    readonly property bool refreshingState: req.refreshing
    property bool allowGlobalBusy: false

    property alias _networkManager: networkManager
    property bool _debug: false

    signal refreshRequest()

    onResponseChanged: if (_debug) console.debug(Tools.variantToJson(response))
    onHeadersChanged: if (!refreshing) refreshRequest()
    onRefreshingStateChanged: {
        if (!allowGlobalBusy)
            return;

        if (refreshingState)
            Viewport.controller.waitCount++
        else
            Viewport.controller.waitCount--
    }

    Component.onDestruction: if (refreshingState && allowGlobalBusy) Viewport.controller.waitCount--

    onServerError: {
        try {
            _showError("Server Error", response.message)
        } catch (e) {}
    }
    onClientError: {
        try {
            _showError("Client Error", response.message);
        } catch (e) {}
    }

    function _showError(title, body) {
        Tools.jsDelayCall(500, function() {
            Viewport.controller.trigger("dialog:/general/error", {"title": title, "body": body})
        })
    }

    NetworkRequestManager {
        id: networkManager
    }

    Timer {
        repeat: false
        running: true
        interval: 100
        onTriggered: refreshRequest()
    }
}


================================================
FILE: demos/template/qml/imports/requests/ExampleRequest.qml
================================================
import QtQuick 2.0
import AsemanQml.Base 2.0
import globals 1.0

BaseRequest {
    id: todoRequest
    url: baseUrl + "/todos"

    onRefreshRequest: refresh()

    function refresh() {
        if (refreshing)
            return;

        _networkManager.get(todoRequest);
    }
}


================================================
FILE: demos/template/qml/imports/requests/qmldir
================================================
ExampleRequest 1.0 ExampleRequest.qml


================================================
FILE: demos/template/qml/main.qml
================================================
import QtQuick 2.12
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import globals 1.0

AsemanApplication {
    id: app
    applicationAbout: "It's template app"
    applicationDisplayName: "Template"
    Component.onCompleted: {
        Fonts.init()

        if (Devices.isDesktop) Devices.fontScale = 1.1
        if (Devices.isAndroid) Devices.fontScale = 0.92
        if (Devices.isIOS) Devices.fontScale = 1.1
    }

    MainWindow {
        visible: true
        font.family: Fonts.ubuntuFont
    }
}


================================================
FILE: demos/template/qml/qml.qrc
================================================
<RCC>
    <qresource prefix="/">
        <file>qtquickcontrols2.conf</file>
        <file>imports/forms/ErrorDialogForm.ui.qml</file>
        <file>imports/forms/MainForm.ui.qml</file>
        <file>imports/forms/qmldir</file>
        <file>imports/forms/WaitDialog.ui.qml</file>
        <file>imports/globals/Colors.qml</file>
        <file>imports/globals/Constants.qml</file>
        <file>imports/globals/Fonts.qml</file>
        <file>imports/globals/GlobalSettings.qml</file>
        <file>imports/globals/qmldir</file>
        <file>imports/models/ExampleModel.qml</file>
        <file>imports/models/qmldir</file>
        <file>imports/requests/BaseRequest.qml</file>
        <file>imports/requests/ExampleRequest.qml</file>
        <file>imports/requests/qmldir</file>
        <file>routes/ViewController.qml</file>
        <file>main.qml</file>
        <file>MainWindow.qml</file>
        <file>qml.qrc</file>
        <file>routes/ErrorDialog.qml</file>
        <file>routes/WaitDialog.qml</file>
        <file>imports/globals/fonts/Ubuntu-R.ttf</file>
        <file>routes/ExamplePopup.qml</file>
    </qresource>
</RCC>


================================================
FILE: demos/template/qml/qtquickcontrols2.conf
================================================
[Controls]
Style=IOSStyle

[Material]
Primary=Blue
Accent=Teal
Theme=Light

[IOSStyle]
Primary=Blue
Accent=Blue
Theme=System


================================================
FILE: demos/template/qml/routes/ErrorDialog.qml
================================================
import QtQuick 2.12
import AsemanQml.Base 2.0
import AsemanQml.Viewport 2.0
import forms 1.0

ErrorDialogForm {
    width: Math.min(300, Viewport.viewport.width*0.8)

    property variant buttons
    property string title
    property string body

    titleLabel.text: title
    bodyLabel.text: body
    repeater.model: buttons? buttons : [ qsTr("Ok") + Translations.refresher ]

    onItemClicked: if (!buttons && index == 0) Viewport.viewport.closeLast()
}


================================================
FILE: demos/template/qml/routes/ExamplePopup.qml
================================================
import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import AsemanQml.Viewport 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.0

Page {
    RowLayout {
        anchors.centerIn: parent

        Button {
            text: qsTr("Popup") + Translations.refresher
            onClicked: Viewport.controller.trigger("popup:/dialog/example")
            highlighted: true
        }

        Button {
            text: qsTr("Page") + Translations.refresher
            onClicked: Viewport.controller.trigger("page:/dialog/example")
        }
    }

    Header {
        id: header
        anchors.left: parent.left
        anchors.right: parent.right
        color: Material.primary
        text: qsTr("App") + Translations.refresher

        HeaderMenuButton {
            ratio: 1
            onClicked: Viewport.viewport.closeLast()
        }
    }
}


================================================
FILE: demos/template/qml/routes/ViewController.qml
================================================
import QtQuick 2.0
import AsemanQml.Base 2.0
import AsemanQml.Viewport 2.0

ViewportController {
    id: viewController

    property int waitCount: 0
    property variant waitObj

    onWaitCountChanged: {
        if (waitCount) {
            if (!waitObj) waitObj = trigger("dialog:/wait");
        } else {
            if (waitObj) waitObj.close()
        }
    }

    ViewportControllerRoute {
        route: /dialog:\/general\/error.*/
        source: "ErrorDialog.qml"
    }

    ViewportControllerRoute {
        route: /dialog:\/wait/
        source: "WaitDialog.qml"
    }

    ViewportControllerRoute {
        route: /\w+\:\/dialog\/example.*/
        source: "ExamplePopup.qml"
    }
}



================================================
FILE: demos/template/qml/routes/WaitDialog.qml
================================================
import QtQuick 2.12
import AsemanQml.Viewport 2.0
import forms 1.0

WaitDialog {
    ViewportType.touchToClose: false
    ViewportType.blockBack: true

    function close() {
        ViewportType.open = false
    }
}


================================================
FILE: demos/translation-example/UpdateTranslations.sh
================================================
#! /bin/sh

# Set the home if not already set.
if [ "${MEIKADE_SRC_PATH}" = "" ]; then
    MEIKADE_SRC_PATH="`echo $0 | grep ^/`"
    if [ "$MEIKADE_SRC_PATH" = "" ]; then
    MEIKADE_SRC_PATH="$PWD"/"$0"
    fi
    cd `dirname $MEIKADE_SRC_PATH`
    MEIKADE_SRC_PATH=$PWD
    cd -
fi

cd $MEIKADE_SRC_PATH
for TRANSLATION in ./translations_sources/*.ts
do
    lupdate `find -name '*.cpp' -type f` \
            `find -name '*.qml' -type f` \
            `find -name '*.h' -type f` \
            `find -name '*.ui' -type f` \
            -ts "$TRANSLATION"
done



================================================
FILE: demos/translation-example/main.qml
================================================
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick 2.7
import "."

AsemanApplication {
    id: app
    applicationName: "TrApp"
    applicationAbout: "Translation App"
    applicationDisplayName: "Translation App"
    applicationVersion: "v0.0.1"
    applicationId: "e7c2f1f3-dc2a-4ec2-9268-a863a76df9c3"
    organizationDomain: "aseman.co"
    organizationName: "Aseman Team"
    source: "mainforms/MainWindow.qml"
    
    Settings {
        id: settings
        source: AsemanApp.homePath + "/settings.ini"
        category: "General"

        property string localeName: "fa"
    }

    TranslationManager {
        id: translationManager
        sourceDirectory: "translations"
        delimiters: "-"
        fileName: "lang"
        localeName: settings.localeName

        function refreshLayouts() {
            console.debug(textDirection)
        }
        Component.onCompleted: refreshLayouts()
        onLocaleNameChanged: refreshLayouts()
    }
}


================================================
FILE: demos/translation-example/mainforms/MainWindow.qml
================================================
import AsemanQml.Base 2.0
import AsemanQml.Controls 2.0
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import QtQuick.Controls.Material 2.1
import "."

AsemanWindow {
    id: appWindow
    width: 480
    height: 720
    visible: true

    Material.theme: Material.Light

    Page {
        anchors.fill: parent
        
        Column {
            anchors.centerIn: parent
            spacing: 20*Devices.density
            
            Text {
                anchors.horizontalCenter: parent.horizontalCenter
                text: qsTr("Hello World") + Translations.refresher
            }
            
            ComboBox {
                anchors.horizontalCenter: parent.horizontalCenter
                model: {
                    var res = new Array
                    console.debug( Tools.variantToJson(translationManager.translations) )
                    for(var lang in translationManager.translations)
                        res[res.length] = lang
                    return res
                }
                onCurrentTextChanged: settings.localeName = currentText
            }
        }
    }

    BackAction {
        id: searchAction
    }
}


================================================
FILE: demos/translation-example/translations/lang-en.qm
================================================
<d!`

================================================
FILE: demos/translation-example/translations_sources/lang-en.ts
================================================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
    <name>MainWindow</name>
    <message>
        <source>Hello World</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>


================================================
FILE: demos/translation-example/translations_sources/lang-fa.ts
================================================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fa_IR">
<context>
    <name>MainWindow</name>
    <message>
        <source>Hello World</source>
        <translation>سلام دنیا</translation>
    </message>
</context>
</TS>


================================================
FILE: documents/.gitignore
================================================
/html/


================================================
FILE: documents/AsemanQml.Base.md
================================================
# AsemanQml.Base

 ## AsemanApp

`AsemanApp` static component, provides methods, signals and properties to work with QGuiApplication and Other app functionallity.

### Request Permissions

To request or check permission (only on android) you using `requestPermissions` and `checkPermissions` methods like below example:

````js
AsemanApp.requestPermissions(["android.permission.CAMERA", 
                              "android.permission.READ_EXTERNAL_STORAGE"], 
                             function(res) {
    if (res["android.permission.CAMERA"] === true) {
        ...
    }
    if (res["android.permission.READ_EXTERNAL_STORAGE"] === true) {
        ...
    }
});
````

or

```js
var res = AsemanApp.checkPermissions(["android.permission.CAMERA"]);
if (res["android.permission.CAMERA"] === true) {
    ...
}
```

### Get application related paths

Using below properties you can get standard paths of the OS:

| Property              | Description                                            |
| :-------------------- | ------------------------------------------------------ |
| AsemanApp.homePath    | Returns path to store app configs and other files (ro) |
| AsemanApp.startPath   | Returns working directory of the app (ro)              |
| AsemanApp.appPath     | Returns application directory path (ro)                |
| AsemanApp.appFilePath | Returns application file path (ro)                     |
| AsemanApp.logPath     | Returns suggested dir path to store logs (ro)          |
| AsemanApp.confsPath   | Returns suggested dir path to store configs (ro)       |
| AsemanApp.tempPath    | Returns suggested dir path to store temp files (ro)    |
| AsemanApp.backupsPath | Returns suggested dir path to store backup files (ro)  |
| AsemanApp.cameraPath  | Returns camera dir path (ro)                           |

### Application Details

Set and Read application details like name and organization using below properties

| Property                         | Description                              |
| -------------------------------- | ---------------------------------------- |
| AsemanApp.applicationName        | Application name (rw)                    |
| AsemanApp.applicationVersion     | Version string of the application (rw)   |
| AsemanApp.organizationName       | Application organization name (rw)       |
| AsemanApp.organizationDomain     | Application organization domain (rw)     |
| AsemanApp.applicationAbout       | Short description about application (rw) |
| AsemanApp.applicationDisplayName | Display name of the application (rw)     |

## DesktopTools

Some tools and methods to do some actions on the Desktop operating systems

### System Dialogs

Using below methods you can work with system dialogs

| Method                              | Description                                                  |
| ----------------------------------- | ------------------------------------------------------------ |
| DesktopTools.getOpenFileName()      | Show open file dialog of the operating system                |
| DesktopTools.getOpenFileNames()     | Show open multiple file dialog of the operating system       |
| DesktopTools.getSaveFileName()      | Show save file dialog of the operating system                |
| DesktopTools.getExistingDirectory() | Show select directory dialog of the operating system         |
| DesktopTools.getFont()              | Show operating system font chooser dialog                    |
| DesktopTools.getColor()             | Show operating system color chooser dialog                   |
| DesktopTools.getText()              | Show operating system text input dialog (for example for file renaming) |
| DesktopTools.yesOrNo()              | Show simple message to choose between yes or no              |
| DesktopTools.showMessage()          | Show a simple information message with ok button             |

## Devices

`Devices` component provides many properties, methods and signal to work with device features like screen density, deviceId, device type and ...

### Screen related properties

Below properties return everything related to your screen and also operating system display settings

| Property                  | Description                                                  |
| ------------------------- | ------------------------------------------------------------ |
| Devices.screen            | Returns screen object (ro)                                   |
| Devices.lcdPhysicalSize   | Returns lcd size (ro)                                        |
| Devices.lcdPhysicalWidth  | Returns lcd width (ro)                                       |
| Devices.lcdPhysicalHeight | Returns lcd height (ro)                                      |
| Devices.lcdDpiX           | Returns lcd horizontal dpi (ro)                              |
| Devices.lcdDpiY           | Returns lcd vertical dpi (ro)                                |
| Devices.screenSize        | Returns screen resolution as QSize (ro)                      |
| Devices.densityDpi        | Returns density dpi of the screen (ro)                       |
| Devices.density           | Returns density value of the screen (ro)                     |
| Devices.deviceDensity     | Returns device density of the screen (ro)                    |
| Devices.fontDensity       | Returns suggested density for fonts (ro)                     |
| Devices.fontScale         | Scale all fonts that their size is related to Devices.fontDensity (rw) |

### Device type

To check device type on the QML source codes, use below properties

| Property               | Description                                                  |
| ---------------------- | ------------------------------------------------------------ |
| Devices.isMobile       | Returns true if device is mobile (ro)                        |
| Devices.isLargeTablet  | Returns true if device is a large tablet (ro)                |
| Devices.isTablet       | Returns true if device is any kind of tablet (ro)            |
| Devices.isTouchDevice  | Returns true if device is mobile or tablet (ro)              |
| Devices.isDesktop      | Returns true if device is any kind of desktop devices (mac or pc) (ro) |
| Devices.isMacX         | Returns true if device is mac (ro)                           |
| Devices.isWindows      | Returns true if device is windows (ro)                       |
| Devices.isWindows8     | Returns true if device is windows 8 (ro)                     |
| Devices.isLinux        | Returns true if device is any desktop linux distribution (ro) |
| Devices.isAndroid      | Returns true if device is android (ro)                       |
| Devices.isIOS          | Returns true if device is iOS (ro)                           |
| Devices.isUbuntuTouch  | Returns true if device is ubuntu touch device (ro)           |
| Devices.isWindowsPhone | Returns true if device is windows phone (ro)                 |

### Operating System Parts

To work with any parts of the operating system like statusbar, virtual keyboard and ..., Use below methods

| Property                         | Description                                                  |
| -------------------------------- | ------------------------------------------------------------ |
| Devices.transparentStatusBar     | Returns true if status-bar is transparented on Android (rw)  |
| Devices.transparentNavigationBar | Returns true if navigation-bar is transparented on Android (rw) |
| Devices.standardTitleBarHeight   | Returns standard and best suggested titleBar height (ro)     |
| Devices.statusBarHeight          | Returns status-bar height (ro)                               |
| Devices.navigationBarHeight      | Returns navigation-bar height (ro)                           |
| Devices.clipboard                | Returns clipboard contained text (rw)                        |
| Devices.clipboardUrl             | Returns clipboard contained urls (rw)                        |
| Devices.keyboardHeight           | Returns keyboard height (ro)                                 |
| Devices.keyboard                 | Returns true if keyboard is visible (ro)                     |
| Devices.hideKeyboard()           | Hide keyboard if it visible                                  |
| Devices.showKeyboard()           | Show keyboard if it hidden                                   |



================================================
FILE: documents/Doxyfile
================================================
# Doxyfile 1.8.13

# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
#
# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
# TAG = value [value, ...]
# For lists, items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (\" \").

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------

# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
# for the list of possible encodings.
# The default value is: UTF-8.

DOXYFILE_ENCODING      = UTF-8

# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
# double-quotes, unless you are using Doxywizard) that should identify the
# project for which the documentation is generated. This name is used in the
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME           = QAseman

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER         = 3.0.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF          = "A set of C++ and QML tools and modules that helps you develop your projects easier and better."

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.

PROJECT_LOGO           = logo/logo.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.

OUTPUT_DIRECTORY       = /home/bardia/Projects/Aseman/Tools/QtAsemanTools/documents

# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
# will distribute the generated files over these directories. Enabling this
# option can be useful when feeding doxygen a huge amount of source files, where
# putting all generated files in the same directory would otherwise causes
# performance problems for the file system.
# The default value is: NO.

CREATE_SUBDIRS         = YES

# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
# characters to appear in the names of generated files. If set to NO, non-ASCII
# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
# U+3044.
# The default value is: NO.

ALLOW_UNICODE_NAMES    = NO

# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
# Ukrainian and Vietnamese.
# The default value is: English.

OUTPUT_LANGUAGE        = English

# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.

BRIEF_MEMBER_DESC      = YES

# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
# description of a member or function before the detailed description
#
# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
# The default value is: YES.

REPEAT_BRIEF           = YES

# This tag implements a quasi-intelligent brief description abbreviator that is
# used to form the text in various listings. Each string in this list, if found
# as the leading text of the brief description, will be stripped from the text
# and the result, after processing the whole list, is used as the annotated
# text. Otherwise, the brief description is used as-is. If left blank, the
# following values are used ($name is automatically replaced with the name of
# the entity):The $name class, The $name widget, The $name file, is, provides,
# specifies, contains, represents, a, an and the.

ABBREVIATE_BRIEF       = "The $name class" \
                         "The $name widget" \
                         "The $name file" \
                         is \
                         provides \
                         specifies \
                         contains \
                         represents \
                         a \
                         an \
                         the

# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# doxygen will generate a detailed section even if there is only a brief
# description.
# The default value is: NO.

ALWAYS_DETAILED_SEC    = YES

# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
# The default value is: NO.

INLINE_INHERITED_MEMB  = NO

# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the
# shortest path that makes the file name unique will be used
# The default value is: YES.

FULL_PATH_NAMES        = YES

# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
# Stripping is only done if one of the specified strings matches the left-hand
# part of the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the path to
# strip.
#
# Note that you can specify absolute paths here, but also relative paths, which
# will be relative from the directory where doxygen is started.
# This tag requires that the tag FULL_PATH_NAMES is set to YES.

STRIP_FROM_PATH        = 

# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
# path mentioned in the documentation of a class, which tells the reader which
# header file to include in order to use a class. If left blank only the name of
# the header file containing the class definition is used. Otherwise one should
# specify the list of include paths that are normally passed to the compiler
# using the -I flag.

STRIP_FROM_INC_PATH    = 

# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
# less readable) file names. This can be useful is your file systems doesn't
# support long names like on DOS, Mac, or CD-ROM.
# The default value is: NO.

SHORT_NAMES            = NO

# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
# first line (until the first dot) of a Javadoc-style comment as the brief
# description. If set to NO, the Javadoc-style will behave just like regular Qt-
# style comments (thus requiring an explicit @brief command for a brief
# description.)
# The default value is: NO.

JAVADOC_AUTOBRIEF      = NO

# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
# requiring an explicit \brief command for a brief description.)
# The default value is: NO.

QT_AUTOBRIEF           = YES

# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
# a brief description. This used to be the default behavior. The new default is
# to treat a multi-line C++ comment block as a detailed description. Set this
# tag to YES if you prefer the old behavior instead.
#
# Note that setting this tag to YES also means that rational rose comments are
# not recognized any more.
# The default value is: NO.

MULTILINE_CPP_IS_BRIEF = NO

# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.

INHERIT_DOCS           = YES

# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
# page for each member. If set to NO, the documentation of a member will be part
# of the file/class/namespace that contains it.
# The default value is: NO.

SEPARATE_MEMBER_PAGES  = NO

# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
# uses this value to replace tabs by spaces in code fragments.
# Minimum value: 1, maximum value: 16, default value: 4.

TAB_SIZE               = 4

# This tag can be used to specify a number of aliases that act as commands in
# the documentation. An alias has the form:
# name=value
# For example adding
# "sideeffect=@par Side Effects:\n"
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines.

ALIASES                = 

# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.

TCL_SUBST              = 

# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
# members will be omitted, etc.
# The default value is: NO.

OPTIMIZE_OUTPUT_FOR_C  = NO

# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
# Python sources only. Doxygen will then generate output that is more tailored
# for that language. For instance, namespaces will be presented as packages,
# qualified scopes will look different, etc.
# The default value is: NO.

OPTIMIZE_OUTPUT_JAVA   = NO

# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
# sources. Doxygen will then generate output that is tailored for Fortran.
# The default value is: NO.

OPTIMIZE_FOR_FORTRAN   = NO

# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
# sources. Doxygen will then generate output that is tailored for VHDL.
# The default value is: NO.

OPTIMIZE_OUTPUT_VHDL   = NO

# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.

EXTENSION_MAPPING      = qml=C++

# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
# The default value is: YES.

MARKDOWN_SUPPORT       = YES

# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 0.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.

TOC_INCLUDE_HEADINGS   = 0

# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
# globally by setting AUTOLINK_SUPPORT to NO.
# The default value is: YES.

AUTOLINK_SUPPORT       = YES

# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should set this
# tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string);
# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
# The default value is: NO.

BUILTIN_STL_SUPPORT    = NO

# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
# The default value is: NO.

CPP_CLI_SUPPORT        = NO

# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.

SIP_SUPPORT            = NO

# For Microsoft's IDL there are propget and propput attributes to indicate
# getter and setter methods for a property. Setting this option to YES will make
# doxygen to replace the get and set methods by a property in the documentation.
# This will only work if the methods are indeed getting or setting a simple
# type. If this is not the case, or you want to show the methods anyway, you
# should set this option to NO.
# The default value is: YES.

IDL_PROPERTY_SUPPORT   = YES

# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
# The default value is: NO.

DISTRIBUTE_GROUP_DOC   = NO

# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
# is disabled and one has to add nested compounds explicitly via \ingroup.
# The default value is: NO.

GROUP_NESTED_COMPOUNDS = NO

# Set the SUBGROUPING tag
Download .txt
gitextract_q4s_ssy3/

├── .github/
│   └── workflows/
│       └── qt.yml
├── .gitignore
├── .gitmodules
├── .qmake.conf
├── LICENSE
├── README.md
├── SourceDiary.sh
├── aseman.pri
├── aseman.pro
├── debian/
│   ├── .directory
│   ├── changelog
│   ├── compat
│   ├── control
│   ├── copyright
│   ├── files
│   ├── libqt5asemancore-dev.dirs
│   ├── libqt5asemancore-dev.install
│   ├── libqt5asemancore.dirs
│   ├── libqt5asemancore.install
│   ├── libqt5asemangeo-dev.dirs
│   ├── libqt5asemangeo-dev.install
│   ├── libqt5asemangeo.dirs
│   ├── libqt5asemangeo.install
│   ├── libqt5asemangui-dev.dirs
│   ├── libqt5asemangui-dev.install
│   ├── libqt5asemangui.dirs
│   ├── libqt5asemangui.install
│   ├── libqt5asemanmultimedia-dev.dirs
│   ├── libqt5asemanmultimedia-dev.install
│   ├── libqt5asemanmultimedia.dirs
│   ├── libqt5asemanmultimedia.install
│   ├── libqt5asemannetwork-dev.dirs
│   ├── libqt5asemannetwork-dev.install
│   ├── libqt5asemannetwork.dirs
│   ├── libqt5asemannetwork.install
│   ├── libqt5asemanqml-dev.dirs
│   ├── libqt5asemanqml-dev.install
│   ├── libqt5asemanqml.dirs
│   ├── libqt5asemanqml.install
│   ├── libqt5asemansql-dev.dirs
│   ├── libqt5asemansql-dev.install
│   ├── libqt5asemansql.dirs
│   ├── libqt5asemansql.install
│   ├── libqt5asemanwidgets-dev.dirs
│   ├── libqt5asemanwidgets-dev.install
│   ├── libqt5asemanwidgets.dirs
│   ├── libqt5asemanwidgets.install
│   ├── qml-module-asemanawesome.dirs
│   ├── qml-module-asemanawesome.install
│   ├── qml-module-asemanbase.dirs
│   ├── qml-module-asemanbase.install
│   ├── qml-module-asemancontrols.dirs
│   ├── qml-module-asemancontrols.install
│   ├── qml-module-asemanmaterial.dirs
│   ├── qml-module-asemanmaterial.install
│   ├── qml-module-asemanmodels.dirs
│   ├── qml-module-asemanmodels.install
│   ├── qml-module-asemanmodern.dirs
│   ├── qml-module-asemanmodern.install
│   ├── qml-module-asemanmultimedia.dirs
│   ├── qml-module-asemanmultimedia.install
│   ├── qml-module-asemannetwork.dirs
│   ├── qml-module-asemannetwork.install
│   ├── qml-module-asemansql.dirs
│   ├── qml-module-asemansql.install
│   ├── qml-module-asemanviewport.dirs
│   ├── qml-module-asemanviewport.install
│   ├── qml-module-asemanwidgets.dirs
│   ├── qml-module-asemanwidgets.install
│   ├── qt5aseman-wizards-qtcreator.dirs
│   ├── qt5aseman-wizards-qtcreator.install
│   ├── rules
│   └── source/
│       └── format
├── demos/
│   ├── RegularApp/
│   │   ├── .gitignore
│   │   ├── AppWindow.qml
│   │   ├── RegularApp.pro
│   │   ├── android/
│   │   │   ├── AndroidManifest.xml
│   │   │   └── res/
│   │   │       ├── drawable/
│   │   │       │   └── splash.xml
│   │   │       └── values/
│   │   │           └── style.xml
│   │   ├── global/
│   │   │   ├── MainMenuItem.qml
│   │   │   ├── MainPage.qml
│   │   │   └── QmlControls.qml
│   │   ├── graphical/
│   │   │   ├── GraphicalComponentsExample.qml
│   │   │   └── SideMenuExample.qml
│   │   ├── main.cpp
│   │   ├── main.qml
│   │   ├── models/
│   │   │   ├── CountriesModelExample.qml
│   │   │   ├── FileSystemModelExample.qml
│   │   │   └── ModelComponentExamples.qml
│   │   ├── nongraphical/
│   │   │   ├── DownloaderExample.qml
│   │   │   ├── EncrypterExample.qml
│   │   │   ├── ImageColorAnalizorExample.qml
│   │   │   ├── MapDownloaderExample.qml
│   │   │   ├── NetworkSleepManagerExample.qml
│   │   │   ├── NonGraphicalComponentsExample.qml
│   │   │   ├── NotificationExample.qml
│   │   │   └── SettingsExample.qml
│   │   ├── qml.qrc
│   │   ├── qtquickcontrols2.conf
│   │   └── static/
│   │       ├── AsemanAppExample.qml
│   │       ├── BackHandlerExample.qml
│   │       ├── DesktopExample.qml
│   │       ├── DevicesExample.qml
│   │       ├── StaticComponentsExample.qml
│   │       ├── TextToolsExample.qml
│   │       ├── ToolsExample.qml
│   │       └── ViewExample.qml
│   ├── template/
│   │   ├── app.pro
│   │   ├── main.cpp
│   │   └── qml/
│   │       ├── MainWindow.qml
│   │       ├── imports/
│   │       │   ├── forms/
│   │       │   │   ├── ErrorDialogForm.ui.qml
│   │       │   │   ├── MainForm.ui.qml
│   │       │   │   ├── WaitDialog.ui.qml
│   │       │   │   └── qmldir
│   │       │   ├── globals/
│   │       │   │   ├── Colors.qml
│   │       │   │   ├── Constants.qml
│   │       │   │   ├── Fonts.qml
│   │       │   │   ├── GlobalSettings.qml
│   │       │   │   └── qmldir
│   │       │   ├── models/
│   │       │   │   ├── ExampleModel.qml
│   │       │   │   └── qmldir
│   │       │   └── requests/
│   │       │       ├── BaseRequest.qml
│   │       │       ├── ExampleRequest.qml
│   │       │       └── qmldir
│   │       ├── main.qml
│   │       ├── qml.qrc
│   │       ├── qtquickcontrols2.conf
│   │       └── routes/
│   │           ├── ErrorDialog.qml
│   │           ├── ExamplePopup.qml
│   │           ├── ViewController.qml
│   │           └── WaitDialog.qml
│   └── translation-example/
│       ├── UpdateTranslations.sh
│       ├── main.qml
│       ├── mainforms/
│       │   └── MainWindow.qml
│       ├── translations/
│       │   ├── lang-en.qm
│       │   └── lang-fa.qm
│       └── translations_sources/
│           ├── lang-en.ts
│           └── lang-fa.ts
├── documents/
│   ├── .gitignore
│   ├── AsemanQml.Base.md
│   └── Doxyfile
├── examples/
│   └── examples.pro
├── index.html
├── marketplace/
│   ├── manifest.json
│   └── marketplace.md
├── src/
│   ├── CMakeLists.txt
│   ├── android/
│   │   ├── android.pro
│   │   ├── java/
│   │   │   ├── READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt
│   │   │   ├── java.pro
│   │   │   └── src/
│   │   │       ├── com/
│   │   │       │   └── hmkcode/
│   │   │       │       └── android/
│   │   │       │           └── image/
│   │   │       │               └── RealPathUtil.java
│   │   │       └── io/
│   │   │           └── aseman/
│   │   │               └── android/
│   │   │                   ├── AsemanActivity.java
│   │   │                   ├── AsemanApplication.java
│   │   │                   ├── AsemanBootBroadcast.java
│   │   │                   ├── AsemanJavaLayer.java
│   │   │                   ├── AsemanMultimedia.java
│   │   │                   ├── AsemanQtService.java
│   │   │                   ├── AsemanService.java
│   │   │                   ├── AsemanServiceDelegate.java
│   │   │                   └── extra/
│   │   │                       ├── AsemanCameraCapture.java
│   │   │                       └── AsemanLocationListener.java
│   │   └── java-qt6/
│   │       ├── READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt
│   │       ├── java-qt6.pro
│   │       └── src/
│   │           ├── com/
│   │           │   └── hmkcode/
│   │           │       └── android/
│   │           │           └── image/
│   │           │               └── RealPathUtil.java
│   │           └── io/
│   │               └── aseman/
│   │                   └── android/
│   │                       ├── AsemanActivity.java
│   │                       ├── AsemanApplication.java
│   │                       ├── AsemanBootBroadcast.java
│   │                       ├── AsemanJavaLayer.java
│   │                       ├── AsemanMultimedia.java
│   │                       ├── AsemanQtService.java
│   │                       ├── AsemanService.java
│   │                       ├── AsemanServiceDelegate.java
│   │                       └── extra/
│   │                           ├── AsemanCameraCapture.java
│   │                           └── AsemanLocationListener.java
│   ├── asemanqml/
│   │   ├── CMakeLists.txt
│   │   ├── asemanqml.pri
│   │   ├── asemanqml.pro
│   │   ├── awesome/
│   │   │   ├── Awesome/
│   │   │   │   └── Awesome.qml
│   │   │   ├── CMakeLists.txt
│   │   │   ├── awesome.pri
│   │   │   ├── awesome.pro
│   │   │   ├── awesomeplugin.cpp
│   │   │   ├── awesomeplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanawesome.qrc
│   │   │   └── qmldir
│   │   ├── base/
│   │   │   ├── Base/
│   │   │   │   ├── AsemanFlickable.qml
│   │   │   │   ├── AsemanGridView.qml
│   │   │   │   ├── AsemanListView.qml
│   │   │   │   ├── BackAction.qml
│   │   │   │   ├── CachedImage.qml
│   │   │   │   ├── CoverList.qml
│   │   │   │   ├── CrashController.qml
│   │   │   │   ├── DelayPropertySwitch.qml
│   │   │   │   ├── FileSystemView.qml
│   │   │   │   ├── MaterialFrame.qml
│   │   │   │   ├── NullMouseArea.qml
│   │   │   │   ├── PointMapListener.qml
│   │   │   │   ├── RoundedImage.qml
│   │   │   │   ├── RoundedItem.qml
│   │   │   │   ├── SelectableList.qml
│   │   │   │   ├── ShadowRectangle.qml
│   │   │   │   └── qmldir
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemandelegateswitch.cpp
│   │   │   ├── asemandelegateswitch.h
│   │   │   ├── asemanqmlplugin.cpp
│   │   │   ├── asemanqmlplugin.h
│   │   │   ├── asemanqttoolsitembase.cpp
│   │   │   ├── asemanqttoolsitembase.h
│   │   │   ├── base.pri
│   │   │   ├── base.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanqml.qrc
│   │   │   └── qmldir
│   │   ├── controls/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Controls/
│   │   │   │   ├── AsemanApplication.qml
│   │   │   │   ├── AsemanWindow.qml
│   │   │   │   ├── CircularProgressBar.qml
│   │   │   │   ├── DateTimeChooser.qml
│   │   │   │   ├── Drawer.qml
│   │   │   │   ├── DynamicTabBar.qml
│   │   │   │   ├── ExtendedFab.qml
│   │   │   │   ├── HScrollBar.qml
│   │   │   │   ├── Header.qml
│   │   │   │   ├── HeaderMenuButton.qml
│   │   │   │   ├── Helper.qml
│   │   │   │   ├── HelperPoint.qml
│   │   │   │   ├── MenuIcon.qml
│   │   │   │   ├── PanelDrawer.qml
│   │   │   │   ├── PanelFlicker.qml
│   │   │   │   ├── Slider.qml
│   │   │   │   ├── TabView.qml
│   │   │   │   ├── TextArea.qml
│   │   │   │   ├── TextCursorArea.qml
│   │   │   │   ├── TextField.qml
│   │   │   │   ├── Tooltip.qml
│   │   │   │   ├── private/
│   │   │   │   │   └── GlobalBusyDialog.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanqttoolsitemcontrols.cpp
│   │   │   ├── asemanqttoolsitemcontrols.h
│   │   │   ├── controls.pri
│   │   │   ├── controls.pro
│   │   │   ├── controlsplugin.cpp
│   │   │   ├── controlsplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemancontrols.qrc
│   │   │   └── qmldir
│   │   ├── controls_beta/
│   │   │   ├── Beta/
│   │   │   │   ├── AsemanApplication.qml
│   │   │   │   ├── AsemanWindow.qml
│   │   │   │   ├── BottomDrawer.qml
│   │   │   │   ├── BusyIndicator.qml
│   │   │   │   ├── Button.qml
│   │   │   │   ├── CheckBox.qml
│   │   │   │   ├── CheckBoxDelegate.qml
│   │   │   │   ├── ColumnLayout.qml
│   │   │   │   ├── ComboBox.qml
│   │   │   │   ├── ComboBoxDelegate.qml
│   │   │   │   ├── Dialog.qml
│   │   │   │   ├── DialogScene.qml
│   │   │   │   ├── FloatPage.qml
│   │   │   │   ├── Footer.qml
│   │   │   │   ├── FooterButton.qml
│   │   │   │   ├── Header.qml
│   │   │   │   ├── HeaderMenuButton.qml
│   │   │   │   ├── Icon.qml
│   │   │   │   ├── ItemDelegate.qml
│   │   │   │   ├── Label.qml
│   │   │   │   ├── Menu.qml
│   │   │   │   ├── MenuButton.qml
│   │   │   │   ├── MenuIcon.qml
│   │   │   │   ├── MenuPopup.qml
│   │   │   │   ├── Page.qml
│   │   │   │   ├── Private/
│   │   │   │   │   ├── AbstractViewportScene.qml
│   │   │   │   │   ├── FreeGeometryViewportScene.qml
│   │   │   │   │   ├── FreeSizeViewportScene.qml
│   │   │   │   │   └── SnappedViewportScene.qml
│   │   │   │   ├── ProgressBar.qml
│   │   │   │   ├── RadioButton.qml
│   │   │   │   ├── RowLayout.qml
│   │   │   │   ├── ScrollBar.qml
│   │   │   │   ├── ScrollView.qml
│   │   │   │   ├── Slider.qml
│   │   │   │   ├── StackPage.qml
│   │   │   │   ├── SwipeView.qml
│   │   │   │   ├── Switch.qml
│   │   │   │   ├── SwitchDelegate.qml
│   │   │   │   ├── TabBar.qml
│   │   │   │   ├── TabButton.qml
│   │   │   │   ├── TextArea.qml
│   │   │   │   ├── TextField.qml
│   │   │   │   ├── ViewportContainer.qml
│   │   │   │   ├── Window.qml
│   │   │   │   ├── qmldir
│   │   │   │   └── styles/
│   │   │   │       └── simple/
│   │   │   │           ├── BottomDrawerStyle.qml
│   │   │   │           ├── BusyIndicatorStyle.qml
│   │   │   │           ├── ButtonStyle.qml
│   │   │   │           ├── CheckBoxDelegateStyle.qml
│   │   │   │           ├── CheckBoxStyle.qml
│   │   │   │           ├── ComboBoxDelegateStyle.qml
│   │   │   │           ├── ComboBoxPopupStyle.qml
│   │   │   │           ├── ComboBoxStyle.qml
│   │   │   │           ├── DialogSceneStyle.qml
│   │   │   │           ├── DialogStyle.qml
│   │   │   │           ├── FastDropShadow.qml
│   │   │   │           ├── FloatPageStyle.qml
│   │   │   │           ├── FooterButtonStyle.qml
│   │   │   │           ├── FooterStyle.qml
│   │   │   │           ├── HeaderStyle.qml
│   │   │   │           ├── IconStyle.qml
│   │   │   │           ├── ItemDelegateStyle.qml
│   │   │   │           ├── LabelStyle.qml
│   │   │   │           ├── MenuButtonStyle.qml
│   │   │   │           ├── MenuPopupStyle.qml
│   │   │   │           ├── MenuStyle.qml
│   │   │   │           ├── PageStyle.qml
│   │   │   │           ├── ProgressBarStyle.qml
│   │   │   │           ├── RadioButtonStyle.qml
│   │   │   │           ├── ScrollBarStyle.qml
│   │   │   │           ├── ScrollViewStyle.qml
│   │   │   │           ├── SliderStyle.qml
│   │   │   │           ├── StackPageStyle.qml
│   │   │   │           ├── SwipeViewStyle.qml
│   │   │   │           ├── SwitchDelegateStyle.qml
│   │   │   │           ├── SwitchStyle.qml
│   │   │   │           ├── TabBarStyle.qml
│   │   │   │           ├── TabButtonStyle.qml
│   │   │   │           ├── TextAreaStyle.qml
│   │   │   │           └── TextFieldStyle.qml
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanqttoolsitemcontrolsbeta.cpp
│   │   │   ├── asemanqttoolsitemcontrolsbeta.h
│   │   │   ├── asemanquickabstractbutton.cpp
│   │   │   ├── asemanquickabstractbutton.h
│   │   │   ├── asemanquickabstractstyle.cpp
│   │   │   ├── asemanquickabstractstyle.h
│   │   │   ├── asemanquickboxsize.cpp
│   │   │   ├── asemanquickboxsize.h
│   │   │   ├── asemanquickcolumnlayout.cpp
│   │   │   ├── asemanquickcolumnlayout.h
│   │   │   ├── asemanquickcontrolitem.cpp
│   │   │   ├── asemanquickcontrolitem.h
│   │   │   ├── asemanquicklayout.cpp
│   │   │   ├── asemanquicklayout.h
│   │   │   ├── asemanquickmainpalette.cpp
│   │   │   ├── asemanquickmainpalette.h
│   │   │   ├── asemanquickradiobuttoncontrol.cpp
│   │   │   ├── asemanquickradiobuttoncontrol.h
│   │   │   ├── asemanquickradiobuttongroup.cpp
│   │   │   ├── asemanquickradiobuttongroup.h
│   │   │   ├── asemanquickrowlayout.cpp
│   │   │   ├── asemanquickrowlayout.h
│   │   │   ├── asemanquicksceneitem.cpp
│   │   │   ├── asemanquicksceneitem.h
│   │   │   ├── asemanquickscrollviewcore.cpp
│   │   │   ├── asemanquickscrollviewcore.h
│   │   │   ├── asemanquickstyleattachedproperty.cpp
│   │   │   ├── asemanquickstyleattachedproperty.h
│   │   │   ├── asemanquickstyleditem.cpp
│   │   │   ├── asemanquickstyleditem.h
│   │   │   ├── beta.pri
│   │   │   ├── controls_beta.pri
│   │   │   ├── controls_beta.pro
│   │   │   ├── controlsbetaplugin.cpp
│   │   │   ├── controlsbetaplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemancontrols_beta.qrc
│   │   │   └── qmldir
│   │   ├── graphicaleffects/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GraphicalEffects/
│   │   │   │   ├── Qt5/
│   │   │   │   │   ├── Colorize.qml
│   │   │   │   │   ├── Desaturate.qml
│   │   │   │   │   ├── DropShadow.qml
│   │   │   │   │   ├── FastBlur.qml
│   │   │   │   │   ├── LevelAdjust.qml
│   │   │   │   │   ├── OpacityMask.qml
│   │   │   │   │   ├── RadialGradient.qml
│   │   │   │   │   ├── ThresholdMask.qml
│   │   │   │   │   └── qmldir
│   │   │   │   └── Qt6/
│   │   │   │       ├── Colorize.qml
│   │   │   │       ├── Desaturate.qml
│   │   │   │       ├── DropShadow.qml
│   │   │   │       ├── FastBlur.qml
│   │   │   │       ├── LevelAdjust.qml
│   │   │   │       ├── OpacityMask.qml
│   │   │   │       ├── RadialGradient.qml
│   │   │   │       ├── ThresholdMask.qml
│   │   │   │       └── qmldir
│   │   │   ├── asemangraphicaleffectsplugin.cpp
│   │   │   ├── asemangraphicaleffectsplugin.h
│   │   │   ├── asemanqttoolsitemgraphicaleffects.cpp
│   │   │   ├── asemanqttoolsitemgraphicaleffects.h
│   │   │   ├── graphicaleffects.pri
│   │   │   ├── graphicaleffects.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemangraphicaleffects.qrc
│   │   │   └── qmldir
│   │   ├── import/
│   │   │   └── AsemanQml/
│   │   │       ├── Awesome/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Base/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Controls/
│   │   │       │   ├── Beta/
│   │   │       │   │   ├── plugins.qmltypes
│   │   │       │   │   └── qmldir
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── GraphicalEffects/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── MaterialIcons/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Models/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Modern/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Multimedia/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Network/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Sql/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       ├── Viewport/
│   │   │       │   ├── plugins.qmltypes
│   │   │       │   └── qmldir
│   │   │       └── Widgets/
│   │   │           ├── plugins.qmltypes
│   │   │           └── qmldir
│   │   ├── materialicons/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MaterialIcons/
│   │   │   │   └── MaterialIcons.qml
│   │   │   ├── materialicons.pri
│   │   │   ├── materialicons.pro
│   │   │   ├── materialiconsplugin.cpp
│   │   │   ├── materialiconsplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmaterialicons.qrc
│   │   │   └── qmldir
│   │   ├── models/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanabstractquicklistmodelhint.cpp
│   │   │   ├── asemanabstractquicklistmodelhint.h
│   │   │   ├── asemanmodelsplugin.cpp
│   │   │   ├── asemanmodelsplugin.h
│   │   │   ├── asemanqttoolsitemmodels.cpp
│   │   │   ├── asemanqttoolsitemmodels.h
│   │   │   ├── asemanquicklistmodel.cpp
│   │   │   ├── asemanquicklistmodel.h
│   │   │   ├── asemanquicklistmodelcamelcasehint.cpp
│   │   │   ├── asemanquicklistmodelcamelcasehint.h
│   │   │   ├── asemanquicklistmodelcopyhint.cpp
│   │   │   ├── asemanquicklistmodelcopyhint.h
│   │   │   ├── asemanquicklistmodeldeletehint.cpp
│   │   │   ├── asemanquicklistmodeldeletehint.h
│   │   │   ├── asemanquicklistmodelformathint.cpp
│   │   │   ├── asemanquicklistmodelformathint.h
│   │   │   ├── asemanquicklistmodelsource.cpp
│   │   │   ├── asemanquicklistmodelsource.h
│   │   │   ├── models.pri
│   │   │   ├── models.pro
│   │   │   ├── plugins.qmltypes
│   │   │   └── qmldir
│   │   ├── modern/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Modern/
│   │   │   │   ├── FancyNavigationBar.qml
│   │   │   │   ├── FancyPage.qml
│   │   │   │   ├── FancySearchBar.qml
│   │   │   │   ├── FastDropShadow.qml
│   │   │   │   ├── FastRectengleShadow.qml
│   │   │   │   ├── LazyList.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanqttoolsitemmodern.cpp
│   │   │   ├── asemanqttoolsitemmodern.h
│   │   │   ├── modern.pri
│   │   │   ├── modern.pro
│   │   │   ├── modernplugin.cpp
│   │   │   ├── modernplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmodern.qrc
│   │   │   └── qmldir
│   │   ├── multimedia/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Multimedia/
│   │   │   │   ├── VideoPlayer.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanmultimediaplugin.cpp
│   │   │   ├── asemanmultimediaplugin.h
│   │   │   ├── asemanqttoolsitemmultimedia.cpp
│   │   │   ├── asemanqttoolsitemmultimedia.h
│   │   │   ├── multimedia.pri
│   │   │   ├── multimedia.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanmultimedia.qrc
│   │   │   └── qmldir
│   │   ├── network/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemannetworkplugin.cpp
│   │   │   ├── asemannetworkplugin.h
│   │   │   ├── asemanqttoolsitemnetwork.cpp
│   │   │   ├── asemanqttoolsitemnetwork.h
│   │   │   ├── network.pri
│   │   │   ├── network.pro
│   │   │   ├── plugins.qmltypes
│   │   │   └── qmldir
│   │   ├── sql/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── asemanqttoolsitemsql.cpp
│   │   │   ├── asemanqttoolsitemsql.h
│   │   │   ├── asemanquicksqlobject.cpp
│   │   │   ├── asemanquicksqlobject.h
│   │   │   ├── asemansqlplugin.cpp
│   │   │   ├── asemansqlplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmldir
│   │   │   ├── sql.pri
│   │   │   └── sql.pro
│   │   ├── viewport/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Viewport/
│   │   │   │   ├── AbstractViewportType.qml
│   │   │   │   ├── AndroidActivityViewport.qml
│   │   │   │   ├── AndroidBottomDrawerViewport.qml
│   │   │   │   ├── AndroidDefaultPagesViewport.qml
│   │   │   │   ├── AndroidDialogViewport.qml
│   │   │   │   ├── IOSBottomDrawerViewport.qml
│   │   │   │   ├── IOSContextMenuViewport.qml
│   │   │   │   ├── IOSDialogViewport.qml
│   │   │   │   ├── IOSNormalViewport.qml
│   │   │   │   ├── IOSPopupViewport.qml
│   │   │   │   ├── NoneViewport.qml
│   │   │   │   ├── SplitedViewport.qml
│   │   │   │   ├── Viewport.qml
│   │   │   │   ├── ViewportController.qml
│   │   │   │   ├── ViewportPage.qml
│   │   │   │   └── qmldir
│   │   │   ├── asemanabstractviewporttype.cpp
│   │   │   ├── asemanabstractviewporttype.h
│   │   │   ├── asemanqttoolsitemviewport.cpp
│   │   │   ├── asemanqttoolsitemviewport.h
│   │   │   ├── asemanviewport.cpp
│   │   │   ├── asemanviewport.h
│   │   │   ├── asemanviewportcontroller.cpp
│   │   │   ├── asemanviewportcontroller.h
│   │   │   ├── asemanviewportcontrollerroute.cpp
│   │   │   ├── asemanviewportcontrollerroute.h
│   │   │   ├── asemanviewportitem.cpp
│   │   │   ├── asemanviewportitem.h
│   │   │   ├── asemanviewportplugin.cpp
│   │   │   ├── asemanviewportplugin.h
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmake_asemanviewport.qrc
│   │   │   ├── qmldir
│   │   │   ├── viewport.pri
│   │   │   └── viewport.pro
│   │   └── widgets/
│   │       ├── CMakeLists.txt
│   │       ├── asemanqttoolsitemwidgets.cpp
│   │       ├── asemanqttoolsitemwidgets.h
│   │       ├── asemanwidgetsplugin.cpp
│   │       ├── asemanwidgetsplugin.h
│   │       ├── plugins.qmltypes
│   │       ├── qmldir
│   │       ├── widgets.pri
│   │       └── widgets.pro
│   ├── core/
│   │   ├── CMakeLists.txt
│   │   ├── aseman_macros.h
│   │   ├── asemanabstractlistmodel.cpp
│   │   ├── asemanabstractlistmodel.h
│   │   ├── asemanautostartmanager.cpp
│   │   ├── asemanautostartmanager.h
│   │   ├── asemancalendarconverter.cpp
│   │   ├── asemancalendarconverter.h
│   │   ├── asemancalendarconvertercore.cpp
│   │   ├── asemancalendarconvertercore.h
│   │   ├── asemancalendarmodel.cpp
│   │   ├── asemancalendarmodel.h
│   │   ├── asemancore_global.h
│   │   ├── asemancoreresource_lib.qrc
│   │   ├── asemancountriesmodel.cpp
│   │   ├── asemancountriesmodel.h
│   │   ├── asemandebugobjectcounter.cpp
│   │   ├── asemandebugobjectcounter.h
│   │   ├── asemanencrypter.cpp
│   │   ├── asemanencrypter.h
│   │   ├── asemanfilesystemmodel.cpp
│   │   ├── asemanfilesystemmodel.h
│   │   ├── asemanglobals.h
│   │   ├── asemanhashobject.cpp
│   │   ├── asemanhashobject.h
│   │   ├── asemanlistmodel.cpp
│   │   ├── asemanlistmodel.h
│   │   ├── asemanlistobject.cpp
│   │   ├── asemanlistobject.h
│   │   ├── asemanlistrecord.cpp
│   │   ├── asemanlistrecord.h
│   │   ├── asemanmapobject.cpp
│   │   ├── asemanmapobject.h
│   │   ├── asemanmixedlistmodel.cpp
│   │   ├── asemanmixedlistmodel.h
│   │   ├── asemanqtlogger.cpp
│   │   ├── asemanqtlogger.h
│   │   ├── asemanrefresherobject.cpp
│   │   ├── asemanrefresherobject.h
│   │   ├── asemansettings.cpp
│   │   ├── asemansettings.h
│   │   ├── asemansimpleqtcryptor.cpp
│   │   ├── asemansimpleqtcryptor.h
│   │   ├── core.pri
│   │   ├── core.pro
│   │   ├── files/
│   │   │   └── countries.csv
│   │   └── private/
│   │       └── serpent_sbox.h
│   ├── geo/
│   │   ├── CMakeLists.txt
│   │   ├── asemangeo_global.h
│   │   ├── asemanlocationlistener.cpp
│   │   ├── asemanlocationlistener.h
│   │   ├── geo.pri
│   │   ├── geo.pro
│   │   └── private/
│   │       ├── asemanabstractlocationlistenercore.cpp
│   │       ├── asemanabstractlocationlistenercore.h
│   │       ├── asemanandroidlocationlistenercore.cpp
│   │       ├── asemanandroidlocationlistenercore.h
│   │       ├── asemanqtlocationlistenercore.cpp
│   │       └── asemanqtlocationlistenercore.h
│   ├── gui/
│   │   ├── CMakeLists.txt
│   │   ├── asemanapplication.cpp
│   │   ├── asemanapplication.h
│   │   ├── asemandevices.cpp
│   │   ├── asemandevices.h
│   │   ├── asemanglobaltranslations.cpp
│   │   ├── asemanglobaltranslations.h
│   │   ├── asemangui_global.h
│   │   ├── asemanimagecoloranalizor.cpp
│   │   ├── asemanimagecoloranalizor.h
│   │   ├── asemanjavalayer.cpp
│   │   ├── asemanjavalayer.h
│   │   ├── asemankeyhandler.cpp
│   │   ├── asemankeyhandler.h
│   │   ├── asemanmacmanager.h
│   │   ├── asemanmacmanager.mm
│   │   ├── asemanmimeapps.cpp
│   │   ├── asemanmimeapps.h
│   │   ├── asemanmimedata.cpp
│   │   ├── asemanmimedata.h
│   │   ├── asemanobjectiveclayer.h
│   │   ├── asemanobjectiveclayer.mm
│   │   ├── asemantexttools.cpp
│   │   ├── asemantexttools.h
│   │   ├── asemantitlebarcolorgrabber.cpp
│   │   ├── asemantitlebarcolorgrabber.h
│   │   ├── asemantools.cpp
│   │   ├── asemantools.h
│   │   ├── asemantranslationmanager.cpp
│   │   ├── asemantranslationmanager.h
│   │   ├── asemanwindowdetails.cpp
│   │   ├── asemanwindowdetails.h
│   │   ├── gui.pri
│   │   └── gui.pro
│   ├── httpserver/
│   │   ├── asemanhttpserver.cpp
│   │   ├── asemanhttpserver.h
│   │   ├── asemanhttpserver_global.h
│   │   └── httpserver.pro
│   ├── multimedia/
│   │   ├── CMakeLists.txt
│   │   ├── asemanandroidmultimedia.cpp
│   │   ├── asemanandroidmultimedia.h
│   │   ├── asemanaudioencodersettings.cpp
│   │   ├── asemanaudioencodersettings.h
│   │   ├── asemanaudiorecorder.cpp
│   │   ├── asemanaudiorecorder.h
│   │   ├── asemancameracapture.cpp
│   │   ├── asemancameracapture.h
│   │   ├── asemanmultimedia_global.h
│   │   ├── asemanmultimediadatabase.cpp
│   │   ├── asemanmultimediadatabase.h
│   │   ├── multimedia.pri
│   │   ├── multimedia.pro
│   │   └── private/
│   │       ├── asemanabstractcameracapturecore.cpp
│   │       ├── asemanabstractcameracapturecore.h
│   │       ├── asemanandroidcameracapturecore.cpp
│   │       ├── asemanandroidcameracapturecore.h
│   │       ├── asemannullcameracapturecore.cpp
│   │       └── asemannullcameracapturecore.h
│   ├── network/
│   │   ├── CMakeLists.txt
│   │   ├── asemandownloader.cpp
│   │   ├── asemandownloader.h
│   │   ├── asemanfiledownloaderqueue.cpp
│   │   ├── asemanfiledownloaderqueue.h
│   │   ├── asemanfiledownloaderqueueitem.cpp
│   │   ├── asemanfiledownloaderqueueitem.h
│   │   ├── asemanhostchecker.cpp
│   │   ├── asemanhostchecker.h
│   │   ├── asemannetwork_global.h
│   │   ├── asemannetworkmanager.cpp
│   │   ├── asemannetworkmanager.h
│   │   ├── asemannetworkmanageritem.cpp
│   │   ├── asemannetworkmanageritem.h
│   │   ├── asemannetworkproxy.cpp
│   │   ├── asemannetworkproxy.h
│   │   ├── asemannetworkquickobject.cpp
│   │   ├── asemannetworkquickobject.h
│   │   ├── asemannetworkrequestmanager.cpp
│   │   ├── asemannetworkrequestmanager.h
│   │   ├── asemannetworkrequestobject.cpp
│   │   ├── asemannetworkrequestobject.h
│   │   ├── asemannetworkrequestreply.cpp
│   │   ├── asemannetworkrequestreply.h
│   │   ├── asemannetworksleepmanager.cpp
│   │   ├── asemannetworksleepmanager.h
│   │   ├── asemansocketinterface.cpp
│   │   ├── asemansocketinterface.h
│   │   ├── network.pri
│   │   └── network.pro
│   ├── qml/
│   │   ├── CMakeLists.txt
│   │   ├── asemanapplicationitem.cpp
│   │   ├── asemanapplicationitem.h
│   │   ├── asemanapplicationsingleton.cpp
│   │   ├── asemanapplicationsingleton.h
│   │   ├── asemanbackhandler.cpp
│   │   ├── asemanbackhandler.h
│   │   ├── asemandevicesitem.cpp
│   │   ├── asemandevicesitem.h
│   │   ├── asemandragarea.cpp
│   │   ├── asemandragarea.h
│   │   ├── asemandragobject.cpp
│   │   ├── asemandragobject.h
│   │   ├── asemanfileresourcemanager.cpp
│   │   ├── asemanfileresourcemanager.h
│   │   ├── asemanitemgrabber.cpp
│   │   ├── asemanitemgrabber.h
│   │   ├── asemanmouseeventlistener.cpp
│   │   ├── asemanmouseeventlistener.h
│   │   ├── asemanprocess.cpp
│   │   ├── asemanprocess.h
│   │   ├── asemanproxycomponent.cpp
│   │   ├── asemanproxycomponent.h
│   │   ├── asemanqmlengine.cpp
│   │   ├── asemanqmlengine.h
│   │   ├── asemanqmlimage.cpp
│   │   ├── asemanqmlimage.h
│   │   ├── asemanqttools.cpp
│   │   ├── asemanqttools.h
│   │   ├── asemanquickobject.cpp
│   │   ├── asemanquickobject.h
│   │   ├── asemanquickview.cpp
│   │   ├── asemanquickview.h
│   │   ├── asemanquickviewwrapper.cpp
│   │   ├── asemanquickviewwrapper.h
│   │   ├── asemantools_global.h
│   │   ├── asemantoolsitem.cpp
│   │   ├── asemantoolsitem.h
│   │   ├── private/
│   │   │   ├── osxviewcontroller.h
│   │   │   ├── osxviewcontroller.mm
│   │   │   └── quickios/
│   │   │       ├── qidevice.cpp
│   │   │       ├── qidevice.h
│   │   │       ├── qidevice.mm
│   │   │       ├── qiimagepicker.cpp
│   │   │       ├── qiimagepicker.h
│   │   │       ├── qisystemdispatcher.cpp
│   │   │       ├── qisystemdispatcher.h
│   │   │       ├── qisystemutils.mm
│   │   │       ├── qiviewdelegate.h
│   │   │       ├── qiviewdelegate.mm
│   │   │       ├── quickios.cpp
│   │   │       ├── quickios.h
│   │   │       └── quickios.pri
│   │   ├── qml.pri
│   │   ├── qml.pro
│   │   └── qtsingleapplication/
│   │       ├── qtlocalpeer.cpp
│   │       ├── qtlocalpeer.h
│   │       ├── qtlockedfile.cpp
│   │       ├── qtlockedfile.h
│   │       ├── qtlockedfile_unix.cpp
│   │       ├── qtlockedfile_win.cpp
│   │       ├── qtsingleapplication.cpp
│   │       ├── qtsingleapplication.h
│   │       ├── qtsinglecoreapplication.cpp
│   │       └── qtsinglecoreapplication.h
│   ├── sql/
│   │   ├── CMakeLists.txt
│   │   ├── asemansql_global.h
│   │   ├── asemansqlobject.cpp
│   │   ├── asemansqlobject.h
│   │   ├── sql.pri
│   │   └── sql.pro
│   ├── src.pri
│   ├── src.pro
│   ├── styles/
│   │   ├── iosstyle/
│   │   │   ├── ApplicationWindow.qml
│   │   │   ├── BoxShadow.qml
│   │   │   ├── BusyIndicator.qml
│   │   │   ├── Button.qml
│   │   │   ├── CheckBox.qml
│   │   │   ├── CheckDelegate.qml
│   │   │   ├── CheckIndicator.qml
│   │   │   ├── ComboBox.qml
│   │   │   ├── CursorDelegate.qml
│   │   │   ├── DelayButton.qml
│   │   │   ├── Dial.qml
│   │   │   ├── Dialog.qml
│   │   │   ├── DialogButtonBox.qml
│   │   │   ├── Drawer.qml
│   │   │   ├── ElevationEffect.qml
│   │   │   ├── FastDropShadow.qml
│   │   │   ├── Frame.qml
│   │   │   ├── GroupBox.qml
│   │   │   ├── ItemDelegate.qml
│   │   │   ├── Label.qml
│   │   │   ├── Menu.qml
│   │   │   ├── MenuBar.qml
│   │   │   ├── MenuBarItem.qml
│   │   │   ├── MenuItem.qml
│   │   │   ├── MenuSeparator.qml
│   │   │   ├── Page.qml
│   │   │   ├── PageIndicator.qml
│   │   │   ├── Pane.qml
│   │   │   ├── Popup.qml
│   │   │   ├── ProgressBar.qml
│   │   │   ├── RadioButton.qml
│   │   │   ├── RadioDelegate.qml
│   │   │   ├── RadioIndicator.qml
│   │   │   ├── RangeSlider.qml
│   │   │   ├── RectangularGlow.qml
│   │   │   ├── RoundButton.qml
│   │   │   ├── ScrollBar.qml
│   │   │   ├── ScrollIndicator.qml
│   │   │   ├── Slider.qml
│   │   │   ├── SliderHandle.qml
│   │   │   ├── SpinBox.qml
│   │   │   ├── StackView.qml
│   │   │   ├── SwipeDelegate.qml
│   │   │   ├── SwipeView.qml
│   │   │   ├── Switch.qml
│   │   │   ├── SwitchDelegate.qml
│   │   │   ├── SwitchIndicator.qml
│   │   │   ├── TabBar.qml
│   │   │   ├── TabButton.qml
│   │   │   ├── TextArea.qml
│   │   │   ├── TextField.qml
│   │   │   ├── ToolBar.qml
│   │   │   ├── ToolButton.qml
│   │   │   ├── ToolSeparator.qml
│   │   │   ├── ToolTip.qml
│   │   │   ├── Tumbler.qml
│   │   │   ├── iosstyle.pri
│   │   │   ├── iosstyle.pro
│   │   │   ├── plugins.qmltypes
│   │   │   ├── qmldir
│   │   │   ├── qquickiosstyleripple.cpp
│   │   │   ├── qquickiosstyleripple_p.h
│   │   │   ├── qquickiosstylestyle.cpp
│   │   │   ├── qquickiosstylestyle_ios.h
│   │   │   ├── qquickiosstylestyle_ios.mm
│   │   │   ├── qquickiosstylestyle_p.h
│   │   │   ├── qquickiosstyletheme.cpp
│   │   │   ├── qquickiosstyletheme_p.h
│   │   │   ├── qt_attribution.json
│   │   │   ├── qtquickcontrols2iosstylestyleplugin.cpp
│   │   │   ├── qtquickcontrols2iosstylestyleplugin.qrc
│   │   │   └── shaders/
│   │   │       ├── +glslcore/
│   │   │       │   └── RectangularGlow.frag
│   │   │       ├── +hlsl/
│   │   │       │   └── RectangularGlow.frag
│   │   │       └── RectangularGlow.frag
│   │   └── styles.pro
│   ├── widgets/
│   │   ├── CMakeLists.txt
│   │   ├── asemanandroidnativenotification.cpp
│   │   ├── asemanandroidnativenotification.h
│   │   ├── asemandesktoptools.cpp
│   │   ├── asemandesktoptools.h
│   │   ├── asemanfonthandler.cpp
│   │   ├── asemanfonthandler.h
│   │   ├── asemankdewallet.cpp
│   │   ├── asemankdewallet.h
│   │   ├── asemanlinuxnativenotification.cpp
│   │   ├── asemanlinuxnativenotification.h
│   │   ├── asemanmacnativenotification.cpp
│   │   ├── asemanmacnativenotification.h
│   │   ├── asemannativenotification.cpp
│   │   ├── asemannativenotification.h
│   │   ├── asemannativenotificationitem.cpp
│   │   ├── asemannativenotificationitem.h
│   │   ├── asemannotification.cpp
│   │   ├── asemannotification.h
│   │   ├── asemansystemtray.cpp
│   │   ├── asemansystemtray.h
│   │   ├── asemantaskbarbutton.cpp
│   │   ├── asemantaskbarbutton.h
│   │   ├── asemanwidgets_global.h
│   │   ├── private/
│   │   │   ├── asemanabstracttaskbarbuttonengine.cpp
│   │   │   ├── asemanabstracttaskbarbuttonengine.h
│   │   │   ├── asemanmactaskbarbuttonengine.cpp
│   │   │   ├── asemanmactaskbarbuttonengine.h
│   │   │   ├── asemanunitytaskbarbuttonengine.cpp
│   │   │   ├── asemanunitytaskbarbuttonengine.h
│   │   │   ├── asemanwintaskbarbuttonengine.cpp
│   │   │   └── asemanwintaskbarbuttonengine.h
│   │   ├── widgets.pri
│   │   └── widgets.pro
│   └── wizards/
│       ├── qtcreator/
│       │   ├── qtasemanapplication/
│       │   │   ├── CMakeLists.txt
│       │   │   ├── android/
│       │   │   │   ├── AndroidManifest.xml
│       │   │   │   ├── android.pri
│       │   │   │   ├── build.gradle
│       │   │   │   └── res/
│       │   │   │       ├── .directory
│       │   │   │       ├── drawable/
│       │   │   │       │   └── splash.xml
│       │   │   │       └── values/
│       │   │   │           └── style.xml
│       │   │   ├── app.pro
│       │   │   ├── app.qbs
│       │   │   ├── full/
│       │   │   │   ├── qml/
│       │   │   │   │   ├── MainWindow.qml
│       │   │   │   │   ├── imports/
│       │   │   │   │   │   ├── forms/
│       │   │   │   │   │   │   ├── ErrorDialogForm.ui.qml
│       │   │   │   │   │   │   ├── MainForm.ui.qml
│       │   │   │   │   │   │   ├── WaitDialog.ui.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   ├── globals/
│       │   │   │   │   │   │   ├── Colors.qml
│       │   │   │   │   │   │   ├── Constants.qml
│       │   │   │   │   │   │   ├── Fonts.qml
│       │   │   │   │   │   │   ├── GlobalSettings.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   ├── models/
│       │   │   │   │   │   │   ├── ExampleModel.qml
│       │   │   │   │   │   │   └── qmldir
│       │   │   │   │   │   └── requests/
│       │   │   │   │   │       ├── BaseRequest.qml
│       │   │   │   │   │       ├── ExampleRequest.qml
│       │   │   │   │   │       └── qmldir
│       │   │   │   │   ├── main.qml
│       │   │   │   │   ├── qml.qrc
│       │   │   │   │   ├── qtquickcontrols2.conf
│       │   │   │   │   └── routes/
│       │   │   │   │       ├── ErrorDialog.qml
│       │   │   │   │       ├── ExamplePopup.qml
│       │   │   │   │       ├── ViewController.qml
│       │   │   │   │       └── WaitDialog.qml
│       │   │   │   └── wizard.json
│       │   │   ├── ios/
│       │   │   │   ├── Info.plist
│       │   │   │   ├── Launch.xib
│       │   │   │   ├── ios.pri
│       │   │   │   ├── osxviewcontroller.h
│       │   │   │   └── osxviewcontroller.mm
│       │   │   ├── main.cpp
│       │   │   ├── qtquickcontrols2.conf
│       │   │   └── simple/
│       │   │       ├── qml/
│       │   │       │   ├── MainForm.ui.qml
│       │   │       │   ├── MainWindow.qml
│       │   │       │   ├── main.qml
│       │   │       │   ├── qml.qrc
│       │   │       │   └── qtquickcontrols2.conf
│       │   │       └── wizard.json
│       │   └── qtcreator.pro
│       └── wizards.pro
├── sync.profile
└── tests/
    ├── auto/
    │   ├── auto.pro
    │   └── cmake/
    │       └── cmake.pro
    └── tests.pro
Download .txt
SYMBOL INDEX (1354 symbols across 257 files)

FILE: demos/RegularApp/main.cpp
  function main (line 4) | int main(int argc, char *argv[])

FILE: demos/template/main.cpp
  function main (line 4) | int main(int argc, char *argv[])

FILE: src/android/java-qt6/src/com/hmkcode/android/image/RealPathUtil.java
  class RealPathUtil (line 29) | public class RealPathUtil {
    method getRealPathFromURI_API19 (line 31) | @SuppressLint("NewApi")
    method getRealPathFromURI_API11to18 (line 59) | @SuppressLint("NewApi")
    method getRealPathFromURI_BelowAPI11 (line 79) | public static String getRealPathFromURI_BelowAPI11(Context context, Ur...

FILE: src/android/java-qt6/src/io/aseman/android/AsemanActivity.java
  class AsemanActivity (line 58) | public class AsemanActivity extends QtActivity
    method AsemanActivity (line 73) | public AsemanActivity() {
    method getActivityInstance (line 77) | public static AsemanActivity getActivityInstance() {
    method transparentStatusBar (line 81) | public boolean transparentStatusBar() {
    method transparentNavigationBar (line 85) | public boolean transparentNavigationBar() {
    method createNotificationChannel (line 89) | public String createNotificationChannel(String channelId ,String chann...
    method startNotification (line 103) | public boolean startNotification(int id, String title, String body, St...
    method stopNotification (line 135) | public boolean stopNotification(int id)
    method setLayoutNoLimit (line 144) | boolean setLayoutNoLimit(boolean stt)
    method setStatusBarColor (line 159) | boolean setStatusBarColor(int color)
    method setTransparentStatusBar (line 171) | boolean setTransparentStatusBar(boolean stt)
    method setTransparentNavigationBar (line 188) | boolean setTransparentNavigationBar(boolean stt)
    method setKeepScreenOn (line 205) | public void setKeepScreenOn(boolean status) {
    method onActivityResult (line 213) | @Override
    method getPath (line 226) | public String getPath(Uri uri) {
    method onCreate (line 258) | @Override
    method onNewIntent (line 298) | @Override
    method checkIntent (line 305) | protected void checkIntent(Intent intent)
    method onStart (line 324) | @Override
    method onRestart (line 331) | @Override
    method onResume (line 338) | @Override
    method onPause (line 345) | @Override
    method onStop (line 352) | @Override
    method onDestroy (line 359) | @Override

FILE: src/android/java-qt6/src/io/aseman/android/AsemanApplication.java
  class AsemanApplication (line 27) | public class AsemanApplication extends QtApplication
    method onCreate (line 32) | public void onCreate(){
    method getAppContext (line 38) | public static Context getAppContext() {
    method instance (line 42) | public static Context instance() {

FILE: src/android/java-qt6/src/io/aseman/android/AsemanBootBroadcast.java
  class AsemanBootBroadcast (line 27) | public class AsemanBootBroadcast extends BroadcastReceiver {
    method onReceive (line 28) | @Override

FILE: src/android/java-qt6/src/io/aseman/android/AsemanJavaLayer.java
  class AsemanJavaLayer (line 66) | public class AsemanJavaLayer
    method _sendNote (line 68) | private static native void _sendNote( String title, String msg );
    method _sendImage (line 69) | private static native void _sendImage( String path );
    method _sendDeepLink (line 70) | private static native void _sendDeepLink(String link);
    method _activityPaused (line 71) | private static native void _activityPaused();
    method _activityStopped (line 72) | private static native void _activityStopped();
    method _activityResumed (line 73) | private static native void _activityResumed();
    method _activityStarted (line 74) | private static native void _activityStarted();
    method _activityRestarted (line 75) | private static native void _activityRestarted();
    method _activityDestroyed (line 76) | private static native void _activityDestroyed();
    method _selectImageResult (line 77) | private static native void _selectImageResult( String path );
    method _keyboardVisiblityChanged (line 78) | private static native void _keyboardVisiblityChanged(int height);
    method AsemanJavaLayer (line 81) | public AsemanJavaLayer() {
    method activityPaused (line 84) | public static void activityPaused(){
    method activityStopped (line 89) | public static void activityStopped(){
    method activityResumed (line 94) | public static void activityResumed(){
    method activityStarted (line 99) | public static void activityStarted(){
    method activityRestarted (line 104) | public static void activityRestarted(){
    method activityDestroyed (line 109) | public static void activityDestroyed(){
    method keyboardVisiblityChanged (line 114) | public static void keyboardVisiblityChanged(int height){
    method sendDeepLink (line 119) | public static void sendDeepLink(String link){
    method sendNote (line 124) | public static void sendNote( String title, String msg ) {
    method setKeepScreenOn (line 134) | public static void setKeepScreenOn(boolean status) {
    method menuHeight (line 147) | public static int menuHeight()
    method sendImage (line 157) | public static void sendImage( Uri data ) {
    method selectImageResult (line 179) | public static void selectImageResult( String path ) {
    method packageName (line 187) | public String packageName()
    method deviceName (line 194) | public String deviceName() {
    method setImplemented (line 204) | boolean setImplemented(boolean stt) {
    method deviceId (line 209) | public String deviceId() {
    method capitalize (line 214) | private String capitalize(String s) {
    method getContext (line 226) | public static Context getContext() {
    method getLastImages (line 236) | public String getLastImages(int offset, int count)
    method killService (line 263) | boolean killService(String serviceName)
    method startQtService (line 286) | boolean startQtService()
    method stopQtService (line 301) | boolean stopQtService()
    method sharePaper (line 314) | boolean sharePaper( String title, String msg )
    method shareFile (line 333) | boolean shareFile(String path, String type)
    method openFile (line 361) | boolean openFile( String path, String type )
    method getMetrics (line 384) | DisplayMetrics getMetrics()
    method lcdDpiX (line 395) | double lcdDpiX()
    method densityDpi (line 400) | int densityDpi()
    method density (line 405) | float density()
    method screenSizeWidth (line 410) | int screenSizeWidth()
    method screenSizeHeight (line 415) | int screenSizeHeight()
    method statusBarHeight (line 420) | int statusBarHeight() {
    method navigationBarHeight (line 430) | int navigationBarHeight() {
    method isTablet (line 440) | boolean isTablet()
    method getSizeName (line 448) | int getSizeName()
    method getOpenPictures (line 468) | boolean getOpenPictures()
    method startCamera (line 482) | boolean startCamera( String output )
    method callNumber (line 496) | boolean callNumber( String number )
    method transparentStatusBar (line 509) | boolean transparentStatusBar()
    method transparentNavigationBar (line 514) | boolean transparentNavigationBar()
    method release (line 519) | boolean release()
    method setTransparentNavigationBar (line 524) | boolean setTransparentNavigationBar(boolean stt)
    method setTransparentStatusBar (line 538) | boolean setTransparentStatusBar(boolean stt)
    method createNotificationChannel (line 552) | public String createNotificationChannel(String channelId ,String chann...
    method startForeground (line 565) | boolean startForeground(int id, String title, String body, String icon...
    method stopForeground (line 572) | boolean stopForeground(boolean removeNotification)
    method startNotification (line 581) | boolean startNotification(int id, String title, String body, String ic...
    method stopNotification (line 591) | boolean stopNotification(int id)
    method getContactList (line 601) | String getContactList() {

FILE: src/android/java-qt6/src/io/aseman/android/AsemanMultimedia.java
  class AsemanMultimedia (line 34) | public class AsemanMultimedia
    method cursorToMusicJson (line 63) | private String cursorToMusicJson(Cursor cursor) {
    method cursorToAlbumJson (line 88) | private String cursorToAlbumJson(Cursor cursor) {
    method cursorToArtistJson (line 109) | private String cursorToArtistJson(Cursor cursor) {
    method getAllMusics (line 126) | public String getAllMusics() {
    method getAllAlbums (line 144) | public String getAllAlbums() {
    method getAllArtists (line 162) | public String getAllArtists() {
    method getArtistAlbums (line 180) | public String getArtistAlbums(String artistId) {
    method getArtistSongs (line 198) | public String getArtistSongs(String artistId) {
    method getAlbumSongs (line 216) | public String getAlbumSongs(String albumId) {
    method setImplemented (line 234) | public boolean setImplemented(boolean stt) {

FILE: src/android/java-qt6/src/io/aseman/android/AsemanQtService.java
  class AsemanQtService (line 58) | public class AsemanQtService extends QtService {
    method getServiceInstance (line 64) | public static AsemanQtService getServiceInstance() {
    method onCreate (line 68) | @Override
    method createNotificationChannel (line 74) | public String createNotificationChannel(String channelId ,String chann...
    method startForeground (line 88) | public boolean startForeground(int id, String title, String msg, Strin...
    method startNotification (line 109) | public boolean startNotification(int id, String title, String body, St...
    method stopNotification (line 140) | public boolean stopNotification(int id)

FILE: src/android/java-qt6/src/io/aseman/android/AsemanService.java
  class AsemanService (line 58) | public class AsemanService extends Service
    method onCreate (line 92) | @Override
    method getServiceInstance (line 108) | public static AsemanService getServiceInstance() {
    method onStartCommand (line 112) | @Override
    method onBind (line 118) | @Override
    method onDestroy (line 123) | @Override
    method startApp (line 132) | private void startApp(){
    method loadApplication (line 237) | @SuppressLint("NewApi")
    method copyFile (line 288) | static private void copyFile(InputStream inputStream, OutputStream out...
    method copyAsset (line 299) | private void copyAsset(String source, String destination)
    method createBundledBinary (line 322) | private static void createBundledBinary(String source, String destinat...
    method cleanCacheIfNecessary (line 344) | private boolean cleanCacheIfNecessary(String pluginsPrefix, long packa...
    method extractBundledPluginsAndImports (line 367) | private void extractBundledPluginsAndImports(String pluginsPrefix)
    method deleteRecursively (line 430) | private void deleteRecursively(File directory)
    method cleanOldCacheIfNecessary (line 445) | private void cleanOldCacheIfNecessary(String oldLocalPrefix, String lo...
    method splitCamelCase (line 469) | static String splitCamelCase(String sp) {

FILE: src/android/java-qt6/src/io/aseman/android/AsemanServiceDelegate.java
  class AsemanServiceDelegate (line 41) | public class AsemanServiceDelegate
    method loadApplication (line 58) | public boolean loadApplication(Service service, ClassLoader classLoade...
    method debugLog (line 118) | public void debugLog(String msg)
    method startApplication (line 123) | public boolean startApplication()
    method QtNativeNativeLibrariesDir (line 147) | public static String QtNativeNativeLibrariesDir(Service service)
    method QtNativeStartApplication (line 160) | public static boolean QtNativeStartApplication(String params,
    method startQtApplication (line 181) | public static native void startQtApplication(String params, String env);
    method finishQtApplication (line 182) | public static native void finishQtApplication();

FILE: src/android/java-qt6/src/io/aseman/android/extra/AsemanCameraCapture.java
  class AsemanCameraCapture (line 51) | public class AsemanCameraCapture
    method _imageCaptured (line 55) | public native void _imageCaptured(int id, String path);
    method capture (line 57) | public void capture(final int id, final String path, final boolean fro...
    method getContext (line 74) | public static Context getContext() {
    method takePhoto (line 84) | private void takePhoto(final int actionId, final String path, final in...
    method savePicture (line 156) | public boolean savePicture(byte[] data, String filePath) {
    method openCamera (line 170) | private Camera openCamera(final int type) {

FILE: src/android/java-qt6/src/io/aseman/android/extra/AsemanLocationListener.java
  class AsemanLocationListener (line 42) | public class AsemanLocationListener
    method _locationListened (line 50) | public native void _locationListened(double longitude, double latitude...
    method AsemanLocationListener (line 52) | AsemanLocationListener() {
    method displayGpsStatus (line 56) | private Boolean displayGpsStatus() {
    method getContext (line 66) | public static Context getContext() {
    method requestLocationUpdates (line 76) | public void requestLocationUpdates(final int interval) {
    method getLastKnownLocation (line 99) | public void getLastKnownLocation() {
    method isBetterLocation (line 113) | protected boolean isBetterLocation(Location location, Location current...
    method isSameProvider (line 156) | private boolean isSameProvider(String provider1, String provider2) {
    method onLocationChanged (line 166) | @Override
    method onProviderDisabled (line 177) | @Override
    method onProviderEnabled (line 180) | @Override
    method onStatusChanged (line 183) | @Override

FILE: src/android/java/src/com/hmkcode/android/image/RealPathUtil.java
  class RealPathUtil (line 29) | public class RealPathUtil {
    method getRealPathFromURI_API19 (line 31) | @SuppressLint("NewApi")
    method getRealPathFromURI_API11to18 (line 59) | @SuppressLint("NewApi")
    method getRealPathFromURI_BelowAPI11 (line 79) | public static String getRealPathFromURI_BelowAPI11(Context context, Ur...

FILE: src/android/java/src/io/aseman/android/AsemanActivity.java
  class AsemanActivity (line 58) | public class AsemanActivity extends QtActivity
    method AsemanActivity (line 73) | public AsemanActivity() {
    method getActivityInstance (line 77) | public static AsemanActivity getActivityInstance() {
    method transparentStatusBar (line 81) | public boolean transparentStatusBar() {
    method transparentNavigationBar (line 85) | public boolean transparentNavigationBar() {
    method createNotificationChannel (line 89) | public String createNotificationChannel(String channelId ,String chann...
    method startNotification (line 103) | public boolean startNotification(int id, String title, String body, St...
    method stopNotification (line 135) | public boolean stopNotification(int id)
    method setLayoutNoLimit (line 144) | boolean setLayoutNoLimit(boolean stt)
    method setStatusBarColor (line 159) | boolean setStatusBarColor(int color)
    method setTransparentStatusBar (line 171) | boolean setTransparentStatusBar(boolean stt)
    method setTransparentNavigationBar (line 188) | boolean setTransparentNavigationBar(boolean stt)
    method setKeepScreenOn (line 205) | public void setKeepScreenOn(boolean status) {
    method onActivityResult (line 213) | @Override
    method getPath (line 226) | public String getPath(Uri uri) {
    method onCreate (line 258) | @Override
    method onNewIntent (line 298) | @Override
    method checkIntent (line 305) | protected void checkIntent(Intent intent)
    method onStart (line 324) | @Override
    method onRestart (line 331) | @Override
    method onResume (line 338) | @Override
    method onPause (line 345) | @Override
    method onStop (line 352) | @Override
    method onDestroy (line 359) | @Override

FILE: src/android/java/src/io/aseman/android/AsemanApplication.java
  class AsemanApplication (line 27) | public class AsemanApplication extends QtApplication
    method onCreate (line 32) | public void onCreate(){
    method getAppContext (line 38) | public static Context getAppContext() {
    method instance (line 42) | public static Context instance() {

FILE: src/android/java/src/io/aseman/android/AsemanBootBroadcast.java
  class AsemanBootBroadcast (line 27) | public class AsemanBootBroadcast extends BroadcastReceiver {
    method onReceive (line 28) | @Override

FILE: src/android/java/src/io/aseman/android/AsemanJavaLayer.java
  class AsemanJavaLayer (line 66) | public class AsemanJavaLayer
    method _sendNote (line 68) | private static native void _sendNote( String title, String msg );
    method _sendImage (line 69) | private static native void _sendImage( String path );
    method _sendDeepLink (line 70) | private static native void _sendDeepLink(String link);
    method _activityPaused (line 71) | private static native void _activityPaused();
    method _activityStopped (line 72) | private static native void _activityStopped();
    method _activityResumed (line 73) | private static native void _activityResumed();
    method _activityStarted (line 74) | private static native void _activityStarted();
    method _activityRestarted (line 75) | private static native void _activityRestarted();
    method _activityDestroyed (line 76) | private static native void _activityDestroyed();
    method _selectImageResult (line 77) | private static native void _selectImageResult( String path );
    method _keyboardVisiblityChanged (line 78) | private static native void _keyboardVisiblityChanged(int height);
    method AsemanJavaLayer (line 81) | public AsemanJavaLayer() {
    method activityPaused (line 84) | public static void activityPaused(){
    method activityStopped (line 89) | public static void activityStopped(){
    method activityResumed (line 94) | public static void activityResumed(){
    method activityStarted (line 99) | public static void activityStarted(){
    method activityRestarted (line 104) | public static void activityRestarted(){
    method activityDestroyed (line 109) | public static void activityDestroyed(){
    method keyboardVisiblityChanged (line 114) | public static void keyboardVisiblityChanged(int height){
    method sendDeepLink (line 119) | public static void sendDeepLink(String link){
    method sendNote (line 124) | public static void sendNote( String title, String msg ) {
    method setKeepScreenOn (line 134) | public static void setKeepScreenOn(boolean status) {
    method menuHeight (line 147) | public static int menuHeight()
    method sendImage (line 157) | public static void sendImage( Uri data ) {
    method selectImageResult (line 179) | public static void selectImageResult( String path ) {
    method packageName (line 187) | public String packageName()
    method deviceName (line 194) | public String deviceName() {
    method setImplemented (line 204) | boolean setImplemented(boolean stt) {
    method deviceId (line 209) | public String deviceId() {
    method capitalize (line 214) | private String capitalize(String s) {
    method getContext (line 226) | public static Context getContext() {
    method getLastImages (line 236) | public String getLastImages(int offset, int count)
    method killService (line 263) | boolean killService(String serviceName)
    method startQtService (line 286) | boolean startQtService()
    method stopQtService (line 301) | boolean stopQtService()
    method sharePaper (line 314) | boolean sharePaper( String title, String msg )
    method shareFile (line 333) | boolean shareFile(String path, String type)
    method openFile (line 361) | boolean openFile( String path, String type )
    method getMetrics (line 384) | DisplayMetrics getMetrics()
    method lcdDpiX (line 395) | double lcdDpiX()
    method densityDpi (line 400) | int densityDpi()
    method density (line 405) | float density()
    method screenSizeWidth (line 410) | int screenSizeWidth()
    method screenSizeHeight (line 415) | int screenSizeHeight()
    method statusBarHeight (line 420) | int statusBarHeight() {
    method navigationBarHeight (line 430) | int navigationBarHeight() {
    method isTablet (line 440) | boolean isTablet()
    method getSizeName (line 448) | int getSizeName()
    method getOpenPictures (line 468) | boolean getOpenPictures()
    method startCamera (line 482) | boolean startCamera( String output )
    method callNumber (line 496) | boolean callNumber( String number )
    method transparentStatusBar (line 509) | boolean transparentStatusBar()
    method transparentNavigationBar (line 514) | boolean transparentNavigationBar()
    method release (line 519) | boolean release()
    method setTransparentNavigationBar (line 524) | boolean setTransparentNavigationBar(boolean stt)
    method setTransparentStatusBar (line 538) | boolean setTransparentStatusBar(boolean stt)
    method createNotificationChannel (line 552) | public String createNotificationChannel(String channelId ,String chann...
    method startForeground (line 565) | boolean startForeground(int id, String title, String body, String icon...
    method stopForeground (line 572) | boolean stopForeground(boolean removeNotification)
    method startNotification (line 581) | boolean startNotification(int id, String title, String body, String ic...
    method stopNotification (line 591) | boolean stopNotification(int id)
    method getContactList (line 601) | String getContactList() {

FILE: src/android/java/src/io/aseman/android/AsemanMultimedia.java
  class AsemanMultimedia (line 34) | public class AsemanMultimedia
    method cursorToMusicJson (line 63) | private String cursorToMusicJson(Cursor cursor) {
    method cursorToAlbumJson (line 88) | private String cursorToAlbumJson(Cursor cursor) {
    method cursorToArtistJson (line 109) | private String cursorToArtistJson(Cursor cursor) {
    method getAllMusics (line 126) | public String getAllMusics() {
    method getAllAlbums (line 144) | public String getAllAlbums() {
    method getAllArtists (line 162) | public String getAllArtists() {
    method getArtistAlbums (line 180) | public String getArtistAlbums(String artistId) {
    method getArtistSongs (line 198) | public String getArtistSongs(String artistId) {
    method getAlbumSongs (line 216) | public String getAlbumSongs(String albumId) {
    method setImplemented (line 234) | public boolean setImplemented(boolean stt) {

FILE: src/android/java/src/io/aseman/android/AsemanQtService.java
  class AsemanQtService (line 58) | public class AsemanQtService extends QtService {
    method getServiceInstance (line 64) | public static AsemanQtService getServiceInstance() {
    method onCreate (line 68) | @Override
    method createNotificationChannel (line 74) | public String createNotificationChannel(String channelId ,String chann...
    method startForeground (line 88) | public boolean startForeground(int id, String title, String msg, Strin...
    method startNotification (line 109) | public boolean startNotification(int id, String title, String body, St...
    method stopNotification (line 140) | public boolean stopNotification(int id)

FILE: src/android/java/src/io/aseman/android/AsemanService.java
  class AsemanService (line 58) | public class AsemanService extends Service
    method onCreate (line 92) | @Override
    method getServiceInstance (line 108) | public static AsemanService getServiceInstance() {
    method onStartCommand (line 112) | @Override
    method onBind (line 118) | @Override
    method onDestroy (line 123) | @Override
    method startApp (line 132) | private void startApp(){
    method loadApplication (line 237) | @SuppressLint("NewApi")
    method copyFile (line 288) | static private void copyFile(InputStream inputStream, OutputStream out...
    method copyAsset (line 299) | private void copyAsset(String source, String destination)
    method createBundledBinary (line 322) | private static void createBundledBinary(String source, String destinat...
    method cleanCacheIfNecessary (line 344) | private boolean cleanCacheIfNecessary(String pluginsPrefix, long packa...
    method extractBundledPluginsAndImports (line 367) | private void extractBundledPluginsAndImports(String pluginsPrefix)
    method deleteRecursively (line 430) | private void deleteRecursively(File directory)
    method cleanOldCacheIfNecessary (line 445) | private void cleanOldCacheIfNecessary(String oldLocalPrefix, String lo...
    method splitCamelCase (line 469) | static String splitCamelCase(String sp) {

FILE: src/android/java/src/io/aseman/android/AsemanServiceDelegate.java
  class AsemanServiceDelegate (line 41) | public class AsemanServiceDelegate
    method loadApplication (line 58) | public boolean loadApplication(Service service, ClassLoader classLoade...
    method debugLog (line 118) | public void debugLog(String msg)
    method startApplication (line 123) | public boolean startApplication()
    method QtNativeNativeLibrariesDir (line 147) | public static String QtNativeNativeLibrariesDir(Service service)
    method QtNativeStartApplication (line 160) | public static boolean QtNativeStartApplication(String params,
    method startQtApplication (line 181) | public static native void startQtApplication(String params, String env);
    method finishQtApplication (line 182) | public static native void finishQtApplication();

FILE: src/android/java/src/io/aseman/android/extra/AsemanCameraCapture.java
  class AsemanCameraCapture (line 51) | public class AsemanCameraCapture
    method _imageCaptured (line 55) | public native void _imageCaptured(int id, String path);
    method capture (line 57) | public void capture(final int id, final String path, final boolean fro...
    method getContext (line 74) | public static Context getContext() {
    method takePhoto (line 84) | private void takePhoto(final int actionId, final String path, final in...
    method savePicture (line 156) | public boolean savePicture(byte[] data, String filePath) {
    method openCamera (line 170) | private Camera openCamera(final int type) {

FILE: src/android/java/src/io/aseman/android/extra/AsemanLocationListener.java
  class AsemanLocationListener (line 42) | public class AsemanLocationListener
    method _locationListened (line 50) | public native void _locationListened(double longitude, double latitude...
    method AsemanLocationListener (line 52) | AsemanLocationListener() {
    method displayGpsStatus (line 56) | private Boolean displayGpsStatus() {
    method getContext (line 66) | public static Context getContext() {
    method requestLocationUpdates (line 76) | public void requestLocationUpdates(final int interval) {
    method getLastKnownLocation (line 99) | public void getLastKnownLocation() {
    method isBetterLocation (line 113) | protected boolean isBetterLocation(Location location, Location current...
    method isSameProvider (line 156) | private boolean isSameProvider(String provider1, String provider2) {
    method onLocationChanged (line 166) | @Override
    method onProviderDisabled (line 177) | @Override
    method onProviderEnabled (line 180) | @Override
    method onStatusChanged (line 183) | @Override

FILE: src/asemanqml/awesome/awesomeplugin.h
  function class (line 24) | class AsemanAwesomePlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/base/asemandelegateswitch.cpp
  class AsemanDelegateSwitch::Private (line 23) | class AsemanDelegateSwitch::Private
  function qint32 (line 61) | qint32 AsemanDelegateSwitch::current() const
  function QQuickItem (line 66) | QQuickItem *AsemanDelegateSwitch::item() const
  function QQmlComponent (line 84) | QQmlComponent *AsemanDelegateSwitch::at(QQmlListProperty<QQmlComponent> ...

FILE: src/asemanqml/base/asemandelegateswitch.h
  function class (line 26) | class AsemanDelegateSwitch : public QQuickItem

FILE: src/asemanqml/base/asemanqmlplugin.h
  function class (line 24) | class AsemanQmlPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/base/asemanqttoolsitembase.cpp
  function QString (line 316) | QString AsemanQtToolsItemBase::fixType(const QString &type)
  function QString (line 383) | QString AsemanQtToolsItemBase::exportItem(const QString &module, int maj...
  function QString (line 519) | QString AsemanQtToolsItemBase::exportModel(const QString &module, int ma...

FILE: src/asemanqml/base/asemanqttoolsitembase.h
  function class (line 30) | class AsemanQtToolsItemBase: public AsemanQtTools

FILE: src/asemanqml/controls/asemanqttoolsitemcontrols.cpp
  function QString (line 150) | QString AsemanQtToolsItemControls::fixType(const QString &type)
  function QString (line 217) | QString AsemanQtToolsItemControls::exportItem(const QString &module, int...
  function QString (line 353) | QString AsemanQtToolsItemControls::exportModel(const QString &module, in...

FILE: src/asemanqml/controls/asemanqttoolsitemcontrols.h
  function class (line 30) | class AsemanQtToolsItemControls: public AsemanQtTools

FILE: src/asemanqml/controls/controlsplugin.h
  function class (line 24) | class AsemanControlsPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/controls_beta/asemanqttoolsitemcontrolsbeta.cpp
  function QString (line 186) | QString AsemanQtToolsItemControlsBeta::fixType(const QString &type)
  function QString (line 253) | QString AsemanQtToolsItemControlsBeta::exportItem(const QString &module,...
  function QString (line 389) | QString AsemanQtToolsItemControlsBeta::exportModel(const QString &module...

FILE: src/asemanqml/controls_beta/asemanqttoolsitemcontrolsbeta.h
  function class (line 30) | class AsemanQtToolsItemControlsBeta: public AsemanQtTools

FILE: src/asemanqml/controls_beta/asemanquickabstractbutton.cpp
  function QPointF (line 53) | QPointF AsemanQuickAbstractButton::cursorPosition() const

FILE: src/asemanqml/controls_beta/asemanquickabstractbutton.h
  function class (line 8) | class AsemanQuickAbstractButton : public AsemanQuickControlItem

FILE: src/asemanqml/controls_beta/asemanquickabstractstyle.cpp
  function AsemanQuickBoxSize (line 17) | AsemanQuickBoxSize *AsemanQuickAbstractStyle::padding() const
  function QFont (line 30) | QFont AsemanQuickAbstractStyle::font() const
  function QVariantMap (line 43) | QVariantMap AsemanQuickAbstractStyle::extra() const

FILE: src/asemanqml/controls_beta/asemanquickabstractstyle.h
  function class (line 11) | class AsemanQuickAbstractStyle : public QQuickItem

FILE: src/asemanqml/controls_beta/asemanquickboxsize.cpp
  function qint32 (line 14) | qint32 AsemanQuickBoxSize::left() const
  function qint32 (line 27) | qint32 AsemanQuickBoxSize::top() const
  function qint32 (line 40) | qint32 AsemanQuickBoxSize::right() const
  function qint32 (line 53) | qint32 AsemanQuickBoxSize::bottom() const

FILE: src/asemanqml/controls_beta/asemanquickboxsize.h
  function class (line 6) | class AsemanQuickBoxSize: public QObject

FILE: src/asemanqml/controls_beta/asemanquickcolumnlayout.cpp
  function qreal (line 100) | qreal AsemanQuickColumnLayout::spacing() const

FILE: src/asemanqml/controls_beta/asemanquickcolumnlayout.h
  function class (line 6) | class AsemanQuickColumnLayout : public AsemanQuickLayout

FILE: src/asemanqml/controls_beta/asemanquickcontrolitem.cpp
  function AsemanQuickControlItem (line 123) | AsemanQuickControlItem *AsemanQuickControlItem::nextTabOrder() const

FILE: src/asemanqml/controls_beta/asemanquickcontrolitem.h
  function class (line 6) | class AsemanQuickControlItem : public AsemanQuickStyledItem

FILE: src/asemanqml/controls_beta/asemanquicklayout.cpp
  function AsemanQuickLayoutProperty (line 16) | AsemanQuickLayoutProperty *AsemanQuickLayout::qmlAttachedProperties(QObj...
  function AsemanQuickLayoutProperty (line 83) | AsemanQuickLayoutProperty *AsemanQuickLayout::getAttached(QObject *object)

FILE: src/asemanqml/controls_beta/asemanquicklayout.h
  function class (line 8) | class AsemanQuickLayout : public QQuickItem
  function class (line 33) | class AsemanQuickLayoutProperty : public QObject

FILE: src/asemanqml/controls_beta/asemanquickradiobuttoncontrol.h
  function class (line 6) | class AsemanQuickRadioButtonControl : public AsemanQuickControlItem

FILE: src/asemanqml/controls_beta/asemanquickradiobuttongroup.cpp
  function AsemanQuickRadioButtonControl (line 33) | AsemanQuickRadioButtonControl *AsemanQuickRadioButtonGroup::at(QQmlListP...
  function AsemanQuickRadioButtonGroup (line 93) | AsemanQuickRadioButtonGroup *AsemanQuickRadioButtonGroupAttachedProperty...
  function AsemanQuickRadioButtonGroupAttachedProperty (line 115) | AsemanQuickRadioButtonGroupAttachedProperty *AsemanQuickRadioButtonGroup...

FILE: src/asemanqml/controls_beta/asemanquickradiobuttongroup.h
  function class (line 8) | class AsemanQuickRadioButtonGroup : public QObject
  function class (line 39) | class AsemanQuickRadioButtonGroupAttachedProperty : public QObject
  function class (line 59) | class AsemanQuickRadioButtonGroupAttachedCreator : public QObject

FILE: src/asemanqml/controls_beta/asemanquickrowlayout.cpp
  function qreal (line 127) | qreal AsemanQuickRowLayout::spacing() const

FILE: src/asemanqml/controls_beta/asemanquickrowlayout.h
  function class (line 6) | class AsemanQuickRowLayout : public AsemanQuickLayout

FILE: src/asemanqml/controls_beta/asemanquicksceneitem.cpp
  function AsemanQuickSceneItem (line 58) | AsemanQuickSceneItem *AsemanQuickSceneItem::findScene(const QQuickItem *...
  function QObject (line 108) | QObject *AsemanQuickSceneItem::findParent(const QObject *obj)
  function QFont (line 117) | QFont AsemanQuickSceneItem::font() const

FILE: src/asemanqml/controls_beta/asemanquicksceneitem.h
  function class (line 7) | class AsemanQuickSceneItem: public AsemanQuickStyledItem

FILE: src/asemanqml/controls_beta/asemanquickscrollviewcore.cpp
  function QQuickItem (line 12) | QQuickItem *AsemanQuickScrollViewCore::flickArea() const

FILE: src/asemanqml/controls_beta/asemanquickscrollviewcore.h
  function class (line 6) | class AsemanQuickScrollViewCore : public AsemanQuickControlItem

FILE: src/asemanqml/controls_beta/asemanquickstyleattachedproperty.cpp
  function QObject (line 72) | QObject *AsemanQuickStyleAttachedProperty::findParent(const QObject *obj...
  function qreal (line 128) | qreal AsemanQuickStyleAttachedProperty::radius() const
  function qint32 (line 142) | qint32 AsemanQuickStyleAttachedProperty::globalFontPixelSize() const
  function QStringList (line 157) | QStringList AsemanQuickStyleAttachedProperty::stylesSearchPath() const
  function QString (line 172) | QString AsemanQuickStyleAttachedProperty::getStylePath(const QStringList...
  function QUrl (line 198) | QUrl AsemanQuickStyleAttachedProperty::styleUrl() const
  function QString (line 211) | QString AsemanQuickStyleAttachedProperty::styleName() const
  function QStringList (line 226) | QStringList AsemanQuickStyleAttachedProperty::globalFontFamilies() const
  function QColor (line 242) | QColor AsemanQuickStyleAttachedProperty::accentColor() const
  function QColor (line 257) | QColor AsemanQuickStyleAttachedProperty::accentTextColor() const
  function QColor (line 272) | QColor AsemanQuickStyleAttachedProperty::foregroundColor() const
  function QColor (line 287) | QColor AsemanQuickStyleAttachedProperty::backgroundColor() const
  function QColor (line 302) | QColor AsemanQuickStyleAttachedProperty::primaryColor() const
  function QColor (line 317) | QColor AsemanQuickStyleAttachedProperty::primaryTextColor() const
  function QColor (line 332) | QColor AsemanQuickStyleAttachedProperty::baseColor() const
  function QColor (line 347) | QColor AsemanQuickStyleAttachedProperty::baseTextColor() const
  function AsemanQuickStyleAttachedProperty (line 362) | AsemanQuickStyleAttachedProperty *AsemanQuickStyleProperty::qmlAttachedP...

FILE: src/asemanqml/controls_beta/asemanquickstyleattachedproperty.h
  function class (line 12) | class AsemanQuickStyleAttachedProperty : public QObject
  function class (line 126) | class AsemanQuickStyleProperty : public QObject

FILE: src/asemanqml/controls_beta/asemanquickstyleditem.cpp
  function QQmlComponent (line 19) | QQmlComponent *AsemanQuickStyledItem::styleComponent() const
  function QQuickItem (line 139) | QQuickItem *AsemanQuickStyledItem::sourceItem() const
  function AsemanQuickAbstractStyle (line 167) | AsemanQuickAbstractStyle *AsemanQuickStyledItem::styleItem() const
  function QString (line 172) | QString AsemanQuickStyledItem::styleFileName() const

FILE: src/asemanqml/controls_beta/asemanquickstyleditem.h
  function class (line 11) | class AsemanQuickStyledItem : public QQuickItem

FILE: src/asemanqml/controls_beta/controlsbetaplugin.h
  function class (line 24) | class AsemanControlsBetaPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/graphicaleffects/asemangraphicaleffectsplugin.h
  function class (line 24) | class AsemanGraphicalEffectsPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/graphicaleffects/asemanqttoolsitemgraphicaleffects.cpp
  function QString (line 150) | QString AsemanQtToolsItemGraphicalEffects::fixType(const QString &type)
  function QString (line 217) | QString AsemanQtToolsItemGraphicalEffects::exportItem(const QString &mod...
  function QString (line 353) | QString AsemanQtToolsItemGraphicalEffects::exportModel(const QString &mo...

FILE: src/asemanqml/graphicaleffects/asemanqttoolsitemgraphicaleffects.h
  function class (line 30) | class AsemanQtToolsItemGraphicalEffects: public AsemanQtTools

FILE: src/asemanqml/materialicons/materialiconsplugin.h
  function class (line 24) | class AsemanMaterialIconsPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/models/asemanabstractquicklistmodelhint.cpp
  function QVariant (line 11) | QVariant AsemanAbstractQuickListModelHint::getPathValue(QVariant data, c...
  function QVariant (line 43) | QVariant AsemanAbstractQuickListModelHint::setPathValue(const QVariant &...
  function QVariant (line 52) | QVariant AsemanAbstractQuickListModelHint::setPathValue(const QVariant &...
  function QVariant (line 83) | QVariant AsemanAbstractQuickListModelHint::deletePath(const QVariant &da...
  function QVariant (line 92) | QVariant AsemanAbstractQuickListModelHint::deletePath(const QVariant &da...

FILE: src/asemanqml/models/asemanabstractquicklistmodelhint.h
  function class (line 7) | class AsemanAbstractQuickListModelHint : public QObject

FILE: src/asemanqml/models/asemanmodelsplugin.h
  function class (line 24) | class AsemanModelsPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/models/asemanqttoolsitemmodels.cpp
  function QString (line 175) | QString AsemanQtToolsItemModels::fixType(const QString &type)
  function QString (line 242) | QString AsemanQtToolsItemModels::exportItem(const QString &module, int m...
  function QString (line 378) | QString AsemanQtToolsItemModels::exportModel(const QString &module, int ...

FILE: src/asemanqml/models/asemanqttoolsitemmodels.h
  function class (line 30) | class AsemanQtToolsItemModels: public AsemanQtTools

FILE: src/asemanqml/models/asemanquicklistmodel.cpp
  class AsemanQuickListModel::Private (line 25) | class AsemanQuickListModel::Private
  function QString (line 84) | QString AsemanQuickListModel::sortField() const
  function QObject (line 121) | QObject *AsemanQuickListModel::at(QQmlListProperty<QObject> *p, int idx)

FILE: src/asemanqml/models/asemanquicklistmodelcamelcasehint.cpp
  class AsemanQuickListModelCamelCaseHint::Private (line 5) | class AsemanQuickListModelCamelCaseHint::Private
  function QString (line 27) | QString AsemanQuickListModelCamelCaseHint::path() const
  function QVariantMap (line 32) | QVariantMap AsemanQuickListModelCamelCaseHint::analyze(const QVariantMap...
  function QVariant (line 40) | QVariant AsemanQuickListModelCamelCaseHint::toCamelCase(const QVariant &...

FILE: src/asemanqml/models/asemanquicklistmodelcamelcasehint.h
  function class (line 9) | class AsemanQuickListModelCamelCaseHint : public AsemanAbstractQuickList...

FILE: src/asemanqml/models/asemanquicklistmodelcopyhint.cpp
  class AsemanQuickListModelCopyHint::Private (line 5) | class AsemanQuickListModelCopyHint::Private
  function QString (line 28) | QString AsemanQuickListModelCopyHint::path() const
  function QString (line 43) | QString AsemanQuickListModelCopyHint::targetPath() const
  function QVariantMap (line 48) | QVariantMap AsemanQuickListModelCopyHint::analyze(const QVariantMap &map)

FILE: src/asemanqml/models/asemanquicklistmodelcopyhint.h
  function class (line 8) | class AsemanQuickListModelCopyHint : public AsemanAbstractQuickListModel...

FILE: src/asemanqml/models/asemanquicklistmodeldeletehint.cpp
  class AsemanQuickListModelDeleteHint::Private (line 5) | class AsemanQuickListModelDeleteHint::Private
  function QString (line 27) | QString AsemanQuickListModelDeleteHint::path() const
  function QVariantMap (line 32) | QVariantMap AsemanQuickListModelDeleteHint::analyze(const QVariantMap &map)

FILE: src/asemanqml/models/asemanquicklistmodeldeletehint.h
  function class (line 9) | class AsemanQuickListModelDeleteHint : public AsemanAbstractQuickListMod...

FILE: src/asemanqml/models/asemanquicklistmodelformathint.cpp
  class AsemanQuickListModelFormatHint::Private (line 5) | class AsemanQuickListModelFormatHint::Private
  function QString (line 28) | QString AsemanQuickListModelFormatHint::path() const
  function QJSValue (line 40) | QJSValue AsemanQuickListModelFormatHint::method() const
  function QVariantMap (line 45) | QVariantMap AsemanQuickListModelFormatHint::analyze(const QVariantMap &map)

FILE: src/asemanqml/models/asemanquicklistmodelformathint.h
  function class (line 9) | class AsemanQuickListModelFormatHint : public AsemanAbstractQuickListMod...

FILE: src/asemanqml/models/asemanquicklistmodelsource.cpp
  class AsemanQuickListModelSource::Private (line 6) | class AsemanQuickListModelSource::Private
  function QVariant (line 33) | QVariant AsemanQuickListModelSource::source() const
  function QString (line 48) | QString AsemanQuickListModelSource::path() const
  function QVariantList (line 53) | QVariantList AsemanQuickListModelSource::data() const
  function AsemanAbstractQuickListModelHint (line 135) | AsemanAbstractQuickListModelHint *AsemanQuickListModelSource::at(QQmlLis...

FILE: src/asemanqml/models/asemanquicklistmodelsource.h
  function class (line 10) | class AsemanQuickListModelSource : public QObject

FILE: src/asemanqml/modern/asemanqttoolsitemmodern.cpp
  function QString (line 150) | QString AsemanQtToolsItemModern::fixType(const QString &type)
  function QString (line 217) | QString AsemanQtToolsItemModern::exportItem(const QString &module, int m...
  function QString (line 353) | QString AsemanQtToolsItemModern::exportModel(const QString &module, int ...

FILE: src/asemanqml/modern/asemanqttoolsitemmodern.h
  function class (line 30) | class AsemanQtToolsItemModern: public AsemanQtTools

FILE: src/asemanqml/modern/modernplugin.h
  function class (line 24) | class AsemanModernPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/multimedia/asemanmultimediaplugin.h
  function class (line 24) | class AsemanMultimediaPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/multimedia/asemanqttoolsitemmultimedia.cpp
  function QObject (line 37) | static QObject *aseman_multimedia_AsemanMultimediaDatabase(QQmlEngine *e...
  function QString (line 173) | QString AsemanQtToolsItemMultimedia::fixType(const QString &type)
  function QString (line 240) | QString AsemanQtToolsItemMultimedia::exportItem(const QString &module, i...
  function QString (line 376) | QString AsemanQtToolsItemMultimedia::exportModel(const QString &module, ...

FILE: src/asemanqml/multimedia/asemanqttoolsitemmultimedia.h
  function class (line 30) | class AsemanQtToolsItemMultimedia: public AsemanQtTools

FILE: src/asemanqml/network/asemannetworkplugin.h
  function class (line 24) | class AsemanNetworkPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/network/asemanqttoolsitemnetwork.cpp
  function AsemanFileDownloaderQueue (line 169) | AsemanFileDownloaderQueue *AsemanQtToolsItemNetwork::getDownloaderQueue(...
  function QString (line 174) | QString AsemanQtToolsItemNetwork::fixType(const QString &type)
  function QString (line 241) | QString AsemanQtToolsItemNetwork::exportItem(const QString &module, int ...
  function QString (line 377) | QString AsemanQtToolsItemNetwork::exportModel(const QString &module, int...

FILE: src/asemanqml/network/asemanqttoolsitemnetwork.h
  function class (line 30) | class AsemanQtToolsItemNetwork: public AsemanQtTools

FILE: src/asemanqml/sql/asemanqttoolsitemsql.cpp
  function QString (line 162) | QString AsemanQtToolsItemSql::fixType(const QString &type)
  function QString (line 229) | QString AsemanQtToolsItemSql::exportItem(const QString &module, int majo...
  function QString (line 365) | QString AsemanQtToolsItemSql::exportModel(const QString &module, int maj...

FILE: src/asemanqml/sql/asemanqttoolsitemsql.h
  function class (line 30) | class AsemanQtToolsItemSql: public AsemanQtTools

FILE: src/asemanqml/sql/asemanquicksqlobject.h
  function class (line 8) | class AsemanQuickSqlObject : public AsemanSqlObject

FILE: src/asemanqml/sql/asemansqlplugin.h
  function class (line 24) | class AsemanSqlPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/viewport/asemanabstractviewporttype.cpp
  class AsemanAbstractViewportType::Private (line 6) | class AsemanAbstractViewportType::Private
  function QQuickItem (line 23) | QQuickItem *AsemanAbstractViewportType::foregroundItem() const
  function QQuickItem (line 68) | QQuickItem *AsemanAbstractViewportType::backgroundItem() const
  function AsemanViewport (line 82) | AsemanViewport *AsemanAbstractViewportType::viewport() const
  function qreal (line 96) | qreal AsemanAbstractViewportType::gestureWidth() const
  function qreal (line 119) | qreal AsemanAbstractViewportType::maximumWidth() const
  function QPointF (line 142) | QPointF AsemanAbstractViewportType::typeTransformOrigin() const
  function QQuickItem (line 211) | QQuickItem *AsemanAbstractViewportType::sourceObject() const
  function AsemanViewportTypeAttechedProperty (line 256) | AsemanViewportTypeAttechedProperty *AsemanViewportType::qmlAttachedPrope...
  function qreal (line 268) | qreal AsemanViewportTypeAttechedProperty::gestureWidth(bool *isNull) const
  function qreal (line 283) | qreal AsemanViewportTypeAttechedProperty::maximumWidth(bool *isNull) const
  function QPointF (line 299) | QPointF AsemanViewportTypeAttechedProperty::typeTransformOrigin(bool *is...
  function QQuickItem (line 344) | QQuickItem *AsemanViewportTypeAttechedProperty::sourceObject(bool *isNul...

FILE: src/asemanqml/viewport/asemanabstractviewporttype.h
  function qreal (line 50) | qreal gestureWidth() const;

FILE: src/asemanqml/viewport/asemanqttoolsitemviewport.cpp
  function QString (line 163) | QString AsemanQtToolsItemViewport::fixType(const QString &type)
  function QString (line 230) | QString AsemanQtToolsItemViewport::exportItem(const QString &module, int...
  function QString (line 366) | QString AsemanQtToolsItemViewport::exportModel(const QString &module, in...

FILE: src/asemanqml/viewport/asemanqttoolsitemviewport.h
  function class (line 30) | class AsemanQtToolsItemViewport: public AsemanQtTools

FILE: src/asemanqml/viewport/asemanviewport.cpp
  class AsemanViewport::Private (line 24) | class AsemanViewport::Private
  function QStringList (line 89) | QStringList AsemanViewport::keys() const
  function AsemanViewportAttechedProperty (line 101) | AsemanViewportAttechedProperty *AsemanViewport::qmlAttachedProperties(QO...
  function QVariant (line 106) | QVariant AsemanViewport::getComponent(const QString &name)
  function QQmlComponent (line 118) | QQmlComponent *AsemanViewport::createComponent(const QUrl &url, bool asyn)
  function AsemanViewportItem (line 154) | AsemanViewportItem *AsemanViewport::at(QQmlListProperty<AsemanViewportIt...
  function QObject (line 200) | QObject *AsemanViewportAttechedProperty::controller() const
  function AsemanViewport (line 219) | AsemanViewport *AsemanViewportAttechedProperty::viewport() const
  function AsemanViewport (line 224) | AsemanViewport *AsemanViewportAttechedProperty::primaryViewport() const
  function AsemanViewport (line 229) | AsemanViewport *AsemanViewportAttechedProperty::viewport(QObject *obj, b...

FILE: src/asemanqml/viewport/asemanviewport.h
  function QStringList (line 44) | QStringList keys() const;
  type AsemanViewport (line 97) | typedef AsemanViewport QAsemanViewport;

FILE: src/asemanqml/viewport/asemanviewportcontroller.cpp
  class AsemanViewportController::Private (line 28) | class AsemanViewportController::Private
  function AsemanViewport (line 66) | AsemanViewport *AsemanViewportController::viewport() const
  function QVariantMap (line 85) | QVariantMap AsemanViewportController::lookup(const QString &url, QVarian...
  function AsemanViewportControllerRoute (line 149) | AsemanViewportControllerRoute *AsemanViewportController::at(QQmlListProp...

FILE: src/asemanqml/viewport/asemanviewportcontrollerroute.cpp
  class AsemanViewportControllerRoute::Private (line 23) | class AsemanViewportControllerRoute::Private
  function QRegularExpression (line 37) | QRegularExpression AsemanViewportControllerRoute::route() const
  function QVariant (line 51) | QVariant AsemanViewportControllerRoute::component() const
  function QQmlComponent (line 65) | QQmlComponent *AsemanViewportControllerRoute::sourceComponent() const
  function QUrl (line 75) | QUrl AsemanViewportControllerRoute::source() const
  function QString (line 94) | QString AsemanViewportControllerRoute::viewportType() const

FILE: src/asemanqml/viewport/asemanviewportitem.cpp
  class AsemanViewportItem::Private (line 21) | class AsemanViewportItem::Private
  function QString (line 41) | QString AsemanViewportItem::name() const
  function QVariant (line 55) | QVariant AsemanViewportItem::component() const

FILE: src/asemanqml/viewport/asemanviewportplugin.h
  function class (line 24) | class AsemanViewportPlugin : public QQmlExtensionPlugin

FILE: src/asemanqml/widgets/asemanqttoolsitemwidgets.cpp
  function QString (line 161) | QString AsemanQtToolsItemWidgets::fixType(const QString &type)
  function QString (line 228) | QString AsemanQtToolsItemWidgets::exportItem(const QString &module, int ...
  function QString (line 364) | QString AsemanQtToolsItemWidgets::exportModel(const QString &module, int...

FILE: src/asemanqml/widgets/asemanqttoolsitemwidgets.h
  function class (line 30) | class AsemanQtToolsItemWidgets: public AsemanQtTools

FILE: src/asemanqml/widgets/asemanwidgetsplugin.h
  function class (line 24) | class AsemanWidgetsPlugin : public QQmlExtensionPlugin

FILE: src/core/asemanabstractlistmodel.cpp
  function QStringList (line 46) | QStringList AsemanAbstractListModel::roles() const
  function QVariant (line 66) | QVariant AsemanAbstractListModel::get(int row, int role) const
  function QVariant (line 80) | QVariant AsemanAbstractListModel::get(int index, const QString &roleName...
  function QVariantMap (line 91) | QVariantMap AsemanAbstractListModel::get(int index) const

FILE: src/core/asemanautostartmanager.cpp
  class AsemanAutoStartManagerPrivate (line 41) | class AsemanAutoStartManagerPrivate
  function QString (line 82) | QString AsemanAutoStartManager::command() const
  function QString (line 110) | QString AsemanAutoStartManager::source() const
  function QString (line 126) | QString AsemanAutoStartManager::comment() const
  function QString (line 142) | QString AsemanAutoStartManager::name() const
  function QString (line 158) | QString AsemanAutoStartManager::type() const
  function CFURLRef (line 180) | CFURLRef prepareURL(const QString& path)
  function hasLoginItem (line 205) | bool hasLoginItem(const QString& name)

FILE: src/core/asemancalendarconverter.cpp
  class AsemanCalendarConverterPrivate (line 34) | class AsemanCalendarConverterPrivate
  function QStringList (line 73) | QStringList AsemanCalendarConverter::calendarIDs() const
  function QString (line 90) | QString AsemanCalendarConverter::calendarName(int t)
  function QString (line 144) | QString AsemanCalendarConverter::convertIntToStringDate(qint64 d)
  function QString (line 159) | QString AsemanCalendarConverter::convertIntToFullStringDate(qint64 d)
  function QString (line 174) | QString AsemanCalendarConverter::convertIntToNumStringDate(qint64 d)
  function QString (line 187) | QString AsemanCalendarConverter::translateInt(qint64 d)
  function QString (line 198) | QString AsemanCalendarConverter::convertIntToStringDate(qint64 d, const ...
  function QDate (line 213) | QDate AsemanCalendarConverter::convertDateToGragorian(qint64 y, int m, i...
  function QString (line 225) | QString AsemanCalendarConverter::fromMSecSinceEpoch(qint64 t)
  function QString (line 237) | QString AsemanCalendarConverter::convertDateTimeToString(const QDateTime...
  function QString (line 249) | QString AsemanCalendarConverter::convertDateTimeToString(const QDateTime...
  function QString (line 262) | QString AsemanCalendarConverter::convertDateTimeToLittleString(const QDa...
  function QString (line 287) | QString AsemanCalendarConverter::monthName(int m)
  function QDateTime (line 296) | QDateTime AsemanCalendarConverter::combineDateAndTime(const QDate &date,...
  function qint64 (line 323) | qint64 AsemanCalendarConverter::dateYear(const QDate &date)
  function qint64 (line 332) | qint64 AsemanCalendarConverter::currentYear()
  function DateProperty (line 360) | DateProperty AsemanCalendarConverter::convertDate(const QDate &date)
  function QDate (line 369) | QDate AsemanCalendarConverter::convertDaysToDate(int days)
  function QDateTime (line 387) | QDateTime AsemanCalendarConverter::fromTime_t(uint sec)

FILE: src/core/asemancalendarconvertercore.cpp
  class AsemanCalendarConverterCorePrivate (line 41) | class AsemanCalendarConverterCorePrivate
  function QString (line 66) | QString AsemanCalendarConverterCore::paperString(const QDateTime &dt)
  function QString (line 73) | QString AsemanCalendarConverterCore::paperString(const QDateTime &d, con...
  function QString (line 95) | QString AsemanCalendarConverterCore::littleString(const QDate &d)
  function QString (line 102) | QString AsemanCalendarConverterCore::historyString(const QDate &d)
  function QString (line 109) | QString AsemanCalendarConverterCore::numberString(const QDate &d)
  function DateProperty (line 116) | DateProperty AsemanCalendarConverterCore::getDate(const QDate &d)
  function QDate (line 135) | QDate AsemanCalendarConverterCore::toDate(qint64 y, int m, int d)
  function QString (line 155) | QString AsemanCalendarConverterCore::dayName(int d)
  function QString (line 174) | QString AsemanCalendarConverterCore::monthName(int m)
  function QString (line 238) | QString AsemanCalendarConverterCore::monthNamesGregorian(int m)
  function QString (line 283) | QString AsemanCalendarConverterCore::dayNameGregorian(int d)
  function qint64 (line 320) | qint64 AsemanCalendarConverterCore::fromDateGregorian( qint64 year , int...
  function DateProperty (line 325) | DateProperty AsemanCalendarConverterCore::toDateGregorian( qint64 days_f...
  function qint64 (line 346) | qint64 AsemanCalendarConverterCore::fromDateGregorian( qint64 year , int...
  function DateProperty (line 365) | DateProperty AsemanCalendarConverterCore::toDateGregorian( qint64 days_f...
  function QString (line 453) | QString AsemanCalendarConverterCore::monthNamesJalali(int m)
  function QString (line 498) | QString AsemanCalendarConverterCore::dayNameJalali(int d)
  function qint64 (line 536) | qint64 AsemanCalendarConverterCore::fromDateJalali( qint64 year , int mo...
  function DateProperty (line 542) | DateProperty AsemanCalendarConverterCore::toDateJalali( qint64 days_from...
  function qint64 (line 565) | qint64 AsemanCalendarConverterCore::fromDateJalali( qint64 year , int mo...
  function DateProperty (line 584) | DateProperty AsemanCalendarConverterCore::toDateJalali( qint64 days_from...
  function QString (line 676) | QString AsemanCalendarConverterCore::monthNamesHijri( int m )
  function QString (line 721) | QString AsemanCalendarConverterCore::dayNameHijri(int d)
  function qint64 (line 751) | qint64 AsemanCalendarConverterCore::leapsNumberHijri( qint64 year )
  function qint64 (line 764) | qint64 AsemanCalendarConverterCore::fromDateHijri( qint64 year , int mon...
  function DateProperty (line 770) | DateProperty AsemanCalendarConverterCore::toDateHijri( qint64 days_from_...
  function qint64 (line 788) | qint64 AsemanCalendarConverterCore::fromDateHijri( qint64 year , int mon...
  function DateProperty (line 811) | DateProperty AsemanCalendarConverterCore::toDateHijri( qint64 days_from_...

FILE: src/core/asemancalendarconvertercore.h
  function class (line 29) | class DateProperty
  type CalendarTypes (line 57) | enum CalendarTypes{
  function CalendarTypes (line 64) | CalendarTypes calendar() const;

FILE: src/core/asemancalendarmodel.cpp
  class AsemanCalendarModelPrivate (line 24) | class AsemanCalendarModelPrivate
  function QDateTime (line 141) | QDateTime AsemanCalendarModel::dateTime() const
  function QDateTime (line 182) | QDateTime AsemanCalendarModel::minimum() const
  function QDateTime (line 207) | QDateTime AsemanCalendarModel::maximum() const
  function QString (line 235) | QString AsemanCalendarModel::monthName(int month)

FILE: src/core/asemancalendarmodel.h
  function Q_OBJECT (line 36) | Q_OBJECT

FILE: src/core/asemancountriesmodel.cpp
  class AsemanCountriesModelPrivate (line 61) | class AsemanCountriesModelPrivate
  function QString (line 79) | QString AsemanCountriesModel::id(const QModelIndex &index) const
  function QVariant (line 91) | QVariant AsemanCountriesModel::data(const QModelIndex &index, int role) ...
  function QString (line 274) | QString AsemanCountriesModel::filter() const
  function QString (line 286) | QString AsemanCountriesModel::systemCountry() const

FILE: src/core/asemandebugobjectcounter.cpp
  class AsemanDebugObjectCounterPrivate (line 26) | class AsemanDebugObjectCounterPrivate

FILE: src/core/asemandebugobjectcounter.h
  type AsemanDebugObjectCounter (line 50) | typedef AsemanDebugObjectCounter QAsemanDebugObjectCounter;

FILE: src/core/asemanencrypter.cpp
  function QByteArray (line 42) | QByteArray AsemanEncrypter::encrypt(const QByteArray &data)
  function QByteArray (line 59) | QByteArray AsemanEncrypter::decrypt(const QByteArray &data)
  function QString (line 92) | QString AsemanEncrypter::key() const

FILE: src/core/asemanencrypter.h
  function Q_OBJECT (line 28) | Q_OBJECT
  function virtual (line 33) | virtual ~AsemanEncrypter(){}

FILE: src/core/asemanfilesystemmodel.cpp
  class AsemanFileSystemModelPrivate (line 114) | class AsemanFileSystemModelPrivate
  class SortUnitType (line 135) | class SortUnitType
    method SortUnitType (line 138) | SortUnitType(): num(0){}
  function aseman_analize_file_name (line 143) | QList<SortUnitType> aseman_analize_file_name(const QString &fileName)
  function aseman_fileListSort (line 170) | bool aseman_fileListSort(const QFileInfo &f1, const QFileInfo &f2)
  function QStringList (line 397) | QStringList AsemanFileSystemModel::nameFilters() const
  function QString (line 429) | QString AsemanFileSystemModel::folder() const
  function qint32 (line 507) | qint32 AsemanFileSystemModel::limit() const
  function QString (line 517) | QString AsemanFileSystemModel::parentFolder() const
  function QFileInfo (line 522) | const QFileInfo &AsemanFileSystemModel::id(const QModelIndex &index) const
  function QVariant (line 533) | QVariant AsemanFileSystemModel::data(const QModelIndex &index, int role)...

FILE: src/core/asemanfilesystemmodel.h
  type DataRole (line 55) | enum DataRole {

FILE: src/core/asemanhashobject.cpp
  class AsemanHashObjectPrivate (line 40) | class AsemanHashObjectPrivate
  function QVariant (line 132) | QVariant AsemanHashObject::key(const QVariant &value)
  function QStringList (line 153) | QStringList AsemanHashObject::keys(const QVariant &value)
  function QStringList (line 168) | QStringList AsemanHashObject::uniqueKeys()
  function QStringList (line 189) | QStringList AsemanHashObject::keys()
  function QVariant (line 207) | QVariant AsemanHashObject::value(const QString &key)
  function QVariantList (line 224) | QVariantList AsemanHashObject::values(const QString &key)
  function QVariantList (line 229) | QVariantList AsemanHashObject::values() const
  function QVariant (line 241) | QVariant AsemanHashObject::contains(const QString &key)
  function QVariant (line 253) | QVariant AsemanHashObject::contains(const QString &key, const QVariant &...
  function QVariantMap (line 293) | QVariantMap AsemanHashObject::toMap() const

FILE: src/core/asemanlistmodel.cpp
  class AsemanListModel::Private (line 8) | class AsemanListModel::Private
  function QVariant (line 28) | QVariant AsemanListModel::data(const QModelIndex &index, int role) const
  function QString (line 88) | QString AsemanListModel::cachePath() const
  function QVariantList (line 93) | QVariantList AsemanListModel::data() const

FILE: src/core/asemanlistobject.cpp
  class AsemanListObjectPrivate (line 25) | class AsemanListObjectPrivate
  function QVariant (line 55) | QVariant AsemanListObject::takeLast()
  function QVariant (line 66) | QVariant AsemanListObject::takeFirst()
  function QVariant (line 77) | QVariant AsemanListObject::takeAt(int index)
  function QVariant (line 91) | QVariant AsemanListObject::last() const
  function QVariant (line 99) | QVariant AsemanListObject::first() const
  function QVariant (line 149) | QVariant AsemanListObject::at(int index) const
  function QVariantList (line 171) | QVariantList AsemanListObject::toList() const

FILE: src/core/asemanlistrecord.cpp
  function QByteArray (line 55) | QByteArray AsemanListRecord::operator[]( int index )
  function QByteArray (line 76) | QByteArray AsemanListRecord::at( int i )
  function QByteArray (line 81) | QByteArray AsemanListRecord::last()
  function QByteArray (line 86) | QByteArray AsemanListRecord::first()
  function QByteArray (line 91) | QByteArray AsemanListRecord::takeLast()
  function QByteArray (line 96) | QByteArray AsemanListRecord::takeFirst()
  function QByteArray (line 124) | QByteArray AsemanListRecord::takeAt( int index )
  function QByteArray (line 154) | QByteArray AsemanListRecord::toQByteArray()
  function QByteArray (line 185) | QByteArray AsemanListRecord::strToRecord(const QByteArray &str )

FILE: src/core/asemanlistrecord.h
  function class (line 28) | class LIBQTASEMAN_CORE_EXPORT AsemanListRecord
  type AsemanListRecord (line 66) | typedef AsemanListRecord QAsemanListRecord;

FILE: src/core/asemanmapobject.cpp
  class AsemanMapObjectPrivate (line 26) | class AsemanMapObjectPrivate
  function QVariant (line 70) | QVariant AsemanMapObject::key(const QVariant &value)
  function QStringList (line 75) | QStringList AsemanMapObject::keys(const QVariant &value)
  function QStringList (line 80) | QStringList AsemanMapObject::uniqueKeys()
  function QStringList (line 85) | QStringList AsemanMapObject::keys()
  function QVariant (line 90) | QVariant AsemanMapObject::value(const QString &key)
  function QVariantList (line 95) | QVariantList AsemanMapObject::values(const QString &key)
  function QVariantList (line 100) | QVariantList AsemanMapObject::values() const
  function QVariant (line 105) | QVariant AsemanMapObject::containt(const QString &key)
  function QVariant (line 110) | QVariant AsemanMapObject::containt(const QString &key, const QVariant &v...
  function QVariant (line 115) | QVariant AsemanMapObject::contains(const QString &key)
  function QVariant (line 120) | QVariant AsemanMapObject::contains(const QString &key, const QVariant &v...
  function QVariantMap (line 140) | QVariantMap AsemanMapObject::toMap() const

FILE: src/core/asemanmixedlistmodel.cpp
  class AsemanMixedListModelPrivate (line 24) | class AsemanMixedListModelPrivate
  function QVariant (line 52) | QVariant AsemanMixedListModel::data(const QModelIndex &index, int role) ...
  function QVariantList (line 135) | QVariantList AsemanMixedListModel::models() const
  function QModelIndex (line 483) | QModelIndex AsemanMixedListModel::mapFromModelIndex(QAbstractListModel *...
  function QModelIndex (line 497) | QModelIndex AsemanMixedListModel::mapToModelIndex(QAbstractListModel *mo...

FILE: src/core/asemanmixedlistmodel.h
  type DataRoles (line 35) | enum DataRoles {

FILE: src/core/asemanqtlogger.cpp
  function asemanQtLoggerFnc (line 32) | void asemanQtLoggerFnc(QtMsgType type, const QMessageLogContext &context...
  class AsemanQtLoggerPrivate (line 39) | class AsemanQtLoggerPrivate
  function QString (line 97) | QString AsemanQtLogger::path() const

FILE: src/core/asemanqtlogger.h
  type AsemanQtLogger (line 53) | typedef AsemanQtLogger QAsemanQtLogger;

FILE: src/core/asemanrefresherobject.cpp
  function qint32 (line 55) | qint32 AsemanRefresherObject::delay() const

FILE: src/core/asemansettings.cpp
  class AsemanSettingsPrivate (line 31) | class AsemanSettingsPrivate
  function QString (line 74) | QString AsemanSettings::category() const
  function QString (line 101) | QString AsemanSettings::source() const
  function QVariant (line 115) | QVariant AsemanSettings::value(const QString &key, const QVariant &defau...
  function QStringList (line 130) | QStringList AsemanSettings::keys() const

FILE: src/core/asemansimpleqtcryptor.cpp
  type AsemanSimpleQtCryptor (line 68) | namespace AsemanSimpleQtCryptor {
    function Algorithm (line 88) | Algorithm Info::fastRC5() {
    function QString (line 97) | QString Info::errorText(Error e) {
    function QByteArray (line 161) | QByteArray Key::resizeKey(int ks) {
    function Error (line 294) | Error Encryptor::encrypt(const QByteArray &plain, QByteArray &cipher, ...
    function Checksum (line 374) | Checksum Decryptor::getChecksumType() {
    function Error (line 378) | Error Decryptor::decrypt(const QByteArray &cipher, QByteArray &plain, ...
    class DecryptorWizardEntry (line 472) | class DecryptorWizardEntry {
    function Error (line 504) | Error DecryptorWizard::decrypt(const QByteArray &cipher, QByteArray &p...
    function Error (line 546) | Error DecryptorWizard::decryptToEnd(const QByteArray &cipher, QByteArr...
    function QByteArray (line 555) | QByteArray InitializationVector::getVector8() {
    function QByteArray (line 565) | QByteArray InitializationVector::getVector16() {
    function QByteArray (line 608) | QByteArray CBC::encrypt(const QByteArray plain, bool end) {
    function QByteArray (line 764) | QByteArray CBC::decrypt(const QByteArray cipher, bool end) {
    function QByteArray (line 979) | QByteArray CFB::encrypt(const QByteArray plain, bool end) {
    function QByteArray (line 1203) | QByteArray CFB::decrypt(const QByteArray cipher, bool end) {
    function rc5_32_encrypt_2w (line 1424) | void rc5_32_encrypt_2w(quint32 &X1, quint32 &X2, const quint32 *s) {
    function rc5_64_encrypt_2w (line 1443) | void rc5_64_encrypt_2w(quint64 &X1, quint64 &X2, const quint64 *s) {
    function rc5_32_decrypt_2w (line 1460) | void rc5_32_decrypt_2w(quint32 &X1, quint32 &X2, const quint32 *s) {
    function rc5_64_decrypt_2w (line 1481) | void rc5_64_decrypt_2w(quint64 &X1, quint64 &X2, const quint64 *s) {
    function rc5_32_encrypt_8b (line 1502) | void rc5_32_encrypt_8b(const uchar *plain8, uchar *cipher8, const quin...
    function rc5_64_encrypt_16b (line 1510) | void rc5_64_encrypt_16b(const uchar *plain16, uchar *cipher16, const q...
    function rc5_32_decrypt_8b (line 1518) | void rc5_32_decrypt_8b(const uchar *cipher8, uchar *plain8, const quin...
    function rc5_64_decrypt_16b (line 1526) | void rc5_64_decrypt_16b(const uchar *cipher16, uchar *plain16, const q...
    function quint32 (line 1542) | quint32 serpent_sbox_fast(int sbox, quint32 X) {
    function serpent_sbox_it (line 1594) | void serpent_sbox_it(int sbox, quint32 &X1, quint32 &X2,
    function serpent_encrypt_4w (line 1639) | void serpent_encrypt_4w(quint32 &X1a, quint32 &X2a,
    function serpent_decrypt_4w (line 1695) | void serpent_decrypt_4w(quint32 &X1a, quint32 &X2a,
    function serpent_encrypt_16b (line 1743) | void serpent_encrypt_16b(const uchar *plain16, uchar *cipher16, const ...
    function serpent_decrypt_16b (line 1755) | void serpent_decrypt_16b(const uchar *cipher16, uchar *plain16, const ...
    function serpent_print_sbox_h (line 1769) | void serpent_print_sbox_h() {

FILE: src/core/asemansimpleqtcryptor.h
  function namespace (line 61) | namespace AsemanSimpleQtCryptor {

FILE: src/geo/asemanlocationlistener.cpp
  class AsemanLocationListenerPrivate (line 29) | class AsemanLocationListenerPrivate

FILE: src/geo/private/asemanandroidlocationlistenercore.cpp
  function AsemanAndroidLocationListenerCore (line 41) | AsemanAndroidLocationListenerCore *getLocationListenerObject(jobject obj)
  class AsemanAndroidLocationListenerPrivate (line 54) | class AsemanAndroidLocationListenerPrivate
  function locationListened (line 87) | static void locationListened( JNIEnv *env, jobject obj ,jdouble longitud...
  function aseman_android_loclis_registerNativeMethods (line 100) | bool aseman_android_loclis_registerNativeMethods() {

FILE: src/geo/private/asemanqtlocationlistenercore.cpp
  class AsemanQtLocationListenerCorePrivate (line 23) | class AsemanQtLocationListenerCorePrivate

FILE: src/geo/private/asemanqtlocationlistenercore.h
  function class (line 25) | class AsemanQtLocationListenerCore: public AsemanAbstractLocationListene...

FILE: src/gui/asemanapplication.cpp
  function dockClickHandler (line 86) | bool dockClickHandler(id self,SEL _cmd,...)
  class AsemanApplicationPrivate (line 95) | class AsemanApplicationPrivate
  function QString (line 233) | QString AsemanApplication::homePath()
  function QString (line 274) | QString AsemanApplication::startPath()
  function QString (line 287) | QString AsemanApplication::appPath()
  function QString (line 292) | QString AsemanApplication::appFilePath()
  function QString (line 297) | QString AsemanApplication::logPath()
  function QString (line 319) | QString AsemanApplication::confsPath()
  function QString (line 324) | QString AsemanApplication::tempPath()
  function QString (line 340) | QString AsemanApplication::backupsPath()
  function QString (line 353) | QString AsemanApplication::cameraPath()
  function QString (line 366) | QString AsemanApplication::applicationDirPath()
  function QString (line 371) | QString AsemanApplication::applicationFilePath()
  function qint64 (line 376) | qint64 AsemanApplication::applicationPid()
  function QString (line 386) | QString AsemanApplication::organizationDomain()
  function QString (line 396) | QString AsemanApplication::organizationName()
  function QString (line 406) | QString AsemanApplication::applicationName()
  function QString (line 416) | QString AsemanApplication::applicationVersion()
  function QString (line 442) | QString AsemanApplication::applicationAbout()
  function QStringList (line 480) | QStringList AsemanApplication::arguments()
  function QUrl (line 518) | QUrl AsemanApplication::windowIcon() const
  function AsemanApplication (line 537) | AsemanApplication *AsemanApplication::instance()
  function QCoreApplication (line 542) | QCoreApplication *AsemanApplication::qapp()
  function QFont (line 556) | QFont AsemanApplication::globalFont() const
  function QSettings (line 588) | QSettings *AsemanApplication::settings()
  function QVariant (line 632) | QVariant AsemanApplication::readSetting(const QString &key, const QVaria...

FILE: src/gui/asemanapplication.h
  type ApplicationState (line 93) | enum ApplicationState {

FILE: src/gui/asemandevices.cpp
  class AsemanDevicesPrivate (line 76) | class AsemanDevicesPrivate
  function QScreen (line 300) | QScreen *AsemanDevices::screen()
  function QObject (line 309) | QObject *AsemanDevices::screenObj() const
  function qreal (line 314) | qreal AsemanDevices::lcdPhysicalSize()
  function qreal (line 322) | qreal AsemanDevices::lcdPhysicalWidth()
  function qreal (line 330) | qreal AsemanDevices::lcdPhysicalHeight()
  function qreal (line 338) | qreal AsemanDevices::lcdDpiX()
  function qreal (line 351) | qreal AsemanDevices::lcdDpiY()
  function QSize (line 364) | QSize AsemanDevices::screenSize()
  function qreal (line 378) | qreal AsemanDevices::keyboardHeight() const
  function QString (line 414) | QString AsemanDevices::deviceName()
  function QString (line 427) | QString AsemanDevices::deviceId()
  function QString (line 466) | QString AsemanDevices::deviceShortId()
  function QString (line 472) | QString AsemanDevices::platformVersion()
  function QString (line 477) | QString AsemanDevices::platformType()
  function QString (line 482) | QString AsemanDevices::platformName()
  function QString (line 487) | QString AsemanDevices::platformKernel()
  function QString (line 492) | QString AsemanDevices::platformKernelVersion()
  function QString (line 497) | QString AsemanDevices::platformCpuArchitecture()
  function QString (line 502) | QString AsemanDevices::qtVersion()
  function qreal (line 507) | qreal AsemanDevices::qtMajorVersion()
  function qreal (line 568) | qreal AsemanDevices::standardTitleBarHeight() const
  function qreal (line 585) | qreal AsemanDevices::statusBarHeight()
  function qreal (line 606) | qreal AsemanDevices::navigationBarHeight()
  function qreal (line 646) | qreal AsemanDevices::density()
  function qreal (line 663) | qreal AsemanDevices::deviceDensity()
  function qreal (line 693) | qreal AsemanDevices::fontDensity()
  function qreal (line 747) | qreal AsemanDevices::fontScale()
  function QString (line 765) | QString AsemanDevices::localFilesPrePath()
  function QString (line 774) | QString AsemanDevices::clipboard() const
  function QString (line 803) | QString AsemanDevices::cameraLocation()
  function QString (line 808) | QString AsemanDevices::picturesLocation()
  function QString (line 830) | QString AsemanDevices::musicsLocation()
  function QString (line 852) | QString AsemanDevices::documentsLocation()
  function QString (line 875) | QString AsemanDevices::downloadsLocation()
  function QString (line 898) | QString AsemanDevices::resourcePath()
  function QString (line 920) | QString AsemanDevices::resourcePathQml()
  function QString (line 929) | QString AsemanDevices::libsPath()
  function QVariantMap (line 947) | QVariantMap AsemanDevices::deviceDetails()
  function QStringList (line 1073) | QStringList AsemanDevices::getLastImages(qint32 offset, qint32 count)
  class ImFixer (line 1084) | class ImFixer: public QObject {
    method eventFilter (line 1086) | bool eventFilter(QObject *obj, QEvent *event) override {
  function QString (line 1220) | QString AsemanDevices::startCameraPicture()
  function QVariantList (line 1249) | QVariantList AsemanDevices::getContactList(std::function<void(const QVar...

FILE: src/gui/asemanglobaltranslations.cpp
  class AsemanGlobalTranslations::Private (line 25) | class AsemanGlobalTranslations::Private
  function AsemanGlobalTranslations (line 40) | AsemanGlobalTranslations *AsemanGlobalTranslations::instance()

FILE: src/gui/asemanglobaltranslations.h
  type AsemanGlobalTranslations (line 52) | typedef AsemanGlobalTranslations QAsemanGlobalTranslations;

FILE: src/gui/asemanimagecoloranalizor.cpp
  class AsemanImageColorAnalizorPrivate (line 36) | class AsemanImageColorAnalizorPrivate
  function QUrl (line 56) | QUrl AsemanImageColorAnalizor::source() const
  function QString (line 72) | QString AsemanImageColorAnalizor::sourceString() const
  function QColor (line 98) | QColor AsemanImageColorAnalizor::color() const
  class AsemanImageColorAnalizorThreadPrivate (line 133) | class AsemanImageColorAnalizorThreadPrivate
  function AsemanImageColorAnalizorCore (line 187) | AsemanImageColorAnalizorCore *AsemanImageColorAnalizorThread::getCore()
  class AsemanImageColorAnalizorCorePrivate (line 221) | class AsemanImageColorAnalizorCorePrivate

FILE: src/gui/asemanimagecoloranalizor.h
  function Q_OBJECT (line 32) | Q_OBJECT
  type AsemanImageColorAnalizor (line 98) | typedef AsemanImageColorAnalizor QAsemanImageColorAnalizor;
  function class (line 102) | class AsemanImageColorAnalizorCore : public QObject

FILE: src/gui/asemanjavalayer.cpp
  class AsemanJavaLayerPrivate (line 54) | class AsemanJavaLayerPrivate
  function AsemanJavaLayer (line 86) | AsemanJavaLayer *AsemanJavaLayer::instance()
  function QString (line 189) | QString AsemanJavaLayer::createNotificationChannel(const QString &channe...
  function qreal (line 282) | qreal AsemanJavaLayer::density()
  function QString (line 288) | QString AsemanJavaLayer::packageName()
  function QString (line 294) | QString AsemanJavaLayer::deviceName()
  function QString (line 300) | QString AsemanJavaLayer::deviceId()
  function QRect (line 306) | QRect AsemanJavaLayer::keyboardRect()
  function QString (line 345) | QString AsemanJavaLayer::getLastImages(qint32 offset, qint32 count)
  function QString (line 353) | QString AsemanJavaLayer::getContactList()
  function noteRecieved (line 408) | static void noteRecieved( JNIEnv *env, jobject obj ,jstring title, jstri...
  function deepLinkReceived (line 423) | static void deepLinkReceived( JNIEnv *env, jobject obj ,jstring link)
  function imageRecieved (line 436) | static void imageRecieved( JNIEnv *env, jobject obj ,jstring jpath )
  function selectImageResult (line 452) | static void selectImageResult( JNIEnv *env, jobject obj ,jstring path )
  function activityPaused (line 462) | static void activityPaused( JNIEnv *env, jobject obj )
  function activityStopped (line 470) | static void activityStopped( JNIEnv *env, jobject obj )
  function activityResumed (line 478) | static void activityResumed( JNIEnv *env, jobject obj )
  function activityStarted (line 486) | static void activityStarted( JNIEnv *env, jobject obj )
  function activityRestarted (line 494) | static void activityRestarted( JNIEnv *env, jobject obj )
  function activityDestroyed (line 502) | static void activityDestroyed( JNIEnv *env, jobject obj )
  function keyboardVisiblityChanged (line 510) | static void keyboardVisiblityChanged( JNIEnv *env, jobject obj, jint hei...
  function aseman_jlayer_registerNativeMethods (line 518) | bool aseman_jlayer_registerNativeMethods() {

FILE: src/gui/asemanjavalayer.h
  type ImportanceTypes (line 36) | enum ImportanceTypes {

FILE: src/gui/asemankeyhandler.cpp
  class AsemanKeyHandler::Private (line 9) | class AsemanKeyHandler::Private
  function QObject (line 41) | QObject *AsemanKeyHandler::window() const
  function qint32 (line 46) | qint32 AsemanKeyHandler::key() const
  function qint32 (line 60) | qint32 AsemanKeyHandler::modifiers() const
  function qint32 (line 65) | qint32 AsemanKeyHandler::scanCode() const

FILE: src/gui/asemanmacmanager.h
  function class (line 7) | class AsemanMacManager: public QObject

FILE: src/gui/asemanmimeapps.cpp
  class AsemanMimeAppsItem (line 37) | class AsemanMimeAppsItem
  function QStringList (line 52) | QStringList filesOf( const QString & path )
  function readConfFile (line 67) | QHash<QString,QString> readConfFile( const QString & file )
  function init_mimeApps (line 101) | void init_mimeApps()
  class AsemanMimeAppsPrivate (line 131) | class AsemanMimeAppsPrivate
  function QStringList (line 145) | QStringList AsemanMimeApps::appsOfMime(const QString &mime)
  function QStringList (line 150) | QStringList AsemanMimeApps::appsOfFile(const QString &file)
  function QString (line 156) | QString AsemanMimeApps::appName(const QString &app) const
  function QString (line 161) | QString AsemanMimeApps::appIcon(const QString &app) const
  function QString (line 166) | QString AsemanMimeApps::appGenericName(const QString &app) const
  function QString (line 171) | QString AsemanMimeApps::appComment(const QString &app) const
  function QString (line 176) | QString AsemanMimeApps::appPath(const QString &app) const
  function QString (line 181) | QString AsemanMimeApps::appCommand(const QString &app) const
  function QStringList (line 186) | QStringList AsemanMimeApps::appMimes(const QString &app) const

FILE: src/gui/asemanmimeapps.h
  type AsemanMimeApps (line 53) | typedef AsemanMimeApps QAsemanMimeApps;

FILE: src/gui/asemanmimedata.cpp
  class AsemanMimeDataPrivate (line 27) | class AsemanMimeDataPrivate
  function QString (line 51) | QString AsemanMimeData::text() const
  function QString (line 65) | QString AsemanMimeData::html() const
  function QVariantMap (line 93) | QVariantMap AsemanMimeData::dataMap() const
  function QStringList (line 98) | QStringList AsemanMimeData::formats() const
  function QString (line 127) | QString AsemanMimeData::getDataAsString(const QString &type)

FILE: src/gui/asemantexttools.cpp
  class AsemanTextToolsPrivate (line 24) | class AsemanTextToolsPrivate
  function qreal (line 37) | qreal AsemanTextTools::htmlWidth(const QString &html)

FILE: src/gui/asemantexttools.h
  type AsemanTextTools (line 42) | typedef AsemanTextTools QAsemanTextTools;

FILE: src/gui/asemantitlebarcolorgrabber.cpp
  class AsemanTitleBarColorGrabberPrivate (line 27) | class AsemanTitleBarColorGrabberPrivate
  function QWindow (line 79) | QWindow *AsemanTitleBarColorGrabber::window() const
  function QColor (line 113) | QColor AsemanTitleBarColorGrabber::defaultColor() const
  function QColor (line 118) | QColor AsemanTitleBarColorGrabber::color() const

FILE: src/gui/asemantools.cpp
  class AsemanToolsPrivate (line 52) | class AsemanToolsPrivate
  function QDateTime (line 68) | QDateTime AsemanTools::currentDate()
  function QString (line 73) | QString AsemanTools::dateToMSec(const QDateTime &dt)
  function QDateTime (line 78) | QDateTime AsemanTools::mSecToDate(const QString &ms)
  function qint64 (line 83) | qint64 AsemanTools::dateToSec(const QDateTime &dt)
  function QDateTime (line 92) | QDateTime AsemanTools::dateFromSec(qint64 date)
  function QString (line 97) | QString AsemanTools::dateToString(const QDateTime &dt, const QString & f...
  function QDateTime (line 105) | QDateTime AsemanTools::datefromString(const QString &dt, const QString &...
  function QString (line 113) | QString AsemanTools::msecToTimeString(qint32 msec, const QString &format)
  function QDate (line 118) | QDate AsemanTools::dateAddDays(const QDate &date, int days)
  function QDateTime (line 123) | QDateTime AsemanTools::daysToDate(qint32 days)
  function QStringList (line 128) | QStringList AsemanTools::toStringList(const QVariant &value)
  function QVariantMap (line 133) | QVariantMap AsemanTools::toVariantMap(const QVariant &value)
  function QVariantList (line 138) | QVariantList AsemanTools::toVariantList(const QVariant &value)
  function QString (line 143) | QString AsemanTools::byteArrayToString(const QVariant &value)
  function QByteArray (line 148) | QByteArray AsemanTools::compress(const QByteArray &data, int level)
  function QByteArray (line 153) | QByteArray AsemanTools::uncompress(const QByteArray &data)
  function QVariant (line 158) | QVariant AsemanTools::bytesToVariant(const QByteArray &_data)
  function QByteArray (line 167) | QByteArray AsemanTools::variantToBytes(const QVariant &var)
  function QString (line 175) | QString AsemanTools::fileName(const QString &_path)
  function QString (line 183) | QString AsemanTools::fileSuffix(const QString &_path)
  function QString (line 206) | QString AsemanTools::fileMime(const QString &path)
  function QString (line 212) | QString AsemanTools::fileParent(const QString &path)
  function QString (line 228) | QString AsemanTools::fileSize(const QString &_path)
  function QString (line 236) | QString AsemanTools::readText(const QString &path)
  function QStringList (line 266) | QStringList AsemanTools::filesOf(const QString &path)
  function QSize (line 271) | QSize AsemanTools::imageSize(const QString &_path)
  class ResizeRunnable (line 288) | class ResizeRunnable: public QRunnable {
    method run (line 289) | void run() {
  function QByteArray (line 356) | QByteArray AsemanTools::readFile(const QString &path, bool uncompress)
  function QString (line 371) | QString AsemanTools::className(QObject *obj)
  function QStringList (line 383) | QStringList AsemanTools::stringLinks(const QString &str)
  function QUrl (line 401) | QUrl AsemanTools::stringToUrl(const QString &path)
  function QString (line 406) | QString AsemanTools::urlToLocalPath(const QUrl &url)
  function QString (line 442) | QString AsemanTools::qtVersion()
  function QString (line 447) | QString AsemanTools::aboutAseman()
  function qreal (line 458) | qreal AsemanTools::colorHue(const QColor &clr)
  function qreal (line 463) | qreal AsemanTools::colorLightness(const QColor &clr)
  function qreal (line 468) | qreal AsemanTools::colorSaturation(const QColor &clr)
  function QVariantMap (line 482) | QVariantMap AsemanTools::colorHsl(const QColor &clr)
  function QString (line 540) | QString AsemanTools::translateNumbers(QString input)
  function QString (line 555) | QString AsemanTools::trNums(QString input)
  function QString (line 560) | QString AsemanTools::passToMd5(const QString &pass)
  function QString (line 568) | QString AsemanTools::md5(const QString &str)
  function QString (line 573) | QString AsemanTools::passToHash(const QString &pass, int method)
  function QString (line 581) | QString AsemanTools::hash(const QString &str, int method)
  function QString (line 618) | QString AsemanTools::createUuid()
  function QString (line 623) | QString AsemanTools::stringRemove(QString str, const QString &text, bool...
  function QString (line 631) | QString AsemanTools::stringReplace(QString str, const QString &text, con...
  function QVariantList (line 639) | QVariantList AsemanTools::stringRegExp(QString str, const QString &regEx...
  function QString (line 653) | QString AsemanTools::htmlToPlaintText(const QString &html)
  function QVariantMap (line 724) | QVariantMap AsemanTools::decodeJwt(const QString &token)
  function QVariant (line 743) | QVariant AsemanTools::property(QObject *obj, const QString &property)
  function QVariant (line 789) | QVariant AsemanTools::call(QObject *obj, const QString &member, Qt::Conn...

FILE: src/gui/asemantools.h
  type HashMethod (line 44) | enum HashMethod {

FILE: src/gui/asemantranslationmanager.cpp
  class AsemanTranslationManager::Private (line 30) | class AsemanTranslationManager::Private
  function QUrl (line 57) | QUrl AsemanTranslationManager::sourceDirectory() const
  function QString (line 72) | QString AsemanTranslationManager::localeName() const
  function QString (line 87) | QString AsemanTranslationManager::fileName() const
  function QString (line 102) | QString AsemanTranslationManager::delimiters() const

FILE: src/gui/asemanwindowdetails.cpp
  class AsemanWindowDetailsPrivate (line 24) | class AsemanWindowDetailsPrivate
  function QWindow (line 36) | QWindow *AsemanWindowDetails::window() const
  function QScreen (line 57) | QScreen *AsemanWindowDetails::screen() const

FILE: src/gui/asemanwindowdetails.h
  type AsemanWindowDetails (line 52) | typedef AsemanWindowDetails QAsemanWindowDetails;

FILE: src/httpserver/asemanhttpserver.cpp
  class AsemanHttpServer::Private (line 15) | class AsemanHttpServer::Private
    class CallbackPack (line 18) | class CallbackPack {
  class CallRunnable (line 202) | class CallRunnable: public QRunnable
    method run (line 211) | void run() {

FILE: src/httpserver/asemanhttpserver.h
  type class (line 19) | enum class
  function StatusCode (line 61) | enum class StatusCode {
  type AsemanHttpServer (line 222) | typedef AsemanHttpServer QAsemanHttpServer;

FILE: src/multimedia/asemanandroidmultimedia.cpp
  class AsemanAndroidMultimediaPrivate (line 53) | class AsemanAndroidMultimediaPrivate
  function AsemanAndroidMultimedia (line 80) | AsemanAndroidMultimedia *AsemanAndroidMultimedia::instance()
  function QString (line 96) | QString AsemanAndroidMultimedia::getAllMusics()
  function QString (line 102) | QString AsemanAndroidMultimedia::getAllAlbums()
  function QString (line 108) | QString AsemanAndroidMultimedia::getAllArtists()
  function QString (line 114) | QString AsemanAndroidMultimedia::getArtistAlbums(const QString &artistId)
  function QString (line 121) | QString AsemanAndroidMultimedia::getArtistSongs(const QString &artistId)
  function QString (line 128) | QString AsemanAndroidMultimedia::getAlbumSongs(const QString &albumId)
  function aseman_jlayer_registerNativeMethods (line 147) | bool aseman_jlayer_registerNativeMethods() {

FILE: src/multimedia/asemanandroidmultimedia.h
  type AsemanAndroidMultimedia (line 54) | typedef AsemanAndroidMultimedia QAsemanAndroidMultimedia;

FILE: src/multimedia/asemanaudioencodersettings.cpp
  class AsemanAudioEncoderSettingsPrivate (line 23) | class AsemanAudioEncoderSettingsPrivate
  function QString (line 63) | QString AsemanAudioEncoderSettings::codec() const
  function QVariantMap (line 91) | QVariantMap AsemanAudioEncoderSettings::encodingOptions() const
  function QAudioEncoderSettings (line 133) | QAudioEncoderSettings AsemanAudioEncoderSettings::exportSettings() const

FILE: src/multimedia/asemanaudioencodersettings.h
  type EncodingMode (line 54) | enum EncodingMode

FILE: src/multimedia/asemanaudiorecorder.cpp
  class AsemanAudioRecorderPrivate (line 26) | class AsemanAudioRecorderPrivate
  function AsemanAudioEncoderSettings (line 47) | AsemanAudioEncoderSettings *AsemanAudioRecorder::encoderSettings() const
  function QUrl (line 70) | QUrl AsemanAudioRecorder::output() const
  function qreal (line 88) | qreal AsemanAudioRecorder::volume() const
  function QString (line 110) | QString AsemanAudioRecorder::audioInput() const
  function QStringList (line 115) | QStringList AsemanAudioRecorder::audioInputs() const

FILE: src/multimedia/asemanaudiorecorder.h
  function Q_OBJECT (line 33) | Q_OBJECT
  type Status (line 56) | enum Status {

FILE: src/multimedia/asemancameracapture.cpp
  class AsemanCameraCapturePrivate (line 29) | class AsemanCameraCapturePrivate

FILE: src/multimedia/asemancameracapture.h
  type CameraFace (line 31) | enum CameraFace {
  type AsemanCameraCapture (line 49) | typedef AsemanCameraCapture QAsemanCameraCapture;

FILE: src/multimedia/asemanmultimediadatabase.cpp
  class AsemanMultimediaDatabase::Private (line 27) | class AsemanMultimediaDatabase::Private
  function QVariantList (line 38) | QVariantList AsemanMultimediaDatabase::getAllMusics() const
  function QVariantList (line 47) | QVariantList AsemanMultimediaDatabase::getAllAlbums() const
  function QVariantList (line 56) | QVariantList AsemanMultimediaDatabase::getAllArtists() const
  function QVariantList (line 65) | QVariantList AsemanMultimediaDatabase::getArtistAlbums(const QString &ar...
  function QVariantList (line 74) | QVariantList AsemanMultimediaDatabase::getArtistSongs(const QString &art...
  function QVariantList (line 83) | QVariantList AsemanMultimediaDatabase::getAlbumSongs(const QString &albu...

FILE: src/multimedia/private/asemanandroidcameracapturecore.cpp
  function AsemanAndroidCameraCaptureCore (line 41) | AsemanAndroidCameraCaptureCore *getCameraCaptureObject(jobject obj)
  class AsemanAndroidCameraCaptureCorePrivate (line 54) | class AsemanAndroidCameraCaptureCorePrivate
  function imageCaptured (line 86) | static void imageCaptured( JNIEnv *env, jobject obj, jint id, jstring path)
  function aseman_android_camcap_registerNativeMethods (line 98) | bool aseman_android_camcap_registerNativeMethods() {

FILE: src/network/asemandownloader.cpp
  class AsemanDownloaderPrivate (line 29) | class AsemanDownloaderPrivate
  function qint64 (line 58) | qint64 AsemanDownloader::recievedBytes() const
  function qint64 (line 63) | qint64 AsemanDownloader::totalBytes() const
  function QString (line 77) | QString AsemanDownloader::destination() const
  function QString (line 91) | QString AsemanDownloader::path() const
  function QVariantMap (line 119) | QVariantMap AsemanDownloader::header() const

FILE: src/network/asemanfiledownloaderqueue.cpp
  class AsemanFileDownloaderQueuePrivate (line 30) | class AsemanFileDownloaderQueuePrivate
    type QueueItem (line 33) | struct QueueItem
  function QString (line 81) | QString AsemanFileDownloaderQueue::destination() const
  function AsemanDownloader (line 181) | AsemanDownloader *AsemanFileDownloaderQueue::getDownloader()

FILE: src/network/asemanfiledownloaderqueueitem.cpp
  class AsemanFileDownloaderQueueItemPrivate (line 27) | class AsemanFileDownloaderQueueItemPrivate
  function QString (line 65) | QString AsemanFileDownloaderQueueItem::source() const
  function QString (line 81) | QString AsemanFileDownloaderQueueItem::fileName() const
  function QVariantMap (line 95) | QVariantMap AsemanFileDownloaderQueueItem::header() const
  function qreal (line 100) | qreal AsemanFileDownloaderQueueItem::percent() const
  function AsemanFileDownloaderQueue (line 128) | AsemanFileDownloaderQueue *AsemanFileDownloaderQueueItem::downloaderQueu...
  function QString (line 133) | QString AsemanFileDownloaderQueueItem::result() const

FILE: src/network/asemanhostchecker.cpp
  class AsemanPingPrivate (line 26) | class AsemanPingPrivate
  function QString (line 64) | QString AsemanHostChecker::host() const
  function qint32 (line 79) | qint32 AsemanHostChecker::port() const
  function qint32 (line 94) | qint32 AsemanHostChecker::interval() const

FILE: src/network/asemannetworkmanager.cpp
  class AsemanNetworkCheckerPrivate (line 29) | class AsemanNetworkCheckerPrivate
  function QString (line 66) | QString AsemanNetworkManager::defaultNetworkIdentifier() const
  function AsemanNetworkManagerItem (line 71) | AsemanNetworkManagerItem *AsemanNetworkManager::defaultNetwork() const
  function QVariantMap (line 76) | QVariantMap AsemanNetworkManager::configurations() const
  function qint32 (line 93) | qint32 AsemanNetworkManager::interval() const

FILE: src/network/asemannetworkmanageritem.cpp
  class AsemanNetworkManagerItemPrivate (line 21) | class AsemanNetworkManagerItemPrivate
  function QString (line 44) | QString AsemanNetworkManagerItem::bearerTypeName() const
  function QString (line 59) | QString AsemanNetworkManagerItem::identifier() const
  function QString (line 74) | QString AsemanNetworkManagerItem::name() const
  function QObject (line 94) | QObject &AsemanNetworkManagerItem::operator =(const QNetworkConfiguratio...

FILE: src/network/asemannetworkmanageritem.h
  type Type (line 49) | enum Type {
  type Purpose (line 56) | enum Purpose {
  type StateFlag (line 63) | enum StateFlag {
  type BearerType (line 70) | enum BearerType {

FILE: src/network/asemannetworkproxy.cpp
  class AsemanNetworkProxy::Private (line 3) | class AsemanNetworkProxy::Private
  function qint32 (line 16) | qint32 AsemanNetworkProxy::type() const
  function QString (line 31) | QString AsemanNetworkProxy::hostName() const
  function qint32 (line 46) | qint32 AsemanNetworkProxy::port() const
  function QString (line 61) | QString AsemanNetworkProxy::user() const
  function QString (line 76) | QString AsemanNetworkProxy::password() const

FILE: src/network/asemannetworkquickobject.cpp
  class AsemanNetworkQuickObjectPrivate (line 25) | class AsemanNetworkQuickObjectPrivate
  function QObject (line 69) | QObject *AsemanNetworkQuickObject::at(QQmlListProperty<QObject> *p, int ...

FILE: src/network/asemannetworkquickobject.h
  type AsemanNetworkQuickObject (line 59) | typedef AsemanNetworkQuickObject QAsemanNetworkQuickObject;

FILE: src/network/asemannetworkrequestmanager.cpp
  class AsemanNetworkRequestManager::Private (line 35) | class AsemanNetworkRequestManager::Private
  function AsemanNetworkRequestReply (line 77) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::get(AsemanNetwor...
  function AsemanNetworkRequestReply (line 115) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::post(AsemanNetwo...
  function AsemanNetworkRequestReply (line 151) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::post(AsemanNetwo...
  function AsemanNetworkRequestReply (line 178) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::postForm(AsemanN...
  function AsemanNetworkRequestReply (line 191) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::customMethod(Ase...
  function AsemanNetworkRequestReply (line 227) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::customMethod(Ase...
  function AsemanNetworkRequestReply (line 254) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::customMethodForm...
  function AsemanNetworkRequestReply (line 267) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::put(AsemanNetwor...
  function AsemanNetworkRequestReply (line 303) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::put(AsemanNetwor...
  function AsemanNetworkRequestReply (line 330) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::putForm(AsemanNe...
  function QUrlQuery (line 374) | QUrlQuery AsemanNetworkRequestManager::queryOfMap(const QVariantMap &key...
  function QByteArray (line 391) | QByteArray AsemanNetworkRequestManager::variantToData(const QVariant &va...
  function QVariant (line 413) | QVariant AsemanNetworkRequestManager::processData(AsemanNetworkRequestRe...
  function QHttpMultiPart (line 436) | QHttpMultiPart *AsemanNetworkRequestManager::generateFormData(const QVar...
  function QString (line 483) | QString AsemanNetworkRequestManager::generateWWWFormData(const QVariantM...
  function QString (line 501) | QString AsemanNetworkRequestManager::generateForm(const QVariantMap &map...
  function QString (line 524) | QString AsemanNetworkRequestManager::generateJson(const QVariantMap &map...
  function QByteArray (line 529) | QByteArray AsemanNetworkRequestManager::requestData(AsemanNetworkRequest...
  function QVariantMap (line 545) | QVariantMap AsemanNetworkRequestManager::removeEmptyValues(const QVarian...
  function QString (line 570) | QString AsemanNetworkRequestManager::boundaryToken() const
  function AsemanNetworkRequestReply (line 589) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::get(AsemanNetwor...
  function AsemanNetworkRequestReply (line 598) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::post(AsemanNetwo...
  function AsemanNetworkRequestReply (line 610) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::put(AsemanNetwor...
  function AsemanNetworkRequestReply (line 624) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::patch(AsemanNetw...
  function AsemanNetworkRequestReply (line 629) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::deleteMethod(Ase...
  function AsemanNetworkRequestReply (line 634) | AsemanNetworkRequestReply *AsemanNetworkRequestManager::customMethod(con...

FILE: src/network/asemannetworkrequestobject.cpp
  class AsemanNetworkRequestObject::Private (line 31) | class AsemanNetworkRequestObject::Private
  function QVariant (line 78) | QVariant AsemanNetworkRequestObject::response() const
  function QVariant (line 83) | QVariant AsemanNetworkRequestObject::data() const
  function QVariant (line 111) | QVariant AsemanNetworkRequestObject::cachedData() const
  function QString (line 136) | QString AsemanNetworkRequestObject::cachePath() const
  function qint32 (line 141) | qint32 AsemanNetworkRequestObject::status() const
  function QString (line 185) | QString AsemanNetworkRequestObject::error() const
  function QVariantMap (line 204) | QVariantMap AsemanNetworkRequestObject::headers() const
  function QUrl (line 218) | QUrl AsemanNetworkRequestObject::url() const
  function QStringList (line 232) | QStringList AsemanNetworkRequestObject::ignoreKeys() const
  function QRegularExpression (line 246) | QRegularExpression AsemanNetworkRequestObject::ignoreRegExp() const
  function QString (line 274) | QString AsemanNetworkRequestObject::sslErrors() const
  function QVariantMap (line 288) | QVariantMap AsemanNetworkRequestObject:: toMap() const
  function QString (line 311) | QString AsemanNetworkRequestObject::toJson() const
  function QString (line 321) | QString AsemanNetworkRequestObject::toFormData(bool ignoreEmpty) const
  function QStringList (line 365) | QStringList AsemanNetworkRequestObject::properties() const

FILE: src/network/asemannetworkrequestobject.h
  type ContentType (line 56) | enum ContentType {

FILE: src/network/asemannetworkrequestreply.cpp
  class AsemanNetworkRequestReply::Private (line 24) | class AsemanNetworkRequestReply::Private
  function qint32 (line 111) | qint32 AsemanNetworkRequestReply::statusCode() const
  function QVariantMap (line 123) | QVariantMap AsemanNetworkRequestReply::headers() const

FILE: src/network/asemannetworksleepmanager.cpp
  class AsemanNetworkSleepManagerPrivate (line 28) | class AsemanNetworkSleepManagerPrivate
  function QString (line 74) | QString AsemanNetworkSleepManager::host() const
  function qint32 (line 84) | qint32 AsemanNetworkSleepManager::port() const
  function qint32 (line 94) | qint32 AsemanNetworkSleepManager::interval() const

FILE: src/network/asemansocketinterface.cpp
  class AsemanSocketInterface::Private (line 33) | class AsemanSocketInterface::Private
    type InterfaceCallType (line 36) | enum InterfaceCallType {
  function QByteArray (line 110) | QByteArray AsemanSocketInterface::call(QByteArray data)
  function qint64 (line 162) | qint64 AsemanSocketInterface::call(const QString &_method, const QVarian...
  function QVariant (line 196) | QVariant AsemanSocketInterface::callSync(const QString &method, const QV...
  function QVariant (line 248) | QVariant AsemanSocketInterface::call(QObject *obj, const QString &member...

FILE: src/network/asemansocketinterface.h
  type AsemanSocketInterface (line 83) | typedef AsemanSocketInterface QAsemanSocketInterface;

FILE: src/qml/asemanapplicationitem.cpp
  class AsemanApplicationItemPrivate (line 53) | class AsemanApplicationItemPrivate
  function QString (line 158) | QString AsemanApplicationItem::applicationId()
  function QVariantMap (line 242) | QVariantMap AsemanApplicationItem::requestPermissions(QStringList persmi...
  function AsemanNetworkProxy (line 302) | AsemanNetworkProxy *AsemanApplicationItem::proxy() const
  function QObject (line 345) | QObject *AsemanApplicationItem::at(QQmlListProperty<QObject> *p, int idx)

FILE: src/qml/asemanapplicationitem.h
  function Q_OBJECT (line 40) | Q_OBJECT
  type AsemanApplicationItem (line 104) | typedef AsemanApplicationItem QAsemanApplicationItem;

FILE: src/qml/asemanapplicationsingleton.cpp
  class AsemanApplicationSingletonPrivate (line 3) | class AsemanApplicationSingletonPrivate

FILE: src/qml/asemanapplicationsingleton.h
  type AsemanApplicationSingleton (line 18) | typedef AsemanApplicationSingleton QAsemanApplicationSingleton;

FILE: src/qml/asemanbackhandler.cpp
  class AsemanHandlerItem (line 26) | class AsemanHandlerItem
  class AsemanBackHandlerPrivate (line 33) | class AsemanBackHandlerPrivate
    method AsemanHandlerItem (line 38) | AsemanHandlerItem lastActiveItem(qint32 *index = Q_NULLPTR) {
  function QObject (line 65) | QObject *AsemanBackHandler::topHandlerObject() const
  function QJSValue (line 73) | QJSValue AsemanBackHandler::topHandlerMethod() const
  function QObject (line 124) | QObject *AsemanBackHandler::tryPopHandler()
  function QObject (line 147) | QObject *AsemanBackHandler::forcePopHandler()

FILE: src/qml/asemandevicesitem.cpp
  class AsemanDevicesItemPrivate (line 24) | class AsemanDevicesItemPrivate
  function QVariantList (line 89) | QVariantList AsemanDevicesItem::getContactList(QJSValue asyncCallback)

FILE: src/qml/asemandevicesitem.h
  type AsemanDevicesItem (line 34) | typedef AsemanDevicesItem QAsemanDevicesItem;

FILE: src/qml/asemandragarea.cpp
  type GrabState (line 25) | enum GrabState {
  class AsemanDragAreaPrivate (line 31) | class AsemanDragAreaPrivate

FILE: src/qml/asemandragobject.cpp
  class AsemanDragObjectPrivate (line 29) | class AsemanDragObjectPrivate
  function AsemanMimeData (line 63) | AsemanMimeData *AsemanDragObject::mimeData() const
  function QQuickItem (line 91) | QQuickItem *AsemanDragObject::source() const
  function QUrl (line 112) | QUrl AsemanDragObject::image() const
  function QImage (line 126) | QImage AsemanDragObject::imageData() const
  function QPoint (line 145) | QPoint AsemanDragObject::hotSpot() const

FILE: src/qml/asemanfileresourcemanager.cpp
  class AsemanFileResourceManager::Private (line 17) | class AsemanFileResourceManager::Private
  function QString (line 43) | QString AsemanFileResourceManager::root() const
  function QString (line 92) | QString AsemanFileResourceManager::get(const QString &id)

FILE: src/qml/asemanfileresourcemanager.h
  function QString (line 24) | QString root() const;
  type AsemanFileResourceManager (line 57) | typedef AsemanFileResourceManager QAsemanFileResourceManager;

FILE: src/qml/asemanitemgrabber.cpp
  class AsemanItemGrabberPrivate (line 27) | class AsemanItemGrabberPrivate
  function QQuickItem (line 53) | QQuickItem *AsemanItemGrabber::item() const
  function QString (line 67) | QString AsemanItemGrabber::suffix() const
  function QString (line 81) | QString AsemanItemGrabber::fileName() const

FILE: src/qml/asemanmouseeventlistener.cpp
  class AsemanMouseEventListenerPrivate (line 23) | class AsemanMouseEventListenerPrivate
  function qreal (line 77) | qreal AsemanMouseEventListener::mouseX() const
  function qreal (line 82) | qreal AsemanMouseEventListener::mouseY() const
  function QPointF (line 87) | QPointF AsemanMouseEventListener::mousePosition() const

FILE: src/qml/asemanprocess.cpp
  class AsemanProcess::Private (line 24) | class AsemanProcess::Private
  function QString (line 47) | QString AsemanProcess::command() const
  function QStringList (line 102) | QStringList AsemanProcess::arguments() const

FILE: src/qml/asemanproxycomponent.cpp
  class AsemanProxyComponent::Private (line 7) | class AsemanProxyComponent::Private
  function QQmlComponent (line 20) | QQmlComponent *AsemanProxyComponent::source() const
  function QObject (line 35) | QObject *AsemanProxyComponent::object() const

FILE: src/qml/asemanproxycomponent.h
  type AsemanProxyComponent (line 38) | typedef AsemanProxyComponent QAsemanProxyComponent;

FILE: src/qml/asemanqmlengine.cpp
  class AsemanQmlEnginePrivate (line 24) | class AsemanQmlEnginePrivate

FILE: src/qml/asemanqmlengine.h
  type AsemanQmlEngine (line 42) | typedef AsemanQmlEngine QAsemanQmlEngine;

FILE: src/qml/asemanqmlimage.cpp
  class AsemanQmlImage::Private (line 12) | class AsemanQmlImage::Private
  function QUrl (line 95) | QUrl AsemanQmlImage::source() const
  function qreal (line 263) | qreal AsemanQmlImage::paintedHeight() const
  function qreal (line 268) | qreal AsemanQmlImage::paintedWidth() const
  function QSize (line 273) | QSize AsemanQmlImage::imageSize() const
  function QSizeF (line 280) | QSizeF AsemanQmlImage::paintedSize() const
  function qreal (line 337) | qreal AsemanQmlImage::progress() const
  function QString (line 347) | QString AsemanQmlImage::hash()

FILE: src/qml/asemanqmlimage.h
  type FillMode (line 33) | enum FillMode {

FILE: src/qml/asemanqttools.cpp
  function AsemanQuickViewWrapper (line 47) | AsemanQuickViewWrapper *AsemanQtTools::quickView(QQmlEngine *engine)
  function AsemanApplicationSingleton (line 53) | AsemanApplicationSingleton *AsemanQtTools::application(QQmlEngine *engine)
  function AsemanDesktopTools (line 58) | AsemanDesktopTools *AsemanQtTools::desktopTools()
  function AsemanDevicesItem (line 63) | AsemanDevicesItem *AsemanQtTools::devices()
  function AsemanQtLogger (line 68) | AsemanQtLogger *AsemanQtTools::qtLogger()
  function AsemanJavaLayer (line 78) | AsemanJavaLayer *AsemanQtTools::javaLayer()
  function AsemanToolsItem (line 84) | AsemanToolsItem *AsemanQtTools::tools()
  function AsemanTextTools (line 89) | AsemanTextTools *AsemanQtTools::textTools()
  function AsemanCalendarConverter (line 94) | AsemanCalendarConverter *AsemanQtTools::calendar(QQmlEngine *)
  function AsemanBackHandler (line 99) | AsemanBackHandler *AsemanQtTools::backHandler(QQmlEngine *)
  function AsemanGlobalTranslations (line 104) | AsemanGlobalTranslations *AsemanQtTools::globalTranslations(QQmlEngine *)

FILE: src/qml/asemanqttools.h
  function class (line 30) | class LIBQTASEMAN_QML_EXPORT AsemanQtTools

FILE: src/qml/asemanquickobject.cpp
  class AsemanQuickObjectPrivate (line 25) | class AsemanQuickObjectPrivate
  function QObject (line 69) | QObject *AsemanQuickObject::at(QQmlListProperty<QObject> *p, int idx)

FILE: src/qml/asemanquickobject.h
  type AsemanQuickObject (line 73) | typedef AsemanQuickObject QAsemanQuickObject;

FILE: src/qml/asemanquickview.cpp
  class AsemanQuickViewPrivate (line 38) | class AsemanQuickViewPrivate
  function AsemanDesktopTools (line 60) | AsemanDesktopTools *AsemanQuickView::desktopTools() const
  function AsemanDevicesItem (line 65) | AsemanDevicesItem *AsemanQuickView::devices() const
  function AsemanQtLogger (line 70) | AsemanQtLogger *AsemanQuickView::qtLogger() const
  function AsemanToolsItem (line 75) | AsemanToolsItem *AsemanQuickView::tools() const
  function AsemanJavaLayer (line 81) | AsemanJavaLayer *AsemanQuickView::javaLayer() const
  function AsemanCalendarConverter (line 87) | AsemanCalendarConverter *AsemanQuickView::calendar() const
  function AsemanBackHandler (line 92) | AsemanBackHandler *AsemanQuickView::backHandler() const
  function qreal (line 111) | qreal AsemanQuickView::statusBarHeight() const
  function qreal (line 116) | qreal AsemanQuickView::navigationBarHeight() const
  function QObject (line 130) | QObject *AsemanQuickView::root() const
  function QQuickItem (line 159) | QQuickItem *AsemanQuickView::focusedText() const
  function qreal (line 164) | qreal AsemanQuickView::flickVelocity() const
  function QString (line 182) | QString AsemanQuickView::offlineStoragePath() const

FILE: src/qml/asemanquickviewwrapper.cpp
  function qreal (line 50) | qreal AsemanQuickViewWrapper::statusBarHeight() const
  function qreal (line 55) | qreal AsemanQuickViewWrapper::navigationBarHeight() const
  function QObject (line 65) | QObject *AsemanQuickViewWrapper::root() const
  function QQuickItem (line 75) | QQuickItem *AsemanQuickViewWrapper::focusedText() const
  function qreal (line 80) | qreal AsemanQuickViewWrapper::flickVelocity() const
  function QWindow (line 85) | QWindow *AsemanQuickViewWrapper::window() const
  function QString (line 95) | QString AsemanQuickViewWrapper::offlineStoragePath() const

FILE: src/qml/asemantoolsitem.cpp
  class AsemanToolsItemPrivate (line 7) | class AsemanToolsItemPrivate
  function QVariant (line 19) | QVariant AsemanToolsItem::jsonToVariant(const QString &json)
  function QString (line 24) | QString AsemanToolsItem::variantToJson(QVariant value, bool compact)

FILE: src/qml/asemantoolsitem.h
  type AsemanToolsItem (line 35) | typedef AsemanToolsItem QAsemanToolsItem;

FILE: src/qml/private/quickios/qidevice.cpp
  function QString (line 29) | QString QIDevice::identifierForVendor() const
  function QVariantMap (line 41) | QVariantMap QIDevice::fetch() const
  function QIDevice (line 87) | QIDevice *QIDevice::instance()

FILE: src/qml/private/quickios/qidevice.h
  function class (line 13) | class QIDevice : public QObject

FILE: src/qml/private/quickios/qiimagepicker.cpp
  class QIImagePickerSaver (line 14) | class QIImagePickerSaver : public QRunnable {
    method run (line 20) | void run() {
  function QImage (line 122) | QImage QIImagePicker::image() const
  function QString (line 181) | QString QIImagePicker::referenceUrl() const
  function QString (line 192) | QString QIImagePicker::mediaUrl() const
  function QString (line 203) | QString QIImagePicker::mediaType() const

FILE: src/qml/private/quickios/qiimagepicker.h
  function class (line 13) | class QIImagePicker : public QObject

FILE: src/qml/private/quickios/qisystemdispatcher.cpp
  function QISystemDispatcher (line 10) | QISystemDispatcher *QISystemDispatcher::instance()

FILE: src/qml/private/quickios/qisystemdispatcher.h
  function class (line 15) | class QISystemDispatcher : public QObject {

FILE: src/qml/private/quickios/quickios.h
  function class (line 12) | class QuickIOS: public QObject

FILE: src/qml/qtsingleapplication/qtlocalpeer.cpp
  type QtLP_Private (line 82) | namespace QtLP_Private {
  type timespec (line 176) | struct timespec

FILE: src/qml/qtsingleapplication/qtlocalpeer.h
  function namespace (line 70) | namespace QtLP_Private {
  function class (line 74) | class QtLocalPeer : public QObject

FILE: src/qml/qtsingleapplication/qtlockedfile.h
  type LockMode (line 92) | enum LockMode { NoLock = 0, ReadLock, WriteLock }

FILE: src/qml/qtsingleapplication/qtlockedfile_unix.cpp
  type flock (line 88) | struct flock
  type flock (line 118) | struct flock

FILE: src/qml/qtsingleapplication/qtsingleapplication.cpp
  function QString (line 291) | QString QtSingleApplication::id() const
  function QWidget (line 325) | QWidget* QtSingleApplication::activationWindow() const

FILE: src/qml/qtsingleapplication/qtsinglecoreapplication.cpp
  function QString (line 160) | QString QtSingleCoreApplication::id() const

FILE: src/qml/qtsingleapplication/qtsinglecoreapplication.h
  function class (line 70) | class QtSingleCoreApplication : public QCoreApplication

FILE: src/sql/asemansqlobject.cpp
  class AsemanSqlObject::Private (line 55) | class AsemanSqlObject::Private
  class AsemanSqlObject::Core (line 78) | class AsemanSqlObject::Core {
    method QSqlDatabase (line 96) | QSqlDatabase &get() { return *_db; }
    method Core (line 99) | static Core *getInstance(const QString &driver, const QString &connect...
    method Core (line 115) | Core(const QString &driver, const QString &connectionName):
  function QVariant (line 207) | QVariant AsemanSqlObject::driver() const
  function QString (line 221) | QString AsemanSqlObject::table() const
  function QStringList (line 235) | QStringList AsemanSqlObject::primaryKeys() const
  function qint32 (line 240) | qint32 AsemanSqlObject::port() const
  function QString (line 255) | QString AsemanSqlObject::host() const
  function QString (line 270) | QString AsemanSqlObject::databaseName() const
  function QString (line 285) | QString AsemanSqlObject::userName() const
  function QString (line 300) | QString AsemanSqlObject::password() const
  function QString (line 315) | QString AsemanSqlObject::createQuery() const
  function QString (line 329) | QString AsemanSqlObject::lastError() const
  function qint32 (line 334) | qint32 AsemanSqlObject::insert(const QString &extra)
  function QVariantList (line 397) | QVariantList AsemanSqlObject::select()
  function QVariantList (line 412) | QVariantList AsemanSqlObject::select(const QString join, const QString &...
  function QVariantList (line 448) | QVariantList AsemanSqlObject::query(const QString &query, const QVariant...
  function QVariantMap (line 495) | QVariantMap AsemanSqlObject::prepareBinds(const QVariantMap &binds) const
  function QVariantList (line 523) | QVariantList AsemanSqlObject::generateResult(QSqlQuery &q)
  function QVariantMap (line 552) | QVariantMap AsemanSqlObject::getData()
  function QStringList (line 591) | QStringList AsemanSqlObject::properties() const

FILE: src/sql/asemansqlobject.h
  function Q_OBJECT (line 32) | Q_OBJECT
  function QVariantList (line 100) | QVariantList select(const QString join, const QString &where, const QVar...
  function push (line 103) | void push() { insert(); }
  type AsemanSqlObject (line 147) | typedef AsemanSqlObject QAsemanSqlObject;
  function class (line 149) | class AsemanSqlObjectAsync: public QThread

FILE: src/styles/iosstyle/qquickiosstyleripple.cpp
  function QT_BEGIN_NAMESPACE (line 51) | QT_BEGIN_NAMESPACE
  class QQuickIOSStyleRippleWaveNode (line 62) | class QQuickIOSStyleRippleWaveNode : public QQuickAnimatedNode
  class QQuickIOSStyleRippleBackgroundNode (line 149) | class QQuickIOSStyleRippleBackgroundNode : public QQuickAnimatedNode
  function QColor (line 243) | QColor QQuickIOSStyleRipple::color() const
  function qreal (line 257) | qreal QQuickIOSStyleRipple::clipRadius() const
  function QPointF (line 312) | QPointF QQuickIOSStyleRipple::anchorPoint() const
  function QQuickItem (line 337) | QQuickItem *QQuickIOSStyleRipple::anchor() const
  function qreal (line 347) | qreal QQuickIOSStyleRipple::diameter() const
  function QSGNode (line 359) | QSGNode *QQuickIOSStyleRipple::updatePaintNode(QSGNode *oldNode, UpdateP...

FILE: src/styles/iosstyle/qquickiosstyleripple_p.h
  type Trigger (line 81) | enum Trigger { Press, Release }

FILE: src/styles/iosstyle/qquickiosstylestyle.cpp
  function appearanceIsDark (line 116) | bool appearanceIsDark () { return QQuickStylePrivate::isDarkSystemTheme(...
  function effectiveTheme (line 119) | static QQuickIOSStyleStyle::Theme effectiveTheme(QQuickIOSStyleStyle::Th...
  function QQuickIOSStyleStyle (line 142) | QQuickIOSStyleStyle *QQuickIOSStyleStyle::qmlAttachedProperties(QObject ...
  function QVariant (line 210) | QVariant QQuickIOSStyleStyle::primary() const
  function QVariant (line 269) | QVariant QQuickIOSStyleStyle::accent() const
  function QVariant (line 328) | QVariant QQuickIOSStyleStyle::foreground() const
  function QVariant (line 391) | QVariant QQuickIOSStyleStyle::background() const
  function QColor (line 469) | QColor QQuickIOSStyleStyle::primaryColor() const
  function QColor (line 478) | QColor QQuickIOSStyleStyle::accentColor() const
  function QColor (line 487) | QColor QQuickIOSStyleStyle::backgroundColor() const
  function QColor (line 498) | QColor QQuickIOSStyleStyle::primaryTextColor() const
  function QColor (line 503) | QColor QQuickIOSStyleStyle::primaryHighlightedTextColor() const
  function QColor (line 508) | QColor QQuickIOSStyleStyle::secondaryTextColor() const
  function QColor (line 513) | QColor QQuickIOSStyleStyle::hintTextColor() const
  function QColor (line 518) | QColor QQuickIOSStyleStyle::textSelectionColor() const
  function QColor (line 525) | QColor QQuickIOSStyleStyle::dropShadowColor() const
  function QColor (line 530) | QColor QQuickIOSStyleStyle::dividerColor() const
  function QColor (line 535) | QColor QQuickIOSStyleStyle::iconColor() const
  function QColor (line 540) | QColor QQuickIOSStyleStyle::iconDisabledColor() const
  function QColor (line 545) | QColor QQuickIOSStyleStyle::buttonColor(bool highlighted) const
  function QColor (line 558) | QColor QQuickIOSStyleStyle::buttonColor() const
  function QColor (line 563) | QColor QQuickIOSStyleStyle::buttonBorderColor() const
  function QColor (line 577) | QColor QQuickIOSStyleStyle::buttonDisabledColor() const
  function QColor (line 583) | QColor QQuickIOSStyleStyle::highlightedButtonColor() const
  function QColor (line 588) | QColor QQuickIOSStyleStyle::frameColor() const
  function QColor (line 593) | QColor QQuickIOSStyleStyle::rippleColor() const
  function QColor (line 598) | QColor QQuickIOSStyleStyle::highlightedRippleColor() const
  function QColor (line 605) | QColor QQuickIOSStyleStyle::switchUncheckedTrackColor() const
  function QColor (line 610) | QColor QQuickIOSStyleStyle::switchCheckedTrackColor() const
  function QColor (line 621) | QColor QQuickIOSStyleStyle::switchBorderColor() const
  function QColor (line 626) | QColor QQuickIOSStyleStyle::switchHandleColor() const
  function QColor (line 631) | QColor QQuickIOSStyleStyle::switchDisabledTrackColor() const
  function QColor (line 636) | QColor QQuickIOSStyleStyle::switchDisabledHandleColor() const
  function QColor (line 641) | QColor QQuickIOSStyleStyle::scrollBarColor() const
  function QColor (line 646) | QColor QQuickIOSStyleStyle::scrollBarHoveredColor() const
  function QColor (line 651) | QColor QQuickIOSStyleStyle::scrollBarPressedColor() const
  function QColor (line 656) | QColor QQuickIOSStyleStyle::sliderBackgroundColor() const
  function QColor (line 663) | QColor QQuickIOSStyleStyle::sliderForegroundColor() const
  function QColor (line 668) | QColor QQuickIOSStyleStyle::sliderHandleColor() const
  function QColor (line 673) | QColor QQuickIOSStyleStyle::dialogColor() const
  function QColor (line 680) | QColor QQuickIOSStyleStyle::backgroundDimColor() const
  function QColor (line 685) | QColor QQuickIOSStyleStyle::listHighlightColor() const
  function QColor (line 690) | QColor QQuickIOSStyleStyle::tooltipColor() const
  function QColor (line 697) | QColor QQuickIOSStyleStyle::toolBarColor() const
  function QColor (line 705) | QColor QQuickIOSStyleStyle::toolTextColor() const
  function QColor (line 729) | QColor QQuickIOSStyleStyle::spinBoxDisabledIconColor() const
  function QColor (line 734) | QColor QQuickIOSStyleStyle::color(QQuickIOSStyleStyle::Color color) const
  function QColor (line 747) | static QColor lighterShade(const QColor &color, qreal amount)
  function QColor (line 754) | static QColor darkerShade(const QColor &color, qreal amount)
  function Enum (line 845) | static Enum toEnumValue(const QByteArray &value, bool *ok)
  function QByteArray (line 851) | static QByteArray resolveSetting(const QByteArray &env, const QSharedPoi...

FILE: src/styles/iosstyle/qquickiosstylestyle_p.h
  type Variant (line 134) | enum Variant {
  type Color (line 139) | enum Color {

FILE: src/styles/iosstyle/qquickiosstyletheme.cpp
  function QT_BEGIN_NAMESPACE (line 45) | QT_BEGIN_NAMESPACE

FILE: src/styles/iosstyle/qquickiosstyletheme_p.h
  function class (line 57) | class QQuickIOSStyleTheme

FILE: src/styles/iosstyle/qtquickcontrols2iosstylestyleplugin.cpp
  function QT_BEGIN_NAMESPACE (line 55) | QT_BEGIN_NAMESPACE
  function QString (line 106) | QString QtQuickControls2IOSStyleStylePlugin::name() const

FILE: src/widgets/asemanandroidnativenotification.cpp
  class AsemanAndroidNativeNotification::Private (line 5) | class AsemanAndroidNativeNotification::Private
  function QColor (line 28) | QColor AsemanAndroidNativeNotification::color() const
  function quint32 (line 33) | quint32 AsemanAndroidNativeNotification::sendNotify(const QString &title...

FILE: src/widgets/asemandesktoptools.cpp
  class AsemanDesktopToolsPrivate (line 42) | class AsemanDesktopToolsPrivate
  function QColor (line 99) | QColor AsemanDesktopTools::titleBarColor() const
  function QColor (line 159) | QColor AsemanDesktopTools::titleBarTransparentColor() const
  function QColor (line 166) | QColor AsemanDesktopTools::titleBarTextColor() const
  function QStringList (line 236) | QStringList AsemanDesktopTools::fontFamilies() const
  function QString (line 253) | QString AsemanDesktopTools::menuStyle() const
  function QString (line 273) | QString AsemanDesktopTools::tooltip() const
  function QObject (line 278) | QObject *AsemanDesktopTools::currentMenuObject() const
  function QString (line 290) | QString AsemanDesktopTools::getOpenFileName(QWindow *window, const QStri...
  function QStringList (line 375) | QStringList AsemanDesktopTools::getOpenFileNames(QWindow *window, const ...
  function QString (line 460) | QString AsemanDesktopTools::getSaveFileName(QWindow *window, const QStri...
  function QString (line 547) | QString AsemanDesktopTools::getExistingDirectory(QWindow *window, const ...
  function QFont (line 631) | QFont AsemanDesktopTools::getFont(QWindow *window, const QString &title,...
  function QColor (line 645) | QColor AsemanDesktopTools::getColor(const QColor &color)
  function QString (line 654) | QString AsemanDesktopTools::getText(QWindow *window, const QString &titl...
  function QMenu (line 701) | QMenu *AsemanDesktopTools::menuOf(const QVariantList &list, QList<QActio...

FILE: src/widgets/asemandesktoptools.h
  type DesktopSession (line 56) | enum DesktopSession {
  type YesOrNoType (line 67) | enum YesOrNoType {

FILE: src/widgets/asemanfonthandler.cpp
  class AsemanFontHandlerPrivate (line 35) | class AsemanFontHandlerPrivate
  function QVariantMap (line 160) | QVariantMap AsemanFontHandler::fonts()
  function QFont (line 174) | QFont AsemanFontHandler::fontOf(int script)
  function QString (line 180) | QString AsemanFontHandler::textToHtml(const QString &text)
  function QByteArray (line 223) | QByteArray AsemanFontHandler::save()

FILE: src/widgets/asemanfonthandler.h
  type AsemanFontHandler (line 68) | typedef AsemanFontHandler QAsemanFontHandler;

FILE: src/widgets/asemankdewallet.cpp
  class AsemanKdeWalletPrivate (line 40) | class AsemanKdeWalletPrivate
  function QStringList (line 66) | QStringList AsemanKdeWallet::availableWallets() const
  function QStringList (line 71) | QStringList AsemanKdeWallet::folderList() const
  function QString (line 85) | QString AsemanKdeWallet::wallet() const
  function QByteArray (line 149) | QByteArray AsemanKdeWallet::readEntry(const QString &folder, const QStri...
  function QVariantMap (line 171) | QVariantMap AsemanKdeWallet::readEntryList(const QString &folder, const ...
  function QByteArray (line 193) | QByteArray AsemanKdeWallet::readMap(const QString &folder, const QString...
  function QVariantMap (line 215) | QVariantMap AsemanKdeWallet::readMapList(const QString &folder, const QS...
  function QString (line 237) | QString AsemanKdeWallet::readPassword(const QString &folder, const QStri...
  function QVariantMap (line 259) | QVariantMap AsemanKdeWallet::readPasswordList(const QString &folder, con...

FILE: src/widgets/asemanlinuxnativenotification.cpp
  class AsemanLinuxNativeNotificationPrivate (line 35) | class AsemanLinuxNativeNotificationPrivate
  function QColor (line 63) | QColor AsemanLinuxNativeNotification::color() const
  function uint (line 68) | uint AsemanLinuxNativeNotification::sendNotify(const QString &title, con...

FILE: src/widgets/asemanmacnativenotification.cpp
  class AsemanMacNativeNotificationItem (line 26) | class AsemanMacNativeNotificationItem: public QSystemTrayIcon
    method AsemanMacNativeNotificationItem (line 29) | AsemanMacNativeNotificationItem(QObject *parent): QSystemTrayIcon(pare...
  class AsemanMacNativeNotificationPrivate (line 39) | class AsemanMacNativeNotificationPrivate
  function QColor (line 66) | QColor AsemanMacNativeNotification::color() const
  function uint (line 71) | uint AsemanMacNativeNotification::sendNotify(const QString &title, const...

FILE: src/widgets/asemannativenotification.cpp
  class AsemanNativeNotificationPrivate (line 24) | class AsemanNativeNotificationPrivate
  function QColor (line 49) | QColor AsemanNativeNotification::color() const
  function uint (line 54) | uint AsemanNativeNotification::sendNotify(const QString &title, const QS...

FILE: src/widgets/asemannativenotificationitem.cpp
  class DialogScene (line 41) | class DialogScene: public QWidget
    method DialogScene (line 44) | DialogScene( QWidget *parent = 0 ): QWidget(parent){    }
    method paintEvent (line 48) | void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE {
  class AsemanNativeNotificationItemPrivate (line 56) | class AsemanNativeNotificationItemPrivate
  function QColor (line 170) | QColor AsemanNativeNotificationItem::color() const

FILE: src/widgets/asemannotification.h
  type AsemanLinuxNativeNotification (line 26) | typedef AsemanLinuxNativeNotification AsemanNotification;
  type AsemanMacNativeNotification (line 29) | typedef AsemanMacNativeNotification AsemanNotification;
  type AsemanNativeNotification (line 32) | typedef AsemanNativeNotification AsemanNotification;
  type AsemanAndroidNativeNotification (line 35) | typedef AsemanAndroidNativeNotification AsemanNotification;
  type QObject (line 37) | typedef QObject AsemanNotification;
  type AsemanNotification (line 40) | typedef AsemanNotification QAsemanNotification;

FILE: src/widgets/asemansystemtray.cpp
  class AsemanSystemTrayPrivate (line 28) | class AsemanSystemTrayPrivate
  function QUrl (line 86) | QUrl AsemanSystemTray::icon() const
  function QColor (line 116) | QColor AsemanSystemTray::badgeFillColor() const
  function QColor (line 131) | QColor AsemanSystemTray::badgeStrokeColor() const
  function QColor (line 146) | QColor AsemanSystemTray::badgeTextColor() const
  function QStringList (line 185) | QStringList AsemanSystemTray::menu() const
  function QImage (line 224) | QImage AsemanSystemTray::generateIcon(const QString &filePath, int count)

FILE: src/widgets/asemantaskbarbutton.cpp
  class AsemanTaskbarButtonPrivate (line 44) | class AsemanTaskbarButtonPrivate
  function qreal (line 107) | qreal AsemanTaskbarButton::progress() const
  function QString (line 122) | QString AsemanTaskbarButton::launcher() const
  function QWindow (line 137) | QWindow *AsemanTaskbarButton::window() const

FILE: src/widgets/private/asemanmactaskbarbuttonengine.h
  function virtual (line 30) | virtual ~AsemanMacTaskbarButtonEngine(){}

FILE: src/widgets/private/asemanwintaskbarbuttonengine.cpp
  function QImage (line 69) | QImage AsemanWinTaskbarButtonEngine::generateIcon(int count)

FILE: src/wizards/qtcreator/qtasemanapplication/main.cpp
  function main (line 3) | int main(int argc, char *argv[])
Condensed preview — 927 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,609K chars).
[
  {
    "path": ".github/workflows/qt.yml",
    "chars": 2429,
    "preview": "name: CI build\n\non: [push]\n\njobs:\n  build:\n    strategy:\n      fail-fast: false\n      matrix:\n        version:\n         "
  },
  {
    "path": ".gitignore",
    "chars": 370,
    "preview": "# C++ objects and libs\n\n*.slo\n*.lo\n*.o\n*.a\n*.la\n*.lai\n*.so\n*.dll\n*.dylib\n\n# Qt-es\n\n/build\n/old\n/.qmake.cache\n/.qmake.sta"
  },
  {
    "path": ".gitmodules",
    "chars": 112,
    "preview": "[submodule \"src/httpserver/qhttp\"]\n\tpath = src/httpserver/qhttp\n\turl = https://github.com/Aseman-Land/qhttp.git\n"
  },
  {
    "path": ".qmake.conf",
    "chars": 49,
    "preview": "load(qt_build_config)\r\n\r\nMODULE_VERSION = 3.1.5\r\n"
  },
  {
    "path": "LICENSE",
    "chars": 7651,
    "preview": "                   GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007"
  },
  {
    "path": "README.md",
    "chars": 24101,
    "preview": "<img src=\"icons/logo.png\" align=\"right\" />\n\n# Qt Aseman\n\n- [What is QtAseman?](https://github.com/Aseman-Land/QtAseman#w"
  },
  {
    "path": "SourceDiary.sh",
    "chars": 742,
    "preview": "#! /bin/sh\n# Set the home if not already set.\nif [ \"${ASEMAN_SRC_PATH}\" = \"\" ]; then\n    ASEMAN_SRC_PATH=\"`echo $0 | gre"
  },
  {
    "path": "aseman.pri",
    "chars": 50,
    "preview": "DEFINES += QASEMAN_STATIC\r\ninclude (src/src.pri)\r\n"
  },
  {
    "path": "aseman.pro",
    "chars": 88,
    "preview": "load(qt_parts)\r\nsystem($$[QT_INSTALL_BINS]/syncqt.pl -version 3.1.5 -outdir $$OUT_PWD)\r\n"
  },
  {
    "path": "debian/.directory",
    "chars": 92,
    "preview": "[Dolphin]\nGroupedSorting=true\nSortRole=type\nTimestamp=2020,4,18,0,53,2\nVersion=4\nViewMode=1\n"
  },
  {
    "path": "debian/changelog",
    "chars": 2631,
    "preview": "qtaseman (3.1.5-1aseman-focal) focal; urgency=medium\n\n  * Add error callback to queryAsync.\n  * Add statusBarStyle on iO"
  },
  {
    "path": "debian/compat",
    "chars": 2,
    "preview": "9\n"
  },
  {
    "path": "debian/control",
    "chars": 8484,
    "preview": "Source: qtaseman\nSection: libs\nPriority: optional\nMaintainer: Aseman Team <contact@aseman.io>\nBuild-Depends:\n debhelper "
  },
  {
    "path": "debian/copyright",
    "chars": 1328,
    "preview": "Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\nUpstream-Name: telegramqml\nSource: aseman.co/t"
  },
  {
    "path": "debian/files",
    "chars": 60,
    "preview": "qtaseman_3.1.5-1aseman-focal_source.buildinfo libs optional\n"
  },
  {
    "path": "debian/libqt5asemancore-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemancore-dev.install",
    "chars": 42,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanCore/*\n"
  },
  {
    "path": "debian/libqt5asemancore.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemancore.install",
    "chars": 183,
    "preview": "usr/lib/*-linux-gnu/libQAsemanCore*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanCore/*\nusr/lib/*-linux-gnu/pkgconfig/QAsemanCore"
  },
  {
    "path": "debian/libqt5asemangeo-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemangeo-dev.install",
    "chars": 41,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanGeo/*\n"
  },
  {
    "path": "debian/libqt5asemangeo.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemangeo.install",
    "chars": 179,
    "preview": "usr/lib/*-linux-gnu/libQAsemanGeo*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanGeo/*\nusr/lib/*-linux-gnu/pkgconfig/QAsemanGeo.pc"
  },
  {
    "path": "debian/libqt5asemangui-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemangui-dev.install",
    "chars": 41,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanGui/*\n"
  },
  {
    "path": "debian/libqt5asemangui.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemangui.install",
    "chars": 179,
    "preview": "usr/lib/*-linux-gnu/libQAsemanGui*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanGui/*\nusr/lib/*-linux-gnu/pkgconfig/QAsemanGui.pc"
  },
  {
    "path": "debian/libqt5asemanmultimedia-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemanmultimedia-dev.install",
    "chars": 48,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanMultimedia/*\n"
  },
  {
    "path": "debian/libqt5asemanmultimedia.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemanmultimedia.install",
    "chars": 207,
    "preview": "usr/lib/*-linux-gnu/libQAsemanMultimedia*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanMultimedia/*\nusr/lib/*-linux-gnu/pkgconfig"
  },
  {
    "path": "debian/libqt5asemannetwork-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemannetwork-dev.install",
    "chars": 45,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanNetwork/*\n"
  },
  {
    "path": "debian/libqt5asemannetwork.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemannetwork.install",
    "chars": 195,
    "preview": "usr/lib/*-linux-gnu/libQAsemanNetwork*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanNetwork/*\nusr/lib/*-linux-gnu/pkgconfig/QAsem"
  },
  {
    "path": "debian/libqt5asemanqml-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemanqml-dev.install",
    "chars": 41,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanQml/*\n"
  },
  {
    "path": "debian/libqt5asemanqml.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemanqml.install",
    "chars": 179,
    "preview": "usr/lib/*-linux-gnu/libQAsemanQml*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanQml/*\nusr/lib/*-linux-gnu/pkgconfig/QAsemanQml.pc"
  },
  {
    "path": "debian/libqt5asemansql-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemansql-dev.install",
    "chars": 41,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanSql/*\n"
  },
  {
    "path": "debian/libqt5asemansql.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemansql.install",
    "chars": 179,
    "preview": "usr/lib/*-linux-gnu/libQAsemanSql*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanSql/*\nusr/lib/*-linux-gnu/pkgconfig/QAsemanSql.pc"
  },
  {
    "path": "debian/libqt5asemanwidgets-dev.dirs",
    "chars": 12,
    "preview": "usr/include\n"
  },
  {
    "path": "debian/libqt5asemanwidgets-dev.install",
    "chars": 45,
    "preview": "usr/include/*-linux-gnu/qt5/QAsemanWidgets/*\n"
  },
  {
    "path": "debian/libqt5asemanwidgets.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/libqt5asemanwidgets.install",
    "chars": 195,
    "preview": "usr/lib/*-linux-gnu/libQAsemanWidgets*\nusr/lib/*-linux-gnu/cmake/Qt5QAsemanWidgets/*\nusr/lib/*-linux-gnu/pkgconfig/QAsem"
  },
  {
    "path": "debian/qml-module-asemanawesome.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanawesome.install",
    "chars": 48,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Awesome/*\n"
  },
  {
    "path": "debian/qml-module-asemanbase.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanbase.install",
    "chars": 45,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Base/*\n"
  },
  {
    "path": "debian/qml-module-asemancontrols.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemancontrols.install",
    "chars": 49,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Controls/*\n"
  },
  {
    "path": "debian/qml-module-asemanmaterial.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanmaterial.install",
    "chars": 54,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/MaterialIcons/*\n"
  },
  {
    "path": "debian/qml-module-asemanmodels.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanmodels.install",
    "chars": 47,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Models/*\n"
  },
  {
    "path": "debian/qml-module-asemanmodern.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanmodern.install",
    "chars": 47,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Modern/*\n"
  },
  {
    "path": "debian/qml-module-asemanmultimedia.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanmultimedia.install",
    "chars": 51,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Multimedia/*\n"
  },
  {
    "path": "debian/qml-module-asemannetwork.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemannetwork.install",
    "chars": 48,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Network/*\n"
  },
  {
    "path": "debian/qml-module-asemansql.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemansql.install",
    "chars": 44,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Sql/*\n"
  },
  {
    "path": "debian/qml-module-asemanviewport.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanviewport.install",
    "chars": 49,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Viewport/*\n"
  },
  {
    "path": "debian/qml-module-asemanwidgets.dirs",
    "chars": 8,
    "preview": "usr/lib\n"
  },
  {
    "path": "debian/qml-module-asemanwidgets.install",
    "chars": 48,
    "preview": "usr/lib/*-linux-gnu/qt5/qml/AsemanQml/Widgets/*\n"
  },
  {
    "path": "debian/qt5aseman-wizards-qtcreator.dirs",
    "chars": 10,
    "preview": "usr/share\n"
  },
  {
    "path": "debian/qt5aseman-wizards-qtcreator.install",
    "chars": 69,
    "preview": "usr/share/qtcreator/templates/wizards/projects/qtasemanapplication/*\n"
  },
  {
    "path": "debian/rules",
    "chars": 230,
    "preview": "#!/usr/bin/make -f\n# -*- makefile -*-\n\n# Uncomment this to turn on verbose mode.\n#export DH_VERBOSE=1\n\n%:\n\tdh $@ \n\noverr"
  },
  {
    "path": "debian/source/format",
    "chars": 13,
    "preview": "3.0 (native)\n"
  },
  {
    "path": "demos/RegularApp/.gitignore",
    "chars": 741,
    "preview": "# This file is used to ignore files which are generated\n# --------------------------------------------------------------"
  },
  {
    "path": "demos/RegularApp/AppWindow.qml",
    "chars": 5003,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/RegularApp.pro",
    "chars": 152,
    "preview": "QT += quick network\nandroid: QT += androidextras\nCONFIG += c++11\n\nSOURCES += main.cpp \nRESOURCES += qml.qrc\n\nANDROID_PAC"
  },
  {
    "path": "demos/RegularApp/android/AndroidManifest.xml",
    "chars": 5688,
    "preview": "<?xml version=\"1.0\"?>\n<manifest package=\"co.aseman.demo.regular\" xmlns:android=\"http://schemas.android.com/apk/res/andro"
  },
  {
    "path": "demos/RegularApp/android/res/drawable/splash.xml",
    "chars": 238,
    "preview": "<bitmap xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        xmlns:tools=\"http://schemas.android.com/tools"
  },
  {
    "path": "demos/RegularApp/android/res/values/style.xml",
    "chars": 685,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <style name=\"splashScreenTheme\" parent=\"@android:style/Theme.Devi"
  },
  {
    "path": "demos/RegularApp/global/MainMenuItem.qml",
    "chars": 1006,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/global/MainPage.qml",
    "chars": 1499,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/global/QmlControls.qml",
    "chars": 1315,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/graphical/GraphicalComponentsExample.qml",
    "chars": 3498,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/graphical/SideMenuExample.qml",
    "chars": 1638,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/main.cpp",
    "chars": 309,
    "preview": "#include <QGuiApplication>\n#include <QQmlApplicationEngine>\n\nint main(int argc, char *argv[])\n{\n    QGuiApplication app("
  },
  {
    "path": "demos/RegularApp/main.qml",
    "chars": 1156,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/models/CountriesModelExample.qml",
    "chars": 2129,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/models/FileSystemModelExample.qml",
    "chars": 2360,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/models/ModelComponentExamples.qml",
    "chars": 2409,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/DownloaderExample.qml",
    "chars": 2567,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/EncrypterExample.qml",
    "chars": 2811,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/ImageColorAnalizorExample.qml",
    "chars": 2881,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/MapDownloaderExample.qml",
    "chars": 3128,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/NetworkSleepManagerExample.qml",
    "chars": 1833,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/NonGraphicalComponentsExample.qml",
    "chars": 3633,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/NotificationExample.qml",
    "chars": 2173,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/nongraphical/SettingsExample.qml",
    "chars": 1913,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/qml.qrc",
    "chars": 1439,
    "preview": "<RCC>\n    <qresource prefix=\"/\">\n        <file>qtquickcontrols2.conf</file>\n        <file>main.qml</file>\n        <file>"
  },
  {
    "path": "demos/RegularApp/qtquickcontrols2.conf",
    "chars": 99,
    "preview": "[Controls]\nStyle=Material\n\n[Universal]\nTheme=Dark\nAccent=Red\n\n[Material]\nTheme=Light\nAccent=Blue\n \n"
  },
  {
    "path": "demos/RegularApp/static/AsemanAppExample.qml",
    "chars": 6760,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/BackHandlerExample.qml",
    "chars": 1849,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/DesktopExample.qml",
    "chars": 5807,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/DevicesExample.qml",
    "chars": 8784,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/StaticComponentsExample.qml",
    "chars": 3474,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/TextToolsExample.qml",
    "chars": 2494,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/ToolsExample.qml",
    "chars": 1943,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/RegularApp/static/ViewExample.qml",
    "chars": 3918,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "demos/template/app.pro",
    "chars": 135,
    "preview": "QT += quick qml\nCONFIG += c++11\n\nQML_IMPORT_PATH += \\\n    $$PWD/qml/imports\n\nRESOURCES += \\\n    qml/qml.qrc\n\nSOURCES += "
  },
  {
    "path": "demos/template/main.cpp",
    "chars": 618,
    "preview": "#include <QGuiApplication>\n#include <QQmlApplicationEngine>\n\nint main(int argc, char *argv[])\n{\n    QCoreApplication::se"
  },
  {
    "path": "demos/template/qml/MainWindow.qml",
    "chars": 543,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Controls 2.0\nimport AsemanQml.Viewport 2.0\nimport QtQuick.Controls 2.3\nimport forms"
  },
  {
    "path": "demos/template/qml/imports/forms/ErrorDialogForm.ui.qml",
    "chars": 2580,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Base 2.0\nimport QtQuick.Controls 2.3\nimport QtQuick.Layouts 1.3\nimport globals 1.0\n"
  },
  {
    "path": "demos/template/qml/imports/forms/MainForm.ui.qml",
    "chars": 1172,
    "preview": "import QtQuick 2.12\nimport QtQuick.Controls 2.3\nimport QtQuick.Controls.Material 2.0\nimport AsemanQml.Base 2.0\nimport As"
  },
  {
    "path": "demos/template/qml/imports/forms/WaitDialog.ui.qml",
    "chars": 912,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Base 2.0\nimport QtQuick.Controls 2.3\nimport QtQuick.Layouts 1.3\nimport globals 1.0\n"
  },
  {
    "path": "demos/template/qml/imports/forms/qmldir",
    "chars": 105,
    "preview": "ErrorDialogForm 1.0 ErrorDialogForm.ui.qml\nMainForm 1.0 MainForm.ui.qml\nWaitDialog 1.0 WaitDialog.ui.qml\n"
  },
  {
    "path": "demos/template/qml/imports/globals/Colors.qml",
    "chars": 78,
    "preview": "pragma Singleton\n\nimport QtQuick 2.10\nimport AsemanQml.Base 2.0\n\nQtObject {\n}\n"
  },
  {
    "path": "demos/template/qml/imports/globals/Constants.qml",
    "chars": 295,
    "preview": "pragma Singleton\n\nimport QtQuick 2.10\nimport AsemanQml.Base 2.0\n\nQtObject {\n    readonly property int width: 480\n    rea"
  },
  {
    "path": "demos/template/qml/imports/globals/Fonts.qml",
    "chars": 225,
    "preview": "pragma Singleton\n\nimport QtQuick 2.10\nimport AsemanQml.Base 2.0\n\nAsemanObject\n{\n    property alias ubuntuFont: ubuntu_fo"
  },
  {
    "path": "demos/template/qml/imports/globals/GlobalSettings.qml",
    "chars": 204,
    "preview": "pragma Singleton\n\nimport QtQuick 2.7\nimport AsemanQml.Base 2.0\n\nSettings {\n        category: \"General\"\n        source: A"
  },
  {
    "path": "demos/template/qml/imports/globals/qmldir",
    "chars": 148,
    "preview": "singleton Constants 1.0 Constants.qml\nsingleton GlobalSettings 1.0 GlobalSettings.qml\nsingleton Fonts 1.0 Fonts.qml\nsing"
  },
  {
    "path": "demos/template/qml/imports/models/ExampleModel.qml",
    "chars": 325,
    "preview": "import QtQuick 2.0\nimport AsemanQml.Base 2.0\nimport AsemanQml.Models 2.0\nimport requests 1.0\nimport globals 1.0\n\nAsemanL"
  },
  {
    "path": "demos/template/qml/imports/models/qmldir",
    "chars": 35,
    "preview": " ExampleModel 1.0 ExampleModel.qml\n"
  },
  {
    "path": "demos/template/qml/imports/requests/BaseRequest.qml",
    "chars": 1763,
    "preview": "import QtQuick 2.0\nimport AsemanQml.Base 2.0\nimport AsemanQml.Controls 2.0\nimport AsemanQml.Network 2.0\nimport AsemanQml"
  },
  {
    "path": "demos/template/qml/imports/requests/ExampleRequest.qml",
    "chars": 281,
    "preview": "import QtQuick 2.0\nimport AsemanQml.Base 2.0\nimport globals 1.0\n\nBaseRequest {\n    id: todoRequest\n    url: baseUrl + \"/"
  },
  {
    "path": "demos/template/qml/imports/requests/qmldir",
    "chars": 38,
    "preview": "ExampleRequest 1.0 ExampleRequest.qml\n"
  },
  {
    "path": "demos/template/qml/main.qml",
    "chars": 514,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Base 2.0\nimport AsemanQml.Controls 2.0\nimport globals 1.0\n\nAsemanApplication {\n    "
  },
  {
    "path": "demos/template/qml/qml.qrc",
    "chars": 1132,
    "preview": "<RCC>\n    <qresource prefix=\"/\">\n        <file>qtquickcontrols2.conf</file>\n        <file>imports/forms/ErrorDialogForm."
  },
  {
    "path": "demos/template/qml/qtquickcontrols2.conf",
    "chars": 125,
    "preview": "[Controls]\nStyle=IOSStyle\n\n[Material]\nPrimary=Blue\nAccent=Teal\nTheme=Light\n\n[IOSStyle]\nPrimary=Blue\nAccent=Blue\nTheme=Sy"
  },
  {
    "path": "demos/template/qml/routes/ErrorDialog.qml",
    "chars": 459,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Base 2.0\nimport AsemanQml.Viewport 2.0\nimport forms 1.0\n\nErrorDialogForm {\n    widt"
  },
  {
    "path": "demos/template/qml/routes/ExamplePopup.qml",
    "chars": 916,
    "preview": "import QtQuick 2.0\nimport AsemanQml.Base 2.0\nimport AsemanQml.Controls 2.0\nimport AsemanQml.Viewport 2.0\nimport QtQuick."
  },
  {
    "path": "demos/template/qml/routes/ViewController.qml",
    "chars": 699,
    "preview": "import QtQuick 2.0\nimport AsemanQml.Base 2.0\nimport AsemanQml.Viewport 2.0\n\nViewportController {\n    id: viewController\n"
  },
  {
    "path": "demos/template/qml/routes/WaitDialog.qml",
    "chars": 217,
    "preview": "import QtQuick 2.12\nimport AsemanQml.Viewport 2.0\nimport forms 1.0\n\nWaitDialog {\n    ViewportType.touchToClose: false\n  "
  },
  {
    "path": "demos/translation-example/UpdateTranslations.sh",
    "chars": 563,
    "preview": "#! /bin/sh\n\n# Set the home if not already set.\nif [ \"${MEIKADE_SRC_PATH}\" = \"\" ]; then\n    MEIKADE_SRC_PATH=\"`echo $0 | "
  },
  {
    "path": "demos/translation-example/main.qml",
    "chars": 982,
    "preview": "import AsemanQml.Base 2.0\nimport AsemanQml.Controls 2.0\nimport QtQuick 2.7\nimport \".\"\n\nAsemanApplication {\n    id: app\n "
  },
  {
    "path": "demos/translation-example/mainforms/MainWindow.qml",
    "chars": 1198,
    "preview": "import AsemanQml.Base 2.0\nimport AsemanQml.Controls 2.0\nimport QtQuick 2.7\nimport QtQuick.Controls 2.0\nimport QtGraphica"
  },
  {
    "path": "demos/translation-example/translations/lang-en.qm",
    "chars": 7,
    "preview": "<d\u0018!\u001c`"
  },
  {
    "path": "demos/translation-example/translations_sources/lang-en.ts",
    "chars": 247,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\">\n<context>\n    <name>MainWindow</name>\n    <messa"
  },
  {
    "path": "demos/translation-example/translations_sources/lang-fa.ts",
    "chars": 255,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"fa_IR\">\n<context>\n    <name>MainWindow<"
  },
  {
    "path": "documents/.gitignore",
    "chars": 7,
    "preview": "/html/\n"
  },
  {
    "path": "documents/AsemanQml.Base.md",
    "chars": 8383,
    "preview": "# AsemanQml.Base\n\n ## AsemanApp\n\n`AsemanApp` static component, provides methods, signals and properties to work with QGu"
  },
  {
    "path": "documents/Doxyfile",
    "chars": 107725,
    "preview": "# Doxyfile 1.8.13\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org)"
  },
  {
    "path": "examples/examples.pro",
    "chars": 19,
    "preview": "TEMPLATE = subdirs\n"
  },
  {
    "path": "index.html",
    "chars": 2076,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\t<!--begin::Head-->\n\t<head>\n\t\t<title>QtAseman</title>\n\t\t<meta charset=\"utf-8\" />\n\t\t<met"
  },
  {
    "path": "marketplace/manifest.json",
    "chars": 1347,
    "preview": "{\n    \"$schema\": \"http://qt.io/schema/extension-schema-v1#\",\n    \"title\": \"Qt Aseman\",\n    \"extensionType\": [\n        \"l"
  },
  {
    "path": "marketplace/marketplace.md",
    "chars": 2789,
    "preview": "# Qt Aseman\n<img src=\"https://aseman.io/projects/qtaseman/aseman-qt.png\" align=\"left\" />\n\n## What is QtAseman\n\nQtAseman "
  },
  {
    "path": "src/CMakeLists.txt",
    "chars": 1419,
    "preview": "\nadd_compile_definitions(QT_ASEMAN_EMBEDDED)\n\nif (${QT_VERSION_MAJOR} GREATER_EQUAL 6)\n    SET(ASEMAN_COMPILE_DEFINITION"
  },
  {
    "path": "src/android/android.pro",
    "chars": 127,
    "preview": "TEMPLATE = subdirs\nCONFIG   += ordered\n\nlessThan(QT_MAJOR_VERSION, 6) {\n    SUBDIRS  = java\n} else {\n    SUBDIRS  = java"
  },
  {
    "path": "src/android/java/READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt",
    "chars": 399,
    "preview": "If this package is accessed by Qt Creator, certain changes can be\noverwritten without warning. In particular, Qt Creator"
  },
  {
    "path": "src/android/java/java.pro",
    "chars": 554,
    "preview": "TEMPLATE = aux\nCONFIG -= qt android_install\n\njavaresources.files = \\\n    $$PWD/res \\\n    $$PWD/src\n\njavaresources.path ="
  },
  {
    "path": "src/android/java/src/com/hmkcode/android/image/RealPathUtil.java",
    "chars": 2885,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanActivity.java",
    "chars": 11972,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanApplication.java",
    "chars": 1364,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanBootBroadcast.java",
    "chars": 1367,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanJavaLayer.java",
    "chars": 21327,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanMultimedia.java",
    "chars": 7250,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanQtService.java",
    "chars": 6109,
    "preview": "/*\n    Copyright (c) 2016, BogDan Vatra <bogdan@kde.org>\n    Contact: http://www.qt.io/licensing/\n\n    Commercial Licens"
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanService.java",
    "chars": 19237,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/AsemanServiceDelegate.java",
    "chars": 6813,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/extra/AsemanCameraCapture.java",
    "chars": 7150,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java/src/io/aseman/android/extra/AsemanLocationListener.java",
    "chars": 6808,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/READ-THIS-BEFORE-MANUALLY-ADDING-FILES-TO-PACKAGE.txt",
    "chars": 399,
    "preview": "If this package is accessed by Qt Creator, certain changes can be\noverwritten without warning. In particular, Qt Creator"
  },
  {
    "path": "src/android/java-qt6/java-qt6.pro",
    "chars": 554,
    "preview": "TEMPLATE = aux\nCONFIG -= qt android_install\n\njavaresources.files = \\\n    $$PWD/res \\\n    $$PWD/src\n\njavaresources.path ="
  },
  {
    "path": "src/android/java-qt6/src/com/hmkcode/android/image/RealPathUtil.java",
    "chars": 2885,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanActivity.java",
    "chars": 11971,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanApplication.java",
    "chars": 1363,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanBootBroadcast.java",
    "chars": 1367,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanJavaLayer.java",
    "chars": 21326,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanMultimedia.java",
    "chars": 7250,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanQtService.java",
    "chars": 6108,
    "preview": "/*\n    Copyright (c) 2016, BogDan Vatra <bogdan@kde.org>\n    Contact: http://www.qt.io/licensing/\n\n    Commercial Licens"
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanService.java",
    "chars": 19236,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/AsemanServiceDelegate.java",
    "chars": 6812,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/extra/AsemanCameraCapture.java",
    "chars": 7150,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/android/java-qt6/src/io/aseman/android/extra/AsemanLocationListener.java",
    "chars": 6808,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/CMakeLists.txt",
    "chars": 1313,
    "preview": "\nadd_subdirectory(base)\nadd_subdirectory(graphicaleffects)\n\nif (ASEMAN_QML_MODULES_AWESOME)\n    add_subdirectory(awesome"
  },
  {
    "path": "src/asemanqml/asemanqml.pri",
    "chars": 1041,
    "preview": "\ninclude(base/base.pri)\ninclude(graphicaleffects/graphicaleffects.pri)\n\ncontains(ASEMAN_QML_MODULES, awesome) {\n    incl"
  },
  {
    "path": "src/asemanqml/asemanqml.pro",
    "chars": 304,
    "preview": "TEMPLATE = subdirs\nCONFIG += ordered\nSUBDIRS += \\\n    base \\\n    awesome \\\n    materialicons \\\n    graphicaleffects \\\n  "
  },
  {
    "path": "src/asemanqml/awesome/Awesome/Awesome.qml",
    "chars": 71931,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/awesome/CMakeLists.txt",
    "chars": 299,
    "preview": "set(SOURCE\n    ${SOURCE}\n    ${CMAKE_CURRENT_SOURCE_DIR}/awesomeplugin.h\n    ${CMAKE_CURRENT_SOURCE_DIR}/awesomeplugin.c"
  },
  {
    "path": "src/asemanqml/awesome/awesome.pri",
    "chars": 462,
    "preview": "QT += qml\n\nHEADERS += \\\n    $$PWD/awesomeplugin.h\n\nSOURCES += \\\n    $$PWD/awesomeplugin.cpp\n\nstatic: !linux: !win32: DEF"
  },
  {
    "path": "src/asemanqml/awesome/awesome.pro",
    "chars": 119,
    "preview": "TARGET  = asemanqmlawesome\nTARGETPATH = AsemanQml/Awesome\nIMPORT_VERSION = 2.0\n\ninclude(awesome.pri)\n\nload(qml_plugin)\n"
  },
  {
    "path": "src/asemanqml/awesome/awesomeplugin.cpp",
    "chars": 1437,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/awesome/awesomeplugin.h",
    "chars": 1174,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/awesome/plugins.qmltypes",
    "chars": 103865,
    "preview": "import QtQuick.tooling 1.2\n\n// This file describes the plugin-supplied types contained in the library.\n// It is used for"
  },
  {
    "path": "src/asemanqml/awesome/qmake_asemanawesome.qrc",
    "chars": 301,
    "preview": "<RCC>\n    <qresource prefix=\"/AsemanQml\">\n        <file>Awesome/Awesome.qml</file>\n        <file>Awesome/fa-brands-400.t"
  },
  {
    "path": "src/asemanqml/awesome/qmldir",
    "chars": 118,
    "preview": "module AsemanQml.Awesome\nclassname AsemanAwesomePlugin\ntypeinfo plugins.qmltypes\nplugin declarative_asemanqmlawesome\n\n"
  },
  {
    "path": "src/asemanqml/base/Base/AsemanFlickable.qml",
    "chars": 2739,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/AsemanGridView.qml",
    "chars": 2512,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/AsemanListView.qml",
    "chars": 3314,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/BackAction.qml",
    "chars": 1198,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/CachedImage.qml",
    "chars": 2674,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/CoverList.qml",
    "chars": 3557,
    "preview": "import QtQuick 2.9\nimport AsemanQml.Base 2.0\n\nItem {\n    id: coverList\n\n    property alias model: listv.model\n    proper"
  },
  {
    "path": "src/asemanqml/base/Base/CrashController.qml",
    "chars": 832,
    "preview": "import QtQuick 2.9\nimport AsemanQml.Base 2.0\n\nAsemanObject {\n    signal crashed()\n    signal safe()\n\n    property string"
  },
  {
    "path": "src/asemanqml/base/Base/DelayPropertySwitch.qml",
    "chars": 1063,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/FileSystemView.qml",
    "chars": 3637,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/MaterialFrame.qml",
    "chars": 1560,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/NullMouseArea.qml",
    "chars": 810,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/PointMapListener.qml",
    "chars": 1174,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/RoundedImage.qml",
    "chars": 1755,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/RoundedItem.qml",
    "chars": 1557,
    "preview": "import QtQuick 2.9\nimport AsemanQml.GraphicalEffects 2.0\n\nItem {\n    id: dis\n    data: [maskItem, clippedArea, opacityMa"
  },
  {
    "path": "src/asemanqml/base/Base/SelectableList.qml",
    "chars": 5765,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  },
  {
    "path": "src/asemanqml/base/Base/ShadowRectangle.qml",
    "chars": 1641,
    "preview": "/*\n    Copyright (C) 2017 Aseman Team\n    http://aseman.co\n\n    AsemanQtTools is free software: you can redistribute it "
  }
]

// ... and 727 more files (download for full content)

About this extraction

This page contains the full source code of the Aseman-Land/QtAseman GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 927 files (4.1 MB), approximately 1.1M tokens, and a symbol index with 1354 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!