Сравнить коммиты

...

7 Коммитов

Автор SHA1 Сообщение Дата
20a1f8b2cd Release v0.8.1 2022-11-19 11:54:24 +01:00
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
9686ef30c7 gui: PreviewResult*: Wrap result in shared pointer immediatly 2022-11-13 17:37:35 +01:00
abce4cfcd9 gui: PreviewGeneratorPlaintext: Escape words we pass to QRegularExpression 2022-11-13 17:27:45 +01:00
d55187a71c submodules: exile.h: Sync to current master 2022-10-26 13:14:03 +02:00
9e1bc98f38 gui: mainwindow.h: Initialize preview-related members with a default 2022-10-26 13:13:20 +02:00
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