void RecentFiles::removeRecentFile( const QString& file ) { QStringList files = loadRecentFiles(); files.removeAll( file ); saveRecentFiles( files ); updateMenu(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); on_actionNouveau_triggered(); loadRecentFiles(); }
QString RecentFiles::latestFile() { QStringList files = loadRecentFiles(); if ( files.isEmpty() ) return QString::null; else return files[0]; }
void MRU::initialise() { // Construct the MRU commands and menu structure constructMenu(); // Initialise the most recently used files list loadRecentFiles(); updateMenu(); }
void RecentFiles::setCurrentFile( const QString& file ) { QStringList files = loadRecentFiles(); files.removeAll( file ); files.prepend( file ); while ( files.size() > m_actions.size() ) files.removeLast(); saveRecentFiles( files ); updateMenu(); }
void MainWindow::readSettings() { static bool firstRun = true; QSettings s; // the static object for preferences already reads in the settings // and sets up the font, so just get what we need for the toolbox and other widgets here s.beginGroup("TecDetails"); TOOLBOX_PREF_BUTTON(calcalltissues, calcalltissues, profCalcAllTissues); TOOLBOX_PREF_BUTTON(calcceiling, calcceiling, profCalcCeiling); TOOLBOX_PREF_BUTTON(dcceiling, dcceiling, profDcCeiling); TOOLBOX_PREF_BUTTON(ead, ead, profEad); TOOLBOX_PREF_BUTTON(calcceiling3m, calcceiling3m, profIncrement3m); TOOLBOX_PREF_BUTTON(mod, mod, profMod); TOOLBOX_PREF_BUTTON(calcndltts, calcndltts, profNdl_tts); TOOLBOX_PREF_BUTTON(pp_graphs.phe, phegraph, profPhe); TOOLBOX_PREF_BUTTON(pp_graphs.pn2, pn2graph, profPn2); TOOLBOX_PREF_BUTTON(pp_graphs.po2, po2graph, profPO2); TOOLBOX_PREF_BUTTON(hrgraph, hrgraph, profHR); TOOLBOX_PREF_BUTTON(rulergraph, rulergraph, profRuler); TOOLBOX_PREF_BUTTON(show_sac, show_sac, profSAC); TOOLBOX_PREF_BUTTON(show_pictures_in_profile, show_pictures_in_profile, profTogglePicture); TOOLBOX_PREF_BUTTON(tankbar, tankbar, profTankbar); TOOLBOX_PREF_BUTTON(percentagegraph, percentagegraph, profTissues); s.endGroup(); s.beginGroup("DiveComputer"); default_dive_computer_vendor = getSetting(s, "dive_computer_vendor"); default_dive_computer_product = getSetting(s, "dive_computer_product"); default_dive_computer_device = getSetting(s, "dive_computer_device"); s.endGroup(); QNetworkProxy proxy; proxy.setType(QNetworkProxy::ProxyType(prefs.proxy_type)); proxy.setHostName(prefs.proxy_host); proxy.setPort(prefs.proxy_port); if (prefs.proxy_auth) { proxy.setUser(prefs.proxy_user); proxy.setPassword(prefs.proxy_pass); } QNetworkProxy::setApplicationProxy(proxy); loadRecentFiles(&s); if (firstRun) { checkSurvey(&s); firstRun = false; } }
void RecentFiles::updateMenu() { QStringList files = loadRecentFiles(); int numRecentFiles = qMin( files.size(), m_actions.size() ); for ( int i = 0; i < m_actions.size(); ++i ) { if ( i < numRecentFiles ) { QString text = tr("&%1 %2").arg(i + 1).arg( QFileInfo( files[i] ).fileName() ); m_actions[i]->setText(text); m_actions[i]->setToolTip( files[i] ); m_actions[i]->setData(files[i]); m_actions[i]->setVisible(true); } else m_actions[i]->setVisible(false); } m_separator->setVisible( numRecentFiles > 0 ); }
MDLViewer::MDLViewer () : mxWindow (0, 0, 0, 0, 0, g_appTitle, mxWindow::Normal) { d_MatSysWindow = 0; d_cpl = 0; // create menu stuff mb = new mxMenuBar (this); mxMenu *menuFile = new mxMenu (); mxMenu *menuOptions = new mxMenu (); menuView = new mxMenu (); mxMenu *menuHelp = new mxMenu (); mb->addMenu ("File", menuFile); mb->addMenu ("Options", menuOptions); mb->addMenu ("View", menuView); mb->addMenu ("Help", menuHelp); mxMenu *menuRecentModels = new mxMenu (); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS1); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS2); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS3); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS4); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS5); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS6); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS7); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS8); if ( g_bOldFileDialogs ) { menuFile->add ("Load Model...", IDC_FILE_LOADMODEL); menuFile->add ("(Steam) Load Model...", IDC_FILE_LOADMODEL_STEAM); } else { menuFile->add ("Load Model...", IDC_FILE_LOADMODEL_STEAM); } menuFile->add( "Refresh (F5)", IDC_FILE_REFRESH ); menuFile->addSeparator (); if ( g_bOldFileDialogs ) { menuFile->add ("Load Weapon...", IDC_FILE_LOADMERGEDMODEL); menuFile->add ("(Steam) Load Weapon...", IDC_FILE_LOADMERGEDMODEL_STEAM); } else { menuFile->add ("Load Weapon...", IDC_FILE_LOADMERGEDMODEL_STEAM); } menuFile->add ("Unload Weapon", IDC_FILE_UNLOADMERGEDMODEL); menuFile->addSeparator (); menuFile->add ("Load Background Texture...", IDC_FILE_LOADBACKGROUNDTEX); menuFile->add ("Load Ground Texture...", IDC_FILE_LOADGROUNDTEX); menuFile->addSeparator (); menuFile->add ("Unload Ground Texture", IDC_FILE_UNLOADGROUNDTEX); menuFile->addSeparator (); menuFile->addMenu ("Recent Models", menuRecentModels); menuFile->addSeparator (); menuFile->add ("Exit", IDC_FILE_EXIT); menuFile->setEnabled(IDC_FILE_LOADBACKGROUNDTEX, false); menuFile->setEnabled(IDC_FILE_LOADGROUNDTEX, false); menuFile->setEnabled(IDC_FILE_UNLOADGROUNDTEX, false); menuOptions->add ("Background Color...", IDC_OPTIONS_COLORBACKGROUND); menuOptions->add ("Ground Color...", IDC_OPTIONS_COLORGROUND); menuOptions->add ("Light Color...", IDC_OPTIONS_COLORLIGHT); menuOptions->add ("Ambient Color...", IDC_OPTIONS_COLORAMBIENT); menuOptions->addSeparator (); menuOptions->add ("Center View", IDC_OPTIONS_CENTERVIEW); menuOptions->add ("Viewmodel Mode", IDC_OPTIONS_VIEWMODEL); #ifdef WIN32 menuOptions->addSeparator (); menuOptions->add ("Make Screenshot...", IDC_OPTIONS_MAKESCREENSHOT); //menuOptions->add ("Dump Model Info", IDC_OPTIONS_DUMP); #endif menuView->add ("File Associations...", IDC_VIEW_FILEASSOCIATIONS); menuView->setEnabled( IDC_VIEW_FILEASSOCIATIONS, false ); menuView->addSeparator (); menuView->add ("Show Activities", IDC_VIEW_ACTIVITIES); menuView->add ("Show hidden", IDC_VIEW_HIDDEN ); #ifdef WIN32 menuHelp->add ("Goto Homepage...", IDC_HELP_GOTOHOMEPAGE); menuHelp->addSeparator (); #endif menuHelp->add ("About...", IDC_HELP_ABOUT); d_MatSysWindow = new MatSysWindow (this, 0, 0, 100, 100, "", mxWindow::Normal); #ifdef WIN32 // SetWindowLong ((HWND) d_MatSysWindow->getHandle (), GWL_EXSTYLE, WS_EX_CLIENTEDGE); #endif d_cpl = new ControlPanel (this); d_cpl->setMatSysWindow (d_MatSysWindow); g_MatSysWindow = d_MatSysWindow; g_FileAssociation = new FileAssociation (); loadRecentFiles (); initRecentFiles (); LoadViewerRootSettings( ); // FIXME: where do I actually find the domain size of the viewport, especially for multi-monitor // try to catch weird initialization error if (g_viewerSettings.xpos < -16384) g_viewerSettings.xpos = 20; if (g_viewerSettings.ypos < -16384) g_viewerSettings.ypos = 20; g_viewerSettings.ypos = max( 0, g_viewerSettings.ypos ); g_viewerSettings.width = max( 640, g_viewerSettings.width ); g_viewerSettings.height = max( 700, g_viewerSettings.height ); setBounds( g_viewerSettings.xpos, g_viewerSettings.ypos, g_viewerSettings.width, g_viewerSettings.height ); setVisible (true); CUtlVector< mx::Accel_t > accelerators; mx::Accel_t accel; for (int i=0; i < NUM_ACCELERATORS; i++) { accel.flags = accelTable[i].flags ; accel.key = accelTable[i].key; accel.command = accelTable[i].command; accelerators.AddToTail( accel ); } mx::createAccleratorTable( accelerators.Count(), accelerators.Base() ); }
MDLViewer::MDLViewer () : mxWindow (0, 0, 0, 0, 0, g_appTitle, mxWindow::Normal) { int i; g_MDLViewer = this; FacePoser_MakeToolWindow( this, false ); workspace = new CMDLViewerWorkspace( this, 0, 0, 500, 500, "" ); windowtab = new CMDLViewerWindowTab( this, 0, 500, 500, 20, IDC_WINDOW_TAB ); modeltab = new CMDLViewerModelTab( this, 500, 500, 100, 20, IDC_MODEL_TAB ); gridsettings = new CMDLViewerGridSettings( this, 0, 500, 500, 20 ); modeltab->SetRightJustify( true ); g_pStatusWindow = new mxStatusWindow( workspace, 0, 0, 1024, 150, "" ); g_pStatusWindow->setVisible( true ); InitViewerSettings( "faceposer" ); g_viewerSettings.speechapiindex = SPEECH_API_LIPSINC; g_viewerSettings.flHeadTurn = 0.0f; g_viewerSettings.m_iEditAttachment = -1; LoadPosition(); // ShowWindow( (HWND)getHandle(), SW_SHOWMAXIMIZED ); g_pStatusWindow->setBounds( 0, h2() - 150, w2(), 150 ); Con_Printf( "MDLViewer started\n" ); Con_Printf( "CSoundEmitterSystemBase::Init()\n" ); soundemitter->BaseInit(); Con_Printf( "Creating menu bar\n" ); // create menu stuff mb = new mxMenuBar (this); menuFile = new mxMenu (); menuOptions = new mxMenu (); menuWindow = new mxMenu (); menuHelp = new mxMenu (); menuEdit = new mxMenu (); menuExpressions = new mxMenu(); menuChoreography = new mxMenu(); mb->addMenu ("File", menuFile); mb->addMenu( "Edit", menuEdit ); mb->addMenu ("Options", menuOptions); mb->addMenu ( "Expression", menuExpressions ); mb->addMenu ( "Choreography", menuChoreography ); mb->addMenu ("Window", menuWindow); mb->addMenu ("Help", menuHelp); mxMenu *menuRecentModels = new mxMenu (); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS1); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS2); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS3); menuRecentModels->add ("(empty)", IDC_FILE_RECENTMODELS4); menuFile->add ("Load Model...", IDC_FILE_LOADMODEL); menuFile->add( "Refresh\tF5", IDC_FILE_REFRESH ); menuFile->addSeparator(); menuFile->add ("Load Background Texture...", IDC_FILE_LOADBACKGROUNDTEX); menuFile->add ("Load Ground Texture...", IDC_FILE_LOADGROUNDTEX); menuFile->addSeparator (); menuFile->add ("Unload Ground Texture", IDC_FILE_UNLOADGROUNDTEX); menuFile->addSeparator (); menuFile->addMenu ("Recent Models", menuRecentModels); menuFile->addSeparator (); menuFile->add ("Exit", IDC_FILE_EXIT); menuFile->setEnabled(IDC_FILE_LOADBACKGROUNDTEX, false); menuFile->setEnabled(IDC_FILE_LOADGROUNDTEX, false); menuFile->setEnabled(IDC_FILE_UNLOADGROUNDTEX, false); menuEdit->add( "&Undo\tCtrl+Z", IDC_EDIT_UNDO ); //menuFile->setEnabled( IDC_EDIT_UNDO, false ); menuEdit->add( "&Redo\tCtrl+Y", IDC_EDIT_REDO ); //menuFile->setEnabled( IDC_EDIT_REDO, false ); menuEdit->addSeparator(); menuEdit->add( "&Copy\tCtrl+C", IDC_EDIT_COPY ); menuEdit->add( "&Paste\tCtrl+V", IDC_EDIT_PASTE ); menuOptions->add ("Background Color...", IDC_OPTIONS_COLORBACKGROUND); menuOptions->add ("Ground Color...", IDC_OPTIONS_COLORGROUND); menuOptions->add ("Light Color...", IDC_OPTIONS_COLORLIGHT); menuOptions->addSeparator (); menuOptions->add ("Center View", IDC_OPTIONS_CENTERVIEW); menuOptions->add ("Center on Face", IDC_OPTIONS_CENTERONFACE ); #ifdef WIN32 menuOptions->addSeparator (); menuOptions->add ("Make Screenshot...", IDC_OPTIONS_MAKESCREENSHOT); //menuOptions->add ("Dump Model Info", IDC_OPTIONS_DUMP); #endif menuExpressions->add( "New...", IDC_EXPRESSIONS_NEW ); menuExpressions->addSeparator (); menuExpressions->add( "Load...", IDC_EXPRESSIONS_LOAD ); menuExpressions->add( "Save", IDC_EXPRESSIONS_SAVE ); menuExpressions->addSeparator (); menuExpressions->add( "Export to VFE", IDC_EXPRESSIONS_EXPORT ); menuExpressions->addSeparator (); menuExpressions->add( "Close class", IDC_EXPRESSIONS_CLOSE ); menuExpressions->add( "Close all classes", IDC_EXPRESSIONS_CLOSEALL ); menuExpressions->addSeparator(); menuExpressions->add( "Recreate all bitmaps", IDC_EXPRESSIONS_REDOBITMAPS ); menuChoreography->add( "New...", IDC_CHOREOSCENE_NEW ); menuChoreography->addSeparator(); menuChoreography->add( "Load...", IDC_CHOREOSCENE_LOAD ); menuChoreography->add( "Save", IDC_CHOREOSCENE_SAVE ); menuChoreography->add( "Save As...", IDC_CHOREOSCENE_SAVEAS ); menuChoreography->addSeparator(); menuChoreography->add( "Close", IDC_CHOREOSCENE_CLOSE ); menuChoreography->addSeparator(); menuChoreography->add( "Add Actor...", IDC_CHOREOSCENE_ADDACTOR ); #ifdef WIN32 menuHelp->add ("Goto Homepage...", IDC_HELP_GOTOHOMEPAGE); menuHelp->addSeparator (); #endif menuHelp->add ("About...", IDC_HELP_ABOUT); // create the Material System window Con_Printf( "Creating 3D View\n" ); g_pMatSysWindow = new MatSysWindow (workspace, 0, 0, 0, 0, "", mxWindow::Normal); Con_Printf( "Creating control panel\n" ); g_pControlPanel = new ControlPanel (workspace); Con_Printf( "Creating phoneme editor\n" ); g_pPhonemeEditor = new PhonemeEditor( workspace ); Con_Printf( "Creating expression tool\n" ); g_pExpressionTool = new ExpressionTool( workspace ); Con_Printf( "Creating gesture tool\n" ); g_pGestureTool = new GestureTool( workspace ); Con_Printf( "Creating ramp tool\n" ); g_pRampTool = new RampTool( workspace ); Con_Printf( "Creating scene ramp tool\n" ); g_pSceneRampTool = new SceneRampTool( workspace ); Con_Printf( "Creating expression tray\n" ); g_pExpressionTrayTool = new mxExpressionTray( workspace, IDC_EXPRESSIONTRAY ); Con_Printf( "Creating flex slider window\n" ); g_pFlexPanel = new FlexPanel( workspace ); Con_Printf( "Creating choreography view\n" ); g_pChoreoView = new CChoreoView( workspace, 200, 200, 400, 300, 0 ); // Choreo scene file drives main window title name g_pChoreoView->SetUseForMainWindowTitle( true ); Con_Printf( "IFacePoserToolWindow::Init\n" ); IFacePoserToolWindow::Init(); Con_Printf( "windowtab->Init\n" ); windowtab->Init(); Con_Printf( "loadRecentFiles\n" ); loadRecentFiles (); initRecentFiles (); Con_Printf( "LoadWindowPositions\n" ); LoadWindowPositions(); Con_Printf( "RestoreThumbnailSize\n" ); g_pExpressionTrayTool->RestoreThumbnailSize(); Con_Printf( "Add Tool Windows\n" ); int c = IFacePoserToolWindow::GetToolCount(); for ( i = 0; i < c ; i++ ) { IFacePoserToolWindow *tool = IFacePoserToolWindow::GetTool( i ); menuWindow->add( tool->GetToolName(), IDC_WINDOW_FIRSTTOOL + i ); } menuWindow->addSeparator(); menuWindow->add( "Cascade", IDC_WINDOW_CASCADE ); menuWindow->addSeparator(); menuWindow->add( "Tile", IDC_WINDOW_TILE ); menuWindow->add( "Tile Horizontally", IDC_WINDOW_TILE_HORIZ ); menuWindow->add( "Tile Vertically", IDC_WINDOW_TILE_VERT ); menuWindow->addSeparator(); menuWindow->add( "Hide All", IDC_WINDOW_HIDEALL ); menuWindow->add( "Show All", IDC_WINDOW_SHOWALL ); Con_Printf( "UpdateWindowMenu\n" ); UpdateWindowMenu(); m_nCurrentFrame = 0; Con_Printf( "gridsettings->Init()\n" ); gridsettings->Init(); Con_Printf( "Model viewer created\n" ); }