Changeset - 708985ebaffa
[Not reviewed]
Hasan Yavuz Ă–ZDERYA - 9 years ago 2016-12-31 09:58:15
hy@ozderya.net
fixed checkbox channel name display, checkbox corrected, visibility column still has problems
2 files changed with 38 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/channelinfomodel.cpp
Show inline comments
 
@@ -16,12 +16,14 @@
 
  You should have received a copy of the GNU General Public License
 
  along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
 
*/
 

	
 
#include "channelinfomodel.h"
 

	
 
#include <QtDebug>
 

	
 
/// name + visibility
 
enum ChannelInfoColumn
 
{
 
    COLUMN_NAME = 0,
 
    COLUMN_VISIBILITY,
 
    COLUMN_COUNT
 
@@ -41,29 +43,55 @@ int ChannelInfoModel::rowCount(const QMo
 

	
 
int ChannelInfoModel::columnCount(const QModelIndex & parent) const
 
{
 
    return COLUMN_COUNT;
 
}
 

	
 
Qt::ItemFlags ChannelInfoModel::flags(const QModelIndex &index) const
 
{
 
    if (index.column() == COLUMN_NAME)
 
    {
 
        return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemNeverHasChildren;
 
    }
 
    else if (index.column() == COLUMN_VISIBILITY)
 
    {
 
        return Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemNeverHasChildren;
 
    }
 

	
 
    return Qt::NoItemFlags;
 
}
 

	
 
QVariant ChannelInfoModel::data(const QModelIndex &index, int role) const
 
{
 
    // TODO: check role parameter
 

	
 
    if (index.row() < (int) _numOfChannels)
 
    if (index.row() >= (int) _numOfChannels)
 
    {
 
        if (index.column() == COLUMN_NAME)
 
        return QVariant();
 
    }
 

	
 
    if (index.column() == COLUMN_NAME)
 
    {
 
        if (role == Qt::DisplayRole || role == Qt::EditRole)
 
        {
 
            return QVariant(infos[index.row()].name);
 
        }
 
        else if (index.column() == COLUMN_VISIBILITY)
 
    }
 
    else if (index.column() == COLUMN_VISIBILITY)
 
    {
 
        if (Qt::CheckStateRole)
 
        {
 
            return QVariant(infos[index.row()].visibility);
 
            bool visible = infos[index.row()].visibility;
 
            return visible ? Qt::Checked : Qt::Unchecked;
 
        }
 
        else if (role == Qt::DisplayRole || role == Qt::EditRole)
 
        {
 
            return QString("");
 
        }
 
    }
 

	
 
    // invalid index
 
    return QVariant();
 
}
 

	
 
bool ChannelInfoModel::setData(const QModelIndex &index, const QVariant &value, int role)
 
{
 
    // TODO: check role
src/channelinfomodel.h
Show inline comments
 
@@ -28,16 +28,17 @@ class ChannelInfoModel : public QAbstrac
 
    Q_OBJECT
 

	
 
public:
 
    explicit ChannelInfoModel(unsigned numberOfChannels, QObject *parent = 0);
 

	
 
    // implemented from QAbstractItemModel
 
    int      rowCount(const QModelIndex &parent = QModelIndex()) const;
 
    int      columnCount(const QModelIndex &parent = QModelIndex()) const;
 
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
 
    bool     setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
 
    int           rowCount(const QModelIndex &parent = QModelIndex()) const;
 
    int           columnCount(const QModelIndex &parent = QModelIndex()) const;
 
    QVariant      data(const QModelIndex &index, int role = Qt::DisplayRole) const;
 
    bool          setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
 
    Qt::ItemFlags flags(const QModelIndex &index) const;
 

	
 
    void setNumOfChannels(unsigned number);
 

	
 
private:
 
    struct ChannelInfo
 
    {
0 comments (0 inline, 0 general)