source: trunk/examples/chart/optionsform.cpp@ 203

Last change on this file since 203 was 160, checked in by dmik, 19 years ago

Imported table and iconview modules and a bunch of dependent examples from the official release 3.3.1 from Trolltech.

  • Property svn:keywords set to Id
File size: 4.7 KB
Line 
1#include "optionsform.h"
2
3#include <qbuttongroup.h>
4#include <qcombobox.h>
5#include <qfontdialog.h>
6#include <qframe.h>
7#include <qimage.h>
8#include <qlabel.h>
9#include <qlayout.h>
10#include <qpushbutton.h>
11#include <qradiobutton.h>
12#include <qspinbox.h>
13
14#include "images/options_horizontalbarchart.xpm"
15#include "images/options_piechart.xpm"
16#include "images/options_verticalbarchart.xpm"
17
18
19OptionsForm::OptionsForm( QWidget* parent, const char* name,
20 bool modal, WFlags f )
21 : QDialog( parent, name, modal, f )
22{
23 setCaption( "Chart -- Options" );
24 resize( 320, 290 );
25
26 optionsFormLayout = new QVBoxLayout( this, 11, 6 );
27
28 chartTypeLayout = new QHBoxLayout( 0, 0, 6 );
29
30 chartTypeTextLabel = new QLabel( "&Chart Type", this );
31 chartTypeLayout->addWidget( chartTypeTextLabel );
32
33 chartTypeComboBox = new QComboBox( FALSE, this );
34 chartTypeComboBox->insertItem( QPixmap( options_piechart ), "Pie Chart" );
35 chartTypeComboBox->insertItem( QPixmap( options_verticalbarchart ),
36 "Vertical Bar Chart" );
37 chartTypeComboBox->insertItem( QPixmap( options_horizontalbarchart ),
38 "Horizontal Bar Chart" );
39 chartTypeLayout->addWidget( chartTypeComboBox );
40 optionsFormLayout->addLayout( chartTypeLayout );
41
42 fontLayout = new QHBoxLayout( 0, 0, 6 );
43
44 fontPushButton = new QPushButton( "&Font...", this );
45 fontLayout->addWidget( fontPushButton );
46 QSpacerItem* spacer = new QSpacerItem( 0, 0,
47 QSizePolicy::Expanding,
48 QSizePolicy::Minimum );
49 fontLayout->addItem( spacer );
50
51 fontTextLabel = new QLabel( this ); // Must be set by caller via setFont()
52 fontLayout->addWidget( fontTextLabel );
53 optionsFormLayout->addLayout( fontLayout );
54
55 addValuesFrame = new QFrame( this );
56 addValuesFrame->setFrameShape( QFrame::StyledPanel );
57 addValuesFrame->setFrameShadow( QFrame::Sunken );
58 addValuesFrameLayout = new QVBoxLayout( addValuesFrame, 11, 6 );
59
60 addValuesButtonGroup = new QButtonGroup( "Show Values", addValuesFrame );
61 addValuesButtonGroup->setColumnLayout(0, Qt::Vertical );
62 addValuesButtonGroup->layout()->setSpacing( 6 );
63 addValuesButtonGroup->layout()->setMargin( 11 );
64 addValuesButtonGroupLayout = new QVBoxLayout(
65 addValuesButtonGroup->layout() );
66 addValuesButtonGroupLayout->setAlignment( Qt::AlignTop );
67
68 noRadioButton = new QRadioButton( "&No", addValuesButtonGroup );
69 noRadioButton->setChecked( TRUE );
70 addValuesButtonGroupLayout->addWidget( noRadioButton );
71
72 yesRadioButton = new QRadioButton( "&Yes", addValuesButtonGroup );
73 addValuesButtonGroupLayout->addWidget( yesRadioButton );
74
75 asPercentageRadioButton = new QRadioButton( "As &Percentage",
76 addValuesButtonGroup );
77 addValuesButtonGroupLayout->addWidget( asPercentageRadioButton );
78 addValuesFrameLayout->addWidget( addValuesButtonGroup );
79
80 decimalPlacesLayout = new QHBoxLayout( 0, 0, 6 );
81
82 decimalPlacesTextLabel = new QLabel( "&Decimal Places", addValuesFrame );
83 decimalPlacesLayout->addWidget( decimalPlacesTextLabel );
84
85 decimalPlacesSpinBox = new QSpinBox( addValuesFrame );
86 decimalPlacesSpinBox->setMinValue( 0 );
87 decimalPlacesSpinBox->setMaxValue( 9 );
88 decimalPlacesLayout->addWidget( decimalPlacesSpinBox );
89
90 addValuesFrameLayout->addLayout( decimalPlacesLayout );
91
92 optionsFormLayout->addWidget( addValuesFrame );
93
94 buttonsLayout = new QHBoxLayout( 0, 0, 6 );
95 spacer = new QSpacerItem( 0, 0,
96 QSizePolicy::Expanding, QSizePolicy::Minimum );
97 buttonsLayout->addItem( spacer );
98
99 okPushButton = new QPushButton( "OK", this );
100 okPushButton->setDefault( TRUE );
101 buttonsLayout->addWidget( okPushButton );
102
103 cancelPushButton = new QPushButton( "Cancel", this );
104 buttonsLayout->addWidget( cancelPushButton );
105 optionsFormLayout->addLayout( buttonsLayout );
106
107 connect( fontPushButton, SIGNAL( clicked() ), this, SLOT( chooseFont() ) );
108 connect( okPushButton, SIGNAL( clicked() ), this, SLOT( accept() ) );
109 connect( cancelPushButton, SIGNAL( clicked() ), this, SLOT( reject() ) );
110
111 chartTypeTextLabel->setBuddy( chartTypeComboBox );
112 decimalPlacesTextLabel->setBuddy( decimalPlacesSpinBox );
113}
114
115
116void OptionsForm::chooseFont()
117{
118 bool ok;
119 QFont font = QFontDialog::getFont( &ok, m_font, this );
120 if ( ok )
121 setFont( font );
122}
123
124
125void OptionsForm::setFont( QFont font )
126{
127 QString label = font.family() + " " +
128 QString::number( font.pointSize() ) + "pt";
129 if ( font.bold() )
130 label += " Bold";
131 if ( font.italic() )
132 label += " Italic";
133 fontTextLabel->setText( label );
134 m_font = font;
135}
Note: See TracBrowser for help on using the repository browser.