X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FQT%2FParametersDialog.cxx;fp=lib%2FcpPlugins%2FQT%2FParametersDialog.cxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=39f1276d7bab636b242f34b5bec6ea0c2d5a4068;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpPlugins/QT/ParametersDialog.cxx b/lib/cpPlugins/QT/ParametersDialog.cxx deleted file mode 100644 index 39f1276..0000000 --- a/lib/cpPlugins/QT/ParametersDialog.cxx +++ /dev/null @@ -1,888 +0,0 @@ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ------------------------------------------------------------------------- -cpPlugins::QT::ParametersDialog:: -ParametersDialog( QWidget* parent, Qt::WindowFlags f, bool manual ) - : QDialog( parent, f ), - m_ProcessObject( NULL ), - m_WidgetsUpdated( false ), - m_Manual( manual ) -{ - if( !this->m_Manual ) - { - this->m_Title = new QLabel( this ); - this->m_Title->setText( "Parameters dialog title" ); - this->m_MainLayout = new QGridLayout( this ); - this->m_ToolsLayout = new QVBoxLayout( ); - this->m_ToolsLayout->addWidget( this->m_Title ); - this->m_MainLayout->addLayout( this->m_ToolsLayout, 0, 0, 1, 1 ); - - } // fi - this->connect( - this, SIGNAL( accepted( ) ), this, SLOT( _dlg_Accepted( ) ) - ); -} - -// ------------------------------------------------------------------------- -cpPlugins::QT::ParametersDialog:: -~ParametersDialog( ) -{ - if( !this->m_Manual ) - { - delete this->m_Title; - delete this->m_ToolsLayout; - delete this->m_MainLayout; - - } // fi -} - -// ------------------------------------------------------------------------- -cpPlugins::Pipeline::ProcessObject* -cpPlugins::QT::ParametersDialog:: -getProcessObject( ) const -{ - return( this->m_ProcessObject ); -} - -// ------------------------------------------------------------------------- -bool cpPlugins::QT::ParametersDialog:: -setProcessObject( cpPlugins::Pipeline::ProcessObject* obj ) -{ - if( this->m_ProcessObject != NULL || obj == NULL ) - return( false ); - this->m_ProcessObject = obj; - this->m_WidgetsUpdated = false; - this->_updateWidgets( ); - this->updateView( ); - return( true ); -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -updateParameters( ) -{ - if( this->m_ProcessObject == NULL ) - return; - if( this->m_Manual ) - return; - - // Check if an explicit re-execution button is needed - QCheckBox* v_bool = - this->findChild< QCheckBox* >( "___ExplicitExecution___" ); - if( v_bool != NULL ) - this->m_ProcessObject->SetExplicitExecution( v_bool->isChecked( ) ); - - // Put values - auto parameters = this->m_ProcessObject->GetParameters( ); - auto& raw_params = parameters->GetRawParameters( ); - for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt ) - { - QString pName = pIt->first.c_str( ); - switch( pIt->second.first ) - { - case cpPlugins::Pipeline::Parameters::String: - case cpPlugins::Pipeline::Parameters::OpenFileName: - case cpPlugins::Pipeline::Parameters::SaveFileName: - case cpPlugins::Pipeline::Parameters::PathName: - case cpPlugins::Pipeline::Parameters::IntList: - case cpPlugins::Pipeline::Parameters::UintList: - case cpPlugins::Pipeline::Parameters::RealList: - case cpPlugins::Pipeline::Parameters::OpenFileNameList: - { - QLineEdit* v_string = this->findChild< QLineEdit* >( pName ); - if( v_string != NULL ) - pIt->second.second = v_string->text( ).toStdString( ); - } - break; - case cpPlugins::Pipeline::Parameters::Bool: - { - QCheckBox* v_bool = this->findChild< QCheckBox* >( pName ); - if( v_bool != NULL ) - pIt->second.second = ( v_bool->isChecked( ) )? "1": "0"; - } - break; - case cpPlugins::Pipeline::Parameters::Int: - case cpPlugins::Pipeline::Parameters::Uint: - { - QSpinBox* v_uint = this->findChild< QSpinBox* >( pName ); - if( v_uint ) - { - std::stringstream str; - str << v_uint->value( ); - pIt->second.second = str.str( ); - - } // fi - } - break; - case cpPlugins::Pipeline::Parameters::Real: - { - QDoubleSpinBox* v_double = this->findChild< QDoubleSpinBox* >( pName ); - if( v_double ) - { - std::stringstream str; - str << v_double->value( ); - pIt->second.second = str.str( ); - - } // fi - } - break; - case cpPlugins::Pipeline::Parameters::StringList: - break; - case cpPlugins::Pipeline::Parameters::BoolList: - break; - case cpPlugins::Pipeline::Parameters::SaveFileNameList: - break; - case cpPlugins::Pipeline::Parameters::PathNameList: - break; - case cpPlugins::Pipeline::Parameters::Choices: - { - QComboBox* v_choices = this->findChild< QComboBox* >( pName ); - if( v_choices != NULL ) - { - std::istringstream str_choices( pIt->second.second ); - std::string real_choices; - std::getline( str_choices, real_choices, '@' ); - pIt->second.second = - real_choices + "@" + - v_choices->currentText( ).toStdString( ); - - } // fi - } - break; - default: - break; - } // hctiws - - } // rof - this->m_ProcessObject->Modified( ); -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -updateView( ) -{ - if( this->m_ProcessObject == NULL ) - return; - if( this->m_Manual ) - return; - - // Check if an explicit re-execution button is needed - QCheckBox* v_bool = - this->findChild< QCheckBox* >( "___ExplicitExecution___" ); - if( v_bool != NULL ) - v_bool->setChecked( this->m_ProcessObject->GetExplicitExecution( ) ); - - // Put values - auto parameters = this->m_ProcessObject->GetParameters( ); - auto& raw_params = parameters->GetRawParameters( ); - for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt ) - { - QString pName = pIt->first.c_str( ); - switch( pIt->second.first ) - { - case cpPlugins::Pipeline::Parameters::String: - case cpPlugins::Pipeline::Parameters::OpenFileName: - case cpPlugins::Pipeline::Parameters::SaveFileName: - case cpPlugins::Pipeline::Parameters::PathName: - case cpPlugins::Pipeline::Parameters::IntList: - case cpPlugins::Pipeline::Parameters::UintList: - case cpPlugins::Pipeline::Parameters::RealList: - case cpPlugins::Pipeline::Parameters::OpenFileNameList: - { - QLineEdit* v_string = this->findChild< QLineEdit* >( pName ); - if( v_string != NULL ) - v_string->setText( pIt->second.second.c_str( ) ); - } - break; - case cpPlugins::Pipeline::Parameters::Bool: - { - QCheckBox* v_bool = this->findChild< QCheckBox* >( pName ); - if( v_bool != NULL ) - v_bool->setChecked( pIt->second.second == "1" ); - } - break; - case cpPlugins::Pipeline::Parameters::Int: - case cpPlugins::Pipeline::Parameters::Uint: - { - QSpinBox* v_uint = this->findChild< QSpinBox* >( pName ); - if( v_uint ) - { - std::istringstream tok_str( pIt->second.second ); - int v; - tok_str >> v; - v_uint->setValue( v ); - - } // fi - } - break; - case cpPlugins::Pipeline::Parameters::Real: - { - QDoubleSpinBox* v_double = this->findChild< QDoubleSpinBox* >( pName ); - if( v_double ) - { - std::istringstream tok_str( pIt->second.second ); - double v; - tok_str >> v; - v_double->setValue( v ); - - } // fi - } - break; - case cpPlugins::Pipeline::Parameters::StringList: - break; - case cpPlugins::Pipeline::Parameters::BoolList: - break; - case cpPlugins::Pipeline::Parameters::SaveFileNameList: - break; - case cpPlugins::Pipeline::Parameters::PathNameList: - break; - case cpPlugins::Pipeline::Parameters::Choices: - { - QComboBox* v_choices = this->findChild< QComboBox* >( pName ); - if( v_choices != NULL ) - { - std::istringstream str_choices( pIt->second.second ); - std::string choices, real_choice; - std::getline( str_choices, choices, '@' ); - std::getline( str_choices, real_choice, '@' ); - std::istringstream str( choices ); - std::string token; - int id = -1, cont = 0; - while( std::getline( str, token, '#' ) ) - { - if( token == real_choice ) - id = cont; - cont++; - - } // elihw - - if( id > -1 ) - v_choices->setCurrentIndex( id ); - - } // fi - } - break; - default: - break; - } // hctiws - - } // rof -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_addButtons( ) -{ - if( this->m_Manual ) - return; - - // Add buttons - this->m_Buttons = new QDialogButtonBox( - QDialogButtonBox::Ok | QDialogButtonBox::Cancel - ); - this->connect( - this->m_Buttons, SIGNAL( accepted( ) ), this, SLOT( accept( ) ) - ); - this->connect( - this->m_Buttons, SIGNAL( rejected( ) ), this, SLOT( reject( ) ) - ); - this->m_ToolsLayout->addWidget( this->m_Buttons ); - - this->updateView( ); - this->m_WidgetsUpdated = true; -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_updateWidgets( ) -{ - if( this->m_WidgetsUpdated || this->m_ProcessObject == NULL ) - return; - if( this->m_Manual ) - return; - - // Set dialog title - std::stringstream title; - title - << "Parameters for an object of class \"" - << this->m_ProcessObject->GetClassName( ) - << "\""; - this->m_Title->setText( title.str( ).c_str( ) ); - - // Check if an explicit re-execution button is needed - QCheckBox* v_bool = new QCheckBox( this ); - v_bool->setObjectName( "___ExplicitExecution___" ); - v_bool->setText( "Explicit re-execution" ); - v_bool->setChecked( this->m_ProcessObject->GetExplicitExecution( ) ); - - QHBoxLayout* new_layout = new QHBoxLayout( ); - new_layout->addWidget( v_bool ); - this->m_ToolsLayout->addLayout( new_layout ); - - // Put values - auto parameters = this->m_ProcessObject->GetParameters( ); - auto& raw_params = parameters->GetRawParameters( ); - for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt ) - { - QWidget* w_input = NULL; - switch( pIt->second.first ) - { - case cpPlugins::Pipeline::Parameters::String: - { - QLineEdit* v_string = new QLineEdit( this ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - w_input = v_string; - } - break; - case cpPlugins::Pipeline::Parameters::Bool: - { - QCheckBox* v_bool = new QCheckBox( this ); - v_bool->setObjectName( pIt->first.c_str( ) ); - v_bool->setText( "[ON/OFF]" ); - v_bool->setChecked( pIt->second.second == "1" ); - w_input = v_bool; - } - break; - case cpPlugins::Pipeline::Parameters::Int: - case cpPlugins::Pipeline::Parameters::Uint: - { - std::istringstream tok_str( pIt->second.second ); - int v; - tok_str >> v; - QSpinBox* v_uint = new QSpinBox( this ); - v_uint->setObjectName( pIt->first.c_str( ) ); - if( pIt->second.first == cpPlugins::Pipeline::Parameters::Uint ) - v_uint->setMinimum( 0 ); - else - v_uint->setMinimum( -std::numeric_limits< int >::max( ) ); - v_uint->setMaximum( std::numeric_limits< int >::max( ) ); - v_uint->setValue( v ); - w_input = v_uint; - } - break; - case cpPlugins::Pipeline::Parameters::Real: - { - std::istringstream tok_str( pIt->second.second ); - double v; - tok_str >> v; - QDoubleSpinBox* v_double = new QDoubleSpinBox( this ); - v_double->setObjectName( pIt->first.c_str( ) ); - v_double->setDecimals( 3 ); - v_double->setMinimum( -std::numeric_limits< double >::max( ) ); - v_double->setMaximum( std::numeric_limits< double >::max( ) ); - v_double->setValue( v ); - w_input = v_double; - } - break; - case cpPlugins::Pipeline::Parameters::OpenFileName: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "..." ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_OpenSingleFile( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - case cpPlugins::Pipeline::Parameters::SaveFileName: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "..." ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_SaveSingleFile( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::PathName: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "..." ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_OpenSinglePath( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::StringList: - break; - case cpPlugins::Pipeline::Parameters::BoolList: - break; - case cpPlugins::Pipeline::Parameters::IntList: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "+" ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_AddInt( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::UintList: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "+" ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_AddUint( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::RealList: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "+" ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_AddReal( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::OpenFileNameList: - { - QFrame* frame = new QFrame( this ); - QHBoxLayout* layout = new QHBoxLayout( frame ); - QLineEdit* v_string = new QLineEdit( frame ); - v_string->setObjectName( pIt->first.c_str( ) ); - v_string->setMaxLength( std::numeric_limits< int >::max( ) ); - v_string->setText( pIt->second.second.c_str( ) ); - QPushButton* v_button = new QPushButton( frame ); - v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) ); - v_button->setText( "..." ); - v_button->connect( - v_button, SIGNAL( clicked( ) ), - this, SLOT( _dlg_OpenMultipleFiles( ) ) - ); - layout->addWidget( v_string ); - layout->addWidget( v_button ); - w_input = frame; - } - break; - case cpPlugins::Pipeline::Parameters::SaveFileNameList: - break; - case cpPlugins::Pipeline::Parameters::PathNameList: - break; - case cpPlugins::Pipeline::Parameters::Choices: - { - QComboBox* v_choices = new QComboBox( this ); - v_choices->setObjectName( pIt->first.c_str( ) ); - - std::istringstream str0( pIt->second.second ); - std::string choices; - std::getline( str0, choices, '@' ); - std::istringstream str1( choices ); - std::string token; - int id = 0; - while( std::getline( str1, token, '#' ) ) - v_choices->insertItem( id++, token.c_str( ) ); - w_input = v_choices; - } - break; - default: - w_input = NULL; - break; - } // hctiws - - // Ok, a representation was created - if( w_input != NULL ) - { - QHBoxLayout* new_layout = new QHBoxLayout( ); - QLabel* label = new QLabel( this ); - label->setText( QString( pIt->first.c_str( ) ) ); - new_layout->addWidget( label ); - new_layout->addWidget( w_input ); - this->m_ToolsLayout->addLayout( new_layout ); - - } // fi - - } // rof - - // Update values - this->_addButtons( ); -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_Accepted( ) -{ - this->updateParameters( ); -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_OpenSingleFile( ) -{ - auto parameters = this->m_ProcessObject->GetParameters( ); - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - std::string param_value = parameters->GetOpenFileName( param_name ); - if( param_value == "" ) - param_value = "."; - QStringList dialog_filters; - std::string extensions = parameters->GetAcceptedFileExtensions( param_name ); - if( extensions != "" ) - dialog_filters << extensions.c_str( ); - dialog_filters << "Any file (*)"; - - // Show dialog and check if it was accepted - QFileDialog dialog( this ); - dialog.setFileMode( QFileDialog::ExistingFile ); - dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) ); - dialog.setNameFilters( dialog_filters ); - dialog.setAcceptMode( QFileDialog::AcceptOpen ); - if( dialog.exec( ) ) - line->setText( *( dialog.selectedFiles( ).begin( ) ) ); - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_SaveSingleFile( ) -{ - auto parameters = this->m_ProcessObject->GetParameters( ); - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - std::string param_value = parameters->GetSaveFileName( param_name ); - if( param_value == "" ) - param_value = "."; - QStringList dialog_filters; - std::string extensions = parameters->GetAcceptedFileExtensions( param_name ); - if( extensions != "" ) - dialog_filters << extensions.c_str( ); - dialog_filters << "Any file (*)"; - - // Show dialog and check if it was accepted - QFileDialog dialog( this ); - dialog.setFileMode( QFileDialog::AnyFile ); - dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) ); - dialog.setNameFilters( dialog_filters ); - dialog.setAcceptMode( QFileDialog::AcceptSave ); - if( dialog.exec( ) ) - line->setText( *( dialog.selectedFiles( ).begin( ) ) ); - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_OpenSinglePath( ) -{ - auto parameters = this->m_ProcessObject->GetParameters( ); - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - std::string param_value = parameters->GetPathName( param_name ); - if( param_value == "" ) - param_value = "."; - - // Show dialog and check if it was accepted - QFileDialog dialog( this ); - dialog.setFileMode( QFileDialog::Directory ); - dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) ); - dialog.setAcceptMode( QFileDialog::AcceptOpen ); - if( dialog.exec( ) ) - line->setText( *( dialog.selectedFiles( ).begin( ) ) ); - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_OpenMultipleFiles( ) -{ - auto parameters = this->m_ProcessObject->GetParameters( ); - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - QStringList dialog_filters; - std::string extensions = parameters->GetAcceptedFileExtensions( param_name ); - if( extensions != "" ) - dialog_filters << extensions.c_str( ); - dialog_filters << "Any file (*)"; - - // Show dialog and check if it was accepted - QFileDialog dialog( this ); - dialog.setFileMode( QFileDialog::ExistingFiles ); - dialog.setNameFilters( dialog_filters ); - dialog.setAcceptMode( QFileDialog::AcceptOpen ); - if( dialog.exec( ) ) - { - if( dialog.selectedFiles( ).size( ) > 0 ) - { - std::stringstream str; - auto files = dialog.selectedFiles( ); - auto fIt = files.begin( ); - str << fIt->toStdString( ); - ++fIt; - for( ; fIt != files.end( ); ++fIt ) - str << "#" << fIt->toStdString( ); - line->setText( str.str( ).c_str( ) ); - - } // fi - - } // fi - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_AddInt( ) -{ - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - bool ok; - int value = - QInputDialog::getInt( - this, - ( - std::string( "Add new value to \"" ) + - param_name + - std::string( "\"" ) - ).c_str( ), - "Value:", - 0, - -std::numeric_limits< int >::max( ), - std::numeric_limits< int >::max( ), - 1, &ok - ); - if( ok ) - { - std::string values = line->text( ).toStdString( ); - if( values != "" ) - values += "#"; - std::stringstream str; - str << values << value; - line->setText( str.str( ).c_str( ) ); - - } // fi - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_AddUint( ) -{ - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - bool ok; - int value = - QInputDialog::getInt( - this, - ( - std::string( "Add new value to \"" ) + - param_name + - std::string( "\"" ) - ).c_str( ), - "Value:", - 0, 0, std::numeric_limits< int >::max( ), 1, - &ok - ); - if( ok ) - { - std::string values = line->text( ).toStdString( ); - if( values != "" ) - values += "#"; - std::stringstream str; - str << values << value; - line->setText( str.str( ).c_str( ) ); - - } // fi - - } // fi - - } // fi - - } // fi -} - -// ------------------------------------------------------------------------- -void cpPlugins::QT::ParametersDialog:: -_dlg_AddReal( ) -{ - QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) ); - if( btn != NULL ) - { - std::string bName = btn->objectName( ).toStdString( ); - std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) ); - QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) ); - if( line != NULL ) - { - std::string param_name = line->objectName( ).toStdString( ); - if( param_name != "" ) - { - bool ok; - double value = - QInputDialog::getDouble( - this, - ( - std::string( "Add new value to \"" ) + - param_name + - std::string( "\"" ) - ).c_str( ), - "Value:", - 0, - -std::numeric_limits< double >::max( ), - std::numeric_limits< double >::max( ), - 1, &ok - ); - if( ok ) - { - std::string values = line->text( ).toStdString( ); - if( values != "" ) - values += "#"; - std::stringstream str; - str << values << value; - line->setText( str.str( ).c_str( ) ); - - } // fi - - } // fi - - } // fi - - } // fi -} - -// eof - $RCSfile$