Go to the documentation of this file.
20 emit beginResetModel();
48 return createIndex(row, column);
68 QList<QStringList> ret;
73 Q_ASSERT(ret.back().size() == 2);
74 condition = condition->
next;
84 return data.join(
"\n");
92 if (role != Qt::DisplayRole && role != Qt::EditRole && (role != Qt::CheckStateRole ||
index.column() != 2))
97 switch(
index.column())
103 return step->step_description;
106 if (role == Qt::DisplayRole)
108 return step->is_completion_step ? Qt::Checked : Qt::Unchecked;
113 if (role == Qt::EditRole)
114 return QVariant::fromValue(conditions);
124 if (orientation != Qt::Horizontal || role != Qt::DisplayRole)
132 return tr(
"description");
136 return tr(
"set when");
144 if (!
index.isValid())
147 if (
index.column() == 2)
148 return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable;
150 return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled;
158 if (role != Qt::EditRole &&
index.column() != 2)
163 if (
index.column() == 0)
164 step->step =
value.toInt();
165 else if (
index.column() == 1)
167 else if (
index.column() == 2)
168 step->is_completion_step = (
value == Qt::Checked);
169 else if (
index.column() == 3) {
170 auto when =
value.value<QList<QStringList>>();
171 auto cond = step->conditions;
177 step->conditions =
nullptr;
180 for (
auto single : when) {
189 step->conditions = cond;
213 cur->next->step = cur->step + 10;
233 beginRemoveRows(
parent, row, row);
261 beginMoveRows(QModelIndex(), step, step, QModelIndex(), step - 1);
virtual bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex())
quest_step_definition * steps
quest_step_definition * quest_create_step(void)
void quest_write_condition(char *buf, size_t len, const quest_condition *cond)
static QString toDisplay(const QList< QStringList > &list)
virtual ~CREQuestItemModel()
quest_step_definition * getStep(int step) const
std::pair< nonstd::string_view, nonstd::string_view > split(nonstd::string_view view, char Separator)
void setQuest(quest_definition *quest)
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const
struct quest_step_definition * next
CREQuestItemModel(QObject *parent)
virtual int columnCount(const QModelIndex &parent) const
virtual QVariant data(const QModelIndex &index, int role) const
#define FREE_AND_COPY(sv, nv)
quest_definition * quest() const
void questModified(quest_definition *quest)
void quest_destroy_condition(quest_condition *condition)
quest_definition * myQuest
virtual int rowCount(const QModelIndex &parent) const
void quest_destroy_step(quest_step_definition *step)
struct quest_condition * next
QList< QStringList > conditionsToString(const quest_condition *condition)
int quest_condition_from_string(quest_condition *condition, const char *buffer)
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const
virtual Qt::ItemFlags flags(const QModelIndex &index) const
quest_condition * quest_create_condition(void)
virtual QModelIndex parent(const QModelIndex &index) const