void QG_RecentFiles::addFiles(QMenu* file_menu) { RS_DEBUG->print("QG_RecentFiles::addFiles()"); RS_SETTINGS->beginGroup("/RecentFiles"); for (int i=0; i<number; ++i) { QString filename = RS_SETTINGS->readEntry(QString("/File") + QString::number(i+1)); if (QFileInfo(filename).exists()) add(filename); } RS_SETTINGS->endGroup(); QActionGroup* a_group = new QActionGroup(this); connect(a_group, SIGNAL(triggered(QAction*)), parent(), SLOT(slotFileOpenRecent(QAction*))); for (int i = 0; i < number; ++i) { recentFilesAction.push_back(new QAction(a_group)); QAction* a=recentFilesAction.back(); a->setVisible(false); file_menu->addAction(a); } if (count()>0) { updateRecentFilesMenu(); } }
bool MainWindow::openPackage(const QString &name) { if (m_package) closePackage(); m_package = Opc::Package::open(name, QIODevice::ReadOnly); if (!m_package) { //Error occur. statusBar()->showMessage(tr("Fail to open the package %1").arg(name)); setWindowTitle("Demo for Opc Package"); return false; } m_recentFilesList.removeOne(name); m_recentFilesList.insert(0, name); if (m_recentFilesList.size() > 50) m_recentFilesList.removeLast(); updateRecentFilesMenu(); setWindowTitle(QString("%1 - Demo for Opc Package").arg(name)); ui->partListWidget->addItem("/"); foreach (Opc::PackagePart *part, m_package->parts()) ui->partListWidget->addItem(part->partName()); return true; }
void MainWindow::loadSettings() { QSettings settings("opcpackagedemo.ini", QSettings::IniFormat); m_recentFilesList = settings.value("RecentFiles").toStringList(); updateRecentFilesMenu(); }
void MainWindow::openFile(QString const& fileName) { if (m_viewerModel.open(fileName)) { setWindowFilePath(fileName); Preferences::AddRecentFile(fileName); Preferences::LastFileAccessed(fileName); updateRecentFilesMenu(); } }
void MainWindow::onActionRecentFileTriggered() { QAction *act = qobject_cast<QAction *>(sender()); QString fileName = act->data().toString(); if (!openPackage(fileName)) { m_recentFilesList.removeOne(fileName); updateRecentFilesMenu(); } }
void MainMenuControlLE::notifySettingsChanged(const std::string& _path) { if (_path == "Settings/ShowName" || _path == "Settings/ShowType" || _path == "Settings/ShowSkin") widgetsUpdate(); else if (_path == "Files/RecentFile.List") updateRecentFilesMenu(); else if (_path == "Files/RecentProject.List") updateRecentProjectsMenu(); }
void MainMenuControlLE::createMainMenu() { updateRecentFilesMenu(); updateRecentProjectsMenu(); // меню для виджетов mPopupMenuWidgets = mBar->findItemById("Widgets", true)->getItemChild(); //FIXME mPopupMenuWidgets->setPopupAccept(true); mPopupMenuWidgets->eventMenuCtrlAccept += MyGUI::newDelegate(this, &MainMenuControlLE::notifyWidgetsSelect); mBar->eventMenuCtrlAccept += newDelegate(this, &MainMenuControlLE::notifyPopupMenuAccept); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), m_ui(new Ui::MainWindow), m_materialDock(new MaterialDock(this)), m_transformDock(new TransformDock(this)), m_meshDock(new MeshDock(this)), m_textureDialog(new TextureDialog(this)), m_UVEditor(new UVEditor(this)), m_settings(new QSettings(this)), m_shaderSignalMapper(new QSignalMapper(this)), m_actionEnableUserShaders(nullptr), m_actionLocateUserShaders(nullptr), m_actionReloadUserShaders(nullptr) { m_ui->setupUi(this); m_pathImport = m_settings->value(WMIT_SETTINGS_IMPORTVAL, QDir::currentPath()).toString(); m_pathExport = m_settings->value(WMIT_SETTINGS_EXPORTVAL, QDir::currentPath()).toString(); m_materialDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); m_materialDock->hide(); m_transformDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); m_transformDock->hide(); m_meshDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); m_meshDock->hide(); m_UVEditor->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); m_UVEditor->hide(); addDockWidget(Qt::RightDockWidgetArea, m_materialDock, Qt::Horizontal); addDockWidget(Qt::RightDockWidgetArea, m_transformDock, Qt::Horizontal); addDockWidget(Qt::RightDockWidgetArea, m_meshDock, Qt::Horizontal); addDockWidget(Qt::LeftDockWidgetArea, m_UVEditor, Qt::Horizontal); // UI is ready and now we can load window previous state (will do nothing if state wasn't saved). // 3DView specifics are loaded later on viewerInitialized event resize(QSettings().value("Window/size", size()).toSize()); move(QSettings().value("Window/position", pos()).toPoint()); restoreState(QSettings().value("Window/state", QByteArray()).toByteArray()); m_ui->actionOpen->setIcon(QIcon::fromTheme("document-open", style()->standardIcon(QStyle::SP_DirOpenIcon))); m_ui->menuOpenRecent->setIcon(QIcon::fromTheme("document-open-recent")); m_ui->actionClearRecentFiles->setIcon(QIcon::fromTheme("edit-clear-list")); m_ui->actionSave->setIcon(QIcon::fromTheme("document-save", style()->standardIcon(QStyle::SP_DialogSaveButton))); m_ui->actionSaveAs->setIcon(QIcon::fromTheme("document-save-as")); m_ui->actionClose->setIcon(QIcon::fromTheme("window-close")); m_ui->actionExit->setIcon(QIcon::fromTheme("application-exit", style()->standardIcon(QStyle::SP_DialogCloseButton))); m_ui->actionAboutApplication->setIcon(QIcon::fromTheme("help-about")); connect(m_ui->centralWidget, SIGNAL(viewerInitialized()), this, SLOT(viewerInitialized())); connect(m_ui->menuFile, SIGNAL(aboutToShow()), this, SLOT(updateRecentFilesMenu())); connect(m_ui->actionOpen, SIGNAL(triggered()), this, SLOT(actionOpen())); connect(m_ui->menuOpenRecent, SIGNAL(triggered(QAction*)), this, SLOT(actionOpenRecent(QAction*))); connect(m_ui->actionClearRecentFiles, SIGNAL(triggered()), this, SLOT(actionClearRecentFiles())); connect(m_ui->actionClear_Missing_Files, SIGNAL(triggered()), this, SLOT(actionClearMissingFiles())); connect(m_ui->actionSave, SIGNAL(triggered()), this, SLOT(actionSave())); connect(m_ui->actionSaveAs, SIGNAL(triggered()), this, SLOT(actionSaveAs())); connect(m_ui->actionClose, SIGNAL(triggered()), this, SLOT(actionClose())); connect(m_ui->actionUVEditor, SIGNAL(toggled(bool)), m_UVEditor, SLOT(setVisible(bool))); connect(m_ui->actionSetupTextures, SIGNAL(triggered()), this, SLOT(actionSetupTextures())); connect(m_ui->actionAppendModel, SIGNAL(triggered()), this, SLOT(actionAppendModel())); connect(m_ui->actionImport_Animation, SIGNAL(triggered()), this, SLOT(actionImport_Animation())); connect(m_ui->actionImport_Connectors, SIGNAL(triggered()), this, SLOT(actionImport_Connectors())); connect(m_ui->actionShowAxes, SIGNAL(toggled(bool)), m_ui->centralWidget, SLOT(setAxisIsDrawn(bool))); connect(m_ui->actionShowGrid, SIGNAL(toggled(bool)), m_ui->centralWidget, SLOT(setGridIsDrawn(bool))); connect(m_ui->actionShowLightSource, SIGNAL(toggled(bool)), m_ui->centralWidget, SLOT(setDrawLightSource(bool))); connect(m_ui->actionLink_Light_Source_To_Camera, SIGNAL(toggled(bool)), m_ui->centralWidget, SLOT(setLinkLightToCamera(bool))); connect(m_ui->actionAnimate, SIGNAL(toggled(bool)), m_ui->centralWidget, SLOT(setAnimateState(bool))); connect(m_ui->actionAboutQt, SIGNAL(triggered()), QApplication::instance(), SLOT(aboutQt())); connect(m_ui->actionSetTeamColor, SIGNAL(triggered()), this, SLOT(actionSetTeamColor())); /// Material dock m_materialDock->toggleViewAction()->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M)); m_ui->menuModel->insertAction(m_ui->menuModel->actions().value(0) ,m_materialDock->toggleViewAction()); connect(m_materialDock, SIGNAL(materialChanged(WZMaterial)), this, SLOT(materialChangedFromUI(WZMaterial))); /// Transform dock m_transformDock->toggleViewAction()->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_T)); m_ui->menuModel->insertAction(m_ui->menuModel->actions().value(0) ,m_transformDock->toggleViewAction()); // transformations connect(m_transformDock, SIGNAL(scaleXYZChanged(double)), this, SLOT(scaleXYZChanged(double))); connect(m_transformDock, SIGNAL(scaleXChanged(double)), this, SLOT(scaleXChanged(double))); connect(m_transformDock, SIGNAL(scaleYChanged(double)), this, SLOT(scaleYChanged(double))); connect(m_transformDock, SIGNAL(scaleZChanged(double)), this, SLOT(scaleZChanged(double))); connect(m_transformDock, SIGNAL(reverseWindings()), this, SLOT(reverseWindings())); connect(m_transformDock, SIGNAL(flipNormals()), this, SLOT(flipNormals())); connect(m_transformDock, SIGNAL(applyTransformations()), &m_model, SLOT(applyTransformations())); connect(m_transformDock, SIGNAL(changeActiveMesh(int)), &m_model, SLOT(setActiveMesh(int))); connect(m_transformDock, SIGNAL(recalculateTB()), &m_model, SLOT(slotRecalculateTB())); connect(m_transformDock, SIGNAL(removeMesh()), this, SLOT(removeMesh())); connect(m_transformDock, SIGNAL(mirrorAxis(int)), this, SLOT(mirrorAxis(int))); connect(m_transformDock, SIGNAL(centerMesh(int)), this, SLOT(centerMesh(int))); connect(&m_model, SIGNAL(meshCountChanged(int,QStringList)), m_transformDock, SLOT(setMeshCount(int,QStringList))); /// Mesh dock m_meshDock->toggleViewAction()->setShortcut(QKeySequence(Qt::Key_M)); m_ui->menuModel->insertAction(m_ui->menuModel->actions().value(0), m_meshDock->toggleViewAction()); connect(m_meshDock, SIGNAL(connectorsWereUpdated()), this, SLOT(updateModelRender())); connect(&m_model, SIGNAL(meshCountChanged(int,QStringList)), m_meshDock, SLOT(setMeshCount(int,QStringList))); /// Reset state clear(); }
void MainWindow::clearRecentFilesMenu() { Preferences::ClearRecentFiles(); updateRecentFilesMenu(); }
void MainWindow::createMenus() { QAction* action; QString name; QMenu* menu; QMenu* subMenu; // ----- File Menu ----- menu = menuBar()->addMenu("File"); name = "About"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); name = "New Molecule"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(newMoleculeMenu())); action->setShortcut(QKeySequence::New); name = "New Viewer"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(newViewer())); name = "Open"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(openFile())); action->setShortcut(QKeySequence::Open); name = "Open Recent"; m_recentFilesMenu = menu->addMenu(name); updateRecentFilesMenu(); menu->addSeparator(); /* name = "Parse Test File"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(parseFile())); menu->addSeparator(); */ name = "Close Viewer"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(close())); action->setShortcut(QKeySequence::Close); name = "Save"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(saveAll())); action->setShortcut(QKeySequence::Save); name = "Save As"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(saveAs())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_S); menu->addSeparator(); name = "Save Picture"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewer, SLOT(saveSnapshot())); action->setShortcut(Qt::CTRL + Qt::Key_P); name = "Record Animation"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), this, SLOT(toggleRecordingActive())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_P); m_recordAnimationAction = action; name = "Show Message Log"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showLogMessages())); action->setShortcut(Qt::CTRL + Qt::Key_L); name = "Quit"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(quit())); action->setShortcut(Qt::CTRL + Qt::Key_Q); // ----- Edit Menu ----- menu = menuBar()->addMenu("Edit"); name = "Undo"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_undoStack, SLOT(undo())); action->setShortcut(QKeySequence::Undo); connect(&m_undoStack, SIGNAL(canUndoChanged(bool)), action, SLOT(setEnabled(bool))); name = "Redo"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_undoStack, SLOT(redo())); action->setShortcut(QKeySequence::Redo); connect(&m_undoStack, SIGNAL(canRedoChanged(bool)), action, SLOT(setEnabled(bool))); menu->addSeparator(); name = "Cut"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(cutSelection())); action->setShortcut(Qt::CTRL + Qt::Key_X); name = "Copy"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(copySelectionToClipboard())); action->setShortcut(Qt::CTRL + Qt::Key_C); name = "Paste"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(pasteSelectionFromClipboard())); action->setShortcut(Qt::CTRL + Qt::Key_V); menu->addSeparator(); name = "Select All"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(selectAll())); action->setShortcut(Qt::CTRL + Qt::Key_A); name = "Select None"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SIGNAL(clearSelection())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_A); name = "Invert Selection"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(invertSelection())); action->setShortcut(Qt::CTRL + Qt::Key_I); menu->addSeparator(); name = "Reindex Atoms"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(reindexAtoms())); menu->addSeparator(); name = "Preferences"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showPreferences())); // ----- Display Menu ----- menu = menuBar()->addMenu("Display"); name = "Full Screen"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), this, SLOT(fullScreen())); action->setShortcut(Qt::CTRL + Qt::Key_0); m_fullScreenAction = action; name = "Reset View"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewer, SLOT(resetView())); action->setShortcut(Qt::CTRL + Qt::Key_R); name = "Show Axes"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(toggleAxes())); connect(&m_viewerModel, SIGNAL(axesOn(bool)), action, SLOT(setChecked(bool))); action->setShortcut(Qt::Key_A); menu->addSeparator(); name = "Atom Labels"; subMenu = menu->addMenu(name); name = "Element"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Element); action->setShortcut(Qt::Key_E); action->setCheckable(true); m_labelActions << action; name = "Index"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Index); action->setShortcut(Qt::Key_I); action->setCheckable(true); m_labelActions << action; name = "Mass"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Mass); action->setShortcut(Qt::Key_M); action->setCheckable(true); m_labelActions << action; /* name = "NMR Shifts"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::NmrShifts); action->setShortcut(Qt::Key_N); action->setCheckable(true); m_labelActions << action; */ name = "Partial Charge"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Charge); action->setShortcut(Qt::Key_Q); action->setCheckable(true); m_labelActions << action; name = "Spin Densities"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Spin); action->setShortcut(Qt::Key_S); action->setCheckable(true); m_labelActions << action; menu->addSeparator(); name = "Configure Appearance"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(configureAppearance())); // These are not working correctly at the moment. /* name = "Partial Charge Type"; QActionGroup* partialChargeGroup = new QActionGroup(this); subMenu = menu->addMenu(name); QString pc("Gasteiger"); action = subMenu->addAction(pc); action->setCheckable(true); action->setChecked(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); pc = "Sanderson"; action = subMenu->addAction(pc); action->setCheckable(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); pc = "Mulliken"; action = subMenu->addAction(pc); action->setCheckable(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); */ // ----- Build Menu ----- menu = menuBar()->addMenu("Build"); name = "Fill Valencies With Hydrogens"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(addHydrogens())); action->setShortcut(Qt::CTRL + Qt::Key_F); name = "Reperceive Bonds"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(reperceiveBonds())); menu->addSeparator(); name = "Set Constraint"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(setConstraint())); action->setShortcut(Qt::CTRL + Qt::Key_K); name = "Minimize Structure"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(minimizeEnergy())); action->setShortcut(Qt::CTRL + Qt::Key_M); name = "Select Force Field"; QActionGroup* forceFieldGroup = new QActionGroup(this); subMenu = menu->addMenu(name); QString ff("MMFF94"); action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "MMFF94s"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "UFF"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "Ghemical"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "Gaff"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); menu->addSeparator(); name = "Translate To Center"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(translateToCenter())); action->setShortcut(Qt::CTRL + Qt::Key_T ); name = "Symmetrize Molecule"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(symmetrize())); action->setShortcut(Qt::CTRL + Qt::Key_Y ); name = "Set Symmetry Tolerance"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(adjustSymmetryTolerance())); name = "Auto-detect Symmetry"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(toggleAutoDetectSymmetry())); // ----- Calculation Menu ----- menu = menuBar()->addMenu("Calculation"); name = "Q-Chem Setup"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(openQChemUI())); action->setShortcut(Qt::CTRL + Qt::Key_U ); m_qchemSetupAction = action; name = "Job Monitor"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showProcessMonitor())); action->setShortcut(Qt::CTRL + Qt::Key_J ); menu->addSeparator(); name = "Edit Servers"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(editServers())); name = "Remove All Processes"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &(ProcessMonitor::instance()), SLOT(clearProcessList())); name = "Reset Password Vault Key"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setVaultPassword())); // ----- Help Menu ----- menu = menuBar()->addMenu("Help"); name = "Show Help"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showHelp())); }
void MainWindow::fileOpened(QString const& filePath) { Preferences::AddRecentFile(filePath); Preferences::LastFileAccessed(filePath); updateRecentFilesMenu(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { mUnsavedChangesDialog = NULL; mCurrentSyntaxMenuItem = NULL; setWindowTitle(tr("PonyEdit")); setAcceptDrops(true); gWindowManager = new WindowManager(this); gWindowManager->setMinimumWidth(200); setCentralWidget(gWindowManager); mFileList = new FileList(); addDockWidget(Qt::LeftDockWidgetArea, mFileList, Qt::Vertical); mFileList->setObjectName("File List"); mTabbedFileList = new TabbedFileList(); addDockWidget(Qt::TopDockWidgetArea, mTabbedFileList, Qt::Horizontal); mTabbedFileList->setObjectName("Tabbed File List"); if(Options::FileListType == Options::QuickList) { mFileList->setVisible(true); mTabbedFileList->setVisible(false); } else { mFileList->setVisible(false); mTabbedFileList->setVisible(true); } mStatusLine = new QLabel(); mStatusBar = new QStatusBar(); mStatusBar->addPermanentWidget(mStatusLine); setStatusBar(mStatusBar); createToolbar(); createFileMenu(); createEditMenu(); createViewMenu(); createToolsMenu(); createWindowMenu(); createHelpMenu(); createMacDockMenu(); createShortcuts(); connect(gDispatcher, SIGNAL(generalErrorMessage(QString)), this, SLOT(showErrorMessage(QString)), Qt::QueuedConnection); connect(gDispatcher, SIGNAL(generalStatusMessage(QString)), this, SLOT(showStatusMessage(QString)), Qt::QueuedConnection); connect(gDispatcher, SIGNAL(selectFile(BaseFile*)), this, SLOT(fileSelected(BaseFile*))); connect(gWindowManager, SIGNAL(currentChanged()), this, SLOT(currentEditorChanged()), Qt::QueuedConnection); connect(gDispatcher, SIGNAL(syntaxChanged(BaseFile*)), this, SLOT(updateSyntaxSelection())); connect(&gOpenFileManager, SIGNAL(fileOpened(BaseFile*)), this, SLOT(openFileListChanged())); connect(&gOpenFileManager, SIGNAL(fileClosed(BaseFile*)), this, SLOT(openFileListChanged())); connect(gWindowManager, SIGNAL(splitChanged()), this, SLOT(viewSplittingChanged())); mRecentFiles = Tools::loadRecentFiles(); updateRecentFilesMenu(); // Set the default size to something relatively sane resize(QSize(800, 600)); restoreState(); openFileListChanged(); viewSplittingChanged(); }