File indexing completed on 2025-01-19 03:53:23

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2003-03-09
0007  * Description : Album properties dialog.
0008  *
0009  * SPDX-FileCopyrightText: 2003-2004 by Renchi Raju <renchi dot raju at gmail dot com>
0010  * SPDX-FileCopyrightText: 2005      by Tom Albers <tomalbers at kde dot nl>
0011  * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0012  *
0013  * SPDX-License-Identifier: GPL-2.0-or-later
0014  *
0015  * ============================================================ */
0016 
0017 #ifndef DIGIKAM_ALBUM_PROPS_EDIT_H
0018 #define DIGIKAM_ALBUM_PROPS_EDIT_H
0019 
0020 // Qt includes
0021 
0022 #include <QString>
0023 #include <QStringList>
0024 #include <QDialog>
0025 
0026 namespace Digikam
0027 {
0028 
0029 class PAlbum;
0030 
0031 class AlbumPropsEdit : public QDialog
0032 {
0033     Q_OBJECT
0034 
0035 public:
0036 
0037     explicit AlbumPropsEdit(PAlbum* const album, bool create = false);
0038     ~AlbumPropsEdit()                   override;
0039 
0040     QString     title()           const;
0041     QString     comments()        const;
0042     QDate       date()            const;
0043     int         parent()          const;
0044     QString     category()        const;
0045     QStringList albumCategories() const;
0046 
0047 public:
0048 
0049     static bool editProps(PAlbum* const album,
0050                           QString&      title,
0051                           QString&      comments,
0052                           QDate&        date,
0053                           QString&      category,
0054                           QStringList&  albumCategories);
0055 
0056     static bool createNew(PAlbum* const parent,
0057                           QString&      title,
0058                           QString&      comments,
0059                           QDate&        date,
0060                           QString&      category,
0061                           QStringList&  albumCategories,
0062                           int&          parentSelector);
0063 
0064 private Q_SLOTS:
0065 
0066     void slotTitleChanged();
0067     void slotNewAlbumTextChanged(int index);
0068     void slotDateLowButtonClicked();
0069     void slotDateAverageButtonClicked();
0070     void slotDateHighButtonClicked();
0071     void slotHelp();
0072 
0073 private:
0074 
0075     // Disable
0076     explicit AlbumPropsEdit(QWidget*) = delete;
0077 
0078 private:
0079 
0080     class Private;
0081     Private* const d;
0082 };
0083 
0084 } // namespace Digikam
0085 
0086 #endif // DIGIKAM_ALBUM_PROPS_EDIT_H