void Letterbox::createWidgets() { QWidget *centralWidget = new QWidget(this); QVBoxLayout *centralLayout = new QVBoxLayout(centralWidget); setCentralWidget(centralWidget); WordView *solutionsView = new WordView(centralWidget); WordView *upcomingView = new WordView(centralWidget); m_lineEdit = new QLineEdit(centralWidget); m_lineEdit->setAlignment(Qt::AlignHCenter); m_lineEdit->setValidator(new InputValidator(m_lineEdit)); connect(m_lineEdit, SIGNAL(returnPressed()), this, SLOT(lineEditReturnPressed())); connect(m_lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(mistakeDetector(const QString &))); centralLayout->addWidget(solutionsView); centralLayout->addWidget(m_lineEdit); centralLayout->addWidget(upcomingView); centralLayout->setStretchFactor(solutionsView, 3); m_solutionsView = solutionsView; m_upcomingView = upcomingView; }
WebView *TabWidget::newTab(bool makeCurrent) { // line edit UrlLineEdit *urlLineEdit = new UrlLineEdit; QLineEdit *lineEdit = urlLineEdit->lineEdit(); if (!m_lineEditCompleter && count() > 0) { HistoryCompletionModel *completionModel = new HistoryCompletionModel(this); completionModel->setSourceModel(BrowserApplication::historyManager()->historyFilterModel()); m_lineEditCompleter = new QCompleter(completionModel, this); // Should this be in Qt by default? QAbstractItemView *popup = m_lineEditCompleter->popup(); QListView *listView = qobject_cast<QListView*>(popup); if (listView) listView->setUniformItemSizes(true); } lineEdit->setCompleter(m_lineEditCompleter); connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(lineEditReturnPressed())); m_lineEdits->addWidget(urlLineEdit); m_lineEdits->setSizePolicy(lineEdit->sizePolicy()); // optimization to delay creating the more expensive WebView, history, etc if (count() == 0) { QWidget *emptyWidget = new QWidget; QPalette p = emptyWidget->palette(); p.setColor(QPalette::Window, palette().color(QPalette::Base)); emptyWidget->setPalette(p); emptyWidget->setAutoFillBackground(true); disconnect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); addTab(emptyWidget, tr("(Untitled)")); connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); return 0; }
HistoryCompletionModel *completionModel = new HistoryCompletionModel(this); completionModel->setSourceModel(BrowserApplication::historyManager()->historyFilterModel()); m_lineEditCompleter = new HistoryCompleter(completionModel, this); connect(m_lineEditCompleter, SIGNAL(activated(const QString &)), this, SLOT(loadString(const QString &))); // Should this be in Qt by default? QAbstractItemView *popup = m_lineEditCompleter->popup(); QListView *listView = qobject_cast<QListView*>(popup); if (listView) { // Urls are always LeftToRight listView->setLayoutDirection(Qt::LeftToRight); listView->setUniformItemSizes(true); } } locationBar->setCompleter(m_lineEditCompleter); connect(locationBar, SIGNAL(returnPressed()), this, SLOT(lineEditReturnPressed())); m_locationBars->addWidget(locationBar); m_locationBars->setSizePolicy(locationBar->sizePolicy()); #ifndef AUTOTESTS QWidget::setTabOrder(locationBar, qFindChild<ToolbarSearch*>(BrowserMainWindow::parentWindow(this))); #endif // webview WebView *webView = new WebView; locationBar->setWebView(webView); connect(webView, SIGNAL(loadStarted()), this, SLOT(webViewLoadStarted())); connect(webView, SIGNAL(loadProgress(int)), this, SLOT(webViewLoadProgress(int))); connect(webView, SIGNAL(loadFinished(bool)),