Changeset 87720 in webkit


Ignore:
Timestamp:
May 31, 2011 3:42:01 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-05-31 Kristóf Kosztyó <Kosztyo.Kristof@stud.u-szeged.hu>

Reviewed by Csaba Osztrogonác.

[Qt] Implement find feature for QtTestBrowser
https://bugs.webkit.org/show_bug.cgi?id=61425

  • QtTestBrowser/launcherwindow.cpp: (LauncherWindow::LauncherWindow): (LauncherWindow::createChrome): (LauncherWindow::showFindBar): (LauncherWindow::find):
  • QtTestBrowser/launcherwindow.h:
Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r87690 r87720  
     12011-05-31  Kristóf Kosztyó  <Kosztyo.Kristof@stud.u-szeged.hu>
     2
     3        Reviewed by Csaba Osztrogonác.
     4
     5        [Qt] Implement find feature for QtTestBrowser
     6        https://bugs.webkit.org/show_bug.cgi?id=61425
     7
     8        * QtTestBrowser/launcherwindow.cpp:
     9        (LauncherWindow::LauncherWindow):
     10        (LauncherWindow::createChrome):
     11        (LauncherWindow::showFindBar):
     12        (LauncherWindow::find):
     13        * QtTestBrowser/launcherwindow.h:
     14
    1152011-05-30  Carlos Garcia Campos  <cgarcia@igalia.com>
    216
  • trunk/Tools/QtTestBrowser/launcherwindow.cpp

    r87436 r87720  
    11/*
    22 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
     3 * Copyright (C) 2011 University of Szeged
     4 * Copyright (C) 2011 Kristof Kosztyo <Kosztyo.Kristof@stud.u-szeged.hu>
    35 * Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
    46 * Copyright (C) 2006 George Staikos <staikos@kde.org>
     
    4547    , m_formatMenuAction(0)
    4648    , m_zoomAnimation(0)
     49    , m_findFlag(0)
    4750{
    4851    if (data)
     
    195198    editMenu->addAction(page()->action(QWebPage::Copy));
    196199    editMenu->addAction(page()->action(QWebPage::Paste));
     200    editMenu->addSeparator();
     201    editMenu->addAction("&Find", this, SLOT(showFindBar()), QKeySequence(Qt::CTRL | Qt::Key_F));
    197202    editMenu->addSeparator();
    198203    QAction* setEditable = editMenu->addAction("Set Editable", this, SLOT(setEditable(bool)));
     
    407412    toggleJavascriptCanOpenWindows->setChecked(false);
    408413
     414    m_findBar = new QToolBar("Find", this);
     415    addToolBar(Qt::BottomToolBarArea, m_findBar);
     416
     417    QToolButton* findClose = new QToolButton(m_findBar);
     418    findClose->setText("X");
     419    m_lineEdit = new QLineEdit(m_findBar);
     420    m_lineEdit->setMaximumWidth(200);
     421    QToolButton* findPrevious = new QToolButton(m_findBar);
     422    findPrevious->setArrowType(Qt::LeftArrow);
     423    QToolButton* findNext = new QToolButton(m_findBar);
     424    findNext->setArrowType(Qt::RightArrow);
     425    QCheckBox* findCaseSensitive = new QCheckBox("Case Sensitive", m_findBar);
     426    QCheckBox* findWrapAround = new QCheckBox("Wrap Around", m_findBar);
     427    QCheckBox* findHighLightAll = new QCheckBox("HighLight All", m_findBar);
     428
     429    QSignalMapper* findSignalMapper = new QSignalMapper(m_findBar);
     430    findSignalMapper->setMapping(m_lineEdit, s_findNormalFlag);
     431    findSignalMapper->setMapping(findPrevious, QWebPage::FindBackward);
     432    findSignalMapper->setMapping(findNext, s_findNormalFlag);
     433    findSignalMapper->setMapping(findCaseSensitive, QWebPage::FindCaseSensitively);
     434    findSignalMapper->setMapping(findWrapAround, QWebPage::FindWrapsAroundDocument);
     435    findSignalMapper->setMapping(findHighLightAll, QWebPage::HighlightAllOccurrences);
     436
     437    connect(findClose, SIGNAL(clicked()), this, SLOT(showFindBar()));
     438    connect(m_lineEdit, SIGNAL(textChanged(const QString &)), findSignalMapper, SLOT(map()));
     439    connect(findPrevious, SIGNAL(pressed()), findSignalMapper, SLOT(map()));
     440    connect(findNext, SIGNAL(pressed()), findSignalMapper, SLOT(map()));
     441    connect(findCaseSensitive, SIGNAL(stateChanged(int)), findSignalMapper, SLOT(map()));
     442    connect(findWrapAround, SIGNAL(stateChanged(int)), findSignalMapper, SLOT(map()));
     443    connect(findHighLightAll, SIGNAL(stateChanged(int)), findSignalMapper, SLOT(map()));
     444
     445    connect(findSignalMapper, SIGNAL(mapped(int)), this, SLOT(find(int)));
     446
     447    m_findBar->addWidget(findClose);
     448    m_findBar->addWidget(m_lineEdit);
     449    m_findBar->addWidget(findPrevious);
     450    m_findBar->addWidget(findNext);
     451    m_findBar->addWidget(findCaseSensitive);
     452    m_findBar->addWidget(findWrapAround);
     453    m_findBar->addWidget(findHighLightAll);
     454    m_findBar->setMovable(false);
     455    m_findBar->setVisible(false);
    409456#endif
    410457}
     
    9761023}
    9771024
     1025void LauncherWindow::showFindBar()
     1026{
     1027    if (!m_findBar->isVisible()) {
     1028        m_findBar->setVisible(true);
     1029        m_lineEdit->setText(page()->selectedText());
     1030        m_lineEdit->setFocus(Qt::PopupFocusReason);
     1031    } else {
     1032        m_findBar->setVisible(false);
     1033        page()->findText("", QWebPage::HighlightAllOccurrences);
     1034    }
     1035}
     1036
     1037void LauncherWindow::find(int mode = s_findNormalFlag)
     1038{
     1039    QPalette palette;
     1040    bool found;
     1041    palette.setColor(m_lineEdit->backgroundRole(), Qt::white);
     1042    page()->findText("", QFlag(QWebPage::HighlightAllOccurrences));
     1043
     1044    m_findFlag = m_findFlag ^ mode;
     1045    if (mode == s_findNormalFlag || mode == QWebPage::FindBackward) {
     1046        found = page()->findText(m_lineEdit->text(), QFlag(m_findFlag & ~QWebPage::HighlightAllOccurrences));
     1047        m_findFlag = m_findFlag ^ mode;
     1048
     1049        if (found || m_lineEdit->text().isEmpty())
     1050            m_lineEdit->setPalette(palette);
     1051        else {
     1052            palette.setColor(m_lineEdit->backgroundRole(), QColor(255, 0, 0, 127));
     1053            m_lineEdit->setPalette(palette);
     1054        }
     1055    }
     1056
     1057    if (m_findFlag & QWebPage::HighlightAllOccurrences)
     1058        page()->findText(m_lineEdit->text(), QFlag(m_findFlag));
     1059}
  • trunk/Tools/QtTestBrowser/launcherwindow.h

    r83928 r87720  
    192192    void setOfflineStorageDefaultQuota();
    193193
     194    void showFindBar();
     195    void find(int mode);
    194196#if defined(QT_CONFIGURED_WITH_OPENGL)
    195197    void toggleQGLWidgetViewport(bool enable);
     
    240242
    241243    QString m_inputUrl;
     244
     245    QToolBar* m_findBar;
     246    QLineEdit* m_lineEdit;
     247    int m_findFlag;
     248    static const int s_findNormalFlag = 0;
    242249};
    243250
Note: See TracChangeset for help on using the changeset viewer.