lib/FontButton.cpp

Go to the documentation of this file.
00001 /*
00002  *  Qtstalker stock charter
00003  *
00004  *  Copyright (C) 2001-2007 Stefan S. Stratigakos
00005  *
00006  *  This program is free software; you can redistribute it and/or modify
00007  *  it under the terms of the GNU General Public License as published by
00008  *  the Free Software Foundation; either version 2 of the License, or
00009  *  (at your option) any later version.
00010  *
00011  *  This program is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *  GNU General Public License for more details.
00015  *
00016  *  You should have received a copy of the GNU General Public License
00017  *  along with this program; if not, write to the Free Software
00018  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00019  *  USA.
00020  */
00021 
00022 #include "FontButton.h"
00023 #include <qfontdialog.h>
00024 
00025 FontButton::FontButton (QWidget *w, QFont &f) : QPushButton (w)
00026 {
00027   font = f;
00028   QObject::connect(this, SIGNAL(clicked()), this, SLOT(fontDialog()));
00029   setMaximumHeight(25);
00030   setToggleButton(FALSE);
00031   setFontButton();
00032   setText(tr("Font"));
00033   changed = FALSE;
00034 }
00035 
00036 FontButton::~FontButton ()
00037 {
00038 }
00039 
00040 void FontButton::setFontButton ()
00041 {
00042   setFont(font);
00043 }
00044 
00045 void FontButton::getFont (QFont &d)
00046 {
00047   d = font;
00048 }
00049 
00050 void FontButton::fontDialog ()
00051 {
00052   bool ok;
00053   QFont f = QFontDialog::getFont(&ok, font, this);
00054   if (ok)
00055   {
00056     if (font != f)
00057     {
00058       font = f;
00059       setFontButton();
00060       changed = TRUE;
00061       emit valueChanged();
00062     }
00063   }
00064 }
00065 
00066 bool FontButton::isChanged()
00067 {  
00068   bool b = changed;
00069   changed = FALSE;
00070   return b;
00071 }