[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim] libksieve/ksieveui/autocreatescripts: Allow to save report
From: Montel Laurent <montel () kde ! org>
Date: 2013-08-07 7:37:37
Message-ID: E1V6yJN-0008Ly-Sq () scm ! kde ! org
[Download RAW message or body]
Git commit 87604e9839649b43ffef1a7d2d6b1380996424a5 by Montel Laurent.
Committed on 07/08/2013 at 07:37.
Pushed by mlaurent into branch 'master'.
Allow to save report
M +45 -1 libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.cpp
M +4 -0 libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.h
http://commits.kde.org/kdepim/87604e9839649b43ffef1a7d2d6b1380996424a5
diff --git a/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.cpp \
b/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.cpp index \
c788576..565aff4 100644
--- a/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.cpp
+++ b/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.cpp
@@ -18,19 +18,28 @@
#include "sievescriptparsingerrordialog.h"
#include <KTextEdit>
+#include <KFileDialog>
#include <KLocale>
+#include <KMessageBox>
+
+#include <QPointer>
+#include <QTextStream>
+
+#include <errno.h>
SieveScriptParsingErrorDialog::SieveScriptParsingErrorDialog(QWidget *parent)
: KDialog(parent)
{
setCaption( i18n( "Sieve Parsing Error" ) );
- setButtons( Close );
+ setButtons( Close | User1 );
+ setButtonText(User1, i18n("Save As..."));
mTextEdit = new KTextEdit( this );
mTextEdit->setReadOnly( true );
mTextEdit->setAcceptRichText(true);
setMainWidget( mTextEdit );
readConfig();
+ connect(this, SIGNAL(user1Clicked()), this, SLOT(slotSaveAs()));
}
SieveScriptParsingErrorDialog::~SieveScriptParsingErrorDialog()
@@ -65,6 +74,41 @@ void SieveScriptParsingErrorDialog::writeConfig()
group.writeEntry( "Size", size() );
}
+void SieveScriptParsingErrorDialog::slotSaveAs()
+{
+ KUrl url;
+ const QString filter = i18n( "all files (*)" );
+ QPointer<KFileDialog> fdlg( new KFileDialog( url, filter, this) );
+
+ fdlg->setMode( KFile::File );
+ fdlg->setOperationMode( KFileDialog::Saving );
+ fdlg->setConfirmOverwrite(true);
+ if ( fdlg->exec() == QDialog::Accepted && fdlg ) {
+ const QString fileName = fdlg->selectedFile();
+ if ( !saveToFile( fileName ) ) {
+ KMessageBox::error( this,
+ i18n( "Could not write the file %1:\n"
+ "\"%2\" is the detailed error description.",
+ fileName,
+ QString::fromLocal8Bit( strerror( errno ) ) ),
+ i18n( "Sieve Editor Error" ) );
+ }
+ }
+ delete fdlg;
+}
+
+bool SieveScriptParsingErrorDialog::saveToFile( const QString &filename )
+{
+ QFile file( filename );
+ if ( !file.open( QIODevice::WriteOnly|QIODevice::Text ) )
+ return false;
+ QTextStream out(&file);
+ out.setCodec("UTF-8");
+ out << mTextEdit->toPlainText();
+ return true;
+}
+
+
#include "sievescriptparsingerrordialog.moc"
diff --git a/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.h \
b/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.h index \
5507eab..ea944c4 100644
--- a/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.h
+++ b/libksieve/ksieveui/autocreatescripts/sievescriptparsingerrordialog.h
@@ -29,11 +29,15 @@ public:
void setError(const QString &script, const QString &);
+private Q_SLOTS:
+ void slotSaveAs();
+
private:
void readConfig();
void writeConfig();
private:
+ bool saveToFile( const QString &filename );
KTextEdit *mTextEdit;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic