15#include <QApplication>
24#include "../../backend/config/btconfig.h"
25#include "../../backend/drivers/cswordmoduleinfo.h"
26#include "../../backend/managers/colormanager.h"
27#include "../../backend/keys/cswordversekey.h"
28#include "../../backend/rendering/cdisplayrendering.h"
29#include "../../util/btconnect.h"
30#include "../../util/tool.h"
35#pragma GCC diagnostic push
36#pragma GCC diagnostic ignored "-Wextra-semi"
37#pragma GCC diagnostic ignored "-Wsuggest-override"
38#pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
40#pragma GCC diagnostic pop
45 QStringLiteral(
"GUI/SearchDialog/SearchResultsArea/mainSplitterSizes");
48 "GUI/SearchDialog/SearchResultsArea/resultSplitterSizes");
56 QVBoxLayout *mainLayout;
58 QVBoxLayout *resultListsWidgetLayout;
63 this->setMinimumSize(QSize(mWidth*40, mWidth*15));
64 mainLayout =
new QVBoxLayout(
this);
70 resultListsWidgetLayout =
new QVBoxLayout(resultListsWidget);
71 resultListsWidgetLayout->setContentsMargins(0, 0, 0, 0);
111 frameLayout->setContentsMargins(0, 0, 0, 0);
114 m_previewDisplay->setToolTip(tr(
"Text of the selected search result item"));
152 QStringLiteral(
"<html><head/><body></body></html>"));
164 modules.append(module);
175 static_cast<sword::VerseKey *
>(
module->swordModule().getKey())
183 if (vk.
verse() == 1) {
190 auto const startKey = vk;
197 settings.
keyRenderingFace = CTextRendering::KeyTreeItem::Settings::CompleteShort;
198 text = render.
renderKeyRange(startKey, vk, modules, key, settings);
207 static_cast<sword::VerseKey *
>(
module->swordModule().getKey())
211 if (vk.
verse() == 1) {
217 auto const startKey = vk;
222 text = render.
renderKeyRange(startKey, vk, modules, key, settings);
228 if (modules.count() > 0)
233 text2.replace(QStringLiteral(
"#CHAPTERTITLE#"), QString());
234 text2.replace(QStringLiteral(
"#TEXT_ALIGN#"), QStringLiteral(
"left"));
237 m_previewDisplay->scrollToAnchor( CDisplayRendering::keyToHTMLAnchor(key) );
243 auto const lang =
module->language();
254 QList<int> mainSplitterSizes =
btConfig().
value< QList<int> >(MainSplitterSizesKey, QList<int>());
255 if (mainSplitterSizes.count() > 0)
259 int w = this->size().width();
261 mainSplitterSizes << w2 << w - w2;
265 QList<int> resultSplitterSizes =
btConfig().
value< QList<int> >(ResultSplitterSizesKey, QList<int>());
266 if (resultSplitterSizes.count() > 0)
BtConfig & btConfig()
This is a shortchand for BtConfig::getInstance().
QList< CSwordModuleInfo const * > BtConstModuleList
T value(QString const &key, T const &defaultValue=T()) const
Returns the settings value for the given global key.
void setValue(QString const &key, T const &value)
Sets a value for a key.
A QTextBrowser subclass which adds the ability to start drags for references.
CSwordKey implementation for Sword's VerseKey.
bool next(const JumpType type=JumpType::UseVerse)
bool previous(const JumpType type=JumpType::UseVerse)
bool setKey(const QString &key) final override
Rendering for the html display widget.
QString renderSingleKey(const QString &key, const BtConstModuleList &modules, const KeyTreeItem::Settings &settings=KeyTreeItem::Settings())
QString renderKeyRange(CSwordVerseKey const &lowerBound, CSwordVerseKey const &upperBound, const BtConstModuleList &modules, const QString &hightlightKey=QString(), const KeyTreeItem::Settings &settings=KeyTreeItem::Settings())
void loadDialogSettings()
CSearchResultView * m_resultListBox
BtSearchResultArea(QWidget *parent=nullptr)
CModuleResultView * m_moduleListBox
void updatePreview(const QString &key)
void setBrowserFont(const CSwordModuleInfo *const module)
QSplitter * m_resultListSplitter
QAction * m_selectAllAction
QSplitter * m_mainSplitter
void saveDialogSettings() const
void setSearchResult(QString searchedText, CSwordModuleSearch::Results results)
CSwordModuleSearch::Results m_results
BtTextBrowser * m_previewDisplay
QSize sizeHint() const override
void strongsSelected(CSwordModuleInfo *, const QStringList &)
void setupTree(const CSwordModuleSearch::Results &results, const QString &searchedText)
void moduleSelected(CSwordModuleInfo const *, CSwordModuleSearch::ModuleResultList const &)
void setupStrongsTree(CSwordModuleInfo *, const QStringList &)
void keySelected(const QString &)
void setupTree(CSwordModuleInfo const *m, CSwordModuleSearch::ModuleResultList const &results)
QString highlightSearchedText(QString const &content, QString const &searchedText, bool plainSearchedText)
std::vector< ModuleSearchResult > Results
QString replaceColors(QString content)
auto const ResultSplitterSizesKey
auto const MainSplitterSizesKey
KeyRenderingFace keyRenderingFace