aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUGS.md6
-rw-r--r--src/browser.cpp37
-rw-r--r--src/lib/downloads/downloadswidget.cpp6
-rw-r--r--src/lib/downloads/downloadswidget.h2
-rw-r--r--src/main.cpp15
-rw-r--r--src/webengine/webpage.cpp8
-rw-r--r--src/webengine/webpage.h8
-rw-r--r--src/webengine/webview.cpp3
-rwxr-xr-xtools/check_license.rb4
9 files changed, 42 insertions, 47 deletions
diff --git a/BUGS.md b/BUGS.md
index fefded5..40857ee 100644
--- a/BUGS.md
+++ b/BUGS.md
@@ -6,16 +6,16 @@ How to reproduce: enter an address into the address bar, load the page, crash on
### MainWindow doesn't save size on close
-### User config doesn't generate on first run if .config/smolbote doesn't exist
-
### Close tab shortcut doesn't work
### Search terms in address bar
QUrl always seems to return true when checking if valid url
+### databases-incognito in home
+Folder is empty.
+
## To do list
### Search function
### Instance check on startup
-
diff --git a/src/browser.cpp b/src/browser.cpp
index f4cadb5..7a169e9 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -57,12 +57,14 @@ void Browser::loadProfiles()
for(const QString &name : profileList) {
std::shared_ptr<WebEngineProfile> profile = std::make_shared<WebEngineProfile>(name, profileDir.absoluteFilePath(name), nullptr);
profile->setRequestInterceptor(m_urlRequestInterceptor.get());
+ connect(profile.get(), &WebEngineProfile::downloadRequested, m_downloadManager.get(), &DownloadsWidget::addDownload);
m_profiles.insert(name, profile);
}
// Also add the Off-the-record profile
std::shared_ptr<WebEngineProfile> otr = std::make_shared<WebEngineProfile>(nullptr);
otr->setRequestInterceptor(m_urlRequestInterceptor.get());
+ connect(otr.get(), &WebEngineProfile::downloadRequested, m_downloadManager.get(), &DownloadsWidget::addDownload);
m_profiles.insert("", otr);
// set default profile
@@ -73,41 +75,6 @@ void Browser::loadProfiles()
#endif
}
-/*
-std::shared_ptr<BookmarksWidget> &Browser::bookmarks()
-{
- Q_ASSERT(m_bookmarksManager);
- return m_bookmarksManager;
-}
-
-std::shared_ptr<DownloadsWidget> &Browser::downloads()
-{
- Q_ASSERT(m_downloadManager);
- return m_downloadManager;
-}
-
-BlockerManager *Browser::blocklists()
-{
- if(!m_blocklistManager) {
- m_blocklistManager = new BlockerManager();
- }
- return m_blocklistManager;
-}
-
-MainWindow *Browser::activeWindow()
-{
- if(m_windows.empty()) {
- return nullptr;
- }
-
- for(auto it = m_windows.cbegin(); it != m_windows.cend(); it++) {
- if(it->data()->isActiveWindow()) {
- return it->data();
- }
- }
- return m_windows.first().data();
-}*/
-
MainWindow *Browser::createWindow()
{
// the window will delete itself when it closes, so we don't need to delete it
diff --git a/src/lib/downloads/downloadswidget.cpp b/src/lib/downloads/downloadswidget.cpp
index 0022ff9..460014f 100644
--- a/src/lib/downloads/downloadswidget.cpp
+++ b/src/lib/downloads/downloadswidget.cpp
@@ -16,7 +16,7 @@
#include <QLabel>
#include "widgets/downloaditemwidget.h"
-DownloadsWidget::DownloadsWidget(const QString path, QWidget *parent) :
+DownloadsWidget::DownloadsWidget(const QString &downloadPath, QWidget *parent) :
QWidget(parent),
ui(new Ui::DownloadDialog)
{
@@ -27,15 +27,13 @@ DownloadsWidget::DownloadsWidget(const QString path, QWidget *parent) :
ui->setupUi(this);
ui->filePath->setWordWrap(true);
- m_downloadPath = path;
+ m_downloadPath = downloadPath;
connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(showItemDetails(int)));
}
DownloadsWidget::~DownloadsWidget()
{
- qDebug("Destroying DownloadsManager");
-
delete ui;
}
diff --git a/src/lib/downloads/downloadswidget.h b/src/lib/downloads/downloadswidget.h
index a6dcf71..a601147 100644
--- a/src/lib/downloads/downloadswidget.h
+++ b/src/lib/downloads/downloadswidget.h
@@ -21,7 +21,7 @@ class DownloadsWidget : public QWidget
Q_OBJECT
public:
- explicit DownloadsWidget(const QString path, QWidget *parent = 0);
+ explicit DownloadsWidget(const QString &downloadPath, QWidget *parent = nullptr);
~DownloadsWidget();
public slots:
diff --git a/src/main.cpp b/src/main.cpp
index 8e5edb0..7433cc8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,6 +10,8 @@
#include "browser.h"
#include <QCommandLineParser>
#include <QFile>
+#include <QFileInfo>
+#include <QDir>
#include <QStandardPaths>
#include "mainwindow.h"
@@ -109,6 +111,8 @@ int main(int argc, char *argv[])
return 0;
}
+ // TODO: check for other instances
+
std::shared_ptr<Configuration> config = std::make_shared<Configuration>();
config->readDefaultConfiguration(readConfig(parser.value(defaultConfigOption)));
config->readUserConfiguration(parser.value(configOption).toStdString());
@@ -122,6 +126,14 @@ int main(int argc, char *argv[])
path = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/smolbote.cfg";
}
+ QDir configDir = QFileInfo(path).absoluteDir();
+ if(!configDir.exists()) {
+ bool mkpathSuccess = configDir.mkpath(".");
+#ifdef QT_DEBUG
+ qDebug("mkpath %s: %s", qUtf8Printable(configDir.absolutePath()), mkpathSuccess ? "ok" : "failed");
+#endif
+ }
+
#ifdef QT_DEBUG
qDebug("Generating user config on first run to %s", qUtf8Printable(path));
#endif
@@ -134,9 +146,6 @@ int main(int argc, char *argv[])
}
instance.setConfiguration(config);
-
- // TODO: instance check
-
instance.loadProfiles();
MainWindow* mainWindow = instance.createWindow();
diff --git a/src/webengine/webpage.cpp b/src/webengine/webpage.cpp
index 79ba809..a39c942 100644
--- a/src/webengine/webpage.cpp
+++ b/src/webengine/webpage.cpp
@@ -1,3 +1,11 @@
+/*
+ * This file is part of smolbote. It's copyrighted by the contributors recorded
+ * in the version control history of the file, available from its original
+ * location: git://neueland.iserlohn-fortress.net/smolbote.git
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
#include "webpage.h"
WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) :
diff --git a/src/webengine/webpage.h b/src/webengine/webpage.h
index 6ae0802..ffbe34d 100644
--- a/src/webengine/webpage.h
+++ b/src/webengine/webpage.h
@@ -1,3 +1,11 @@
+/*
+ * This file is part of smolbote. It's copyrighted by the contributors recorded
+ * in the version control history of the file, available from its original
+ * location: git://neueland.iserlohn-fortress.net/smolbote.git
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
#ifndef WEBPAGE_H
#define WEBPAGE_H
diff --git a/src/webengine/webview.cpp b/src/webengine/webview.cpp
index 4f7b386..55efad7 100644
--- a/src/webengine/webview.cpp
+++ b/src/webengine/webview.cpp
@@ -130,7 +130,8 @@ QMenu *WebView::pageMenu()
void WebView::setPage(WebPage *page)
{
Q_CHECK_PTR(page);
- //this->page()->deleteLater();
+ // make sure the page gets cleaned up if we replace it by taking ownership
+ page->setParent(this);
connect(page, &WebPage::linkHovered, this, &WebView::handleLinkHovered);
connect(page, &WebPage::certificateErrorMessage, this, &WebView::handleCertificateError);
QWebEngineView::setPage(page);
diff --git a/tools/check_license.rb b/tools/check_license.rb
index c519513..66cb0f1 100755
--- a/tools/check_license.rb
+++ b/tools/check_license.rb
@@ -15,4 +15,8 @@ file_names.each do |file_name|
}
end
+if exit_code == 0 then
+ puts "All licenses okay"
+end
+
exit exit_code