1 /*
2     SPDX-FileCopyrightText: 2011 Rafał Kułaga <rl.kulaga@gmail.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "kstarsdocument.h"
10 
11 class QString;
12 class QRectF;
13 class QImage;
14 
15 class LoggingForm;
16 class DetailsTable;
17 class KStarsDateTime;
18 class GeoLocation;
19 
20 /**
21   * @class FinderChart
22   * @brief Class that represents finder chart document.
23   * FinderChart class is a subclass of KStarsDocument class, representing finder chart.
24   * Finder chart can contain following elements: title, subtitle, description, logging forms,
25   * images and details tables.
26   *
27   * @author Rafał Kułaga
28   */
29 class FinderChart : public KStarsDocument
30 {
31   public:
32     /** Constructor */
33     FinderChart();
34 
35     /**
36      * @brief Insert title and subtitle to the finder chart.
37      * @param title Title.
38      * @param subtitle Subtitle.
39      */
40     void insertTitleSubtitle(const QString &title, const QString &subtitle);
41 
42     /**
43      * @brief Insert description to the finder chart.
44      * @param description Description text.
45      */
46     void insertDescription(const QString &description);
47 
48     /**
49      * @brief Insert details about date&time and geographic location.
50      * @param ut Date and time.
51      * @param geo Geographic location.
52      */
53     void insertGeoTimeInfo(const KStarsDateTime &ut, GeoLocation *geo);
54 
55     /**
56      * @brief Insert logging form to the finder chart.
57      * @param log Logging form to be inserted.
58      */
59     void insertLoggingForm(LoggingForm *log);
60 
61     /**
62      * @brief Insert image to the finder chart.
63      * @param img Image to be inserted.
64      * @param description Description of the image.s
65      * @param descriptionBelow True if description should be placed below image.
66      */
67     void insertImage(const QImage &img, const QString &description, bool descriptionBelow = true);
68 
69     /**
70      * @brief Insert details table to the finder chart.
71      * @param table Details table to be inserted.
72      */
73     void insertDetailsTable(DetailsTable *table);
74 
75     /**
76      * @brief Insert section title to the finder chart.
77      * @param title Section title.
78      */
79     void insertSectionTitle(const QString &title);
80 };
81