void ContentBlockingDialog::save() { QSettings adBlock(SessionsManager::getProfilePath() + QLatin1String("/adblock.ini"), QSettings::IniFormat); adBlock.setIniCodec("UTF-8"); for (int i = 0; i < m_ui->filtersViewWidget->getRowCount(); ++i) { const QModelIndex index = m_ui->filtersViewWidget->getIndex(i, 0); adBlock.setValue(index.data(Qt::UserRole).toString() + QLatin1String("/enabled"), index.data(Qt::CheckStateRole).toBool()); } adBlock.sync(); ContentBlockingManager::updateLists(); close(); }
void WebView::contextMenuEvent(QContextMenuEvent *event) { // do not display the context menu if gesture was previously invoked if (m_gestureTime.isValid() && !m_gestureTime.isNull()) { int secs = m_gestureTime.secsTo(QDateTime::currentDateTime()); if (secs >= 0 && secs <=1) return; } QMenu menu(this); QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos()); m_hitResult = r; if (!r.linkUrl().isEmpty()) { MenuCommands cmds; QAction* newwin = new QAction(pageAction(QWebPage::OpenLinkInNewWindow)->text(), this); connect(newwin, SIGNAL(triggered()), this, SLOT(openLinkInNewWin())); menu.addAction(newwin); QAction* newtab = new QAction(cmds.OpenNewTabTitle(), this); newtab->setShortcuts(cmds.OpenNewTabShortcuts()); connect(newtab, SIGNAL(triggered()), this, SLOT(openLinkInNewTab())); menu.addAction(newtab); menu.addSeparator(); menu.addAction(pageAction(QWebPage::DownloadLinkToDisk)); menu.addSeparator(); menu.addAction(pageAction(QWebPage::CopyLinkToClipboard)); { QAction* copyadr = new QAction(cmds.CopyAddrTitle(), this); connect(copyadr, SIGNAL(triggered()), this, SLOT(copyMailtoAddress())); menu.addAction( copyadr ); } if (page()->settings()->testAttribute(QWebSettings::DeveloperExtrasEnabled)) { QAction* inspect = new QAction(cmds.InspectTitle(), this); //inspect->setShortcuts(cmds.InspectShortcuts()); connect(inspect, SIGNAL(triggered()), this, SLOT(slotInspectElement())); menu.addAction(inspect); } } if (!r.imageUrl().isEmpty()) { if (!menu.isEmpty()) menu.addSeparator(); menu.addAction( pageAction(QWebPage::DownloadImageToDisk)); menu.addAction( pageAction(QWebPage::CopyImageToClipboard)); QAction* newwin = new QAction(pageAction(QWebPage::OpenImageInNewWindow)->text(), this); connect(newwin, SIGNAL(triggered()), this, SLOT(openImageInNewWin())); menu.addAction(newwin); MenuCommands cmds; QAction* newtab = new QAction(cmds.OpenNewTabTitle(), this); newtab->setShortcuts(cmds.OpenNewTabShortcuts()); connect(newtab, SIGNAL(triggered()), this, SLOT(openImageInNewTab())); menu.addAction( newtab ); menu.addSeparator(); QAction* adblock = new QAction(cmds.OpenAdBlockTitle(), this); adblock->setShortcuts(cmds.OpenAdBlockShortcuts()); connect(adblock, SIGNAL(triggered()), this, SLOT(adBlock())); adblock->setToolTip(r.imageUrl().toString()); menu.addAction( adblock ); } if (!menu.isEmpty()) { menu.exec(mapToGlobal(event->pos())); return; } QWebView::contextMenuEvent(event); }