class GuiIdListModel : public QAbstractListModel {
public:
///
- explicit GuiIdListModel() {};
+ GuiIdListModel() {}
//////////////////////////////////////////////////////////////////////
// Methods overridden from QAbstractListModel
//////////////////////////////////////////////////////////////////////
///
- inline int rowCount(QModelIndex const & parent = QModelIndex()) const;
+ int rowCount(QModelIndex const & = QModelIndex()) const
+ { return userData_.size(); }
+
///
virtual QVariant data(QModelIndex const & index,
int role = Qt::DisplayRole) const;
///
bool removeRows(int row, int count, QModelIndex const & parent = QModelIndex());
///
- void clear() { removeRows(0, rowCount()); };
+ void clear() { removeRows(0, rowCount()); }
///
virtual bool setData (QModelIndex const & index,
const QVariant & value, int role = Qt::EditRole );
// New methods
//////////////////////////////////////////////////////////////////////
///
- void setUIString(QModelIndex const & index, QString const & value)
- { setData(index, value); };
- ///
- void setUIString(int const i, std::string const & value)
- { setUIString(index(i), toqstr(value)); };
- ///
- void setIDString(QModelIndex const & index, QString const & value)
- { setData(index, value, Qt::UserRole); };
- ///
- void setIDString(int const i, std::string const & value)
- { setIDString(index(i), toqstr(value)); };
+ void insertRow(int const i, QString const & uiString,
+ std::string const & idString, QString const & ttString);
+ /// A convenience method, setting ttString to the same as uiString
+ void insertRow(int const i, QString const & uiString,
+ std::string const & idString);
+ /// \return the index of the (first) item with idString
+ /// \return -1 if not found
+ int findIDString(std::string const & idString);
///
virtual QString getIDString(QModelIndex const & index) const
- { return data(index, Qt::UserRole).toString(); };
+ { return data(index, Qt::UserRole).toString(); }
///
virtual std::string getIDString(int const i) const
- { return fromqstr(getIDString(index(i))); };
+ { return fromqstr(getIDString(index(i))); }
+
+private:
+ /// noncopyable
+ GuiIdListModel(GuiIdListModel const &);
///
- void insertRow(int const i, std::string const & uiString,
- std::string const & idString);
- /* The following functions are currently unused but are retained here in
- case they should at some point be useful.
+ void operator=(GuiIdListModel const &);
+ ///
+ void setUIString(QModelIndex const & index, QString const & value)
+ { setData(index, value); }
///
void setUIString(int const i, QString const & value)
- { setUIString(index(i), value); };
+ { setUIString(index(i), value); }
///
- void setIDString(int const i, QString const & value)
- { setIDString(index(i), value); };
+ void setIDString(QModelIndex const & index, QString const & value)
+ { setData(index, value, Qt::UserRole); }
///
- QStringList getIDStringList() const;
+ void setIDString(int const i, std::string const & value)
+ { setIDString(index(i), toqstr(value)); }
///
- void insertRow(int const i, QString const & uiString,
- QString const & idString);
- /// Returns whether the model contains an item with the given ID
- bool containsID(QVariant const &) const;
- */
-private:
- /// noncopyable
- GuiIdListModel(GuiIdListModel const &);
+ void setTTString(QModelIndex const & index, QString const & value)
+ { setData(index, value, Qt::ToolTipRole); }
///
+ void setTTString(int const i, QString const & value)
+ { setTTString(index(i), value); }
struct OurData {
+ /// Qt::DisplayRole and Qt::EditRole
QVariant uiString;
+ /// Qt::UserRole
QVariant idString;
+ /// Qt::ToolTipRole
+ QVariant ttString;
};
///
std::vector<OurData> userData_;
///
- inline bool rowIsValid(int const i) const
+ bool rowIsValid(int const i) const
{
- return i >= 0 && i <= userData_.size();
+ return i >= 0 && i <= int(userData_.size());
}
-;
};
-//definition is here to silence a warning
-inline int GuiIdListModel::rowCount(QModelIndex const &) const
- { return userData_.size(); }
-
}
}
#endif //GUIIDLISTMODEL_H