[Kde-imaging] extragear/libs/kipi-plugins/metadataedit

Gilles Caulier caulier.gilles at gmail.com
Tue Oct 23 15:42:01 CEST 2007


SVN commit 728501 by cgilles:

kipi-plugins from trunk (KDE4): XMP metadata editor : fix management of alternative language list. 
Update content of language combobox accordinly with already assigned languages 
(only one language string entry is autorized).

Now, XMP Contents dialog page from editor is fully implemented.

CCMAIL: kde-imaging at kde.org



 M  +25 -5     altlangstringedit.cpp  
 M  +4 -0      altlangstringedit.h  


--- trunk/extragear/libs/kipi-plugins/metadataedit/altlangstringedit.cpp #728500:728501
@@ -294,11 +294,6 @@
     d->valueBox->setSortingEnabled(true);
 
     d->languageCB = new KIPIPlugins::SqueezedComboBox(this);
-
-    for (AltLangStringsEditPriv::LanguageCodeMap::Iterator it = d->languageCodeMap.begin();
-         it != d->languageCodeMap.end(); ++it)
-        d->languageCB->addSqueezedItem(QString("[%1] %2").arg(it.key()).arg(it.value()));
-
     d->languageCB->model()->sort(0);
     d->languageCB->setWhatsThis(i18n("<p>Select here language code."));
 
@@ -392,6 +387,7 @@
     if (!item) return;
     d->valueBox->takeItem(d->valueBox->row(item));
     delete item;
+    loadLangAltListEntries();
 }
 
 void AltLangStringsEdit::slotReplaceValue()
@@ -407,6 +403,7 @@
     {
         d->valueBox->currentItem()->setText(newValue);
         d->valueEdit->clear();
+        loadLangAltListEntries();
     }
 }
 
@@ -465,6 +462,7 @@
     {
         d->valueBox->insertItem(d->valueBox->count(), newValue);
         d->valueEdit->clear();
+        loadLangAltListEntries();
     }
 }
 
@@ -492,6 +490,8 @@
     d->delValueButton->setEnabled(d->valueCheck->isChecked());
 
     blockSignals(false);
+
+    loadLangAltListEntries();
 }
 
 bool AltLangStringsEdit::getValues(KExiv2Iface::KExiv2::AltLangMap& oldValues,
@@ -513,4 +513,24 @@
     return d->valueCheck->isChecked();
 }
 
+void AltLangStringsEdit::loadLangAltListEntries()
+{
+    QStringList list;
+    for (int i = 0 ; i < d->valueBox->count(); i++)
+    {
+        QListWidgetItem *item = d->valueBox->item(i);
+        QString lang          = item->text().left(item->text().indexOf("] "));
+        lang.remove(0, 1);
+        list.append(lang);
+    }
+
+    d->languageCB->clear();
+    for (AltLangStringsEditPriv::LanguageCodeMap::Iterator it = d->languageCodeMap.begin();
+         it != d->languageCodeMap.end(); ++it)
+    {
+        if (!list.contains(it.key()))
+            d->languageCB->addSqueezedItem(QString("[%1] %2").arg(it.key()).arg(it.value()));
+    }
+}
+
 }  // namespace KIPIMetadataEditPlugin
--- trunk/extragear/libs/kipi-plugins/metadataedit/altlangstringedit.h #728500:728501
@@ -66,6 +66,10 @@
 
 private:
 
+    void loadLangAltListEntries();
+
+private: 
+
     AltLangStringsEditPriv* d;
 };
 


More information about the Kde-imaging mailing list