You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kipi-plugins/kipi-plugins/simpleviewerexport/simpleviewerexport.h

177 lines
4.2 KiB

/* ============================================================
*
* This file is a part of kipi-plugins project
* http://www.kipi-plugins.org
*
* Date : 2005-12-19
* Description : a plugin to export image collections using SimpleViewer.
*
* Copyright (C) 2005-2006 by Joern Ahrens <joern dot ahrens at kdemail dot net>
* Copyright (C) 2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
*
* 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 <tqobject.h>
#include <tqdom.h>
// KIPI includes
#include <libkipi/interface.h>
class TQTimer;
class TQString;
class TQImage;
class KZip;
class KURL;
class KArchiveEntry;
class KTempDir;
namespace KIPI
{
class BatchProgressDialog;
}
namespace KIPISimpleViewerExportPlugin
{
class SVEDialog;
class FirstRunDlg;
class SimpleViewerExport : public TQObject
{
TQ_OBJECT
public:
static void run( KIPI::Interface* interface, TQObject *parent=0 );
private:
SimpleViewerExport( KIPI::Interface* interface, TQObject *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 TQImage &image, TQImage &thumbnail);
/**
* Resizes the image for the gallery
*
* @param image the original images
* @param thumbnail the created thumbnail
*
* @return true=ok
*/
bool resizeImage(const TQImage &image, int maxSize, TQImage &resized);
/**
* Adds an image to the simpleviewer config file
*
* @param xmlDoc main XML document
* @param galleryElem gallery XML element
* @param url path to original image
* @param newName new image file name used by gallery
*/
void cfgAddImage(TQDomDocument &xmlDoc, TQDomElement &galleryElem,
const KURL &url, const TQString& newName);
/**
* 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 upload();
bool unzip(const TQString &url);
bool openArchive(KZip &zip);
bool extractArchive(KZip &zip);
bool extractFile(const KArchiveEntry *entry);
public slots:
void slotProcess();
void slotCancel();
private:
int m_totalActions;
int m_action;
bool m_canceled;
TQTimer *m_timer;
TQString m_dataLocal;
TQStringList m_simpleViewerFiles;
TQString m_hostName;
TQString m_hostURL;
KTempDir *m_tempDir;
SVEDialog *m_configDlg;
KIPI::Interface *m_interface;
KIPI::BatchProgressDialog *m_progressDlg;
TQValueList<KIPI::ImageCollection> m_albumsList;
};
} // namespace KIPISimpleViewerExportPlugin
#endif /* SIMPLEVIEWEREXPORT_H */