VMetaWordManager: lazy initialization

This commit is contained in:
Le Tan 2018-05-23 20:08:58 +08:00
parent b076e87509
commit 3c8ac8094d
8 changed files with 24 additions and 10 deletions

View File

@ -290,6 +290,7 @@ QPushButton[ToolBoxActiveBtn="true"] {
padding: 4px 10px 4px 4px; padding: 4px 10px 4px 4px;
margin: 0px; margin: 0px;
border: none; border: none;
font-weight: bold;
color: @pushbutton_toolboxbtn_active_fg; color: @pushbutton_toolboxbtn_active_fg;
background-color: @pushbutton_toolboxbtn_active_bg; background-color: @pushbutton_toolboxbtn_active_bg;
min-width: -1; min-width: -1;

View File

@ -290,6 +290,7 @@ QPushButton[ToolBoxActiveBtn="true"] {
padding: 4px 10px 4px 4px; padding: 4px 10px 4px 4px;
margin: 0px; margin: 0px;
border: none; border: none;
font-weight: bold;
color: @pushbutton_toolboxbtn_active_fg; color: @pushbutton_toolboxbtn_active_fg;
background-color: @pushbutton_toolboxbtn_active_bg; background-color: @pushbutton_toolboxbtn_active_bg;
min-width: -1; min-width: -1;

View File

@ -48,12 +48,19 @@ static QString allMetaWordsInfo(const VMetaWord *p_metaWord)
const QChar VMetaWordManager::c_delimiter = '%'; const QChar VMetaWordManager::c_delimiter = '%';
VMetaWordManager::VMetaWordManager(QObject *p_parent) VMetaWordManager::VMetaWordManager(QObject *p_parent)
: QObject(p_parent) : QObject(p_parent),
m_initialized(false)
{ {
} }
void VMetaWordManager::init() void VMetaWordManager::init()
{ {
if (m_initialized) {
return;
}
m_initialized = true;
using namespace std::placeholders; using namespace std::placeholders;
// %d%. // %d%.
@ -300,6 +307,8 @@ QString VMetaWordManager::evaluate(const QString &p_text,
return p_text; return p_text;
} }
const_cast<VMetaWordManager *>(this)->init();
// Update datetime for later parse. // Update datetime for later parse.
const_cast<VMetaWordManager *>(this)->m_dateTime = QDateTime::currentDateTime(); const_cast<VMetaWordManager *>(this)->m_dateTime = QDateTime::currentDateTime();
@ -330,11 +339,15 @@ QString VMetaWordManager::evaluate(const QString &p_text,
bool VMetaWordManager::contains(const QString &p_word) const bool VMetaWordManager::contains(const QString &p_word) const
{ {
const_cast<VMetaWordManager *>(this)->init();
return m_metaWords.contains(p_word); return m_metaWords.contains(p_word);
} }
const VMetaWord *VMetaWordManager::findMetaWord(const QString &p_word) const const VMetaWord *VMetaWordManager::findMetaWord(const QString &p_word) const
{ {
const_cast<VMetaWordManager *>(this)->init();
auto it = m_metaWords.find(p_word); auto it = m_metaWords.find(p_word);
if (it != m_metaWords.end()) { if (it != m_metaWords.end()) {
return &it.value(); return &it.value();
@ -368,6 +381,8 @@ void VMetaWordManager::addMetaWord(MetaWordType p_type,
bool VMetaWordManager::findOverriddenValue(const QString &p_word, bool VMetaWordManager::findOverriddenValue(const QString &p_word,
QString &p_value) const QString &p_value) const
{ {
const_cast<VMetaWordManager *>(this)->init();
auto it = m_overriddenWords.find(p_word); auto it = m_overriddenWords.find(p_word);
if (it != m_overriddenWords.end()) { if (it != m_overriddenWords.end()) {
p_value = it.value(); p_value = it.value();

View File

@ -161,8 +161,6 @@ class VMetaWordManager : public QObject
public: public:
explicit VMetaWordManager(QObject *p_parent = nullptr); explicit VMetaWordManager(QObject *p_parent = nullptr);
void init();
// Expand meta words in @p_text and return the expanded text. // Expand meta words in @p_text and return the expanded text.
// @p_overriddenWords: a table containing overridden meta words. // @p_overriddenWords: a table containing overridden meta words.
QString evaluate(const QString &p_text, QString evaluate(const QString &p_text,
@ -184,6 +182,8 @@ public:
static const QChar c_delimiter; static const QChar c_delimiter;
private: private:
void init();
void addMetaWord(MetaWordType p_type, void addMetaWord(MetaWordType p_type,
const QString &p_word, const QString &p_word,
const QString &p_definition, const QString &p_definition,
@ -191,6 +191,8 @@ private:
void initCustomMetaWords(); void initCustomMetaWords();
bool m_initialized;
// Map using word as key. // Map using word as key.
QHash<QString, VMetaWord> m_metaWords; QHash<QString, VMetaWord> m_metaWords;
@ -210,6 +212,8 @@ inline const QDateTime &VMetaWordManager::getDateTime() const
inline const QHash<QString, VMetaWord> &VMetaWordManager::getAllMetaWords() const inline const QHash<QString, VMetaWord> &VMetaWordManager::getAllMetaWords() const
{ {
const_cast<VMetaWordManager *>(this)->init();
return m_metaWords; return m_metaWords;
} }

View File

@ -1036,8 +1036,6 @@ bool VUtils::splitPathInBasePath(const QString &p_base,
} }
p_parts = b.right(b.size() - a.size() - 1).split("/", QString::SkipEmptyParts); p_parts = b.right(b.size() - a.size() - 1).split("/", QString::SkipEmptyParts);
qDebug() << QString("split path %1 based on %2 to %3 parts").arg(p_path).arg(p_base).arg(p_parts.size());
return true; return true;
} }

View File

@ -605,7 +605,6 @@ void VDirectory::setExpanded(bool p_expanded)
VNoteFile *VDirectory::tryLoadFile(QStringList &p_filePath) VNoteFile *VDirectory::tryLoadFile(QStringList &p_filePath)
{ {
qDebug() << "directory" << m_name << "tryLoadFile()" << p_filePath.join("/");
if (p_filePath.isEmpty()) { if (p_filePath.isEmpty()) {
return NULL; return NULL;
} }
@ -644,7 +643,6 @@ VNoteFile *VDirectory::tryLoadFile(QStringList &p_filePath)
VDirectory *VDirectory::tryLoadDirectory(QStringList &p_filePath) VDirectory *VDirectory::tryLoadDirectory(QStringList &p_filePath)
{ {
qDebug() << "directory" << m_name << "tryLoadDirectory()" << p_filePath.join("/");
if (p_filePath.isEmpty()) { if (p_filePath.isEmpty()) {
return NULL; return NULL;
} }

View File

@ -33,7 +33,6 @@ VEditArea::VEditArea(QWidget *parent)
registerCaptainTargets(); registerCaptainTargets();
QString keySeq = g_config->getShortcutKeySequence("ActivateNextTab"); QString keySeq = g_config->getShortcutKeySequence("ActivateNextTab");
qDebug() << "set ActivateNextTab shortcut to" << keySeq; qDebug() << "set ActivateNextTab shortcut to" << keySeq;
QShortcut *activateNextTab = new QShortcut(QKeySequence(keySeq), this); QShortcut *activateNextTab = new QShortcut(QKeySequence(keySeq), this);

View File

@ -71,8 +71,6 @@ VNote::VNote(QObject *parent)
g_config->getNotebooks(m_notebooks, this); g_config->getNotebooks(m_notebooks, this);
m_metaWordMgr.init();
g_mwMgr = &m_metaWordMgr; g_mwMgr = &m_metaWordMgr;
} }