|
|
|
// 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 _BackupProfileWidget_h_
|
|
|
|
#define _BackupProfileWidget_h_
|
|
|
|
|
|
|
|
#include <ktabctl.h>
|
|
|
|
#include <tqstrlist.h>
|
|
|
|
|
|
|
|
class TQCheckBox;
|
|
|
|
class TQComboBox;
|
|
|
|
class TQLabel;
|
|
|
|
class TQLineEdit;
|
|
|
|
class TQListBox;
|
|
|
|
|
|
|
|
class BackupProfile;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @short Display/edit the parameters for a backup operation.
|
|
|
|
*/
|
|
|
|
class BackupProfileWidget : public KTabCtl {
|
|
|
|
Q_OBJECT
|
|
|
|
TQLineEdit* _archiveName;
|
|
|
|
TQComboBox* _workingDir;
|
|
|
|
TQListBox* _files;
|
|
|
|
TQCheckBox* _oneFilesystem;
|
|
|
|
TQCheckBox* _incremental;
|
|
|
|
TQLabel* _snapshotLabel;
|
|
|
|
TQLineEdit* _snapshotFile;
|
|
|
|
TQCheckBox* _removeSnapshot;
|
|
|
|
TQStringList _absoluteFiles;
|
|
|
|
TQStringList _relativeFiles;
|
|
|
|
private slots:
|
|
|
|
void slotTextChanged( const TQString & text );
|
|
|
|
void slotIncrementalToggled( bool set );
|
|
|
|
void slotToggled( bool set );
|
|
|
|
void slotWorkingDirActivated( const TQString & text );
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Create a backup profile widget.
|
|
|
|
*
|
|
|
|
* @param archiveName The default name for the new archive.
|
|
|
|
* @param files The list of files to be archived.
|
|
|
|
* @param parent The parent widget of this dialog.
|
|
|
|
* @param name The widget name of this dialog.
|
|
|
|
*/
|
|
|
|
BackupProfileWidget( TQWidget* parent=0, const char* name=0 );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Destroy the backup profile widget.
|
|
|
|
*/
|
|
|
|
~BackupProfileWidget();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the parameters for the backup profile.
|
|
|
|
*
|
|
|
|
* @param backupProfile The backup profile to display/edit.
|
|
|
|
*/
|
|
|
|
void setBackupProfile( BackupProfile* backupProfile );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the list of files for the backup profile, with full paths.
|
|
|
|
*
|
|
|
|
* @param files The list.
|
|
|
|
*/
|
|
|
|
void setAbsoluteFiles( const TQStringList& files );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query the name of the archive.
|
|
|
|
*
|
|
|
|
* @return The name of the new archive.
|
|
|
|
*/
|
|
|
|
TQString getArchiveName();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query the working directory for the tar command.
|
|
|
|
*
|
|
|
|
* @return The working directory.
|
|
|
|
*/
|
|
|
|
TQString getWorkingDirectory();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query the list of files to backup, relative to the working directory.
|
|
|
|
*
|
|
|
|
* @return The file list.
|
|
|
|
*/
|
|
|
|
const TQStringList& getRelativeFiles();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query the list of files to backup, with full paths.
|
|
|
|
*
|
|
|
|
* @return The file list.
|
|
|
|
*/
|
|
|
|
const TQStringList& getAbsoluteFiles();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query whether or not to cross filesystem boundaries when performing the
|
|
|
|
* backup.
|
|
|
|
*
|
|
|
|
* @return TRUE if the backup is restricted to a single filesystem, FALSE
|
|
|
|
* if the backup can cross filesystem boundaries.
|
|
|
|
*/
|
|
|
|
bool isOneFilesystem();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query whether this is to be a GNU incremental backup.
|
|
|
|
*
|
|
|
|
* @return TRUE if incremental, otherwise FALSE.
|
|
|
|
*/
|
|
|
|
bool isIncremental();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query the name of the snapshot file to use for an incremental backup.
|
|
|
|
*
|
|
|
|
* @return The name of the snapshot file.
|
|
|
|
*/
|
|
|
|
TQString getSnapshotFile();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Query whether to remove the snapshot file before beginning an
|
|
|
|
* incremental backup. This has the effect of performing a full backup.
|
|
|
|
*
|
|
|
|
* @return TRUE if the snapshot file should be removed, otherwise FALSE.
|
|
|
|
*/
|
|
|
|
bool getRemoveSnapshot();
|
|
|
|
signals:
|
|
|
|
/**
|
|
|
|
* Emitted whenever the user changes anything.
|
|
|
|
*/
|
|
|
|
void sigSomethingChanged();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|