/* -*- mode: C++; c-file-style: "gnu" -*- This file is part of KMail, the KDE mail client. Copyright (c) 2009 Martin Koller 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. */ #include "attachmentdialog.h" #include #include #include using namespace MessageViewer; //--------------------------------------------------------------------- AttachmentDialog::AttachmentDialog( QWidget *parent, const QString &filenameText, const QString &application, const QString &dontAskAgainName ) : dontAskName( dontAskAgainName ) { text = i18n( "Open attachment '%1'?\n" "Note that opening an attachment may compromise " "your system's security.", filenameText ); dialog = new KDialog( parent ); dialog->setCaption( i18n("Open Attachment?") ); dialog->setObjectName( QLatin1String("attachmentSaveOpen") ); if ( application.isEmpty() ) dialog->setButtons( KDialog::User3 | KDialog::User1 | KDialog::Cancel ); else { dialog->setButtons( KDialog::User3 | KDialog::User2 | KDialog::User1 | KDialog::Cancel ); dialog->setButtonText( KDialog::User2, i18n("&Open with '%1'", application ) ); } dialog->setButtonGuiItem( KDialog::User3, KStandardGuiItem::saveAs() ); dialog->setButtonText( KDialog::User1, i18n("&Open With...") ); dialog->setDefaultButton( KDialog::User3 ); connect( dialog, SIGNAL(user3Clicked()), this, SLOT(saveClicked()) ); connect( dialog, SIGNAL(user2Clicked()), this, SLOT(openClicked()) ); connect( dialog, SIGNAL(user1Clicked()), this, SLOT(openWithClicked()) ); } //--------------------------------------------------------------------- int AttachmentDialog::exec() { KConfigGroup cg( KGlobal::config().data(), "Notification Messages" ); if ( cg.hasKey( dontAskName ) ) return cg.readEntry( dontAskName, 0 ); bool again = false; const int ret = KMessageBox::createKMessageBox( dialog, QMessageBox::Question, text, QStringList(), i18n( "Do not ask again" ), &again, 0 ); if ( ret == QDialog::Rejected ) return Cancel; else { if ( again ) { KConfigGroup::WriteConfigFlags flags = KConfig::Persistent; KConfigGroup cg( KGlobal::config().data(), "Notification Messages" ); cg.writeEntry( dontAskName, ret, flags ); cg.sync(); } return ret; } } //--------------------------------------------------------------------- void AttachmentDialog::saveClicked() { dialog->done( Save ); } //--------------------------------------------------------------------- void AttachmentDialog::openClicked() { dialog->done( Open ); } //--------------------------------------------------------------------- void AttachmentDialog::openWithClicked() { dialog->done( OpenWith ); } //---------------------------------------------------------------------