[pkg-kde-commits] rev 2893 - kde-extras/kipi-plugins/trunk/debian/patches

Tom Albers tomalbers-guest at costa.debian.org
Sun Jan 15 21:12:35 UTC 2006


Author: tomalbers-guest
Date: 2006-01-15 21:12:34 +0000 (Sun, 15 Jan 2006)
New Revision: 2893

Added:
   kde-extras/kipi-plugins/trunk/debian/patches/13_10_pull_from_upstreamsvn_from_r460242.diff
Log:
Pull from upstream svn.


Added: kde-extras/kipi-plugins/trunk/debian/patches/13_10_pull_from_upstreamsvn_from_r460242.diff
===================================================================
--- kde-extras/kipi-plugins/trunk/debian/patches/13_10_pull_from_upstreamsvn_from_r460242.diff	2006-01-15 21:08:11 UTC (rev 2892)
+++ kde-extras/kipi-plugins/trunk/debian/patches/13_10_pull_from_upstreamsvn_from_r460242.diff	2006-01-15 21:12:34 UTC (rev 2893)
@@ -0,0 +1,5217 @@
+Index: kipi-plugins/acquireimages/kipiplugin_acquireimages.desktop
+===================================================================
+--- kipi-plugins/acquireimages/kipiplugin_acquireimages.desktop	(revision 460242)
++++ kipi-plugins/acquireimages/kipiplugin_acquireimages.desktop	(revision 498544)
+@@ -2,24 +2,31 @@
+ Encoding=UTF-8
+ Name=AcquireImages
+ Name[da]=Hent billeder
++Name[el]=ΑνάκτησηΕικόνων
++Name[es]=Obtener imágenes
+ Name[et]=Pildihõive
+ Name[it]=AcquisizioneImmagini
+ Name[nl]=Afbeeldingen ophalen
+-Name[pa]=ਚਿੱਤਰ ਪ੍ਰਾਪਤ
++Name[pa]=ਚਿੱਤਰ ਪਰਾਪਤ
+ Name[pl]=Zgrywanie zdjęć
+ Name[pt]=Aquisição de Imagens
+ Name[pt_BR]=Aquisição de Imagens
+ Name[sr]=Добави слике
+ Name[sr at Latn]=Dobavi slike
+ Name[sv]=Hämta bilder
++Name[tg]=АндӯхтаниТасвирҳо
+ Name[tr]=ResimTara
+ Name[xx]=xxAcquireImagesxx
+ Name[zh_CN]=获取图像
+ Comment=KIPI Acquire Image Plugin
+ Comment[da]=KIPI-plugin: Hent billeder
+ Comment[de]=Ein KIPI-Modul zum Holen von Bildern
++Comment[el]=Πρόσθετο ανάκτησης εικόνας KIPI
++Comment[es]=Extensión de KIPI para captura de imágenes
+ Comment[et]=KIPI pildihõive plugin
++Comment[fr]=Module externe KIPI pour acquérir des images
+ Comment[it]=Plugin di acquisizione di immagini di KIPI
++Comment[ja]=KIPI 画像取り込みプラグイン
+ Comment[nl]=KIPI-plugin voor het ophalen van afbeeldingen
+ Comment[pa]=KIPI ਪ੍ਰਾਪਤੀ ਚਿੱਤਰ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Zgrywanie zdjęć
+@@ -28,6 +35,7 @@
+ Comment[sr]=KIPI прикључак за добављање слика
+ Comment[sr at Latn]=KIPI priključak za dobavljanje slika
+ Comment[sv]=KIPI-insticksprogram: Hämta bilder
++Comment[tg]=Модули Андӯхтани Тасвирҳои KIPI
+ Comment[tr]=KIPI Resim Tarama Eklentisi
+ Comment[xx]=xxKIPI Acquire Image Pluginxx
+ Comment[zh_CN]=KIPI 图像获取插件
+Index: kipi-plugins/acquireimages/plugin_acquireimages.cpp
+===================================================================
+--- kipi-plugins/acquireimages/plugin_acquireimages.cpp	(revision 460242)
++++ kipi-plugins/acquireimages/plugin_acquireimages.cpp	(revision 498544)
+@@ -51,7 +51,7 @@
+ typedef KGenericFactory<Plugin_AcquireImages> Factory;
+ 
+ K_EXPORT_COMPONENT_FACTORY( kipiplugin_acquireimages,
+-                            Factory("kipiplugin_acquireimages"));
++                            Factory("kipiplugin_acquireimages"))
+ 
+ // -----------------------------------------------------------
+ Plugin_AcquireImages::Plugin_AcquireImages(QObject *parent, const char*, const QStringList&)
+Index: kipi-plugins/acquireimages/screenshotdialog.cpp
+===================================================================
+--- kipi-plugins/acquireimages/screenshotdialog.cpp	(revision 460242)
++++ kipi-plugins/acquireimages/screenshotdialog.cpp	(revision 498544)
+@@ -194,7 +194,7 @@
+     helpMenu->menu()->removeItemAt(0);
+     helpMenu->menu()->insertItem(i18n("Acquire Images Handbook"), this, SLOT(slotHelp()), 0, -1, 0);
+     m_helpButton->setPopup( helpMenu->menu() );
+-};
++}
+ 
+ 
+ //////////////////////////////////// DESTRUCTOR /////////////////////////////////////////////
+Index: kipi-plugins/rawconverter/plugin_rawconverter.cpp
+===================================================================
+--- kipi-plugins/rawconverter/plugin_rawconverter.cpp	(revision 460242)
++++ kipi-plugins/rawconverter/plugin_rawconverter.cpp	(revision 498544)
+@@ -53,7 +53,7 @@
+ typedef KGenericFactory<Plugin_RawConverter> Factory;
+ 
+ K_EXPORT_COMPONENT_FACTORY( kipiplugin_rawconverter,
+-                            Factory("kipiplugin_rawconverter"));
++                            Factory("kipiplugin_rawconverter"))
+ 
+ Plugin_RawConverter::Plugin_RawConverter(QObject *parent,
+                                          const char*,
+Index: kipi-plugins/rawconverter/dcrawprocess.cpp
+===================================================================
+--- kipi-plugins/rawconverter/dcrawprocess.cpp	(revision 460242)
++++ kipi-plugins/rawconverter/dcrawprocess.cpp	(revision 498544)
+@@ -25,12 +25,12 @@
+ 
+ extern "C"
+ {
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <sys/types.h>
++#include <stdlib.h>
+ #include <sys/wait.h>
+ #include <signal.h>
+-#include <getopt.h>
+ #include <jpeglib.h>
+ #include <tiffio.h>
+ }
+Index: kipi-plugins/rawconverter/batchdialog.cpp
+===================================================================
+--- kipi-plugins/rawconverter/batchdialog.cpp	(revision 460242)
++++ kipi-plugins/rawconverter/batchdialog.cpp	(revision 498544)
+@@ -382,42 +382,40 @@
+ 
+ void BatchDialog::readSettings()
+ {
+-    KConfig* config=kapp->config();
++    KConfig config("kipirc");
++    config.setGroup("RawConverter Settings");
+ 
+-    config->setGroup("RawConverter Settings");
++    brightnessSpinBox_->setValue(config.readNumEntry("Brightness",10));
+ 
+-    brightnessSpinBox_->setValue(config->readNumEntry("Brightness",10));
++    redSpinBox_->setValue(config.readNumEntry("Red Scale",10));
++    blueSpinBox_->setValue(config.readNumEntry("Blue Scale",10));
+ 
+-    redSpinBox_->setValue(config->readNumEntry("Red Scale",10));
+-    blueSpinBox_->setValue(config->readNumEntry("Blue Scale",10));
++    cameraWBCheckBox_->setChecked(config.readBoolEntry("Use Camera WB", true));
++    fourColorCheckBox_->setChecked(config.readBoolEntry("Four Color RGB", false));
+ 
+-    cameraWBCheckBox_->setChecked(config->readBoolEntry("Use Camera WB", true));
+-    fourColorCheckBox_->setChecked(config->readBoolEntry("Four Color RGB", false));
+-
+-    saveButtonGroup_->setButton(config->readNumEntry("Output Format", 0));
+-    conflictButtonGroup_->setButton(config->readNumEntry("Conflict", 0));
++    saveButtonGroup_->setButton(config.readNumEntry("Output Format", 0));
++    conflictButtonGroup_->setButton(config.readNumEntry("Conflict", 0));
+ }
+ 
+ void BatchDialog::saveSettings()
+ {
+-    KConfig* config=kapp->config();
++    KConfig config("kipirc");
++    config.setGroup("RawConverter Settings");
+ 
+-    config->setGroup("RawConverter Settings");
++    config.writeEntry("Brightness", brightnessSpinBox_->value());
+ 
+-    config->writeEntry("Brightness", brightnessSpinBox_->value());
++    config.writeEntry("Red Scale", redSpinBox_->value());
++    config.writeEntry("Blue Scale", blueSpinBox_->value());
+ 
+-    config->writeEntry("Red Scale", redSpinBox_->value());
+-    config->writeEntry("Blue Scale", blueSpinBox_->value());
++    config.writeEntry("Use Camera WB", cameraWBCheckBox_->isChecked());
++    config.writeEntry("Four Color RGB", fourColorCheckBox_->isChecked());
+ 
+-    config->writeEntry("Use Camera WB", cameraWBCheckBox_->isChecked());
+-    config->writeEntry("Four Color RGB", fourColorCheckBox_->isChecked());
+-
+-    config->writeEntry("Output Format",
++    config.writeEntry("Output Format",
+                        saveButtonGroup_->id(saveButtonGroup_->selected()));
+-    config->writeEntry("Conflict",
++    config.writeEntry("Conflict",
+                        conflictButtonGroup_->id(conflictButtonGroup_->selected()));
+ 
+-    config->sync();
++    config.sync();
+ }
+ 
+ void BatchDialog::slotSaveFormatChanged()
+Index: kipi-plugins/rawconverter/singledialog.cpp
+===================================================================
+--- kipi-plugins/rawconverter/singledialog.cpp	(revision 460242)
++++ kipi-plugins/rawconverter/singledialog.cpp	(revision 498544)
+@@ -356,39 +356,37 @@
+ 
+ void SingleDialog::readSettings()
+ {
+-    KConfig* config=kapp->config();
++    KConfig config("kipirc");
++    config.setGroup("RawConverter Settings");
+ 
+-    config->setGroup("RawConverter Settings");
++    brightnessSpinBox_->setValue(config.readNumEntry("Brightness",10));
+ 
+-    brightnessSpinBox_->setValue(config->readNumEntry("Brightness",10));
++    redSpinBox_->setValue(config.readNumEntry("Red Scale",10));
++    blueSpinBox_->setValue(config.readNumEntry("Blue Scale",10));
+ 
+-    redSpinBox_->setValue(config->readNumEntry("Red Scale",10));
+-    blueSpinBox_->setValue(config->readNumEntry("Blue Scale",10));
++    cameraWBCheckBox_->setChecked(config.readBoolEntry("Use Camera WB", true));
++    fourColorCheckBox_->setChecked(config.readBoolEntry("Four Color RGB", false));
+ 
+-    cameraWBCheckBox_->setChecked(config->readBoolEntry("Use Camera WB", true));
+-    fourColorCheckBox_->setChecked(config->readBoolEntry("Four Color RGB", false));
+-
+-    saveButtonGroup_->setButton(config->readNumEntry("Output Format", 0));
++    saveButtonGroup_->setButton(config.readNumEntry("Output Format", 0));
+ }
+ 
+ void SingleDialog::saveSettings()
+ {
+-    KConfig* config=kapp->config();
++    KConfig config("kipirc");
++    config.setGroup("RawConverter Settings");
+ 
+-    config->setGroup("RawConverter Settings");
++    config.writeEntry("Brightness", brightnessSpinBox_->value());
+ 
+-    config->writeEntry("Brightness", brightnessSpinBox_->value());
++    config.writeEntry("Red Scale", redSpinBox_->value());
++    config.writeEntry("Blue Scale", blueSpinBox_->value());
+ 
+-    config->writeEntry("Red Scale", redSpinBox_->value());
+-    config->writeEntry("Blue Scale", blueSpinBox_->value());
++    config.writeEntry("Use Camera WB", cameraWBCheckBox_->isChecked());
++    config.writeEntry("Four Color RGB", fourColorCheckBox_->isChecked());
+ 
+-    config->writeEntry("Use Camera WB", cameraWBCheckBox_->isChecked());
+-    config->writeEntry("Four Color RGB", fourColorCheckBox_->isChecked());
++    config.writeEntry("Output Format",
++                      saveButtonGroup_->id(saveButtonGroup_->selected()));
+ 
+-    config->writeEntry("Output Format",
+-                       saveButtonGroup_->id(saveButtonGroup_->selected()));
+-
+-    config->sync();
++    config.sync();
+ }
+ 
+ void SingleDialog::slotHelp()
+Index: kipi-plugins/rawconverter/kipiplugin_rawconverter.desktop
+===================================================================
+--- kipi-plugins/rawconverter/kipiplugin_rawconverter.desktop	(revision 460242)
++++ kipi-plugins/rawconverter/kipiplugin_rawconverter.desktop	(revision 498544)
+@@ -2,24 +2,31 @@
+ Encoding=UTF-8
+ Name=RawConverter
+ Name[da]=Konvertering af ubehandlede billeder
++Name[el]=ΜετατροπέαςΑκατέργαστηςΜορφής
++Name[es]=Conversor Raw
+ Name[et]=Toorpiltide teisendaja
+ Name[it]=ConvertitoreGrezzo
+-Name[nl]=Rauwconversie
++Name[nl]=Raw-conversie
+ Name[pl]=Konwerter RAW
+ Name[pt]=Conversor de RAW
+ Name[pt_BR]=Conversor de RAW
+ Name[sr]=Raw претварање
+ Name[sr at Latn]=Raw pretvaranje
+ Name[sv]=Konvertering av obehandlade bilder
++Name[tg]=Ковертери Raw
+ Name[tr]=HamDönüştürücü
+ Name[xx]=xxRawConverterxx
+ Name[zh_CN]=原图转换器
+ Comment=KIPI Raw Image Converter
+ Comment[da]=KIPI-plugin: Konvertering af ubehandlede billeder
+ Comment[de]=Ein KIPI-Modul zum Konvertieren von Bildern im Raw-Format
++Comment[el]=Μετατροπέας του KIPI για εικόνες ανεπεξέργαστης μορφής
++Comment[es]=Conversor de imágenes Raw para KIPI
+ Comment[et]=KIPI toorpiltide teisendaja
++Comment[fr]=Module externe KIPI pour convertir des images brutes
+ Comment[it]=Convertitore di immagini grezze di KIPI
+-Comment[nl]=KIPI-plugin voor het converteren van rauwe afbeeldingen
++Comment[ja]=KIPI Raw画像コンバータ
++Comment[nl]=KIPI-plugin voor het converteren van raw-afbeeldingen
+ Comment[pa]=KIPI Raw ਚਿੱਤਰ ਤਬਦੀਲੀਕਾਰ
+ Comment[pl]=Wtyczka KIPI - Konwerter zdjęć RAW
+ Comment[pt]=Conversor de Imagens em Bruto do KIPI
+@@ -27,6 +34,7 @@
+ Comment[sr]=KIPI-јев претварач Raw слика
+ Comment[sr at Latn]=KIPI-jev pretvarač Raw slika
+ Comment[sv]=KIPI-insticksprogram: Konvertering av obehandlade bilder
++Comment[tg]=Конвертери Тасвирҳои KIPI Raw
+ Comment[tr]=KIPI Ham Resim Dönüştürücü
+ Comment[xx]=xxKIPI Raw Image Converterxx
+ Comment[zh_CN]=KIPI 原始图像转换器
+Index: kipi-plugins/cdarchiving/cdarchivingdialog.cpp
+===================================================================
+--- kipi-plugins/cdarchiving/cdarchivingdialog.cpp	(revision 460242)
++++ kipi-plugins/cdarchiving/cdarchivingdialog.cpp	(revision 498544)
+@@ -1,28 +1,30 @@
+-//////////////////////////////////////////////////////////////////////////////
+-//
+-//    CDARCHIVINGDILAOG.CPP
+-//
+-//    Copyright (C) 2003-2004 Gilles Caulier <caulier dot gilles at free.fr>
+-//    Copyright (C) 2003-2004 by Gregory Kokanosky <gregory dot kokanosky at free.fr>
+-//    for images navigation mode.
+-//
+-//    This program is free software; you can redistribute it and/or modify
+-//    it under the terms of the GNU General Public License as published by
+-//    the Free Software Foundation; either version 2 of the License, or
+-//    (at your option) any later version.
+-//
+-//    This program is distributed in the hope that it will be useful,
+-//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-//    GNU General Public License for more details.
+-//
+-//    You should have received a copy of the GNU General Public License
+-//    along with this program; if not, write to the Free Software
+-//    Foundation, Inc., 51 Franklin Steet, Fifth Floor, Cambridge, MA 02110-1301, USA.
+-//
+-//////////////////////////////////////////////////////////////////////////////
++/* ============================================================
++ * Author: Gilles Caulier <caulier dot gilles at free.fr>
++ *         from digiKam project.
++ * Date  : 2003-10-01
++ * Description : a kipi plugin to export image collections
++ *               on CD/DVD.
++ * 
++ * Copyright 2003-2005 by Gilles Caulier
++ * Copyright 2003-2004 by Gregory Kokanosky 
++ *                        <gregory dot kokanosky at free.fr>
++ *                        for HTML interface navigation mode
++ * Copyright 2005      by Owen Hirst <n8rider at sbcglobal.net>
++ *                        about bugfix.
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * ============================================================ */
+ 
+-
+ // Include files for Qt
+ 
+ #include <qlabel.h>
+@@ -80,11 +82,9 @@
+ 
+ KIO::filesize_t TargetMediaSize;
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ CDArchivingDialog::CDArchivingDialog( KIPI::Interface* interface, QWidget *parent)
+                  : KDialogBase( IconList, i18n("Configure Archive to CD"), Help|Ok|Cancel, Ok,
+-                   parent, "CDArchivingDialog", true, true ), m_interface( interface )
++                                parent, "CDArchivingDialog", true, true ), m_interface( interface )
+ {
+     setCaption(i18n("Create CD/DVD Archive"));
+     setupSelection();
+@@ -103,7 +103,7 @@
+                                                  "This plugin use K3b CD/DVD burning software available at\n"
+                                                  "http://www.k3b.org"),
+                                        KAboutData::License_GPL,
+-                                       "(c) 2003-2004, Gilles Caulier", 
++                                       "(c) 2003-2005, Gilles Caulier", 
+                                        0,
+                                        "http://extragear.kde.org/apps/kipi");
+     
+@@ -111,7 +111,10 @@
+                      "caulier dot gilles at free.fr");
+ 
+     about->addAuthor("Gregory Kokanosky", I18N_NOOP("Image navigation mode patches"),
+-                     "gregory dot kokanosky at free.fr>");
++                     "gregory dot kokanosky at free.fr");
++
++    about->addAuthor("Owen Hirst", I18N_NOOP("Bugfix"),
++                     "n8rider at sbcglobal.net");
+                          
+     m_helpButton = actionButton( Help );
+     KHelpMenu* helpMenu = new KHelpMenu(this, about, false);
+@@ -120,25 +123,15 @@
+     m_helpButton->setPopup( helpMenu->menu() );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ CDArchivingDialog::~CDArchivingDialog()
+ {
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::slotHelp()
+ {
+-    KApplication::kApplication()->invokeHelp("cdarchiving",
+-                                             "kipi-plugins");
++    KApplication::kApplication()->invokeHelp("cdarchiving", "kipi-plugins");
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setupSelection(void)
+ {
+     page_setupSelection = addPage(i18n("Selection"), i18n("Album Selection"),
+@@ -180,9 +173,6 @@
+              this, SLOT( slotAlbumSelected() ) );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setupLookPage(void)
+ {
+     QString whatsThis;
+@@ -325,7 +315,8 @@
+     m_labelBackgroundColor->setBuddy( m_backgroundColor );
+     hlay2->addStretch( 1 );
+     hlay2->addWidget(m_backgroundColor);
+-   //---------------------------------------------
++   
++    //---------------------------------------------
+ 
+     QHBoxLayout *hlay13  = new QHBoxLayout( );
+     vlay->addLayout( hlay13 );
+@@ -334,9 +325,9 @@
+     m_bordersImagesSize->setValue( 1 );
+     QWhatsThis::add( m_bordersImagesSize, i18n("<p>Select here the image border's size in pixels.") );
+ 
+-    QLabel *label = new QLabel( i18n("Image border s&ize:"), page_setupLook );
+-    label->setBuddy( m_bordersImagesSize );
+-    hlay13->addWidget( label );
++    m_labelImageBorderSize = new QLabel( i18n("Image border s&ize:"), page_setupLook );
++    m_labelImageBorderSize->setBuddy( m_bordersImagesSize );
++    hlay13->addWidget( m_labelImageBorderSize );
+     hlay13->addStretch( 1 );
+     hlay13->addWidget( m_bordersImagesSize );
+ 
+@@ -350,9 +341,9 @@
+     QWhatsThis::add( m_bordersImagesColor, i18n("<p>Select here the color used "
+                                                 "for the image borders.") );
+ 
+-    label = new QLabel( i18n("Image bo&rder color:"), page_setupLook);
+-    hlay4->addWidget( label );
+-    label->setBuddy( m_bordersImagesColor );
++    m_labelImageBorderSizeColor = new QLabel( i18n("Image bo&rder color:"), page_setupLook);
++    hlay4->addWidget( m_labelImageBorderSizeColor );
++    m_labelImageBorderSizeColor->setBuddy( m_bordersImagesColor );
+     hlay4->addStretch( 1 );
+     hlay4->addWidget(m_bordersImagesColor);
+ 
+@@ -404,10 +395,21 @@
+ 
+     connect(m_useHTMLInterface, SIGNAL(toggled(bool)),
+             m_backgroundColor, SLOT(setEnabled(bool)));
+-}
++    
++    connect(m_useHTMLInterface, SIGNAL(toggled(bool)),
++            m_bordersImagesSize, SLOT(setEnabled(bool)));
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
++    connect(m_useHTMLInterface, SIGNAL(toggled(bool)),
++            m_labelImageBorderSize, SLOT(setEnabled(bool)));
+ 
++    connect(m_useHTMLInterface, SIGNAL(toggled(bool)),
++            m_bordersImagesColor, SLOT(setEnabled(bool)));    
++            
++    connect(m_useHTMLInterface, SIGNAL(toggled(bool)),
++            m_labelImageBorderSizeColor, SLOT(setEnabled(bool)));    
++                   
++}
++
+ void CDArchivingDialog::setupCDInfos(void)
+ {
+     page_CDInfos = addPage( i18n("Volume Descriptor"), i18n("Media Volume Descriptor"),
+@@ -491,9 +493,6 @@
+     vlay->addStretch(1);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setupBurning(void)
+ {
+     page_burning = addPage( i18n("Media Burning"),
+@@ -567,9 +566,6 @@
+     vlay->addStretch(1);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::slotAlbumSelected()
+ {
+     QValueList<KIPI::ImageCollection> ListAlbums(m_imageCollectionSelector->selectedImageCollections());
+@@ -592,8 +588,6 @@
+ }
+ 
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::mediaFormatActived (const QString & item )
+ {
+     QString Color;
+@@ -613,9 +607,6 @@
+     ShowMediaCapacity();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::ShowMediaCapacity(void)
+ {
+    QString Color = "<font color=\"blue\">";;
+@@ -631,9 +622,6 @@
+                               .arg(KIO::convertSizeFromKB (MaxMediaSize)) );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::slotOk()
+ {
+     m_selectedAlbums = m_imageCollectionSelector->selectedImageCollections();
+@@ -661,385 +649,246 @@
+     accept();
+ }
+ 
+-
+-
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::UrlChanged(const QString &url )
+ {
+     enableButtonOK( !url.isEmpty());
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ QString CDArchivingDialog::getK3bBinPathName() const
+ {
+     return m_K3bBinPath->url();
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ QString CDArchivingDialog::getK3bParameters() const
+ {
+     return m_K3bParameters->text();
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setK3bBinPathName(const QString &Value)
+ {
+     m_K3bBinPath->setURL( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setK3bParameters(const QString &Value)
+ {
+     m_K3bParameters->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ int CDArchivingDialog::getImagesPerRow() const
+ {
+     return m_imagesPerRow->value();
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setImagesPerRow(int Value)
+ {
+     m_imagesPerRow->setValue(Value);
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ int CDArchivingDialog::getThumbnailsSize() const
+ {
+     return m_thumbnailsSize->value();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setThumbnailsSize(int Value)
+ {
+     m_thumbnailsSize->setValue( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getFontName() const
+ {
+     return m_fontName->currentText();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setFontName(QString Value)
+ {
+     m_fontName->setCurrentText (Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getFontSize() const
+ {
+     return m_fontSize->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setFontSize(int Value)
+ {
+     m_fontSize->setValue( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QColor CDArchivingDialog::getBackgroundColor() const
+ {
+     return m_backgroundColor->color();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setBackgroundColor(QColor Value)
+ {
+     m_backgroundColor->setColor( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QColor CDArchivingDialog::getForegroundColor() const
+ {
+     return m_foregroundColor->color();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setForegroundColor(QColor Value)
+ {
+     m_foregroundColor->setColor( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getImageFormat() const
+ {
+     return m_imageFormat->currentText();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setImageFormat(QString Value)
+ {
+     return m_imageFormat->setCurrentText( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getMainTitle() const
+ {
+     return m_title->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setMainTitle(QString Value)
+ {
+     return m_title->setText( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ bool CDArchivingDialog::getUseHTMLInterface() const
+ {
+     return m_useHTMLInterface->isChecked();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setUseHTMLInterface(bool Value)
+ {
+     m_useHTMLInterface->setChecked(Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ bool CDArchivingDialog::getUseAutoRunWin32() const
+ {
+     return m_useAutoRunWin32->isChecked();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setUseAutoRunWin32(bool Value)
+ {
+     m_useAutoRunWin32->setChecked(Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getVolumeID() const
+ {
+     return m_volume_id->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setVolumeID(QString Value)
+ {
+     return m_volume_id->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getVolumeSetID() const
+ {
+     return m_volume_set_id->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setVolumeSetID(QString Value)
+ {
+     return m_volume_set_id->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getSystemID() const
+ {
+     return m_system_id->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setSystemID(QString Value)
+ {
+     return m_system_id->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getApplicationID() const
+ {
+     return m_application_id->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setApplicationID(QString Value)
+ {
+     return m_application_id->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getPublisher() const
+ {
+     return m_publisher->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setPublisher(QString Value)
+ {
+     return m_publisher->setText( Value );
+ }
+ 
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getPreparer() const
+ {
+     return m_preparer->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setPreparer(QString Value)
+ {
+     return m_preparer->setText( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getMediaFormat() const
+ {
+     return m_mediaFormat->currentText();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setMediaFormat(QString Value)
+ {
+     return m_mediaFormat->setCurrentText( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ bool CDArchivingDialog::getUseOnTheFly() const
+ {
+     return m_burnOnTheFly->isChecked();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setUseUseOnTheFly(bool Value)
+ {
+     m_burnOnTheFly->setChecked(Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ bool CDArchivingDialog::getUseCheckCD() const
+ {
+     return m_checkCDBurn->isChecked();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setUseCheckCD(bool Value)
+ {
+     m_checkCDBurn->setChecked(Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ bool CDArchivingDialog::getUseStartBurningProcess() const
+ {
+     return m_startBurningProcess->isChecked();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setUseStartBurningProcess(bool Value)
+ {
+     m_startBurningProcess->setChecked(Value);
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QColor CDArchivingDialog::getBordersImagesColor() const
+ {
+     return m_bordersImagesColor->color();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setBordersImagesColor(QColor Value)
+ {
+     m_bordersImagesColor->setColor( Value );
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ const QString CDArchivingDialog::getBordersImagesSize() const
+ {
+     return m_bordersImagesSize->text();
+ }
+ 
+-
+-/////////////////////////////////////////////////////////////////////////////////////////////
+-
+ void CDArchivingDialog::setBordersImagesSize(int Value)
+ {
+     m_bordersImagesSize->setValue( Value );
+Index: kipi-plugins/cdarchiving/kipiplugin_cdarchiving.desktop
+===================================================================
+--- kipi-plugins/cdarchiving/kipiplugin_cdarchiving.desktop	(revision 460242)
++++ kipi-plugins/cdarchiving/kipiplugin_cdarchiving.desktop	(revision 498544)
+@@ -3,6 +3,8 @@
+ Name=CDArchiving
+ Name[cs]=Archivace na CD
+ Name[da]=Cd-arkivering
++Name[el]=ΑρχειοθέτησηCD
++Name[es]=Archivador en CD
+ Name[et]=CD-le arhiveerimine
+ Name[it]=ArchiviazioneSuCD
+ Name[nl]=CD-archievering
+@@ -13,6 +15,7 @@
+ Name[sr]=CD Архивирање
+ Name[sr at Latn]=CD Arhiviranje
+ Name[sv]=Cd-arkivering
++Name[tg]=БойгонииCD
+ Name[tr]=CDArşivleme
+ Name[xx]=xxCDArchivingxx
+ Name[zh_CN]=CD 存档
+@@ -21,15 +24,20 @@
+ Comment[da]=KIPI-plugin: Arkivering af albummer på cd eller dvd
+ Comment[de]=Ein KIPI-Modul zum Archivieren von Alben auf CD und DVD
+ Comment[el]=Πρόσθετο αρχειοθέτησης άλμπουμ CD και DVD του KIPI
++Comment[es]=Extensión de KIPI para archivar álbumes en CD y DVD
+ Comment[et]=KIPI albumite CD-le ja DVD-le arhiveerimise plugin
++Comment[fr]=Module externe KIPI pour archiver des albums sur CD/DVD
+ Comment[it]=Plugin di archiviazione degli album su CD e DVD di KIPI
++Comment[ja]=KIPI アルバムCD/DVDアーカイブプラグイン
+ Comment[nl]=KIPI-plugin voor het maken van een cd/dvd-archief
++Comment[pa]=KIPI ਐਲਬਮ CD ਅਤੇ DVD ਪੁਰਾਲੇਖ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Archiwizacja albumów na CD i DVD
+ Comment[pt]='Plugin' de Arquivo em CD e DVD de Álbuns do KIPI
+ Comment[pt_BR]='Plugin' de Arquivo em CD e DVD de Álbuns do KIPI
+ Comment[sr]=KIPI прикључак за архивирање албума на CD и DVD
+ Comment[sr at Latn]=KIPI priključak za arhiviranje albuma na CD i DVD
+ Comment[sv]=KIPI-insticksprogram: Arkivering av album på cd eller dvd
++Comment[tg]=Модули бойгонии албомҳои CD ва DVD
+ Comment[tr]=KIPI Albümler CD ve DVD Arşivleme Eklentisi
+ Comment[xx]=xxKIPI Albums CD and DVD Archiving Pluginxx
+ Comment[zh_CN]=KIPI 相册 CD 和 DVD 存档插件
+Index: kipi-plugins/cdarchiving/cdarchivingdialog.h
+===================================================================
+--- kipi-plugins/cdarchiving/cdarchivingdialog.h	(revision 460242)
++++ kipi-plugins/cdarchiving/cdarchivingdialog.h	(revision 498544)
+@@ -1,28 +1,30 @@
+-//////////////////////////////////////////////////////////////////////////////
+-//
+-//    CDARCHIVINGDILAOG.H
+-//
+-//    Copyright (C) 2003-2004 Gilles Caulier <caulier dot gilles at free.fr>
+-//    Copyright (C) 2003-2004 by Gregory Kokanosky <gregory dot kokanosky at free.fr>
+-//    for images navigation mode.
+-//
+-//    This program is free software; you can redistribute it and/or modify
+-//    it under the terms of the GNU General Public License as published by
+-//    the Free Software Foundation; either version 2 of the License, or
+-//    (at your option) any later version.
+-//
+-//    This program is distributed in the hope that it will be useful,
+-//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-//    GNU General Public License for more details.
+-//
+-//    You should have received a copy of the GNU General Public License
+-//    along with this program; if not, write to the Free Software
+-//    Foundation, Inc., 51 Franklin Steet, Fifth Floor, Cambridge, MA 02110-1301, USA.
+-//
+-//////////////////////////////////////////////////////////////////////////////
++/* ============================================================
++ * Author: Gilles Caulier <caulier dot gilles at free.fr>
++ *         from digiKam project.
++ * Date  : 2003-10-01
++ * Description : a kipi plugin to export image collections
++ *               on CD/DVD.
++ * 
++ * Copyright 2003-2005 by Gilles Caulier
++ * Copyright 2003-2004 by Gregory Kokanosky 
++ *                        <gregory dot kokanosky at free.fr>
++ *                        for HTML interface navigation mode
++ * Copyright 2005      by Owen Hirst <n8rider at sbcglobal.net>
++ *                        about bugfix.
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * ============================================================ */
+ 
+-
+ #ifndef CDARCHIVINGDIALOG_H
+ #define CDARCHIVINGDIALOG_H
+ 
+@@ -57,7 +59,7 @@
+ 
+ namespace KIPI
+ {
+-  class ImageCollectionSelector;
++    class ImageCollectionSelector;
+ }
+ 
+ namespace KIPICDArchivingPlugin
+@@ -65,172 +67,174 @@
+ 
+ class CDArchivingDialog : public KDialogBase
+ {
+- Q_OBJECT
++Q_OBJECT
+ 
+- public:
++public:
+  
+-  CDArchivingDialog( KIPI::Interface* interface, QWidget *parent=0);
+-  ~CDArchivingDialog();
+-
+-  QString getK3bBinPathName() const;
+-  QString getK3bParameters() const;
++    CDArchivingDialog( KIPI::Interface* interface, QWidget *parent=0);
++    ~CDArchivingDialog();
+   
+-  void  setK3bBinPathName(const QString &Value);
+-  void  setK3bParameters(const QString &Value);
+-
+-  int   getImagesPerRow() const;
+-  void  setImagesPerRow(int Value);
+-
+-  int   getThumbnailsSize() const;
+-  void  setThumbnailsSize(int Value);
+-
+-  const QString getFontName() const;
+-  void  setFontName(QString Value);
+-
+-  const QString getFontSize() const;
+-  void  setFontSize(int Value);
+-
+-  const QString getBordersImagesSize() const;
+-  void  setBordersImagesSize(int Value);
+-
+-  const QColor getBackgroundColor() const;
+-  void  setBackgroundColor(QColor Value);
+-
+-  const QColor getForegroundColor() const;
+-  void  setForegroundColor(QColor Value);
+-
+-  const QColor getBordersImagesColor() const;
+-  void  setBordersImagesColor(QColor Value);
+-
+-  const QString getImageFormat() const;
+-  void  setImageFormat(QString Value);
+-
+-  const QString getMainTitle() const;
+-  void  setMainTitle(QString Value);
+-
+-  bool  getUseHTMLInterface() const;
+-  void  setUseHTMLInterface(bool Value);
+-
+-  bool  getUseAutoRunWin32() const;
+-  void  setUseAutoRunWin32(bool Value);
+-
+-  const QString getVolumeID() const;
+-  void  setVolumeID(QString Value);
+-
+-  const QString getVolumeSetID() const;
+-  void  setVolumeSetID(QString Value);
+-
+-  const QString getSystemID() const;
+-  void  setSystemID(QString Value);
+-
+-  const QString getApplicationID() const;
+-  void  setApplicationID(QString Value);
+-
+-  const QString getPublisher() const;
+-  void  setPublisher(QString Value);
+-
+-  const QString getPreparer() const;
+-  void  setPreparer(QString Value);
+-
+-  const QString getMediaFormat() const;
+-  void  setMediaFormat(QString Value);
+-
+-  bool  getUseOnTheFly() const;
+-  void  setUseUseOnTheFly(bool Value);
+-
+-  bool  getUseCheckCD() const;
+-  void  setUseCheckCD(bool Value);
+-
+-  bool  getUseStartBurningProcess() const;
+-  void  setUseStartBurningProcess(bool Value);
+-
+-  QValueList<KIPI::ImageCollection> getSelectedAlbums() const { return m_selectedAlbums; }
++    QString getK3bBinPathName() const;
++    QString getK3bParameters() const;
++    
++    void  setK3bBinPathName(const QString &Value);
++    void  setK3bParameters(const QString &Value);
+   
+-  void ShowMediaCapacity(void);
++    int   getImagesPerRow() const;
++    void  setImagesPerRow(int Value);
++  
++    int   getThumbnailsSize() const;
++    void  setThumbnailsSize(int Value);
++  
++    const QString getFontName() const;
++    void  setFontName(QString Value);
++  
++    const QString getFontSize() const;
++    void  setFontSize(int Value);
++  
++    const QString getBordersImagesSize() const;
++    void  setBordersImagesSize(int Value);
++  
++    const QColor getBackgroundColor() const;
++    void  setBackgroundColor(QColor Value);
++  
++    const QColor getForegroundColor() const;
++    void  setForegroundColor(QColor Value);
++  
++    const QColor getBordersImagesColor() const;
++    void  setBordersImagesColor(QColor Value);
++  
++    const QString getImageFormat() const;
++    void  setImageFormat(QString Value);
++  
++    const QString getMainTitle() const;
++    void  setMainTitle(QString Value);
++  
++    bool  getUseHTMLInterface() const;
++    void  setUseHTMLInterface(bool Value);
++  
++    bool  getUseAutoRunWin32() const;
++    void  setUseAutoRunWin32(bool Value);
++  
++    const QString getVolumeID() const;
++    void  setVolumeID(QString Value);
++  
++    const QString getVolumeSetID() const;
++    void  setVolumeSetID(QString Value);
++  
++    const QString getSystemID() const;
++    void  setSystemID(QString Value);
++  
++    const QString getApplicationID() const;
++    void  setApplicationID(QString Value);
++  
++    const QString getPublisher() const;
++    void  setPublisher(QString Value);
++  
++    const QString getPreparer() const;
++    void  setPreparer(QString Value);
++  
++    const QString getMediaFormat() const;
++    void  setMediaFormat(QString Value);
++  
++    bool  getUseOnTheFly() const;
++    void  setUseUseOnTheFly(bool Value);
++  
++    bool  getUseCheckCD() const;
++    void  setUseCheckCD(bool Value);
++  
++    bool  getUseStartBurningProcess() const;
++    void  setUseStartBurningProcess(bool Value);
++  
++    QValueList<KIPI::ImageCollection> getSelectedAlbums() const { return m_selectedAlbums; }
++    
++    void ShowMediaCapacity(void);
+ 
+- protected slots:
++protected slots:
+   
+-  void slotHelp();
+-  void slotAlbumSelected(void);
+-  void mediaFormatActived( const QString& item );
+-  void slotOk();
+-  void UrlChanged(const QString &url );
++    void slotHelp();
++    void slotAlbumSelected(void);
++    void mediaFormatActived( const QString& item );
++    void slotOk();
++    void UrlChanged(const QString &url );
+   
+- private:
++private:
+  
+-  QPushButton        *m_helpButton;
+-     
+-  QCheckBox          *m_useHTMLInterface;
+-  QCheckBox          *m_useAutoRunWin32;
+-  QCheckBox          *m_burnOnTheFly;
+-  QCheckBox          *m_checkCDBurn;
+-  QCheckBox          *m_startBurningProcess;
+-
+-  QProgressDialog    *m_progressDlg;
++    QPushButton        *m_helpButton;
++      
++    QCheckBox          *m_useHTMLInterface;
++    QCheckBox          *m_useAutoRunWin32;
++    QCheckBox          *m_burnOnTheFly;
++    QCheckBox          *m_checkCDBurn;
++    QCheckBox          *m_startBurningProcess;
+   
+-  QSpinBox           *m_fontSize;
+-  QSpinBox           *m_bordersImagesSize;
++    QProgressDialog    *m_progressDlg;
++    
++    QSpinBox           *m_fontSize;
++    QSpinBox           *m_bordersImagesSize;
++  
++    QComboBox          *m_fontName;
++    QComboBox          *m_imageFormat;
++    QComboBox          *m_mediaFormat;
++  
++    KIntNumInput       *m_imagesPerRow;
++    KIntNumInput       *m_thumbnailsSize;
++  
++    KColorButton       *m_foregroundColor;
++    KColorButton       *m_backgroundColor;
++    KColorButton       *m_bordersImagesColor;
++  
++    QLabel             *m_albumPreview;
++    QLabel             *m_labelTitle;
++    QLabel             *m_labelThumbsFileFormat;
++    QLabel             *m_labelFontName;
++    QLabel             *m_labelFontSize;
++    QLabel             *m_labelForegroundColor;
++    QLabel             *m_labelBackgroundColor;
++    QLabel             *m_labelImageBorderSize;
++    QLabel             *m_labelImageBorderSizeColor;
++  
++    KSqueezedTextLabel *m_AlbumComments;
++    KSqueezedTextLabel *m_AlbumCollection;
++    KSqueezedTextLabel *m_AlbumDate;
++    KSqueezedTextLabel *m_AlbumSize;
++    KSqueezedTextLabel *m_AlbumItems;
++    QLabel             *m_mediaSize;
++  
++    QLineEdit          *m_title;
++    QLineEdit          *m_volume_id;
++    QLineEdit          *m_volume_set_id;
++    QLineEdit          *m_system_id;
++    QLineEdit          *m_application_id;
++    QLineEdit          *m_publisher;
++    QLineEdit          *m_preparer;
++  
++    KURLRequester      *m_K3bBinPath;
++    QLineEdit          *m_K3bParameters;
++  
++    KListView          *m_AlbumsList;
++  
++    QFrame             *page_setupSelection;
++    QFrame             *page_setupLook;
++    QFrame             *page_CDInfos;
++    QFrame             *page_burning;
++  
++    QString             m_ImagesFilesSort;
++    QString             m_TempFolder;
++  
++    KIO::filesize_t     MaxMediaSize;
++  
++    KIPI::Interface    *m_interface;
++  
++    QValueList<KIPI::ImageCollection>  m_selectedAlbums;
++    KIPI::ImageCollectionSelector     *m_imageCollectionSelector;
+ 
+-  QComboBox          *m_fontName;
+-  QComboBox          *m_imageFormat;
+-  QComboBox          *m_mediaFormat;
+-
+-  KIntNumInput       *m_imagesPerRow;
+-  KIntNumInput       *m_thumbnailsSize;
+-
+-  KColorButton       *m_foregroundColor;
+-  KColorButton       *m_backgroundColor;
+-  KColorButton       *m_bordersImagesColor;
+-
+-  QLabel             *m_albumPreview;
+-  QLabel             *m_labelTitle;
+-  QLabel             *m_labelThumbsFileFormat;
+-  QLabel             *m_labelFontName;
+-  QLabel             *m_labelFontSize;
+-  QLabel             *m_labelForegroundColor;
+-  QLabel             *m_labelBackgroundColor;
+-
+-  KSqueezedTextLabel *m_AlbumComments;
+-  KSqueezedTextLabel *m_AlbumCollection;
+-  KSqueezedTextLabel *m_AlbumDate;
+-  KSqueezedTextLabel *m_AlbumSize;
+-  KSqueezedTextLabel *m_AlbumItems;
+-  QLabel             *m_mediaSize;
+-
+-  QLineEdit          *m_title;
+-  QLineEdit          *m_volume_id;
+-  QLineEdit          *m_volume_set_id;
+-  QLineEdit          *m_system_id;
+-  QLineEdit          *m_application_id;
+-  QLineEdit          *m_publisher;
+-  QLineEdit          *m_preparer;
+-
+-  KURLRequester      *m_K3bBinPath;
+-  QLineEdit          *m_K3bParameters;
+-
+-  KListView          *m_AlbumsList;
+-
+-  QFrame             *page_setupSelection;
+-  QFrame             *page_setupLook;
+-  QFrame             *page_CDInfos;
+-  QFrame             *page_burning;
+-
+-  QString             m_ImagesFilesSort;
+-  QString             m_TempFolder;
+-
+-  KIO::filesize_t     MaxMediaSize;
+-
+-  KIPI::Interface    *m_interface;
+-
+-  QValueList<KIPI::ImageCollection>  m_selectedAlbums;
+-  KIPI::ImageCollectionSelector     *m_imageCollectionSelector;
+-
+- private:
++private:
+  
+-  void setupSelection(void);
+-  void setupLookPage(void);
+-  void setupCDInfos(void);
+-  void setupBurning(void);
++    void setupSelection(void);
++    void setupLookPage(void);
++    void setupCDInfos(void);
++    void setupBurning(void);
+ };
+ 
+ }  // NameSpace KIPICDArchivingPlugin
+Index: AUTHORS
+===================================================================
+--- AUTHORS	(revision 460242)
++++ AUTHORS	(revision 498544)
+@@ -1,15 +1,21 @@
+ AUTHORS AND MAINTAINERS :
+ 
+-Renchi Raju <renchi at pooh.tam.uiuc.edu>                      
+-Gilles Caulier <caulier dot gilles at free.fr>   
+-Jesper K. Pedersen <blackie at kde.org>
+-Aurelien Gateau <aurelien dot gateau at free.fr>
++Renchi Raju         <renchi at pooh.tam.uiuc.edu>                      
++Gilles Caulier      <caulier dot gilles at free.fr>   
+ 
++DEVELOPERS:
++
++Tom Albers          <tomalbers at kde.nl>                                      
++Joern Ahrens        <kde at jokele.de>
++Owen Hirst          <n8rider at sbcglobal.net>    
++Vardhman Jain       <vardhman at gmail.com>
++Jesper K. Pedersen  <blackie at kde.org>
++Aurelien Gateau     <aurelien dot gateau at free.fr>
++
+ CONTRIBUTORS :
+ 
+-Ralf Hoelzer <kde at ralfhoelzer dot com>
+-Joern Ahrens <kde at jokele.de>
+-Richard Groult <Richard dot Groult at jalix.org>                     
+-Tudor Calin <tudor at 1xtech.com>
+-Todd Shoemaker <todd at theshoemakers.net>                     
+-Gregory Kokanosky <gregory dot kokanosky at free.fr>           
++Ralf Hoelzer        <kde at ralfhoelzer dot com>
++Richard Groult      <Richard dot Groult at jalix.org>                     
++Tudor Calin         <tudor at 1xtech.com>
++Todd Shoemaker      <todd at theshoemakers.net>                     
++Gregory Kokanosky   <gregory dot kokanosky at free.fr>       
+Index: kipi-plugins/slideshow/toolbar.cpp
+===================================================================
+--- kipi-plugins/slideshow/toolbar.cpp	(revision 460242)
++++ kipi-plugins/slideshow/toolbar.cpp	(revision 498544)
+@@ -45,7 +45,7 @@
+     KIconLoader* loader = kapp->iconLoader();
+     m_playBtn->setIconSet(loader->loadIcon("player_pause", KIcon::NoGroup, 22));
+     m_prevBtn->setIconSet(loader->loadIcon("back", KIcon::NoGroup, 22));
+-    m_nextBtn->setIconSet(loader->loadIcon("next", KIcon::NoGroup, 22));
++    m_nextBtn->setIconSet(loader->loadIcon("forward", KIcon::NoGroup, 22));
+     m_stopBtn->setIconSet(loader->loadIcon("stop", KIcon::NoGroup, 22));
+ 
+     lay->addWidget(m_playBtn);
+Index: kipi-plugins/slideshow/kipiplugin_slideshow.desktop
+===================================================================
+--- kipi-plugins/slideshow/kipiplugin_slideshow.desktop	(revision 460242)
++++ kipi-plugins/slideshow/kipiplugin_slideshow.desktop	(revision 498544)
+@@ -5,6 +5,8 @@
+ Name[cs]=Slideshow
+ Name[cy]=Sioe Tryloywderau
+ Name[da]=Lysbilledshow
++Name[el]=ΠροβολήΣλάιντ
++Name[es]=Presentación
+ Name[et]=Slaidiseanss
+ Name[it]=Presentazione
+ Name[nl]=Diavoorstelling
+@@ -15,6 +17,7 @@
+ Name[sr]=Слајд шоу
+ Name[sr at Latn]=Slajd šou
+ Name[sv]=Bildspel
++Name[tg]=НамоишиСлайд
+ Name[tr]=SlaytGösterisi
+ Name[xx]=xxSlideShowxx
+ Name[zh_CN]=幻灯片
+@@ -23,8 +26,12 @@
+ Comment[cs]=KIPI modul slideshow
+ Comment[da]=KIPI-plugin: Lysbilledshow
+ Comment[de]=Ein KIPI-Modul zur Erstellung von Bildschirmpräsentationen
++Comment[el]=Πρόσθετο του KIPI για προβολή σλάιντ
++Comment[es]=Extensión de KIPI para presentaciones
+ Comment[et]=KIPI slaidiseansi plugin
++Comment[fr]=Module externe KIPI pour faire un diaporama
+ Comment[it]=Plugin di presentazione di KIPI
++Comment[ja]=KIPI スライドショープラグイン
+ Comment[nl]=KIPI-plugin voor diavoorstellingen
+ Comment[pa]=KIPI ਸਲਾਇਡਸ਼ੋ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Pokaz slajdów
+@@ -33,6 +40,7 @@
+ Comment[sr]=KIPI прикључак за слајд шоу
+ Comment[sr at Latn]=KIPI priključak za slajd šou
+ Comment[sv]=KIPI-insticksprogram: Bildspel
++Comment[tg]=Модули KIPI барои НамоишиСлайд
+ Comment[tr]=KIPI Slayt Gösterisi Eklentisi
+ Comment[xx]=xxKIPI SlideShow Pluginxx
+ Comment[zh_CN]=KIPI 幻灯片插件
+Index: kipi-plugins/galleryexport/kipiplugin_galleryexport.desktop
+===================================================================
+--- kipi-plugins/galleryexport/kipiplugin_galleryexport.desktop	(revision 460242)
++++ kipi-plugins/galleryexport/kipiplugin_galleryexport.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=Ezporzh ar garidell d'ar pelloù
+ Name[cs]=Export do vzdálené galerie
+ Name[da]=Eksport til fjerngalleri
++Name[el]=Εξαγωγή απομακρυσμένης συλλογής
++Name[es]=Exportar galería remota
+ Name[et]=Võrgugalerii eksport
+ Name[it]=Esportazione remota di gallerie
+ Name[nl]=Export naar externe galerij
+@@ -14,6 +16,7 @@
+ Name[sr]=Извоз у удаљену галерију
+ Name[sr at Latn]=Izvoz u udaljenu galeriju
+ Name[sv]=Export till fjärrgalleri
++Name[tg]=Воридоти Намоишгари Дурдаст
+ Name[tr]=Uzak Galeri Aktarma
+ Name[xx]=xxRemote Gallery Exportxx
+ Name[zh_CN]=远程图库导出
+@@ -21,15 +24,21 @@
+ Comment[cs]=KIPI modul exportu do vzdálené galerie
+ Comment[da]=KIPI-plugin: Eksport til fjerngalleri
+ Comment[de]=Ein KIPI-Modul, um eine Galerie zu einem entfernten Rechner zu exportieren
++Comment[el]=Πρόσθετο εξαγωγής απομακρυσμένης συλλογής του KIPI
++Comment[es]=Extensión de KIPI para exportar galería remota
+ Comment[et]=KIPI võrgugalerii ekspordiplugin
++Comment[fr]=Module externe KIPI pour exporter des images vers un site Gallery
+ Comment[it]=Plugin per l'esportazione remota di gallerie di KIPI
++Comment[ja]=KIPI リモートギャラリーエクスポートプラグイン
+ Comment[nl]=KIPI-plugin voor het exporteren naar externe galerijen
++Comment[pa]=KIPI ਰਿਮੋਟ ਗੈਲਰੀ ਨਿਰਯਾਤ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Eksport do zdalnej galerii
+ Comment[pt]='Plugin' do KIPI de Exportação para Galeria Remota
+ Comment[pt_BR]='Plugin' do KIPI de Exportação para Galeria Remota
+ Comment[sr]=KIPI прикључак за извоз у удаљену галерију
+ Comment[sr at Latn]=KIPI priključak za izvoz u udaljenu galeriju
+ Comment[sv]=KIPI-insticksprogram: Export till fjärrgalleri
++Comment[tg]=Модули воридикунандаи намоишгаири дурдастаи KIPI
+ Comment[tr]=KIPI Uzak Galeri Aktarma Eklentisi
+ Comment[xx]=xxKIPI Remote Gallery Export Pluginxx
+ Comment[zh_CN]=KIPI 远程图库导出插件
+Index: kipi-plugins/batchprocessimages/kipiplugin_batchprocessimages.desktop
+===================================================================
+--- kipi-plugins/batchprocessimages/kipiplugin_batchprocessimages.desktop	(revision 460242)
++++ kipi-plugins/batchprocessimages/kipiplugin_batchprocessimages.desktop	(revision 498544)
+@@ -3,6 +3,8 @@
+ Name=BatchProcessImages
+ Name[cs]=Dávkové zpracování obrázků
+ Name[da]=Behandl billeder i baggrunden
++Name[el]=ΟμαδικήΕπεξεργασίαΕικόνων
++Name[es]=Proceso de imágenes por bloques
+ Name[et]=Piltide pakktöötlus
+ Name[it]=ElaborazioneNonInterattivaDelleImmagini
+ Name[nl]=AfbeeldingenVerwerken
+@@ -12,6 +14,7 @@
+ Name[sr]=Пакетна обрада слика
+ Name[sr at Latn]=Paketna obrada slika
+ Name[sv]=Behandla bilder i bakgrunden
++Name[tg]=ПардозишиГурӯҳиТасвирҳо
+ Name[tr]=ÇokluResimİşleme
+ Name[xx]=xxBatchProcessImagesxx
+ Name[zh_CN]=批处理图像
+@@ -19,15 +22,21 @@
+ Comment[cs]=KIPI modul dávkového zpracování obrázků
+ Comment[da]=KIPI-plugin: Behandl billeder i baggrunden
+ Comment[de]=Ein KIPI-Modul, um Bilder im Stapelmodus zu bearbeiten
++Comment[el]=Πρόσθετο ομαδικής επεξεργασίας εικόνων KIPI
++Comment[es]=Extensión de KIPI para proceso de imágenes por bloques
+ Comment[et]=KIPI piltide pakktöötluse plugin
++Comment[fr]=Module externe KIPI pour traiter des images par lots
+ Comment[it]=Plugin di elaborazione non interattiva delle immagini di KIPI
++Comment[ja]=KIPI 画像バッチ処理プラグイン
+ Comment[nl]=KIPI-plugin voor het verwerken van een serie afbeeldingen
++Comment[pa]=KIPI ਬੈਂਚ ਕਾਰਵਾਈ ਚਿੱਤਰ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Grupowe przetwarzanie zdjęć
+ Comment[pt]='Plugin' do KIPI de Processamento de Imagens em Lote
+ Comment[pt_BR]='Plugin' do KIPI de Processamento de Imagens em Lote
+ Comment[sr]=KIPI прикључак за пакетну обраду слика
+ Comment[sr at Latn]=KIPI priključak za paketnu obradu slika
+ Comment[sv]=KIPI-insticksprogram: Behandla bilder i bakgrunden
++Comment[tg]=Модули пардозиши тасвирҳои KIPI
+ Comment[tr]=KIPI Çoklu Resim İşleme Eklentisi
+ Comment[xx]=xxKIPI Batch Processing Images Pluginxx
+ Comment[zh_CN]=KIPI 批处理图像插件
+Index: kipi-plugins/batchprocessimages/batchprocessimagesdialog.cpp
+===================================================================
+--- kipi-plugins/batchprocessimages/batchprocessimagesdialog.cpp	(revision 460242)
++++ kipi-plugins/batchprocessimages/batchprocessimagesdialog.cpp	(revision 498544)
+@@ -1015,6 +1015,7 @@
+     m_addImagesButton->setEnabled(true);
+     m_remImagesButton->setEnabled(true);
+     m_smallPreview->setEnabled(true);
++    m_removeOriginal->setEnabled(true);
+     showButtonCancel( true );
+ 
+     m_optionsButton->setEnabled(true);          // Default status if 'slotTypeChanged' isn't re-implemented.
+Index: kipi-plugins/timeadjust/kipiplugin_timeadjust.desktop
+===================================================================
+--- kipi-plugins/timeadjust/kipiplugin_timeadjust.desktop	(revision 460242)
++++ kipi-plugins/timeadjust/kipiplugin_timeadjust.desktop	(revision 498544)
+@@ -3,6 +3,8 @@
+ Name=TimeDateAdjust
+ Name[cs]=Nastavení data
+ Name[da]=Justér dato og tid
++Name[el]=ΡύθμισηΏραςΗμερομηνίας
++Name[es]=Ajustar fecha y hora
+ Name[et]=Aja kohendamine
+ Name[it]=RegolazioneDataOra
+ Name[nl]=Tijd/DatumAanpassen
+@@ -12,6 +14,7 @@
+ Name[sr]=Подеси време/датум
+ Name[sr at Latn]=Podesi vreme/datum
+ Name[sv]=Justera datum och tid
++Name[tg]=ТанзимдиҳииТаърих/Вақт
+ Name[tr]=ZamanTarihAyarla
+ Name[xx]=xxTimeDateAdjustxx
+ Name[zh_CN]=日期时间调整
+@@ -19,15 +22,21 @@
+ Comment[cs]=KIPI nastavení času a data
+ Comment[da]=KIPI-plugin: Justér dato og tid
+ Comment[de]=Ein KIPI-Modul zum Setzen von Zeit und Datum
++Comment[el]=Ρύθμιση ώρας και ημερομηνίας του KIPI
++Comment[es]=Ajuste de fecha y hora para KIPI
+ Comment[et]=KIPI kuupäeva ja kellaaja kohendamine
++Comment[fr]=Module externe KIPI pour ajuster la date et l'heure
+ Comment[it]=Regolazione di data e ora di KIPI
++Comment[ja]=KIPI 日付と時刻の調整
+ Comment[nl]=KIPI-plugin voor het aanpassen van de datum/tijd
++Comment[pa]=KIPI ਸਮਾਂ ਅਤੇ ਮਿਤੀ ਅਨੁਕੂਲਣ
+ Comment[pl]=Wtyczka KIPI - Zmiana daty i godziny
+ Comment[pt]=Ajuste de Data e Hora do KIPI
+ Comment[pt_BR]=Ajuste de Data e Hora do KIPI
+ Comment[sr]=KIPI-јево подешавање времена и датума
+ Comment[sr at Latn]=KIPI-jevo podešavanje vremena i datuma
+ Comment[sv]=KIPI-insticksprogram: Justera datum och tid
++Comment[tg]=Модули KIPI барои танзимдиҳии таърих ва вақт
+ Comment[tr]=KIPI Zaman ve Tarih Ayarlama
+ Comment[xx]=xxKIPI Time and Date Adjustxx
+ Comment[zh_CN]=KIPI 时间和日期调整
+Index: kipi-plugins/simpleviewerexport/plugin_simpleviewer.h
+===================================================================
+--- kipi-plugins/simpleviewerexport/plugin_simpleviewer.h	(revision 0)
++++ kipi-plugins/simpleviewerexport/plugin_simpleviewer.h	(revision 498544)
+@@ -0,0 +1,59 @@
++/* ============================================================
++ * File  : plugin_simpleviewer.h
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description :
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++#ifndef PLUGIN_SIMPLEVIEWER_H
++#define PLUGIN_SIMPLEVIEWER_H
++
++// LibKIPI includes
++
++#include <libkipi/plugin.h>
++
++class KAction;
++
++class Plugin_SimpleViewer : public KIPI::Plugin
++{
++    Q_OBJECT
++
++public:
++
++    // Notice the constructor
++    // takes three arguments QObject *parent (the parent of this object),
++    // const char* name (the name of this object) and
++    // const QStringList &args (the arguments passed).
++    Plugin_SimpleViewer(QObject *parent,
++                      const char* name,
++                      const QStringList &args);
++
++    virtual KIPI::Category category( KAction* action ) const;
++    virtual void setup( QWidget* widget );
++
++private slots:
++
++    //This is an example slot to which your action is connected.
++    void slotActivate();
++
++private:
++    KAction         *m_actionSimpleViewer;
++    KIPI::Interface *m_interface;
++};
++
++#endif
++
+Index: kipi-plugins/simpleviewerexport/index.template
+===================================================================
+--- kipi-plugins/simpleviewerexport/index.template	(revision 0)
++++ kipi-plugins/simpleviewerexport/index.template	(revision 498544)
+@@ -0,0 +1,116 @@
++aved from url=(0014)about:internet -->
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++<html>
++    <head>
++        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++        <meta name="generator" content="kipiplugin simpleviewerexport">
++        <meta name="description" content="Web photo album generated by SimpleViewerExport kipiplugin - http://www.jokele.de/simpleviewerexport/ and displayed by SimpleViewer - http://www.airtightinteractive.com/simpleviewer/">
++        <title>{TITLE}</title>
++        <style type="text/css">
++            <!--
++            html, body {
++                height:100%;
++                color: {COLOR};
++                background-color: {BGCOLOR};
++                margin: 0;
++                padding: 0;
++                border: 0;
++                overflow-y: auto;
++                overflow-x: auto;
++            }
++            td {
++                font-size: 70%;
++                color: {COLOR};
++                font-family: Verdana, Arial, Helvetica, Lucida, sans-serif;
++            }
++            a {
++                color: {COLOR};
++                text-decoration: underline;
++            }
++            a:hover {
++                color: #555555;
++                text-decoration: underline;
++            }
++
++            span.title {
++				font-size: 160%;
++				font-weight: bold;
++				padding-bottom: 0em;
++				padding-top: .6em;
++				margin-bottom: 0em;
++				margin-top: 0em;
++			}
++            -->
++        </style>
++
++        <script language="javascript" type="text/javascript" src="flash_detect.js">
++            <!--
++            function getFlashVersion() { return null; };
++            //-->
++        </script>
++        <script language="javascript" type="text/javascript">
++            <!--
++            var flashVersion = getFlashVersion();
++            if (flashVersion < 6) {
++
++                location.replace("upgrade.html");
++            }          
++
++            // set document title (strip any html tags)             
++            document.title = title.replace(/(<([^>]+)>)/ig,""); 
++            //-->
++        </script>
++    </head>
++    <body>
++    	<div id="mainlayer" style="visibility: visible; position:absolute; top: 0; left: 0; width: 100%; height: 100%; z-index:1;">
++	        <table style="width:100%;height:100%;" border="0" cellpadding="0" cellspacing="0">
++
++	            <tr>
++	                <td colspan="2">
++	                    <table style="width:100%;height:100%;" border="0" cellpadding="0" cellspacing="0">
++	                        <tr>
++	                            <td>
++	                                <img src="space.png" width="1" height="624" alt="">
++	                            </td>
++	                            <td valign="middle" align="center">
++	                                <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="100%" align="middle">
++                                          <param name="movie" value="viewer.swf">
++	                                      <param name="quality" value="high">
++	                                      <param name="scale" value="noscale">
++	                                      <param name="bgcolor" value="{BGCOLOR}">
++	                                      <embed src="viewer.swf" width="100%" height="100%" align="middle" quality="high" scale="noscale"  bgcolor="{BGCOLOR}" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
++	                                </object>
++	                            </td>
++	                            <td>
++	                                <img src="space.png" width="1" height="624" alt="">
++
++	                            </td>
++	                        </tr>
++	                        <tr style="height:1px;">
++	                            <td></td>
++	                            <td align="center">
++	                                <img src="space.png" width="842" height="1" alt="">
++	                            </td>
++	                            <td></td>
++	                        </tr>
++
++	                    </table>
++	                </td>
++	            </tr>
++	            <tr style="height:3ex">
++	                <td align="left" valign="top">
++	                    	<img src="space.png" width="31" height="1" alt="">
++	                </td>
++	                <td align="right" valign="top">
++
++	                    Created with 
++	                    <a target="_blank" href="http://www.jokele.de/simpleviewerexport/">SimVex</a> /
++	                    <a target="_blank" href="http://www.airtightinteractive.com/simpleviewer/">SimpleViewer</a><img src="space.png" width="31" height="1" alt="">
++	                </td>
++	            </tr>
++	        </table>
++    	</div>
++
++    </body>
++</html>
++
+Index: kipi-plugins/simpleviewerexport/firstrundlg.cpp
+===================================================================
+--- kipi-plugins/simpleviewerexport/firstrundlg.cpp	(revision 0)
++++ kipi-plugins/simpleviewerexport/firstrundlg.cpp	(revision 498544)
+@@ -0,0 +1,120 @@
++/* ============================================================
++ * File  : firstrundlg.cpp
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2006-01-06
++ * Description :
++ *
++ * Copyright 2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++// QT include files
++
++#include <qframe.h>
++#include <qlayout.h>
++#include <qvbox.h>
++#include <qhbox.h>
++#include <qlabel.h>
++
++// KDE include files
++
++#include <klocale.h>
++#include <kapplication.h>
++#include <kurllabel.h>
++#include <kurlrequester.h>
++
++// KIPI include files
++
++#include <libkipi/version.h>
++#include <libkipi/imagecollectionselector.h>
++
++// Local include files
++
++#include "firstrundlg.h"
++
++namespace KIPISimpleViewerExportPlugin
++{
++
++FirstRunDlg::FirstRunDlg( QWidget *parent )
++    : KDialogBase( parent, "svefirstrun", true, "BLA",
++                   KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true )
++{
++    setCaption(i18n("Simple Viewer Export"));
++    
++    enableButtonOK(false);
++    
++    QFrame *page = new QFrame(this);
++    setMainWidget(page);
++    
++    QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() );
++    
++    QLabel *info = new QLabel( page );
++    info->setText( i18n( "SimpleViewer is free to use, but uses a license which comes into conflict with\n"
++                         "several distributions. Due to the license it is not possible to ship it with this plugin.\n\n"
++                         "You can now download SimpleViewer from its homepage and point the plugin\n"
++                         "to the downloaded archive. The archive will be stored with the plugin configuration,\n"
++                         "so it is available for further use.\n\n"));
++    topLayout->addWidget( info );
++    
++    QHBoxLayout *hboxURL = new QHBoxLayout(page);
++    topLayout->addLayout(hboxURL);
++    
++    info = new QLabel(page);
++    info->setText(i18n( "1.) Download SimpleViewer: "));
++    hboxURL->addWidget(info);
++    
++    KURLLabel *link = new KURLLabel(page);
++    link->setText("http://www.airtightinteractive.com/simpleviewer/");
++    link->setURL("http://www.airtightinteractive.com/simpleviewer/");
++    hboxURL->addWidget(link);
++    hboxURL->addStretch();
++    connect(link, SIGNAL(leftClickedURL(const QString &)),
++            SLOT(slotDownload(const QString &)));
++    
++    info = new QLabel(page);
++    info->setText(i18n("\n2.) Point the plugin to the downloaded archive\n"));
++    topLayout->addWidget( info );
++    
++    m_urlRequester = new KURLRequester(page);
++    topLayout->addWidget(m_urlRequester);
++    connect(m_urlRequester, SIGNAL(urlSelected(const QString&)),
++            SLOT(slotURLSelected(const QString&)));
++    
++    topLayout->addStretch(10);
++}
++
++FirstRunDlg::~FirstRunDlg()
++{
++}
++
++void FirstRunDlg::slotDownload(const QString &url)
++{
++    KApplication::kApplication()->invokeBrowser(url);
++}
++
++void FirstRunDlg::slotURLSelected(const QString &url)
++{
++    enableButtonOK(true);
++    m_url = url;
++}
++
++QString FirstRunDlg::getURL()
++{
++    return m_url;
++}
++
++}
++
++#include "firstrundlg.moc"
++
+Index: kipi-plugins/simpleviewerexport/firstrundlg.h
+===================================================================
+--- kipi-plugins/simpleviewerexport/firstrundlg.h	(revision 0)
++++ kipi-plugins/simpleviewerexport/firstrundlg.h	(revision 498544)
+@@ -0,0 +1,81 @@
++/* ============================================================
++ * File  : svedialog.h
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2006-01-06
++ * Description :
++ *
++ * Copyright 2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++#ifndef FIRSTRUNDLG_H
++#define FIRSTRUNDLG_H
++
++// Include files for KDE
++
++#include <kdialogbase.h>
++
++// Include files for KIPI
++
++#include <libkipi/interface.h>
++
++class KURLRequester;
++class QString;
++
++namespace KIPISimpleViewerExportPlugin
++{
++    
++/**
++ * To avoid licensing problems with some distributions, the SimpleViewer
++ * Flash cannot be shipped with the plugin. During the first run of the
++ * plugin, the user has to download SimpleViewer from its homepage and point
++ * the plugin to that archive to install it. This is done by this dialog.
++ */   
++
++class FirstRunDlg : public KDialogBase
++{
++    Q_OBJECT
++
++public:
++ 
++    FirstRunDlg(QWidget *parent=0);
++    ~FirstRunDlg();
++
++    /**
++     * Returns the URL, where the SimpleViewer package is stored
++     */
++    QString getURL();
++    
++private:
++        
++    KURLRequester       *m_urlRequester;
++    QString              m_url;
++    
++private slots:
++        
++    /**
++     * Opens the browser with the SimpleViewer download page
++     */
++    void slotDownload(const QString &url);
++    
++    /**
++     * Starts the installation of SimpleViewer
++     */
++    void slotURLSelected(const QString &url);
++};
++
++}
++
++#endif /* FIRSTRUNDLG_H */
++
+Index: kipi-plugins/simpleviewerexport/upgrade.html
+===================================================================
+--- kipi-plugins/simpleviewerexport/upgrade.html	(revision 0)
++++ kipi-plugins/simpleviewerexport/upgrade.html	(revision 498544)
+@@ -0,0 +1,32 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
++"http://www.w3.org/TR/html4/loose.dtd">
++<html>
++<head>
++<title>SimpleViewer - Please upgrade your Flash player.</title>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++<!--
++html, body {
++	height: 100%;
++	background-color: #181818;
++	margin: 0;
++	padding: 0;
++	border: 0;
++	color: #fff;
++	font-family:Arial, Helvetica, sans-serif;
++	font-size:small;
++} 
++-->
++</style>
++</head>
++<body>
++<table width="100%" height="100%"  border="0">
++  <tr>
++    <td align="center" valign="middle"><p>SimpleViewer requires the Flash Player.</p>
++      <p><a href="http://www.macromedia.com/go/getflashplayer/"><img src="get_flash_player.gif" alt="Get Flash Player" width="88" height="31" border="0"></a></p>
++    </td>
++  </tr>
++</table>
++
++</body>
++</html>
+Index: kipi-plugins/simpleviewerexport/test.txt
+===================================================================
+--- kipi-plugins/simpleviewerexport/test.txt	(revision 0)
++++ kipi-plugins/simpleviewerexport/test.txt	(revision 498544)
+@@ -0,0 +1,2 @@
++hallo
++
+Index: kipi-plugins/simpleviewerexport/README
+===================================================================
+--- kipi-plugins/simpleviewerexport/README	(revision 0)
++++ kipi-plugins/simpleviewerexport/README	(revision 498544)
+@@ -0,0 +1,4 @@
++
++SimpleViewerExport is under development and should not to be installed
++besides for testing purposes.
++
+Index: kipi-plugins/simpleviewerexport/svedialog.cpp
+===================================================================
+--- kipi-plugins/simpleviewerexport/svedialog.cpp	(revision 0)
++++ kipi-plugins/simpleviewerexport/svedialog.cpp	(revision 498544)
+@@ -0,0 +1,493 @@
++/* ============================================================
++ * File  : svedialog.h
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description :
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++// QT include files
++
++#include <qframe.h>
++#include <qpushbutton.h>
++#include <qlayout.h>
++#include <qlabel.h>
++#include <qlineedit.h>
++#include <qlayout.h>
++#include <qwhatsthis.h>
++#include <qcheckbox.h>
++#include <qhgroupbox.h>
++#include <qvgroupbox.h>
++#include <qcombobox.h>
++#include <qhbox.h>
++#include <qvbox.h>
++
++// KDE include files
++
++#include <klocale.h>
++#include <kaboutdata.h>
++#include <khelpmenu.h>
++#include <kpopupmenu.h>
++#include <kiconloader.h>
++#include <kmessagebox.h>
++#include <knuminput.h>
++#include <kcolorbutton.h>
++#include <kurlrequester.h>
++#include <kglobalsettings.h>
++
++// KIPI include files
++
++#include <libkipi/version.h>
++#include <libkipi/imagecollectionselector.h>
++
++// Local include files
++
++#include "svedialog.h"
++
++namespace KIPISimpleViewerExportPlugin
++{
++
++SVEDialog::SVEDialog(KIPI::Interface* interface, QWidget *parent)
++          : KDialogBase( IconList, i18n("Configure"), Help|Ok|Cancel, Ok,
++                         parent, "SimpleViewerExportDialog", true, true ),
++            m_interface( interface )
++{
++    setCaption(i18n("Simple Viewer Export"));
++
++    selectionPage();
++    generalPage();
++    lookPage();
++
++    resize( 650, 450 );
++
++    // About data and help button.
++
++    KAboutData* about = new KAboutData("kipiplugins",
++                                       I18N_NOOP("Simple Viewer"),
++                                       kipi_version,
++                                       I18N_NOOP("A Kipi plugin for Simple Viewer export."),
++                                       KAboutData::License_GPL,
++                                       "(c) 2005-2006, Joern Ahrens",
++                                       0,
++                                       "http://www.jokele.de/simpleviewerexport/");
++
++    about->addAuthor("Joern Ahrens", 
++                     I18N_NOOP("Author and maintainer"),
++                     "joern dot ahrens at kdemail dot net");
++    
++    about->addCredit("Felix Turner",
++                     "Author of the SimpleViewer flash application",
++                     0,
++                     "http://www.airtightinteractive.com/simpleviewer/");
++    
++    about->addCredit("Mikkel B. Stegmann",
++                     "Basis for the index.html template",
++                     0,
++                     "http://www.stegmann.dk/mikkel/porta/");
++
++    QPushButton *helpButton = actionButton( Help );
++    KHelpMenu* helpMenu = new KHelpMenu(this, about, false);
++    helpMenu->menu()->removeItemAt(0);
++//    helpMenu->menu()->insertItem(i18n("Image Gallery Handbook"), this, SLOT(slotHelp()), 0, -1, 0);
++    helpButton->setPopup( helpMenu->menu() );
++}
++
++SVEDialog::~SVEDialog()
++{
++}
++
++void SVEDialog::selectionPage()
++{
++    m_selectionPage = addPage(i18n("Selection"), i18n("Album Selection"),
++                              BarIcon("folder_image", KIcon::SizeMedium));
++
++    QVBoxLayout *layout = new QVBoxLayout( m_selectionPage, 0, spacingHint() );
++    m_imageCollectionSelector = new KIPI::ImageCollectionSelector( m_selectionPage, m_interface );
++    layout->addWidget(m_imageCollectionSelector);
++}
++
++void SVEDialog::lookPage()
++{
++    m_lookPage = addPage(i18n("Look"), i18n("Page Look"),
++                              BarIcon("html", KIcon::SizeMedium));
++
++    QVBoxLayout *mainLayout = new QVBoxLayout(m_lookPage, 0, spacingHint());
++    QVGroupBox *vgroupbox;
++    QHBox *hbox;
++    QLabel *label;
++
++    // ========================================================================
++    // Navigation
++    // ========================================================================
++    vgroupbox = new QVGroupBox(i18n("Navigation"), m_lookPage);
++    mainLayout->addWidget(vgroupbox);
++
++    // ------------------------------------------------------------------------
++    // Number of rows of thumbnails
++    // ------------------------------------------------------------------------
++    m_thumbnailRows = new KIntNumInput(3, vgroupbox);
++    m_thumbnailRows->setRange(1, 10, 1, true);
++    m_thumbnailRows->setLabel(i18n("Thumbnail &Rows:"), AlignVCenter);
++    QWhatsThis::add(m_thumbnailRows, i18n("<p>Number of rows of thumbnails"));
++
++    // ------------------------------------------------------------------------
++    // Number of columns of thumbnails
++    // ------------------------------------------------------------------------
++    m_thumbnailColumns = new KIntNumInput(m_thumbnailRows, 3, vgroupbox);
++    m_thumbnailColumns->setRange(1, 10, 1, true);
++    m_thumbnailColumns->setLabel(i18n("Thumbnail &Columns:"), AlignVCenter);
++    QWhatsThis::add(m_thumbnailColumns, i18n("<p>Number of columns of thumbnails"));
++
++    // ------------------------------------------------------------------------
++    // navPosition: Position of thumbnails relative to image. Can be "top",
++    //              "bottom","left" or "right".
++    // ------------------------------------------------------------------------
++    hbox  = new QHBox(vgroupbox);
++    label = new QLabel(i18n("Thumbnail &Position:"), hbox);
++    m_navPosition = new QComboBox(false, hbox);
++    m_navPosition->insertItem(i18n("Right"));
++    m_navPosition->insertItem(i18n("Left"));    
++    m_navPosition->insertItem(i18n("Top"));
++    m_navPosition->insertItem(i18n("Bottom"));    
++    m_navPosition->setCurrentText(i18n("Right"));
++    label->setBuddy(m_navPosition);
++
++    // ------------------------------------------------------------------------
++    // navDirection: Direction of navigation. Can be "LTR" (Left to Right)
++    //               or "RTL" (Right to Left)
++    // ------------------------------------------------------------------------
++    hbox  = new QHBox(vgroupbox);
++    label = new QLabel(i18n("&Direction of Navigation:"), hbox);
++    m_navDirection = new QComboBox(false, hbox);
++    m_navDirection->insertItem(i18n("Left to Right"));
++    m_navDirection->insertItem(i18n("Right to Left"));
++    m_navDirection->setCurrentText(i18n("Left to Right"));
++    label->setBuddy(m_navDirection);
++
++    // ========================================================================
++    // Colors
++    // ========================================================================
++    vgroupbox = new QVGroupBox(i18n("Colors"), m_lookPage);
++    mainLayout->addWidget(vgroupbox);
++
++    // ------------------------------------------------------------------------
++    // textColor: Color of title and caption text
++    // ------------------------------------------------------------------------
++    hbox  = new QHBox(vgroupbox);
++    label = new QLabel(i18n("&Text Color:"), hbox);
++    m_textColor = new KColorButton(QColor("#ffffff"), hbox);
++    label->setBuddy(m_textColor);
++
++    // ------------------------------------------------------------------------
++    // bgColor: Color of background.
++    // ------------------------------------------------------------------------
++    hbox  = new QHBox(vgroupbox);
++    label = new QLabel(i18n("&Background Color:"), hbox);
++    m_backgroundColor = new KColorButton(QColor("#181818"), hbox);
++    label->setBuddy(m_backgroundColor);
++
++    // ------------------------------------------------------------------------
++    // frameColor: Color of image frame, viewed icon, load bars, thumbnail
++    //             arrows
++    // ------------------------------------------------------------------------
++    hbox  = new QHBox(vgroupbox);
++    label = new QLabel(i18n("&Frame Color:"), hbox);
++    m_frameColor = new KColorButton(QColor("#ffffff"), hbox);
++    label->setBuddy(m_frameColor);
++
++    // ========================================================================
++    // Style
++    // ========================================================================
++    vgroupbox = new QVGroupBox(i18n("Style"), m_lookPage);
++    mainLayout->addWidget(vgroupbox);
++    
++    // ------------------------------------------------------------------------
++    // frameWidth: Width of image frame in pixels.
++    // ------------------------------------------------------------------------
++    m_frameWidth = new KIntNumInput(m_thumbnailRows, 3, vgroupbox);
++    m_frameWidth->setRange(0, 10, 1, true);
++    m_frameWidth->setLabel(i18n("Frame &Width:"), AlignVCenter);
++    QWhatsThis::add(m_frameWidth, i18n("<p>Width of image frame in pixels."));
++
++    // ------------------------------------------------------------------------
++    // stagePadding: Distance between image and thumbnails in pixels.
++    // ------------------------------------------------------------------------
++    m_stagePadding = new KIntNumInput(m_thumbnailRows, 40, vgroupbox);
++    m_stagePadding->setRange(1, 100, 1, true);
++    m_stagePadding->setLabel(i18n("Stage &Padding:"), AlignVCenter);
++    QWhatsThis::add(m_stagePadding,
++                    i18n("<p>tagePadding: Distance between image and thumbnails in pixels."));
++    
++    mainLayout->addStretch(1);
++}
++
++void SVEDialog::generalPage()
++{
++    m_generalPage = addPage(i18n("General"), i18n("General Setup"),
++                            BarIcon("html", KIcon::SizeMedium));
++
++    QVBoxLayout *mainLayout = new QVBoxLayout(m_generalPage, 0, spacingHint());
++
++    QHGroupBox *hgroupbox;
++    QVGroupBox *vgroupbox;
++    
++    // ------------------------------------------------------------------------
++    // title: title of the Image Gallery
++    // ------------------------------------------------------------------------    
++    hgroupbox = new QHGroupBox(i18n("Gallery &Title"), m_generalPage);
++    mainLayout->addWidget(hgroupbox);
++    
++    m_title = new QLineEdit("", hgroupbox);
++    QWhatsThis::add(m_title, i18n("<p>Enter here the title of the gallery"));
++    mainLayout->addWidget(m_title);
++
++    // ========================================================================
++    // Save to
++    // ========================================================================    
++    vgroupbox = new QVGroupBox(i18n("Save Gallery To"), m_generalPage);
++    mainLayout->addWidget(vgroupbox);
++    m_exportURL = new KURLRequester(KGlobalSettings::documentPath() + "simpleviewer", vgroupbox);
++    m_exportURL->setMode(KFile::Directory | KFile::LocalOnly/* | KFile::ExistingOnly*/);
++
++    // ------------------------------------------------------------------------
++    // resize images before export
++    // ------------------------------------------------------------------------
++    vgroupbox = new QVGroupBox(i18n("Image Size"), m_generalPage);
++    mainLayout->addWidget(vgroupbox);
++
++    m_resizeExportImages = new QCheckBox(i18n("Resize Target Images"), vgroupbox);
++    m_resizeExportImages->setChecked(true);
++    QWhatsThis::add(m_resizeExportImages, i18n("<p>If you enable this option, "
++                                               "all target images can be resized.") );
++
++    m_imagesExportSize = new KIntNumInput(640, vgroupbox);
++    m_imagesExportSize->setRange(200, 2000, 1, true );
++    m_imagesExportSize->setLabel(i18n("&Target Images Size:"), AlignVCenter);
++    QWhatsThis::add(m_imagesExportSize, i18n("<p>The new size of the exported images in pixels"
++                                             "SimpleViewer resizes the images as well, but this"
++                                             "resizes your images before they are uploaded to your server"));
++    connect(m_resizeExportImages, SIGNAL(toggled(bool)),
++            m_imagesExportSize, SLOT(setEnabled(bool)));
++
++    // ------------------------------------------------------------------------
++    // maxImageDimension: largest height or width of your largest image (in pixels).
++    // Images will not be scaled up above this size, to ensure best image quality.
++    // ------------------------------------------------------------------------
++    m_maxImageDimension = new KIntNumInput(m_imagesExportSize, 640, vgroupbox);
++    m_maxImageDimension->setRange(200, 2000, 1, true );
++    m_maxImageDimension->setLabel(i18n("&SimpleViewer Images Size:"), AlignVCenter);
++    QWhatsThis::add(m_maxImageDimension, i18n("<p>SimpleViewer scales the images to this size"));
++    
++    // ========================================================================
++    // Misc
++    // ========================================================================    
++    vgroupbox = new QVGroupBox(i18n("Misc"), m_generalPage);
++    mainLayout->addWidget(vgroupbox);
++    
++    // ------------------------------------------------------------------------
++    // show EXIF comments
++    // ------------------------------------------------------------------------
++    m_showExifComments = new QCheckBox(i18n("Display EXIF Comments"), vgroupbox);
++    m_showExifComments->setChecked(true);
++    mainLayout->addWidget(m_showExifComments);
++    QWhatsThis::add(m_showExifComments, i18n("<p>If you enable this option, "
++                                             "the EXIF comments of the images will be shown"));
++
++    mainLayout->addStretch(1);
++}
++
++
++void SVEDialog::slotOk()
++{
++    m_selectedAlbums = m_imageCollectionSelector->selectedImageCollections();
++
++    if (m_selectedAlbums.size() == 0)
++    {
++        KMessageBox::sorry(this, i18n("You must select at least one album."));
++        return;
++    }
++
++    accept();
++}
++
++QValueList<KIPI::ImageCollection> SVEDialog::getSelectedAlbums() const
++{
++    return m_selectedAlbums;
++}
++
++void SVEDialog::setTitle(const QString &title)
++{
++    m_title->setText(title);
++}
++
++QString SVEDialog::title() const
++{
++    return m_title->text();
++}
++
++bool SVEDialog::resizeExportImages() const
++{
++    return m_resizeExportImages->isChecked();
++}
++
++void SVEDialog::setResizeExportImages(bool resize)
++{
++    m_resizeExportImages->setChecked(resize);
++}
++
++int SVEDialog::imagesExportSize() const
++{
++    return m_imagesExportSize->value();
++}
++
++void SVEDialog::setImagesExportSize(int size)
++{
++    m_imagesExportSize->setValue(size);
++}
++
++int SVEDialog::maxImageDimension() const
++{
++    return m_maxImageDimension->value();
++}
++
++void SVEDialog::setMaxImagesDimension(int size)
++{
++    m_maxImageDimension->setValue(size);
++}
++
++bool SVEDialog::showExifComments() const
++{
++    return m_showExifComments->isChecked();
++}
++
++void SVEDialog::setShowExifComments(bool show)
++{
++    m_showExifComments->setChecked(show);
++}
++
++QString SVEDialog::exportURL() const
++{
++    return m_exportURL->url();
++}
++
++int SVEDialog::thumbnailRows() const
++{
++    return m_thumbnailRows->value();
++}
++
++void SVEDialog::setThumbnailRows(int rows)
++{
++    m_thumbnailRows->setValue(rows);
++}
++
++int SVEDialog::thumbnailColumns() const
++{
++    return m_thumbnailColumns->value();
++}
++
++void SVEDialog::setThumbnailColumns(int columns)
++{
++    m_thumbnailColumns->setValue(columns);
++}
++
++int SVEDialog::frameWidth() const
++{
++    return m_frameWidth->value();
++}
++        
++void SVEDialog::setFrameWidth(int width)
++{
++    m_frameWidth->setValue(width);
++}
++
++int SVEDialog::stagePadding() const
++{
++    return m_stagePadding->value();
++}
++
++void SVEDialog::setStagePadding(int stagePadding)
++{
++    m_stagePadding->setValue(stagePadding);
++}
++
++QColor SVEDialog::textColor() const
++{
++    return m_textColor->color();
++}
++
++void SVEDialog::setTextColor(const QColor &color)
++{
++    m_textColor->setColor(color);
++}
++
++QColor SVEDialog::frameColor() const
++{
++    return m_frameColor->color();
++}
++
++void SVEDialog::setFrameColor(const QColor &color)
++{
++    m_frameColor->setColor(color);
++}
++
++QColor SVEDialog::backgroundColor() const
++{
++    return m_backgroundColor->color();
++}
++
++void SVEDialog::setBackgroundColor(const QColor &color)
++{
++    m_backgroundColor->setColor(color);
++}
++
++QString SVEDialog::navDirection() const
++{
++    if(m_navDirection->currentText() == i18n("Left to Right"))
++        return "LTR";
++    else
++        return "RTL";
++}
++
++void SVEDialog::setNavDirection(const QString &direction)
++{
++    if(direction == "LTR")
++        m_navPosition->setCurrentText(i18n("Left to Right"));
++    else
++        m_navPosition->setCurrentText(i18n("Right Left"));
++}
++
++QString SVEDialog::navPosition() const
++{
++    QString pos = m_navPosition->currentText();
++
++    if(pos == i18n("Top"))
++        return "top";
++    else if(pos == i18n("Bottom"))
++        return "bottom";
++    else if(pos == i18n("Left"))
++        return "left";
++    else //if(direction == i18n("Right"))
++        return "right";   
++}
++
++void SVEDialog::setNavPosition(const QString &pos)
++{
++    m_navPosition->setCurrentText(pos);
++}
++
++} //  namespace KIPISimpleViewerExportPlugin
++
++#include "svedialog.moc"
+Index: kipi-plugins/simpleviewerexport/simpleviewerexport.cpp
+===================================================================
+--- kipi-plugins/simpleviewerexport/simpleviewerexport.cpp	(revision 0)
++++ kipi-plugins/simpleviewerexport/simpleviewerexport.cpp	(revision 498544)
+@@ -0,0 +1,663 @@
++/* ============================================================
++ * File  : simpleviewerexport.cpp
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description :
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++// QT includes
++
++#include <qtimer.h>
++#include <qimage.h>
++#include <qtextstream.h>
++#include <qfile.h>
++#include <qdir.h>
++
++// KDE includes
++
++#include <kdebug.h>
++#include <klocale.h>
++#include <kapplication.h>
++#include <kio/netaccess.h>
++#include <kfilemetainfo.h>
++#include <kstandarddirs.h>
++#include <kio/job.h>
++#include <kzip.h>
++#include <kmessagebox.h>
++#include <kaboutdata.h>
++
++// KIPI includes
++
++#include <libkipi/version.h>
++#include <libkipi/batchprogressdialog.h>
++#include <libkipi/imageinfo.h>
++
++// Local includes
++
++#include "simpleviewerexport.h"
++#include "firstrundlg.h"
++#include "svedialog.h"
++
++namespace KIPISimpleViewerExportPlugin
++{
++    
++// maxium size of a simpleviewer thumbnail
++// TODO: read from configfile
++const int maxThumbSize = 45;
++const QString viewer("viewer.swf");
++    
++/* static */ void SimpleViewerExport::run(KIPI::Interface* interface, QObject *parent)
++{
++    SimpleViewerExport *plugin = new SimpleViewerExport(interface, parent);
++ 
++    if(!plugin->checkSimpleViewer())
++    {
++        if(!plugin->installSimpleViewer())
++        {
++            KMessageBox::error(kapp->activeWindow(), i18n("SimpleViewer installation failed"));
++            return;
++        }
++    }
++    
++    if(plugin->configure())
++        plugin->startExport();
++    
++    delete plugin;
++}
++    
++SimpleViewerExport::SimpleViewerExport(KIPI::Interface* interface, QObject *parent)
++    : QObject(parent)
++{
++    m_interface = interface;
++    m_configDlg = 0;
++    m_totalActions = 0;
++    m_action = 0;
++    m_canceled = true;
++    m_dataLocal = locateLocal("data", "kipiplugin_simpleviewerexport/simpleviewer/", true);
++    
++    m_simpleViewerFiles.append(viewer);
++    m_simpleViewerFiles.append("flash_detect.js");
++    m_simpleViewerFiles.append("get_flash_player.gif");
++    
++    const KAboutData *data = KApplication::kApplication()->aboutData();
++    m_hostName = QString::QString( data->appName() );
++       
++    m_hostURL = data->homepage();
++    
++    if (m_hostURL.isEmpty())
++    {
++        m_hostName = "Kipi";
++        m_hostURL = "http://extragear.kde.org/apps/kipi";
++    }
++}
++
++SimpleViewerExport::~SimpleViewerExport()
++{
++
++}
++
++bool SimpleViewerExport::configure()
++{
++    m_canceled = false;
++    
++    if(!m_configDlg)
++        m_configDlg = new SVEDialog(m_interface, kapp->activeWindow());
++
++    bool configured = false;
++    while(!configured)
++    {
++        if(m_configDlg->exec() == QDialog::Rejected)
++            return false;
++    
++        configured = true;
++        
++        if(KIO::NetAccess::exists(m_configDlg->exportURL(), false, kapp->activeWindow()))
++        {
++            int ret = KMessageBox::warningYesNoCancel(kapp->activeWindow(),
++                                                      i18n("Target folder %1 already exists.\n"
++                                                           "Do you want to overwrite it (all data in this folder will be lost)")
++                                                           .arg(m_configDlg->exportURL()));
++            
++            switch(ret)
++            {
++                case KMessageBox::Yes:
++                    if(!KIO::NetAccess::del(m_configDlg->exportURL(), kapp->activeWindow()))
++                    {
++                        KMessageBox::error(kapp->activeWindow(), i18n("Could not delete %1\n"
++                                "Please choose another export folder").arg(m_configDlg->exportURL()));
++                        configured = false;
++                    }
++                    break;
++                
++                case KMessageBox::No:
++                    configured = false;
++                    break;
++                
++                case KMessageBox::Cancel:
++                    return false;
++                    break;
++            };
++        }
++    }
++    
++    return true;
++}
++
++void SimpleViewerExport::startExport()
++{
++    if(m_canceled)
++        return;
++    
++    m_progressDlg = new KIPI::BatchProgressDialog(kapp->activeWindow(),
++                                                  i18n("Simple Viewer Export"));
++        
++    connect(m_progressDlg, SIGNAL(cancelClicked()),
++            this, SLOT(slotCancel()));
++
++    m_progressDlg->show();
++    kapp->processEvents();
++    
++    // Estimate the number of actions for the KIPI progress dialog.
++    m_progressDlg->addedAction(i18n("Estimate the number of actions to do..."), KIPI::StartingMessage);
++    m_albumsList = m_configDlg->getSelectedAlbums();
++    m_totalActions = 0;
++    for( QValueList<KIPI::ImageCollection>::Iterator it = m_albumsList.begin() ;
++         !m_canceled && (it != m_albumsList.end()) ; ++it )
++    {
++        m_totalActions += (*it).images().count();
++    }
++    
++    // +copying SimpleViewer, +creating index.html
++    m_totalActions += 2;
++    
++    m_progressDlg->setProgress(0, m_totalActions);
++
++    slotProcess();
++
++#if KDE_VERSION >= 0x30200
++        m_progressDlg->setButtonCancel(KStdGuiItem::close());
++#else
++        m_progressDlg->setButtonCancelText(i18n("&Close"));
++#endif
++
++}
++
++void SimpleViewerExport::slotCancel()
++{
++    m_progressDlg->addedAction(i18n("Export canceled"), KIPI::ErrorMessage);
++    m_canceled = true;
++}
++
++void SimpleViewerExport::slotProcess()
++{
++    if(m_canceled)
++        return;
++    
++    m_progressDlg->addedAction(i18n("Initialising..."), KIPI::StartingMessage);
++    
++    if(!m_canceled && !createExportDirectories())
++    {
++            m_progressDlg->addedAction(i18n("Failed to create export directories"),
++                                       KIPI::ErrorMessage);
++        return;
++    }
++
++    if(!m_canceled && !exportImages())
++    {
++        m_progressDlg->addedAction(i18n("Failed to export the images"),
++                                   KIPI::ErrorMessage);
++        return;
++    }
++    
++    if(!m_canceled && !createIndex())
++    {
++        m_progressDlg->addedAction(i18n("Failed to create index.html"),
++                                   KIPI::ErrorMessage);
++        return;        
++    }
++
++    if(!m_canceled && !copySimpleViewer())
++    {
++        m_progressDlg->addedAction(i18n("Failed to copy SimpleViewer files"),
++                                   KIPI::ErrorMessage);
++        return;
++    }
++
++    if(m_canceled)
++    {
++        int ret = KMessageBox::warningYesNo(kapp->activeWindow(),
++                                            i18n("Export was canceled.\n"
++                                            "Do you want to delete the yet created files in %1 ?")
++                                            .arg(m_configDlg->exportURL()));
++        if(ret == KMessageBox::Yes)
++        {
++            KIO::NetAccess::del(m_configDlg->exportURL(), kapp->activeWindow());
++        }
++    }
++    
++    if(!m_canceled)
++        m_progressDlg->addedAction(i18n("Finished..."), KIPI::SuccessMessage);
++}
++
++bool SimpleViewerExport::createExportDirectories()
++{
++    m_progressDlg->addedAction(i18n("Creating directories..."), KIPI::StartingMessage);    
++    
++    KURL root = m_configDlg->exportURL();
++    
++    if(!KIO::NetAccess::mkdir(root, kapp->activeWindow()))
++    {
++        m_progressDlg->addedAction(i18n("Could not create folder '%1'").arg(root.url()),
++                                   KIPI::ErrorMessage);
++        return(false);
++    }
++    
++    KURL thumbsDir = root;
++    thumbsDir.addPath("/thumbs");
++    if(!KIO::NetAccess::mkdir(thumbsDir, kapp->activeWindow()))
++    {
++        m_progressDlg->addedAction(i18n("Could not create folder '%1'").arg(thumbsDir.url()),
++                                   KIPI::ErrorMessage);
++        return(false);
++    }
++
++    KURL imagesDir = root;
++    imagesDir.addPath("/images");
++    if(!KIO::NetAccess::mkdir(imagesDir, kapp->activeWindow()))
++    {
++        m_progressDlg->addedAction(i18n("Could not create folder '%1'").arg(imagesDir.url()),
++                                   KIPI::ErrorMessage);
++        return(false);
++    }
++    
++    KURL simpleviewerDir = root;
++    simpleviewerDir.addPath("/simpleviewer");
++    if(!KIO::NetAccess::mkdir(simpleviewerDir, kapp->activeWindow()))
++    {
++        m_progressDlg->addedAction(i18n("Could not create folder '%1'").arg(simpleviewerDir.url()),
++                                   KIPI::ErrorMessage);
++        return(false);
++    }
++    
++    m_progressDlg->setProgress(++m_action, m_totalActions);
++    m_progressDlg->addedAction(i18n("Directories created..."), KIPI::SuccessMessage);
++    
++    return true;
++}
++
++bool SimpleViewerExport::exportImages()
++{
++    if(m_canceled)
++        return false;
++
++    m_progressDlg->addedAction(i18n("Creating images and thumbnails..."), KIPI::StartingMessage);
++
++    KURL thumbsDir(m_configDlg->exportURL());
++    thumbsDir.addPath("/thumbs");
++    
++    KURL imagesDir(m_configDlg->exportURL());
++    imagesDir.addPath("/images");
++
++    KURL xmlFile(m_configDlg->exportURL());
++    xmlFile.addPath("/imageData.xml");
++    QFile file(xmlFile.path());
++    file.open(IO_WriteOnly);
++    QTextStream ts(&file);
++    cfgCreateHeader(ts);
++
++    int maxSize = m_configDlg->imagesExportSize();
++    bool resizeImages = m_configDlg->resizeExportImages();
++    for( QValueList<KIPI::ImageCollection>::Iterator it = m_albumsList.begin() ;
++         !m_canceled && (it != m_albumsList.end()) ; ++it )
++    {
++        KURL::List images = (*it).images();
++        for(KURL::List::Iterator it = images.begin();
++            !m_canceled && (it != images.end()) ; ++it)
++        {
++            kapp->processEvents();
++
++            KURL kurl = *it;
++            m_progressDlg->addedAction(i18n("Processing %1").arg((*it).url()),
++                                       KIPI::StartingMessage);
++            QImage image;
++            if(!image.load(kurl.path()))
++            {
++                m_progressDlg->addedAction(i18n("Could not open image '%1'").arg(kurl.path()),
++                                           KIPI::WarningMessage);
++                continue;
++            }
++
++            QImage thumbnail;
++            if(!createThumbnail(image, thumbnail))
++            {
++                m_progressDlg->addedAction(i18n("Could not create thumbnail from '%1'").arg(kurl.path()),
++                                           KIPI::WarningMessage);
++                continue;
++            }
++
++            if(resizeImages && !resizeImage(image, maxSize, image))
++            {
++                m_progressDlg->addedAction(i18n("Could not resize image '%1'").arg(kurl.path()),
++                                           KIPI::WarningMessage);
++                continue;
++            }
++
++            KURL thumbnailPath(thumbsDir);
++            thumbnailPath.addPath(kurl.filename());
++            thumbnail.save(thumbnailPath.path(), "JPEG");
++
++            KURL imagePath(imagesDir);
++            imagePath.addPath(kurl.filename());
++            image.save(imagePath.path(), "JPEG");
++
++            cfgAddImage(ts, kurl);
++            m_progressDlg->setProgress(++m_action, m_totalActions);
++        }
++        cfgCreateFooter(ts);
++    }
++    
++    m_progressDlg->addedAction(i18n("Images and thumbnails created..."), KIPI::SuccessMessage);    
++    
++    return true;
++}
++
++bool SimpleViewerExport::createThumbnail(const QImage &image, QImage &thumbnail)
++{
++    int w = image.width();
++    int h = image.height();
++
++    int maxSize;
++
++    if(w > maxThumbSize || h > maxThumbSize)
++    {
++        if(w > h)
++        {
++            maxSize = (int)(double)(w * maxThumbSize) / h;
++        }
++        else
++        {
++            maxSize = (int)(double)(h * maxThumbSize) / w;
++        }
++    }
++    
++    maxSize = (maxSize < maxThumbSize) ? maxThumbSize : maxSize;
++    
++    return resizeImage(image, maxSize, thumbnail);
++}
++
++bool SimpleViewerExport::resizeImage(const QImage &image, int maxSize, QImage &resizedImage)
++{
++    int w = image.width();
++    int h = image.height();
++
++    if(w > maxSize || h > maxSize)
++    {
++        if(w > h)
++        {
++            h = (int)(double)(h * maxSize) / w;
++            h = (h == 0) ? 1 : h;
++            w = maxSize;
++        }
++        else
++        {
++            w = (int)(double)(w * maxSize) / h;
++            w = (w == 0) ? 1 : w;
++            h = maxSize;
++        }
++        resizedImage = image.smoothScale(w, h);
++    }
++
++    return true;
++}
++
++void SimpleViewerExport::cfgCreateHeader(QTextStream &ts)
++{
++    if(m_canceled)
++        return;
++
++    ts << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl;
++    ts << "<SIMPLEVIEWER_DATA"
++       << " maxImageDimension=\""   << m_configDlg->maxImageDimension() << "\""
++       << " textColor=\""           << m_configDlg->textColor().name().replace("#", "0x") << "\""
++       << " frameColor=\""          << m_configDlg->frameColor().name().replace("#", "0x") << "\""
++       << " bgColor=\""             << m_configDlg->backgroundColor().name().replace("#", "0x") << "\""
++       << " frameWidth=\""          << m_configDlg->frameWidth() << "\""
++       << " stagePadding=\""        << m_configDlg->stagePadding() << "\""
++       << " thumbnailColumns=\""    << m_configDlg->thumbnailColumns() << "\""
++       << " thumbnailRows=\""       << m_configDlg->thumbnailRows() << "\""
++       << " navPosition=\""         << m_configDlg->navPosition() << "\""
++       << " navDirection=\""        << m_configDlg->navDirection() << "\""
++       << " title=\""               << m_configDlg->title() << "\""
++       << " imagePath=\"\" thumbPath=\"\">" << endl;
++}
++
++void SimpleViewerExport::cfgAddImage(QTextStream &ts, const KURL &kurl)
++{
++    if(m_canceled)
++        return;
++
++    QString comment;
++
++    if(m_configDlg->showExifComments())
++    {
++        KIPI::ImageInfo info = m_interface->info(kurl);
++        comment = info.description();
++    }
++    else
++    {
++        comment = "";
++    }
++
++    ts << "<IMAGE>" << endl;
++    ts << "<NAME>" << kurl.filename() << "</NAME>" << endl;
++    ts << "<CAPTION>" <<  comment  <<  "</CAPTION>" << endl;
++    ts << "</IMAGE>" << endl;
++}
++
++void SimpleViewerExport::cfgCreateFooter(QTextStream &ts)
++{
++    if(m_canceled)
++        return;
++    
++    ts << "</SIMPLEVIEWER_DATA>" << endl;
++}
++
++bool SimpleViewerExport::createIndex()
++{
++    if(m_canceled)
++        return false;
++    
++    m_progressDlg->addedAction(i18n("Creating index.html..."), KIPI::StartingMessage);
++
++    QString indexTemplateName = locate("data", "kipiplugin_simpleviewerexport/index.template");
++    if(indexTemplateName.isEmpty())
++    {
++        //TODO: errormsg
++        kdDebug() << "No indexTemplateName" << endl;
++        return false;
++    }
++    
++    QFile infile(indexTemplateName);
++    infile.open(IO_ReadOnly);
++    QTextStream in(&infile);
++    QString indexTemplate = in.read();
++    infile.close();
++    
++    indexTemplate.replace("{TITLE}", m_configDlg->title());
++    indexTemplate.replace("{COLOR}", m_configDlg->textColor().name());
++    indexTemplate.replace("{BGCOLOR}", m_configDlg->backgroundColor().name());
++    indexTemplate.replace("{HOSTURL}", m_hostURL);
++    indexTemplate.replace("{HOSTNAME}", m_hostName);
++    
++    QFile outfile(m_configDlg->exportURL() + "/index.html");
++    outfile.open(IO_WriteOnly);
++    QTextStream out(&outfile);
++    out << indexTemplate;
++    outfile.close();
++    
++    m_progressDlg->setProgress(++m_action, m_totalActions);
++    m_progressDlg->addedAction(i18n("index.html created..."), KIPI::SuccessMessage);
++    
++    return true;
++}
++
++bool SimpleViewerExport::copySimpleViewer()
++{
++    if(m_canceled)
++        return false;
++
++    QString dataDir;
++    
++    // Due to its license, simpleviewer is installed in $KDEHOME
++    dataDir = locate("data", "kipiplugin_simpleviewerexport/simpleviewer/");
++    if(dataDir.isEmpty())
++        installSimpleViewer();
++    if(dataDir.isEmpty())
++        return false;
++   
++    QStringList files;
++    QStringList entries;
++    QDir dir;
++    
++    dir.setPath(dataDir);
++    entries = dir.entryList(QDir::Files);
++    for(QStringList::Iterator it = entries.begin(); it != entries.end(); ++it) 
++    {
++        files.append(dir.absPath() + "/" + *it);
++    }
++    
++    // files distributed with the plugin are installed in $KDEDIRS
++    dataDir = locate("data", "kipiplugin_simpleviewerexport/simpleviewer_html/");
++    dir.setPath(dataDir);
++    entries = dir.entryList(QDir::Files);
++    for(QStringList::Iterator it = entries.begin(); it != entries.end(); ++it) 
++    {
++        files.append(dir.absPath() + "/" + *it);
++    }
++    // TODO: catch errors
++    KIO::CopyJob *copyJob = KIO::copy(files, m_configDlg->exportURL(), true);
++    
++    return true;
++}
++
++bool SimpleViewerExport::checkSimpleViewer() const
++{
++    return ! locate("data", "kipiplugin_simpleviewerexport/simpleviewer/"+viewer).isEmpty();
++}
++
++bool SimpleViewerExport::installSimpleViewer()
++{
++    FirstRunDlg *firstRunDlg = new FirstRunDlg(kapp->activeWindow());
++    if(firstRunDlg->exec() == QDialog::Accepted)
++    {
++        QString url = firstRunDlg->getURL();
++        delete firstRunDlg;
++        
++        if(unzip(url))
++        {
++            return true;
++        }
++        else
++        {
++            // ErrorMessage
++        }
++    }
++    
++    return false;
++}
++
++bool SimpleViewerExport::unzip(const QString &url)
++{
++    KZip zip(url);
++    
++    if(!openArchive(zip))    
++    {
++        return false;
++    }
++    
++    return extractArchive(zip);
++}
++
++bool SimpleViewerExport::openArchive(KZip &zip)
++{
++    if(!zip.open(IO_ReadOnly))
++    {
++        kdDebug() << "open archive failed\n";
++        return false;
++    }
++    return true;
++}
++
++bool SimpleViewerExport::extractArchive(KZip &zip)
++{
++    // read root directory content
++    QStringList names = zip.directory()->entries();
++    if(names.count() != 1)
++    {
++        kdDebug() << "Wrong SimpleViewer Version or corrupted archive" << endl;
++        kdDebug() << "Content of the archive root folder" << names << endl;
++        return false;
++    }
++            
++    // open root directory
++    const KArchiveEntry *root = zip.directory()->entry(names[0]);
++    if(!root || !root->isDirectory())
++    {
++        kdDebug() << "could not open " << names[0] << " of zipname" << endl;
++        return false;
++    }
++    
++    const KArchiveDirectory *dir = dynamic_cast<const KArchiveDirectory*>(root);
++            
++    // extract the needed files from SimpleViewer archive
++    for(QStringList::Iterator it = m_simpleViewerFiles.begin(); 
++        it != m_simpleViewerFiles.end(); ++it ) 
++    {
++        const KArchiveEntry *entry = dir->entry(*it);
++        if(!extractFile(entry))
++        {
++            //TODO error msg
++            kdDebug() << "could not open " << *it << " of zipname" << endl;
++            return false;
++        }
++    }
++    
++    return true;
++}
++
++bool SimpleViewerExport::extractFile(const KArchiveEntry *entry)
++{
++    if( !entry || !entry->isFile() ) 
++        return false;
++   
++    const KArchiveFile *entryFile = dynamic_cast<const KArchiveFile*>(entry);
++    QByteArray array = entryFile->data();
++
++    QFile file( m_dataLocal + entry->name() );
++    if(file.open( IO_WriteOnly )) 
++    {
++        int ret = file.writeBlock(array);
++        file.close();
++        return ret > 0 ? true : false;
++    }
++    
++    return false;
++}
++
++} // namespace KIPISimpleViewerExportPlugin
++
++#include "simpleviewerexport.moc"
+Index: kipi-plugins/simpleviewerexport/svedialog.h
+===================================================================
+--- kipi-plugins/simpleviewerexport/svedialog.h	(revision 0)
++++ kipi-plugins/simpleviewerexport/svedialog.h	(revision 498544)
+@@ -0,0 +1,143 @@
++/* ============================================================
++ * File  : svedialog.h
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description :
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++#ifndef SVEDIALOG_H
++#define SVEDIALOG_H
++
++// Include files for KDE
++
++#include <kdialogbase.h>
++
++// Include files for KIPI
++
++#include <libkipi/interface.h>
++
++namespace KIPI
++{
++    class ImageCollectionSelector;
++}
++
++class QFrame;
++class QLineEdit;
++class QCheckBox;
++class QComboBox;
++
++class KIntNumInput;
++class KColorButton;
++class KURLRequester;
++
++namespace KIPISimpleViewerExportPlugin
++{
++
++class SVEDialog : public KDialogBase
++{
++    Q_OBJECT
++
++public:
++ 
++    SVEDialog( KIPI::Interface* interface, QWidget *parent=0);
++    ~SVEDialog();
++
++    void slotOk();
++    QValueList<KIPI::ImageCollection> getSelectedAlbums() const;
++
++    QString title() const;
++    void setTitle(const QString &title);
++
++    bool resizeExportImages() const;
++    void setResizeExportImages(bool resize);
++
++    int imagesExportSize() const;
++    void setImagesExportSize(int size);
++
++    int maxImageDimension() const;
++    void setMaxImagesDimension(int size);
++
++    bool showExifComments() const;
++    void setShowExifComments(bool show);
++
++    int thumbnailRows() const;
++    void setThumbnailRows(int rows);
++
++    int thumbnailColumns() const;
++    void setThumbnailColumns(int columns);
++
++    int frameWidth() const;
++    void setFrameWidth(int width);
++
++    int stagePadding() const;
++    void setStagePadding(int stagePadding);
++
++    QColor textColor() const;
++    void setTextColor(const QColor &color);
++
++    QColor frameColor() const;
++    void setFrameColor(const QColor &color);
++
++    QColor backgroundColor() const;
++    void setBackgroundColor(const QColor &color);
++
++    QString navDirection() const;
++    void setNavDirection(const QString &direction);
++
++    QString navPosition() const;
++    void setNavPosition(const QString &pos);
++    
++    QString exportURL() const;
++    
++
++private:
++
++    void selectionPage();
++    void generalPage();
++    void lookPage();
++    
++private:
++
++    KIPI::Interface                     *m_interface;
++    KIPI::ImageCollectionSelector       *m_imageCollectionSelector;
++    QValueList<KIPI::ImageCollection>    m_selectedAlbums;
++
++    QFrame                              *m_selectionPage;
++    QFrame                              *m_generalPage;
++    QFrame                              *m_lookPage;
++
++    QLineEdit                           *m_title;
++    QCheckBox                           *m_resizeExportImages;
++    KIntNumInput                        *m_imagesExportSize;
++    KIntNumInput                        *m_maxImageDimension;
++    QCheckBox                           *m_showExifComments;
++    KIntNumInput                        *m_thumbnailRows;
++    KIntNumInput                        *m_thumbnailColumns;
++    QComboBox                           *m_navPosition;
++    QComboBox                           *m_navDirection;
++    KColorButton                        *m_textColor;
++    KColorButton                        *m_backgroundColor;
++    KColorButton                        *m_frameColor;
++    KIntNumInput                        *m_frameWidth;
++    KIntNumInput                        *m_stagePadding;
++    KURLRequester                       *m_exportURL;
++};
++
++}
++
++#endif /* SVEDIALOG_H */
++
+Index: kipi-plugins/simpleviewerexport/simpleviewerexport.h
+===================================================================
+--- kipi-plugins/simpleviewerexport/simpleviewerexport.h	(revision 0)
++++ kipi-plugins/simpleviewerexport/simpleviewerexport.h	(revision 498544)
+@@ -0,0 +1,171 @@
++/* ============================================================
++ * File  : simpleviewerexport.h
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description :
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * ============================================================ */
++
++#ifndef SIMPLEVIEWEREXPORT_H
++#define SIMPLEVIEWEREXPORT_H
++
++// QT includes
++
++#include <qobject.h>
++
++// KIPI includes
++
++#include <libkipi/interface.h>
++
++namespace KIPI
++{
++    class BatchProgressDialog;
++}
++
++class QTimer;
++class KZip;
++class KURL;
++class QString;
++class QImage;
++class KArchiveEntry;
++
++namespace KIPISimpleViewerExportPlugin
++{
++
++    class SVEDialog;
++    class FirstRunDlg;
++
++class SimpleViewerExport : public QObject
++{
++    Q_OBJECT
++
++public:
++
++    static void run( KIPI::Interface* interface, QObject *parent=0 );
++ 
++private:
++
++    SimpleViewerExport( KIPI::Interface* interface, QObject *parent=0 );
++    ~SimpleViewerExport();
++
++    bool configure();
++    void startExport();
++
++    /**
++     * Creates the standard simpleviewer directories
++     *
++     * @return true=ok
++     */
++    bool createExportDirectories();
++
++    /**
++     * Creates the images and thumbnails
++     *
++     * @return true=ok
++     */
++    bool exportImages();
++
++    /**
++     * Creates a simpleviewer thumbnail from images
++     *
++     * @param image the original images
++     * @param thumbnail the created thumbnail
++     *
++     * @return true=ok
++     */
++    bool createThumbnail(const QImage &image, QImage &thumbnail);
++
++    /**
++     * Resizes the image for the gallery
++     *
++     * @param image the original images
++     * @param thumbnail the created thumbnail
++     *
++     * @return true=ok
++     */
++    bool resizeImage(const QImage &image, int maxSize, QImage &resized);
++
++    /**
++     * Creates the header of the simpleviewer config file
++     */
++    void cfgCreateHeader(QTextStream &ts);
++
++    /**
++     * Adds an image to the simpleviewer config file
++     *
++     * @param kurl path to the images
++     */
++    void cfgAddImage(QTextStream &ts, const KURL &kurl);
++
++    /**
++     * Finishes the simpleviewer config file
++     */
++    void cfgCreateFooter(QTextStream &ts);
++    
++    /**
++     * Creates the index.html file
++     */
++    bool createIndex();
++    
++    /**
++     * Copies simpleviewers files into the export directory
++     */
++    bool copySimpleViewer();
++    
++    /**
++     * Is the SimpleViewer flash installed?
++     */
++    bool checkSimpleViewer() const;
++    
++    /**
++     * Installs the SimpleViewer files for the later export 
++     * on the users machine
++     */
++    bool installSimpleViewer();
++    
++    bool unzip(const QString &url);
++
++    bool openArchive(KZip &zip);
++    
++    bool extractArchive(KZip &zip);
++    
++    bool extractFile(const KArchiveEntry *entry);
++    
++public slots:
++    
++    void slotProcess();
++    void slotCancel();
++    
++private:
++    
++    SVEDialog                           *m_configDlg;
++    KIPI::Interface                     *m_interface;
++    KIPI::BatchProgressDialog           *m_progressDlg;
++    QValueList<KIPI::ImageCollection>    m_albumsList;
++    QTimer                              *m_timer;
++    int                                  m_totalActions;
++    int                                  m_action;
++    bool                                 m_canceled;
++    QString                              m_dataLocal;
++    QStringList                          m_simpleViewerFiles;
++    QString                              m_hostName;
++    QString                              m_hostURL;
++};
++
++}
++
++#endif /* SIMPLEVIEWEREXPORT_H */
++
+Index: kipi-plugins/simpleviewerexport/Makefile.am
+===================================================================
+--- kipi-plugins/simpleviewerexport/Makefile.am	(revision 0)
++++ kipi-plugins/simpleviewerexport/Makefile.am	(revision 498544)
+@@ -0,0 +1,31 @@
++INCLUDES    = $(LIBKIPI_CFLAGS) $(all_includes)
++METASOURCES = AUTO
++
++# Install this plugin in the KDE modules directory
++kde_module_LTLIBRARIES = kipiplugin_simpleviewer.la
++kipiplugin_simpleviewer_la_DEPENDENCIES = $(LIBKIPI_LIBS_DEP)
++# Srcs for the plugin
++kipiplugin_simpleviewer_la_SOURCES = plugin_simpleviewer.cpp svedialog.cpp \
++	simpleviewerexport.cpp firstrundlg.cpp
++
++# Libs needed by the plugin
++kipiplugin_simpleviewer_la_LIBADD = $(LIB_KPARTS) $(LIBKIPI_LIBS)
++
++# LD flags for the plugin
++kipiplugin_simpleviewer_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries)
++
++# Install the desktop file needed to detect the plugin
++kde_services_DATA = kipiplugin_simpleviewer.desktop
++
++# Install the SimpleViewer files
++kipiplugin_simpleviewer_svdir = $(kde_datadir)/kipiplugin_simpleviewerexport/simpleviewer_html
++kipiplugin_simpleviewer_sv_DATA = upgrade.html space.png
++
++kipiplugin_simpleviewer_svtemplatedir = $(kde_datadir)/kipiplugin_simpleviewerexport
++kipiplugin_simpleviewer_svtemplate_DATA = index.template
++
++# i18n translation messages 
++#Nota : no need a translation file for this plugin.
++#messages: rc.cpp
++#	$(XGETTEXT) *.cpp *.h -o $(podir)/kipiplugin_simpleviewer.pot
++
+Index: kipi-plugins/simpleviewerexport/plugin_simpleviewer.cpp
+===================================================================
+--- kipi-plugins/simpleviewerexport/plugin_simpleviewer.cpp	(revision 0)
++++ kipi-plugins/simpleviewerexport/plugin_simpleviewer.cpp	(revision 498544)
+@@ -0,0 +1,97 @@
++/* ============================================================
++ * File  : plugin_simpleviewer.cpp
++ * Author: Joern Ahrens <joern.ahrens at kdemail.net>
++ * Date  : 2005-12-19
++ * Description : KIPI Exportplugin to SimpleViewer
++ *
++ * Copyright 2005-2006 by Joern Ahrens
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * ============================================================ */
++
++// KDE includes.
++  
++#include <klocale.h>
++#include <kaction.h>
++#include <kgenericfactory.h>
++#include <klibloader.h>
++#include <kconfig.h>
++#include <kdebug.h>
++#include <kapplication.h>
++
++// LibKIPI includes.
++
++#include <libkipi/imagecollection.h>
++
++// Local includes.
++
++#include "plugin_simpleviewer.h"
++#include "simpleviewerexport.h"
++
++// A macro from KDE KParts to export the symbols for this plugin and
++// create the factory for it. The first argument is the name of the
++// plugin library and the second is the genericfactory templated from
++// the class for your plugin
++typedef KGenericFactory<Plugin_SimpleViewer> Factory;
++K_EXPORT_COMPONENT_FACTORY( kipiplugin_simpleviewer, Factory("kipiplugin_simpleviewer"));
++
++Plugin_SimpleViewer::Plugin_SimpleViewer(QObject *parent, const char*, const QStringList&)
++    : KIPI::Plugin(Factory::instance(), parent, "SimpleViewer")
++{
++    kdDebug( 51001 ) << "Plugin_SimpleViewer plugin loaded" << endl;
++}
++
++void Plugin_SimpleViewer::setup( QWidget* widget )
++{
++    KIPI::Plugin::setup( widget );
++    
++    // action shown in the menubar/toolbar of the mainwindow
++    m_actionSimpleViewer = new KAction (i18n("Export to SimpleViewer ..."),    // menu message
++                                   "www",
++                                   0,
++                                   this,
++                                   SLOT(slotActivate()),
++                                   actionCollection(),
++                                   "simpleviewer");
++    
++    addAction( m_actionSimpleViewer );
++
++    m_interface = dynamic_cast< KIPI::Interface* >( parent() );
++    if ( !m_interface )
++    {
++        kdError( 51000 ) << "Kipi interface is null!" << endl;
++        return;
++    }
++}
++
++KIPI::Category Plugin_SimpleViewer::category( KAction* action ) const
++{
++    if ( action == m_actionSimpleViewer )
++       return KIPI::EXPORTPLUGIN;
++    
++    kdWarning( 51000 ) << "Unrecognized action for plugin category identification" << endl;
++    return KIPI::EXPORTPLUGIN; // no warning from compiler, please
++}
++
++void Plugin_SimpleViewer::slotActivate()
++{
++    if ( !m_interface )
++    {
++        kdError( 51000 ) << "Kipi interface is null!" << endl;
++        return;
++    }
++    
++    KIPISimpleViewerExportPlugin::SimpleViewerExport::run( m_interface, this );
++}
++
++#include "plugin_simpleviewer.moc"
++
+Index: kipi-plugins/simpleviewerexport/index.html
+===================================================================
+--- kipi-plugins/simpleviewerexport/index.html	(revision 0)
++++ kipi-plugins/simpleviewerexport/index.html	(revision 498544)
+@@ -0,0 +1,45 @@
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
++<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
++<head>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
++<title>SimpleViewer</title>
++<style type="text/css">
++<!--
++html, body {
++	/* \*/
++	height:100%;
++	/* hide from Mac IE 5.x */ 
++	background-color: #181818;
++	margin: 0;
++	padding: 0;
++	border: 0;
++	overflow-y: hidden;
++} 
++-->
++</style>
++<!-- saved from url=(0014)about:internet -->
++<script language="javascript" type="text/javascript" src="flash_detect.js">
++	<!--
++	function getFlashVersion() { return null; };
++	//-->
++</script>
++	
++<script language="javascript" type="text/javascript">
++	<!--
++	var flashVersion = getFlashVersion();
++	if (flashVersion < 6) {		
++		location.replace("upgrade.html");
++	}
++	//-->
++</script>	
++</head>
++<body>
++<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="100%" align="middle">
++      <param name="movie" value="viewer.swf" />
++      <param name="quality" value="high" />
++      <param name="scale" value="noscale" />
++      <param name="BGCOLOR" value="#181818" />
++      <embed src="viewer.swf" width="100%" height="100%" align="middle" quality="high" scale="noscale" bgcolor="#181818" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />    
++</object>
++</body>
++</html>
+Index: kipi-plugins/simpleviewerexport/space.png
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: kipi-plugins/simpleviewerexport/space.png
+___________________________________________________________________
+Name: svn:mime-type
+   + application/octet-stream
+
+Index: kipi-plugins/simpleviewerexport/kipiplugin_simpleviewer.desktop
+===================================================================
+--- kipi-plugins/simpleviewerexport/kipiplugin_simpleviewer.desktop	(revision 0)
++++ kipi-plugins/simpleviewerexport/kipiplugin_simpleviewer.desktop	(revision 498544)
+@@ -0,0 +1,28 @@
++[Desktop Entry]
++Encoding=UTF-8
++Name=SimpleViewer
++Name[da]=SimpeleFremviser
++Name[el]=ΑπλόςΠροβολέας
++Name[es]=VisorSencillo
++Name[ga]=AmharcánSimplí
++Name[it]=Visore semplice
++Name[pt]=Visualizador Simples
++Name[pt_BR]=Visualizador Simples
++Name[sv]=Enkel visning
++Name[xx]=xxSimpleViewerxx
++Comment=KIPI Simple Viewer Plugin
++Comment[da]=KIPI Simpel fremviser-plugin
++Comment[de]=Ein einfacher Bildbetrachter als KIPI-Modul
++Comment[el]=Πρόσθετο απλού προβολέα του KIPI
++Comment[es]=Extensión de KIPI para el visor sencillo
++Comment[et]=KIPI Simple Viewer'i plugin
++Comment[it]=Plugin del visore semplice di KIPI
++Comment[pt]='Plugin' do KIPI para Visualização Simples
++Comment[pt_BR]='Plugin' do KIPI para Visualização Simples
++Comment[sv]=KIPI-insticksprogram för enkel visning
++Comment[xx]=xxKIPI Simple Viewer Pluginxx
++Type=Service
++ServiceTypes=KIPI/Plugin
++X-KDE-Library=kipiplugin_simpleviewer
++author=Joern Ahrens, joern.ahrens at kdemail.net
++
+Index: kipi-plugins/printwizard/kipiplugin_printwizard.desktop
+===================================================================
+--- kipi-plugins/printwizard/kipiplugin_printwizard.desktop	(revision 460242)
++++ kipi-plugins/printwizard/kipiplugin_printwizard.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=Skoazeller moulañ
+ Name[cs]=Průvodcem tiskem
+ Name[da]=Udskriftsguide
++Name[el]=ΜάγοςΕκτύπωσης
++Name[es]=Asistente de impresión
+ Name[et]=Trükkimisnõustaja
+ Name[ga]=DraoiPriontála
+ Name[it]=AssistenteDiStampa
+@@ -14,6 +16,7 @@
+ Name[sr]=Чаробњак штампе
+ Name[sr at Latn]=Čarobnjak štampe
+ Name[sv]=Utskriftsguide
++Name[tg]=Танзимоти Чопкунӣ
+ Name[tr]=YazdırmaSihirbazı
+ Name[xx]=xxPrintWizardxx
+ Name[zh_CN]=打印向导
+@@ -22,15 +25,21 @@
+ Comment[cs]=KIPI modul průvodce tiskem
+ Comment[da]=KIPI-plugin: Udskriftsguide
+ Comment[de]=Ein KIPI-Modul zum Ausdrucken von Bildern
++Comment[el]=Πρόσθετο μάγου εκτύπωσης του KIPI
++Comment[es]=Extensión de KIPI de asistente de impresión
+ Comment[et]=KIPI trükkimisnõustaja plugin
++Comment[fr]=Module externe KIPI pour imprimer des images
+ Comment[it]=Plugin assistente di stampa di KIPI
++Comment[ja]=KIPI 印刷ウィザードプラグイン
+ Comment[nl]=KIPI-plugin voor het afdrukken van afbeeldingen
++Comment[pa]=KIPI ਛਪਾਈ ਸਹਾਇਕ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Asystent drukowania
+ Comment[pt]='Plugin' do KIPI de Assistência de Impressão
+ Comment[pt_BR]='Plugin' do KIPI de Assistência de Impressão
+ Comment[sr]=KIPI прикључак за чаробњака штампе
+ Comment[sr at Latn]=KIPI priključak za čarobnjaka štampe
+ Comment[sv]=KIPI-insticksprogram: Utskriftsguide
++Comment[tg]=Модули KIPI барои танзимоти чопкунӣ
+ Comment[tr]=KIPI Yazdırma Sihirbazı Eklentisi
+ Comment[xx]=xxKIPI Print Wizard Pluginxx
+ Comment[zh_CN]=KIPI 打印向导插件
+Index: kipi-plugins/printwizard/frmprintwizardbase.ui
+===================================================================
+--- kipi-plugins/printwizard/frmprintwizardbase.ui	(revision 460242)
++++ kipi-plugins/printwizard/frmprintwizardbase.ui	(revision 498544)
+@@ -1623,13 +1623,4 @@
+     <slot>EditCopies_valueChanged( int )</slot>
+ </slots>
+ <layoutdefaults spacing="6" margin="11"/>
+-<includehints>
+-    <includehint>kcombobox.h</includehint>
+-    <includehint>kurllabel.h</includehint>
+-    <includehint>klineedit.h</includehint>
+-    <includehint>kpushbutton.h</includehint>
+-    <includehint>klistbox.h</includehint>
+-    <includehint>kipiprintwizardplugin::cropframe.h</includehint>
+-    <includehint>kprogress.h</includehint>
+-</includehints>
+ </UI>
+Index: kipi-plugins/printwizard/tphoto.cpp
+===================================================================
+--- kipi-plugins/printwizard/tphoto.cpp	(revision 460242)
++++ kipi-plugins/printwizard/tphoto.cpp	(revision 498544)
+@@ -195,9 +195,7 @@
+     int w  = NINT((double)layout->width() * xRatio);
+     int h  = NINT((double)layout->height() * yRatio);
+ 
+-    // We can use scaleFree because the crop frame should have the proper dimensions.
+-    img = img.smoothScale(w, h, QImage::ScaleFree);
+-    p.drawImage(x1 + left, y1 + top, img);
++    p.drawImage( QRect(x1 + left, y1 + top, w, h), img );
+ 
+     if (captionType > 0)
+     {
+Index: kipi-plugins/sendimages/sendimages.cpp
+===================================================================
+--- kipi-plugins/sendimages/sendimages.cpp	(revision 460242)
++++ kipi-plugins/sendimages/sendimages.cpp	(revision 498544)
+@@ -344,12 +344,17 @@
+ 
+     // Sylpheed mail agent call.
+ 
+-    if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Sylpheed" )
++    if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Sylpheed" ||
++         m_sendImagesDialog->m_mailAgentName->currentText() == "Sylpheed-Claws" )
+     {
+         m_mailAgentProc = new KProcess;
+-        *m_mailAgentProc << "sylpheed" << "--compose";
+-        *m_mailAgentProc << "--attach";
++        if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Sylpheed")
++            *m_mailAgentProc << "sylpheed";
++        else
++            *m_mailAgentProc << "sylpheed-claws";
+ 
++        *m_mailAgentProc << "--compose" << "--attach";
++
+         for ( KURL::List::Iterator it = m_filesSendList.begin() ; it != m_filesSendList.end() ; ++it )
+             *m_mailAgentProc << QFile::encodeName((*it).path());
+ 
+Index: kipi-plugins/sendimages/sendimagesdialog.cpp
+===================================================================
+--- kipi-plugins/sendimages/sendimagesdialog.cpp	(revision 460242)
++++ kipi-plugins/sendimages/sendimagesdialog.cpp	(revision 498544)
+@@ -360,6 +360,7 @@
+     m_mailAgentName->insertItem( "Mozilla" );
+     m_mailAgentName->insertItem( "Netscape" );
+     m_mailAgentName->insertItem( "Sylpheed" );
++    m_mailAgentName->insertItem( "Sylpheed-Claws" );
+     m_mailAgentName->insertItem( "Thunderbird" );
+     m_mailAgentName->setCurrentText( "Kmail" );
+     QWhatsThis::add( m_mailAgentName, i18n("<p>Select here your preferred external mail agent program."
+@@ -371,6 +372,7 @@
+                                            "<b>Mozilla</b>: >= 1.4<p>"
+                                            "<b>Netscape</b>: >= 7.x<p>"
+                                            "<b>Sylpheed</b>: >= 0.9<p>"
++                                           "<b>Sylpheed-Claws</b>: >= 0.9<p>"
+                                            "<b>Thunderbird</b>: >= 0.4<p>") );
+ 
+     hlay10->addWidget( m_mailAgentLabel );
+Index: kipi-plugins/sendimages/kipiplugin_sendimages.desktop
+===================================================================
+--- kipi-plugins/sendimages/kipiplugin_sendimages.desktop	(revision 460242)
++++ kipi-plugins/sendimages/kipiplugin_sendimages.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=Kas ar skeudennoù
+ Name[cs]=Odeslání obrázku
+ Name[da]=Send billeder
++Name[el]=ΑποστολήΕικόνων
++Name[es]=Enviar imágenes
+ Name[et]=Piltide saatmine
+ Name[it]=InviaImmagini
+ Name[nl]=AfbeeldingenVerzenden
+@@ -13,6 +15,7 @@
+ Name[sr]=Шаљи слике
+ Name[sr at Latn]=Šalji slike
+ Name[sv]=Skicka bilder
++Name[tg]=ФиристоданиТасвирҳо
+ Name[tr]=ResimGönder
+ Name[xx]=xxSendImagesxx
+ Name[zh_CN]=发送图像
+@@ -20,8 +23,12 @@
+ Comment[cs]=KIPI modul odeslání obrázku
+ Comment[da]=KIPI-plugin: Send billeder med e-mail
+ Comment[de]=Ein KIPI-Modul zum Versenden von Bildern per E-Mail
++Comment[el]=Πρόσθετο του KIPI για αποστολή ηλεκτρονικού μηνύματος εικόνων
++Comment[es]=Extensión de KIPI para enviar imágenes por correo electrónico
+ Comment[et]=KIPI piltide e-postiga saatmise plugin
++Comment[fr]=Module externe KIPI pour envoyer des images par courrier électronique
+ Comment[it]=Plugin di invio immagini di KIPI
++Comment[ja]=KIPI 画像メール送信プラグイン
+ Comment[nl]=KIPI-plugin voor het verzenden van afbeeldingen via e-mail
+ Comment[pa]=KIPI ਈ-ਮੇਲ ਚਿੱਤਰ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Wysyłanie zdjęć e-mailem
+@@ -30,6 +37,7 @@
+ Comment[sr]=KIPI прикључак за слање слика е-поштом
+ Comment[sr at Latn]=KIPI priključak za slanje slika e-poštom
+ Comment[sv]=KIPI-insticksprogram: Skicka bilder med e-post
++Comment[tg]=Модули KIPI барои тасвирҳои почтаи электронӣ
+ Comment[tr]=KIPI Resim Gönderme Eklentisi
+ Comment[xx]=xxKIPI EMail Images Pluginxx
+ Comment[zh_CN]=KIPI 电邮图像插件
+Index: kipi-plugins/imagesgallery/plugin_imagesgallery.cpp
+===================================================================
+--- kipi-plugins/imagesgallery/plugin_imagesgallery.cpp	(revision 460242)
++++ kipi-plugins/imagesgallery/plugin_imagesgallery.cpp	(revision 498544)
+@@ -97,7 +97,7 @@
+        {
+        if ( m_gallery->removeTargetGalleryFolder() == true )
+           {
+-          if ( m_gallery->prepare() == true );
++          if ( m_gallery->prepare() == true )
+              m_gallery->run();
+           }
+        }
+@@ -212,7 +212,7 @@
+                                  
+                default: 
+                   {
+-                  kdWarning( 51000 ) << "Plugin_CDArchiving: Unknown 'Success' event: " << d->action << endl;
++                  kdWarning( 51000 ) << "Plugin_Imagesgallery: Unknown 'Success' event: " << d->action << endl;
+                   }
+                }
+ 
+Index: kipi-plugins/imagesgallery/kipiplugin_imagesgallery.desktop
+===================================================================
+--- kipi-plugins/imagesgallery/kipiplugin_imagesgallery.desktop	(revision 460242)
++++ kipi-plugins/imagesgallery/kipiplugin_imagesgallery.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=Garidell ar skeudennoù
+ Name[cs]=Galerie obrázků
+ Name[da]=Billedgalleri
++Name[el]=ΣυλλογήΕικόνων
++Name[es]=Galería de imágenes
+ Name[et]=Pildigalerii
+ Name[it]=GalleriaDelleImmagini
+ Name[nl]=Afbeeldingengalerij
+@@ -14,6 +16,7 @@
+ Name[sr]=Галерија слика
+ Name[sr at Latn]=Galerija slika
+ Name[sv]=Bildgalleri
++Name[tg]=НамоишгариТасвирҳо
+ Name[tr]=ResimGalerisi
+ Name[xx]=xxImagesGalleryxx
+ Name[zh_CN]=图库
+@@ -21,15 +24,21 @@
+ Comment[cs]=KIPI modul pro export galerie obrázků
+ Comment[da]=KIPI-plugin: Eksport af HTML-galleri
+ Comment[de]=Ein KIPI-Modul zum Exportieren einer Galerie
++Comment[el]=Πρόσθετο του KIPI για εξαγωγή HTML συλλογής
++Comment[es]=Extensión de KIPI para exportar galerías en HTML
+ Comment[et]=KIPI HTML-galerii ekspordiplugin
++Comment[fr]=Module externe KIPI pour créer une galerie web
+ Comment[it]=Plugin di esportazione HTML di gallerie di KIPI
++Comment[ja]=KIPI HTMLギャラリーエクスポートプラグイン
+ Comment[nl]=KIPI-plugin voor het exporteren naar HTML-afbeeldingsgalerijen
++Comment[pa]=KIPI HTML ਗੈਲਰੀ ਨਿਰਯਾਤ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Eksport do galerii HTML
+ Comment[pt]='Plugin' do KIPI de Exportação para Galeria em HTML
+ Comment[pt_BR]='Plugin' do KIPI de Exportação para Galeria em HTML
+ Comment[sr]=KIPI прикључак за извоз у HTML галерију
+ Comment[sr at Latn]=KIPI priključak za izvoz u HTML galeriju
+ Comment[sv]=KIPI-insticksprogram: Export av HTML-galleri
++Comment[tg]=Модули воридкунандаи намоишгари KIPI HTML
+ Comment[tr]=KIPI HTML Galeri Aktarma Eklentisi
+ Comment[xx]=xxKIPI HTML Gallery Export Pluginxx
+ Comment[zh_CN]=KIPI HTML 图库导出插件
+Index: kipi-plugins/imagesgallery/TODO
+===================================================================
+--- kipi-plugins/imagesgallery/TODO	(revision 0)
++++ kipi-plugins/imagesgallery/TODO	(revision 498544)
+@@ -0,0 +1,12 @@
++Revamp the plugin using external generator tools including CSS support and sub-album export. Any possible tools to use :
++
++- BINS   : http://bins.sautret.org/
++
++- LLGAL  : http://bgoglin.free.fr/llgal/
++
++- XMLGAL : http://web.mit.edu/pgbovine/www/software.htm#XMLGal
++
++- JIGL   : http://xome.net/projects/jigl/
++
++- PHOTON : http://muder.csie.org/photon/
++
+Index: kipi-plugins/imagesgallery/imagesgallery.cpp
+===================================================================
+--- kipi-plugins/imagesgallery/imagesgallery.cpp	(revision 460242)
++++ kipi-plugins/imagesgallery/imagesgallery.cpp	(revision 498544)
+@@ -278,7 +278,9 @@
+              KMessageBox::error(kapp->activeWindow(), i18n("Cannot remove folder '%1'.").arg(MainTPath));
+              return false;
+              }
+-          }
++          } 
++          else
++              return false;
+        }
+        
+     return true;
+@@ -877,11 +879,11 @@
+                    m_StreamMainPageAlbumPreview.append ( Temp2 );
+                    Temp2 = "height=\"" + Temp.setNum(m_imgHeight) + "\" alt=\"" + imgPath + "\" ";
+                    m_StreamMainPageAlbumPreview.append ( Temp2 );
+-                   Temp2 = "title=\"" + m_AlbumTitle + " [ " + Temp.setNum(numOfImages) + i18n(" images")
++                   Temp2 = "title=\"" + m_AlbumTitle + " [ " + i18n("1 image", "%n images", numOfImages)
+                            + " ]\"></a>\n";
+                    m_StreamMainPageAlbumPreview.append ( Temp2 );
+                    Temp2 = "<a href=\"" + m_AlbumTitle + "/" + "index.html" + "\">" + m_AlbumTitle + "</a>"
+-                           + " [ " + Temp.setNum(numOfImages) + i18n(" images") + " ]" + "<br>\n";
++                           + " [ " + i18n("1 image", "%n images", numOfImages) + " ]" + "<br>\n";
+                    m_StreamMainPageAlbumPreview.append ( Temp2 );
+                    }
+                 }
+Index: kipi-plugins/wallpaper/kipiplugin_wallpaper.desktop
+===================================================================
+--- kipi-plugins/wallpaper/kipiplugin_wallpaper.desktop	(revision 460242)
++++ kipi-plugins/wallpaper/kipiplugin_wallpaper.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=paper-moger
+ Name[cs]=Tapeta
+ Name[da]=Tapet
++Name[el]=Ταπετσαρία
++Name[es]=Fondo de escritorio
+ Name[et]=Taustapilt
+ Name[it]=Sfondo
+ Name[nl]=Bureaubladachtergrond
+@@ -14,6 +16,7 @@
+ Name[sr]=Позадина
+ Name[sr at Latn]=Pozadina
+ Name[sv]=Skrivbordsunderlägg
++Name[tg]=Сурати экран
+ Name[tr]=DuvarKağıdı
+ Name[xx]=xxWallPaperxx
+ Name[zh_CN]=壁纸
+@@ -21,15 +24,21 @@
+ Comment[cs]=KIPI modul nastavení tapety
+ Comment[da]=KIPI-plugin: Angiv tapet
+ Comment[de]=Ein KIPI-Modul zum Setzen des Hintergrundbildes
++Comment[el]=Πρόσθετο ορισμού ταπετσαρίας του KIPI
++Comment[es]=Extensión de KIPI para establecer el fondo del escritorio
+ Comment[et]=KIPI taustapildi seadmise plugin
++Comment[fr]=Module externe KIPI pour modifier le fond d'écran
+ Comment[it]=Plugin di impostazione dello sfondo di KIPI
++Comment[ja]=KIPI 壁紙設定プラグイン
+ Comment[nl]=KIPI-plugin voor het instellen van de bureaubladachtergrond
++Comment[pa]=KIPI ਕੰਧ-ਚਿੱਤਰ ਲਗਾਉਣ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Ustawianie tapety
+ Comment[pt]='Plugin' de Mudança do Papel de Parede do KIPI
+ Comment[pt_BR]='Plugin' de Mudança do Papel de Parede do KIPI
+ Comment[sr]=KIPI прикључак за постављање позадине
+ Comment[sr at Latn]=KIPI priključak za postavljanje pozadine
+ Comment[sv]=KIPI-insticksprogram: Ange skrivbordsunderlägg
++Comment[tg]=Модули KIPI барои тайини сурати экран
+ Comment[tr]=KIPI Duvar Kağıdı Yapma Eklentisi
+ Comment[xx]=xxKIPI Set Wall Paper Pluginxx
+ Comment[zh_CN]=KIPI 设定壁纸插件
+Index: kipi-plugins/mpegencoder/kipiplugin_mpegencoder.desktop
+===================================================================
+--- kipi-plugins/mpegencoder/kipiplugin_mpegencoder.desktop	(revision 460242)
++++ kipi-plugins/mpegencoder/kipiplugin_mpegencoder.desktop	(revision 498544)
+@@ -2,6 +2,8 @@
+ Encoding=UTF-8
+ Name=MPEGEncoder
+ Name[da]=MPEG-kodning
++Name[el]=MPEGΚωδικοποιητής
++Name[es]=Codificador MPEG
+ Name[et]=MPEG kodeerija
+ Name[it]=CodificaMPEG
+ Name[nl]=MPEG-diavoorstelling
+@@ -11,6 +13,7 @@
+ Name[sr]=MPEG кодер
+ Name[sr at Latn]=MPEG koder
+ Name[sv]=MPEG-kodning
++Name[tg]=РамзгузорииMPEG
+ Name[tr]=MPEGKodlayıcı
+ Name[xx]=xxMPEGEncoderxx
+ Name[zh_CN]=MPEG 编码器
+@@ -18,15 +21,20 @@
+ Comment[cs]=KIPI modul MPEG enkóderu 
+ Comment[da]=KIPI-plugin: MPEG-kodning
+ Comment[de]=Ein KIPI-Modul zum Erstellen eines MPEG-Films aus Bildern
++Comment[el]=Πρόσθετο του KIPI για κωδικοποίηση εικόνων MPEG
++Comment[es]=Extensión de KIPI para codificar imágenes MPEG
+ Comment[et]=KIPI piltide MPEG kodeerimise plugin
++Comment[fr]=Module externe KIPI pour créer une vidéo à partir d'une liste d'images
+ Comment[it]=Plugin di codifica MPEG delle immagini di KIPI
+ Comment[nl]=KIPI-plugin voor het maken van MPEG-diavoorstellingen
++Comment[pa]=KIPI ਚਿੱਤਰ MPEG ਇੰਕੋਡਰ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Koder MPEG
+ Comment[pt]='Plugin' do KIPI de Codificação de Imagens em MPEG
+ Comment[pt_BR]='Plugin' do KIPI de Codificação de Imagens em MPEG
+ Comment[sr]=KIPI прикључак за MPEG кодовање слика
+ Comment[sr at Latn]=KIPI priključak za MPEG kodovanje slika
+ Comment[sv]=KIPI-insticksprogram: MPEG-kodning
++Comment[tg]=Модули KIPI барои рамзгузории тасвирҳои MPEG
+ Comment[tr]=KIPI Resimler MPEG Kodlayıcı Eklentisi
+ Comment[xx]=xxKIPI Images MPEG Encoder Pluginxx
+ Comment[zh_CN]=KIPI 图像 MPEG 编码器插件
+Index: kipi-plugins/configure.in.in
+===================================================================
+--- kipi-plugins/configure.in.in	(revision 460242)
++++ kipi-plugins/configure.in.in	(revision 498544)
+@@ -16,7 +16,7 @@
+ if test -d $srcdir/libkipi; then
+     have_libkipi=yes
+     AC_MSG_CHECKING([for libkipi in our sources])
+-    LIBKIPI_CFLAGS='-I$(top_srcdir)/libkipi'
++    LIBKIPI_CFLAGS='-I$(top_builddir)/libkipi -I$(top_srcdir)/libkipi'
+     LIBKIPI_LIBS='$(top_builddir)/libkipi/libkipi/libkipi.la'
+     LIBKIPI_LIBS_DEP='$(LIBKIPI_LIBS)'
+     AC_MSG_RESULT([found])
+Index: kipi-plugins/findimages/kipiplugin_findimages.desktop
+===================================================================
+--- kipi-plugins/findimages/kipiplugin_findimages.desktop	(revision 460242)
++++ kipi-plugins/findimages/kipiplugin_findimages.desktop	(revision 498544)
+@@ -4,6 +4,8 @@
+ Name[br]=Klask skeudennoù
+ Name[cs]=Vyhledání obrázků
+ Name[da]=Søg billeder
++Name[el]=ΑναζήτησηΕικόνων
++Name[es]=Encontrar imágenes
+ Name[et]=Piltide otsimine
+ Name[it]=TrovaImmagini
+ Name[nl]=AfbeeldingenZoeken
+@@ -14,6 +16,7 @@
+ Name[sr]=Нађи слике
+ Name[sr at Latn]=Nađi slike
+ Name[sv]=Sök bilder
++Name[tg]=ҶустуҷӯиТасвирҳо
+ Name[tr]=ResimBul
+ Name[xx]=xxFindImagesxx
+ Name[zh_CN]=查找图像
+@@ -23,15 +26,20 @@
+ Comment[da]=KIPI-plugin: Søg billeder
+ Comment[de]=Ein KIPI-Modul zum Suchen von Bildern
+ Comment[el]=Πρόσθετο του KIPI για αναζήτηση εικόνων
++Comment[es]=Extensión de KIPI para encontrar imágenes
+ Comment[et]=KIPI piltide otsimise plugin
++Comment[fr]=Module externe KIPI pour rechercher des images semblables
+ Comment[it]=Plugin di KIPI per trovare immagini
++Comment[ja]=KIPI 画像検索プラグイン
+ Comment[nl]=KIPI-plugin voor het zoeken naar afbeeldingen
++Comment[pa]=ਚਿੱਤਰ ਖੋਜ ਲਈ KIPI ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Wyszukiwanie zdjęć
+ Comment[pt]='Plugin' do KIPI para Procurar Imagens
+ Comment[pt_BR]='Plugin' do KIPI para Procurar Imagens
+ Comment[sr]=KIPI прикључак за налажење слика
+ Comment[sr at Latn]=KIPI priključak za nalaženje slika
+ Comment[sv]=KIPI-insticksprogram för att söka bilder
++Comment[tg]=Модули KIPI барои ҷустуҷӯи тасвирҳо
+ Comment[tr]=Resim Bulmak İçin KIPI Eklentisi
+ Comment[xx]=xxKIPI Plugin for Finding Imagesxx
+ Comment[zh_CN]=KIPI 查找图像插件
+Index: kipi-plugins/kameraklient/kipiplugin_kameraklient.desktop
+===================================================================
+--- kipi-plugins/kameraklient/kipiplugin_kameraklient.desktop	(revision 460242)
++++ kipi-plugins/kameraklient/kipiplugin_kameraklient.desktop	(revision 498544)
+@@ -2,6 +2,7 @@
+ Name=KameraKlient
+ Name[cs]=Foto klient
+ Name[da]=Kameraklient
++Name[es]=Cliente de cámara
+ Name[et]=Kaameraklient
+ Name[pl]=Klient Kamera
+ Name[pt]=Cliente do Kamera
+@@ -9,6 +10,7 @@
+ Name[sr]=Клијент за камеру
+ Name[sr at Latn]=Klijent za kameru
+ Name[sv]=Kameraklient
++Name[tg]=Барномаи Камера
+ Name[tr]=Kameraİstemci
+ Name[xx]=xxKameraKlientxx
+ Name[zh_CN]=相机客户端
+@@ -16,15 +18,21 @@
+ Comment[cs]=KIPI modul rozhraní pro připojení fotoaparátu
+ Comment[da]=KIPI-plugin: Grænseflade til digitalkamera
+ Comment[de]=Ein KIPI-Modul zur Bereitstellung einer Kameraschnittstelle
++Comment[el]=Πρόσθετο του KIPI για σύνδεση ψηφιακής φωτογραφικής
++Comment[es]=Extensión de KIPI para interfaz de cámara digital
+ Comment[et]=KIPI digikaamera liidese plugin
++Comment[fr]=Module externe KIPI pour accéder à un appareil photo numérique
+ Comment[it]=Plugin di interfaccia alle fotocamere digitali di KIPI
++Comment[ja]=KIPI デジタルカメラインターフェイスプラグイン
+ Comment[nl]=KIPI-plugin voor de digitale camera-interface
++Comment[pa]=KIPI ਡਿਜ਼ੀਟਲ ਕੈਮਰਾ ਇੰਟਰਫੇਸ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Interfejs kamery cyfrowej
+ Comment[pt]='Plugin' do KIPI de Interface com Máquinas Digitais
+ Comment[pt_BR]='Plugin' do KIPI de Interface com Máquinas Digitais
+ Comment[sr]=KIPI прикључак интерфејса за дигитални фотоапарат
+ Comment[sr at Latn]=KIPI priključak interfejsa za digitalni fotoaparat
+ Comment[sv]=KIPI-insticksprogram: Gränssnitt till digitalkamera
++Comment[tg]=Модули интерфейси камераи рақамӣ
+ Comment[tr]=KIPI Dijital Kamera Arayüz Eklentisi
+ Comment[xx]=xxKIPI Digital Camera Interface Pluginxx
+ Comment[zh_CN]=KIPI 数码相机接口插件
+Index: kipi-plugins/kameraklient/Makefile.am
+===================================================================
+--- kipi-plugins/kameraklient/Makefile.am	(revision 460242)
++++ kipi-plugins/kameraklient/Makefile.am	(revision 498544)
+@@ -3,7 +3,6 @@
+ 
+ METASOURCES = AUTO
+ 
+-
+ kde_module_LTLIBRARIES = kipiplugin_kameraklient.la
+ kipiplugin_kameraklient_la_DEPENDENCIES = $(LIBKIPI_LIBS_DEP)
+ 
+@@ -14,12 +13,16 @@
+ kde_services_DATA = kipiplugin_kameraklient.desktop
+ 
+ kipiplugin_kameraklient_la_SOURCES = kameraklient.cpp camerafolderitem.cpp camerafolderview.cpp \
+-					cameraiconitem.cpp cameraiconview.cpp cameralist.cpp \
+-					cameraselection.cpp cameratype.cpp cameraui.cpp \
+-					dmessagebox.cpp gpcamera.cpp gpcontroller.cpp \
+-					gpeventfilter.cpp gpfileitemcontainer.cpp gpfileiteminfo.cpp \
+-					gpfileiteminfodlg.cpp gpiface.cpp gpmessages.cpp \
+-					gpstatus.cpp savefiledialog.cpp setupcamera.cpp \
+-					thumbitem.cpp thumbview.cpp
++				     cameraiconitem.cpp cameraiconview.cpp cameralist.cpp \
++				     cameraselection.cpp cameratype.cpp cameraui.cpp \
++				     dmessagebox.cpp gpcamera.cpp gpcontroller.cpp \
++				     gpeventfilter.cpp gpfileitemcontainer.cpp gpfileiteminfo.cpp \
++				     gpfileiteminfodlg.cpp gpiface.cpp gpmessages.cpp \
++				     gpstatus.cpp savefiledialog.cpp setupcamera.cpp \
++				     thumbitem.cpp thumbview.cpp
+ 
+ kipiplugin_kameraklientdir = $(kde_datadir)/kipiplugin_kameraklient
++
++# i18n translation messages
++messages: rc.cpp
++	$(XGETTEXT) *.cpp *.h -o $(podir)/kipiplugin_kameraklient.pot
+Index: kipi-plugins/Makefile.am
+===================================================================
+--- kipi-plugins/Makefile.am	(revision 460242)
++++ kipi-plugins/Makefile.am	(revision 498544)
+@@ -30,7 +30,7 @@
+ RAWCONVERTERDIR = rawconverter
+ endif
+ 
+-SUBDIRS = printwizard calendar mpegencoder cdarchiving imagesgallery \
++SUBDIRS = printwizard calendar mpegencoder cdarchiving imagesgallery simpleviewerexport\
+ 	sendimages batchprocessimages wallpaper findimages galleryexport flickrexport\
+ 	$(SLIDESHOWDIR) $(KAMERAKLIENTDIR) $(JPEGLOSSLESSDIR) \
+ 	$(TIMEADJUSTDIR) $(ACQUIREIMAGESDIR) $(RAWCONVERTERDIR)
+Index: kipi-plugins/calendar/calwizard.cpp
+===================================================================
+--- kipi-plugins/calendar/calwizard.cpp	(revision 460242)
++++ kipi-plugins/calendar/calwizard.cpp	(revision 498544)
+@@ -224,17 +224,28 @@
+                 printList.append(month);
+             }
+         }
+-
++        
+         if (!monthNumbers_.empty()) {
+             QString year = QString::number(cSettings_->getYear());
+-            wPrintLabel_->setText(i18n("Click Next to start Printing\n\n"
++            
++            QString extra;
++            if ((QDate::currentDate().month() >= 6 && 
++                 QDate::currentDate().year() == cSettings_->getYear()) ||
++                QDate::currentDate().year() > cSettings_->getYear())
++                extra = "<br><br><b>"+i18n("Please note that you are making a "
++                        "calendar for<br>the current year or a year in the "
++                        "past.")+"</b>";
++            
++            wPrintLabel_->setText(i18n("Click Next to start Printing<br><br>"
+                                        "Following months will be printed for year %1:").arg(year)
+-                                  + QString("\n")
+-                             + printList.join("\n"));
++                                  + QString("<br>")
++                             + printList.join("<br>") + extra);
++            wPrintLabel_->setTextFormat(Qt::RichText);
++                
+             setNextEnabled(wPrint_, true);
+         }
+         else {
+-            wPrintLabel_->setText(i18n("No valid images selected for months\n"
++            wPrintLabel_->setText(i18n("No valid images selected for months<br>"
+                                        "Click Back to select images"));
+             setNextEnabled(wPrint_, false);
+         }
+Index: kipi-plugins/calendar/kipiplugin_calendar.desktop
+===================================================================
+--- kipi-plugins/calendar/kipiplugin_calendar.desktop	(revision 460242)
++++ kipi-plugins/calendar/kipiplugin_calendar.desktop	(revision 498544)
+@@ -6,6 +6,7 @@
+ Name[cy]=Calendr
+ Name[da]=Kalender
+ Name[el]=Ημερολόγιο
++Name[es]=Calendario
+ Name[et]=Kalender
+ Name[ga]=Féilire
+ Name[it]=Calendario
+@@ -25,16 +26,21 @@
+ Comment[cs]=KIPI modul průvodce vytvořením kalendáře
+ Comment[da]=KIPI-plugin: Guide til at oprette kalender
+ Comment[de]=Ein KIPI-Modul zum Erstellen eines Kalenders
+-Comment[el]=Πρόσθετο δημιουργίας Ημερολογίου του KIPI
++Comment[el]=Πρόσθετο μάγου δημιουργίας ημερολογίου του KIPI
++Comment[es]=Extensión de KIPI para creación de calendarios
+ Comment[et]=KIPI kalendri loomise nõustaja plugin
++Comment[fr]=Module externe KIPI pour créer un calendrier
+ Comment[it]=Plugin assistente per la creazione di calendari di KIPI
++Comment[ja]=KIPI カレンダー作成プラグイン
+ Comment[nl]=KIPI-plugin voor het maken van een kalender
++Comment[pa]=KIPI ਕੈਲੰਡਰ ਬਣਾਉਣ ਸਹਾਇਕ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Asystent tworzenia kalendarzy
+ Comment[pt]='Plugin' do KIPI de Assistência na Criação de Calendários
+ Comment[pt_BR]='Plugin' do KIPI de Assistência na Criação de Calendários
+ Comment[sr]=KIPI прикључак чаробњака за прављење календара
+ Comment[sr at Latn]=KIPI priključak čarobnjaka za pravljenje kalendara
+ Comment[sv]=KIPI-insticksprogram: Guide för att skapa kalender
++Comment[tg]=Модули KIPI барои сохтани мавзӯъи календар
+ Comment[tr]=KIPI Takvim Oluşturma Sihirbazı Eklentisi
+ Comment[xx]=xxKIPI Calendar Creation Wizard Pluginxx
+ Comment[zh_CN]=KIPI 日历创建向导插件
+Index: kipi-plugins/helloworld/plugin_helloworld.h
+===================================================================
+--- kipi-plugins/helloworld/plugin_helloworld.h	(revision 460242)
++++ kipi-plugins/helloworld/plugin_helloworld.h	(revision 498544)
+@@ -51,7 +51,7 @@
+     void slotActivate();
+ 
+ private:
+-    KAction         *m_actionHelloWorld
++    KAction         *m_actionHelloWorld;
+     KIPI::Interface *m_interface;
+ };
+ 
+Index: kipi-plugins/helloworld/kipiplugin_helloworld.desktop
+===================================================================
+--- kipi-plugins/helloworld/kipiplugin_helloworld.desktop	(revision 460242)
++++ kipi-plugins/helloworld/kipiplugin_helloworld.desktop	(revision 498544)
+@@ -3,6 +3,8 @@
+ Name=HelloWorld
+ Name[cs]=Hello World
+ Name[da]=Hello world
++Name[el]=ΓειάΣουΚόσμε
++Name[es]=Hola mundo
+ Name[et]=Tere, maailm
+ Name[it]=CiaoMondo
+ Name[nl]=Hallo wereld
+@@ -12,6 +14,7 @@
+ Name[sr]=Здраво свете
+ Name[sr at Latn]=Zdravo svete
+ Name[sv]=Hello world
++Name[tg]=Салом Ҷаҳон
+ Name[tr]=MerhabaDünya
+ Name[xx]=xxHelloWorldxx
+ Name[zh_CN]=世界你好
+@@ -19,15 +22,20 @@
+ Comment[cs]=KIPI modul Hello World
+ Comment[da]=KIPI-plugin: Hello world
+ Comment[de]=KIPI Hallo-Welt-Modul
++Comment[el]=Πρόσθετο γεια σου κόσμε του KIPI
++Comment[es]=Extensión de KIPI «Hola mundo»
+ Comment[et]=KIPI plugin 'Tere, maailm'
++Comment[fr]=Module externe KIPI pour afficher Hello World
+ Comment[it]=Plugin ciao mondo di KIPI
+ Comment[nl]=KIPI-plugin voor "Hallo wereld"
++Comment[pa]=KIPI ਹੈਲੋ ਵਰਲਡ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Witaj świecie
+ Comment[pt]='Plugin' de Olá Mundo do KIPI
+ Comment[pt_BR]='Plugin' de Olá Mundo do KIPI
+ Comment[sr]=KIPI прикључак Здраво свете
+ Comment[sr at Latn]=KIPI priključak Zdravo svete
+ Comment[sv]=KIPI-insticksprogram: Hello world
++Comment[tg]=Модули Салом Ҷаҳони KIPI
+ Comment[tr]=KIPI Merhaba Dünya Eklentisi
+ Comment[xx]=xxKIPI Hello World Pluginxx
+ Comment[zh_CN]=KIPI 世界你好插件
+Index: kipi-plugins/flickrexport/kipiplugin_flickrexport.desktop
+===================================================================
+--- kipi-plugins/flickrexport/kipiplugin_flickrexport.desktop	(revision 460242)
++++ kipi-plugins/flickrexport/kipiplugin_flickrexport.desktop	(revision 498544)
+@@ -2,25 +2,40 @@
+ Encoding=UTF-8
+ Name=Flickr Exporter
+ Name[br]=Ezporzher Flickr 
++Name[cs]=Export do Flickru
++Name[el]=Εξαγωγέας Flickr
++Name[es]=Exportador Flickr
++Name[et]=Flickri eksport
+ Name[ga]=Easpórtálaí Flickr
+ Name[it]=Esportazione a Flickr
++Name[pa]=ਫਲਿਕਰ ਨਿਰਯਾਤਕ
+ Name[pl]=Eksporter Flickr
+ Name[pt]=Exportação para o Flickr
+ Name[pt_BR]=Exportação para o Flickr
+ Name[sr]=Flickr извозник
+ Name[sr at Latn]=Flickr izvoznik
+ Name[sv]=Export till Flickr
++Name[tg]=Воридкунандаи ларзиши акс
+ Name[xx]=xxFlickr Exporterxx
+ Comment=KIPI Remote Flickr Export Plugin
++Comment[cs]=KIPI modul exportu do Flickru
++Comment[da]=KIPI Eksternt Flickr eksport plugin
+ Comment[de]=Ein KIPI-Modul, um Bilder zu Flickr zu exportieren
++Comment[el]=Πρόσθετο απομακρυσμένης εξαγωγής Flickr του KIPI
++Comment[es]=Extensión de KIPI para exportación Flickr remota
++Comment[et]=KIPI Flickri ekspordiplugin
++Comment[fr]=Module externe KIPI pour exporter des images vers le site Flickr
+ Comment[it]=Plugin per l'esportazione remota a Flickr di KIPI
++Comment[ja]=KIPI Flickrエクスポートプラグイン
+ Comment[nl]=KIPI-plugin voor het exporteren naar Flickr-galerij
++Comment[pa]=KIPI ਰਿਮੋਟ ਫਲਿਕਰ ਨਿਰਯਾਤ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Eksport do zdalnego Flickr
+ Comment[pt]='Plugin' do KIPI de Exportação o Flickr Remoto
+ Comment[pt_BR]='Plugin' do KIPI de Exportação o Flickr Remoto
+ Comment[sr]=KIPI прикључак за извоз у удаљени Flickr
+ Comment[sr at Latn]=KIPI priključak za izvoz u udaljeni Flickr
+ Comment[sv]=KIPI-insticksprogram för fjärrexport till Flickr
++Comment[tg]=Модули воридкунандаи ларзиши акси дурдастаи KIPI
+ Comment[xx]=xxKIPI Remote Flickr Export Pluginxx
+ Type=Service
+ ServiceTypes=KIPI/Plugin
+Index: kipi-plugins/flickrexport/flickrwindow.cpp
+===================================================================
+--- kipi-plugins/flickrexport/flickrwindow.cpp	(revision 460242)
++++ kipi-plugins/flickrexport/flickrwindow.cpp	(revision 498544)
+@@ -70,8 +70,8 @@
+ namespace KIPIFlickrExportPlugin
+ {
+ 
+-FlickrWindow::FlickrWindow(KIPI::Interface* interface, QWidget *parent)
+-    : KDialogBase(parent, 0, true, i18n( "FlickrUploadr" ), Help|Close, Close, false)
++FlickrWindow::FlickrWindow(KIPI::Interface* interface,const QString &tmpFolder, QWidget *parent)
++    : KDialogBase(parent, 0, true, i18n( "FlickrUploadr" ), Help|Close, Close, false),m_tmp(tmpFolder)
+ {
+     m_interface   = interface;
+     m_uploadCount = 0;
+@@ -111,6 +111,7 @@
+     m_familyCheckBox          = m_widget->m_familyCheckBox;
+     m_friendsCheckBox         = m_widget->m_friendsCheckBox;
+     m_dimensionSpinBox = m_widget->m_dimensionSpinBox;
++    m_imageQualitySpinBox = m_widget->m_imageQualitySpinBox;
+     m_tagsLineEdit          = m_widget->m_tagsLineEdit;
+     //m_albumView->setRootIsDecorated( true );
+ 
+@@ -168,6 +169,7 @@
+         m_dimensionSpinBox->setEnabled(false);
+     }
+     m_dimensionSpinBox->setValue(config.readNumEntry("Maximum Width", 1600));
++    m_imageQualitySpinBox->setValue(config.readNumEntry("Image Quality", 85));
+     
+    m_authProgressDlg = new QProgressDialog( this, 0, true );
+    m_authProgressDlg->setAutoReset( true );
+@@ -196,6 +198,7 @@
+     config.writeEntry("token", m_token);
+     config.writeEntry("Resize", m_resizeCheckBox->isChecked());
+     config.writeEntry("Maximum Width",  m_dimensionSpinBox->value());
++    config.writeEntry("Image Quality",  m_imageQualitySpinBox->value());
+     delete m_progressDlg;
+     delete m_authProgressDlg;
+     delete m_talker;
+@@ -397,6 +400,7 @@
+ */
+ void FlickrWindow::slotAddPhotos()
+ {
++    kdDebug()<<"Slot Add Photos being called geting the list of url"<<endl;
+     KURL::List urls = KIPI::ImageDialog::getImageURLs( this, m_interface );
+     kdDebug()<<"Slot Add Photos being called geting the list of url"<<endl;
+     if (urls.isEmpty())
+@@ -441,7 +445,7 @@
+     bool res = m_talker->addPhoto( pathComments.first, //the file path
+                                    info,
+ 				   m_resizeCheckBox->isChecked(),
+-                                   m_dimensionSpinBox->value() );
++                                   m_dimensionSpinBox->value(),m_imageQualitySpinBox->value() );
+     if (!res)
+     {
+         slotAddPhotoFailed( "" );
+Index: kipi-plugins/flickrexport/flickrwindow.h
+===================================================================
+--- kipi-plugins/flickrexport/flickrwindow.h	(revision 460242)
++++ kipi-plugins/flickrexport/flickrwindow.h	(revision 498544)
+@@ -28,9 +28,6 @@
+ #include <libkipi/imagedialog.h>
+ 
+ 
+-
+-
+-
+ class QListView;
+ class QPushButton;
+ class QSpinBox;
+@@ -65,7 +62,7 @@
+ 
+ public:
+ 
+-    FlickrWindow(KIPI::Interface *interface, QWidget *parent);
++    FlickrWindow(KIPI::Interface *interface, const QString &tmpFolder,QWidget *parent);
+     ~FlickrWindow();
+ 
+ private:
+@@ -82,6 +79,7 @@
+     QCheckBox                *m_familyCheckBox;
+     QCheckBox                *m_friendsCheckBox;
+     QSpinBox                 *m_dimensionSpinBox;
++    QSpinBox                 *m_imageQualitySpinBox;
+     QLineEdit                *m_tagsLineEdit;
+     FlickrWidget	*m_widget;
+     FlickrTalker            *m_talker;
+@@ -89,6 +87,7 @@
+     QString                   m_token;
+     QString                   m_lastSelectedAlbum;
+     KIPI::Interface          *m_interface;
++	QString 				  m_tmp;
+     //KWallet::Wallet          *m_wallet;
+ 
+     QProgressDialog                      *m_progressDlg;
+Index: kipi-plugins/flickrexport/flickrtalker.cpp
+===================================================================
+--- kipi-plugins/flickrexport/flickrtalker.cpp	(revision 460242)
++++ kipi-plugins/flickrexport/flickrtalker.cpp	(revision 498544)
+@@ -41,6 +41,7 @@
+ 
+ #include <string>
+ #include "flickritem.h"
++#include "exifrestorer.h"
+ #include "mpform.h"
+ #include "flickrtalker.h"
+ #include "flickrwindow.h"
+@@ -250,7 +251,7 @@
+ 
+ 	bool FlickrTalker::addPhoto(  const QString& photoPath,
+ 			FPhotoInfo& info,
+-			bool  rescale, int maxDim )
++			bool  rescale, int maxDim, int imageQuality )
+ 	{
+ 		if (m_job)
+ 		{
+@@ -310,7 +311,24 @@
+ 			{
+ 				image = image.smoothScale(maxDim, maxDim, QImage::ScaleMin);
+ 				path = locateLocal("tmp", KURL(photoPath).filename());
+-				image.save(path, QImageIO::imageFormat(photoPath));
++				image.save(path, QImageIO::imageFormat(photoPath),imageQuality);
++				//if the image is JPEG:
++				//This resizing code comes mostly as it is from sendimageplugin
++				if (QString(QImageIO::imageFormat(photoPath)).upper() == "JPEG" ){
++					ExifRestorer exifHolder;
++					exifHolder.readFile(photoPath,ExifRestorer::ExifOnly);
++
++					if(exifHolder.hasExif())
++					{
++						ExifRestorer restorer;
++						restorer.readFile(path,ExifRestorer::EntireImage);
++						restorer.insertExifData(exifHolder.exifData());
++						restorer.writeFile(path);
++					}
++					else
++						kdWarning(51000)<<"(flickrExport::Image doesn't have exif data)"<<endl;
++				}	
++				
+ 				kdDebug() << "Resizing and saving to temp file: "<< path << endl;
+ 			}
+ 		}
+Index: kipi-plugins/flickrexport/flickrwidget.cpp
+===================================================================
+--- kipi-plugins/flickrexport/flickrwidget.cpp	(revision 460242)
++++ kipi-plugins/flickrexport/flickrwidget.cpp	(revision 498544)
+@@ -128,17 +128,24 @@
+     m_resizeCheckBox = new QCheckBox(optionsBox);
+     m_resizeCheckBox->setText(i18n("Resize photos before uploading"));
+   // m_resizeCheckBox->show();
+-   optionsBoxLayout->addMultiCellWidget(m_resizeCheckBox, 1,1,0,3,1 );
++   optionsBoxLayout->addMultiCellWidget(m_resizeCheckBox, 1,1,0,4,1 );
+ 
+     m_dimensionSpinBox  = new QSpinBox(0, 5000, 10, optionsBox);
+     m_dimensionSpinBox->setValue(600);
+     m_dimensionSpinBox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+     optionsBoxLayout->addWidget(m_dimensionSpinBox, 2,1 );
+ 
+-    QLabel* resizeLabel = new QLabel(i18n("Maximum dimension:"), optionsBox);
++	QLabel* resizeLabel = new QLabel(i18n("Maximum dimension:"), optionsBox);
+     optionsBoxLayout->addWidget(resizeLabel, 2, 0);
++    
++	m_imageQualitySpinBox  = new QSpinBox(0, 100, 1, optionsBox);
++    m_imageQualitySpinBox->setValue(85);
++    m_imageQualitySpinBox->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
++    optionsBoxLayout->addWidget(m_imageQualitySpinBox, 3,1 );
++    
++	QLabel* imageQualityLabel = new QLabel(i18n("Image Quality (higher is better):"), optionsBox);//The term Compression factor may be to technical to write in the label
++    optionsBoxLayout->addWidget(imageQualityLabel, 3, 0);
+ 
+-
+     m_resizeCheckBox->setChecked(false);
+     m_dimensionSpinBox->setEnabled(false);
+     connect(m_resizeCheckBox, SIGNAL(clicked()), SLOT(slotResizeChecked()));
+Index: kipi-plugins/flickrexport/jpegsection.h
+===================================================================
+--- kipi-plugins/flickrexport/jpegsection.h	(revision 0)
++++ kipi-plugins/flickrexport/jpegsection.h	(revision 498544)
+@@ -0,0 +1,51 @@
++/* ============================================================
++ * File  : jpegsection.h
++ * Author: Renchi Raju <renchi at pooh.tam.uiuc.edu>
++ *         from digiKam project.
++ * Date  : 2003-02-23
++ * Description : 
++ * 
++ * Copyright 2004 by Renchi Raju
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * ============================================================ */
++ 
++#ifndef JPEGSECTION_H
++#define JPEGSECTION_H
++
++class JpegSection {
++
++    friend class ExifRestorer;
++
++public:
++
++    JpegSection() {
++        data = 0;
++        size = 0;
++    }
++
++    ~JpegSection() {
++        if (data)
++            delete [] data;
++    }
++
++private:
++
++    unsigned char* data;
++    unsigned int   size;
++    unsigned char  type;
++
++};
++
++
++#endif  // JPEGSECTION_H
+
+Property changes on: kipi-plugins/flickrexport/jpegsection.h
+___________________________________________________________________
+Name: svn:executable
+   + *
+
+Index: kipi-plugins/flickrexport/exifrestorer.cpp
+===================================================================
+--- kipi-plugins/flickrexport/exifrestorer.cpp	(revision 0)
++++ kipi-plugins/flickrexport/exifrestorer.cpp	(revision 498544)
+@@ -0,0 +1,301 @@
++/* ============================================================
++ * File  : exifrestorer.cpp
++ * Author: Renchi Raju <renchi at pooh.tam.uiuc.edu>
++ *         from digiKam project. 
++ * Date  : 2003-02-23
++ * Description : 
++ * 
++ * Copyright 2004 by Renchi Raju
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * ============================================================ */
++
++// C Ansi includes.
++
++extern "C" 
++{
++#include <string.h>
++}
++ 
++// C++ includes.
++ 
++#include <fstream>
++  
++// Qt includes.
++
++#include <qstring.h>
++#include <qfile.h>
++
++// KDE includes.
++
++#include <kdebug.h>
++
++// Local includes.
++
++#include "exifrestorer.h"
++
++using namespace std;
++
++ExifRestorer::ExifRestorer()
++{
++    jpegSections_.setAutoDelete(true);
++    imageData_ = 0;
++    exifData_ = 0;
++    hasExif_ = false;
++}
++
++ExifRestorer::~ExifRestorer()
++{
++    clear();
++}
++
++void ExifRestorer::clear()
++{
++    jpegSections_.clear();
++    if (exifData_)
++        delete exifData_;
++    exifData_ = 0;
++    if (imageData_)
++        delete imageData_;
++    imageData_ = 0;
++    hasExif_ = false;
++}
++
++
++int ExifRestorer::readFile(const QString& filename, ReadMode mode)
++{
++    clear();
++
++    std::ifstream filestream;
++
++    filestream.open(QFile::encodeName(filename), ios::binary | ios::in);
++    if (!filestream.good()) {
++        kdWarning() << "Failed to Open file" << endl;
++        return -1;
++    }
++
++    unsigned char header[2];
++    filestream.read((char*)header, 2);
++    if (filestream.gcount() != 2) {
++        kdWarning() << "Failed to read header" << endl;
++        return -1;
++    }
++
++    unsigned char marker;
++
++    if ((header[0] == 0xFF) && (header[1] == M_SOI)) {
++
++        // Smells like a jpeg file
++
++        bool found_SOSorEOI = false;
++
++        while (!filestream.eof()) {
++
++            // Padding bytes between sections
++            for (int i=0; i<7; i++){
++                filestream.read((char*)&marker, 1);
++                if (marker != 0xFF) break;
++                if (i >= 6){
++                    // 0xff is legal padding, but if we get
++                    // that many times, something's wrong.
++                    kdWarning() << "Too many padding bytes" << endl;
++                    return -1;
++                }
++            }
++
++            JpegSection *section = new JpegSection;
++
++            // read data size
++            unsigned char lh, ll;
++            filestream.read((char*)&lh, 1);
++            filestream.read((char*)&ll, 1);
++            section->size = (lh << 8) | ll;
++            if (section->size < 2) {
++                kdWarning() << "Invalid Marker found" << endl;
++                return -1;
++            }
++
++            section->data = new unsigned char[section->size];
++            section->data[0] =  lh;
++            section->data[1] =  ll;
++            filestream.read((char*)&(section->data[2]), section->size-2);
++            if ((section->size-2) != (unsigned int)filestream.gcount()) {
++                kdWarning() << "Premature File End" << endl;
++                return -1;
++            }
++
++            section->type = marker;
++            jpegSections_.append(section);
++
++            //cout << (dec) << section->size << " ";
++            //cout << (hex) << int(section->type) << endl;
++
++            switch (marker) {
++
++            case M_SOS: {
++
++                int currPos, endPos;
++                found_SOSorEOI=true;
++
++                if (mode == EntireImage) {
++
++                    currPos = filestream.tellg();
++                    filestream.seekg(0,ios::end);
++                    endPos = filestream.tellg();
++                    filestream.seekg(currPos);
++
++                    imageData_ = new JpegSection;
++                    imageData_->size = endPos - currPos;
++                    imageData_->data =
++                        new unsigned char[imageData_->size];
++
++                    filestream.read((char*)imageData_->data,
++                                    imageData_->size);
++                    imageData_->type = marker;
++                }
++
++                break;
++            }
++
++            case M_EOI: {
++
++                found_SOSorEOI=true;
++                break;
++            }
++
++            case M_COM: {
++
++                break;
++            }
++
++            case M_JFIF: {
++
++                break;
++            }
++
++            case M_EXIF: {
++                if (section->data[2] == 'E' &&
++                    section->data[3] == 'x'  &&
++                    section->data[4] == 'i' &&
++                    section->data[5] == 'f') {
++                    hasExif_ = true;
++                    exifData_ = new JpegSection;
++                    exifData_->size = section->size;
++                    exifData_->type = section->type;
++                    exifData_->data =
++                        new unsigned char[section->size];
++                    memcpy(exifData_->data, section->data,
++                           section->size);
++                }
++                break;
++            }
++
++            default: {
++                break;
++            }
++
++            }
++
++            if (found_SOSorEOI) {
++                if (mode == ExifOnly)
++                    jpegSections_.clear();
++                return 0;
++            }
++
++        }
++
++        kdWarning() << "End of file without SOS or EOI" << endl;
++        return -1;
++
++    }
++
++    kdWarning() << "Not a jpeg file" << endl;
++    return -1;
++
++}
++
++int ExifRestorer::writeFile(const QString& filename)
++{
++    std::ofstream outStream (QFile::encodeName(filename), ios::binary | ios::out);
++
++    if (!outStream) {
++        kdWarning() << "Error in opening output file" << endl;
++        return -1;
++    }
++
++    outStream.put(0xff);
++    outStream.put(0xd8);
++
++    for (unsigned int i=0; i<jpegSections_.count(); i++) {
++        outStream.put(0xff);
++        outStream.put(jpegSections_.at(i)->type);
++        if (!outStream.write((char*)jpegSections_.at(i)->data,
++                             jpegSections_.at(i)->size))
++            return -1;
++    }
++
++    if (!outStream.write((char*)imageData_->data, imageData_->size)) {
++        kdWarning() << "Error in writing to file" << endl;
++        return -1;
++    }
++
++    outStream.close();
++
++    return 0;
++}
++
++void ExifRestorer::insertExifData(JpegSection *exifSection)
++{
++    QPtrList<JpegSection> newSections;
++    newSections.setAutoDelete(false);
++
++    // Check if the first section of jpegSections is a JFIF
++    // If so, add this to newSections
++    if (jpegSections_.at(0)->type == M_JFIF) {
++        newSections.append(jpegSections_.at(0));
++    }
++
++
++    // Now add the new exif section
++    JpegSection* newExifSection = new JpegSection;
++    newExifSection->type = exifSection->type;
++    newExifSection->size = exifSection->size;
++    newExifSection->data = new unsigned char[exifSection->size];
++    memcpy(newExifSection->data, exifSection->data,
++           exifSection->size);
++
++    newSections.append(newExifSection);
++
++    // Check if image already has exif section. if so replace it
++    for (JpegSection* section = jpegSections_.first(); section;
++         section = jpegSections_.next()) {
++        if (section->type == M_EXIF) {
++            jpegSections_.remove(section);
++        }
++    }
++
++
++    // Add the rest of the sections;
++    for (unsigned int i=1; i<jpegSections_.count(); i++) {
++        newSections.append(jpegSections_.at(i));
++    }
++
++    jpegSections_.setAutoDelete(false);
++    jpegSections_.clear();
++
++    for (unsigned int i=0; i<newSections.count(); i++) {
++        jpegSections_.append(newSections.at(i));
++    }
++
++    jpegSections_.setAutoDelete(true);
++}
+
+Property changes on: kipi-plugins/flickrexport/exifrestorer.cpp
+___________________________________________________________________
+Name: svn:executable
+   + *
+
+Index: kipi-plugins/flickrexport/flickrtalker.h
+===================================================================
+--- kipi-plugins/flickrexport/flickrtalker.h	(revision 460242)
++++ kipi-plugins/flickrexport/flickrtalker.h	(revision 498544)
+@@ -71,7 +71,7 @@
+                       const QString& albumCaption );
+     bool addPhoto( const QString& photoPath,
+                    FPhotoInfo& info,
+-			bool rescale=false, int maxDim=600 );
++			bool rescale=false, int maxDim=600 , int imageQuality=85 );
+ 
+     void cancel();
+     
+Index: kipi-plugins/flickrexport/flickrwidget.h
+===================================================================
+--- kipi-plugins/flickrexport/flickrwidget.h	(revision 460242)
++++ kipi-plugins/flickrexport/flickrwidget.h	(revision 498544)
+@@ -55,6 +55,7 @@
+     QCheckBox*    m_friendsCheckBox;
+     QCheckBox*    m_publicCheckBox;
+     QSpinBox*     m_dimensionSpinBox;
++    QSpinBox*     m_imageQualitySpinBox;
+     QLineEdit*    m_tagsLineEdit;
+     friend class FlickrWindow;
+ };
+Index: kipi-plugins/flickrexport/TODO
+===================================================================
+--- kipi-plugins/flickrexport/TODO	(revision 0)
++++ kipi-plugins/flickrexport/TODO	(revision 498544)
+@@ -0,0 +1,5 @@
++Could add these things to the plugin.
++	Support for viewing your photos stored at server.
++	Querying Space Limit from the server.
++	Allow fetching feature of images just uploaded, like url etc.
++
+Index: kipi-plugins/flickrexport/exifrestorer.h
+===================================================================
+--- kipi-plugins/flickrexport/exifrestorer.h	(revision 0)
++++ kipi-plugins/flickrexport/exifrestorer.h	(revision 498544)
+@@ -0,0 +1,94 @@
++/* ============================================================
++ * File  : exifrestorer.h
++ * Author: Renchi Raju <renchi at pooh.tam.uiuc.edu>
++ *         from digiKam project. 
++ * Date  : 2003-02-23
++ * Description : 
++ * 
++ * Copyright 2004 by Renchi Raju
++ *
++ * This program is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU General
++ * Public License as published by the Free Software Foundation;
++ * either version 2, or (at your option)
++ * any later version.
++ * 
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ * 
++ * ============================================================ */
++
++#ifndef EXIFRESTORER_H
++#define EXIFRESTORER_H
++
++// Qt includes.
++
++#include <qptrlist.h>
++#include <qstring.h>
++
++// Local includes.
++
++#include "jpegsection.h"
++
++//-- Jpeg Image Maker Types -----------------------------------------
++
++#define M_SOF0  0xC0       // Start Of Frame N
++#define M_SOF1  0xC1       // N indicates which compression process
++#define M_SOF2  0xC2       // Only SOF0-SOF2 are now in common use
++#define M_SOF3  0xC3
++#define M_SOF5  0xC5       // NB: codes C4 and CC are NOT SOF markers
++#define M_SOF6  0xC6
++#define M_SOF7  0xC7
++#define M_SOF9  0xC9
++#define M_SOF10 0xCA
++#define M_SOF11 0xCB
++#define M_SOF13 0xCD
++#define M_SOF14 0xCE
++#define M_SOF15 0xCF
++#define M_SOI   0xD8       // Start Of Image (beginning of datastream)
++#define M_EOI   0xD9       // End Of Image (end of datastream)
++#define M_SOS   0xDA       // Start Of Scan (begins compressed data)
++#define M_JFIF  0xE0       // Jfif marker
++#define M_EXIF  0xE1       // Exif marker
++#define M_COM   0xFE       // COMment
++
++//------------------------------------------------------------------
++
++
++class ExifRestorer {
++
++public:
++
++    enum ReadMode {
++        ExifOnly=0,
++        EntireImage
++    };
++
++    ExifRestorer();
++    ~ExifRestorer();
++
++    void clear();
++    int  readFile(const QString& filename, ReadMode mode);
++    int  writeFile(const QString& filename);
++    void insertExifData(JpegSection *exifData);
++
++    bool hasExif () {
++        return hasExif_;
++    }
++
++    JpegSection* exifData() {
++        return exifData_;
++    }
++
++private:
++
++    QPtrList<JpegSection> jpegSections_;
++    JpegSection *exifData_;
++    JpegSection *imageData_;
++    bool        hasExif_;
++
++};
++
++#endif  // EXIFRESTORER_H
+
+Property changes on: kipi-plugins/flickrexport/exifrestorer.h
+___________________________________________________________________
+Name: svn:executable
+   + *
+
+Index: kipi-plugins/flickrexport/Makefile.am
+===================================================================
+--- kipi-plugins/flickrexport/Makefile.am	(revision 460242)
++++ kipi-plugins/flickrexport/Makefile.am	(revision 498544)
+@@ -9,7 +9,7 @@
+ kipiplugin_flickrexport_la_SOURCES = plugin_flickrexport.cpp \
+ 		flickrwindow.cpp login.cpp flickrtalker.cpp \
+ 		flickrwidget.cpp mpform.cpp flickralbumdialog.ui \
+-		flickrviewitem.cpp 
++		flickrviewitem.cpp	exifrestorer.cpp 
+ 
+ kipiplugin_flickrexport_la_LIBADD = $(LIB_KPARTS) $(LIBKIPI_LIBS) \
+ 				$(LIB_KHTML)
+Index: kipi-plugins/flickrexport/plugin_flickrexport.cpp
+===================================================================
+--- kipi-plugins/flickrexport/plugin_flickrexport.cpp	(revision 460242)
++++ kipi-plugins/flickrexport/plugin_flickrexport.cpp	(revision 498544)
+@@ -18,7 +18,11 @@
+  * GNU General Public License for more details.
+  *
+  * ============================================================ */
+-
++extern "C"
++{
++	#include<unistd.h>
++}
++	
+ // KDE includes.
+ #include <klocale.h>
+ #include <kaction.h>
+@@ -27,7 +31,7 @@
+ #include <kconfig.h>
+ #include <kdebug.h>
+ #include <kapplication.h>
+-
++#include <kstandarddirs.h>
+ // libkipi includes.
+ #include <libkipi/interface.h>
+ 
+@@ -89,8 +93,10 @@
+         kdError( 51000 ) << "Kipi interface is null!" << endl;
+         return;
+     }
+-
+-    KIPIFlickrExportPlugin::FlickrWindow dlg(interface, kapp->activeWindow());
++	KStandardDirs dir;
++	QString Tmp = dir.saveLocation("tmp", "kipi-flickrexportplugin-" + QString::number(getpid()) + "/");
++		
++    KIPIFlickrExportPlugin::FlickrWindow dlg(interface,Tmp,kapp->activeWindow());
+     dlg.exec();
+ }
+ 
+Index: kipi-plugins/jpeglossless/kipiplugin_jpeglossless.desktop
+===================================================================
+--- kipi-plugins/jpeglossless/kipiplugin_jpeglossless.desktop	(revision 460242)
++++ kipi-plugins/jpeglossless/kipiplugin_jpeglossless.desktop	(revision 498544)
+@@ -3,6 +3,8 @@
+ Name=JPEGLossless
+ Name[cs]=Bezztrátový JPEG
+ Name[da]=Tabsfri JPEG
++Name[el]=JPEGΜηΑπωλεστικό
++Name[es]=JPEG sin pérdida de calidad
+ Name[it]=JPEGSenzaPerdita
+ Name[nl]=JPEG-lossless
+ Name[pl]=Bezstratny JPEG
+@@ -11,6 +13,7 @@
+ Name[sr]=JPEG без губитака
+ Name[sr at Latn]=JPEG bez gubitaka
+ Name[sv]=Förlustfri JPEG
++Name[tg]=JPEGБебохтан
+ Name[tr]=KayıpsızJPEG
+ Name[xx]=xxJPEGLosslessxx
+ Name[zh_CN]=JPEG 无损
+@@ -18,15 +21,20 @@
+ Comment[cs]=KIPI modul bezztrátového JPEGu
+ Comment[da]=KIPI-plugin: Tabsfri JPEG
+ Comment[de]=Ein KIPI-Modul zur verlustfreien Bearbeitung von JPEG-Bildern
++Comment[el]=Πρόσθετο του KIPI για μη απωλεστικές JPEG
++Comment[es]=Extensión de KIPI para JPEG sin pérdida de calidad
+ Comment[et]=KIPI JPEG Lossless plugin
++Comment[fr]=Module externe KIPI pour effectuer des opérations JPEG sans pertes
+ Comment[it]=Plugin JPEG senza perdita di KIPI
+ Comment[nl]=KIPI-plugin voor verliesloos JPEG
++Comment[pa]=KIPI JPEG ਲੂਜਲੈੱਸ ਪਲੱਗਿੰਨ
+ Comment[pl]=Wtyczka KIPI - Bezstratna kompresja JPEG
+ Comment[pt]='Plugin' de JPEG sem Perdas do KIPI
+ Comment[pt_BR]='Plugin' de JPEG sem Perdas do KIPI
+ Comment[sr]=KIPI прикључак за JPEG компресију без губитака
+ Comment[sr at Latn]=KIPI priključak za JPEG kompresiju bez gubitaka
+ Comment[sv]=KIPI-insticksprogram: Förlustfri JPEG
++Comment[tg]=Модули Бебохтани KIPI JPEG
+ Comment[tr]=KIPI Kayıpsız JPEG Eklentisi
+ Comment[xx]=xxKIPI JPEG Lossless Pluginxx
+ Comment[zh_CN]=KIPI JPEG 无损插件
+Index: kipi-plugins/jpeglossless/plugin_jpeglossless.cpp
+===================================================================
+--- kipi-plugins/jpeglossless/plugin_jpeglossless.cpp	(revision 460242)
++++ kipi-plugins/jpeglossless/plugin_jpeglossless.cpp	(revision 498544)
+@@ -55,7 +55,7 @@
+ typedef KGenericFactory<Plugin_JPEGLossless> Factory;
+ 
+ K_EXPORT_COMPONENT_FACTORY( kipiplugin_jpeglossless,
+-                            Factory("kipiplugin_jpeglossless"));
++                            Factory("kipiplugin_jpeglossless"))
+ 
+ 
+ /////////////////////////////////////////////////////////////////////////////////////////////////////




More information about the pkg-kde-commits mailing list