1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#ifndef __WU_Q_DATA_ENTRY_DIALOG_H__
#define __WU_Q_DATA_ENTRY_DIALOG_H__
/*LICENSE_START*/
/*
* Copyright 1995-2002 Washington University School of Medicine
*
* http://brainmap.wustl.edu
*
* This file is part of CARET.
*
* CARET 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.
*
* CARET 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 CARET; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/*LICENSE_END*/
#include <QStringList>
#include <QVariant>
#include "WuQDialog.h"
class QButtonGroup;
class QCheckBox;
class QComboBox;
class QDialogButtonBox;
class QDoubleSpinBox;
class QGridLayout;
class QLabel;
class QLineEdit;
class QListWidget;
class QRadioButton;
class QSpinBox;
class QTextEdit;
/// class for a modal data entry dialog
class WuQDataEntryDialog : public WuQDialog {
Q_OBJECT
public:
// constructor
WuQDataEntryDialog(QWidget* parent = 0,
const bool addScrollBarsFlag = false,
Qt::WindowFlags f = 0);
// destructor
~WuQDataEntryDialog();
// add widget to next available row in the dialog
QWidget* addWidget(const QString& labelText,
QWidget* widget);
// add widgets to the next available row in the dialog
void addWidgetsToNextRow(QWidget* leftColumnWidget,
QWidget* rightColumnWidget);
// add a check box
QCheckBox* addCheckBox(const QString& text,
const bool defaultValue = false);
// add a combo box
QComboBox* addComboBox(const QString& labelText,
const QStringList& comboBoxItems,
const QList<QVariant>* comboBoxItemsUserData = NULL);
// add line edit
QLineEdit* addLineEditWidget(const QString& labelText,
const QString& defaultText = "");
// add list box
QListWidget* addListWidget(const QString& labelText,
const QStringList& listBoxItems);
// add a radio button (all radio buttons will be mutually exclusive)
QRadioButton* addRadioButton(const QString& text,
const bool defaultValue = false);
// get radio button selected (-1 if none, value is sequence added)
int getRadioButtonSelected() const;
// add spin box
QSpinBox* addSpinBox(const QString& labelText,
const int defaultValue,
const int minimumValue = -10000,
const int maximumValue = 10000,
const int singleStep = 1);
// add double spin box
QDoubleSpinBox* addDoubleSpinBox(const QString& labelText,
const float defaultValue,
const float minimumValue = -10000000.0,
const float maximumValue = 10000000.0,
const float singleStep = 1.0,
const int numberOfDecimals = 3);
// add a text edit
QTextEdit* addTextEdit(const QString& labelText,
const QString& defaultText,
const bool readOnlyFlag);
// set the OK button text
void setOkButtonText(const QString& s);
// set the Cancel button text
void setCancelButtonText(const QString& s);
// hide the cancel button
void hideCancelButton();
// set text at top of dialog
void setTextAtTop(const QString& s,
const bool wrapTheText);
protected:
// override to verify data after OK button pressed if subclassing this dialog
virtual bool dataEnteredIsValid();
private slots:
// called when OK button pressed
void slotOKButtonPressed();
private:
/// widgets in dialog
QVector<QWidget*> widgets;
/// layout for widgets in dialog
QGridLayout* widgetGridLayout;
/// the dialog's ok/cancel buttons
QDialogButtonBox* buttonBox;
/// label for text at dialog top
QLabel* textAtTopLabel;
/// button group for radio buttons
QButtonGroup* radioButtonGroup;
};
#endif // __WU_Q_DATA_ENTRY_DIALOG_H__
|