Skip to content

Commit

Permalink
[ws] Fix websearch breaking users search engines config
Browse files Browse the repository at this point in the history
  • Loading branch information
ManuelSchneid3r committed Aug 14, 2023
1 parent c4e9870 commit 4f2691c
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 8 deletions.
2 changes: 1 addition & 1 deletion websearch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
project(websearch VERSION 1.6)
project(websearch VERSION 1.7)
albert_plugin(
NAME WebSearch
DESCRIPTION "Open websearches"
Expand Down
4 changes: 2 additions & 2 deletions websearch/src/configwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ static void handleAcceptedEditor(const SearchEngineEditor &editor, SearchEngine

auto image = editor.icon_image->scaled(256, 256, Qt::KeepAspectRatio, Qt::SmoothTransformation);

auto dst = plugin.dataDir()->filePath(QString("%1.png").arg(engine.guid));
auto dst = plugin.dataDir()->filePath(QString("%1.png").arg(engine.id));
if (!image.save(dst)){
GWARN(QString("Could not save image to '%1'.").arg(dst));
return;
Expand Down Expand Up @@ -189,7 +189,7 @@ void ConfigWidget::onButton_new()
{
if (SearchEngineEditor editor(":default", "", "", "", this); editor.exec()){
SearchEngine engine;
engine.guid = QUuid::createUuid().toString(QUuid::WithoutBraces).left(8);
engine.id = QUuid::createUuid().toString(QUuid::WithoutBraces).left(8);
engine.iconUrl = ":default";
handleAcceptedEditor(editor, engine, *plugin_);
auto engines = plugin_->engines();
Expand Down
18 changes: 14 additions & 4 deletions websearch/src/plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ static QByteArray serializeEngines(const vector<SearchEngine> &engines)
QJsonArray array;
for (const SearchEngine& engine : engines) {
QJsonObject object;
object["guid"] = engine.guid;
object["id"] = engine.id;
object["name"] = engine.name;
object["url"] = engine.url;
object["trigger"] = engine.trigger;
Expand All @@ -43,7 +43,17 @@ static vector<SearchEngine> deserializeEngines(const QByteArray &json)
for (const auto &value : array) {
QJsonObject object = value.toObject();
SearchEngine searchEngine;
searchEngine.guid = object["guid"].toString();

// Todo remove this in future releasea
if (object.contains("id")){
searchEngine.id = object["id"].toString();
} else if (object.contains("guid")){
searchEngine.id = object["guid"].toString();
}

if (searchEngine.id.isEmpty())
searchEngine.id = QUuid::createUuid().toString(QUuid::WithoutBraces).left(8);

searchEngine.name = object["name"].toString();
searchEngine.trigger = object["trigger"].toString();
searchEngine.iconUrl = object["iconPath"].toString();
Expand Down Expand Up @@ -89,7 +99,7 @@ void Plugin::restoreDefaultEngines()
for (const auto &value : array) {
QJsonObject object = value.toObject();
SearchEngine searchEngine;
searchEngine.guid = QUuid::createUuid().toString(QUuid::WithoutBraces).left(8);
searchEngine.id = QUuid::createUuid().toString(QUuid::WithoutBraces).left(8);
searchEngine.name = object["name"].toString();
searchEngine.trigger = object["trigger"].toString();
searchEngine.iconUrl = object["iconPath"].toString();
Expand All @@ -105,7 +115,7 @@ static shared_ptr<StandardItem> buildItem(const SearchEngine &se, const QString
{
QString url = QString(se.url).replace("%s", QUrl::toPercentEncoding(search_term));
return StandardItem::make(
se.guid,
se.id,
se.name,
QString("Search %1 for '%2'").arg(se.name, search_term),
QString("%1 %2").arg(se.name, search_term),
Expand Down
2 changes: 1 addition & 1 deletion websearch/src/plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

struct SearchEngine
{
QString guid;
QString id;
QString name;
QString trigger;
QString iconUrl;
Expand Down

0 comments on commit 4f2691c

Please sign in to comment.