]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiIdListModel.h
Properly track the lifetime of signals2::slots (#8261)
[lyx.git] / src / frontends / qt4 / GuiIdListModel.h
index b0eb4849905f7d5ba7ec3c670118b14793d60b53..4282940e9875754c7830a335076fce8172acc93f 100644 (file)
@@ -39,12 +39,14 @@ namespace frontend {
 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;
@@ -53,7 +55,7 @@ public:
        ///
        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 );
@@ -63,65 +65,62 @@ public:
        // 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