summaryrefslogtreecommitdiff
path: root/src/searchengine.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/searchengine.hpp')
-rw-r--r--src/searchengine.hpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/searchengine.hpp b/src/searchengine.hpp
new file mode 100644
index 00000000..3eff4b58
--- /dev/null
+++ b/src/searchengine.hpp
@@ -0,0 +1,42 @@
+/* ============================================================
+ * The rekonq project
+ * ============================================================
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com>
+ * Copyright (C) 2009-2011 by Lionel Chauvin <megabigbug@yahoo.fr>
+ * SPDX-License-Identifier: GPL-3.0-only
+ * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
+ * ============================================================
+ * Description: Search engine manager
+ * ============================================================ */
+
+#pragma once
+
+#include <QIcon>
+#include <QList>
+#include <QString>
+#include <rsettings.hpp>
+
+class SearchEngine {
+public:
+ static void reload(RekonqSettings *settings);
+ static SearchEngine *defaultEngine();
+ static QList<SearchEngine *> engines();
+
+ SearchEngine(const QString &id, RekonqSettings *settings);
+
+ [[nodiscard]] auto id() const { return m_id; }
+ [[nodiscard]] auto icon() const { return m_icon; }
+ [[nodiscard]] auto name() const { return m_name; }
+ void setName(const QString &name) { m_name = name; }
+ [[nodiscard]] bool isEnabled() const { return m_enabled; }
+
+ [[nodiscard]] QString query(const QString &text) const { return m_url.arg(text); }
+
+private:
+ const QString m_id;
+ QIcon m_icon;
+ QString m_name;
+ QString m_url;
+ bool m_enabled;
+};