UltraScan III
us_font.cpp
Go to the documentation of this file.
1 #include "us_font.h"
3 #include "us_gui_settings.h"
4 
5 US_Font::US_Font( QWidget* w, Qt::WindowFlags flags )
6  : US_Widgets( true, w, flags )
7 {
8  // Frame layout
9  setPalette( US_GuiSettings::frameColor() );
10  setWindowTitle( "Font Selection Dialog" );
11  setAttribute( Qt::WA_DeleteOnClose );
12 
13  QBoxLayout* topbox = new QVBoxLayout( this );
14  topbox->setSpacing( 2 );
15 
16  // Body
17  pb_font = us_pushbutton( tr( "Select Base Font" ) );
18  topbox->addWidget( pb_font );
19  connect( pb_font, SIGNAL( clicked() ), SLOT( selectFont() ) );
20 
21  lbl_family = us_label( tr( "Current Family:" ), -1 );
22  lbl_family->setFixedHeight( BUTTON_H );
23 
24  QGridLayout* lineGrid = new QGridLayout();
25 
27 
28  int row = 0;
29 
30  lineGrid->addWidget( lbl_family, row , 0 );
31  lineGrid->addWidget( le_family , row++, 1 );
32 
33  size = us_label( tr( "Point Size:" ), -1 );
34  size->setFixedHeight( BUTTON_H );
35 
36  le_pointSize = us_lineedit( QString::number( US_GuiSettings::fontSize() ),
37  -1, true );
38 
39  lineGrid->addWidget( size , row , 0 );
40  lineGrid->addWidget( le_pointSize, row++, 1 );
41 
42  samples = us_banner( tr( "Selected Font Samples:" ) );
43  lineGrid->addWidget( samples, row++, 0, 1, 2 );
44 
45  small = us_label( tr( "Small Font Sample" ), -1 );
46  lineGrid->addWidget( small, row++, 0, 1, 2 );
47 
48  regular = us_label( tr( "Regular Font Sample" ) );
49  lineGrid->addWidget( regular, row++, 0, 1, 2 );
50 
51  regularBold = us_label( tr( "Regular Font Sample, Bold" ), 0, QFont::Bold );
52  lineGrid->addWidget( regularBold, row++, 0, 1, 2 );
53 
54  large = us_label( tr( "Large Font Sample" ), +1 );
55  lineGrid->addWidget( large, row++, 0, 1, 2 );
56 
57  largeBold = us_label( tr( "Large Font Sample, Bold" ), +1, QFont::Bold );
58  lineGrid->addWidget( largeBold, row++, 0, 1, 2 );
59 
60  title = us_label( tr( "Title Font Sample" ), +2, QFont::Bold );
61  lineGrid->addWidget( title, row++, 0, 1, 2 );
62 
63  topbox->addLayout( lineGrid );
64 
65  pb_default = us_pushbutton( tr( "Select Default" ) );
66  connect( pb_default, SIGNAL( clicked() ), SLOT( setDefault() ) );
67  topbox->addWidget( pb_default );
68 
69  pb_save = us_pushbutton( tr( "Save" ) );
70  connect( pb_save, SIGNAL( clicked() ), SLOT( save() ) );
71 
72  pb_help = us_pushbutton( tr( "Help" ) );
73  connect( pb_help, SIGNAL( clicked() ), SLOT( help() ) );
74 
75  pb_cancel = us_pushbutton( tr( "Close" ) );
76  connect( pb_cancel, SIGNAL( clicked() ), SLOT( close() ) );
77 
78  QBoxLayout* buttons = new QHBoxLayout();
79 
80  buttons->addWidget( pb_save );
81  buttons->addWidget( pb_help );
82  buttons->addWidget( pb_cancel );
83 
84  topbox->addLayout( buttons );
85 }
86 
87 void US_Font::setDefault( void )
88 {
89  le_family ->setText( "Helvetica" );
90  le_pointSize->setText( QString::number( 10 ) );
91 
92  redraw();
93 }
94 
95 
97 {
99  US_GuiSettings::set_fontSize( le_pointSize->text().toInt() );
100 
101  QMessageBox::information( this,
102  tr( "Settings Saved" ),
103  tr( "The settings were successfully saved.\n"
104  "Changes will be applied in new windows." ) );
105 }
106 
108 {
109  US_Help* help = new US_Help();
110  help->show_help( "manual/usfont.html" );
111 }
112 
114 {
115  bool ok;
116 
117  QFont oldFont = QFont( US_GuiSettings::fontFamily(), US_GuiSettings::fontSize() );
118  QFont newFont = QFontDialog::getFont( &ok, oldFont, this, "Select a Font" );
119 
120  if ( ! ok ) return;
121 
122  le_family ->setText( newFont.family() );
123  le_pointSize->setText( QString::number( newFont.pointSize() ) );
124 
125  redraw();
126 }
127 
128 void US_Font::redraw( void )
129 {
130  QString family = le_family->text();
131  int pointSize = le_pointSize->text().toInt();
132 
133 
134  le_family ->setFont( QFont( family, pointSize ) );
135  le_pointSize->setFont( QFont( family, pointSize ) );
136  lbl_family ->setFont( QFont( family, pointSize ) );
137  size ->setFont( QFont( family, pointSize ) );
138  samples ->setFont( QFont( family, pointSize ) );
139 
140  small ->setFont( QFont( family, pointSize - 1 ) );
141  regular ->setFont( QFont( family, pointSize ) );
142  regularBold ->setFont( QFont( family, pointSize, QFont::Bold ) );
143  large ->setFont( QFont( family, pointSize + 1 ) );
144  largeBold ->setFont( QFont( family, pointSize + 1, QFont::Bold ) );
145  title ->setFont( QFont( family, pointSize + 2, QFont::Bold ) );
146  pb_default ->setFont( QFont( family, pointSize + 1 ) );
147  pb_save ->setFont( QFont( family, pointSize + 1 ) );
148  pb_font ->setFont( QFont( family, pointSize + 1 ) );
149  pb_help ->setFont( QFont( family, pointSize + 1 ) );
150  pb_cancel ->setFont( QFont( family, pointSize + 1 ) );
151 
152  this->repaint();
153 }
154