# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1345042086 14400 # Node ID d52bac6b9813258d698735ef23a787b495fafdc4 # Parent befb99c0c72f40f36670fda9e88ee89194e33435 find-dialog.{h,cc}: Get rid of DOS newlines diff --git a/gui/src/m-editor/find-dialog.cc b/gui/src/m-editor/find-dialog.cc --- a/gui/src/m-editor/find-dialog.cc +++ b/gui/src/m-editor/find-dialog.cc @@ -1,195 +1,195 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial Usage -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include "find-dialog.h" - -find_dialog::find_dialog (QsciScintilla* edit_area, QWidget *parent) - : QDialog (parent) -{ - setWindowTitle ("Find and Replace"); - setWindowIcon (QIcon(":/actions/icons/logo.png")); - - _search_label = new QLabel (tr ("Find &what:")); - _search_line_edit = new QLineEdit; - _search_label->setBuddy (_search_line_edit); - _replace_label = new QLabel (tr ("Re&place with:")); - _replace_line_edit = new QLineEdit; - _replace_label->setBuddy (_replace_line_edit); - - _case_check_box = new QCheckBox (tr ("Match &case")); - _from_start_check_box = new QCheckBox (tr ("Search from &start")); - _wrap_check_box = new QCheckBox (tr ("&Wrap while searching")); - _wrap_check_box->setChecked(true); - _find_next_button = new QPushButton (tr ("&Find Next")); - _find_next_button->setDefault (true); - _replace_button = new QPushButton (tr ("&Replace")); - _replace_all_button = new QPushButton (tr ("Replace &All")); - - _more_button = new QPushButton (tr ("&More")); - _more_button->setCheckable (true); - _more_button->setAutoDefault (false); - - _button_box = new QDialogButtonBox (Qt::Vertical); - _button_box->addButton (_find_next_button, QDialogButtonBox::ActionRole); - _button_box->addButton (_replace_button, QDialogButtonBox::ActionRole); - _button_box->addButton (_replace_all_button, QDialogButtonBox::ActionRole); - _button_box->addButton (_more_button, QDialogButtonBox::ActionRole); - - _extension = new QWidget (this); - _whole_words_check_box = new QCheckBox (tr ("&Whole words")); - _regex_check_box = new QCheckBox (tr ("Regular E&xpressions")); - _backward_check_box = new QCheckBox (tr ("Search &backward")); - _search_selection_check_box = new QCheckBox (tr ("Search se&lection")); - _search_selection_check_box->setCheckable (false); // TODO: Not implemented. - _search_selection_check_box->setEnabled (false); - - _edit_area = edit_area; - connect (_find_next_button, SIGNAL (clicked ()), - this, SLOT (search_next ())); - connect (_more_button, SIGNAL (toggled (bool)), - _extension, SLOT (setVisible (bool))); - connect (_replace_button, SIGNAL (clicked ()), - this, SLOT (replace ())); - connect (_replace_all_button, SIGNAL (clicked ()), - this, SLOT (replace_all ())); - - QVBoxLayout *extension_layout = new QVBoxLayout (); - extension_layout->setMargin (0); - extension_layout->addWidget (_whole_words_check_box); - extension_layout->addWidget (_backward_check_box); - extension_layout->addWidget (_search_selection_check_box); - _extension->setLayout (extension_layout); - - QGridLayout *top_left_layout = new QGridLayout; - top_left_layout->addWidget (_search_label, 1, 1); - top_left_layout->addWidget (_search_line_edit, 1, 2); - top_left_layout->addWidget (_replace_label, 2, 1); - top_left_layout->addWidget (_replace_line_edit, 2, 2); - - QVBoxLayout *left_layout = new QVBoxLayout; - left_layout->addLayout (top_left_layout); - left_layout->insertStretch (1, 5); - left_layout->addWidget (_case_check_box); - left_layout->addWidget (_from_start_check_box); - left_layout->addWidget (_wrap_check_box); - left_layout->addWidget (_regex_check_box); - - QGridLayout *main_layout = new QGridLayout; - main_layout->setSizeConstraint (QLayout::SetFixedSize); - main_layout->addLayout (left_layout, 0, 0); - main_layout->addWidget (_button_box, 0, 1); - main_layout->addWidget (_extension, 1, 0, 1, 2); - setLayout (main_layout); - - _extension->hide (); -} - -void -find_dialog::search_next () -{ - int line = -1, col = -1; - - _find_result_available = false; - if (_from_start_check_box->isChecked ()) - { - line = 1; - col = 1; - } - - if (_edit_area) - { - _find_result_available = _edit_area->findFirst (_search_line_edit->text (), - _regex_check_box->isChecked (), - _case_check_box->isChecked (), - _whole_words_check_box->isChecked (), - _wrap_check_box->isChecked (), - !_backward_check_box->isChecked (), - line,col, - true, - true - ); - } -} - - -void -find_dialog::replace () -{ - if (_edit_area) - { - _edit_area->replace (_replace_line_edit->text ()); - _edit_area->findNext(); - } -} - -void -find_dialog::replace_all () -{ - int count = 0; - - // check whether find & replace srings are different (avoid endless loop!) - int strDiff; - Qt::CaseSensitivity cs; - if (_case_check_box->isChecked()) - { - cs = Qt::CaseSensitive; - } - else - { - cs = Qt::CaseInsensitive; - } - strDiff = QString::compare(_search_line_edit->text(),_replace_line_edit->text(),cs); - - // replace all if strings are different - if (_edit_area && strDiff ) - { - search_next (); // find first occurence - while (_find_result_available) // while search string is found - { - _edit_area->replace (_replace_line_edit->text ()); // replace - count++; // inc counter - _find_result_available = _edit_area->findNext(); // and find next - } - } - // TODO: Show number of replaced strings -} +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include "find-dialog.h" + +find_dialog::find_dialog (QsciScintilla* edit_area, QWidget *parent) + : QDialog (parent) +{ + setWindowTitle ("Find and Replace"); + setWindowIcon (QIcon(":/actions/icons/logo.png")); + + _search_label = new QLabel (tr ("Find &what:")); + _search_line_edit = new QLineEdit; + _search_label->setBuddy (_search_line_edit); + _replace_label = new QLabel (tr ("Re&place with:")); + _replace_line_edit = new QLineEdit; + _replace_label->setBuddy (_replace_line_edit); + + _case_check_box = new QCheckBox (tr ("Match &case")); + _from_start_check_box = new QCheckBox (tr ("Search from &start")); + _wrap_check_box = new QCheckBox (tr ("&Wrap while searching")); + _wrap_check_box->setChecked(true); + _find_next_button = new QPushButton (tr ("&Find Next")); + _find_next_button->setDefault (true); + _replace_button = new QPushButton (tr ("&Replace")); + _replace_all_button = new QPushButton (tr ("Replace &All")); + + _more_button = new QPushButton (tr ("&More")); + _more_button->setCheckable (true); + _more_button->setAutoDefault (false); + + _button_box = new QDialogButtonBox (Qt::Vertical); + _button_box->addButton (_find_next_button, QDialogButtonBox::ActionRole); + _button_box->addButton (_replace_button, QDialogButtonBox::ActionRole); + _button_box->addButton (_replace_all_button, QDialogButtonBox::ActionRole); + _button_box->addButton (_more_button, QDialogButtonBox::ActionRole); + + _extension = new QWidget (this); + _whole_words_check_box = new QCheckBox (tr ("&Whole words")); + _regex_check_box = new QCheckBox (tr ("Regular E&xpressions")); + _backward_check_box = new QCheckBox (tr ("Search &backward")); + _search_selection_check_box = new QCheckBox (tr ("Search se&lection")); + _search_selection_check_box->setCheckable (false); // TODO: Not implemented. + _search_selection_check_box->setEnabled (false); + + _edit_area = edit_area; + connect (_find_next_button, SIGNAL (clicked ()), + this, SLOT (search_next ())); + connect (_more_button, SIGNAL (toggled (bool)), + _extension, SLOT (setVisible (bool))); + connect (_replace_button, SIGNAL (clicked ()), + this, SLOT (replace ())); + connect (_replace_all_button, SIGNAL (clicked ()), + this, SLOT (replace_all ())); + + QVBoxLayout *extension_layout = new QVBoxLayout (); + extension_layout->setMargin (0); + extension_layout->addWidget (_whole_words_check_box); + extension_layout->addWidget (_backward_check_box); + extension_layout->addWidget (_search_selection_check_box); + _extension->setLayout (extension_layout); + + QGridLayout *top_left_layout = new QGridLayout; + top_left_layout->addWidget (_search_label, 1, 1); + top_left_layout->addWidget (_search_line_edit, 1, 2); + top_left_layout->addWidget (_replace_label, 2, 1); + top_left_layout->addWidget (_replace_line_edit, 2, 2); + + QVBoxLayout *left_layout = new QVBoxLayout; + left_layout->addLayout (top_left_layout); + left_layout->insertStretch (1, 5); + left_layout->addWidget (_case_check_box); + left_layout->addWidget (_from_start_check_box); + left_layout->addWidget (_wrap_check_box); + left_layout->addWidget (_regex_check_box); + + QGridLayout *main_layout = new QGridLayout; + main_layout->setSizeConstraint (QLayout::SetFixedSize); + main_layout->addLayout (left_layout, 0, 0); + main_layout->addWidget (_button_box, 0, 1); + main_layout->addWidget (_extension, 1, 0, 1, 2); + setLayout (main_layout); + + _extension->hide (); +} + +void +find_dialog::search_next () +{ + int line = -1, col = -1; + + _find_result_available = false; + if (_from_start_check_box->isChecked ()) + { + line = 1; + col = 1; + } + + if (_edit_area) + { + _find_result_available = _edit_area->findFirst (_search_line_edit->text (), + _regex_check_box->isChecked (), + _case_check_box->isChecked (), + _whole_words_check_box->isChecked (), + _wrap_check_box->isChecked (), + !_backward_check_box->isChecked (), + line,col, + true, + true + ); + } +} + + +void +find_dialog::replace () +{ + if (_edit_area) + { + _edit_area->replace (_replace_line_edit->text ()); + _edit_area->findNext(); + } +} + +void +find_dialog::replace_all () +{ + int count = 0; + + // check whether find & replace srings are different (avoid endless loop!) + int strDiff; + Qt::CaseSensitivity cs; + if (_case_check_box->isChecked()) + { + cs = Qt::CaseSensitive; + } + else + { + cs = Qt::CaseInsensitive; + } + strDiff = QString::compare(_search_line_edit->text(),_replace_line_edit->text(),cs); + + // replace all if strings are different + if (_edit_area && strDiff ) + { + search_next (); // find first occurence + while (_find_result_available) // while search string is found + { + _edit_area->replace (_replace_line_edit->text ()); // replace + count++; // inc counter + _find_result_available = _edit_area->findNext(); // and find next + } + } + // TODO: Show number of replaced strings +} diff --git a/gui/src/m-editor/find-dialog.h b/gui/src/m-editor/find-dialog.h --- a/gui/src/m-editor/find-dialog.h +++ b/gui/src/m-editor/find-dialog.h @@ -1,89 +1,89 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial Usage -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef FIND_DIALOG_H -#define FIND_DIALOG_H - -#include -#include - -class QCheckBox; -class QDialogButtonBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class find_dialog : public QDialog -{ - Q_OBJECT -public: - find_dialog (QsciScintilla* edit_area, QWidget *parent = 0); - -private slots: - void search_next (); - void replace (); - void replace_all (); - -private: - QLabel *_search_label; - QLineEdit *_search_line_edit; - QLabel *_replace_label; - QLineEdit *_replace_line_edit; - QCheckBox *_case_check_box; - QCheckBox *_from_start_check_box; - QCheckBox *_wrap_check_box; - QCheckBox *_whole_words_check_box; - QCheckBox *_regex_check_box; - QCheckBox *_search_selection_check_box; - QCheckBox *_backward_check_box; - QDialogButtonBox *_button_box; - QPushButton *_find_next_button; - QPushButton *_replace_button; - QPushButton *_replace_all_button; - QPushButton *_more_button; - QWidget *_extension; - QsciScintilla *_edit_area; - bool _find_result_available; -}; - -#endif // FIND_DIALOG_H - +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef FIND_DIALOG_H +#define FIND_DIALOG_H + +#include +#include + +class QCheckBox; +class QDialogButtonBox; +class QGroupBox; +class QLabel; +class QLineEdit; +class QPushButton; + +class find_dialog : public QDialog +{ + Q_OBJECT +public: + find_dialog (QsciScintilla* edit_area, QWidget *parent = 0); + +private slots: + void search_next (); + void replace (); + void replace_all (); + +private: + QLabel *_search_label; + QLineEdit *_search_line_edit; + QLabel *_replace_label; + QLineEdit *_replace_line_edit; + QCheckBox *_case_check_box; + QCheckBox *_from_start_check_box; + QCheckBox *_wrap_check_box; + QCheckBox *_whole_words_check_box; + QCheckBox *_regex_check_box; + QCheckBox *_search_selection_check_box; + QCheckBox *_backward_check_box; + QDialogButtonBox *_button_box; + QPushButton *_find_next_button; + QPushButton *_replace_button; + QPushButton *_replace_all_button; + QPushButton *_more_button; + QWidget *_extension; + QsciScintilla *_edit_area; + bool _find_result_available; +}; + +#endif // FIND_DIALOG_H +