From 7a9c435712e7ed6c5030fec550ccc59c53869b26 Mon Sep 17 00:00:00 2001 From: "\"Jean-Francois Dockes ext:(%22)" Date: Tue, 25 Sep 2012 16:02:41 +0200 Subject: [PATCH] Detect doc source snippets capability --- src/qtgui/reslist.cpp | 5 +++-- src/query/docseq.h | 17 ++++++++++++++++- src/query/docseqdb.h | 5 +++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/qtgui/reslist.cpp b/src/qtgui/reslist.cpp index dd341eeb..e9332c07 100644 --- a/src/qtgui/reslist.cpp +++ b/src/qtgui/reslist.cpp @@ -893,8 +893,9 @@ void ResList::createPopupMenu(const QPoint& pos) this, SLOT(menuPreviewParent())); popup->addAction(tr("&Open Parent document/folder"), this, SLOT(menuOpenParent())); - popup->addAction(tr("Open &Snippets window"), - this, SLOT(menuOpenSnippets())); + if (m_source->snippetsCapable()) + popup->addAction(tr("Open &Snippets window"), + this, SLOT(menuOpenSnippets())); popup->popup(mapToGlobal(pos)); } diff --git a/src/query/docseq.h b/src/query/docseq.h index 4d3ba12c..3eaf57b4 100644 --- a/src/query/docseq.h +++ b/src/query/docseq.h @@ -113,8 +113,16 @@ class DocSequence { virtual int getResCnt() = 0; /** Get title for result list */ - virtual std::string title() {return m_title;} + virtual std::string title() + { + return m_title; + } + /** Can do snippets ? */ + virtual bool snippetsCapable() + { + return false; + } /** Get description for underlying query */ virtual std::string getDescription() = 0; @@ -171,6 +179,13 @@ public: return false; return m_seq->getAbstract(doc, abs); } + + virtual bool snippetsCapable() + { + if (m_seq.isNull()) + return false; + return m_seq->snippetsCapable(); + } virtual std::string getDescription() { if (m_seq.isNull()) diff --git a/src/query/docseqdb.h b/src/query/docseqdb.h index 7bdef8f5..eda520de 100644 --- a/src/query/docseqdb.h +++ b/src/query/docseqdb.h @@ -50,6 +50,11 @@ class DocSequenceDb : public DocSequence { m_queryBuildAbstract = qba; m_queryReplaceAbstract = qra; } + + virtual bool snippetsCapable() + { + return true; + } virtual string title(); private: