questionDialog.cpp

Go to the documentation of this file.
00001 //==============================================
00002 //  copyright            : (C) 2003-2005 by Will Stokes
00003 //==============================================
00004 //  This program is free software; you can redistribute it
00005 //  and/or modify it under the terms of the GNU General
00006 //  Public License as published by the Free Software
00007 //  Foundation; either version 2 of the License, or
00008 //  (at your option) any later version.
00009 //==============================================
00010 
00011 //Systemwide includes
00012 #include <qdialog.h>
00013 #include <qlayout.h>
00014 #include <qlabel.h>
00015 #include <qtextedit.h>
00016 #include <qfont.h>
00017 #include <qpushbutton.h>
00018 #include <qpixmap.h>
00019 
00020 //Projectwide includes
00021 #include "questionDialog.h"
00022 #include "../../config.h"
00023 
00024 //==============================================
00025 QuestionDialog::QuestionDialog( QString question,
00026                                               QString message,
00027                                               QString questionIconName,
00028                                               QWidget* parent,
00029                                               const char* name ) :
00030                                               QDialog(parent, name, true )
00031 {
00032   //-------------------------------
00033   //create widgets
00034   topFrame = new QFrame( this );
00035 
00036   questionText = new QLabel( topFrame );
00037   questionText->setText( question );
00038 
00039   QFont questionFont = questionText->font();
00040   questionFont.setWeight(QFont::Bold);
00041   questionText->setFont( questionFont );
00042 
00043   questionIcon = new QPixmap(QString(IMAGE_PATH)+questionIconName);
00044   questionIconLabel = new QLabel( topFrame );
00045   questionIconLabel->setPixmap( *questionIcon );
00046 
00047   messageText = new QTextEdit( this );
00048   messageText->setReadOnly(true);
00049   messageText->setText( message );
00050   
00051   
00052   bottomFrame = new QFrame( this );
00053 
00054   okButton = new QPushButton( tr("Yes"), bottomFrame );
00055   okButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
00056   okButton->setDefault(true);
00057   okButton->setFocus();
00058 
00059   connect( okButton, SIGNAL(clicked()), SLOT(accept()) );
00060 
00061   cancelButton = new QPushButton( tr("No"), bottomFrame );
00062   cancelButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
00063   connect( cancelButton, SIGNAL(clicked()), SLOT(reject()) );
00064   //-------------------------------
00065   //create grid and place widgets
00066   gridTop     = new QGridLayout( topFrame, 1, 2, 0);
00067   gridTop->addWidget( questionText, 0, 0 );
00068   gridTop->addWidget( questionIconLabel, 0, 1, Qt::AlignRight );
00069 
00070   gridBottom  = new QGridLayout( bottomFrame, 1, 2, 0);
00071   gridBottom->addWidget( okButton, 0, 0 );
00072   gridBottom->addWidget( cancelButton, 0, 1);
00073 
00074   gridFull    = new QGridLayout( this, 3, 1, 0);
00075   gridFull->addWidget( topFrame, 0, 0);
00076   gridFull->addWidget( messageText, 1, 0);
00077   gridFull->addWidget( bottomFrame, 2, 0);
00078 
00079   gridFull->setRowStretch( 1, 1 );
00080   gridFull->setResizeMode( QLayout::FreeResize );
00081   gridFull->setMargin(WIDGET_SPACING);
00082   gridFull->setSpacing(WIDGET_SPACING);
00083 
00084   //-------------------------------
00085   //setup window title bar
00086   setCaption( question );
00087   //-------------------------------
00088   //set window to not be resizeable
00089   setMinimumWidth(300);
00090   this->show();
00091   setFixedSize(size());
00092   //-------------------------------
00093 }
00094 //==============================================
00095 QuestionDialog::~QuestionDialog()
00096 {
00097   delete questionIcon;
00098 }
00099 //==============================================

Generated on Wed Jan 24 05:38:05 2007 for AlbumShaper by  doxygen 1.5.1