Salome HOME
Bug 9193:
[modules/gui.git] / src / SalomeApp / SalomeApp_PreferencesDlg.cxx
1 // File:      SalomeApp_PreferencesDlg.cxx
2 // Author:    Sergey TELKOV
3
4 #include "SalomeApp_PreferencesDlg.h"
5
6 #include <QtxListResourceEdit.h>
7
8 #include <qlayout.h>
9
10 SalomeApp_PreferencesDlg::SalomeApp_PreferencesDlg( QtxResourceMgr* resMgr, QWidget* parent )
11 : QtxDialog( parent, 0, true, false, Standard | Apply )
12 {
13   setCaption( tr( "CAPTION" ) );
14
15   QVBoxLayout* main = new QVBoxLayout( mainFrame(), 5 );
16
17   myEdit = new QtxListResourceEdit( resMgr, mainFrame() );
18   main->addWidget( myEdit );
19
20   setFocusProxy( myEdit );
21
22   setDialogFlags( AlignOnce );
23
24   connect( this, SIGNAL( dlgHelp() ),  this, SLOT( onHelp() ) );
25   connect( this, SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
26   connect( myEdit, SIGNAL( resourceChanged( QString&, QString& ) ),
27            this, SIGNAL( resourceChanged( QString&, QString& ) ) );
28 }
29
30 SalomeApp_PreferencesDlg::~SalomeApp_PreferencesDlg()
31 {
32 }
33
34 void SalomeApp_PreferencesDlg::store()
35 {
36   myEdit->store();
37 }
38
39 void SalomeApp_PreferencesDlg::retrieve()
40 {
41   myEdit->retrieve();
42 }
43
44 void SalomeApp_PreferencesDlg::show()
45 {
46   retrieve();
47   myEdit->toBackup();
48
49   QtxDialog::show();
50 }
51
52 void SalomeApp_PreferencesDlg::accept()
53 {
54   QtxDialog::accept();
55
56   store();
57 }
58
59 void SalomeApp_PreferencesDlg::reject()
60 {
61   QtxDialog::reject();
62
63   myEdit->fromBackup();
64 }
65
66 int SalomeApp_PreferencesDlg::addPreference( const QString& label, const int pId, const int type,
67                                              const QString& section, const QString& param, SalomeApp_Module* mod )
68 {
69   int id = myEdit->addItem( label, pId, type, section, param );
70   if ( id != -1 && mod )
71     myPrefMod.insert( id, mod );
72   return id;
73 }
74
75 QVariant SalomeApp_PreferencesDlg::property( const int id, const QString& param ) const
76 {
77   return myEdit->QtxResourceEdit::property( id, param );
78 }
79
80 void SalomeApp_PreferencesDlg::setProperty( const int id, const QString& param, const QVariant& prop )
81 {
82   myEdit->QtxResourceEdit::setProperty( id, param, prop );
83 }
84
85 void SalomeApp_PreferencesDlg::onHelp()
86 {
87 }
88
89 void SalomeApp_PreferencesDlg::onApply()
90 {
91   myEdit->store();
92 }
93
94 SalomeApp_Module* SalomeApp_PreferencesDlg::module( const int id ) const
95 {
96   SalomeApp_Module* mod = 0;
97   if ( myPrefMod.contains( id ) )
98     mod = myPrefMod[id];
99   return mod;
100 }