comparison multichoicedialog.cpp @ 341:1fc2e0269ae0 help

Add Help button to multi-choice dialog
author Chris Cannam
date Tue, 15 Mar 2011 12:36:26 +0000
parents 8fd71f570884
children
comparison
equal deleted inserted replaced
340:bb189827f6d1 341:1fc2e0269ae0
25 #include <QToolButton> 25 #include <QToolButton>
26 #include <QPushButton> 26 #include <QPushButton>
27 #include <QFont> 27 #include <QFont>
28 #include <QDir> 28 #include <QDir>
29 #include <QFileDialog> 29 #include <QFileDialog>
30 #include <QDesktopServices>
30 #include <QUrl> 31 #include <QUrl>
31 32
32 MultiChoiceDialog::MultiChoiceDialog(QString title, QString heading, QWidget *parent) : 33 MultiChoiceDialog::MultiChoiceDialog(QString title, QString heading,
33 QDialog(parent) 34 QString helpUrl, QWidget *parent) :
35 QDialog(parent),
36 m_helpUrl(helpUrl)
34 { 37 {
35 setModal(true); 38 setModal(true);
36 setWindowTitle(title); 39 setWindowTitle(title);
37 40
38 QGridLayout *outer = new QGridLayout; 41 QGridLayout *outer = new QGridLayout;
75 78
76 m_browseButton = new QPushButton(tr("Browse...")); 79 m_browseButton = new QPushButton(tr("Browse..."));
77 outer->addWidget(m_browseButton, 4, 2); 80 outer->addWidget(m_browseButton, 4, 2);
78 connect(m_browseButton, SIGNAL(clicked()), this, SLOT(browse())); 81 connect(m_browseButton, SIGNAL(clicked()), this, SLOT(browse()));
79 82
80 QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok | 83 outer->addItem(new QSpacerItem(2, 12), 5, 0);
81 QDialogButtonBox::Cancel); 84
85 QDialogButtonBox *bbox;
86 if (helpUrl != "") {
87 bbox = new QDialogButtonBox(QDialogButtonBox::Help |
88 QDialogButtonBox::Ok |
89 QDialogButtonBox::Cancel);
90 } else {
91 bbox = new QDialogButtonBox(QDialogButtonBox::Ok |
92 QDialogButtonBox::Cancel);
93 }
82 connect(bbox, SIGNAL(accepted()), this, SLOT(accept())); 94 connect(bbox, SIGNAL(accepted()), this, SLOT(accept()));
83 connect(bbox, SIGNAL(rejected()), this, SLOT(reject())); 95 connect(bbox, SIGNAL(rejected()), this, SLOT(reject()));
84 outer->addWidget(bbox, 5, 0, 1, 3); 96 connect(bbox, SIGNAL(helpRequested()), this, SLOT(helpRequested()));
97 outer->addWidget(bbox, 6, 0, 1, 3);
85 98
86 m_okButton = bbox->button(QDialogButtonBox::Ok); 99 m_okButton = bbox->button(QDialogButtonBox::Ok);
87 updateOkButton(); 100 updateOkButton();
88 101
89 setMinimumWidth(480); 102 setMinimumWidth(480);
103 }
104
105 void
106 MultiChoiceDialog::helpRequested()
107 {
108 QDesktopServices::openUrl(m_helpUrl);
90 } 109 }
91 110
92 QString 111 QString
93 MultiChoiceDialog::getCurrentChoice() 112 MultiChoiceDialog::getCurrentChoice()
94 { 113 {