File indexing completed on 2024-04-14 03:47:44

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2013 Mihail Ivchenko <ematirov@gmail.com>
0004 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
0005 // SPDX-FileCopyrightText: 2014 Illya Kovalevskyy <illya.kovalevskyy@gmail.com>
0006 //
0007 
0008 #ifndef FLYTOEDITWIDGET_H
0009 #define FLYTOEDITWIDGET_H
0010 
0011 #include <QWidget>
0012 #include <QPersistentModelIndex>
0013 
0014 #include "GeoDataCoordinates.h"
0015 
0016 class QDoubleSpinBox;
0017 class QToolButton;
0018 class QComboBox;
0019 
0020 namespace Marble
0021 {
0022 
0023 class GeoDataFlyTo;
0024 class MarbleWidget;
0025 
0026 class FlyToEditWidget: public QWidget
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     FlyToEditWidget( const QModelIndex& index, MarbleWidget* widget, QWidget* parent=nullptr );
0032     bool editable() const;
0033 
0034 Q_SIGNALS:
0035     void editingDone( const QModelIndex& index );
0036 
0037 public Q_SLOTS:
0038     void setEditable( bool editable );
0039 
0040     /** We disable editing of wait duration for first flyto in playlist. */
0041     void setFirstFlyTo(const QPersistentModelIndex &index );
0042 
0043 private Q_SLOTS:
0044     void save();
0045     void updateCoordinates();
0046 
0047 private:
0048     GeoDataFlyTo* flyToElement();
0049     MarbleWidget* m_widget;
0050     QPersistentModelIndex m_index;
0051     QDoubleSpinBox *m_durationSpin;
0052     QComboBox *m_modeCombo;
0053     GeoDataCoordinates m_coord;
0054     QToolButton *m_button;
0055 };
0056 
0057 } // namespace Marble
0058 
0059 #endif