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.
tdegraphics/libkscan/kscanoptset.h

114 lines
3.4 KiB

/* This file is part of the KDE Project
Copyright (C) 2000 Klaas Freitag <freitag@suse.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KSCANOPTSET_H
#define KSCANOPTSET_H
#include <qobject.h>
#include <qstring.h>
#include <qptrlist.h>
#include <qasciidict.h>
#include "kscanoption.h"
/**
* This is a container class for KScanOption-objects, which contain information
* about single scanner dependant options. It allows you to store a bunch
* of options and accessing them via a iterator.
*
* The class which is inherited from QAsciiDict does no deep copy of the options
* to store by with the standard method insert.
* @see backupOption to get a deep copy.
*
* Note that the destructor of the KScanOptSet only clears the options created
* by backupOption.
*
* @author Klaas Freitag@SuSE.de
* @version 0.1
*/
class KScanOptSet: public QAsciiDict<KScanOption>
{
public:
/**
* Constructor to create a new Container. Takes a string as a name, which
* has no special meaning yet ;)
*/
KScanOptSet( const QCString& );
~KScanOptSet();
/**
* function to store a deep copy of an option. Note that this class is inherited
* from QAsciiDict and thus does no deep copies. This method does.
* @see insert
*/
bool backupOption( const KScanOption& );
/**
* returns a pointer to a stored option given by name.
*/
KScanOption *get( const QCString name ) const;
QCString getValue( const QCString name ) const;
void backupOptionDict( const QAsciiDict<KScanOption>& );
/**
* saves a configuration set to the configuration file 'ScanSettings'
* in the default dir config (@see KDir). It uses the group given
* in configName and stores the entire option set in that group.
* additionally, a description is also saved.
*
* @param scannerName : the name of the scanner
* @param configName: The name of the config, e.g. Black and White
* @param descr : A description for the config.
*/
void saveConfig( const QString&, const QString&, const QString&);
/**
* allows to load a configuration. Simple create a optionSet with the
* approbiate name the config was called ( @see saveConfig ) and call
* load for the scanner you want.
* @param scannerName: A scanner's name
*/
bool load( const QString& scannerName );
QString getDescription() const;
public slots:
void slSetDescription( const QString& );
private:
QCString name;
/* List to collect objects for which memory was allocated and must be freed */
QPtrList<KScanOption> strayCatsList;
class KScanOptSetPrivate;
KScanOptSetPrivate *d;
QString description;
};
#endif // KScanOptSet