mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-01 20:36:40 +00:00
IdCompletionManager uses Display type instread of ColumnId for creating completers
This commit is contained in:
parent
4e759370de
commit
b25cc6bc55
4 changed files with 70 additions and 118 deletions
|
@ -11,102 +11,77 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
std::map<CSMWorld::Columns::ColumnId, CSMWorld::UniversalId::Type> generateModelTypes()
|
std::map<CSMWorld::ColumnBase::Display, CSMWorld::UniversalId::Type> generateModelTypes()
|
||||||
{
|
{
|
||||||
std::map<CSMWorld::Columns::ColumnId, CSMWorld::UniversalId::Type> types;
|
std::map<CSMWorld::ColumnBase::Display, CSMWorld::UniversalId::Type> types;
|
||||||
|
|
||||||
types[CSMWorld::Columns::ColumnId_Actor] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_BodyPart ] = CSMWorld::UniversalId::Type_BodyPart;
|
||||||
types[CSMWorld::Columns::ColumnId_AreaObject] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Cell ] = CSMWorld::UniversalId::Type_Cell;
|
||||||
types[CSMWorld::Columns::ColumnId_AreaSound] = CSMWorld::UniversalId::Type_Sound;
|
types[CSMWorld::ColumnBase::Display_Class ] = CSMWorld::UniversalId::Type_Class;
|
||||||
types[CSMWorld::Columns::ColumnId_BoltObject] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_CreatureLevelledList] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_BoltSound] = CSMWorld::UniversalId::Type_Sound;
|
types[CSMWorld::ColumnBase::Display_Creature ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_CastingObject] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Enchantment ] = CSMWorld::UniversalId::Type_Enchantment;
|
||||||
types[CSMWorld::Columns::ColumnId_CastingSound] = CSMWorld::UniversalId::Type_Sound;
|
types[CSMWorld::ColumnBase::Display_Faction ] = CSMWorld::UniversalId::Type_Faction;
|
||||||
types[CSMWorld::Columns::ColumnId_Cell] = CSMWorld::UniversalId::Type_Cell;
|
types[CSMWorld::ColumnBase::Display_GlobalVariable ] = CSMWorld::UniversalId::Type_Global;
|
||||||
types[CSMWorld::Columns::ColumnId_Class] = CSMWorld::UniversalId::Type_Class;
|
types[CSMWorld::ColumnBase::Display_Icon ] = CSMWorld::UniversalId::Type_Icon;
|
||||||
types[CSMWorld::Columns::ColumnId_CloseSound] = CSMWorld::UniversalId::Type_Sound;
|
types[CSMWorld::ColumnBase::Display_Mesh ] = CSMWorld::UniversalId::Type_Mesh;
|
||||||
types[CSMWorld::Columns::ColumnId_Creature] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Miscellaneous ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_DestinationCell] = CSMWorld::UniversalId::Type_Cell;
|
types[CSMWorld::ColumnBase::Display_Npc ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_Enchantment] = CSMWorld::UniversalId::Type_Enchantment;
|
types[CSMWorld::ColumnBase::Display_Race ] = CSMWorld::UniversalId::Type_Race;
|
||||||
types[CSMWorld::Columns::ColumnId_Faction] = CSMWorld::UniversalId::Type_Faction;
|
types[CSMWorld::ColumnBase::Display_Region ] = CSMWorld::UniversalId::Type_Region;
|
||||||
types[CSMWorld::Columns::Columnid_Hair] = CSMWorld::UniversalId::Type_BodyPart;
|
types[CSMWorld::ColumnBase::Display_Referenceable ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_Head] = CSMWorld::UniversalId::Type_BodyPart;
|
types[CSMWorld::ColumnBase::Display_Script ] = CSMWorld::UniversalId::Type_Script;
|
||||||
types[CSMWorld::Columns::ColumnId_HitObject] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Skill ] = CSMWorld::UniversalId::Type_Skill;
|
||||||
types[CSMWorld::Columns::ColumnId_HitSound] = CSMWorld::UniversalId::Type_Sound;
|
types[CSMWorld::ColumnBase::Display_Sound ] = CSMWorld::UniversalId::Type_Sound;
|
||||||
types[CSMWorld::Columns::ColumnId_Icon] = CSMWorld::UniversalId::Type_Icon;
|
types[CSMWorld::ColumnBase::Display_SoundRes ] = CSMWorld::UniversalId::Type_SoundRes;
|
||||||
types[CSMWorld::Columns::ColumnId_InventoryItemId] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Spell ] = CSMWorld::UniversalId::Type_Spell;
|
||||||
types[CSMWorld::Columns::ColumnId_Key] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Static ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_LevelledItemId] = CSMWorld::UniversalId::Type_Referenceable;
|
types[CSMWorld::ColumnBase::Display_Texture ] = CSMWorld::UniversalId::Type_Texture;
|
||||||
types[CSMWorld::Columns::ColumnId_MajorSkill1] = CSMWorld::UniversalId::Type_Skill;
|
types[CSMWorld::ColumnBase::Display_Weapon ] = CSMWorld::UniversalId::Type_Referenceable;
|
||||||
types[CSMWorld::Columns::ColumnId_MajorSkill2] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MajorSkill3] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MajorSkill4] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MajorSkill5] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MinorSkill1] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MinorSkill2] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MinorSkill3] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MinorSkill4] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_MinorSkill5] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Model] = CSMWorld::UniversalId::Type_Mesh;
|
|
||||||
types[CSMWorld::Columns::ColumnId_OpenSound] = CSMWorld::UniversalId::Type_Sound;
|
|
||||||
types[CSMWorld::Columns::ColumnId_OriginalCreature] = CSMWorld::UniversalId::Type_Referenceable;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Owner] = CSMWorld::UniversalId::Type_Referenceable;
|
|
||||||
types[CSMWorld::Columns::ColumnId_OwnerGlobal] = CSMWorld::UniversalId::Type_Global;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Particle] = CSMWorld::UniversalId::Type_Texture;
|
|
||||||
types[CSMWorld::Columns::ColumnId_PartRefMale] = CSMWorld::UniversalId::Type_BodyPart;
|
|
||||||
types[CSMWorld::Columns::ColumnId_PartRefFemale] = CSMWorld::UniversalId::Type_BodyPart;
|
|
||||||
types[CSMWorld::Columns::ColumnId_PcFaction] = CSMWorld::UniversalId::Type_Faction;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Race] = CSMWorld::UniversalId::Type_Race;
|
|
||||||
types[CSMWorld::Columns::ColumnId_ReferenceableId] = CSMWorld::UniversalId::Type_Referenceable;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Region] = CSMWorld::UniversalId::Type_Region;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill1] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill2] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill3] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill4] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill5] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill6] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Skill7] = CSMWorld::UniversalId::Type_Skill;
|
|
||||||
types[CSMWorld::Columns::ColumnId_SleepEncounter] = CSMWorld::UniversalId::Type_Referenceable;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Soul] = CSMWorld::UniversalId::Type_Referenceable;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Sound] = CSMWorld::UniversalId::Type_Sound;
|
|
||||||
types[CSMWorld::Columns::ColumnId_SoundFile] = CSMWorld::UniversalId::Type_SoundRes;
|
|
||||||
types[CSMWorld::Columns::ColumnId_SoundName] = CSMWorld::UniversalId::Type_Sound;
|
|
||||||
types[CSMWorld::Columns::ColumnId_SpellId] = CSMWorld::UniversalId::Type_Spell;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Script] = CSMWorld::UniversalId::Type_Script;
|
|
||||||
types[CSMWorld::Columns::ColumnId_TeleportCell] = CSMWorld::UniversalId::Type_Cell;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Texture] = CSMWorld::UniversalId::Type_Texture;
|
|
||||||
types[CSMWorld::Columns::ColumnId_Trap] = CSMWorld::UniversalId::Type_Spell;
|
|
||||||
|
|
||||||
return types;
|
return types;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef std::map<CSMWorld::ColumnBase::Display,
|
||||||
|
CSMWorld::UniversalId::Type>::const_iterator ModelTypeConstIterator;
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::map<CSMWorld::Columns::ColumnId, CSMWorld::UniversalId::Type>
|
const std::map<CSMWorld::ColumnBase::Display, CSMWorld::UniversalId::Type>
|
||||||
CSMWorld::IdCompletionManager::sCompleterModelTypes = generateModelTypes();
|
CSMWorld::IdCompletionManager::sCompleterModelTypes = generateModelTypes();
|
||||||
|
|
||||||
|
std::vector<CSMWorld::ColumnBase::Display> CSMWorld::IdCompletionManager::getDisplayTypes()
|
||||||
|
{
|
||||||
|
std::vector<CSMWorld::ColumnBase::Display> types;
|
||||||
|
ModelTypeConstIterator current = sCompleterModelTypes.begin();
|
||||||
|
ModelTypeConstIterator end = sCompleterModelTypes.end();
|
||||||
|
for (; current != end; ++current)
|
||||||
|
{
|
||||||
|
types.push_back(current->first);
|
||||||
|
}
|
||||||
|
return types;
|
||||||
|
}
|
||||||
|
|
||||||
CSMWorld::IdCompletionManager::IdCompletionManager(CSMWorld::Data &data)
|
CSMWorld::IdCompletionManager::IdCompletionManager(CSMWorld::Data &data)
|
||||||
{
|
{
|
||||||
generateCompleters(data);
|
generateCompleters(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CSMWorld::IdCompletionManager::hasCompleterFor(CSMWorld::Columns::ColumnId id) const
|
bool CSMWorld::IdCompletionManager::hasCompleterFor(CSMWorld::ColumnBase::Display display) const
|
||||||
{
|
{
|
||||||
return mCompleters.find(id) != mCompleters.end();
|
return mCompleters.find(display) != mCompleters.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<QCompleter> CSMWorld::IdCompletionManager::getCompleter(CSMWorld::Columns::ColumnId id)
|
boost::shared_ptr<QCompleter> CSMWorld::IdCompletionManager::getCompleter(CSMWorld::ColumnBase::Display display)
|
||||||
{
|
{
|
||||||
if (!hasCompleterFor(id))
|
if (!hasCompleterFor(display))
|
||||||
{
|
{
|
||||||
throw std::logic_error("This column doesn't have an ID completer");
|
throw std::logic_error("This column doesn't have an ID completer");
|
||||||
}
|
}
|
||||||
return mCompleters[id];
|
return mCompleters[display];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSMWorld::IdCompletionManager::generateCompleters(CSMWorld::Data &data)
|
void CSMWorld::IdCompletionManager::generateCompleters(CSMWorld::Data &data)
|
||||||
{
|
{
|
||||||
typedef std::map<CSMWorld::Columns::ColumnId, CSMWorld::UniversalId::Type>::const_iterator ModelTypeConstIterator;
|
|
||||||
|
|
||||||
ModelTypeConstIterator current = sCompleterModelTypes.begin();
|
ModelTypeConstIterator current = sCompleterModelTypes.begin();
|
||||||
ModelTypeConstIterator end = sCompleterModelTypes.end();
|
ModelTypeConstIterator end = sCompleterModelTypes.end();
|
||||||
for (; current != end; ++current)
|
for (; current != end; ++current)
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
#ifndef CSM_WORLD_IDCOMPLETIONMANAGER_HPP
|
#ifndef CSM_WORLD_IDCOMPLETIONMANAGER_HPP
|
||||||
#define CSM_WORLD_IDCOMPLETIONMANAGER_HPP
|
#define CSM_WORLD_IDCOMPLETIONMANAGER_HPP
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
#include "columns.hpp"
|
#include "columnbase.hpp"
|
||||||
#include "universalid.hpp"
|
#include "universalid.hpp"
|
||||||
|
|
||||||
class QCompleter;
|
class QCompleter;
|
||||||
|
@ -17,21 +18,23 @@ namespace CSMWorld
|
||||||
/// \brief Creates and stores all ID completers
|
/// \brief Creates and stores all ID completers
|
||||||
class IdCompletionManager
|
class IdCompletionManager
|
||||||
{
|
{
|
||||||
static const std::map<CSMWorld::Columns::ColumnId, CSMWorld::UniversalId::Type> sCompleterModelTypes;
|
static const std::map<ColumnBase::Display, UniversalId::Type> sCompleterModelTypes;
|
||||||
|
|
||||||
std::map<CSMWorld::Columns::ColumnId, boost::shared_ptr<QCompleter> > mCompleters;
|
std::map<ColumnBase::Display, boost::shared_ptr<QCompleter> > mCompleters;
|
||||||
|
|
||||||
// Don't allow copying
|
// Don't allow copying
|
||||||
IdCompletionManager(const IdCompletionManager &);
|
IdCompletionManager(const IdCompletionManager &);
|
||||||
IdCompletionManager &operator = (const IdCompletionManager &);
|
IdCompletionManager &operator = (const IdCompletionManager &);
|
||||||
|
|
||||||
void generateCompleters(CSMWorld::Data &data);
|
void generateCompleters(Data &data);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IdCompletionManager(CSMWorld::Data &data);
|
static std::vector<ColumnBase::Display> getDisplayTypes();
|
||||||
|
|
||||||
bool hasCompleterFor(CSMWorld::Columns::ColumnId id) const;
|
IdCompletionManager(Data &data);
|
||||||
boost::shared_ptr<QCompleter> getCompleter(CSMWorld::Columns::ColumnId id);
|
|
||||||
|
bool hasCompleterFor(ColumnBase::Display display) const;
|
||||||
|
boost::shared_ptr<QCompleter> getCompleter(ColumnBase::Display display);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
#include "viewmanager.hpp"
|
#include "viewmanager.hpp"
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
@ -10,6 +11,7 @@
|
||||||
#include "../../model/doc/document.hpp"
|
#include "../../model/doc/document.hpp"
|
||||||
#include "../../model/world/columns.hpp"
|
#include "../../model/world/columns.hpp"
|
||||||
#include "../../model/world/universalid.hpp"
|
#include "../../model/world/universalid.hpp"
|
||||||
|
#include "../../model/world/idcompletionmanager.hpp"
|
||||||
|
|
||||||
#include "../world/util.hpp"
|
#include "../world/util.hpp"
|
||||||
#include "../world/enumdelegate.hpp"
|
#include "../world/enumdelegate.hpp"
|
||||||
|
@ -61,38 +63,12 @@ CSVDoc::ViewManager::ViewManager (CSMDoc::DocumentManager& documentManager)
|
||||||
mDelegateFactories->add (CSMWorld::ColumnBase::Display_RefRecordType,
|
mDelegateFactories->add (CSMWorld::ColumnBase::Display_RefRecordType,
|
||||||
new CSVWorld::IdTypeDelegateFactory());
|
new CSVWorld::IdTypeDelegateFactory());
|
||||||
|
|
||||||
// Columns with QLineEdit editor
|
std::vector<CSMWorld::ColumnBase::Display> idCompletionColumns = CSMWorld::IdCompletionManager::getDisplayTypes();
|
||||||
static const CSMWorld::ColumnBase::Display sIdCompletionColumns[] =
|
for (std::vector<CSMWorld::ColumnBase::Display>::const_iterator current = idCompletionColumns.begin();
|
||||||
|
current != idCompletionColumns.end();
|
||||||
|
++current)
|
||||||
{
|
{
|
||||||
CSMWorld::ColumnBase::Display_Cell,
|
mDelegateFactories->add(*current, new CSVWorld::IdCompletionDelegateFactory());
|
||||||
CSMWorld::ColumnBase::Display_Class,
|
|
||||||
CSMWorld::ColumnBase::Display_Creature,
|
|
||||||
CSMWorld::ColumnBase::Display_Faction,
|
|
||||||
CSMWorld::ColumnBase::Display_String,
|
|
||||||
CSMWorld::ColumnBase::Display_GlobalVariable,
|
|
||||||
CSMWorld::ColumnBase::Display_Icon,
|
|
||||||
CSMWorld::ColumnBase::Display_Mesh,
|
|
||||||
CSMWorld::ColumnBase::Display_Miscellaneous,
|
|
||||||
CSMWorld::ColumnBase::Display_Music,
|
|
||||||
CSMWorld::ColumnBase::Display_None, // Inplace editing (Table SubView) creates QLineEdit using Display_None
|
|
||||||
CSMWorld::ColumnBase::Display_Npc,
|
|
||||||
CSMWorld::ColumnBase::Display_Race,
|
|
||||||
CSMWorld::ColumnBase::Display_Referenceable,
|
|
||||||
CSMWorld::ColumnBase::Display_Region,
|
|
||||||
CSMWorld::ColumnBase::Display_Script,
|
|
||||||
CSMWorld::ColumnBase::Display_Skill,
|
|
||||||
CSMWorld::ColumnBase::Display_Sound,
|
|
||||||
CSMWorld::ColumnBase::Display_SoundRes,
|
|
||||||
CSMWorld::ColumnBase::Display_Static,
|
|
||||||
CSMWorld::ColumnBase::Display_String,
|
|
||||||
CSMWorld::ColumnBase::Display_Texture,
|
|
||||||
CSMWorld::ColumnBase::Display_Video,
|
|
||||||
CSMWorld::ColumnBase::Display_Weapon
|
|
||||||
};
|
|
||||||
|
|
||||||
for (std::size_t i = 0; i < sizeof(sIdCompletionColumns) / sizeof(CSMWorld::ColumnBase::Display); ++i)
|
|
||||||
{
|
|
||||||
mDelegateFactories->add(sIdCompletionColumns[i], new CSVWorld::IdCompletionDelegateFactory());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Mapping
|
struct Mapping
|
||||||
|
|
|
@ -12,7 +12,7 @@ QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
||||||
const QStyleOptionViewItem &option,
|
const QStyleOptionViewItem &option,
|
||||||
const QModelIndex &index) const
|
const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
return createEditor(parent, option, index, CSMWorld::ColumnBase::Display_None);
|
return createEditor(parent, option, index, getDisplayTypeFromIndex(index));
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
||||||
|
@ -20,16 +20,14 @@ QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
||||||
const QModelIndex &index,
|
const QModelIndex &index,
|
||||||
CSMWorld::ColumnBase::Display display) const
|
CSMWorld::ColumnBase::Display display) const
|
||||||
{
|
{
|
||||||
int columnIdData = index.data(CSMWorld::ColumnBase::Role_ColumnId).toInt();
|
if (!index.data(Qt::EditRole).isValid() && !index.data(Qt::DisplayRole).isValid())
|
||||||
CSMWorld::Columns::ColumnId columnId = static_cast<CSMWorld::Columns::ColumnId>(columnIdData);
|
|
||||||
CSMWorld::IdCompletionManager &completionManager = getDocument().getIdCompletionManager();
|
|
||||||
|
|
||||||
QWidget *editor = CSVWorld::CommandDelegate::createEditor(parent, option, index, display);
|
|
||||||
QLineEdit *lineEditor = qobject_cast<QLineEdit *>(editor);
|
|
||||||
if (lineEditor != NULL && completionManager.hasCompleterFor(columnId))
|
|
||||||
{
|
{
|
||||||
lineEditor->setCompleter(completionManager.getCompleter(columnId).get());
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSMWorld::IdCompletionManager &completionManager = getDocument().getIdCompletionManager();
|
||||||
|
DropLineEdit *editor = new DropLineEdit(parent);
|
||||||
|
editor->setCompleter(completionManager.getCompleter(display).get());
|
||||||
return editor;
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue