Add a basic pool widget
More work is needed to make it workable: - Download pools - Clearing the thumbnail area when things are fetched - Find a way to get more posts from the same pool
This commit is contained in:
parent
8ed916ef20
commit
1af084647f
2 changed files with 35 additions and 4 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QDockWidget>
|
||||||
|
|
||||||
#include <kactioncollection.h>
|
#include <kactioncollection.h>
|
||||||
#include <KStandardAction>
|
#include <KStandardAction>
|
||||||
|
@ -36,7 +37,9 @@
|
||||||
|
|
||||||
#include "libdanbooru/danbooruservice.h"
|
#include "libdanbooru/danbooruservice.h"
|
||||||
#include "libdanbooru/danboorupost.h"
|
#include "libdanbooru/danboorupost.h"
|
||||||
|
#include "libdanbooru/danboorupool.h"
|
||||||
#include "model/danboorupostmodel.h"
|
#include "model/danboorupostmodel.h"
|
||||||
|
#include "model/danboorupoolmodel.h"
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "danbooruconnectwidget.h"
|
#include "danbooruconnectwidget.h"
|
||||||
#include "danboorusettings.h"
|
#include "danboorusettings.h"
|
||||||
|
@ -55,7 +58,9 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
|
||||||
: KXmlGuiWindow(parent),
|
: KXmlGuiWindow(parent),
|
||||||
m_view(new QQuickWidget(this)),
|
m_view(new QQuickWidget(this)),
|
||||||
m_model(new DanbooruPostModel(this)),
|
m_model(new DanbooruPostModel(this)),
|
||||||
|
m_poolModel(new DanbooruPoolModel(this)),
|
||||||
m_service(new DanbooruService()),
|
m_service(new DanbooruService()),
|
||||||
|
m_tableView(new QTableView(this)),
|
||||||
m_cache(0)
|
m_cache(0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -95,6 +100,18 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
|
||||||
statusBar()->addPermanentWidget(m_connectWidget);
|
statusBar()->addPermanentWidget(m_connectWidget);
|
||||||
m_connectWidget->hide();
|
m_connectWidget->hide();
|
||||||
|
|
||||||
|
// Set up PoolWidget
|
||||||
|
m_tableView->setModel(m_poolModel);
|
||||||
|
QDockWidget* dockWidget = new QDockWidget(i18n("Pools"), this);
|
||||||
|
dockWidget->setAllowedAreas(Qt::BottomDockWidgetArea);
|
||||||
|
dockWidget->setWidget(m_tableView);
|
||||||
|
dockWidget->setObjectName("PoolView");
|
||||||
|
// Prevent the use of winId() when detached, leads to QQuickWidget bugs
|
||||||
|
dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||||
|
addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
|
||||||
|
dockWidget->show();
|
||||||
|
m_tableView->show();
|
||||||
|
|
||||||
// then, setup our actions
|
// then, setup our actions
|
||||||
setupActions();
|
setupActions();
|
||||||
|
|
||||||
|
@ -125,7 +142,14 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
|
||||||
m_connectWidget->hide();
|
m_connectWidget->hide();
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(m_service, &Danbooru::DanbooruService::postDownloaded, m_model, &Danbooru::DanbooruPostModel::addPost);
|
connect(m_service, &Danbooru::DanbooruService::postDownloaded, m_model,
|
||||||
|
&Danbooru::DanbooruPostModel::addPost);
|
||||||
|
connect(m_service, &Danbooru::DanbooruService::poolDownloaded, m_poolModel,
|
||||||
|
&DanbooruPoolModel::addPool);
|
||||||
|
connect(m_service, &Danbooru::DanbooruService::poolDownloadFinished, [this]() {
|
||||||
|
m_tableView->resizeColumnsToContents();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +202,7 @@ void DanbooruMainWindow::connectToBoard()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_model->clear();
|
m_model->clear();
|
||||||
|
m_poolModel->clear();
|
||||||
m_service->reset();
|
m_service->reset();
|
||||||
m_connectWidget->show();
|
m_connectWidget->show();
|
||||||
|
|
||||||
|
@ -189,8 +214,7 @@ void DanbooruMainWindow::downloadPosts()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Pick from configuration
|
m_service->getPoolList();
|
||||||
m_service->getPostList();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,15 @@
|
||||||
#ifndef DANBOORU_CLIENT_H
|
#ifndef DANBOORU_CLIENT_H
|
||||||
#define DANBOORU_CLIENT_H
|
#define DANBOORU_CLIENT_H
|
||||||
|
|
||||||
|
#include "libdanbooru/danboorupost.h"
|
||||||
|
|
||||||
|
#include <QTableView>
|
||||||
|
|
||||||
#include <kxmlguiwindow.h>
|
#include <kxmlguiwindow.h>
|
||||||
#include <KSharedDataCache>
|
#include <KSharedDataCache>
|
||||||
#include <KImageCache>
|
#include <KImageCache>
|
||||||
|
|
||||||
#include "libdanbooru/danboorupost.h"
|
|
||||||
|
|
||||||
class QQuickWidget;
|
class QQuickWidget;
|
||||||
|
|
||||||
|
@ -37,6 +41,7 @@ namespace Danbooru
|
||||||
class DanbooruClientView;
|
class DanbooruClientView;
|
||||||
class DanbooruService;
|
class DanbooruService;
|
||||||
class DanbooruPostModel;
|
class DanbooruPostModel;
|
||||||
|
class DanbooruPoolModel;
|
||||||
class DanbooruConnectWidget;
|
class DanbooruConnectWidget;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,8 +59,10 @@ class DanbooruMainWindow : public KXmlGuiWindow
|
||||||
private:
|
private:
|
||||||
QQuickWidget *m_view;
|
QQuickWidget *m_view;
|
||||||
DanbooruPostModel *m_model;
|
DanbooruPostModel *m_model;
|
||||||
|
DanbooruPoolModel *m_poolModel;
|
||||||
DanbooruService *m_service;
|
DanbooruService *m_service;
|
||||||
DanbooruConnectWidget *m_connectWidget;
|
DanbooruConnectWidget *m_connectWidget;
|
||||||
|
QTableView *m_tableView;
|
||||||
KImageCache *m_cache;
|
KImageCache *m_cache;
|
||||||
static QHash<int, DanbooruPost::Rating> ratingMap;
|
static QHash<int, DanbooruPost::Rating> ratingMap;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue