File indexing completed on 2025-04-27 03:57:27

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2003-03-09
0007  * Description : Captions, Tags, and Rating properties editor - Information view.
0008  *
0009  * SPDX-FileCopyrightText: 2003-2005 by Renchi Raju <renchi dot raju at gmail dot com>
0010  * SPDX-FileCopyrightText: 2003-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
0012  * SPDX-FileCopyrightText: 2009-2011 by Andi Clemens <andi dot clemens at gmail dot com>
0013  * SPDX-FileCopyrightText: 2009-2011 by Johannes Wienke <languitar at semipol dot de>
0014  * SPDX-FileCopyrightText: 2015      by Veaceslav Munteanu <veaceslav dot munteanu90 at gmail dot com>
0015  *
0016  * SPDX-License-Identifier: GPL-2.0-or-later
0017  *
0018  * ============================================================ */
0019 
0020 #include "itemdescedittab_p.h"
0021 
0022 namespace Digikam
0023 {
0024 
0025 void ItemDescEditTab::initInformationView()
0026 {
0027     QScrollArea* const sv2    = new QScrollArea(d->tabWidget);
0028     sv2->setFrameStyle(QFrame::NoFrame);
0029     sv2->setWidgetResizable(true);
0030 
0031     QWidget* const infoArea   = new QWidget(sv2->viewport());
0032     QGridLayout* const grid2  = new QGridLayout(infoArea);
0033     sv2->setWidget(infoArea);
0034 
0035     d->templateSelector       = new TemplateSelector(infoArea);
0036     d->templateViewer         = new TemplateViewer(infoArea);
0037     d->templateViewer->setObjectName(QLatin1String("ItemDescEditTab Expander"));
0038 
0039     grid2->addWidget(d->templateSelector, 0, 0, 1, 2);
0040     grid2->addWidget(d->templateViewer,   1, 0, 1, 2);
0041     grid2->setRowStretch(1, 10);
0042     grid2->setContentsMargins(d->spacing, d->spacing, d->spacing, d->spacing);
0043     grid2->setSpacing(d->spacing);
0044 
0045     d->tabWidget->insertTab(INFOS, sv2, i18nc("@title", "Information"));
0046 }
0047 
0048 void ItemDescEditTab::slotTemplateSelected()
0049 {
0050     Template s = d->templateSelector->getTemplate();
0051     Template t = d->hub->metadataTemplate();
0052 
0053     if (s.isNull())
0054     {
0055         return;
0056     }
0057 
0058     if (s.templateTitle() == Template::removeTemplateTitle())
0059     {
0060         t = s;
0061     }
0062     else
0063     {
0064         t.merge(s);
0065     }
0066 
0067     d->hub->setMetadataTemplate(t);
0068     d->templateViewer->setTemplate(t);
0069     d->setMetadataWidgetStatus(d->hub->templateStatus(), d->templateSelector);
0070     slotModified();
0071 }
0072 
0073 void ItemDescEditTab::updateTemplate()
0074 {
0075     d->templateSelector->blockSignals(true);
0076     d->templateSelector->setTemplate(d->hub->metadataTemplate());
0077     d->templateViewer->setTemplate(d->hub->metadataTemplate());
0078     d->setMetadataWidgetStatus(d->hub->templateStatus(), d->templateSelector);
0079     d->templateSelector->blockSignals(false);
0080 }
0081 
0082 } // namespace Digikam