diff --git a/src/danbooru_clientui.rc b/src/danbooru_clientui.rc
index c7b1096..8da2f1d 100644
--- a/src/danbooru_clientui.rc
+++ b/src/danbooru_clientui.rc
@@ -5,7 +5,7 @@
Main Toolbar
-
+
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 024ebd7..8544402 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -35,6 +35,7 @@
#include
#include
#include
+#include
#include "libdanbooru/danbooruservice.h"
#include "libdanbooru/danboorupost.h"
@@ -109,10 +110,10 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
dockWidget->setWidget(m_tableView);
dockWidget->setObjectName("PoolView");
// Prevent the use of winId() when detached, leads to QQuickWidget bugs
- dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures);
+ dockWidget->setFeatures(QDockWidget::DockWidgetClosable);
addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
- dockWidget->show();
- m_tableView->show();
+ m_tableView->hide();
+ dockWidget->hide();
// then, setup our actions
setupActions();
@@ -135,7 +136,12 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
}
actionCollection()->action(QLatin1String("fetch"))->setEnabled(true);
+ actionCollection()->action(QLatin1String("find"))->setEnabled(true);
+ actionCollection()->action(QLatin1String("poolDownload"))->setEnabled(true);
+
+ m_view->rootObject()->setProperty("poolMode", QVariant(false));
m_connectWidget->hide();
+ m_service->setPostTags(QStringList());
m_service->getPostList();
});
@@ -161,6 +167,11 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
});
+ connect(dockWidget, &QDockWidget::visibilityChanged, [this](bool visible) {
+ actionCollection()->action(QLatin1String("poolDownload"))->setChecked(visible);
+
+ });
+
}
DanbooruMainWindow::~DanbooruMainWindow()
@@ -188,19 +199,51 @@ void DanbooruMainWindow::setupActions()
QAction *fetchAction = new QAction(QIcon::fromTheme(QLatin1String("download")),
i18n("Download"), this);
+ QAction *findAction = new QAction(QIcon::fromTheme(QLatin1String("edit-find")),
+ i18n("Search"), this);
+ KToggleAction *poolAction = new KToggleAction(QIcon::fromTheme(QLatin1String("image-x-generic")),
+ i18n("Pools"), this);
fetchAction->setEnabled(false);
+ findAction->setEnabled(false);
+ poolAction->setEnabled(false);
actionCollection()->addAction(QLatin1String("connect"), connectAction);
actionCollection()->addAction(QLatin1String("fetch"), fetchAction);
+ actionCollection()->addAction(QLatin1String("find"), findAction);
+ actionCollection()->addAction(QLatin1String("poolDownload"), poolAction);
+
actionCollection()->setDefaultShortcut(connectAction, KStandardShortcut::Open);
- actionCollection()->setDefaultShortcut(fetchAction, KStandardShortcut::Find);
+ actionCollection()->setDefaultShortcut(findAction, KStandardShortcut::Find);
// actionCollection()->removeAction(actionCollection()->action("help_contents"));
KStandardAction::quit(qApp, SLOT(quit()), actionCollection());
KStandardAction::preferences(this, SLOT(optionsPreferences()), actionCollection());
+
connect(connectAction, &QAction::triggered, this, &DanbooruMainWindow::connectToBoard);
connect(fetchAction, &QAction::triggered, this, &DanbooruMainWindow::downloadPosts);
+ connect(poolAction, &KToggleAction::toggled, [this](bool checked) {
+ if (!m_service) {
+ return;
+ }
+
+ QDockWidget* dockWidget = findChild(QLatin1String("PoolView"));
+
+ if (checked) {
+
+ if (m_poolModel->rowCount() == 0) {
+ m_service->getPoolList();
+ }
+
+ dockWidget->show();
+ m_tableView->show();
+
+
+ } else {
+ dockWidget->hide();
+ m_tableView->hide();
+ }
+ });
}
@@ -224,7 +267,9 @@ void DanbooruMainWindow::downloadPosts()
return;
}
- m_service->getPoolList();
+ m_service->setPostTags(QStringList());
+ m_view->rootObject()->setProperty("poolMode", QVariant(false));
+ m_service->getPostList();
}