diff options
| -rw-r--r-- | sb.cpp | 32 |
1 files changed, 22 insertions, 10 deletions
@@ -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(); } |