[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