From a0fa896e68856ec5204e7f74db775bdb3595010a Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Wed, 4 Dec 2019 12:42:15 -0500 Subject: added open previews on double-click option implemented for filetree --- src/modinfodialogfiletree.cpp | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'src/modinfodialogfiletree.cpp') diff --git a/src/modinfodialogfiletree.cpp b/src/modinfodialogfiletree.cpp index e94b0a4f..c79a5264 100644 --- a/src/modinfodialogfiletree.cpp +++ b/src/modinfodialogfiletree.cpp @@ -32,10 +32,6 @@ FileTreeTab::FileTreeTab(ModInfoDialogTabContext cx) m_actions.hide = new QAction(tr("&Hide"), ui->filetree); m_actions.unhide = new QAction(tr("&Unhide"), ui->filetree); - auto bold = m_actions.open->font(); - bold.setBold(true); - m_actions.open->setFont(bold); - connect(m_actions.newFolder, &QAction::triggered, [&]{ onCreateDirectory(); }); connect(m_actions.open, &QAction::triggered, [&]{ onOpen(); }); connect(m_actions.runHooked, &QAction::triggered, [&]{ onRunHooked(); }); @@ -152,10 +148,17 @@ void FileTreeTab::onOpen() return; } - core().processRunner() - .setFromFile(parentWidget(), m_fs->filePath(selection)) - .setWaitForCompletion() - .run(); + const auto path = m_fs->filePath(selection); + const auto tryPreview = core().settings().interface().doubleClicksOpenPreviews(); + + if (tryPreview && canPreviewFile(plugin(), false, path)) { + core().previewFile(parentWidget(), mod().name(), path); + } else { + core().processRunner() + .setFromFile(parentWidget(), path) + .setWaitForCompletion() + .run(); + } } void FileTreeTab::onRunHooked() @@ -408,7 +411,6 @@ void FileTreeTab::onContextMenu(const QPoint &pos) // this is a multiple selection, don't show open or explore actions so users // don't open a thousand files enableNewFolder = true; - enablePreview = true; enableDelete = true; if (selection.size() < max_scan_for_context_menu) { @@ -446,6 +448,28 @@ void FileTreeTab::onContextMenu(const QPoint &pos) menu.addAction(m_actions.preview); m_actions.preview->setEnabled(enablePreview); + auto bold = m_actions.preview->font(); + bold.setBold(true); + auto notBold = m_actions.preview->font(); + notBold.setBold(false); + + // preview is bold if the file is previewable and [the preview on double-click + // option is enabled or the file can't be opened]; open is bold if the file + // can be opened and cannot be previewed + if (enablePreview && core().settings().interface().doubleClicksOpenPreviews()) { + m_actions.open->setFont(notBold); + m_actions.preview->setFont(bold); + } else if (enableOpen) { + m_actions.open->setFont(bold); + m_actions.preview->setFont(notBold); + } else if (enablePreview) { + m_actions.open->setFont(notBold); + m_actions.preview->setFont(bold); + } else { + m_actions.open->setFont(notBold); + m_actions.preview->setFont(notBold); + } + menu.addAction(m_actions.explore); m_actions.explore->setEnabled(enableExplore); -- cgit v1.3.1