#include "SalomeApp_AboutDlg.h"
#include "SalomeApp_ModuleDlg.h"
+#include "SalomeApp_PreferencesDlg.h"
+#include "SalomeApp_StudyPropertiesDlg.h"
#include "SalomeApp_GLSelector.h"
#include "SalomeApp_OBSelector.h"
*/
SalomeApp_Application::SalomeApp_Application()
-: CAM_Application( false )
+: CAM_Application( false ),
+myPrefDlg( 0 )
{
STD_TabDesktop* desk = new STD_TabDesktop();
0, desk, false, this, SLOT( onLoadScript() ) );
int fileMenu = createMenu( tr( "MEN_DESK_FILE" ), -1 );
createMenu( LoadScriptId, fileMenu, 10, -1 );
+
+ createAction( PropertiesId, tr( "TOT_DESK_FILE_PROPERTIES" ), QIconSet(),
+ tr( "MEN_DESK_FILE_PROPERTIES" ), tr( "PRP_DESK_FILE_PROPERTIES" ),
+ 0, desk, false, this, SLOT( onProperties() ) );
+ createMenu( PropertiesId, fileMenu, 10, -1 );
+
// default icon for neutral point ('SALOME' module)
QPixmap defIcon = resMgr->loadPixmap( "SalomeApp", tr( "APP_DEFAULT_ICO" ) );
void SalomeApp_Application::onAboutRefresh()
{
- SalomeApp_DataModel* dm = 0;
- if ( activeModule() )
- {
- CAM_DataModel* camDM = activeModule()->dataModel();
+ for ( ModuleListIterator it = modules(); it.current(); ++it )
+ {
+ CAM_DataModel* camDM = it.current()->dataModel();
if ( camDM && camDM->inherits( "SalomeApp_DataModel" ) )
- dm = (SalomeApp_DataModel*)camDM;
+ ((SalomeApp_DataModel*)camDM)->update();
}
-
- if ( dm )
- dm->update();
}
void SalomeApp_Application::setActiveStudy( SUIT_Study* study )
QAction* a = action( LoadScriptId );
if ( a )
a->setEnabled( activeStudy() );
+
+ a = action( PropertiesId );
+ if( a )
+ a->setEnabled( activeStudy() );
}
//=======================================================================
return console;
}
+QtxResourceEdit* SalomeApp_Application::resourceEdit() const
+{
+ return 0;
+ /*
+ QtxResourceEdit* edit = 0;
+ if ( !myPrefDlg )
+ {
+ SalomeApp_Application* that = (SalomeApp_Application*)this;
+ that->myPrefDlg = new SalomeApp_PreferencesDlg( that->desktop() );
+
+ edit = myPrefDlg->resourceEdit();
+
+ QStringList modList;
+ modules( modList, false );
+ for ( QStringList::const_iterator it = modList.begin(); it != modList.end(); ++it )
+ {
+ int id = edit->addItem( *it );
+ edit->setProperty( id, "info", tr( "PREFERENCES_NOT_LOADED" ).arg( *it ) );
+ }
+ }
+ else
+ edit = myPrefDlg->resourceEdit();
+ */
+}
+
SUIT_ViewManager* SalomeApp_Application::getViewManager( const QString& vmType, const bool create )
{
SUIT_ViewManager* aVM = viewManager( vmType );
SUIT_ViewManager* anActiveVM = CAM_Application::activeViewManager();
+
if ( anActiveVM && anActiveVM->getType() == vmType )
aVM = anActiveVM;
- else if ( aVM )
+
+ if ( aVM && create )
{
if ( !aVM->getActiveView() )
aVM->createView();
+ else
+ aVM->getActiveView()->setFocus();
}
else if ( create )
aVM = createViewManager( vmType );
+
return aVM;
}
objectBrowser()->setRootObject( aRoot );
activateModule( defaultModule() );
+
+ activateWindows();
}
void SalomeApp_Application::onStudyOpened( SUIT_Study* theStudy )
objectBrowser()->setRootObject( aRoot );
}
- activateWindows();
-
activateModule( defaultModule() );
+ activateWindows();
+
emit studyOpened();
}
filtersList.append(tr("PYTHON_FILES_FILTER"));
filtersList.append(tr("ALL_FILES_FILTER"));
- QString aFile = SUIT_FileDlg::getFileName(desktop(), "", filtersList, tr("TOT_DESK_FILE_LOAD_SCRIPT"), true, false);
+ QString aFile = SUIT_FileDlg::getFileName(desktop(), "", filtersList, tr("TOT_DESK_FILE_LOAD_SCRIPT"), true, true );
if(!aFile.isEmpty()) {
QString command = QString("execfile(\"%1\")").arg(aFile);
itr.data()->activate( activeStudy()->id() );
}
}
+
+void SalomeApp_Application::onProperties()
+{
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( activeStudy() );
+ if( !study )
+ return;
+
+ _PTR(StudyBuilder) SB = study->studyDS()->NewBuilder();
+ SB->NewCommand();
+
+ SalomeApp_StudyPropertiesDlg aDlg( desktop() );
+ int res = aDlg.exec();
+ if( res==QDialog::Accepted && aDlg.isChanged() )
+ SB->CommitCommand();
+ else
+ SB->AbortCommand();
+
+ //study->updateCaptions();
+}
+
+QString SalomeApp_Application::getFileName( bool open )
+{
+ QStringList filtersList;
+ filtersList.append( getFileFilter() );
+ QString initial = open ? QString( "" ) : ( activeStudy() ? activeStudy()->studyName() : QString( "" ) );
+ return SUIT_FileDlg::getFileName( desktop(), initial, filtersList, QString::null, open, true );
+}