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.
tdeadmin/kdat/Options.h

213 lines
5.2 KiB

// KDat - a tar-based DAT archiver
// Copyright (C) 1998-2000 Sean Vyain, svyain@mail.tds.net
// Copyright (C) 2001-2002 Lawrence Widman, kdat@cardiothink.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 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 Street, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef _Options_h_
#define _Options_h_
#include <tqobject.h>
class KConfig;
/**
* @short The central repository for user preferences.
*/
class Options : public TQObject {
Q_OBJECT
TQ_OBJECT
KConfig* _config;
int _defaultTapeSize;
int _tapeBlockSize;
TQString _tapeDevice;
TQString _tarCommand;
bool _loadOnMount;
bool _lockOnMount;
bool _ejectOnUnmount;
bool _variableBlockSize;
static Options* _instance;
Options();
public:
/**
* Get a reference to the single instance of the Options object.
*
* @return A pointer to the options object.
*/
static Options* instance();
/**
* Save the current user preference settings.
*/
void sync();
/**
* Get the default size to use when formatting a tape.
*
* @return The default size in kilobytes of a tape.
*/
int getDefaultTapeSize();
/**
* The size of a tape block can be different from the size of a tar block.
* Tar blocks are always 512 bytes long. Be careful!
*
* @return the size in bytes of a single tape block
*/
int getTapeBlockSize();
/**
* Get the full path to the tape device.
*
* @return The tape device path.
*/
TQString getTapeDevice();
/**
* Get the full path to the tar command.
*
* @return The path to the tar command.
*/
TQString getTarCommand();
/**
* Get whether to load the tape before attempting to mount it.
*
* @return TRUE if the tape should be loaded.
*/
bool getLoadOnMount();
/**
* Get whether to lock the tape drive when a tape is mounted.
*
* @return TRUE if the tape drive should be locked, otherwise FALSE.
*/
bool getLockOnMount();
/**
* Get whether to automatically eject the tape when it is unmounted.
*
* @return TRUE if the tape should be ejected, otherwise FALSE.
*/
bool getEjectOnUnmount();
/**
* Get whether the tape drive supports variable block sizes.
*
* @return TRUE if the tape drive can handle the MTSETBLK command.
*/
bool getVariableBlockSize();
/**
* Set the default size for new tapes.
*
* @param kbytes The size in kilobytes.
*/
void setDefaultTapeSize( int kbytes );
/**
* Set the size of tape block.
*
* @param bytes The size in bytes of one tape block.
*/
void setTapeBlockSize( int bytes );
/**
* Set the path to the tape device.
*
* @param str The full path to the tape device.
*/
void setTapeDevice( const TQString & str );
/**
* Set the path to the tar command.
*
* @param str The full path to the tar command.
*/
void setTarCommand( const TQString & str );
/**
* Set whether to load the tape before attempting to mount it.
*
* @param b TRUE if the tape should be loaded.
*/
void setLoadOnMount( bool b );
/**
* Set whether to lock the tape drive whenever a tape is mounted.
*
* @param b TRUE means lock the drive, FALSE means don't.
*/
void setLockOnMount( bool b );
/**
* Set whether to eject the tape drive whenever a tape is unmounted.
*
* @param b TRUE means eject the tape, FALSE means don't.
*/
void setEjectOnUnmount( bool b );
/**
* Set whether the tape drive can support variable block sizes.
*
* @param b TRUE means the tape drive understands MTSETBLK.
*/
void setVariableBlockSize( bool b );
signals:
/**
* Emitted when the default tape size changes.
*/
void sigDefaultTapeSize();
/**
* Emitted when the tape block size changes.
*/
void sigTapeBlockSize();
/**
* Emitted when the path to the tape device changes.
*/
void sigTapeDevice();
/**
* Emitted when the path to the tar command changes.
*/
void sigTarCommand();
/**
* Emitted when the load on mount feature is enabled/disabled.
*/
void sigLoadOnMount();
/**
* Emitted when the lock on mount feature is enabled/disabled.
*/
void sigLockOnMount();
/**
* Emitted when the eject on umount feature is enabled/disabled.
*/
void sigEjectOnUnmount();
/**
* Emitted when the variable block size feature is enabled/disabled.
*/
void sigVariableBlockSize();
};
#endif