Salome HOME
6eeb77d147d6c48e4c2548fb1f23adc0b104d1f6
[modules/geom.git] / src / IGESPlugin / IGESPlugin_ExportDlg.cxx
1 // Copyright (C) 2014-2023  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 #include "IGESPlugin_ExportDlg.h"
21
22 #include <QApplication>
23 #include <QLabel>
24 #include <QLayout>
25 #include <QComboBox>
26
27 //=================================================================================
28 // Constructor
29 //=================================================================================
30 IGESPlugin_ExportDlg::IGESPlugin_ExportDlg( QWidget* parent )
31   : SUIT_FileDlg( parent, false, true, true )
32 {
33   QLabel* versionLabel = new QLabel( tr( "IGES_VERSION" ), this );
34
35   myVersionCB = new QComboBox( this );
36   myVersionCB->addItem( tr( "5.1" ) );
37   myVersionCB->addItem( tr( "5.3" ) );
38
39   layout()->addWidget( versionLabel );
40   layout()->addWidget( myVersionCB );
41 }
42
43 //=================================================================================
44 // Destructor
45 //=================================================================================
46 IGESPlugin_ExportDlg::~IGESPlugin_ExportDlg()
47 {
48 }
49
50 //=================================================================================
51 // getVersion
52 //=================================================================================
53 QString IGESPlugin_ExportDlg::getVersion() const
54 {
55   return myVersionCB->currentText();
56 }
57
58 //=================================================================================
59 // getFileName
60 //=================================================================================
61 QString IGESPlugin_ExportDlg::getFileName( const QString& initial, const QString& filters,
62                                            const QString& caption, QWidget* parent, QString& version )
63 {
64   QStringList fls = filters.split( ";;", QString::SkipEmptyParts );
65
66   QString tmpfilename = initial;
67   tmpfilename = tmpfilename.simplified();
68   tmpfilename = tmpfilename.replace( QRegExp( "\\*" ), "" ).replace( QRegExp( "\\?" ), "" );
69
70   IGESPlugin_ExportDlg fd( parent );
71   fd.setFileMode( AnyFile );
72   fd.setNameFilters( fls );
73   fd.setWindowTitle( caption );
74   if ( !tmpfilename.isEmpty() )
75     fd.processPath( tmpfilename );
76
77   QString filename;
78
79   if ( fd.exec() == QDialog::Accepted ) {
80     filename = fd.selectedFile();
81     version = fd.getVersion();
82   }
83
84   QApplication::processEvents();
85
86   return filename;
87 }
88