File indexing completed on 2024-05-12 04:33:18
0001 /* 0002 SPDX-FileCopyrightText: 2009-2010 Michael G. Hansen <mike at mghansen dot de> 0003 SPDX-FileCopyrightText: 2011-2018 Gilles Caulier <caulier dot gilles at gmail dot com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "kipiimagecollectionselector.h" 0009 0010 // Qt includes 0011 0012 #include <QListWidget> 0013 #include <QVBoxLayout> 0014 #include <QLabel> 0015 #include <QDebug> 0016 0017 // Libkipi includes 0018 0019 #include "imagecollection.h" 0020 0021 // Local includes: 0022 0023 #include "kipiinterface.h" 0024 0025 namespace KXMLKipiCmd 0026 { 0027 0028 KipiImageCollectionSelector::KipiImageCollectionSelector(KipiInterface* const interface, QWidget* const parent) 0029 : ImageCollectionSelector(parent), 0030 m_interface(interface), 0031 m_listWidget(nullptr) 0032 { 0033 QVBoxLayout* const layout = new QVBoxLayout(this); 0034 layout->addWidget(new QLabel(QString::fromLatin1("Please select albums:"))); 0035 m_listWidget = new QListWidget(this); 0036 m_listWidget->setSelectionMode(QAbstractItemView::MultiSelection); 0037 layout->addWidget(m_listWidget); 0038 0039 setLayout(layout); 0040 0041 connect(m_listWidget, &QListWidget::itemSelectionChanged, 0042 this, &KipiImageCollectionSelector::slotItemSelectionChanged); 0043 0044 // add all albums to the list widget: 0045 m_allAlbums = m_interface->allAlbums(); 0046 0047 for (QList<ImageCollection>::const_iterator it = m_allAlbums.constBegin(); 0048 it!=m_allAlbums.constEnd(); ++it) 0049 { 0050 m_listWidget->addItem(it->name()); 0051 0052 // is the album selected? 0053 const QUrl itemPath = it->url(); 0054 m_listWidget->item(m_listWidget->count()-1)->setSelected(m_interface->m_selectedAlbums.contains(itemPath)); 0055 } 0056 0057 //TODO: select albums specified on the command line 0058 } 0059 0060 QList<ImageCollection> KipiImageCollectionSelector::selectedImageCollections() const 0061 { 0062 // return the selected albums: 0063 QList<ImageCollection> result; 0064 const QList<QListWidgetItem*> selectedItems = m_listWidget->selectedItems(); 0065 0066 for (QList<QListWidgetItem*>::const_iterator it = selectedItems.constBegin(); 0067 it!=selectedItems.constEnd(); ++it) 0068 { 0069 const int row = m_listWidget->row(*it); 0070 result.append(m_allAlbums.at(row)); 0071 } 0072 0073 // result.append(m_interface->currentAlbum()); 0074 qDebug() << QString::fromLatin1("selectedImageCollections: %1 items selected").arg(result.size()); 0075 return result; 0076 } 0077 0078 void KipiImageCollectionSelector::slotItemSelectionChanged() 0079 { 0080 Q_EMIT selectionChanged(); 0081 } 0082 0083 } // namespace KXMLKipiCmd 0084 0085 #include "moc_kipiimagecollectionselector.cpp"