File indexing completed on 2024-05-12 05:10:36

0001 /******************************************************************************
0002  * konsolekalendarchange.h                                                    *
0003  *                                                                            *
0004  * KonsoleKalendar is a command line interface to KDE calendars               *
0005  * SPDX-FileCopyrightText: 2002-2004 Tuukka Pasanen <illuusio@mailcity.com>   *
0006  * SPDX-FileCopyrightText: 2003-2005 Allen Winter <winter@kde.org>            *
0007  *                                                                            *
0008  * SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 *
0009  *                                                                            *
0010  ******************************************************************************/
0011 
0012 #pragma once
0013 
0014 #include "konsolekalendarvariables.h"
0015 
0016 #include <KCalendarCore/Event>
0017 
0018 /**
0019  * @file konsolekalendarchange.h
0020  * Provides the KonsoleKalendarChange class definition.
0021  */
0022 
0023 /**
0024  * @brief
0025  * Class to manage the Event modification capability.
0026  * @author Tuukka Pasanen
0027  * @author Allen Winter
0028  */
0029 class KonsoleKalendarChange
0030 {
0031 public:
0032     /**
0033      * Constructs a KonsoleKalendarChange object from command line arguments.
0034      * @param vars is a KonsoleKalendarVariable object with Event information.
0035      */
0036     explicit KonsoleKalendarChange(KonsoleKalendarVariables *vars);
0037 
0038     /**
0039      * Destructor
0040      */
0041     ~KonsoleKalendarChange();
0042 
0043     /**
0044      * Modify the Event.
0045      */
0046     bool changeEvent();
0047 
0048 private:
0049     /**
0050      * Print Event specs for dryrun and verbose options.
0051      *
0052      * @param event is a pointer to an Event to print.
0053      */
0054     void printSpecs(const KCalendarCore::Event::Ptr &event);
0055 
0056     /**
0057      * Print Event specs as provided from the command line arguments.
0058      */
0059     void printSpecs();
0060 
0061     //@cond PRIVATE
0062     KonsoleKalendarVariables *m_variables = nullptr;
0063     //@endcond
0064 };