IntListTabWidget::IntListTabWidget(WIDGET *parent) : ListTabWidget(parent) { tabWidget()->setHeight(15); tabWidget()->addStyle(TabSelectionStyle(Image(IntImages, IMAGE_TAB1), Image(IntImages, IMAGE_TAB1DOWN), Image(IntImages, IMAGE_TABHILIGHT), Image(), Image(), Image(), Image(), Image(), Image(), 2)); tabWidget()->addStyle(TabSelectionStyle(Image(IntImages, IMAGE_TAB1_SM), Image(IntImages, IMAGE_TAB1DOWN_SM), Image(IntImages, IMAGE_TABHILIGHT_SM), Image(), Image(), Image(), Image(), Image(), Image(), 2)); tabWidget()->addStyle(TabSelectionStyle(Image(IntImages, IMAGE_TAB1_SM), Image(IntImages, IMAGE_TAB1DOWN_SM), Image(IntImages, IMAGE_TABHILIGHT_SM), Image(IntImages, IMAGE_LFTTAB), Image(IntImages, IMAGE_LFTTABD), Image(IntImages, IMAGE_LFTTABD), Image(IntImages, IMAGE_RGTTAB), Image(IntImages, IMAGE_RGTTABD), Image(IntImages, IMAGE_RGTTABD), 2)); }
void TabView::moveTab(QWidget* w, Position p, bool wholeArea) { TraceItemView *v; Position origPos = Hidden; if (w) { for (v=_tabs.first();v;v=_tabs.next()) if (v->widget() == w) break; if (!v) return; origPos = v->position(); } if (origPos == p) return; TabWidget *from, *to; from = tabWidget(origPos); to = tabWidget(p); QPtrList<TraceItemView> tabs; for (v=_tabs.first();v;v=_tabs.next()) if ((v->position() == origPos) && (wholeArea || (v->widget() == w))) tabs.append(v); bool isEnabled; for (v=tabs.first();v;v=tabs.next()) { v->setPosition(p); w = v->widget(); if (from) { isEnabled = from->isTabEnabled(w); from->removePage(w); } else isEnabled = (v->canShow(_activeItem)!=0); if (to) { TraceItemView *vv; int idx = -1, i; for(vv = _tabs.first(); vv && (vv!=v); vv = _tabs.next()) { i = to->indexOf(vv->widget()); if (i>=0) idx = i; } to->insertTab(w, v->title(), idx+1); to->setTabEnabled(w, isEnabled); if (isEnabled) { to->showPage(w); v->updateView(); } } } updateVisibility(); }
void WebView::openActionUrlInNewWindow() { if (QAction *action = qobject_cast<QAction*>(sender())) { QWebPage *page = tabWidget()->getView(TabWidget::NewWindow, this)->page(); QNetworkRequest request(action->data().toUrl()); request.setRawHeader("Referer", url().toEncoded()); page->mainFrame()->load(request); } }
void TabSwitchWidget::generatePreview(int idx) { QWidget *w = tabWidget()->widget(idx); QPixmap pixmap(w->size()); w->render(&pixmap); pixmap = pixmap.scaled(ui->prevLabel->size(), Qt::KeepAspectRatio, sConfig.get(CFG_BOOL_SMOOTH_SCALING) ? Qt::SmoothTransformation : Qt::FastTransformation); ui->prevLabel->setPixmap(pixmap); }
void TabSwitchWidget::createButton(int idx) { QPushButton *btn = new QPushButton(tabWidget()->tabText(idx), this); btn->setFlat(true); btn->setCheckable(true); btn->setEnabled(false); btn->setProperty("tabIndex", idx); ui->scrollLayout->insertWidget(ui->scrollLayout->count()-1, btn); m_buttons.push_back(btn); }
TabSwitchWidget::TabSwitchWidget(QWidget *parent) : QFrame(parent), ui(new Ui::TabSwitchWidget) { ui->setupUi(this); m_active = 0; setStyleSheet("background-color: white"); const std::vector<quint32>& tab_ids = tabWidget()->getTabIds(); for(size_t i = 0; i < tab_ids.size(); ++i) m_id_pair[tab_ids[i]] = i; m_buttons.reserve(tab_ids.size()); const QList<quint32>& history = tabWidget()->getHistory(); for(int i = history.size()-1; i >= 0; --i) createButton(m_id_pair[history[i]]); for(size_t i = 0; i < tab_ids.size(); ++i) if(!history.contains(tab_ids[i])) createButton(i); }
void WebView::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu = new QMenu(this); QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos()); if (!r.linkUrl().isEmpty()) { QAction *newWindowAction = menu->addAction(tr("Open in New &Window"), this, SLOT(openActionUrlInNewWindow())); newWindowAction->setData(r.linkUrl()); QAction *newTabAction = menu->addAction(tr("Open in New &Tab"), this, SLOT(openActionUrlInNewTab())); newTabAction->setData(r.linkUrl()); menu->addSeparator(); menu->addAction(tr("Save Lin&k"), this, SLOT(downloadLinkToDisk())); menu->addAction(tr("&Bookmark This Link"), this, SLOT(bookmarkLink()))->setData(r.linkUrl()); menu->addSeparator(); if (!page()->selectedText().isEmpty()) menu->addAction(pageAction(QWebPage::Copy)); menu->addAction(tr("&Copy Link Location"), this, SLOT(copyLinkToClipboard())); } if (!r.imageUrl().isEmpty()) { if (!menu->isEmpty()) menu->addSeparator(); QAction *newWindowAction = menu->addAction(tr("Open Image in New &Window"), this, SLOT(openActionUrlInNewWindow())); newWindowAction->setData(r.imageUrl()); QAction *newTabAction = menu->addAction(tr("Open Image in New &Tab"), this, SLOT(openActionUrlInNewTab())); newTabAction->setData(r.imageUrl()); menu->addSeparator(); menu->addAction(tr("&Save Image"), this, SLOT(downloadImageToDisk())); menu->addAction(tr("&Copy Image"), this, SLOT(copyImageToClipboard())); menu->addAction(tr("C&opy Image Location"), this, SLOT(copyImageLocationToClipboard()))->setData(r.imageUrl().toString()); menu->addSeparator(); menu->addAction(tr("Block Image"), this, SLOT(blockImage()))->setData(r.imageUrl().toString()); } if (!page()->selectedText().isEmpty()) { if (menu->isEmpty()) { menu->addAction(pageAction(QWebPage::Copy)); } else { menu->addSeparator(); } QMenu *searchMenu = menu->addMenu(tr("Search with...")); QList<QString> list = ToolbarSearch::openSearchManager()->allEnginesNames(); for (int i = 0; i < list.count(); ++i) { QString name = list.at(i); OpenSearchEngine *engine = ToolbarSearch::openSearchManager()->engine(name); QAction *action = new OpenSearchEngineAction(engine, searchMenu); searchMenu->addAction(action); action->setData(name); } connect(searchMenu, SIGNAL(triggered(QAction *)), this, SLOT(searchRequested(QAction *))); } QWebElement element = r.element(); if (!element.isNull() && element.tagName().toLower() == QLatin1String("input") && element.attribute(QLatin1String("type"), QLatin1String("text")) == QLatin1String("text")) { if (menu->isEmpty()) { menu->addAction(pageAction(QWebPage::Copy)); } else { menu->addSeparator(); } QVariant variant; variant.setValue(element); menu->addAction(tr("Add to the toolbar search"), this, SLOT(addSearchEngine()))->setData(variant); } if (menu->isEmpty()) { delete menu; menu = page()->createStandardContextMenu(); } else { if (page()->settings()->testAttribute(QWebSettings::DeveloperExtrasEnabled)) menu->addAction(pageAction(QWebPage::InspectElement)); } if (!menu->isEmpty()) { if (BrowserMainWindow::parentWindow(tabWidget())->menuBar()->isHidden()) { menu->addSeparator(); menu->addAction(BrowserMainWindow::parentWindow(tabWidget())->showMenuBarAction()); } menu->exec(mapToGlobal(event->pos())); delete menu; return; } delete menu; QWebView::contextMenuEvent(event); }
void BrowserWindow::postLaunch() { loadSettings(); Settings settings; int afterLaunch = settings.value("Web-URL-Settings/afterLaunch", 3).toInt(); bool addTab = true; QUrl startUrl; switch (afterLaunch) { case 0: startUrl = QUrl(); break; case 2: startUrl = QUrl("qupzilla:speeddial"); break; case 1: case 3: startUrl = m_homepage; break; default: break; } switch (m_windowType) { case Qz::BW_FirstAppWindow: #if QTWEBENGINE_DISABLED if (mApp->isStartingAfterCrash()) { addTab = true; startUrl = QUrl("qupzilla:restore"); } else if (afterLaunch == 3 && mApp->restoreManager()) { addTab = !mApp->restoreSession(this, mApp->restoreManager()->restoreData()); } #else if (afterLaunch == 3 && mApp->restoreManager()) { addTab = !mApp->restoreSession(this, mApp->restoreManager()->restoreData()); } #endif else { // Pinned tabs are restored in MainApplication::restoreStateSlot // Make sure they will be restored also when not restoring session m_tabWidget->restorePinnedTabs(); } break; case Qz::BW_MacFirstWindow: m_tabWidget->restorePinnedTabs(); // fallthrough case Qz::BW_NewWindow: addTab = true; break; case Qz::BW_OtherRestoredWindow: addTab = false; break; } show(); if (!m_startUrl.isEmpty()) { startUrl = m_startUrl; addTab = true; } if (m_startTab) { addTab = false; m_tabWidget->addView(m_startTab); } if (addTab) { QNetworkRequest request(startUrl); request.setRawHeader("X-QupZilla-UserLoadAction", QByteArray("1")); m_tabWidget->addView(request, Qz::NT_CleanSelectedTabAtTheEnd); if (startUrl.isEmpty() || startUrl.toString() == QLatin1String("qupzilla:speeddial")) { locationBar()->setFocus(); } } // Something went really wrong .. add one tab if (m_tabWidget->tabBar()->normalTabsCount() <= 0) { QNetworkRequest request(m_homepage); request.setRawHeader("X-QupZilla-UserLoadAction", QByteArray("1")); m_tabWidget->addView(request, Qz::NT_SelectedTabAtTheEnd); } mApp->plugins()->emitMainWindowCreated(this); emit startingCompleted(); raise(); activateWindow(); QTimer::singleShot(0, tabWidget()->tabBar(), SLOT(ensureVisible())); }
OpenSaveWidget::OpenSaveWidget(QWidget *parent) : QWidget(parent) { _mode = FileEvent::FileOpen; _currentFileHasPath = false; _currentFileReadOnly = false; QGridLayout *layout = new QGridLayout(this); layout->setContentsMargins(0, 0, 0, 0); setLayout(layout); _tabWidget = new VerticalTabWidget(this); _tabWidget->setMaximumWidth(800); QWidget *webWidget = new QWidget(this); /*QGridLayout *webWidgetLayout = new QGridLayout(webWidget); webWidgetLayout->setMargin(36); QFrame *webFrame = new QFrame(webWidget); QGridLayout *webLayout = new QGridLayout(webFrame); webFrame->setLayout(webLayout); webLayout->setMargin(0); webFrame->setFrameShape(QFrame::Box); webFrame->setFrameStyle(QFrame::Panel); webFrame->setLineWidth(1); webFrame->setMinimumWidth(200); QWebView *webView = new QWebView(webFrame); webLayout->addWidget(webView); webWidgetLayout->addWidget(webFrame);*/ layout->addWidget(_tabWidget, 0, 0); layout->addWidget(webWidget, 0, 1); _fsmRecent = new FSBMRecent(this); _fsmExamples = new FSBMExamples(this); _bsRecent = new FSBrowser(_tabWidget); _bsRecent->setFSModel(_fsmRecent); _bsComputer = new BackstageComputer(_tabWidget); _bsOSF = new BackstageOSF(_tabWidget); _bsExamples = new FSBrowser(_tabWidget); _bsExamples->setFSModel(_fsmExamples); _tabWidget->addTab(_bsRecent, "Recent"); _tabWidget->addTab(_bsComputer, "Computer"); _tabWidget->addTab(_bsOSF, "OSF"); _tabWidget->addTab(_bsExamples, "Examples"); connect(_bsRecent, SIGNAL(entryOpened(QString)), this, SLOT(dataSetOpenRequestHandler(QString))); connect(_bsComputer, SIGNAL(dataSetIORequest(FileEvent *)), this, SLOT(dataSetIORequestHandler(FileEvent *))); connect(_bsOSF, SIGNAL(dataSetIORequest(FileEvent *)), this, SLOT(dataSetIORequestHandler(FileEvent *))); connect(_bsExamples, SIGNAL(entryOpened(QString)), this, SLOT(dataSetOpenExampleRequestHandler(QString))); VerticalTabWidget *osvw = tabWidget(); VerticalTabBar *vtb = osvw->tabBar(); connect(vtb, SIGNAL(currentChanged(int)), this, SLOT(tabWidgetChanged(int))); }
void BrowserWindow::postLaunch() { loadSettings(); bool addTab = true; QUrl startUrl; switch (mApp->afterLaunch()) { case MainApplication::OpenBlankPage: startUrl = QUrl(); break; case MainApplication::OpenSpeedDial: startUrl = QUrl("qupzilla:speeddial"); break; case MainApplication::OpenHomePage: case MainApplication::RestoreSession: startUrl = m_homepage; break; default: break; } switch (m_windowType) { case Qz::BW_FirstAppWindow: if (mApp->isStartingAfterCrash()) { addTab = false; startUrl.clear(); m_tabWidget->addView(QUrl("qupzilla:restore"), Qz::NT_CleanSelectedTabAtTheEnd); } else if (mApp->afterLaunch() == MainApplication::RestoreSession && mApp->restoreManager()) { addTab = !mApp->restoreSession(this, mApp->restoreManager()->restoreData()); } else { // Restore pinned tabs also when not restoring session m_tabWidget->restorePinnedTabs(); } break; case Qz::BW_MacFirstWindow: m_tabWidget->restorePinnedTabs(); // fallthrough case Qz::BW_NewWindow: addTab = true; break; case Qz::BW_OtherRestoredWindow: addTab = false; break; } show(); if (!m_startUrl.isEmpty()) { startUrl = m_startUrl; addTab = true; } if (m_startTab) { addTab = false; m_tabWidget->addView(m_startTab); } if (m_startPage) { addTab = false; m_tabWidget->addView(QUrl()); weView()->setPage(m_startPage); } if (addTab) { m_tabWidget->addView(startUrl, Qz::NT_CleanSelectedTabAtTheEnd); if (startUrl.isEmpty() || startUrl.toString() == QLatin1String("qupzilla:speeddial")) { locationBar()->setFocus(); } } // Something went really wrong .. add one tab if (m_tabWidget->tabBar()->normalTabsCount() <= 0) { m_tabWidget->addView(m_homepage, Qz::NT_SelectedTabAtTheEnd); } mApp->plugins()->emitMainWindowCreated(this); emit startingCompleted(); raise(); activateWindow(); QTimer::singleShot(0, this, [this]() { // Scroll to current tab tabWidget()->tabBar()->ensureVisible(); // Update focus if (LocationBar::convertUrlToText(weView()->page()->requestedUrl()).isEmpty()) locationBar()->setFocus(); else weView()->setFocus(); }); }