25
25
#include "backup.h"
27
BackupAssistant::BackupAssistant( KUrl *source, KUrl *target, QWidget *parent ) : KAssistantDialog( parent )
28
#include <kmessagebox.h>
31
#include "core/filetransactions.h"
33
BackupAssistant::BackupAssistant( QWidget *parent ) : KAssistantDialog( parent )
30
setCaption( i18n( "Backup Assistant" ) );
36
setCaption( i18nc( "@title:window", "Backup Assistant" ) );
31
37
setWindowIcon( KIcon( "document-save-all" ) );
32
38
setAttribute( Qt::WA_DeleteOnClose );
33
39
showButton( KDialog::Help, false );
40
setInitialSize( QSize( 500, 400 ) );
35
QWidget *intro = new QWidget;
42
QWidget *intro = new QWidget( this );
36
43
ui_intro.setupUi( intro );
37
addPage( intro, i18n( "Introduction" ) );
38
QWidget *step1 = new QWidget;
39
ui_step1.setupUi( step1 );
40
addPage( step1, i18n( "Step 1/2 - Source File" ) );
41
QWidget *step2 = new QWidget;
42
ui_step2.setupUi( step2 );
43
addPage( step2, i18n( "Step 2/2 - Target File" ) );
44
QWidget *summary = new QWidget;
45
ui_summary.setupUi( summary );
46
summaryPage = addPage( summary, i18n( "Summary" ) );
50
//SHOW MAP(IF ANY - ONLY USED IN EDIT MODE)
51
ui_step1.kurlrequester->setUrl( *source );
52
ui_step2.kurlrequester->setUrl( *target );
54
connect( this, SIGNAL( user2Clicked() ), SLOT( nextClicked() ) );
55
connect( this, SIGNAL( user1Clicked() ), SLOT( finishClicked() ) );
58
void BackupAssistant::nextClicked()
60
if ( currentPage() == summaryPage )
62
ui_summary.label_source->setText( "<b>" + ui_step1.kurlrequester->url().path() + "</b>" );
63
ui_summary.label_target->setText( "<b>" + ui_step2.kurlrequester->url().path() + "</b>" );
66
void BackupAssistant::finishClicked()
68
*m_source = ui_step1.kurlrequester->url().path();
69
*m_target = ui_step2.kurlrequester->url().path();
44
addPage( intro, i18nc( "@title", "Introduction" ) );
45
QWidget *choice = new QWidget( this );
46
ui_choice.setupUi( choice );
47
choicePage = addPage( choice, i18nc( "@title", "Select Backup Task" ) );
48
QWidget *create = new QWidget( this );
49
ui_create.setupUi( create );
50
createPage = addPage( create, i18nc( "@title", "Create Backup" ) );
51
QWidget *restore = new QWidget( this );
52
ui_restore.setupUi( restore );
53
restorePage = addPage( restore, i18nc( "@title", "Restore Backup" ) );
54
QWidget *_delete = new QWidget( this );
55
ui_delete.setupUi( _delete );
56
deletePage = addPage( _delete, i18nc( "@title", "Delete Backup" ) );
58
ui_choice.label_iconCreate->setPixmap( KIcon( "document-save-all" ).pixmap( 48, 48 ) );
59
ui_choice.label_iconRestore->setPixmap( KIcon( "document-revert" ).pixmap( 48, 48 ) );
60
ui_choice.label_iconDelete->setPixmap( KIcon( "edit-delete" ).pixmap( 48, 48 ) );
62
void BackupAssistant::setMenuFile( const KUrl &menuFile )
64
ui_create.kurlrequester_source->setUrl( menuFile );
65
ui_create.kurlrequester_target->setUrl( menuFile.path() + "_backup" );
67
ui_restore.kurlrequester_source->setUrl( menuFile.path() + "_backup" );
68
ui_restore.kurlrequester_target->setUrl( menuFile );
70
ui_delete.kurlrequester->setUrl( menuFile.path() + "_backup" );
73
void BackupAssistant::slotButtonClicked( int button )
76
if ( button == KDialog::User2 )
78
if ( currentPage() == choicePage )
80
setAppropriate( createPage, ui_choice.radioButton_create->isChecked() );
81
setAppropriate( restorePage, ui_choice.radioButton_restore->isChecked() );
82
setAppropriate( deletePage, ui_choice.radioButton_delete->isChecked() );
84
KDialog::slotButtonClicked( button );
87
else if ( button == KDialog::User1 )
90
if ( currentPage() == createPage )
92
if ( ui_create.kurlrequester_source->url().isEmpty() || ui_create.kurlrequester_target->url().isEmpty() )
94
KMessageBox::sorry( this, i18nc( "@info", "Please fill in all fields." ) );
98
FileTransactions::backup( ui_create.kurlrequester_source->url(), ui_create.kurlrequester_target->url() );
99
KDialog::slotButtonClicked( button );
102
if ( currentPage() == restorePage )
104
if ( ui_restore.kurlrequester_source->url().isEmpty() || ui_restore.kurlrequester_target->url().isEmpty() )
106
KMessageBox::sorry( this, i18nc( "@info", "Please fill in all fields." ) );
110
FileTransactions::restore( ui_restore.kurlrequester_source->url(), ui_restore.kurlrequester_target->url() );
111
KDialog::slotButtonClicked( button );
114
if ( currentPage() == deletePage )
116
if ( ui_delete.kurlrequester->url().isEmpty() )
118
KMessageBox::sorry( this, i18nc( "@info", "Please specify a backup to delete." ) );
122
FileTransactions::deleteBackup( ui_delete.kurlrequester->url() );
123
KDialog::slotButtonClicked( button );
127
KDialog::slotButtonClicked( button );