comparison confirmcommentdialog.cpp @ 104:af314dd436d5

* Slightly more useful commit dialog
author Chris Cannam
date Thu, 25 Nov 2010 14:30:40 +0000
parents 0bd32aedc6f6
children 1928f9b408e6
comparison
equal deleted inserted replaced
103:0bd32aedc6f6 104:af314dd436d5
17 17
18 #include "confirmcommentdialog.h" 18 #include "confirmcommentdialog.h"
19 19
20 #include <QMessageBox> 20 #include <QMessageBox>
21 #include <QInputDialog> 21 #include <QInputDialog>
22 #include <QGridLayout>
23 #include <QLabel>
24 #include <QTextEdit>
25 #include <QDialogButtonBox>
22 26
23 bool ConfirmCommentDialog::confirmFilesAction(QWidget *parent, 27 bool ConfirmCommentDialog::confirmFilesAction(QWidget *parent,
24 QString title, 28 QString title,
25 QString introText, 29 QString introText,
26 QString introTextWithCount, 30 QString introTextWithCount,
48 bool ConfirmCommentDialog::confirmAndComment(QWidget *parent, 52 bool ConfirmCommentDialog::confirmAndComment(QWidget *parent,
49 QString title, 53 QString title,
50 QString introText, 54 QString introText,
51 QString introTextWithCount, 55 QString introTextWithCount,
52 QStringList files, 56 QStringList files,
53 QString &comment) 57 QString &comment,
58 bool longComment)
54 { 59 {
55 QString text; 60 QString text;
56 if (files.size() <= 10) { 61 if (files.size() <= 10) {
57 text = "<qt>" + introText; 62 text = "<qt>" + introText;
58 text += "<p><ul>"; 63 text += "<p><ul>";
61 } 66 }
62 text += "</ul><p>Please enter your comment:</qt>"; 67 text += "</ul><p>Please enter your comment:</qt>";
63 } else { 68 } else {
64 text = "<qt>" + introText.arg(files.size()); 69 text = "<qt>" + introText.arg(files.size());
65 } 70 }
66 return confirmAndComment(parent, title, text, comment); 71 return confirmAndComment(parent, title, text, comment, longComment);
67 } 72 }
68 73
69 bool ConfirmCommentDialog::confirmAndComment(QWidget *parent, 74 bool ConfirmCommentDialog::confirmAndComment(QWidget *parent,
70 QString title, 75 QString title,
71 QString introText, 76 QString introText,
72 QString &comment) 77 QString &comment,
78 bool longComment)
73 { 79 {
74 bool ok = false; 80 bool ok = false;
75 //!!! ok, for comments need more than one line 81 if (!longComment) {
76 comment = QInputDialog::getText(parent, title, introText, 82 comment = QInputDialog::getText(parent, title, introText,
77 QLineEdit::Normal, comment, &ok); 83 QLineEdit::Normal, comment, &ok);
84 } else {
85 QDialog *d = new QDialog(parent);
86 d->setWindowTitle(title);
87 QGridLayout *layout = new QGridLayout;
88 d->setLayout(layout);
89 QLabel *label = new QLabel(introText);
90 layout->addWidget(label, 0, 0);
91 QTextEdit *textEdit = new QTextEdit;
92 textEdit->setAcceptRichText(false);
93 layout->addWidget(textEdit, 1, 0);
94 QDialogButtonBox *bbox = new QDialogButtonBox(QDialogButtonBox::Ok |
95 QDialogButtonBox::Cancel);
96 layout->addWidget(bbox, 2, 0);
97 QObject::connect(bbox, SIGNAL(accepted()), d, SLOT(accept()));
98 QObject::connect(bbox, SIGNAL(rejected()), d, SLOT(reject()));
99 if (d->exec() == QDialog::Accepted) {
100 comment = textEdit->document()->toPlainText();
101 ok = true;
102 }
103 }
78 return ok; 104 return ok;
79 } 105 }