mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-07-19 20:59:02 -04:00
moved regular expression classes into a separate namespace
This commit is contained in:
parent
e9418bb5c6
commit
a2e34f9cc6
25 changed files with 439 additions and 426 deletions
|
@ -774,7 +774,7 @@ void SearchDialog::initSearchResult(const QString& txt, qulonglong searchId, int
|
|||
ui.searchSummaryWidget->setCurrentItem(item2);
|
||||
}
|
||||
|
||||
void SearchDialog::advancedSearch(Expression* expression)
|
||||
void SearchDialog::advancedSearch(RsRegularExpression::Expression* expression)
|
||||
{
|
||||
advSearchDialog->hide();
|
||||
|
||||
|
@ -782,7 +782,7 @@ void SearchDialog::advancedSearch(Expression* expression)
|
|||
std::list<DirDetails> results;
|
||||
|
||||
// send a turtle search request
|
||||
LinearizedExpression e ;
|
||||
RsRegularExpression::LinearizedExpression e ;
|
||||
expression->linearize(e) ;
|
||||
|
||||
TurtleRequestId req_id = rsTurtle->turtleSearch(e) ;
|
||||
|
@ -843,8 +843,8 @@ void SearchDialog::searchKeywords(const QString& keywords)
|
|||
if (n < 1)
|
||||
return;
|
||||
|
||||
NameExpression exprs(ContainsAllStrings,words,true) ;
|
||||
LinearizedExpression lin_exp ;
|
||||
RsRegularExpression::NameExpression exprs(RsRegularExpression::ContainsAllStrings,words,true) ;
|
||||
RsRegularExpression::LinearizedExpression lin_exp ;
|
||||
exprs.linearize(lin_exp) ;
|
||||
|
||||
TurtleRequestId req_id ;
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
#include "mainpage.h"
|
||||
|
||||
class AdvancedSearchDialog;
|
||||
class Expression;
|
||||
class RSTreeWidgetItemCompareRole;
|
||||
|
||||
namespace RsRegularExpression { class Expression; }
|
||||
|
||||
#define FRIEND_SEARCH 1
|
||||
#define ANONYMOUS_SEARCH 2
|
||||
class SearchDialog : public MainPage
|
||||
|
@ -99,7 +100,7 @@ private slots:
|
|||
void showAdvSearchDialog(bool=true);
|
||||
|
||||
/** perform the advanced search */
|
||||
void advancedSearch(Expression*);
|
||||
void advancedSearch(RsRegularExpression::Expression*);
|
||||
|
||||
void selectSearchResults(int index = -1);
|
||||
void hideOrShowSearchResult(QTreeWidgetItem* resultItem, QString currentSearchId = QString(), int fileTypeIndex = -1);
|
||||
|
|
|
@ -119,9 +119,9 @@ void AdvancedSearchDialog::prepareSearch()
|
|||
}
|
||||
|
||||
|
||||
Expression * AdvancedSearchDialog::getRsExpr()
|
||||
RsRegularExpression::Expression * AdvancedSearchDialog::getRsExpr()
|
||||
{
|
||||
Expression * wholeExpression;
|
||||
RsRegularExpression::Expression * wholeExpression;
|
||||
|
||||
// process the special case: first expression
|
||||
wholeExpression = expressions->at(0)->getRsExpression();
|
||||
|
@ -131,7 +131,7 @@ Expression * AdvancedSearchDialog::getRsExpr()
|
|||
for (int i = 1; i < expressions->size(); ++i) {
|
||||
// extract the expression information and compound it with the
|
||||
// first expression
|
||||
wholeExpression = new CompoundExpression(expressions->at(i)->getOperator(),
|
||||
wholeExpression = new RsRegularExpression::CompoundExpression(expressions->at(i)->getOperator(),
|
||||
wholeExpression,
|
||||
expressions->at(i)->getRsExpression());
|
||||
}
|
||||
|
|
|
@ -36,10 +36,10 @@ class AdvancedSearchDialog : public QDialog, public Ui::AdvancedSearchDialog
|
|||
|
||||
public:
|
||||
AdvancedSearchDialog(QWidget * parent = 0 );
|
||||
Expression * getRsExpr();
|
||||
RsRegularExpression::Expression * getRsExpr();
|
||||
QString getSearchAsString();
|
||||
signals:
|
||||
void search(Expression*);
|
||||
void search(RsRegularExpression::Expression*);
|
||||
|
||||
private slots:
|
||||
void deleteExpression(ExpressionWidget*);
|
||||
|
|
|
@ -130,7 +130,7 @@ void ExpressionWidget::deleteExpression()
|
|||
emit signalDelete(this);
|
||||
}
|
||||
|
||||
LogicalOperator ExpressionWidget::getOperator()
|
||||
RsRegularExpression::LogicalOperator ExpressionWidget::getOperator()
|
||||
{
|
||||
return exprOpElem->getLogicalOperator();
|
||||
}
|
||||
|
@ -145,9 +145,9 @@ static int checkedConversion(uint64_t s)
|
|||
return (int)s ;
|
||||
}
|
||||
|
||||
Expression* ExpressionWidget::getRsExpression()
|
||||
RsRegularExpression::Expression* ExpressionWidget::getRsExpression()
|
||||
{
|
||||
Expression * expr = NULL;
|
||||
RsRegularExpression::Expression * expr = NULL;
|
||||
|
||||
std::list<std::string> wordList;
|
||||
uint64_t lowVal = 0;
|
||||
|
@ -174,54 +174,54 @@ Expression* ExpressionWidget::getRsExpression()
|
|||
switch (searchType)
|
||||
{
|
||||
case NameSearch:
|
||||
expr = new NameExpression(exprCondElem->getStringOperator(),
|
||||
expr = new RsRegularExpression::NameExpression(exprCondElem->getStringOperator(),
|
||||
wordList,
|
||||
exprParamElem->ignoreCase());
|
||||
break;
|
||||
case PathSearch:
|
||||
expr = new PathExpression(exprCondElem->getStringOperator(),
|
||||
expr = new RsRegularExpression::PathExpression(exprCondElem->getStringOperator(),
|
||||
wordList,
|
||||
exprParamElem->ignoreCase());
|
||||
break;
|
||||
case ExtSearch:
|
||||
expr = new ExtExpression(exprCondElem->getStringOperator(),
|
||||
expr = new RsRegularExpression::ExtExpression(exprCondElem->getStringOperator(),
|
||||
wordList,
|
||||
exprParamElem->ignoreCase());
|
||||
break;
|
||||
case HashSearch:
|
||||
expr = new HashExpression(exprCondElem->getStringOperator(),
|
||||
expr = new RsRegularExpression::HashExpression(exprCondElem->getStringOperator(),
|
||||
wordList);
|
||||
break;
|
||||
case DateSearch:
|
||||
if (inRangedConfig) {
|
||||
expr = new DateExpression(exprCondElem->getRelOperator(), checkedConversion(lowVal), checkedConversion(highVal));
|
||||
expr = new RsRegularExpression::DateExpression(exprCondElem->getRelOperator(), checkedConversion(lowVal), checkedConversion(highVal));
|
||||
} else {
|
||||
expr = new DateExpression(exprCondElem->getRelOperator(), checkedConversion(exprParamElem->getIntValue()));
|
||||
expr = new RsRegularExpression::DateExpression(exprCondElem->getRelOperator(), checkedConversion(exprParamElem->getIntValue()));
|
||||
}
|
||||
break;
|
||||
case PopSearch:
|
||||
if (inRangedConfig) {
|
||||
expr = new DateExpression(exprCondElem->getRelOperator(), checkedConversion(lowVal), checkedConversion(highVal));
|
||||
expr = new RsRegularExpression::DateExpression(exprCondElem->getRelOperator(), checkedConversion(lowVal), checkedConversion(highVal));
|
||||
} else {
|
||||
expr = new DateExpression(exprCondElem->getRelOperator(), checkedConversion(exprParamElem->getIntValue()));
|
||||
expr = new RsRegularExpression::DateExpression(exprCondElem->getRelOperator(), checkedConversion(exprParamElem->getIntValue()));
|
||||
}
|
||||
break;
|
||||
case SizeSearch:
|
||||
if (inRangedConfig)
|
||||
{
|
||||
if(lowVal >= (uint64_t)(1024*1024*1024) || highVal >= (uint64_t)(1024*1024*1024))
|
||||
expr = new SizeExpressionMB(exprCondElem->getRelOperator(), (int)(lowVal / (1024*1024)), (int)(highVal / (1024*1024)));
|
||||
expr = new RsRegularExpression::SizeExpressionMB(exprCondElem->getRelOperator(), (int)(lowVal / (1024*1024)), (int)(highVal / (1024*1024)));
|
||||
else
|
||||
expr = new SizeExpression(exprCondElem->getRelOperator(), lowVal, highVal);
|
||||
expr = new RsRegularExpression::SizeExpression(exprCondElem->getRelOperator(), lowVal, highVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
uint64_t s = exprParamElem->getIntValue() ;
|
||||
|
||||
if(s >= (uint64_t)(1024*1024*1024))
|
||||
expr = new SizeExpressionMB(exprCondElem->getRelOperator(), (int)(s/(1024*1024))) ;
|
||||
expr = new RsRegularExpression::SizeExpressionMB(exprCondElem->getRelOperator(), (int)(s/(1024*1024))) ;
|
||||
else
|
||||
expr = new SizeExpression(exprCondElem->getRelOperator(), (int)s) ;
|
||||
expr = new RsRegularExpression::SizeExpression(exprCondElem->getRelOperator(), (int)s) ;
|
||||
}
|
||||
break;
|
||||
};
|
||||
|
|
|
@ -45,11 +45,11 @@ public:
|
|||
/** delivers the expression represented by this widget
|
||||
the operator to join this expression with any previous
|
||||
expressions is provided by the getOperator method */
|
||||
Expression* getRsExpression();
|
||||
RsRegularExpression::Expression* getRsExpression();
|
||||
|
||||
/** supplies the operator to be used when joining this expression
|
||||
to the whole query */
|
||||
LogicalOperator getOperator();
|
||||
RsRegularExpression::LogicalOperator getOperator();
|
||||
|
||||
QString toString();
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@ QStringList GuiExprElement::relOptionsList;
|
|||
|
||||
QMap<int, ExprSearchType> GuiExprElement::TermsIndexMap;
|
||||
|
||||
QMap<int, LogicalOperator> GuiExprElement::logicalOpIndexMap;
|
||||
QMap<int, StringOperator> GuiExprElement::strConditionIndexMap;
|
||||
QMap<int, RelOperator> GuiExprElement::relConditionIndexMap;
|
||||
QMap<int, RsRegularExpression::LogicalOperator> GuiExprElement::logicalOpIndexMap;
|
||||
QMap<int, RsRegularExpression::StringOperator> GuiExprElement::strConditionIndexMap;
|
||||
QMap<int, RsRegularExpression::RelOperator> GuiExprElement::relConditionIndexMap;
|
||||
|
||||
QMap<int, QString> GuiExprElement::logicalOpStrMap;
|
||||
QMap<int, QString> GuiExprElement::termsStrMap;
|
||||
|
@ -141,9 +141,9 @@ void GuiExprElement::initialiseOptionsLists()
|
|||
GuiExprElement::relOptionsList.append(RANGE);
|
||||
|
||||
// now the maps
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::AND_INDEX] = AndOp;
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::OR_INDEX] = OrOp;
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::XOR_INDEX] = XorOp;
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::AND_INDEX] = RsRegularExpression::AndOp;
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::OR_INDEX] = RsRegularExpression::OrOp;
|
||||
GuiExprElement::logicalOpIndexMap[GuiExprElement::XOR_INDEX] = RsRegularExpression::XorOp;
|
||||
|
||||
GuiExprElement::TermsIndexMap[GuiExprElement::NAME_INDEX] = NameSearch;
|
||||
GuiExprElement::TermsIndexMap[GuiExprElement::PATH_INDEX] = PathSearch;
|
||||
|
@ -153,9 +153,9 @@ void GuiExprElement::initialiseOptionsLists()
|
|||
GuiExprElement::TermsIndexMap[GuiExprElement::SIZE_INDEX] = SizeSearch;
|
||||
GuiExprElement::TermsIndexMap[GuiExprElement::POP_INDEX] = PopSearch;
|
||||
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::CONTAINS_INDEX] = ContainsAnyStrings;
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::CONTALL_INDEX] = ContainsAllStrings;
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::IS_INDEX] = EqualsString;
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::CONTAINS_INDEX] = RsRegularExpression::ContainsAnyStrings;
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::CONTALL_INDEX] = RsRegularExpression::ContainsAllStrings;
|
||||
GuiExprElement::strConditionIndexMap[GuiExprElement::IS_INDEX] = RsRegularExpression::EqualsString;
|
||||
|
||||
/* W A R N I N G !!!!
|
||||
the cb elements correspond to their inverse rel op counterparts in rsexpr.h due to the nature of
|
||||
|
@ -166,12 +166,12 @@ void GuiExprElement::initialiseOptionsLists()
|
|||
files where the condition is greater than the file size i.e. files whose size is less than or equal to the condition
|
||||
Therefore we invert the mapping of rel conditions here to match the behaviour of the impl.
|
||||
*/
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::LT_INDEX] = GreaterEquals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::LTE_INDEX] = Greater;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::EQUAL_INDEX] = Equals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::GTE_INDEX] = Smaller;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::GT_INDEX] = SmallerEquals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::RANGE_INDEX] = InRange;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::LT_INDEX] = RsRegularExpression::GreaterEquals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::LTE_INDEX] = RsRegularExpression::Greater;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::EQUAL_INDEX] = RsRegularExpression::Equals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::GTE_INDEX] = RsRegularExpression::Smaller;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::GT_INDEX] = RsRegularExpression::SmallerEquals;
|
||||
GuiExprElement::relConditionIndexMap[GuiExprElement::RANGE_INDEX] = RsRegularExpression::InRange;
|
||||
|
||||
// the string to index map
|
||||
GuiExprElement::termsStrMap[GuiExprElement::NAME_INDEX] = NAME;
|
||||
|
@ -260,7 +260,7 @@ QString ExprOpElement::toString()
|
|||
}
|
||||
|
||||
|
||||
LogicalOperator ExprOpElement::getLogicalOperator()
|
||||
RsRegularExpression::LogicalOperator ExprOpElement::getLogicalOperator()
|
||||
{
|
||||
return GuiExprElement::logicalOpIndexMap[cb->currentIndex()];
|
||||
}
|
||||
|
@ -313,12 +313,12 @@ QString ExprConditionElement::toString()
|
|||
return GuiExprElement::relConditionStrMap[cb->currentIndex()];
|
||||
}
|
||||
|
||||
RelOperator ExprConditionElement::getRelOperator()
|
||||
RsRegularExpression::RelOperator ExprConditionElement::getRelOperator()
|
||||
{
|
||||
return GuiExprElement::relConditionIndexMap[cb->currentIndex()];
|
||||
}
|
||||
|
||||
StringOperator ExprConditionElement::getStringOperator()
|
||||
RsRegularExpression::StringOperator ExprConditionElement::getStringOperator()
|
||||
{
|
||||
return GuiExprElement::strConditionIndexMap[cb->currentIndex()];
|
||||
}
|
||||
|
|
|
@ -114,9 +114,9 @@ protected:
|
|||
static QStringList relOptionsList;
|
||||
|
||||
// provides a mapping of condition operators to RSExpr reloperators
|
||||
static QMap<int, LogicalOperator> logicalOpIndexMap;
|
||||
static QMap<int, StringOperator> strConditionIndexMap;
|
||||
static QMap<int, RelOperator> relConditionIndexMap;
|
||||
static QMap<int, RsRegularExpression::LogicalOperator> logicalOpIndexMap;
|
||||
static QMap<int, RsRegularExpression::StringOperator> strConditionIndexMap;
|
||||
static QMap<int, RsRegularExpression::RelOperator> relConditionIndexMap;
|
||||
|
||||
// provides a mapping of indexes to translatable strings
|
||||
static QMap<int, QString> logicalOpStrMap;
|
||||
|
@ -134,7 +134,7 @@ class ExprOpElement : public GuiExprElement
|
|||
|
||||
public:
|
||||
ExprOpElement(QWidget * parent = 0);
|
||||
LogicalOperator getLogicalOperator();
|
||||
RsRegularExpression::LogicalOperator getLogicalOperator();
|
||||
QString toString();
|
||||
private:
|
||||
QComboBox * cb;
|
||||
|
@ -148,8 +148,8 @@ class ExprTermsElement : public GuiExprElement
|
|||
public:
|
||||
ExprTermsElement(QWidget * parent = 0);
|
||||
int getTermsIndex();
|
||||
RelOperator getRelOperator();
|
||||
StringOperator getStringOperator();
|
||||
RsRegularExpression::RelOperator getRelOperator();
|
||||
RsRegularExpression::StringOperator getStringOperator();
|
||||
void set(int i) {cb->setCurrentIndex(i);}
|
||||
QString toString();
|
||||
|
||||
|
@ -167,8 +167,8 @@ class ExprConditionElement : public GuiExprElement
|
|||
|
||||
public:
|
||||
ExprConditionElement(ExprSearchType, QWidget * parent = 0);
|
||||
RelOperator getRelOperator();
|
||||
StringOperator getStringOperator();
|
||||
RsRegularExpression::RelOperator getRelOperator();
|
||||
RsRegularExpression::StringOperator getStringOperator();
|
||||
void adjustForSearchType(ExprSearchType);
|
||||
void set(int i) {cb->setCurrentIndex(i);}
|
||||
QString toString();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue