aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sb.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/sb.cpp b/sb.cpp
index af5e8a5..661ba4b 100644
--- a/sb.cpp
+++ b/sb.cpp
@@ -8,7 +8,7 @@
#include <QtWidgets/QWidget>
#include <QtWidgets/QLayout>
#include <QtWidgets/QLabel>
-#include <QtWidgets/QLineEdit>
+#include <QtWidgets/QMenu>
#include <QtGui/QKeyEvent>
#include <QtX11Extras/QX11Info>
#include <X11/Xlib.h>
@@ -20,7 +20,7 @@ void search();
void page_scroll(int scroll);
class Main;
void get_window_id();
-uint32_t id;
+uint32_t parent_id = 0;
bool is_valid_url(const std::string & url) {
std::regex r(".*://.*\\..*");
@@ -29,12 +29,9 @@ bool is_valid_url(const std::string & url) {
return std::regex_match(url, m, r);
}
-std::string style = "QWidget { background: #181818; }"
- "QLineEdit { color: #547f62; border: none; } "
- "QLabel { color: #547f62; } ";
-
QWebEngineView * web;
Main * view;
+Display * dpy;
class Main : public QMainWindow {
protected:
@@ -49,6 +46,8 @@ class Main : public QMainWindow {
web->back();
else if (event->text() == "L")
web->forward();
+ else if (event->text() == "r")
+ web->reload();
}
};
@@ -108,7 +107,6 @@ void help(char *arg0) {
int
main(int argc, char **argv) {
QApplication app(argc, argv);
- app.setStyleSheet(QString::fromStdString(style));
view = new Main();
web = new QWebEngineView();
std::cout << getenv("WWW_HOME") << '\n';
@@ -116,9 +114,9 @@ main(int argc, char **argv) {
if (argc == 3) {
if (argv[1] == std::string("-e")) {
- Display * dpy = XOpenDisplay(NULL);
- int eid = std::stoi(argv[2]);
- XReparentWindow(dpy, view->winId(), eid, 0, 0);
+ dpy = XOpenDisplay(NULL);
+ parent_id = std::stoi(argv[2]);
+ XReparentWindow(dpy, view->winId(), parent_id, 0, 0);
XFlush(dpy);
} else {
help(argv[0]);
@@ -130,5 +128,19 @@ main(int argc, char **argv) {
view->show();
view->setCentralWidget(web);
+ web->connect(web, &QWebEngineView::titleChanged, [&](const QString & title) {
+ view->setWindowTitle(title);
+ });
+
+ if (parent_id != 0) {
+ web->setContextMenuPolicy(Qt::CustomContextMenu);
+ web->connect(web,
+ &QWebEngineView::customContextMenuRequested, [&](){
+ auto menu = web->page()->createStandardContextMenu();
+ menu->popup(QCursor::pos());
+ return menu;
+ });
+ }
+
return app.exec();
}