summaryrefslogtreecommitdiff
path: root/src/modinfodialogimages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinfodialogimages.cpp')
-rw-r--r--src/modinfodialogimages.cpp39
1 files changed, 35 insertions, 4 deletions
diff --git a/src/modinfodialogimages.cpp b/src/modinfodialogimages.cpp
index 5b35a9b1..22c004e6 100644
--- a/src/modinfodialogimages.cpp
+++ b/src/modinfodialogimages.cpp
@@ -1,13 +1,18 @@
#include "modinfodialogimages.h"
#include "ui_modinfodialog.h"
+#include "utility.h"
ImagesTab::ImagesTab(
OrganizerCore& oc, PluginContainer& plugin,
QWidget* parent, Ui::ModInfoDialog* ui, int id) :
ModInfoDialogTab(oc, plugin, parent, ui, id),
- m_image(new ScalableImage), m_margins(3), m_padding(5), m_border(1)
+ m_image(new ScalableImage), m_margins(3), m_padding(5), m_border(1),
+ m_selection(nullptr)
{
- ui->imagesImage->layout()->addWidget(m_image);
+ auto* ly = new QVBoxLayout(ui->imagesImage);
+ ly->setContentsMargins({0, 0, 0, 0});
+ ly->addWidget(m_image);
+
delete ui->imagesThumbnails->layout();
ui->tabImagesSplitter->setSizes({128, 1});
@@ -18,13 +23,15 @@ ImagesTab::ImagesTab(
ui->imagesScrollArea->setTab(this);
ui->imagesThumbnails->setTab(this);
+ connect(ui->imagesExplore, &QAbstractButton::clicked, [&]{ onExplore(); });
+
getSupportedFormats();
}
void ImagesTab::clear()
{
- m_image->clear();
m_files.clear();
+ select(nullptr);
setHasData(false);
}
@@ -64,6 +71,21 @@ void ImagesTab::getSupportedFormats()
}
}
+void ImagesTab::select(const File* f)
+{
+ if (f) {
+ ui->imagesPath->setText(f->path);
+ ui->imagesExplore->setEnabled(true);
+ m_image->setImage(f->original);
+ } else {
+ ui->imagesPath->clear();
+ ui->imagesExplore->setEnabled(false);
+ m_image->clear();
+ }
+
+ m_selection = f;
+}
+
int ImagesTab::calcThumbSize(int availableWidth) const
{
return availableWidth - (m_margins * 2);
@@ -227,10 +249,19 @@ void ImagesTab::thumbnailsMouseEvent(QMouseEvent* e)
}
if (const auto* file=fileAtPos(e->pos())) {
- m_image->setImage(file->original);
+ select(file);
}
}
+void ImagesTab::onExplore()
+{
+ if (!m_selection) {
+ return;
+ }
+
+ MOBase::shell::ExploreFile(m_selection->path);
+}
+
bool ImagesTab::needsReload(const File& file, const QSize& imageSize) const
{
if (file.failed) {