From 156a73ff8c180aa2c60b0f7090db2fb0f7bf75c2 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Thu, 14 Sep 2017 20:25:03 +0800 Subject: [PATCH] vfilelist: add two context menu items --- src/vfilelist.cpp | 33 +++++++++++++++++++++++++++++++++ src/vfilelist.h | 2 ++ 2 files changed, 35 insertions(+) diff --git a/src/vfilelist.cpp b/src/vfilelist.cpp index 615b56a0..1f4816de 100644 --- a/src/vfilelist.cpp +++ b/src/vfilelist.cpp @@ -95,6 +95,28 @@ void VFileList::initActions() connect(newFileAct, SIGNAL(triggered(bool)), this, SLOT(newFile())); + m_openInReadAct = new QAction(QIcon(":/resources/icons/reading.svg"), + tr("&Open In Read Mode"), this); + m_openInReadAct->setToolTip(tr("Open current note in read mode")); + connect(m_openInReadAct, &QAction::triggered, + this, [this]() { + QListWidgetItem *item = fileList->currentItem(); + if (item) { + emit fileClicked(getVFile(item), OpenFileMode::Read); + } + }); + + m_openInEditAct = new QAction(QIcon(":/resources/icons/editing.svg"), + tr("Open In &Edit Mode"), this); + m_openInEditAct->setToolTip(tr("Open current note in edit mode")); + connect(m_openInEditAct, &QAction::triggered, + this, [this]() { + QListWidgetItem *item = fileList->currentItem(); + if (item) { + emit fileClicked(getVFile(item), OpenFileMode::Edit); + } + }); + deleteFileAct = new QAction(QIcon(":/resources/icons/delete_note.svg"), tr("&Delete"), this); deleteFileAct->setToolTip(tr("Delete selected note")); @@ -399,7 +421,18 @@ void VFileList::contextMenuRequested(QPoint pos) if (!m_directory) { return; } + + if (item && fileList->selectedItems().size() == 1) { + VFile *file = getVFile(item); + if (file && file->getDocType() == DocType::Markdown) { + menu.addAction(m_openInReadAct); + menu.addAction(m_openInEditAct); + menu.addSeparator(); + } + } + menu.addAction(newFileAct); + if (item) { menu.addAction(deleteFileAct); menu.addSeparator(); diff --git a/src/vfilelist.h b/src/vfilelist.h index 6460176d..0736951b 100644 --- a/src/vfilelist.h +++ b/src/vfilelist.h @@ -100,6 +100,8 @@ private: QVector > m_copiedFiles; // Actions + QAction *m_openInReadAct; + QAction *m_openInEditAct; QAction *newFileAct; QAction *deleteFileAct; QAction *fileInfoAct;