Salome HOME
13515f9f9573eb2f89526139e2191ba04fd7c89c
[modules/gui.git] / src / SalomeApp / SalomeApp_ExitDlg.cxx
1 // Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // File:      SalomeApp_ExitDlg.cxx
21 // Author:    Margarita KARPUNINA, Open CASCADE S.A.S.
22 //
23 #include "SalomeApp_ExitDlg.h"
24
25 #include <QLabel> 
26 #include <QVBoxLayout> 
27 #include <QHBoxLayout> 
28 #include <QGridLayout> 
29 #include <QPushButton>
30 #include <QMessageBox>
31 #include <QCheckBox>
32
33 /*!
34  * \brief creates a Exit dialog box
35  * \param parent a parent widget
36  * \param modal bool argument, if true the dialog box is a modal dialog box
37  * \param f style flags
38  */
39 SalomeApp_ExitDlg::SalomeApp_ExitDlg( QWidget* parent )
40   : QDialog( parent )
41 {
42   setModal( true );
43   setWindowTitle( tr( "INF_DESK_EXIT" ) );
44
45   QVBoxLayout* m_vbL = new QVBoxLayout( this );
46   m_vbL->setMargin( 11 );
47   m_vbL->setSpacing( 6 );
48
49   QLabel* m_lIcon = new QLabel( this );
50   QPixmap pm = QMessageBox::standardIcon( QMessageBox::Question );
51   m_lIcon->setPixmap( pm );
52   m_lIcon->setScaledContents( false );
53   m_lIcon->setAlignment( Qt::AlignCenter );
54
55   QLabel* m_lDescr = new QLabel( this );
56   m_lDescr->setText( tr( "QUE_DESK_EXIT" ) );
57   m_lDescr->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
58
59   myServersShutdown = new QCheckBox( tr( "SHUTDOWN_SERVERS" ), this );
60   myServersShutdown->setChecked( true );
61   
62   QVBoxLayout* m_vl1 = new QVBoxLayout();
63   m_vl1->setMargin( 10 ); m_vl1->setSpacing( 16 );
64   m_vl1->addWidget( m_lDescr );
65   m_vl1->addWidget( myServersShutdown );
66
67   QHBoxLayout* m_hl1 = new QHBoxLayout();
68   m_hl1->setMargin( 0 ); m_hl1->setSpacing( 6 );
69   m_hl1->addWidget( m_lIcon );
70   m_hl1->addStretch(); 
71   m_hl1->addLayout( m_vl1 );
72   m_hl1->addStretch();
73
74   QPushButton* m_pbOk     = new QPushButton( tr( "BUT_OK" ),     this );
75   QPushButton* m_pbCancel = new QPushButton( tr( "BUT_CANCEL" ), this );
76
77   QGridLayout* m_hl2 = new QGridLayout();
78   m_hl2->setMargin( 0 ); m_hl2->setSpacing( 6 );
79   m_hl2->addWidget( m_pbOk, 0, 0 );
80   m_hl2->setColumnStretch( 1, 5 );
81   m_hl2->addWidget( m_pbCancel, 0, 2 );
82   
83   m_vbL->addStretch();
84   m_vbL->addLayout( m_hl1 );
85   m_vbL->addStretch();
86   m_vbL->addLayout( m_hl2 );
87
88   connect( m_pbOk,     SIGNAL( clicked() ), this, SLOT( accept() ) );
89   connect( m_pbCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
90 }
91
92 /*!
93  * \brief Destructor
94  */
95 SalomeApp_ExitDlg::~SalomeApp_ExitDlg()
96 {
97 }
98
99 /*!
100  * \brief get the check box status
101  */
102 bool SalomeApp_ExitDlg::isServersShutdown()
103 {
104   return myServersShutdown->isChecked();
105 }
106