File indexing completed on 2022-09-27 13:43:09

0001 /* ============================================================
0002  *
0003  * This file is a part of KDE project
0004  *
0005  *
0006  * Date        : 2005-07-07
0007  * Description : a kipi plugin to export images to Flickr web service
0008  *
0009  * Copyright (C) 2005-2008 by Vardhman Jain <vardhman at gmail dot com>
0010  * Copyright (C) 2008-2018 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  * Copyright (C) 2009      by Luka Renko <lure at kubuntu dot org>
0012  *
0013  * This program is free software; you can redistribute it
0014  * and/or modify it under the terms of the GNU General
0015  * Public License as published by the Free Software Foundation;
0016  * either version 2, or (at your option) any later version.
0017  *
0018  * This program is distributed in the hope that it will be useful,
0019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0021  * GNU General Public License for more details.
0022  *
0023  * ============================================================ */
0024 
0025 #include "flickrwidget.h"
0026 
0027 // Qt includes
0028 
0029 #include <QCheckBox>
0030 #include <QGridLayout>
0031 #include <QGroupBox>
0032 #include <QHeaderView>
0033 #include <QLabel>
0034 #include <QPushButton>
0035 #include <QScrollArea>
0036 #include <QSpinBox>
0037 #include <QVBoxLayout>
0038 #include <QTreeWidget>
0039 #include <QApplication>
0040 #include <QStyle>
0041 #include <QDialog>
0042 
0043 // LibKIPI includes
0044 
0045 #include <KIPI/Interface>
0046 
0047 // Local includes
0048 
0049 #include "comboboxdelegate.h"
0050 #include "comboboxintermediate.h"
0051 #include "flickrlist.h"
0052 
0053 namespace KIPIFlickrPlugin
0054 {
0055 
0056 FlickrWidget::FlickrWidget(QWidget* const parent, KIPI::Interface* const iface, const QString& serviceName)
0057     : KPSettingsWidget(parent,iface,serviceName)
0058 {
0059     m_serviceName = serviceName;
0060 
0061     //Adding Remove Account button
0062     m_removeAccount              = new QPushButton(getAccountBox());
0063     m_removeAccount->setText(i18n("Remove Account"));
0064     getAccountBoxLayout()->addWidget(m_removeAccount, 2, 0, 1, 4);
0065 
0066     // -- The image list --------------------------------------------------
0067 
0068     m_imglst               = new FlickrList(this, (serviceName == QString::fromLatin1("23")));
0069 
0070     // For figuring out the width of the permission columns.
0071     QHeaderView* const hdr = m_imglst->listView()->header();
0072     QFontMetrics hdrFont   = QFontMetrics(hdr->font());
0073     int permColWidth       = hdrFont.width(i18nc("photo permissions", "Public"));
0074 
0075     m_imglst->setAllowRAW(true);
0076     m_imglst->listView()->setWhatsThis(i18n("This is the list of images to upload to your Flickr account."));
0077     m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::PUBLIC), i18nc("photo permissions", "Public"), true);
0078 
0079     // Handle extra tags per image.
0080     m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::TAGS),
0081                                     i18n("Extra tags"), true);
0082 
0083     if (serviceName != QString::fromLatin1("23"))
0084     {
0085         int tmpWidth;
0086 
0087         if ((tmpWidth = hdrFont.width(i18nc("photo permissions", "Family"))) > permColWidth)
0088         {
0089             permColWidth = tmpWidth;
0090         }
0091 
0092         if ((tmpWidth = hdrFont.width(i18nc("photo permissions", "Friends"))) > permColWidth)
0093         {
0094             permColWidth = tmpWidth;
0095         }
0096 
0097         m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::FAMILY),
0098                                         i18nc("photo permissions", "Family"), true);
0099         m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::FRIENDS),
0100                                         i18nc("photo permissions", "Friends"), true);
0101         hdr->setSectionResizeMode(FlickrList::FAMILY,  QHeaderView::Interactive);
0102         hdr->setSectionResizeMode(FlickrList::FRIENDS, QHeaderView::Interactive);
0103         hdr->resizeSection(FlickrList::FAMILY,  permColWidth);
0104         hdr->resizeSection(FlickrList::FRIENDS, permColWidth);
0105 
0106         m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::SAFETYLEVEL),
0107                                         i18n("Safety level"), true);
0108         m_imglst->listView()->setColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::CONTENTTYPE),
0109                                         i18n("Content type"), true);
0110         QMap<int, QString> safetyLevelItems;
0111         QMap<int, QString> contentTypeItems;
0112         safetyLevelItems[FlickrList::SAFE]       = i18nc("photo safety level", "Safe");
0113         safetyLevelItems[FlickrList::MODERATE]   = i18nc("photo safety level", "Moderate");
0114         safetyLevelItems[FlickrList::RESTRICTED] = i18nc("photo safety level", "Restricted");
0115         contentTypeItems[FlickrList::PHOTO]      = i18nc("photo content type", "Photo");
0116         contentTypeItems[FlickrList::SCREENSHOT] = i18nc("photo content type", "Screenshot");
0117         contentTypeItems[FlickrList::OTHER]      = i18nc("photo content type", "Other");
0118         ComboBoxDelegate* const safetyLevelDelegate = new ComboBoxDelegate(m_imglst, safetyLevelItems);
0119         ComboBoxDelegate* const contentTypeDelegate = new ComboBoxDelegate(m_imglst, contentTypeItems);
0120         m_imglst->listView()->setItemDelegateForColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::SAFETYLEVEL), safetyLevelDelegate);
0121         m_imglst->listView()->setItemDelegateForColumn(static_cast<KPImagesListView::ColumnType>(FlickrList::CONTENTTYPE), contentTypeDelegate);
0122 
0123     }
0124 
0125     hdr->setSectionResizeMode(FlickrList::PUBLIC, QHeaderView::Interactive);
0126     hdr->resizeSection(FlickrList::PUBLIC, permColWidth);
0127 
0128     // -- Show upload original image CheckBox----------------------------------
0129 
0130     getOriginalCheckBox()->show();
0131 
0132     // -- Layout for the tags -------------------------------------------------
0133 
0134     QGroupBox* const tagsBox         = new QGroupBox(i18n("Tag options"), getSettingsBox());
0135     QGridLayout* const tagsBoxLayout = new QGridLayout(tagsBox);
0136 
0137     m_exportHostTagsCheckBox         = new QCheckBox(tagsBox);
0138     m_exportHostTagsCheckBox->setText(i18n("Use Host Application Tags"));
0139 
0140     m_extendedTagsButton             = new QPushButton(i18n("More tag options"));
0141     m_extendedTagsButton->setCheckable(true);
0142     // Initialize this button to checked, so extended options are shown.
0143     // FlickrWindow::readSettings can change this, but if checked is false it
0144     // cannot uncheck and subsequently hide the extended options (the toggled
0145     // signal won't be emitted).
0146     m_extendedTagsButton->setChecked(true);
0147     m_extendedTagsButton->setSizePolicy(QSizePolicy::Maximum,
0148                                         QSizePolicy::Preferred);
0149 
0150     m_extendedTagsBox               = new QGroupBox(QString::fromLatin1(""), getSettingsBox());
0151     m_extendedTagsBox->setFlat(true);
0152     QGridLayout* extendedTagsLayout = new QGridLayout(m_extendedTagsBox);
0153 
0154     QLabel* const tagsLabel         = new QLabel(i18n("Added Tags: "), m_extendedTagsBox);
0155     m_tagsLineEdit                  = new QLineEdit(m_extendedTagsBox);
0156     m_tagsLineEdit->setToolTip(i18n("Enter new tags here, separated by commas."));
0157     m_addExtraTagsCheckBox          = new QCheckBox(m_extendedTagsBox);
0158     m_addExtraTagsCheckBox->setText(i18n("Add tags per image"));
0159     m_addExtraTagsCheckBox->setToolTip(i18n("If checked, you can set extra tags for "
0160                                             "each image in the File List tab"));
0161     m_addExtraTagsCheckBox->setChecked(true);
0162     m_stripSpaceTagsCheckBox        = new QCheckBox(m_extendedTagsBox);
0163     m_stripSpaceTagsCheckBox->setText(i18n("Strip Spaces From Tags"));
0164 
0165     extendedTagsLayout->addWidget(tagsLabel,                0, 0);
0166     extendedTagsLayout->addWidget(m_tagsLineEdit,           0, 1);
0167     extendedTagsLayout->addWidget(m_stripSpaceTagsCheckBox, 1, 0, 1, 2);
0168     extendedTagsLayout->addWidget(m_addExtraTagsCheckBox,   2, 0, 1, 2);
0169 
0170     tagsBoxLayout->addWidget(m_exportHostTagsCheckBox, 0, 0);
0171     tagsBoxLayout->addWidget(m_extendedTagsButton,     0, 1);
0172     tagsBoxLayout->addWidget(m_extendedTagsBox,        1, 0, 1, 2);
0173 
0174     // -- Layout for the publication options ----------------------------------
0175 
0176     QGroupBox* const publicationBox         = new QGroupBox(i18n("Publication Options"), getSettingsBox());
0177     QGridLayout* const publicationBoxLayout = new QGridLayout;
0178     publicationBox->setLayout(publicationBoxLayout);
0179 
0180     m_publicCheckBox = new QCheckBox(publicationBox);
0181     m_publicCheckBox->setText(i18nc("As in accessible for people", "Public (anyone can see them)"));
0182 
0183     m_familyCheckBox = new QCheckBox(publicationBox);
0184     m_familyCheckBox->setText(i18n("Visible to Family"));
0185 
0186     m_friendsCheckBox = new QCheckBox(publicationBox);
0187     m_friendsCheckBox->setText(i18n("Visible to Friends"));
0188 
0189     // Extended publication settings
0190     m_extendedPublicationButton = new QPushButton(i18n("More publication options"));
0191     m_extendedPublicationButton->setCheckable(true);
0192     // Initialize this button to checked, so extended options are shown.
0193     // FlickrWindow::readSettings can change this, but if checked is false it
0194     // cannot uncheck and subsequently hide the extended options (the toggled
0195     // signal won't be emitted).
0196     m_extendedPublicationButton->setChecked(true);
0197     m_extendedPublicationButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
0198 
0199     m_extendedPublicationBox                  = new QGroupBox(QString::fromLatin1(""), publicationBox);
0200     m_extendedPublicationBox->setFlat(true);
0201     QGridLayout* const extendedSettingsLayout = new QGridLayout(m_extendedPublicationBox);
0202 
0203     QLabel* const imageSafetyLabel = new QLabel(i18n("Safety level:"));
0204     m_safetyLevelComboBox          = new ComboBoxIntermediate();
0205     m_safetyLevelComboBox->addItem(i18n("Safe"),       QVariant(FlickrList::SAFE));
0206     m_safetyLevelComboBox->addItem(i18n("Moderate"),   QVariant(FlickrList::MODERATE));
0207     m_safetyLevelComboBox->addItem(i18n("Restricted"), QVariant(FlickrList::RESTRICTED));
0208 
0209     QLabel* const imageTypeLabel = new QLabel(i18n("Content type:"));
0210     m_contentTypeComboBox        = new ComboBoxIntermediate();
0211     m_contentTypeComboBox->addItem(i18nc("photo content type", "Photo"),      QVariant(FlickrList::PHOTO));
0212     m_contentTypeComboBox->addItem(i18nc("photo content type", "Screenshot"), QVariant(FlickrList::SCREENSHOT));
0213     m_contentTypeComboBox->addItem(i18nc("photo content type", "Other"),      QVariant(FlickrList::OTHER));
0214 
0215     extendedSettingsLayout->addWidget(imageSafetyLabel,      1, 0, Qt::AlignLeft);
0216     extendedSettingsLayout->addWidget(m_safetyLevelComboBox, 1, 1, Qt::AlignLeft);
0217     extendedSettingsLayout->addWidget(imageTypeLabel,        0, 0, Qt::AlignLeft);
0218     extendedSettingsLayout->addWidget(m_contentTypeComboBox, 0, 1, Qt::AlignLeft);
0219     extendedSettingsLayout->setColumnStretch(0, 0);
0220     extendedSettingsLayout->setColumnStretch(1, 1);
0221 
0222     publicationBoxLayout->addWidget(m_publicCheckBox,            0, 0);
0223     publicationBoxLayout->addWidget(m_familyCheckBox,            1, 0);
0224     publicationBoxLayout->addWidget(m_friendsCheckBox,           2, 0);
0225     publicationBoxLayout->addWidget(m_extendedPublicationButton, 2, 1);
0226     publicationBoxLayout->addWidget(m_extendedPublicationBox,    3, 0, 1, 2);
0227 
0228     // -- Add these extra widgets to settings box -------------------------------------------------
0229 
0230     addWidgetToSettingsBox(publicationBox);
0231     addWidgetToSettingsBox(tagsBox);
0232 
0233     //hiding widgets not required.
0234     getUploadBox()->hide();
0235     getSizeBox()->hide();
0236 
0237     //Removing KPImageLists inherited from KPSettingsWidget and replacing it with more specific FlickrList
0238     replaceImageList(m_imglst);
0239 
0240     updateLabels();
0241 
0242     connect(m_imglst, SIGNAL(signalPermissionChanged(FlickrList::FieldType,Qt::CheckState)),
0243             this, SLOT(slotPermissionChanged(FlickrList::FieldType,Qt::CheckState)));
0244 
0245     connect(m_publicCheckBox, SIGNAL(stateChanged(int)),
0246             this, SLOT(slotMainPublicToggled(int)));
0247 
0248     connect(m_extendedTagsButton, SIGNAL(toggled(bool)),
0249             this, SLOT(slotExtendedTagsToggled(bool)));
0250 
0251     connect(m_addExtraTagsCheckBox, SIGNAL(toggled(bool)),
0252             this, SLOT(slotAddExtraTagsToggled(bool)));
0253 
0254     // 23HQ doesn't support the Family and Friends concept.
0255     if (serviceName != QString::fromLatin1("23"))
0256     {
0257         connect(m_familyCheckBox, SIGNAL(stateChanged(int)),
0258                 this, SLOT(slotMainFamilyToggled(int)));
0259 
0260         connect(m_friendsCheckBox, SIGNAL(stateChanged(int)),
0261                 this, SLOT(slotMainFriendsToggled(int)));
0262     }
0263     else
0264     {
0265         m_familyCheckBox->hide();
0266         m_friendsCheckBox->hide();
0267     }
0268 
0269     // 23HQ don't support the Safety Level and Content Type concept.
0270     if (serviceName != QString::fromLatin1("23"))
0271     {
0272         connect(m_safetyLevelComboBox, SIGNAL(currentIndexChanged(int)),
0273                 this, SLOT(slotMainSafetyLevelChanged(int)));
0274 
0275         connect(m_contentTypeComboBox, SIGNAL(currentIndexChanged(int)),
0276                 this, SLOT(slotMainContentTypeChanged(int)));
0277 
0278         connect(m_extendedPublicationButton, SIGNAL(toggled(bool)),
0279                 this, SLOT(slotExtendedPublicationToggled(bool)));
0280 
0281         connect(m_imglst, SIGNAL(signalSafetyLevelChanged(FlickrList::SafetyLevel)),
0282                 this, SLOT(slotSafetyLevelChanged(FlickrList::SafetyLevel)));
0283 
0284         connect(m_imglst, SIGNAL(signalContentTypeChanged(FlickrList::ContentType)),
0285                 this, SLOT(slotContentTypeChanged(FlickrList::ContentType)));
0286     }
0287     else
0288     {
0289         m_extendedPublicationBox->hide();
0290         m_extendedPublicationButton->hide();
0291         m_imglst->listView()->setColumnEnabled(static_cast<KPImagesListView::ColumnType>(FlickrList::SAFETYLEVEL), false);
0292         m_imglst->listView()->setColumnEnabled(static_cast<KPImagesListView::ColumnType>(FlickrList::CONTENTTYPE), false);
0293     }
0294 }
0295 
0296 FlickrWidget::~FlickrWidget()
0297 {
0298 }
0299 
0300 void FlickrWidget::updateLabels(const QString& /*name*/, const QString& /*url*/)
0301 {
0302     if (m_serviceName == QString::fromLatin1("23"))
0303     {
0304         getHeaderLbl()->setText(i18n("<b><h2><a href='http://www.23hq.com'>"
0305                                   "<font color=\"#7CD164\">23</font></a>"
0306                                   " Export"
0307                                   "</h2></b>"));
0308     }
0309     else
0310     {
0311         getHeaderLbl()->setText(i18n("<b><h2><a href='http://www.flickr.com'>"
0312                                   "<font color=\"#0065DE\">flick</font>"
0313                                   "<font color=\"#FF0084\">r</font></a>"
0314                                   " Export"
0315                                   "</h2></b>"));
0316     }
0317 }
0318 
0319 void FlickrWidget::slotPermissionChanged(FlickrList::FieldType checkbox, Qt::CheckState state)
0320 {
0321     /* Slot for handling the signal from the FlickrList that the general
0322      * permissions have changed, considering the clicks in the checkboxes next
0323      * to each image. In response, the main permission checkboxes should be set
0324      * to the proper state.
0325      * The checkbox variable determines which of the checkboxes should be
0326      * changed. */
0327 
0328     // Select the proper checkbox.
0329     QCheckBox* currBox = nullptr;
0330 
0331     if (checkbox == FlickrList::PUBLIC)
0332     {
0333         currBox = m_publicCheckBox;
0334     }
0335     else if (checkbox == FlickrList::FAMILY)
0336     {
0337         currBox = m_familyCheckBox;
0338     }
0339     else
0340     {
0341         currBox = m_friendsCheckBox;
0342     }
0343 
0344     // If the checkbox should be set in the intermediate state, the tristate
0345     // property of the checkbox should be manually set to true, otherwise, it
0346     // has to be set to false so that the user cannot select it.
0347     currBox->setCheckState(state);
0348 
0349     if ((state == Qt::Checked) || (state == Qt::Unchecked))
0350     {
0351         currBox->setTristate(false);
0352     }
0353     else
0354     {
0355         currBox->setTristate(true);
0356     }
0357 }
0358 
0359 void FlickrWidget::slotSafetyLevelChanged(FlickrList::SafetyLevel safetyLevel)
0360 {
0361     /* Called when the general safety level of the FlickrList has changed,
0362      * considering the individual comboboxes next to the photos. Used to set the
0363      * main safety level combobox appropriately. */
0364     if (safetyLevel == FlickrList::MIXEDLEVELS)
0365     {
0366         m_safetyLevelComboBox->setIntermediate(true);
0367     }
0368     else
0369     {
0370         int index = m_safetyLevelComboBox->findData(QVariant(static_cast<int>(safetyLevel)));
0371         m_safetyLevelComboBox->setCurrentIndex(index);
0372     }
0373 }
0374 
0375 void FlickrWidget::slotContentTypeChanged(FlickrList::ContentType contentType)
0376 {
0377     /* Called when the general content type of the FlickrList has changed,
0378      * considering the individual comboboxes next to the photos. Used to set the
0379      * main content type combobox appropriately. */
0380     if (contentType == FlickrList::MIXEDTYPES)
0381     {
0382         m_contentTypeComboBox->setIntermediate(true);
0383     }
0384     else
0385     {
0386         int index = m_contentTypeComboBox->findData(QVariant(static_cast<int>(contentType)));
0387         m_contentTypeComboBox->setCurrentIndex(index);
0388     }
0389 }
0390 
0391 void FlickrWidget::slotMainPublicToggled(int state)
0392 {
0393     mainPermissionToggled(FlickrList::PUBLIC, static_cast<Qt::CheckState>(state));
0394 }
0395 
0396 void FlickrWidget::slotMainFamilyToggled(int state)
0397 {
0398     mainPermissionToggled(FlickrList::FAMILY, static_cast<Qt::CheckState>(state));
0399 }
0400 
0401 void FlickrWidget::slotMainFriendsToggled(int state)
0402 {
0403     mainPermissionToggled(FlickrList::FRIENDS, static_cast<Qt::CheckState>(state));
0404 }
0405 
0406 void FlickrWidget::mainPermissionToggled(FlickrList::FieldType checkbox, Qt::CheckState state)
0407 {
0408     /* Callback for when one of the main permission checkboxes is toggled.
0409      * checkbox specifies which of the checkboxes is toggled. */
0410 
0411     if (state != Qt::PartiallyChecked)
0412     {
0413         // Set the states for the image list.
0414         if (checkbox == FlickrList::PUBLIC)
0415         {
0416             m_imglst->setPublic(state);
0417         }
0418         else if (checkbox == FlickrList::FAMILY)
0419         {
0420             m_imglst->setFamily(state);
0421         }
0422         else if (checkbox == FlickrList::FRIENDS)
0423         {
0424             m_imglst->setFriends(state);
0425         }
0426 
0427         // Dis- or enable the family and friends checkboxes if the public
0428         // checkbox is clicked.
0429         if (checkbox == 0)
0430         {
0431             if (state == Qt::Checked)
0432             {
0433                 m_familyCheckBox->setEnabled(false);
0434                 m_friendsCheckBox->setEnabled(false);
0435             }
0436             else if (state == Qt::Unchecked)
0437             {
0438                 m_familyCheckBox->setEnabled(true);
0439                 m_friendsCheckBox->setEnabled(true);
0440             }
0441         }
0442 
0443         // Set the main checkbox tristate state to false, so that the user
0444         // cannot select the intermediate state.
0445         if (checkbox == FlickrList::PUBLIC)
0446         {
0447             m_publicCheckBox->setTristate(false);
0448         }
0449         else if (checkbox == FlickrList::FAMILY)
0450         {
0451             m_familyCheckBox->setTristate(false);
0452         }
0453         else if (checkbox == FlickrList::FRIENDS)
0454         {
0455             m_friendsCheckBox->setTristate(false);
0456         }
0457     }
0458 }
0459 
0460 void FlickrWidget::slotMainSafetyLevelChanged(int index)
0461 {
0462     int currValue = (m_safetyLevelComboBox->itemData(index)).value<int>();
0463 //     int currValue = qVariantValue<int>(m_safetyLevelComboBox->itemData(index));
0464     m_imglst->setSafetyLevels(static_cast<FlickrList::SafetyLevel>(currValue));
0465 }
0466 
0467 void FlickrWidget::slotMainContentTypeChanged(int index)
0468 {
0469     int currValue = (m_contentTypeComboBox->itemData(index)).value<int>();
0470 //     int currValue = qVariantValue<int>(m_contentTypeComboBox->itemData(index));
0471     m_imglst->setContentTypes(static_cast<FlickrList::ContentType>(currValue));
0472 }
0473 
0474 void FlickrWidget::slotExtendedPublicationToggled(bool status)
0475 {
0476     // Show or hide the extended settings when the extended settings button
0477     // is toggled.
0478     m_extendedPublicationBox->setVisible(status);
0479     m_imglst->listView()->setColumnHidden(FlickrList::SAFETYLEVEL, !status);
0480     m_imglst->listView()->setColumnHidden(FlickrList::CONTENTTYPE, !status);
0481 
0482     if (status)
0483     {
0484         m_extendedPublicationButton->setText(i18n("Fewer publication options"));
0485     }
0486     else
0487     {
0488         m_extendedPublicationButton->setText(i18n("More publication options"));
0489     }
0490 }
0491 
0492 void FlickrWidget::slotExtendedTagsToggled(bool status)
0493 {
0494     // Show or hide the extended tag settings when the extended tag option
0495     // button is toggled.
0496     m_extendedTagsBox->setVisible(status);
0497 
0498     if (!status)
0499     {
0500         m_imglst->listView()->setColumnHidden(FlickrList::TAGS, true);
0501         m_extendedTagsButton->setText(i18n("More tag options"));
0502     }
0503     else
0504     {
0505         m_imglst->listView()->setColumnHidden(FlickrList::TAGS, !m_addExtraTagsCheckBox->isChecked());
0506         m_extendedTagsButton->setText(i18n("Fewer tag options"));
0507     }
0508 }
0509 
0510 void FlickrWidget::slotAddExtraTagsToggled(bool status)
0511 {
0512     if (m_extendedTagsButton->isChecked())
0513     {
0514         m_imglst->listView()->setColumnHidden(FlickrList::TAGS, !status);
0515     }
0516 }
0517 
0518 } // namespace KIPIFlickrPlugin