summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filewidget.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index 31dfa92..6294487 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -395,22 +395,27 @@ void FileWidget::guessSubject(){
QModelIndexList sel = mFileView->selectionModel()->selectedRows(NameColumn);
if(!sel.isEmpty()){
QFileInfo fi(sel.first().data().toString());
- QString fRe = QString(".*%1.*").arg(fi.completeBaseName());
- const QRegExp fnRe(fRe);
- int index = mDescript.indexOf(fnRe);
- if(index > -1){
- QString subject(mDescript.at(index));
- if(subject.startsWith('"')){
- int nextQuot = subject.indexOf('"', 1);
- if(nextQuot > -1){
- subject = subject.remove(0, nextQuot + 1).trimmed();
+ QString fRe = QRegularExpression::escape(fi.completeBaseName());
+ const QRegularExpression fnRe(fRe);
+ QRegularExpressionMatch m;
+ for(QString l : mDescript){
+ m = fnRe.match(l);
+ if(m.hasMatch()){
+ QString subject;
+ if(l.startsWith('"')){
+ int nextQuot = l.indexOf('"', 1);
+ if(nextQuot > -1){
+ subject = l.remove(0, nextQuot + 1).trimmed();
+ }
}
+ subject.replace(QRegularExpression("\\d+$"), "");
+ subject = subject.trimmed();
+ qApp->clipboard()->setText(subject);
+ emit statusMessage(subject);
+ return;
}
- qApp->clipboard()->setText(subject);
- emit statusMessage(subject);
- }else{
- emit statusMessage(tr("No subject found!"));
}
+ emit statusMessage(tr("No subject found!"));
}
}