kmail
importarchivedialog.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "importarchivedialog.h"
00020
00021 #include "kmfolder.h"
00022 #include "folderrequester.h"
00023 #include "kmmainwidget.h"
00024 #include "importjob.h"
00025
00026 #include <kurlrequester.h>
00027 #include <klocale.h>
00028 #include <kmessagebox.h>
00029
00030 #include <qlayout.h>
00031 #include <qlabel.h>
00032
00033 using namespace KMail;
00034
00035 ImportArchiveDialog::ImportArchiveDialog( QWidget *parent, Qt::WidgetFlags flags )
00036 : KDialogBase( parent, "import_archive_dialog", false, i18n( "Import Archive" ),
00037 KDialogBase::Ok | KDialogBase::Cancel,
00038 KDialogBase::Ok, true ),
00039 mParentWidget( parent )
00040 {
00041 setWFlags( flags );
00042 QWidget *mainWidget = new QWidget( this );
00043 QGridLayout *mainLayout = new QGridLayout( mainWidget );
00044 mainLayout->setSpacing( KDialog::spacingHint() );
00045 mainLayout->setMargin( KDialog::marginHint() );
00046 setMainWidget( mainWidget );
00047
00048 int row = 0;
00049
00050
00051
00052
00053
00054 QLabel *folderLabel = new QLabel( i18n( "Folder:" ), mainWidget );
00055 mainLayout->addWidget( folderLabel, row, 0 );
00056 mFolderRequester = new FolderRequester( mainWidget, kmkernel->getKMMainWidget()->folderTree() );
00057 mainLayout->addWidget( mFolderRequester, row, 1 );
00058 row++;
00059
00060 QLabel *fileNameLabel = new QLabel( i18n( "Archive File:" ), mainWidget );
00061 mainLayout->addWidget( fileNameLabel, row, 0 );
00062 mUrlRequester = new KURLRequester( mainWidget );
00063 mUrlRequester->setMode( KFile::LocalOnly );
00064 mUrlRequester->setFilter( "*.tar *.zip *.tar.gz *.tar.bz2" );
00065 mainLayout->addWidget( mUrlRequester, row, 1 );
00066 row++;
00067
00068
00069
00070 mainLayout->setColStretch( 1, 1 );
00071 mainLayout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Expanding ), row, 0 );
00072
00073
00074 resize( 500, minimumSize().height() );
00075 }
00076
00077 void ImportArchiveDialog::setFolder( KMFolder *defaultFolder )
00078 {
00079 mFolderRequester->setFolder( defaultFolder );
00080 }
00081
00082 void ImportArchiveDialog::slotOk()
00083 {
00084 if ( !QFile::exists( mUrlRequester->url() ) ) {
00085 KMessageBox::information( this, i18n( "Please select an archive file that should be imported." ),
00086 i18n( "No archive file selected" ) );
00087 return;
00088 }
00089
00090 if ( !mFolderRequester->folder() ) {
00091 KMessageBox::information( this, i18n( "Please select the folder where the archive should be imported to." ),
00092 i18n( "No target folder selected" ) );
00093 return;
00094 }
00095
00096
00097
00098 ImportJob *importJob = new KMail::ImportJob( mParentWidget );
00099 importJob->setFile( mUrlRequester->url() );
00100 importJob->setRootFolder( mFolderRequester->folder() );
00101 importJob->start();
00102 accept();
00103 }
00104
00105 #include "importarchivedialog.moc"
|