void MenuBar::addFileMenu() { QMenu *m = new QMenu(Qrc::text("menubar.file"), this); QMenu *o = new QMenu(Qrc::text("menubar.file.open"), m); o->addAction(Qrc::text("menubar.file.open.apk"), parent(), SLOT(onMenuBarFileOpenApk()), QKeySequence::New); o->addAction(Qrc::text("menubar.file.open.dir"), parent(), SLOT(onMenuBarFileOpenDir()), QKeySequence::Open); o->addSeparator(); o->addAction(Qrc::text("menubar.file.open.file"), parent(), SLOT(onMenuBarFileOpenFile())); m->addAction(o->menuAction()); m->addSeparator(); m->addAction(Qrc::text("menubar.file.close"), parent(), SLOT(onMenuBarFileClose()), QKeySequence::Close); m->addAction(Qrc::text("menubar.file.close_all"), parent(), SLOT(onMenuBarFileCloseAll())); m->addSeparator(); m->addAction(Qrc::text("menubar.file.save"), parent(), SLOT(onMenuBarFileSave()), QKeySequence::Save); m->addAction(Qrc::text("menubar.file.save_all"), parent(), SLOT(onMenuBarFileSaveAll())); m->addSeparator(); QDir dir(Preferences::get()->previousProject()); if (dir.exists() && dir.exists("apktool.yml")) { _connections << connect(m->addAction(dir.dirName()), &QAction::triggered, [=] { emit projectOpen(dir.absolutePath()); }); } else { m->addAction(Qrc::text("menubar.file.recent_none"))->setEnabled(false); } m->addSeparator(); m->addAction(Qrc::text("menubar.file.terminal"), parent(), SLOT(onMenuBarFileTerminal())); m->addSeparator(); m->addAction(Qrc::text("menubar.file.quit"), parent(), SLOT(onMenuBarFileQuit()), QKeySequence::Quit); addAction(m->menuAction()); }
void Ide::onMenuBarProjectOpen(const QString &p) { _project = p; emit projectOpen(p); QString manifest; if (QFile::exists(manifest = PathUtils::combine(p, "AndroidManifest.xml"))) { emit fileOpen(manifest); } }
AS_NAMESPACE_START MenuBar::MenuBar(QWidget *p) : QMenuBar(p) { addFileMenu(); addEditMenu(); addProjectMenu(); addHelpMenu(); _connections << connect(this, SIGNAL(projectOpen(QString)), p, SLOT(onMenuBarProjectOpen(QString))); }
bool SettingsController::ensureProjectIsLoaded() { if (Project::instance()->isLoaded()) return true; int answer=KMessageBox::questionYesNoCancel(m_mainWindowPtr, i18n("You have accessed a feature that requires a project to be loaded. Do you want to create a new project or open an existing project?"), QString(), KGuiItem(i18nc("@action","New"),QIcon::fromTheme("document-new")), KGuiItem(i18nc("@action","Open"),QIcon::fromTheme("project-open")) ); if (answer==KMessageBox::Yes) return projectCreate(); if (answer==KMessageBox::No) return !projectOpen().isEmpty(); return false; }
APP_NAMESPACE_START ProjectDock::ProjectDock(QWidget *p) : QDockWidget(__("project", "docks"), p) { _connections << connect(this, SIGNAL(fileOpen(QString)), p, SLOT(onFileOpen(QString))); _connections << connect(p, SIGNAL(projectOpen(QString)), this, SLOT(onProjectOpen(QString))); _connections << connect(p, SIGNAL(projectReload()), this, SLOT(onProjectReload())); _tree = new QTreeWidget(this); _tree->header()->hide(); _tree->setContextMenuPolicy(Qt::CustomContextMenu); _tree->setEditTriggers(QAbstractItemView::NoEditTriggers); _tree->setSelectionBehavior(QAbstractItemView::SelectItems); _tree->setSelectionMode(QAbstractItemView::SingleSelection); _tree->setSortingEnabled(false); _connections << connect(_tree, &QTreeWidget::doubleClicked, this, &ProjectDock::onDoubleClicked); setObjectName("ProjectDock"); setWidget(_tree); }