You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kscope/src/searchresultsdlg.cpp

161 lines
4.4 KiB

/***************************************************************************
*
* Copyright (C) 2005 Elad Lahav (elad_lahav@users.sourceforge.net)
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
***************************************************************************/
#include <tqpushbutton.h>
#include <tqlineedit.h>
#include <tqcombobox.h>
#include <tqradiobutton.h>
#include "searchresultsdlg.h"
int SearchResultsDlg::s_nType = PlainText;
bool SearchResultsDlg::s_bCaseSensitive = true;
bool SearchResultsDlg::s_bNegate = false;
/**
* Class constructor.
* @param pParent The parent widget
* @param szName Optional widget name
*/
SearchResultsDlg::SearchResultsDlg(TQWidget* pParent, const char* szName) :
SearchResultsLayout(pParent, szName, true, 0)
{
// Select the last selected type radio button
switch (s_nType) {
case PlainText:
m_pTextRadio->setChecked(true);
break;
case RegExp:
m_pRegExpRadio->setChecked(true);
break;
case SimpRegExp:
m_pSimpRegExpRadio->setChecked(true);
break;
}
// Set the default value of the check-boxes
m_pCaseSenCheck->setChecked(s_bCaseSensitive);
m_pNegateCheck->setChecked(s_bNegate);
// Terminate the dialogue when either the "OK" or "Cancel" buttons are
// clicked
connect(m_pOKButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(accept()));
connect(m_pCancelButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(reject()));
}
/**
* Class destructor.
*/
SearchResultsDlg::~SearchResultsDlg()
{
}
/**
* Determines the default column on which to search.
* The column's name appears in the column combo-box.
*/
void SearchResultsDlg::setColumn(int nCol)
{
m_pColumnCB->setCurrentItem(nCol);
}
/**
* @return The selected column on which to perform the search
*/
int SearchResultsDlg::getColumn()
{
return m_pColumnCB->currentItem();
}
/**
* Creates a regular expression based on the given pattern and type of search.
* @param re A regular expression object to set
*/
void SearchResultsDlg::getPattern(TQRegExp& re)
{
TQString sPattern;
sPattern = m_pSearchEdit->text();
// Create the regular expression
switch (s_nType) {
case PlainText:
re.setPattern(TQRegExp::escape(sPattern));
re.setWildcard(false);
break;
case RegExp:
re.setPattern(sPattern);
re.setWildcard(false);
break;
case SimpRegExp:
re.setPattern(sPattern);
re.setWildcard(true);
break;
}
// Set the case-(in)sensitive parameter
re.setCaseSensitive(s_bCaseSensitive);
}
/**
* Reads user values from the widgets, and closes the dialogue.
* This slot is connected to the clicked() signal emitted by the "OK" button.
*/
void SearchResultsDlg::accept()
{
TQString sText;
// Determine the selected type and store its value for the next invocation
if (m_pTextRadio->isChecked())
s_nType = PlainText;
else if (m_pRegExpRadio->isChecked())
s_nType = RegExp;
else if (m_pSimpRegExpRadio->isChecked())
s_nType = SimpRegExp;
// Determine search parameters
s_bCaseSensitive = m_pCaseSenCheck->isChecked();
s_bNegate = m_pNegateCheck->isChecked();
// Remove white space from the search text
sText = m_pSearchEdit->text();
sText.stripWhiteSpace();
if (sText.isEmpty()) {
TQDialog::reject();
return;
}
// Close the dialogue
TQDialog::accept();
}
#include "searchresultsdlg.moc"