File indexing completed on 2024-12-01 03:41:11
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2014 Arjun A.K. <arjunak234@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "executablefileopendialog_p.h" 0009 0010 #include <QCheckBox> 0011 #include <QDialogButtonBox> 0012 #include <QLabel> 0013 #include <QPushButton> 0014 #include <QVBoxLayout> 0015 0016 #include <KLocalizedString> 0017 0018 ExecutableFileOpenDialog::ExecutableFileOpenDialog(ExecutableFileOpenDialog::Mode mode, QWidget *parent) 0019 : QDialog(parent) 0020 { 0021 QLabel *label = new QLabel(i18n("What do you wish to do with this file?"), this); 0022 0023 m_dontAskAgain = new QCheckBox(this); 0024 m_dontAskAgain->setText(i18n("Do not ask again")); 0025 0026 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel, this); 0027 connect(buttonBox, &QDialogButtonBox::rejected, this, &ExecutableFileOpenDialog::reject); 0028 0029 QVBoxLayout *layout = new QVBoxLayout(this); 0030 layout->addWidget(label); 0031 layout->addWidget(m_dontAskAgain); 0032 layout->addWidget(buttonBox); 0033 0034 QPushButton *executeButton = new QPushButton(i18n("&Execute"), this); 0035 executeButton->setIcon(QIcon::fromTheme(QStringLiteral("system-run"))); 0036 0037 if (mode == OnlyExecute) { 0038 connect(executeButton, &QPushButton::clicked, this, &ExecutableFileOpenDialog::executeFile); 0039 } else if (mode == OpenAsExecute) { 0040 connect(executeButton, &QPushButton::clicked, this, &ExecutableFileOpenDialog::openFile); 0041 } else { // mode == OpenOrExecute 0042 connect(executeButton, &QPushButton::clicked, this, &ExecutableFileOpenDialog::executeFile); 0043 0044 QPushButton *openButton = new QPushButton(i18n("&Open"), this); 0045 openButton->setIcon(QIcon::fromTheme(QStringLiteral("document-preview"))); 0046 buttonBox->addButton(openButton, QDialogButtonBox::AcceptRole); 0047 0048 connect(openButton, &QPushButton::clicked, this, &ExecutableFileOpenDialog::openFile); 0049 } 0050 0051 // Add Execute button last so that Open is first in the button box 0052 buttonBox->addButton(executeButton, QDialogButtonBox::AcceptRole); 0053 buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); 0054 } 0055 0056 ExecutableFileOpenDialog::ExecutableFileOpenDialog(QWidget *parent) 0057 : ExecutableFileOpenDialog(ExecutableFileOpenDialog::OpenOrExecute, parent) 0058 { 0059 } 0060 0061 bool ExecutableFileOpenDialog::isDontAskAgainChecked() const 0062 { 0063 return m_dontAskAgain->isChecked(); 0064 } 0065 0066 void ExecutableFileOpenDialog::executeFile() 0067 { 0068 done(ExecuteFile); 0069 } 0070 0071 void ExecutableFileOpenDialog::openFile() 0072 { 0073 done(OpenFile); 0074 } 0075 0076 #include "moc_executablefileopendialog_p.cpp"