File indexing completed on 2024-04-21 14:46:52
0001 /* 0002 SPDX-FileCopyrightText: 2009 Jerome SONRIER <jsid@emor3j.fr.eu.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "ui_flagmanager.h" 0010 0011 #include <QAbstractTableModel> 0012 #include <QDialog> 0013 0014 class QSortFilterProxyModel; 0015 class QStandardItemModel; 0016 class KStars; 0017 0018 class FlagManagerUI : public QFrame, public Ui::FlagManager 0019 { 0020 Q_OBJECT 0021 0022 public: 0023 /** @short Constructor */ 0024 explicit FlagManagerUI(QWidget *parent); 0025 }; 0026 0027 /** 0028 * @class FlagManager 0029 * @short Flag manager 0030 * Dialog box to add and remove flags 0031 * 0032 * @version 1.1 0033 * @author Jerome SONRIER 0034 */ 0035 class FlagManager : public QDialog 0036 { 0037 Q_OBJECT 0038 public: 0039 explicit FlagManager(QWidget *ks); 0040 0041 virtual ~FlagManager() override = default; 0042 0043 void setRaDec(const dms &ra, const dms &dec); 0044 void clearFields(); 0045 void showFlag(const int flagIdx); 0046 0047 bool validatePoint(); 0048 0049 void deleteFlagItem(int flagIdx); 0050 0051 public slots: 0052 /** @short Verify coordinates and add a flag */ 0053 void slotAddFlag(); 0054 0055 /** @short Delete a flag */ 0056 void slotDeleteFlag(); 0057 0058 /** @short Center the selected flag in the display */ 0059 void slotCenterFlag(); 0060 0061 /** @brief Center the selected flag in the telescope. */ 0062 void slotCenterTelescope(); 0063 0064 private slots: 0065 void slotSaveChanges(); 0066 void slotSetShownFlag(QModelIndex idx); 0067 0068 private: 0069 void insertFlag(bool isNew, int row = 0); 0070 0071 KStars *m_Ks { nullptr }; 0072 FlagManagerUI *ui { nullptr }; 0073 QStandardItemModel *m_Model { nullptr }; 0074 QSortFilterProxyModel *m_SortModel { nullptr }; 0075 };