fix regex for placeholders, fix #402, add regression test

This commit is contained in:
thez3ro
2017-03-16 20:31:14 +01:00
parent 4cccf28b4d
commit e3602e3c75
5 changed files with 59 additions and 13 deletions

View File

@@ -649,7 +649,8 @@ const Database* Entry::database() const
QString Entry::resolveMultiplePlaceholders(const QString& str) const
{
QString result = str;
QRegExp tmplRegEx("({.*})", Qt::CaseInsensitive, QRegExp::RegExp2);
QRegExp tmplRegEx("(\\{.*\\})", Qt::CaseInsensitive, QRegExp::RegExp2);
tmplRegEx.setMinimal(true);
QStringList tmplList;
int pos = 0;

View File

@@ -407,7 +407,7 @@ void DatabaseWidget::copyTitle()
return;
}
setClipboardTextAndMinimize(currentEntry->resolvePlaceholder(currentEntry->title()));
setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->title()));
}
void DatabaseWidget::copyUsername()
@@ -418,7 +418,7 @@ void DatabaseWidget::copyUsername()
return;
}
setClipboardTextAndMinimize(currentEntry->resolvePlaceholder(currentEntry->username()));
setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->username()));
}
void DatabaseWidget::copyPassword()
@@ -429,7 +429,7 @@ void DatabaseWidget::copyPassword()
return;
}
setClipboardTextAndMinimize(currentEntry->resolvePlaceholder(currentEntry->password()));
setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->password()));
}
void DatabaseWidget::copyURL()
@@ -440,7 +440,7 @@ void DatabaseWidget::copyURL()
return;
}
setClipboardTextAndMinimize(currentEntry->resolvePlaceholder(currentEntry->url()));
setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->url()));
}
void DatabaseWidget::copyNotes()
@@ -451,7 +451,7 @@ void DatabaseWidget::copyNotes()
return;
}
setClipboardTextAndMinimize(currentEntry->resolvePlaceholder(currentEntry->notes()));
setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->notes()));
}
void DatabaseWidget::copyAttribute(QAction* action)
@@ -1176,7 +1176,7 @@ bool DatabaseWidget::currentEntryHasUsername()
Q_ASSERT(false);
return false;
}
return !currentEntry->resolvePlaceholder(currentEntry->username()).isEmpty();
return !currentEntry->resolveMultiplePlaceholders(currentEntry->username()).isEmpty();
}
bool DatabaseWidget::currentEntryHasPassword()
@@ -1186,7 +1186,7 @@ bool DatabaseWidget::currentEntryHasPassword()
Q_ASSERT(false);
return false;
}
return !currentEntry->resolvePlaceholder(currentEntry->password()).isEmpty();
return !currentEntry->resolveMultiplePlaceholders(currentEntry->password()).isEmpty();
}
bool DatabaseWidget::currentEntryHasUrl()
@@ -1196,7 +1196,7 @@ bool DatabaseWidget::currentEntryHasUrl()
Q_ASSERT(false);
return false;
}
return !currentEntry->resolvePlaceholder(currentEntry->url()).isEmpty();
return !currentEntry->resolveMultiplePlaceholders(currentEntry->url()).isEmpty();
}
bool DatabaseWidget::currentEntryHasNotes()
@@ -1206,7 +1206,7 @@ bool DatabaseWidget::currentEntryHasNotes()
Q_ASSERT(false);
return false;
}
return !currentEntry->resolvePlaceholder(currentEntry->notes()).isEmpty();
return !currentEntry->resolveMultiplePlaceholders(currentEntry->notes()).isEmpty();
}
GroupView* DatabaseWidget::groupView() {

View File

@@ -139,19 +139,19 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const
}
break;
case Title:
result = entry->resolvePlaceholder(entry->title());
result = entry->resolveMultiplePlaceholders(entry->title());
if (attr->isReference(EntryAttributes::TitleKey)) {
result.prepend(tr("Ref: ","Reference abbreviation"));
}
return result;
case Username:
result = entry->resolvePlaceholder(entry->username());
result = entry->resolveMultiplePlaceholders(entry->username());
if (attr->isReference(EntryAttributes::UserNameKey)) {
result.prepend(tr("Ref: ","Reference abbreviation"));
}
return result;
case Url:
result = entry->resolvePlaceholder(entry->url());
result = entry->resolveMultiplePlaceholders(entry->url());
if (attr->isReference(EntryAttributes::URLKey)) {
result.prepend(tr("Ref: ","Reference abbreviation"));
}