summaryrefslogtreecommitdiff
path: root/src/modinfodialogfiletree.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-04 12:42:15 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2019-12-04 13:23:02 -0500
commita0fa896e68856ec5204e7f74db775bdb3595010a (patch)
tree424496627105af026cb845068c21358f27fbb2e3 /src/modinfodialogfiletree.cpp
parentb209a8e47f866a129c53cef43539e96ab8722405 (diff)
added open previews on double-click option
implemented for filetree
Diffstat (limited to 'src/modinfodialogfiletree.cpp')
-rw-r--r--src/modinfodialogfiletree.cpp42
1 files changed, 33 insertions, 9 deletions
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);