Handle blacklists and user-supplied URLs in main window
Previously, hardcoded URLs would be supplied to the connect widget: now the preferences are correctly handled.
This commit is contained in:
		
					parent
					
						
							
								64021c47e9
							
						
					
				
			
			
				commit
				
					
						169c10288e
					
				
			
		
					 1 changed files with 24 additions and 8 deletions
				
			
		| 
						 | 
					@ -47,6 +47,7 @@
 | 
				
			||||||
#include "danboorusearchwidget.h"
 | 
					#include "danboorusearchwidget.h"
 | 
				
			||||||
#include "danboorusettings.h"
 | 
					#include "danboorusettings.h"
 | 
				
			||||||
#include "generalpage.h"
 | 
					#include "generalpage.h"
 | 
				
			||||||
 | 
					#include "blacklistpage.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Danbooru
 | 
					namespace Danbooru
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -63,17 +64,15 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
 | 
				
			||||||
      m_model(new DanbooruPostModel(this)),
 | 
					      m_model(new DanbooruPostModel(this)),
 | 
				
			||||||
      m_poolModel(new DanbooruPoolModel(this)),
 | 
					      m_poolModel(new DanbooruPoolModel(this)),
 | 
				
			||||||
      m_service(new DanbooruService()),
 | 
					      m_service(new DanbooruService()),
 | 
				
			||||||
      m_connectWidget(nullptr),
 | 
					      m_connectWidget(Q_NULLPTR),
 | 
				
			||||||
      m_searchWidget(new DanbooruSearchWidget(this)),
 | 
					      m_searchWidget(new DanbooruSearchWidget(this)),
 | 
				
			||||||
      m_tableView(new QTableView(this)),
 | 
					      m_tableView(new QTableView(this)),
 | 
				
			||||||
      m_cache(nullptr)
 | 
					      m_cache(Q_NULLPTR)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    m_service->setParent(this);
 | 
					    m_service->setParent(this);
 | 
				
			||||||
    setCentralWidget(m_view);
 | 
					    setCentralWidget(m_view);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//     QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    qmlRegisterType<Danbooru::DanbooruPost>("DanbooruClient", 1, 0, "DanbooruPost");
 | 
					    qmlRegisterType<Danbooru::DanbooruPost>("DanbooruClient", 1, 0, "DanbooruPost");
 | 
				
			||||||
    qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
 | 
					    qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
 | 
				
			||||||
    qRegisterMetaType<DanbooruPost::Rating>();
 | 
					    qRegisterMetaType<DanbooruPost::Rating>();
 | 
				
			||||||
| 
						 | 
					@ -100,11 +99,7 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
 | 
				
			||||||
    m_view->setSource(QUrl::fromLocalFile(qmlViewPath));
 | 
					    m_view->setSource(QUrl::fromLocalFile(qmlViewPath));
 | 
				
			||||||
    m_view->rootObject()->setProperty("poolMode", QVariant(false));
 | 
					    m_view->rootObject()->setProperty("poolMode", QVariant(false));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QVector<QUrl> boardsList = { QUrl("http://konachan.com"), QUrl("https://yande.re") };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    m_connectWidget = new DanbooruConnectWidget(boardsList, this);
 | 
					 | 
				
			||||||
    statusBar()->addPermanentWidget(m_connectWidget);
 | 
					    statusBar()->addPermanentWidget(m_connectWidget);
 | 
				
			||||||
    m_connectWidget->hide();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setupDockWidgets();
 | 
					    setupDockWidgets();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,6 +185,24 @@ void DanbooruMainWindow::loadSettings()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    m_service->setMaxPosts(DanbooruSettings::self()->maxPosts());
 | 
					    m_service->setMaxPosts(DanbooruSettings::self()->maxPosts());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QVector<QUrl> boardsList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QStringList::const_iterator it;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for(it = DanbooruSettings::self()->boards().constBegin();
 | 
				
			||||||
 | 
					        it != DanbooruSettings::self()->boards().constEnd();
 | 
				
			||||||
 | 
					        ++it) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        boardsList.append(QUrl::fromUserInput(*it));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!m_connectWidget) {
 | 
				
			||||||
 | 
					        m_connectWidget = new DanbooruConnectWidget(boardsList, this);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        m_connectWidget->setBoards(boardsList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -321,6 +334,7 @@ void DanbooruMainWindow::connectToBoard()
 | 
				
			||||||
    m_model->clear();
 | 
					    m_model->clear();
 | 
				
			||||||
    m_poolModel->clear();
 | 
					    m_poolModel->clear();
 | 
				
			||||||
    m_service->reset();
 | 
					    m_service->reset();
 | 
				
			||||||
 | 
					    statusBar()->show();
 | 
				
			||||||
    m_connectWidget->show();
 | 
					    m_connectWidget->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -345,6 +359,8 @@ void DanbooruMainWindow::optionsPreferences()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dialog->addPage(new GeneralPage(DanbooruSettings::self(), this), i18n("General"),
 | 
					    dialog->addPage(new GeneralPage(DanbooruSettings::self(), this), i18n("General"),
 | 
				
			||||||
        "table");
 | 
					        "table");
 | 
				
			||||||
 | 
					    dialog->addPage(new BlacklistPage(DanbooruSettings::self(), this), i18n("Tag blacklist"),
 | 
				
			||||||
 | 
					                    "configure");
 | 
				
			||||||
    connect(dialog, &KConfigDialog::settingsChanged, this, &DanbooruMainWindow::loadSettings);
 | 
					    connect(dialog, &KConfigDialog::settingsChanged, this, &DanbooruMainWindow::loadSettings);
 | 
				
			||||||
    dialog->show();
 | 
					    dialog->show();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue