From 47d455dd55be855e4cc691c32f687f723d9247ee Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegraphics@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kooka/img_saver.h | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 kooka/img_saver.h (limited to 'kooka/img_saver.h') diff --git a/kooka/img_saver.h b/kooka/img_saver.h new file mode 100644 index 00000000..f9a29898 --- /dev/null +++ b/kooka/img_saver.h @@ -0,0 +1,208 @@ +/*************************************************************************** + img_saver.h - description + ------------------- + begin : Mon Dec 27 1999 + copyright : (C) 1999 by Klaas Freitag + email : freitag@suse.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This file may be distributed and/or modified under the terms of the * + * GNU General Public License version 2 as published by the Free Software * + * Foundation and appearing in the file COPYING included in the * + * packaging of this file. * + * + * As a special exception, permission is given to link this program * + * with any version of the KADMOS ocr/icr engine of reRecognition GmbH, * + * Kreuzlingen and distribute the resulting executable without * + * including the source code for KADMOS in the source distribution. * + * + * As a special exception, permission is given to link this program * + * with any edition of Qt, and distribute the resulting executable, * + * without including the source code for Qt in the source distribution. * + * * + ***************************************************************************/ + +#ifndef __IMG_SAVER_H__ +#define __IMG_SAVER_H__ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define OP_FILE_ASK_FORMAT "AskForSaveFormat" +#define OP_ASK_FILENAME "AskForFilename" +#define OP_FORMAT_HICOLOR "HiColorSaveFormat" +#define OP_FORMAT_COLOR "ColorSaveFormat" +#define OP_FORMAT_GRAY "GraySaveFormat" +#define OP_FORMAT_BW "BWSaveFormat" +#define OP_FORMAT_THUMBNAIL "ThumbnailFormat" +#define OP_PREVIEW_GROUP "ScanPreview" +#define OP_PREVIEW_FILE "PreviewFile" +#define OP_PREVIEW_FORMAT "PreviewFormat" +#define OP_FILE_GROUP "Files" + + +/** + * enum ImgSaveStat: + * Errorflags for the save. These enums are returned by the + * all image save operations and the calling object my display + * a human readable Error-Message on this information + **/ +typedef enum { + ISS_OK, /* Image save OK */ + ISS_ERR_PERM, /* permission Error */ + ISS_ERR_FILENAME, /* bad filename */ + ISS_ERR_NO_SPACE, /* no space on device */ + ISS_ERR_FORMAT_NO_WRITE, /* Image format can not be written */ + ISS_ERR_UNKNOWN, + ISS_ERR_PARAM, /* Parameter wrong */ + ISS_ERR_PROTOCOL, + ISS_SAVE_CANCELED + +} ImgSaveStat; + +/** + * enum picType: + * Specifies the type of the image to save. This is important for + * getting the format. + **/ +typedef enum { + PT_PREVIEW, + PT_THUMBNAIL, + PT_HICOLOR_IMAGE, + PT_COLOR_IMAGE, + PT_GRAY_IMAGE, + PT_BW_IMAGE, + PT_FINISHED +} picType; + + +class KookaImage; +/** + * Class FormatDialog: + * Asks the user for the image-Format and gives help for + * selecting it. + **/ + +class FormatDialog:public KDialogBase +{ + Q_OBJECT +public: + FormatDialog( QWidget *parent, const QString&, const char * ); + + + QString getFormat( ) const; + QCString getSubFormat( ) const; + QString errorString( ImgSaveStat stat ); + + bool askForFormat( ) const + { return( ! cbDontAsk->isChecked()); } + +public slots: + void setSelectedFormat( QString ); + + +protected slots: + void showHelp( const QString& item ); + +private: + + void check_subformat( const QString & format ); + void buildHelp( void ); + void readConfig( void ); + + QMap format_help; + QComboBox *cb_subf; + QListBox *lb_format; + QLabel *l_help; + QLabel *l2; + QCheckBox *cbRemember; + QCheckBox *cbDontAsk; +}; + +/** + * Class ImgSaver: + * The main class of this module. It manages all saving of images + * in kooka + * It asks the user for the img-format if desired, creates thumbnails + * and cares for database entries (later ;) + **/ + +class ImgSaver:public QObject { + Q_OBJECT +public: + /** + * constructor of the image-saver object. + * name is the name of a subdirectory of the save directory, + * which can be given in dir. If no dir is given, an + * dir ~/.ksane is created. + * @param dir Name of the save root directory + * @param name Name of a subdirectory in the saveroot. + **/ + ImgSaver( QWidget *parent, const KURL ); + ImgSaver( QWidget *parent ); + + QString errorString( ImgSaveStat ); + /** + * returns the name of the last file that was saved by ImgSaver. + */ + QString lastFilename() const { return( last_file ); } + KURL lastFileUrl() const { return( KURL(last_file )); } + /** + * returns the image format of the last saved image. + */ + QCString lastSaveFormat( void ) const { return( last_format ); } + + QString getFormatForType( picType ) const; + void storeFormatForType( picType, QString, bool ); + bool isRememberedFormat( picType type, QString format ) const; + + /* static function that exports a file */ + static bool copyImage( const KURL& fromUrl, const KURL& toUrl, QWidget *overWidget=0 ); + static bool renameImage( const KURL& fromUrl, KURL& toUrl, bool askExt=false, QWidget *overWidget=0 ); + static QString tempSaveImage( KookaImage *img, const QString& format, int colors = -1 ); + + /* static function that returns the extension of an url */ + static QString extension( const KURL& ); + +public slots: + ImgSaveStat saveImage( QImage *image ); + ImgSaveStat saveImage( QImage *image, const KURL& filename, const QString& imgFormat ); + +private: + QString picTypeAsString( picType type ) const; + QString findFormat( picType type ); + QString findSubFormat( QString format ); + void createDir( const QString& ); + + ImgSaveStat save( QImage *image, const QString &filename, const QString &format, + const QString &subformat ); + QString createFilename( QString format ); + void readConfig( void ); + QString startFormatDialog( picType ); + + // QStrList all_formats; + QString directory; // dir where the image should be saved + QString last_file; + QCString subformat; + QCString last_format; + bool ask_for_format; + + // QDict formats; +}; + +#endif -- cgit v1.2.1