Warning, /maui/mauikit-calendar/Mainpage.dox is written in an unsupported language. File is not indexed.
0001 /*
0002 * This file is part of MauiKit
0003 * SPDX-FileCopyrightText: 2023 Camilo Higuita <milo.h@aol.com>
0004 *
0005 * SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007
0008
0009 /** @mainpage mauikit-calendar
0010
0011 @section overview Introduction
0012 MauiKit Calendar is a set of <a href="https://doc.qt.io/qt-6/qtquick-index.html">QtQuick</a> components and classes for visualizing calendar dates and creating events. The visual controls are designed to integrate well with the rest of MauiKit controls and the Maui HIG. Part of the back-end solutions used by this framework are based on Akonadi by the KDE community.
0013
0014 You can think of this - and other - MauiKit Frameworks as KDE's KParts, where each module accomplishes a specific function and when plug together you can quickly assemble a more powerful app. Components like this one are usually used and shared among multiple Maui Applications.
0015
0016 @image html agenda.png "Agenda app using the Calendar controls"
0017
0018 @section component Components
0019 MauiKit Calendar has a set of visual controls and helper classes. Some of the visual controls are a graphical representation of the classes or wrappers that consume the API models.
0020
0021 @subsection views Visual Controls
0022
0023 - @link MonthsView MonthsView @endlink
0024 - @link YearsView YearsView @endlink
0025 - @link DaysView DaysView @endlink
0026
0027 @subsection classes Classes
0028 The helper classes contain models andcontrollers for interfacing with the file system.
0029
0030 - MauiAccounts
0031
0032 @section example Minimal Example
0033
0034 @code
0035 import QtQuick
0036 import QtQuick.Controls
0037
0038 import org.mauikit.controls as Maui
0039 import org.mauikit.calendar as MC
0040
0041 Maui.ApplicationWindow
0042 {
0043 id: root
0044
0045 Maui.Page
0046 {
0047 anchors.fill: parent
0048 Maui.Controls.showCSD: true
0049
0050 headBar.leftContent: Maui.ToolButtonMenu
0051 {
0052 icon.name: "application-menu"
0053
0054 MenuItem
0055 {
0056 text: "About"
0057 onTriggered: root.about()
0058 }
0059 }
0060
0061 MC.MonthView
0062 {
0063 anchors.fill: parent
0064 }
0065 }
0066 }
0067
0068 @endcode
0069
0070 @subsection tutorial Tutorial
0071 To use this framework components, you can import the module using QML as `import org.mauikit.calendar`, or include the headers and link to the target library for C++.
0072
0073 Examples for every control can be found in the examples directory.
0074
0075 If you have any questions about MauiKit Calendar, feel free to drop by the Maui Project group on Telegram as `[at]mauiproject`.
0076
0077 A complete guide on how to set up and create an application using the MauiKit Calendar controls can be found here [quickstart](@ref quickstart).
0078
0079 @image html monthview.png "MonthView component"
0080
0081 @section deployment Deployment
0082
0083 @subsection building Building
0084 For building MauiKit Calendar from source, you will need to be familiar with some basic shell commands, with a console aka terminal emulator and your distribution package manager.
0085
0086 Before building it, make sure you have all the dependencies already installed with its development files.
0087
0088 `git cmake make kf6-ki18n kf6-kcoreaddons qt6-svg qt6-base mauiman4 mauikit4 kpim6-akonadi-mime-dev kpim6-akonadi-mime libkf6akonadicontact6 libkf6akonadicontact-dev kpim6-calendarsupport kpim6-akonadi-contacts-dev libkpim6calendarsupport-dev`
0089
0090 Then you can clone the project to your machine.
0091
0092 `git clone https://invent.kde.org/maui/mauikit-calendar.git`
0093
0094 Now that you have the sources, go into the `mauikit-calendar` folder and start the building process.
0095
0096 `cd mauikit-calendar`
0097
0098 Let's build the project into a separate directory
0099
0100 `mkdir build`
0101
0102 Then.
0103
0104 `cd build`
0105
0106 An lets build it.
0107 In this example the installation prefix path is set to the `/usr` directory; you can modify it if you want to, but bare in mind that you will also need to let know Qt where else it can find the installed QML plugins.
0108
0109 `cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_WITH_QT6=ON`
0110
0111 If everything goes right, the next step is to install it on the system for it to be ready to be used.
0112
0113 @subsection installation Installation
0114
0115 Once the project has been built from source - as explained in the previous section, you can install it.
0116
0117 `sudo make install`
0118
0119 This step will install the QML plugin to the right location.
0120
0121 If you don't want to build it from source, you can also look for it in your distribution packages.
0122
0123 For example, to install it on Arch based distributions:
0124
0125 `sudo pacman install mauikit-calendar`
0126
0127 Debian based distros:
0128
0129 `sudo apt install mauikit-calendar4`
0130
0131
0132 For Android, you will need to build it from source and install it at your Qt for Android root directory.
0133
0134 The easiest way is to build it using Qt Creator. Go to the project settings page, and enable the CMake build step for installation. That will install MauiKit into the right location. Remember you need to set the Kit to be Android.
0135 You can read more about setting up Qt from Android on their website.
0136
0137 @subsection usage Usage
0138 The simplest and recommended way to use MauiKit is to just use the packages provided by your Linux distribution, or build it as a module and deploy it together with the main application.
0139
0140 Once MauiKit has been installed you can start using it in your QML files. Checkout the ApplicationWindow for a quick example.
0141
0142 @subsection examples Examples
0143
0144 @subsection android Android
0145
0146 @section notes Notes
0147
0148 @subsection contributing Contributing
0149
0150 If you find any syntax errors, missing documentation, or not working code snippets or examples, please consider reporting the issue at
0151 <a href="https://invent.kde.org/maui/mauikit-calendar/-/issues">MauiKit Calendar</a> issues page, with the **documentation** tag.
0152
0153 If you want to contribute with the documentation efforts, you can contact the Maui Project at Telegram [at]mauiproject.
0154
0155 @authors
0156 Camilo Higuita \<milo.h@aol.com.com\><br>
0157
0158 @maintainers
0159 Camilo Higuita \<milo.h@aol.com.com\><br>
0160
0161 @licenses
0162 @lgpl
0163 */
0164
0165 // DOXYGEN_SET_RECURSIVE = YES
0166 // DOXYGEN_SET_EXCLUDE_PATTERNS += *_p.h */private/* */examples/* */doc/* */styles/*
0167 // DOXYGEN_SET_PROJECT_NAME = MauiKit
0168 // vim:ts=4:sw=4:expandtab:filetype=doxygen