mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
VMetaWordManager: lazy initialization
This commit is contained in:
parent
b076e87509
commit
3c8ac8094d
@ -290,6 +290,7 @@ QPushButton[ToolBoxActiveBtn="true"] {
|
||||
padding: 4px 10px 4px 4px;
|
||||
margin: 0px;
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
color: @pushbutton_toolboxbtn_active_fg;
|
||||
background-color: @pushbutton_toolboxbtn_active_bg;
|
||||
min-width: -1;
|
||||
|
@ -290,6 +290,7 @@ QPushButton[ToolBoxActiveBtn="true"] {
|
||||
padding: 4px 10px 4px 4px;
|
||||
margin: 0px;
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
color: @pushbutton_toolboxbtn_active_fg;
|
||||
background-color: @pushbutton_toolboxbtn_active_bg;
|
||||
min-width: -1;
|
||||
|
@ -48,12 +48,19 @@ static QString allMetaWordsInfo(const VMetaWord *p_metaWord)
|
||||
const QChar VMetaWordManager::c_delimiter = '%';
|
||||
|
||||
VMetaWordManager::VMetaWordManager(QObject *p_parent)
|
||||
: QObject(p_parent)
|
||||
: QObject(p_parent),
|
||||
m_initialized(false)
|
||||
{
|
||||
}
|
||||
|
||||
void VMetaWordManager::init()
|
||||
{
|
||||
if (m_initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_initialized = true;
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
// %d%.
|
||||
@ -300,6 +307,8 @@ QString VMetaWordManager::evaluate(const QString &p_text,
|
||||
return p_text;
|
||||
}
|
||||
|
||||
const_cast<VMetaWordManager *>(this)->init();
|
||||
|
||||
// Update datetime for later parse.
|
||||
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
|
||||
{
|
||||
const_cast<VMetaWordManager *>(this)->init();
|
||||
|
||||
return m_metaWords.contains(p_word);
|
||||
}
|
||||
|
||||
const VMetaWord *VMetaWordManager::findMetaWord(const QString &p_word) const
|
||||
{
|
||||
const_cast<VMetaWordManager *>(this)->init();
|
||||
|
||||
auto it = m_metaWords.find(p_word);
|
||||
if (it != m_metaWords.end()) {
|
||||
return &it.value();
|
||||
@ -368,6 +381,8 @@ void VMetaWordManager::addMetaWord(MetaWordType p_type,
|
||||
bool VMetaWordManager::findOverriddenValue(const QString &p_word,
|
||||
QString &p_value) const
|
||||
{
|
||||
const_cast<VMetaWordManager *>(this)->init();
|
||||
|
||||
auto it = m_overriddenWords.find(p_word);
|
||||
if (it != m_overriddenWords.end()) {
|
||||
p_value = it.value();
|
||||
|
@ -161,8 +161,6 @@ class VMetaWordManager : public QObject
|
||||
public:
|
||||
explicit VMetaWordManager(QObject *p_parent = nullptr);
|
||||
|
||||
void init();
|
||||
|
||||
// Expand meta words in @p_text and return the expanded text.
|
||||
// @p_overriddenWords: a table containing overridden meta words.
|
||||
QString evaluate(const QString &p_text,
|
||||
@ -184,6 +182,8 @@ public:
|
||||
static const QChar c_delimiter;
|
||||
|
||||
private:
|
||||
void init();
|
||||
|
||||
void addMetaWord(MetaWordType p_type,
|
||||
const QString &p_word,
|
||||
const QString &p_definition,
|
||||
@ -191,6 +191,8 @@ private:
|
||||
|
||||
void initCustomMetaWords();
|
||||
|
||||
bool m_initialized;
|
||||
|
||||
// Map using word as key.
|
||||
QHash<QString, VMetaWord> m_metaWords;
|
||||
|
||||
@ -210,6 +212,8 @@ inline const QDateTime &VMetaWordManager::getDateTime() const
|
||||
|
||||
inline const QHash<QString, VMetaWord> &VMetaWordManager::getAllMetaWords() const
|
||||
{
|
||||
const_cast<VMetaWordManager *>(this)->init();
|
||||
|
||||
return m_metaWords;
|
||||
}
|
||||
|
||||
|
@ -1036,8 +1036,6 @@ bool VUtils::splitPathInBasePath(const QString &p_base,
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -605,7 +605,6 @@ void VDirectory::setExpanded(bool p_expanded)
|
||||
|
||||
VNoteFile *VDirectory::tryLoadFile(QStringList &p_filePath)
|
||||
{
|
||||
qDebug() << "directory" << m_name << "tryLoadFile()" << p_filePath.join("/");
|
||||
if (p_filePath.isEmpty()) {
|
||||
return NULL;
|
||||
}
|
||||
@ -644,7 +643,6 @@ VNoteFile *VDirectory::tryLoadFile(QStringList &p_filePath)
|
||||
|
||||
VDirectory *VDirectory::tryLoadDirectory(QStringList &p_filePath)
|
||||
{
|
||||
qDebug() << "directory" << m_name << "tryLoadDirectory()" << p_filePath.join("/");
|
||||
if (p_filePath.isEmpty()) {
|
||||
return NULL;
|
||||
}
|
||||
|
@ -33,7 +33,6 @@ VEditArea::VEditArea(QWidget *parent)
|
||||
|
||||
registerCaptainTargets();
|
||||
|
||||
|
||||
QString keySeq = g_config->getShortcutKeySequence("ActivateNextTab");
|
||||
qDebug() << "set ActivateNextTab shortcut to" << keySeq;
|
||||
QShortcut *activateNextTab = new QShortcut(QKeySequence(keySeq), this);
|
||||
|
@ -71,8 +71,6 @@ VNote::VNote(QObject *parent)
|
||||
|
||||
g_config->getNotebooks(m_notebooks, this);
|
||||
|
||||
m_metaWordMgr.init();
|
||||
|
||||
g_mwMgr = &m_metaWordMgr;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user