SearchWidget::SearchWidget(Window *window, QWidget *parent) : QComboBox(parent), m_window(NULL), m_completer(new QCompleter(this)), m_suggester(NULL), m_lastValidIndex(0), m_isIgnoringActivation(false), m_isPopupUpdated(false), m_shouldSelectAllOnRelease(false), m_wasPopupVisible(false) { m_completer->setCaseSensitivity(Qt::CaseInsensitive); m_completer->setCompletionMode(QCompleter::PopupCompletion); m_completer->setCompletionRole(Qt::DisplayRole); setEditable(true); setMinimumWidth(100); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); setItemDelegate(new SearchDelegate(this)); setModel(SearchesManager::getSearchEnginesModel()); setInsertPolicy(QComboBox::NoInsert); optionChanged(QLatin1String("Search/SearchEnginesSuggestions"), SettingsManager::getValue(QLatin1String("Search/SearchEnginesSuggestions"))); lineEdit()->setCompleter(m_completer); lineEdit()->setDragEnabled(true); lineEdit()->setStyleSheet(QLatin1String("QLineEdit {background:transparent;}")); lineEdit()->installEventFilter(this); ToolBarWidget *toolBar = qobject_cast<ToolBarWidget*>(parent); if (toolBar && toolBar->getIdentifier() != ToolBarsManager::NavigationBar) { connect(toolBar, SIGNAL(windowChanged(Window*)), this, SLOT(setWindow(Window*))); }
AddressWidget::AddressWidget(Window *window, QWidget *parent) : QComboBox(parent), m_window(NULL), m_completer(new QCompleter(AddressCompletionModel::getInstance(), this)), m_bookmarkLabel(NULL), m_feedsLabel(NULL), m_loadPluginsLabel(NULL), m_urlIconLabel(NULL), m_removeModelTimer(0), m_isHistoryDropdownEnabled(SettingsManager::getValue(QLatin1String("AddressField/EnableHistoryDropdown")).toBool()), m_isUsingSimpleMode(false), m_shouldSelectAllOnRelease(false), m_wasPopupVisible(false) { ToolBarWidget *toolBar = qobject_cast<ToolBarWidget*>(parent); if (!toolBar) { m_isUsingSimpleMode = true; } m_completer->setCaseSensitivity(Qt::CaseInsensitive); m_completer->setCompletionMode(QCompleter::InlineCompletion); m_completer->setCompletionRole(Qt::DisplayRole); m_completer->setFilterMode(Qt::MatchStartsWith); setEditable(true); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); setMinimumWidth(100); setItemDelegate(new AddressDelegate(this)); setInsertPolicy(QComboBox::NoInsert); setWindow(window); lineEdit()->setCompleter(m_completer); lineEdit()->setDragEnabled(true); lineEdit()->setStyleSheet(QLatin1String("QLineEdit {background:transparent;}")); lineEdit()->setMouseTracking(true); lineEdit()->installEventFilter(this); if (toolBar) { optionChanged(QLatin1String("AddressField/ShowBookmarkIcon"), SettingsManager::getValue(QLatin1String("AddressField/ShowBookmarkIcon"))); optionChanged(QLatin1String("AddressField/ShowUrlIcon"), SettingsManager::getValue(QLatin1String("AddressField/ShowUrlIcon"))); lineEdit()->setPlaceholderText(tr("Enter address or search…")); connect(SettingsManager::getInstance(), SIGNAL(valueChanged(QString,QVariant)), this, SLOT(optionChanged(QString,QVariant))); if (toolBar->getIdentifier() != ToolBarsManager::NavigationBar) { connect(toolBar, SIGNAL(windowChanged(Window*)), this, SLOT(setWindow(Window*))); } }
TabBarWidget::TabBarWidget(QWidget *parent) : QTabBar(parent), m_previewWidget(NULL), m_tabSize(0), m_maximumTabSize(40), m_minimumTabSize(250), m_pinnedTabsAmount(0), m_clickedTab(-1), m_hoveredTab(-1), m_previewTimer(0), m_showCloseButton(true), m_showUrlIcon(true), m_enablePreviews(true) { qRegisterMetaType<WindowLoadingState>("WindowLoadingState"); setDrawBase(false); setExpanding(false); setMovable(true); setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); setElideMode(Qt::ElideRight); setMouseTracking(true); setDocumentMode(true); setMaximumSize(0, 0); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); setStyle(new TabBarStyle()); m_closeButtonPosition = static_cast<QTabBar::ButtonPosition>(QApplication::style()->styleHint(QStyle::SH_TabBar_CloseButtonPosition)); m_iconButtonPosition = ((m_closeButtonPosition == QTabBar::RightSide) ? QTabBar::LeftSide : QTabBar::RightSide); optionChanged(QLatin1String("TabBar/ShowCloseButton"), SettingsManager::getValue(QLatin1String("TabBar/ShowCloseButton"))); optionChanged(QLatin1String("TabBar/ShowUrlIcon"), SettingsManager::getValue(QLatin1String("TabBar/ShowUrlIcon"))); optionChanged(QLatin1String("TabBar/EnablePreviews"), SettingsManager::getValue(QLatin1String("TabBar/EnablePreviews"))); optionChanged(QLatin1String("TabBar/MaximumTabSize"), SettingsManager::getValue(QLatin1String("TabBar/MaximumTabSize"))); optionChanged(QLatin1String("TabBar/MinimumTabSize"), SettingsManager::getValue(QLatin1String("TabBar/MinimumTabSize"))); ToolBarWidget *toolBar = qobject_cast<ToolBarWidget*>(parent); if (toolBar) { setArea(toolBar->getArea()); connect(toolBar, SIGNAL(areaChanged(Qt::ToolBarArea)), this, SLOT(setArea(Qt::ToolBarArea))); } connect(SettingsManager::getInstance(), SIGNAL(valueChanged(QString,QVariant)), this, SLOT(optionChanged(QString,QVariant))); connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentTabChanged(int))); }
ToolButtonWidget::ToolButtonWidget(QWidget *parent) : QToolButton(parent) { setAutoRaise(true); setContextMenuPolicy(Qt::NoContextMenu); ToolBarWidget *toolBar = qobject_cast<ToolBarWidget*>(parent); if (toolBar) { setIconSize(toolBar->iconSize()); setMaximumButtonSize(toolBar->getMaximumButtonSize()); setToolButtonStyle(toolBar->toolButtonStyle()); connect(toolBar, SIGNAL(iconSizeChanged(QSize)), this, SLOT(setIconSize(QSize))); connect(toolBar, SIGNAL(maximumButtonSizeChanged(int)), this, SLOT(setMaximumButtonSize(int))); connect(toolBar, SIGNAL(toolButtonStyleChanged(Qt::ToolButtonStyle)), this, SLOT(setToolButtonStyle(Qt::ToolButtonStyle))); } }
bool GoForwardActionWidget::event(QEvent *event) { if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick || event->type() == QEvent::Wheel) { QList<GesturesManager::GesturesContext> contexts; contexts << GesturesManager::ToolBarGesturesContext << GesturesManager::GenericGesturesContext; if (GesturesManager::startGesture(this, event, contexts)) { return true; } } if (event->type() == QEvent::ContextMenu) { QContextMenuEvent *contextMenuEvent(static_cast<QContextMenuEvent*>(event)); if (contextMenuEvent) { if (contextMenuEvent->reason() == QContextMenuEvent::Mouse) { contextMenuEvent->accept(); return true; } event->accept(); Window *window(getWindow()); QMenu menu(this); menu.addAction(window ? window->getContentsWidget()->getAction(ActionsManager::ClearTabHistoryAction) : ActionsManager::getAction(ActionsManager::ClearTabHistoryAction, this)); menu.addAction(window ? window->getContentsWidget()->getAction(ActionsManager::PurgeTabHistoryAction) : ActionsManager::getAction(ActionsManager::PurgeTabHistoryAction, this)); ToolBarWidget *toolBar = qobject_cast<ToolBarWidget*>(parentWidget()); if (toolBar) { menu.addSeparator(); menu.addActions(ToolBarWidget::createCustomizationMenu(toolBar->getIdentifier(), QList<QAction*>(), &menu)->actions()); } menu.exec(contextMenuEvent->globalPos()); return true; } return false; } if (event->type() == QEvent::ToolTip) { QHelpEvent *helpEvent(dynamic_cast<QHelpEvent*>(event)); if (helpEvent) { const QVector<QKeySequence> shortcuts(ActionsManager::getActionDefinition(ActionsManager::GoForwardAction).shortcuts); QString toolTip(text() + (shortcuts.isEmpty() ? QString() : QLatin1String(" (") + shortcuts.at(0).toString(QKeySequence::NativeText) + QLatin1Char(')'))); if (getWindow()) { const WindowHistoryInformation history(getWindow()->getContentsWidget()->getHistory()); if (!history.entries.isEmpty() && history.index < (history.entries.count() - 1)) { QString title(history.entries.at(history.index + 1).title); title = (title.isEmpty() ? tr("(Untitled)") : title.replace(QLatin1Char('&'), QLatin1String("&&"))); toolTip = title + QLatin1String(" (") + text() + (shortcuts.isEmpty() ? QString() : QLatin1String(" - ") + shortcuts.at(0).toString(QKeySequence::NativeText)) + QLatin1Char(')'); } } QToolTip::showText(helpEvent->globalPos(), toolTip); } return true; } return ActionWidget::event(event); }