void Window::search(const QString &query, const QString &engine) { WebContentsWidget *widget = qobject_cast<WebContentsWidget*>(m_contentsWidget); if (!widget) { widget = new WebContentsWidget(isPrivate(), NULL, this); setContentsWidget(widget); } widget->search(query, engine); }
void Window::search(const QString &query, const QString &engine) { WebContentsWidget *widget = qobject_cast<WebContentsWidget*>(m_contentsWidget); if (!widget) { widget = new WebContentsWidget(isPrivate(), NULL, this); setContentsWidget(widget); } m_ui->addressWidget->clearFocus(); widget->search(query, engine); m_ui->addressWidget->setUrl(getUrl()); }
NSRAboutDialog::NSRAboutDialog (QWidget *parent) : NSRTouchDialog (parent), ui (new Ui::NSRAboutDialog) { const NSRLanguageData *lang = NSRLanguage::instance()->getLanguage(); QWidget *widget = new QWidget (this); ui->setupUi (widget); setTitleIcon (QPixmap(":/icons/icons/about.png")); setTitle (NSRLanguage::instance()->getLanguage()->frameAbout); setContentsWidget (widget); ui->developerLabel->setText (lang->aboutDeveloperName); ui->contactsLabel->setText (lang->aboutContacts + " <*****@*****.**>"); ui->iconsCreditLabel->setText (lang->aboutIconsNote + " Stuttgart pack, Axialis Team"); ui->licenseLabel->setText (lang->aboutLicense); ui->facebookLabel->setText (lang->aboutFacebookNote); ui->versionLabel->setText (QString("NSR Reader %1").arg(NSRSettings::getVersion())); QString style = "QLabel {" "background-color: white; " "border: 1px solid rgba(180, 180, 180, 255); " "border-right: none; " "border-left: none; " "border-top: none; " "color: rgb(0, 0, 0); " #ifdef Q_OS_SYMBIAN "font-size: 16px; " "font-weight: bold; " #else "font-size: 22px; " #endif "}"; ui->developerLabel->setStyleSheet (style); ui->contactsLabel->setStyleSheet (style); ui->iconsCreditLabel->setStyleSheet (style); ui->facebookLabel->setStyleSheet (style); ui->versionLabel->setStyleSheet (style); }
Window::Window(const QVariantMap ¶meters, ContentsWidget *widget, MainWindow *mainWindow) : QWidget(mainWindow->centralWidget()), m_mainWindow(mainWindow), m_addressBar(nullptr), m_contentsWidget(nullptr), m_parameters(parameters), m_identifier(++m_identifierCounter), m_suspendTimer(0), m_isAboutToClose(false), m_isPinned(false) { QBoxLayout *layout(new QBoxLayout(QBoxLayout::TopToBottom, this)); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); setLayout(layout); if (widget) { setContentsWidget(widget); } connect(this, SIGNAL(titleChanged(QString)), this, SLOT(setWindowTitle(QString))); connect(this, SIGNAL(iconChanged(QIcon)), this, SLOT(handleIconChanged(QIcon))); }
void Window::setUrl(const QUrl &url, bool typed) { ContentsWidget *newWidget = NULL; if (url.scheme() == QLatin1String("about")) { if (m_session.index < 0 && !isUrlEmpty() && SessionsManager::hasUrl(url, true)) { m_ui->addressWidget->setUrl(m_contentsWidget ? m_contentsWidget->getUrl() : m_session.getUrl()); return; } if (url.path() == QLatin1String("bookmarks")) { newWidget = new BookmarksContentsWidget(this); } else if (url.path() == QLatin1String("cache")) { newWidget = new CacheContentsWidget(this); } else if (url.path() == QLatin1String("config")) { newWidget = new ConfigurationContentsWidget(this); } else if (url.path() == QLatin1String("cookies")) { newWidget = new CookiesContentsWidget(this); } else if (url.path() == QLatin1String("history")) { newWidget = new HistoryContentsWidget(this); } else if (url.path() == QLatin1String("transfers")) { newWidget = new TransfersContentsWidget(this); } if (newWidget && !newWidget->canClone()) { SessionsManager::removeStoredUrl(newWidget->getUrl().toString()); } } const bool isRestoring = (!m_contentsWidget && m_session.index >= 0); if (!newWidget && (!m_contentsWidget || m_contentsWidget->getType() != QLatin1String("web"))) { newWidget = new WebContentsWidget(m_isPrivate, NULL, this); } if (newWidget) { setContentsWidget(newWidget); } if (m_contentsWidget && url.isValid()) { if (!isRestoring) { m_contentsWidget->setUrl(url, typed); } if (!isUrlEmpty() || m_contentsWidget->isLoading()) { m_ui->addressWidget->clearFocus(); } m_ui->addressWidget->setUrl(url); } }
void Window::clear() { setContentsWidget(new WebContentsWidget(m_isPrivate, NULL, this)); }
void Window::triggerAction(int identifier, const QVariantMap ¶meters) { switch (identifier) { case ActionsManager::CloneTabAction: if (canClone()) { m_mainWindow->addWindow(clone(true, m_mainWindow)); } break; case ActionsManager::PinTabAction: setPinned(!isPinned()); break; case ActionsManager::DetachTabAction: if (m_mainWindow->getWindowCount() > 1) { m_mainWindow->moveWindow(this); } break; case ActionsManager::SuspendTabAction: if (!m_contentsWidget || m_contentsWidget->close()) { m_session = getSession(); setContentsWidget(nullptr); } break; case ActionsManager::CloseTabAction: if (!isPinned()) { requestClose(); } break; case ActionsManager::GoAction: case ActionsManager::ActivateAddressFieldAction: case ActionsManager::ActivateSearchFieldAction: { AddressWidget *addressWidget(findAddressWidget()); SearchWidget *searchWidget(nullptr); for (int i = 0; i < m_searchWidgets.count(); ++i) { if (m_searchWidgets.at(i) && m_searchWidgets.at(i)->isVisible()) { searchWidget = m_searchWidgets.at(i); break; } } if (identifier == ActionsManager::ActivateSearchFieldAction && searchWidget) { searchWidget->activate(Qt::ShortcutFocusReason); } else if (addressWidget) { if (identifier == ActionsManager::ActivateAddressFieldAction) { addressWidget->activate(Qt::ShortcutFocusReason); } else if (identifier == ActionsManager::ActivateSearchFieldAction) { addressWidget->setText(QLatin1String("? ")); addressWidget->activate(Qt::OtherFocusReason); } else if (identifier == ActionsManager::GoAction) { addressWidget->handleUserInput(addressWidget->text(), SessionsManager::CurrentTabOpen); return; } } else if (identifier == ActionsManager::ActivateAddressFieldAction || identifier == ActionsManager::ActivateSearchFieldAction) { OpenAddressDialog dialog(this); if (identifier == ActionsManager::ActivateSearchFieldAction) { dialog.setText(QLatin1String("? ")); } connect(&dialog, SIGNAL(requestedLoadUrl(QUrl,SessionsManager::OpenHints)), this, SLOT(handleOpenUrlRequest(QUrl,SessionsManager::OpenHints))); connect(&dialog, SIGNAL(requestedOpenBookmark(BookmarksItem*,SessionsManager::OpenHints)), this, SIGNAL(requestedOpenBookmark(BookmarksItem*,SessionsManager::OpenHints))); connect(&dialog, SIGNAL(requestedSearch(QString,QString,SessionsManager::OpenHints)), this, SLOT(handleSearchRequest(QString,QString,SessionsManager::OpenHints))); dialog.exec(); } } break; case ActionsManager::PrintAction: { QPrinter printer; printer.setCreator(QStringLiteral("Otter Browser %1").arg(Application::getFullVersion())); QPrintDialog printDialog(&printer, this); printDialog.setWindowTitle(tr("Print Page")); if (printDialog.exec() != QDialog::Accepted) { break; } getContentsWidget()->print(&printer); } break; case ActionsManager::PrintPreviewAction: { QPrintPreviewDialog printPreviewDialog(this); printPreviewDialog.printer()->setCreator(QStringLiteral("Otter Browser %1").arg(Application::getFullVersion())); printPreviewDialog.setWindowFlags(printPreviewDialog.windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint); printPreviewDialog.setWindowTitle(tr("Print Preview")); if (QApplication::activeWindow()) { printPreviewDialog.resize(QApplication::activeWindow()->size()); } connect(&printPreviewDialog, SIGNAL(paintRequested(QPrinter*)), getContentsWidget(), SLOT(print(QPrinter*))); printPreviewDialog.exec(); } break; case ActionsManager::BookmarkPageAction: { const QUrl url((parameters.contains(QLatin1String("url")) ? parameters[QLatin1String("url")].toUrl() : getUrl()).adjusted(QUrl::RemovePassword)); if (url.isEmpty()) { break; } const QVector<BookmarksItem*> bookmarks(BookmarksManager::getModel()->getBookmarks(url)); if (bookmarks.isEmpty()) { BookmarkPropertiesDialog dialog(url, (parameters.contains(QLatin1String("title")) ? parameters[QLatin1String("title")].toString() : getTitle()), parameters[QLatin1String("description")].toString(), nullptr, -1, true, this); dialog.exec(); } else { BookmarkPropertiesDialog dialog(bookmarks.at(0), this); dialog.exec(); } } break; case ActionsManager::FullScreenAction: if (m_addressBar) { m_addressBar->setVisible(m_addressBar->shouldBeVisible(m_mainWindow->isFullScreen())); } if (m_contentsWidget) { m_contentsWidget->triggerAction(identifier, parameters); } break; default: getContentsWidget()->triggerAction(identifier, parameters); break; }