]> gitweb.hamatoma.de Git - reqt/commitdiff
text search works
authorhama <hama@siduction.net>
Tue, 21 Apr 2015 21:44:06 +0000 (23:44 +0200)
committerhama <hama@siduction.net>
Tue, 21 Apr 2015 21:44:06 +0000 (23:44 +0200)
appl/refind/mainwindow.cpp
appl/refind/textfinder.cpp

index 781260c42c6837360677efb796cb8fb715576542..7036ff40e1a07e817a08dad09f7ca3ad5085c0f6 100644 (file)
@@ -282,8 +282,8 @@ QDir::Filters MainWindow::buildFileTypes(){
  */
 void MainWindow::prepareTextFind(){
    m_textFinder.setSearchParameter(ui->comboBoxTextPattern->currentText(),
-      ui->checkBoxTextIgnoreCase->isChecked(), ui->checkBoxRegExpr,
-      !ui->checkBoxBinaryFiles);
+      ui->checkBoxTextIgnoreCase->isChecked(), ui->checkBoxRegExpr->isChecked(),
+      !ui->checkBoxBinaryFiles->isChecked());
    QString error = m_textFinder.regExprError();
    if (!error.isEmpty()){
       guiError(ui->comboBoxTextPattern, error);
index e6557915237d4521f92b35ed1ac784d978bbea11..06431ec5d0e5d59f01e2b037ea01af47782f6082 100644 (file)
@@ -43,6 +43,10 @@ TextFinder::TextFinder(const QString& fullName, int64_t length) :
  * Destructor.
  */
 TextFinder::~TextFinder(){
+    if (m_ownsRegExpr){
+        delete m_regExpr;
+        m_regExpr = NULL;
+    }
 }
 
 /**
@@ -94,6 +98,7 @@ void TextFinder::getSearchParameter(const TextFinder& source){
    m_regExpr = source.m_regExpr;
    m_isRegExpr = source.m_isRegExpr;
    m_ignoreCase = source.m_ignoreCase;
+   m_text = source.m_text;
 }
 
 /**
@@ -106,11 +111,7 @@ bool TextFinder::isBinary(){
    int length = data.length();
    const char* ptr = reinterpret_cast <const char*>(memchr(data.constData(),
       '\0', length));
-   bool rc = int(ptr - data.constData()) != length;
-
-   if (!rc)
-      rc = !isText(data);
-
+   bool rc = ptr != NULL;
    return rc;
 }
 
@@ -218,7 +219,10 @@ void TextFinder::setSearchParameter(const QString& text, bool ignoreCase,
    m_ignoreCase = ignoreCase;
    m_isRegExpr = isRegExpr;
    m_ignoreBinary = ignoreBinary;
-   if (isRegExpr && !text.isEmpty()){
+   if (! isRegExpr || text.isEmpty()){
+       delete m_regExpr;
+       m_regExpr = NULL;
+   } else {
       QRegularExpression::PatternOption option =
                ignoreCase ?
                   QRegularExpression::CaseInsensitiveOption :
@@ -236,7 +240,7 @@ void TextFinder::setSearchParameter(const QString& text, bool ignoreCase,
  */
 QString TextFinder::regExprError(){
    QString rc;
-   if (m_regExpr != NULL && m_regExpr->isValid())
+   if (m_regExpr != NULL && m_regExpr->isValid())
       rc = m_regExpr->errorString();
    return rc;
 }