File indexing completed on 2024-04-21 03:49:29

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef MARBLE_BOOKMARKMANAGERDIALOG_H
0007 #define MARBLE_BOOKMARKMANAGERDIALOG_H
0008 
0009 #include "ui_BookmarkManagerDialog.h"
0010 #include "marble_export.h"
0011 
0012 #include <QDialog>
0013 
0014 namespace Marble
0015 {
0016 
0017 class GeoDataDocument;
0018 class GeoDataContainer;
0019 class MarbleModel;
0020 class BookmarkManagerDialogPrivate;
0021 
0022 class MARBLE_EXPORT BookmarkManagerDialog : public QDialog, private Ui::UiBookmarkManagerDialog
0023 {
0024     Q_OBJECT
0025 
0026  public:
0027     /** Constructor. The model is used to retrieve the bookmark manager */
0028     explicit BookmarkManagerDialog( MarbleModel* model, QWidget *parent = nullptr );
0029 
0030     /** Destructor */
0031     ~BookmarkManagerDialog() override;
0032 
0033     void setButtonBoxVisible( bool visible );
0034 
0035 private Q_SLOTS:
0036     void saveBookmarks();
0037 
0038     void exportBookmarks();
0039 
0040     void importBookmarks();
0041 
0042 private:
0043     Q_PRIVATE_SLOT( d, void updateButtonState() )
0044 
0045     Q_PRIVATE_SLOT( d, void addNewFolder() )
0046 
0047     Q_PRIVATE_SLOT( d, void renameFolder() )
0048 
0049     Q_PRIVATE_SLOT( d, void deleteFolder() )
0050 
0051     Q_PRIVATE_SLOT( d, void editBookmark() )
0052 
0053     Q_PRIVATE_SLOT( d, void deleteBookmark() )
0054 
0055     Q_PRIVATE_SLOT( d, void handleFolderSelection( const QModelIndex &index ) )
0056 
0057     Q_PRIVATE_SLOT( d, void discardChanges() )
0058 
0059     Q_DISABLE_COPY( BookmarkManagerDialog )
0060     BookmarkManagerDialogPrivate* const d;
0061     friend class BookmarkManagerDialogPrivate;
0062 };
0063 
0064 }
0065 #endif