unitedentrymgr.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "unitedentrymgr.h"
  2. #include "findunitedentry.h"
  3. #include "helpunitedentry.h"
  4. #include "unitedentryalias.h"
  5. #include <core/configmgr.h>
  6. #include <core/coreconfig.h>
  7. #include <core/vnotex.h>
  8. #include <widgets/searchinfoprovider.h>
  9. using namespace vnotex;
  10. UnitedEntryMgr::UnitedEntryMgr(QObject *p_parent)
  11. : QObject(p_parent)
  12. {
  13. }
  14. void UnitedEntryMgr::init()
  15. {
  16. if (m_initialized) {
  17. return;
  18. }
  19. m_initialized = true;
  20. // Built-in entries.
  21. const auto mainWindow = VNoteX::getInst().getMainWindow();
  22. addEntry(QSharedPointer<FindUnitedEntry>::create(SearchInfoProvider::create(mainWindow), this));
  23. addEntry(QSharedPointer<HelpUnitedEntry>::create(this));
  24. // Alias from config.
  25. const auto &config = ConfigMgr::getInst().getCoreConfig();
  26. const auto &aliasArr = config.getUnitedEntryAlias();
  27. for (int i = 0; i < aliasArr.size(); ++i) {
  28. auto entry = QSharedPointer<UnitedEntryAlias>::create(aliasArr[i].toObject(), this);
  29. addEntry(entry);
  30. }
  31. }
  32. void UnitedEntryMgr::addEntry(const QSharedPointer<IUnitedEntry> &p_entry)
  33. {
  34. Q_ASSERT(!m_entries.contains(p_entry->name()));
  35. m_entries.insert(p_entry->name(), p_entry);
  36. connect(p_entry.data(), &IUnitedEntry::finished,
  37. this, [this]() {
  38. emit entryFinished(reinterpret_cast<IUnitedEntry *>(sender()));
  39. });
  40. }
  41. QList<QSharedPointer<IUnitedEntry>> UnitedEntryMgr::getEntries() const
  42. {
  43. return m_entries.values();
  44. }
  45. QSharedPointer<IUnitedEntry> UnitedEntryMgr::findEntry(const QString &p_name) const
  46. {
  47. auto it = m_entries.find(p_name);
  48. if (it == m_entries.end()) {
  49. return nullptr;
  50. }
  51. return it.value();
  52. }
  53. bool UnitedEntryMgr::isInitialized() const
  54. {
  55. return m_initialized;
  56. }
  57. bool UnitedEntryMgr::getExpandAllEnabled() const
  58. {
  59. return m_expandAllEnabled;
  60. }
  61. void UnitedEntryMgr::setExpandAllEnabled(bool p_enabled)
  62. {
  63. m_expandAllEnabled = p_enabled;
  64. }