diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/urlbar.cpp | 35 | ||||
| -rw-r--r-- | src/urlbar.h | 1 | 
2 files changed, 35 insertions, 1 deletions
| diff --git a/src/urlbar.cpp b/src/urlbar.cpp index b6340fe7..d587fd80 100644 --- a/src/urlbar.cpp +++ b/src/urlbar.cpp @@ -140,7 +140,7 @@ void UrlBar::setUrl(const QUrl& url)      }      else          m_currentUrl = url; -     +      slotUpdateUrl();  } @@ -303,3 +303,36 @@ bool UrlBar::isLoading()      }      return true;  } + +void UrlBar::keyPressEvent(QKeyEvent *event) +{ +    QString currentText = m_lineEdit->text().trimmed(); +    if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) +        && !currentText.startsWith(QLatin1String("http://"), Qt::CaseInsensitive)) +    { +        QString append; +        if (event->modifiers() == Qt::ControlModifier) +        { +            append = QLatin1String(".com"); +        } +        else if (event->modifiers() == (Qt::ControlModifier | Qt::ShiftModifier)) +        { +            append = QLatin1String(".org"); +        } +        else if (event->modifiers() == Qt::ShiftModifier) +        { +            append = QLatin1String(".net"); +        } + +        QUrl url(QLatin1String("http://www.") + currentText); +        QString host = url.host(); +        if (!host.endsWith(append, Qt::CaseInsensitive)) +        { +            host += append; +            url.setHost(host); +            m_lineEdit->setText(url.toString()); +        } +    } + +    KHistoryComboBox::keyPressEvent(event); +}
\ No newline at end of file diff --git a/src/urlbar.h b/src/urlbar.h index 28b1dc08..787032fb 100644 --- a/src/urlbar.h +++ b/src/urlbar.h @@ -80,6 +80,7 @@ private slots:  protected:      virtual void paintEvent(QPaintEvent *event);      virtual void focusOutEvent(QFocusEvent *event); +    virtual void keyPressEvent(QKeyEvent *event);  private:      void setupLineEdit(); | 
