Add the ID completion delegate
parent
19cc6b83e5
commit
33e36ee922
@ -0,0 +1,41 @@
|
||||
#include "idcompletiondelegate.hpp"
|
||||
|
||||
#include "../../model/world/idcompletionmanager.hpp"
|
||||
|
||||
CSVWorld::IdCompletionDelegate::IdCompletionDelegate(CSMWorld::CommandDispatcher *dispatcher,
|
||||
CSMDoc::Document& document,
|
||||
QObject *parent)
|
||||
: CommandDelegate(dispatcher, document, parent)
|
||||
{}
|
||||
|
||||
QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
return createEditor(parent, option, index, CSMWorld::ColumnBase::Display_None);
|
||||
}
|
||||
|
||||
QWidget *CSVWorld::IdCompletionDelegate::createEditor(QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index,
|
||||
CSMWorld::ColumnBase::Display display) const
|
||||
{
|
||||
int columnIdData = index.data(CSMWorld::ColumnBase::Role_ColumnId).toInt();
|
||||
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.isCompleterExistFor(columnId))
|
||||
{
|
||||
lineEditor->setCompleter(completionManager.getCompleter(columnId).get());
|
||||
}
|
||||
return editor;
|
||||
}
|
||||
|
||||
CSVWorld::CommandDelegate *CSVWorld::IdCompletionDelegateFactory::makeDelegate(CSMWorld::CommandDispatcher *dispatcher,
|
||||
CSMDoc::Document& document,
|
||||
QObject *parent) const
|
||||
{
|
||||
return new IdCompletionDelegate(dispatcher, document, parent);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#ifndef CSV_WORLD_IDCOMPLETIONMANAGER_HPP
|
||||
#define CSV_WORLD_IDCOMPLETIONMANAGER_HPP
|
||||
|
||||
#include "util.hpp"
|
||||
|
||||
namespace CSVWorld
|
||||
{
|
||||
/// \brief Enables the Id completion for a column
|
||||
class IdCompletionDelegate : public CommandDelegate
|
||||
{
|
||||
public:
|
||||
IdCompletionDelegate(CSMWorld::CommandDispatcher *dispatcher,
|
||||
CSMDoc::Document& document,
|
||||
QObject *parent);
|
||||
|
||||
virtual QWidget *createEditor (QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const;
|
||||
|
||||
virtual QWidget *createEditor (QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index,
|
||||
CSMWorld::ColumnBase::Display display) const;
|
||||
};
|
||||
|
||||
class IdCompletionDelegateFactory : public CommandDelegateFactory
|
||||
{
|
||||
public:
|
||||
virtual CommandDelegate *makeDelegate(CSMWorld::CommandDispatcher *dispatcher,
|
||||
CSMDoc::Document& document,
|
||||
QObject *parent) const;
|
||||
///< The ownership of the returned CommandDelegate is transferred to the caller.
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue