1 /* ============================================================ 2 * 3 * This file is a part of digiKam project 4 * https://www.digikam.org 5 * 6 * Date : 20013-07-03 7 * Description : Tag Properties widget to display tag properties 8 * when a tag or multiple tags are selected 9 * 10 * Copyright (C) 2013 by Veaceslav Munteanu <veaceslav dot munteanu90 at gmail dot com> 11 * 12 * This program is free software; you can redistribute it 13 * and/or modify it under the terms of the GNU General 14 * Public License as published by the Free Software Foundation; 15 * either version 2, or (at your option) 16 * any later version. 17 * 18 * This program is distributed in the hope that it will be useful, 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * GNU General Public License for more details. 22 * 23 * ============================================================ */ 24 25 #ifndef DIGIKAM_TAG_PROP_WIDGET_H 26 #define DIGIKAM_TAG_PROP_WIDGET_H 27 28 // Qt includes 29 30 #include <QWidget> 31 32 // Local includes 33 34 #include "digikam_config.h" 35 36 namespace Digikam 37 { 38 39 class Album; 40 41 class TagPropWidget : public QWidget 42 { 43 Q_OBJECT 44 45 public: 46 47 enum ItemsEnable 48 { 49 DisabledAll, 50 EnabledAll, 51 IconOnly 52 }; 53 54 public: 55 56 explicit TagPropWidget(QWidget* const parent); 57 ~TagPropWidget() override; 58 59 Q_SIGNALS: 60 61 void signalTitleEditReady(); 62 63 public Q_SLOTS: 64 65 void slotSelectionChanged(const QList<Album*>& albums); 66 void slotFocusTitleEdit(); 67 68 private Q_SLOTS: 69 70 void slotIconResetClicked(); 71 void slotIconChanged(); 72 void slotDataChanged(); 73 void slotSaveChanges(); 74 void slotDiscardChanges(); 75 void slotReturnPressed(); 76 77 private: 78 79 /** 80 * @brief enableItems - enable items based on selection. 81 * If no item is selected, disable all, 82 * if one item selected, enable all, 83 * if multiple selected, enable icon & icon button 84 */ 85 void enableItems(ItemsEnable value); 86 87 private: 88 89 class Private; 90 Private* const d; 91 }; 92 93 } // namespace Digikam 94 95 #endif // DIGIKAM_TAG_PROP_WIDGET_H 96