File indexing completed on 2025-01-05 04:00:15

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2005-11-24
0007  * Description : Color management setup tab.
0008  *
0009  * SPDX-FileCopyrightText: 2005-2007 by F.J. Cruz <fj dot cruz at supercable dot es>
0010  * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  * SPDX-FileCopyrightText: 2009-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
0012  *
0013  * SPDX-License-Identifier: GPL-2.0-or-later
0014  *
0015  * ============================================================ */
0016 
0017 #ifndef DIGIKAM_SETUP_ICC_H
0018 #define DIGIKAM_SETUP_ICC_H
0019 
0020 // Qt includes
0021 
0022 #include <QScrollArea>
0023 #include <QMap>
0024 #include <QDir>
0025 #include <QUrl>
0026 
0027 // Local includes
0028 
0029 #include "digikam_export.h"
0030 
0031 class QDialogButtonBox;
0032 
0033 namespace Digikam
0034 {
0035 
0036 class IccProfile;
0037 
0038 class DIGIKAM_EXPORT SetupICC : public QScrollArea
0039 {
0040     Q_OBJECT
0041 
0042 public:
0043 
0044     enum ICCTab
0045     {
0046         Behavior = 0,
0047         Profiles,
0048         Advanced
0049     };
0050 
0051 public:
0052 
0053     explicit SetupICC(QDialogButtonBox* const dlgBtnBox, QWidget* const parent = nullptr);
0054     ~SetupICC() override;
0055 
0056     void applySettings();
0057 
0058     void setActiveTab(ICCTab tab);
0059     ICCTab activeTab() const;
0060 
0061     static bool iccRepositoryIsValid();
0062 
0063 private:
0064 
0065     void readSettings(bool restore = false);
0066     void fillCombos(bool report);
0067     void setWidgetsEnabled(bool enabled);
0068     void profileInfo(const IccProfile&);
0069 
0070 private Q_SLOTS:
0071 
0072     void slotToggledEnabled();
0073     void slotUrlChanged();
0074     void slotUrlTextChanged();
0075     void slotClickedIn();
0076     void slotClickedWork();
0077     void slotClickedMonitor();
0078     void slotClickedProof();
0079     void slotShowDefaultSearchPaths();
0080     void slotMissingToggled(bool);
0081 
0082 private:
0083 
0084     class Private;
0085     Private* const d;
0086 };
0087 
0088 } // namespace Digikam
0089 
0090 #endif // DIGIKAM_SETUP_ICC_H