Skip to content

Commit

Permalink
replace spaces with tabs, change settings to ini format, initial prox…
Browse files Browse the repository at this point in the history
…y support for captcha
  • Loading branch information
siavash119 committed Dec 11, 2017
1 parent d28efe8 commit aac96d3
Show file tree
Hide file tree
Showing 23 changed files with 170 additions and 157 deletions.
20 changes: 10 additions & 10 deletions boardtab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ BoardTab::BoardTab(QString board, BoardType type, QString search, QWidget *paren
TreeItem *childOf = mw->model->getItem(mw->selectionModel->currentIndex());
mw->onNewThread(mw,board,threadNum,QString(),childOf);
});
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
QFont temp = ui->lineEdit->font();
temp.setPointSize(settings.value("fontSize",14).toInt()-2);
ui->label->setFont(temp);
Expand All @@ -43,9 +43,9 @@ BoardTab::BoardTab(QString board, BoardType type, QString search, QWidget *paren
connect(mw,&MainWindow::setUse4chanPass,&myPostForm,&PostForm::usePass,UniqueDirect);
connect(mw,&MainWindow::setFontSize,this,&BoardTab::setFontSize,UniqueDirect);
connect(mw,&MainWindow::setImageSize,this,&BoardTab::setImageSize,UniqueDirect);
connect(mw,&MainWindow::reloadFilters,[=](){
filter = Filter();
});
connect(mw,&MainWindow::reloadFilters,[=](){
filter = Filter();
});

}

Expand Down Expand Up @@ -126,7 +126,7 @@ void BoardTab::setShortcuts()
connect(selectPost, &QAction::triggered,[=]{
QWidget *selected = ui->scrollAreaWidgetContents->childAt(50,ui->scrollArea->verticalScrollBar()->value());
while(selected && selected->parent()->objectName() != "scrollAreaWidgetContents") {
selected = qobject_cast<QWidget*>(selected->parent());
selected = qobject_cast<QWidget*>(selected->parent());
}
if(selected && selected->objectName() == "ThreadForm"){
static_cast<ThreadForm*>(selected)->imageClicked();
Expand Down Expand Up @@ -188,11 +188,11 @@ void BoardTab::onNewTF(ThreadForm *tf, ThreadForm *thread)

void BoardTab::onNewThread(ThreadForm *tf)
{
QString temp = tf->post.com % tf->post.sub % tf->post.name;
if(filter.filterMatched(temp)){
tf->hidden=true;
//tf->hide();
}
QString temp = tf->post.com % tf->post.sub % tf->post.name;
if(filter.filterMatched(temp)){
tf->hidden=true;
//tf->hide();
}
ui->threads->addWidget(tf);
tfMap.insert(tf->post.no,tf);
}
Expand Down
2 changes: 1 addition & 1 deletion boardtab.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public slots:

private:
Ui::BoardTab *ui;
Filter filter;
Filter filter;

private slots:
void on_pushButton_clicked();
Expand Down
8 changes: 4 additions & 4 deletions boardtabhelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ void BoardTabHelper::startUp(QString &board, BoardType type, QString search, QWi
//this->threadUrl = "https://a.4cdn.org/"+board+"/thread/"+thread+".json";
if(type == BoardType::Index) boardUrl = "https://a.4cdn.org/"+board+"/1.json";
else boardUrl = "https://a.4cdn.org/"+board+"/catalog.json";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
this->expandAll = settings.value("autoExpand",false).toBool();
QDir().mkpath(board+"/index/thumbs");
qDebug() << boardUrl;
Expand Down Expand Up @@ -99,7 +99,7 @@ void BoardTabHelper::loadPosts() {
qDebug().noquote() << "length of" << boardUrl << "is" << QString::number(length);
QtConcurrent::run(&BoardTabHelper::writeJson,board, rep);
//load new posts
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
bool loadFile = settings.value("autoExpand",false).toBool() || this->expandAll;
bool showIndexReplies = settings.value("showIndexReplies",false).toBool();
QStringList idFilters = settings.value("filters/"+board+"/id").toStringList();
Expand Down Expand Up @@ -145,8 +145,8 @@ QJsonArray BoardTabHelper::filterThreads(QByteArray &rep){
QJsonArray allThreads = QJsonDocument::fromJson(rep).array();
int numPages = allThreads.size();
QJsonArray pageThreads;
//-5 for some reason catalog goes blank on last 5 pages
for(int i=0;i<numPages-5;i++){
//-5 for some reason catalog goes blank on last 5 pages
for(int i=0;i<numPages-5;i++){
pageThreads = allThreads.at(i).toObject().value("threads").toArray();
int numThreads = pageThreads.size();
for(int j=0;j<numThreads;j++){
Expand Down
6 changes: 4 additions & 2 deletions captcha.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ Captcha::~Captcha(){
}

void Captcha::getCaptcha(){
loading = true;
replyChallenge = NULL;
qDebug() << "getting captcha from " + urlChallenge;
replyChallenge = nc.jsonManager->get(requestChallenge);
replyChallenge = nc.captchaManager->get(requestChallenge);
QObject::connect(replyChallenge,&QNetworkReply::finished,this,&Captcha::loadCaptcha);
}

Expand Down Expand Up @@ -45,7 +47,7 @@ void Captcha::loadCaptcha(){
void Captcha::getImage(QString challenge){
qDebug() << "getting image";
if(challenge.isEmpty()) return;
replyImage = nc.jsonManager->get(QNetworkRequest(QUrl(urlImageBase+challenge)));
replyImage = nc.captchaManager->get(QNetworkRequest(QUrl(urlImageBase+challenge)));
connect(replyImage,&QNetworkReply::finished,this,&Captcha::loadImage);
}

Expand Down
3 changes: 2 additions & 1 deletion captcha.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class Captcha : public QObject
QString challenge;
QString response;
QTimer timer;
bool loaded;
bool loaded = false;
bool loading = false;
void getCaptcha();
void getImage(QString challenge);
private:
Expand Down
50 changes: 25 additions & 25 deletions filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Filter::Filter()
{
filters = loadFilterFile();
filters = loadFilterFile();
}

/*void Filter::htmlParse(QString search) {
Expand All @@ -29,33 +29,33 @@ QSet<QString> Filter::findQuotes(QString post)
//TODO allow change filter file location setting
//TODO listen for file changes and reload filter
QSet<QRegularExpression> Filter::loadFilterFile(){
QSet<QRegularExpression> set;
QString filterFile = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/qtchan/" + "filters.conf";
QFile inputFile(filterFile);
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
//replace \ with \\ for c++ regexp
if(line.at(0)=='#') continue;
line = line.replace("\\\\","\\\\\\\\");
set.insert(QRegularExpression(line));
}
}
return set;
QSet<QRegularExpression> set;
QString filterFile = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/qtchan/" + "filters.conf";
QFile inputFile(filterFile);
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
//replace \ with \\ for c++ regexp
if(line.at(0)=='#') continue;
line = line.replace("\\\\","\\\\\\\\");
set.insert(QRegularExpression(line));
}
}
return set;
}

bool Filter::filterMatched(QString post){
QSetIterator<QRegularExpression> i(filters);
while (i.hasNext()){
QRegularExpression temp = i.next();
if(temp.match(post).hasMatch()){
return true;
}
}
return false;
QSetIterator<QRegularExpression> i(filters);
while (i.hasNext()){
QRegularExpression temp = i.next();
if(temp.match(post).hasMatch()){
return true;
}
}
return false;
}

/*
Expand Down
8 changes: 4 additions & 4 deletions filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ class Filter
Filter();
void regexp(QString search);
//void htmlParse(QString search);
static QSet<QString> findQuotes(QString post);
bool filterMatched(QString post);
QSet<QRegularExpression> filters;
static QSet<QString> findQuotes(QString post);
bool filterMatched(QString post);
QSet<QRegularExpression> filters;

private:
QRegularExpression quotelink;
QRegularExpressionMatch quotelinkMatch;
QRegularExpressionMatchIterator quotelinkMatches;
QSet<QRegularExpression> loadFilterFile();
QSet<QRegularExpression> loadFilterFile();
};

#endif // FILTER_H
7 changes: 3 additions & 4 deletions main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "mainwindow.h"
#include <QApplication>
#include <QSettings>
#include "mainwindow.h"

MainWindow *mw;

Expand All @@ -13,9 +13,8 @@ int main(int argc, char *argv[])
//qputenv("QT_SCALE_FACTOR","0.2");
QApplication a(argc, argv);
QFont font = QGuiApplication::font();
//QSettings settings;
//font.setPointSize(settings.value("fontSize",14).toInt());
font.setPointSize(14);
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
font.setPointSize(settings.value("fontSize",14).toInt());
a.setFont(font);
MainWindow w;
w.show();
Expand Down
42 changes: 21 additions & 21 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,21 @@ MainWindow::MainWindow(QWidget *parent) :
ui->navBar->installEventFilter(this);
ui->treeView->setModel(model);
ui->treeView->installEventFilter(this);
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
int fontSize = settings.value("fontSize",14).toInt();
QFont temp = ui->treeView->font();
temp.setPointSize(fontSize);
ui->treeView->setFont(temp);
ui->navBar->setFont(temp);
selectionModel = ui->treeView->selectionModel();
selectionConnection = connect(selectionModel,&QItemSelectionModel::selectionChanged,this,
&MainWindow::onSelectionChanged, Qt::UniqueConnection);
&MainWindow::onSelectionChanged, Qt::UniqueConnection);
settingsView.setParent(this,Qt::Tool
| Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint);
| Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint);
connect(&settingsView,&Settings::update,[=](QString field, QVariant value){
if(field == "use4chanPass" && value.toBool() == true){
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
QString defaultCookies = QDir::homePath() + "/.config/qtchan/cookies";
nc.loadCookies(settings.value("passFile",defaultCookies).toString());
}
Expand Down Expand Up @@ -83,7 +83,7 @@ void MainWindow::setShortcuts()
connect(firstItem, &QAction::triggered,[=]{
if(!model->rowCount()) return;
selectionModel->setCurrentIndex(model->index(0,0),
QItemSelectionModel::ClearAndSelect);
QItemSelectionModel::ClearAndSelect);
});
this->addAction(firstItem);

Expand All @@ -109,7 +109,7 @@ void MainWindow::setShortcuts()
tm = tm->child(tm->childCount()-1);
}
selectionModel->setCurrentIndex(model->getIndex(tm),
QItemSelectionModel::ClearAndSelect);
QItemSelectionModel::ClearAndSelect);
});
this->addAction(lastItem);

Expand Down Expand Up @@ -158,7 +158,7 @@ void MainWindow::setShortcuts()
zoomOut->setShortcut(QKeySequence::ZoomOut);
connect(zoomOut, &QAction::triggered, [=](){
qDebug() << "decreasing text size";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
int fontSize = settings.value("fontSize",14).toInt()-2;
if(fontSize < 4) fontSize = 4;
settings.setValue("fontSize",fontSize);
Expand All @@ -174,7 +174,7 @@ void MainWindow::setShortcuts()
zoomIn->setShortcut(QKeySequence::ZoomIn);
connect(zoomIn, &QAction::triggered, [=](){
qDebug() << "increasing text size";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
int fontSize = settings.value("fontSize",14).toInt()+2;
settings.setValue("fontSize",fontSize);
QFont temp = ui->treeView->font();
Expand All @@ -188,7 +188,7 @@ void MainWindow::setShortcuts()
scaleImagesDown->setShortcut(QKeySequence("Ctrl+9"));
connect(scaleImagesDown, &QAction::triggered, [=](){
qDebug() << "decreasing image size";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
int imageSize = settings.value("imageSize",250).toInt()-25;
if(imageSize < 25) imageSize = 25;
settings.setValue("imageSize",imageSize);
Expand All @@ -200,7 +200,7 @@ void MainWindow::setShortcuts()
scaleImagesUp->setShortcut(QKeySequence("Ctrl+0"));
connect(scaleImagesUp, &QAction::triggered, [=](){
qDebug() << "increasing image size";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
int imageSize = settings.value("imageSize",250).toInt()+25;
settings.setValue("imageSize",imageSize);
emit setImageSize(imageSize);
Expand Down Expand Up @@ -248,11 +248,11 @@ void MainWindow::setShortcuts()
sizeUp->setShortcutContext(Qt::ApplicationShortcut);
this->addAction(sizeUp);

ui->actionReloadFilters->setShortcut(QKeySequence("F7"));
ui->actionReloadFilters->setShortcutContext(Qt::ApplicationShortcut);
connect(ui->actionReloadFilters,&QAction::triggered,[=](){
emit reloadFilters();
});
ui->actionReloadFilters->setShortcut(QKeySequence("F7"));
ui->actionReloadFilters->setShortcutContext(Qt::ApplicationShortcut);
connect(ui->actionReloadFilters,&QAction::triggered,[=](){
emit reloadFilters();
});
}

MainWindow::~MainWindow()
Expand All @@ -265,7 +265,7 @@ MainWindow::~MainWindow()
//TODO put toggle functions in 1 function with argument
void MainWindow::toggleAutoUpdate()
{
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
bool autoUpdate = !settings.value("autoUpdate").toBool();
qDebug () << "setting autoUpdate to" << autoUpdate;
settings.setValue("autoUpdate",autoUpdate);
Expand All @@ -275,7 +275,7 @@ void MainWindow::toggleAutoUpdate()

void MainWindow::toggleAutoExpand()
{
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
bool autoExpand = !settings.value("autoExpand").toBool();
qDebug () << "setting autoExpand to" << autoExpand;
settings.setValue("autoExpand",autoExpand);
Expand All @@ -291,7 +291,7 @@ void MainWindow::updateSettings(QString field, QVariant value){
else if(field == "use4chanPass"){
emit setUse4chanPass(value.toBool());
if(value.toBool()){
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
QString defaultCookies = QDir::homePath() + "/.config/qtchan/cookies";
nc.loadCookies(settings.value("passFile",defaultCookies).toString());
}
Expand Down Expand Up @@ -600,7 +600,7 @@ void MainWindow::focusBar()
void MainWindow::saveSession()
{
qDebug().noquote() << "Saving session.";
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
saveSessionToFile(settings.value("sessionFile","settings.txt").toString());
}

Expand Down Expand Up @@ -641,7 +641,7 @@ void MainWindow::saveSessionToFile(QString fileName)

void MainWindow::loadSession()
{
QSettings settings;
QSettings settings(QSettings::IniFormat,QSettings::UserScope,"qtchan","qtchan");
QString sessionFile = settings.value("sessionFile","settings.txt").toString();
loadSessionFromFile(sessionFile);
}
Expand Down
2 changes: 1 addition & 1 deletion mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public slots:
void setUse4chanPass(bool use4chanPass);
void setFontSize(int fontSize);
void setImageSize(int imageSize);
void reloadFilters();
void reloadFilters();
};

extern MainWindow *mw;
Expand Down

0 comments on commit aac96d3

Please sign in to comment.