From fdb8c3bb3aedf8f13f8f170490113e56818b55b7 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Sat, 18 Mar 2017 18:12:36 +0800 Subject: [PATCH] toggle m_importNoteAct according to current directory state --- src/vmainwindow.cpp | 20 +++++++++++--------- src/vmainwindow.h | 1 + 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index 0ff20f54..ad628013 100644 --- a/src/vmainwindow.cpp +++ b/src/vmainwindow.cpp @@ -315,11 +315,12 @@ void VMainWindow::initFileMenu() QMenu *fileMenu = menuBar()->addMenu(tr("&File")); // Import notes from files. - QAction *importNoteAct = new QAction(QIcon(":/resources/icons/import_note.svg"), - tr("&Import Notes From Files"), this); - importNoteAct->setStatusTip(tr("Import notes from files into current directory")); - connect(importNoteAct, &QAction::triggered, + m_importNoteAct = new QAction(QIcon(":/resources/icons/import_note.svg"), + tr("&Import Notes From Files"), this); + m_importNoteAct->setStatusTip(tr("Import notes from files into current directory")); + connect(m_importNoteAct, &QAction::triggered, this, &VMainWindow::importNoteFromFile); + m_importNoteAct->setEnabled(false); // Settings. QAction *settingsAct = new QAction(QIcon(":/resources/icons/settings.svg"), @@ -328,7 +329,7 @@ void VMainWindow::initFileMenu() connect(settingsAct, &QAction::triggered, this, &VMainWindow::viewSettings); - fileMenu->addAction(importNoteAct); + fileMenu->addAction(m_importNoteAct); fileMenu->addSeparator(); fileMenu->addAction(settingsAct); } @@ -532,18 +533,18 @@ void VMainWindow::importNoteFromFile() // Update lastPath lastPath = QFileInfo(files[0]).path(); - QStringList failedFiles; + int failedFiles = 0; for (int i = 0; i < files.size(); ++i) { bool ret = fileList->importFile(files[i]); if (!ret) { - failedFiles.append(files[i]); + ++failedFiles; } } QMessageBox msgBox(QMessageBox::Information, tr("Import Notes From File"), tr("Imported notes: %1 succeed, %2 failed.") - .arg(files.size() - failedFiles.size()).arg(failedFiles.size()), + .arg(files.size() - failedFiles).arg(failedFiles), QMessageBox::Ok, this); - if (!failedFiles.isEmpty()) { + if (failedFiles > 0) { msgBox.setInformativeText(tr("Fail to import files maybe due to name conflicts.")); } msgBox.exec(); @@ -874,6 +875,7 @@ const QVector >& VMainWindow::getPalette() const void VMainWindow::handleCurrentDirectoryChanged(const VDirectory *p_dir) { newNoteAct->setEnabled(p_dir); + m_importNoteAct->setEnabled(p_dir); } void VMainWindow::handleCurrentNotebookChanged(const VNotebook *p_notebook) diff --git a/src/vmainwindow.h b/src/vmainwindow.h index 82059b64..8e566335 100644 --- a/src/vmainwindow.h +++ b/src/vmainwindow.h @@ -125,6 +125,7 @@ private: QAction *saveExitAct; QAction *discardExitAct; QAction *expandViewAct; + QAction *m_importNoteAct; QAction *m_insertImageAct; QAction *m_findReplaceAct;