FileActionDialog now supports variable modal buttons

FossilOrigin-Name: d80b84c6b58b7daf71174d32a8c33cab0e2aabac
This commit is contained in:
kostas 2011-08-06 15:34:40 +00:00
parent 24a4e07ed2
commit 3d0827763e
5 changed files with 47 additions and 24 deletions

View File

@ -1,9 +1,11 @@
#include <QCheckBox>
#include "FileActionDialog.h"
#include "ui_FileActionDialog.h"
FileActionDialog::FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText, bool *checkBoxResult) :
FileActionDialog::FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &listData, const QString &checkBoxText, bool *checkBoxResult) :
QDialog(parent, Qt::Sheet),
ui(new Ui::FileActionDialog)
ui(new Ui::FileActionDialog),
clickedButton(QDialogButtonBox::NoButton)
{
ui->setupUi(this);
setWindowTitle(title);
@ -20,9 +22,8 @@ FileActionDialog::FileActionDialog(QWidget *parent, const QString &title, const
ui->verticalLayout->insertWidget(2, checkBox);
}
for(QStringList::const_iterator it=files.begin(); it!=files.end(); ++it)
itemModel.appendRow(new QStandardItem(*it));
foreach(const QString &s, listData)
itemModel.appendRow(new QStandardItem(s));
}
FileActionDialog::~FileActionDialog()
@ -30,9 +31,9 @@ FileActionDialog::~FileActionDialog()
delete ui;
}
bool FileActionDialog::run(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText, bool *checkBoxResult)
bool FileActionDialog::run(QWidget *parent, const QString &title, const QString &message, const QStringList &listData, const QString &checkBoxText, bool *checkBoxResult)
{
FileActionDialog dlg(parent, title, message, files, checkBoxText, checkBoxResult);
FileActionDialog dlg(parent, title, message, listData, checkBoxText, checkBoxResult);
int res = dlg.exec();
if(!checkBoxText.isEmpty() && checkBoxResult && dlg.checkBox)
@ -40,3 +41,19 @@ bool FileActionDialog::run(QWidget *parent, const QString &title, const QString
return res == QDialog::Accepted;
}
QDialogButtonBox::StandardButton FileActionDialog::runStandardButtons(QWidget *parent, StandardButtons buttons, const QString &title, const QString &message, const QStringList &listData)
{
FileActionDialog dlg(parent, title, message, listData);
dlg.ui->buttonBox->setStandardButtons(buttons);
dlg.exec();
return dlg.clickedButton;
}
void FileActionDialog::on_buttonBox_clicked(QAbstractButton *button)
{
// Retrieve the flag corresponding to the standard clicked
clickedButton = ui->buttonBox->standardButton(button);
}

View File

@ -3,7 +3,7 @@
#include <QDialog>
#include <QStandardItemModel>
#include <QCheckBox>
#include <QDialogButtonBox>
namespace Ui {
class FileActionDialog;
@ -12,18 +12,27 @@ namespace Ui {
class FileActionDialog : public QDialog
{
Q_OBJECT
public:
explicit FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText=QString(), bool *checkBoxResult=0);
explicit FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &listData, const QString &checkBoxText=QString(), bool *checkBoxResult=0);
~FileActionDialog();
static bool run(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText=QString(), bool *checkBoxResult=0);
static bool run(QWidget *parent, const QString &title, const QString &message, const QStringList &listData, const QString &checkBoxText=QString(), bool *checkBoxResult=0);
typedef QDialogButtonBox::StandardButton StandardButton;
typedef QDialogButtonBox::StandardButtons StandardButtons;
static StandardButton runStandardButtons(QWidget *parent, StandardButtons, const QString &title, const QString &message, const QStringList &listData);
private slots:
void on_buttonBox_clicked(QAbstractButton *button);
private:
Ui::FileActionDialog *ui;
QStandardItemModel itemModel;
QCheckBox *checkBox;
class QCheckBox *checkBox;
bool *checkBoxResult;
StandardButton clickedButton;
};
#endif // FILEACTIONDIALOG_H

View File

@ -48,9 +48,6 @@
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>

View File

@ -1,11 +1,11 @@
C Removed\sclone\srepository\scommand\s(for\snow)
D 2011-08-06T08:52:52.947
C FileActionDialog\snow\ssupports\svariable\smodal\sbuttons\n
D 2011-08-06T15:34:40.595
F CommitDialog.cpp a1fcdc94933f4e1a144224c7c70f1e067d3ee31e
F CommitDialog.h 0550b1b652924ae54b6f6c9274cad2d4c491808a
F CommitDialog.ui 5067623f6af6f5a42c87df903278e383e945e154
F FileActionDialog.cpp ed26a6f9dd1debd6926d4bbff7ba18acb63dacc0
F FileActionDialog.h 873a9f720753a37d67071563ed7954f91b0d4699
F FileActionDialog.ui 3d4f7ad0665d51dc3ba405edbc472dd317138c5f
F FileActionDialog.cpp 629f29f676f3e547965f350fb9a4ee5797cc3e0b
F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7
F MainWindow.cpp 96ce6b4bb5ee66f04a43e2171b20e8ee510a5ac7
F MainWindow.h 8a23caf1a70d41fe60a25894649a88b1efb851ba
F MainWindow.ui 9f901c1f06b24df3cbd36d5349ffe0d82896c05b
@ -173,7 +173,7 @@ F icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b
F icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038
F main.cpp aed85ed9766ddb8685e300e8ca4a0dc193ae2586
F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53
P 797c2e6a66cb336351d569ab80737a7e491403f0
R b71e721aa96a201b7c70272083f26743
P 665b2ad1b609530a9c2c2815e143213e5e691100
R 1f233c6d016ce42191b217639282c217
U kostas
Z 5723c9d6f3d128a270ccbc410612a6ae
Z f4122d426b89a67b7273148c8690abf1

View File

@ -1 +1 @@
665b2ad1b609530a9c2c2815e143213e5e691100
d80b84c6b58b7daf71174d32a8c33cab0e2aabac