void JuffEd::initUI() { menus_[Juff::MenuFile] = new QMenu(tr("&File")); menus_[Juff::MenuEdit] = new QMenu(tr("&Edit")); menus_[Juff::MenuView] = new QMenu(tr("&View")); menus_[Juff::MenuSearch] = new QMenu(tr("&Search")); menus_[Juff::MenuFormat] = new QMenu(tr("For&mat")); menus_[Juff::MenuTools] = new QMenu(tr("&Tools")); menus_[Juff::MenuHelp] = new QMenu(tr("&Help")); // recent files recentFilesMenu_ = new QMenu(JuffEd::tr("Recent files")); connect(recentFilesMenu_, SIGNAL(aboutToShow()), SLOT(initRecentFilesMenu())); QString recentFiles = MainSettings::get(MainSettings::RecentFiles); if ( !recentFiles.isEmpty() ) { QStringList fileList = recentFiles.split(";"); int count = fileList.count(); for(int i = count - 1; i >= 0; --i) { const QString& fileName = fileList.at(i); if ( !fileName.isEmpty() ) addToRecentFiles(fileName); } } openWithCharsetGr_ = new QActionGroup(this); setCharsetGr_ = new QActionGroup(this); charsetMenu_ = new QMenu(JuffEd::tr("Charset")); openWithCharsetMenu_ = new QMenu(JuffEd::tr("Open with charset...")); setCharsetMenu_ = new QMenu(JuffEd::tr("Set charset")); initCharsetMenus(); charsetMenu_->addMenu(openWithCharsetMenu_); charsetMenu_->addMenu(setCharsetMenu_); docksMenu_ = new QMenu(tr("Docks")); toolBarsMenu_ = new QMenu(tr("Toolbars")); menus_[Juff::MenuTools]->addMenu(docksMenu_); menus_[Juff::MenuTools]->addMenu(toolBarsMenu_); CommandStorageInt* st = Juff::Utils::commandStorage(); QToolBar* mainToolBar = new QToolBar("mainToolBar"); mainToolBar->setObjectName("mainToolBar"); mainToolBar->addAction(st->action(FILE_NEW)); mainToolBar->addAction(st->action(FILE_OPEN)); mainToolBar->addAction(st->action(FILE_SAVE)); mainToolBar->addSeparator(); mainToolBar->addAction(st->action(FILE_PRINT)); mainToolBar->addSeparator(); mainToolBar->addAction(st->action(EDIT_UNDO)); mainToolBar->addAction(st->action(EDIT_REDO)); mainToolBar->addSeparator(); mainToolBar->addAction(st->action(EDIT_CUT)); mainToolBar->addAction(st->action(EDIT_COPY)); mainToolBar->addAction(st->action(EDIT_PASTE)); mainToolBar->addSeparator(); mainToolBar->addAction(st->action(SEARCH_FIND)); mw_->addToolBar(mainToolBar); }
void BaseEditor::actionOpen() { auto uiFramework = pImpl_->get<IUIFramework>(); TF_ASSERT(uiFramework != nullptr); if (!uiFramework) { return; } IDocument* doc = nullptr; auto path = uiFramework->showOpenFileDialog("Open", lastSaveFolder(), fileOpenFilter(), IUIFramework::None); if (!path.empty()) { auto editor = pImpl_->get<IEditor>(); TF_ASSERT(editor != nullptr); if (editor) { doc = editor->open(path.front().c_str()); if (doc == nullptr) { return; } bindDocument(doc); if (path.front() == doc->getFilePath()) { clearCheckoutState(); } } onOpen(path.front().c_str(), doc); auto editorCommon = pImpl_->get<IEditorCommon>(); TF_ASSERT(editorCommon != nullptr); if (editorCommon) { editorCommon->addToRecentFiles(path.front().c_str()); } } }