2009-11-18 15:11:15 +03:00
/*
2018-06-14 14:46:50 +03:00
* Bittorrent Client using Qt and libtorrent .
2018-06-06 16:48:17 +03:00
* Copyright ( C ) 2006 Christophe Dumez < chris @ qbittorrent . org >
2009-11-18 15:11:15 +03:00
*
* 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 .
*
* In addition , as a special exception , the copyright holders give permission to
* link this program with the OpenSSL project ' s " OpenSSL " library ( or with
* modified versions of it that use the same license as the " OpenSSL " library ) ,
* and distribute the linked executables . You must obey the GNU General Public
* License in all respects for all of the code used other than " OpenSSL " . If you
* modify file ( s ) , you may extend this exception to your version of the file ( s ) ,
* but you are not obligated to do so . If you do not wish to do so , delete this
* exception statement from your version .
*/
2018-06-14 12:54:23 +03:00
# ifndef DELETIONCONFIRMATIONDIALOG_H
# define DELETIONCONFIRMATIONDIALOG_H
2009-11-18 15:11:15 +03:00
# include <QDialog>
2015-05-24 10:11:37 +03:00
# include <QPushButton>
2017-11-24 12:13:22 +03:00
2015-09-25 11:10:05 +03:00
# include "base/preferences.h"
2018-06-14 12:54:23 +03:00
# include "ui_deletionconfirmationdialog.h"
2019-07-16 07:01:33 +03:00
# include "uithememanager.h"
2017-11-24 12:13:22 +03:00
# include "utils.h"
2009-11-18 15:11:15 +03:00
2019-02-24 19:31:39 +03:00
class DeletionConfirmationDialog : public QDialog
2018-06-06 16:48:17 +03:00
{
Q_OBJECT
2009-11-18 15:11:15 +03:00
2018-06-06 16:48:17 +03:00
public :
2018-06-14 12:54:23 +03:00
DeletionConfirmationDialog ( QWidget * parent , const int & size , const QString & name , bool defaultDeleteFiles )
2018-06-06 16:48:17 +03:00
: QDialog ( parent )
2019-02-24 19:31:39 +03:00
, m_ui ( new Ui : : DeletionConfirmationDialog )
2018-06-06 16:48:17 +03:00
{
2019-02-24 19:31:39 +03:00
m_ui - > setupUi ( this ) ;
2018-06-06 16:48:17 +03:00
if ( size = = 1 )
2019-02-24 19:31:39 +03:00
m_ui - > label - > setText ( tr ( " Are you sure you want to delete '%1' from the transfer list? " , " Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? " ) . arg ( name . toHtmlEscaped ( ) ) ) ;
2018-06-06 16:48:17 +03:00
else
2019-02-24 19:31:39 +03:00
m_ui - > label - > setText ( tr ( " Are you sure you want to delete these %1 torrents from the transfer list? " , " Are you sure you want to delete these 5 torrents from the transfer list? " ) . arg ( QString : : number ( size ) ) ) ;
2018-06-06 16:48:17 +03:00
// Icons
const QSize iconSize = Utils : : Gui : : largeIconSize ( ) ;
2019-07-16 07:01:33 +03:00
m_ui - > labelWarning - > setPixmap ( UIThemeManager : : instance ( ) - > getIcon ( " dialog-warning " ) . pixmap ( iconSize ) ) ;
2019-02-24 19:31:39 +03:00
m_ui - > labelWarning - > setFixedWidth ( iconSize . width ( ) ) ;
2019-07-16 07:01:33 +03:00
m_ui - > rememberBtn - > setIcon ( UIThemeManager : : instance ( ) - > getIcon ( " object-locked " ) ) ;
2019-02-24 19:31:39 +03:00
m_ui - > rememberBtn - > setIconSize ( Utils : : Gui : : mediumIconSize ( ) ) ;
2010-12-12 22:37:59 +03:00
2019-02-24 19:31:39 +03:00
m_ui - > checkPermDelete - > setChecked ( defaultDeleteFiles | | Preferences : : instance ( ) - > deleteTorrentFilesAsDefault ( ) ) ;
connect ( m_ui - > checkPermDelete , & QCheckBox : : clicked , this , & DeletionConfirmationDialog : : updateRememberButtonState ) ;
m_ui - > buttonBox - > button ( QDialogButtonBox : : Cancel ) - > setFocus ( ) ;
2017-12-03 10:32:58 +03:00
2018-06-06 16:48:17 +03:00
Utils : : Gui : : resize ( this ) ;
}
2009-11-18 15:11:15 +03:00
2019-02-24 19:31:39 +03:00
~ DeletionConfirmationDialog ( )
{
delete m_ui ;
}
2018-06-06 16:48:17 +03:00
bool shouldDeleteLocalFiles ( ) const
{
2019-02-24 19:31:39 +03:00
return m_ui - > checkPermDelete - > isChecked ( ) ;
2018-06-06 16:48:17 +03:00
}
2009-11-18 15:11:15 +03:00
2018-06-06 16:48:17 +03:00
static bool askForDeletionConfirmation ( QWidget * parent , bool & deleteLocalFiles , const int & size , const QString & name )
{
2018-06-14 12:54:23 +03:00
DeletionConfirmationDialog dlg ( parent , size , name , deleteLocalFiles ) ;
2018-06-06 16:48:17 +03:00
if ( dlg . exec ( ) = = QDialog : : Accepted ) {
deleteLocalFiles = dlg . shouldDeleteLocalFiles ( ) ;
return true ;
}
return false ;
2009-11-18 15:11:15 +03:00
}
2010-06-21 23:20:58 +04:00
private slots :
2018-06-06 16:48:17 +03:00
void updateRememberButtonState ( )
{
2019-02-24 19:31:39 +03:00
m_ui - > rememberBtn - > setEnabled ( m_ui - > checkPermDelete - > isChecked ( ) ! = Preferences : : instance ( ) - > deleteTorrentFilesAsDefault ( ) ) ;
2018-06-06 16:48:17 +03:00
}
2010-06-21 23:20:58 +04:00
2018-06-06 16:48:17 +03:00
void on_rememberBtn_clicked ( )
{
2019-02-24 19:31:39 +03:00
Preferences : : instance ( ) - > setDeleteTorrentFilesAsDefault ( m_ui - > checkPermDelete - > isChecked ( ) ) ;
m_ui - > rememberBtn - > setEnabled ( false ) ;
2018-06-06 16:48:17 +03:00
}
2019-02-24 19:31:39 +03:00
private :
Ui : : DeletionConfirmationDialog * m_ui ;
2009-11-18 15:11:15 +03:00
} ;
2018-06-14 12:54:23 +03:00
# endif // DELETIONCONFIRMATIONDIALOG_H