コミットを比較

...

7 コミット

作成者 SHA1 メッセージ 日付
Albert S. 20a1f8b2cd Release v0.8.1 2022-11-19 11:54:24 +01:00
Albert S. a47af257f3 gui: previews: Fix incorrect pos calculation in cached previews
The cached order position introduced in 42e9ac5 is incorrect
as it does not consider the case when we are viewing any
other result page than the first.

Fix this by considering which page we are in when calculating
the offset
2022-11-18 22:22:11 +01:00
Albert S. 9686ef30c7 gui: PreviewResult*: Wrap result in shared pointer immediatly 2022-11-13 17:37:35 +01:00
Albert S. abce4cfcd9 gui: PreviewGeneratorPlaintext: Escape words we pass to QRegularExpression 2022-11-13 17:27:45 +01:00
Albert S. d55187a71c submodules: exile.h: Sync to current master 2022-10-26 13:14:03 +02:00
Albert S. 9e1bc98f38 gui: mainwindow.h: Initialize preview-related members with a default 2022-10-26 13:13:20 +02:00
Albert S. 496aefaa09 shared: sqlitesearch: Remove unused var 2022-10-26 13:10:00 +02:00
9個のファイルの変更26行の追加17行の削除

ファイルの表示

@ -1,5 +1,11 @@
# looqs: Release notes
## 2022-11-19 - v0.8.1
CHANGES:
- Fix regression causing previews in second (and higher) result page to not render
- Minor improvements
## 2022-10-22 - v0.8
CHANGES:

ファイルの表示

@ -28,7 +28,7 @@ There is no need to write the long form of filters. There are also booleans avai
The screenshots in this section may occasionally be slightly outdated, but they are usually recent enough to get an overall impression of the current state of the GUI.
## Current status
Latest version: 2022-10-22, v0.8
Latest version: 2022-11-19, v0.8.1
Please keep in mind: looqs is still at an early stage and may exhibit some weirdness and contain bugs.

ファイルの表示

@ -940,12 +940,12 @@ void MainWindow::makePreviews(int page)
}
}
}
int end = previewsPerPage;
int begin = page * previewsPerPage - previewsPerPage;
if(begin < 0)
int length = previewsPerPage;
int beginOffset = page * previewsPerPage - previewsPerPage;
if(beginOffset < 0)
{
// Should not happen actually
begin = 0;
beginOffset = 0;
}
int currentScale = currentSelectedScale();
@ -972,11 +972,14 @@ void MainWindow::makePreviews(int page)
renderTarget.path = sr.fileData.absPath;
renderTarget.page = (int)sr.page;
targets.append(renderTarget);
this->previewOrder[renderTarget.path + QString::number(renderTarget.page)] = previewPos++;
int pos = previewPos - beginOffset;
this->previewOrder[renderTarget.path + QString::number(renderTarget.page)] = pos;
++previewPos;
}
int numpages = ceil(static_cast<double>(targets.size()) / previewsPerPage);
ui->spinPreviewPage->setMaximum(numpages);
targets = targets.mid(begin, end);
targets = targets.mid(beginOffset, length);
ui->lblTotalPreviewPagesCount->setText(QString::number(numpages));
ui->previewProcessBar->setMaximum(targets.count());

ファイルの表示

@ -44,9 +44,9 @@ class MainWindow : public QMainWindow
QHash<QString, int> previewOrder; /* Quick lookup for the order a preview should have */
QMap<int, QWidget *>
previewWidgetOrderCache /* Saves those that arrived out of order to be inserted later at the correct pos */;
bool previewDirty;
int previewsPerPage;
unsigned int processedPdfPreviews;
bool previewDirty = false;
int previewsPerPage = 20;
unsigned int processedPdfPreviews = 0;
unsigned int currentPreviewGeneration = 1;
void connectSignals();

ファイルの表示

@ -103,7 +103,7 @@ QString PreviewGeneratorPlainText::generateLineBasedPreviewText(QTextStream &in,
int foundWordsCount = 0;
for(QString &word : config.wordsToHighlight)
{
QRegularExpression searchRegex("\\b" + word + "\\b");
QRegularExpression searchRegex("\\b" + QRegularExpression::escape(word) + "\\b");
bool containsRegex = line.contains(searchRegex);
bool contains = false;
if(!containsRegex)

ファイルの表示

@ -30,7 +30,7 @@ QByteArray PreviewResultPdf::serialize() const
QSharedPointer<PreviewResultPdf> PreviewResultPdf::deserialize(QByteArray &ba)
{
PreviewResultPdf *result = new PreviewResultPdf();
QSharedPointer<PreviewResultPdf> result(new PreviewResultPdf());
PreviewResultType type;
QDataStream stream{&ba, QIODevice::ReadOnly};
@ -40,5 +40,5 @@ QSharedPointer<PreviewResultPdf> PreviewResultPdf::deserialize(QByteArray &ba)
throw std::runtime_error("Invalid byte array: Not a pdf preview");
}
stream >> result->documentPath >> result->page >> result->previewImage;
return QSharedPointer<PreviewResultPdf>(result);
return result;
}

ファイルの表示

@ -40,7 +40,8 @@ QByteArray PreviewResultPlainText::serialize() const
QSharedPointer<PreviewResultPlainText> PreviewResultPlainText::deserialize(QByteArray &ba)
{
PreviewResultPlainText *result = new PreviewResultPlainText();
QSharedPointer<PreviewResultPlainText> result(new PreviewResultPlainText());
PreviewResultType type;
QDataStream stream{&ba, QIODevice::ReadOnly};
@ -50,5 +51,5 @@ QSharedPointer<PreviewResultPlainText> PreviewResultPlainText::deserialize(QByte
throw std::runtime_error("Invalid byte array: Not a pdf preview");
}
stream >> result->documentPath >> result->page >> result->text;
return QSharedPointer<PreviewResultPlainText>(result);
return result;
}

ファイルの表示

@ -157,7 +157,6 @@ QSqlQuery SqliteSearch::makeSqlQuery(const LooqsQuery &query)
throw LooqsGeneralException("Nothing to search for supplied");
}
bool ftsAlreadyJoined = false;
auto tokens = query.getTokens();
for(const Token &token : tokens)
{

@ -1 +1 @@
Subproject commit e711a1d53a9210f8f562f774901e5e044d20e67a
Subproject commit 769f729dc51f2feb8bc3cbb2a48ed91ff2d56bf3