File indexing completed on 2024-04-14 14:11:23

0001 /*  Mosaic Panel Component
0002 
0003     SPDX-FileCopyrightText: 2022 Jasem Mutlaq <mutlaqja@ikarustech.com>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "skycomponent.h"
0011 #include <QSharedPointer>
0012 
0013 class MosaicTiles;
0014 
0015 /**
0016  * @class MosaicComponent
0017  * Renders Mosaic Panel on Sky Map in either of two modes depending on scheduler.
0018  * + Scheduler Idle: Mosaic Panel is rendered in Planning mode where user can pan and adjust location in order to create jobs for the scheduler.
0019  * + Scheduler Active: Mosaic Panel is locked to the sky map and each tile shows the progress, how images captured, which tile is next and when.
0020  * @author Jasem Mutlaq
0021  * @version 1.0
0022  */
0023 class MosaicComponent : public SkyComponent
0024 {
0025     public:
0026         /** Constructor */
0027         explicit MosaicComponent(SkyComposite *);
0028 
0029         virtual ~MosaicComponent() override = default;
0030 
0031         bool selected() override;
0032         void draw(SkyPainter *skyp) override;
0033 
0034         const QSharedPointer<MosaicTiles> tiles() const;
0035 
0036     private:
0037 
0038         QSharedPointer<MosaicTiles> m_MosaicTiles;
0039 };