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