mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Edit the name of the Dive Computer via dialog.
The GTK version seems to be bugged on this, since the dialog doesn't save the dive computer nickname that I setted, but the Qt version shows less dive-computers than the GTK one on the same dive. I want somebody to do a quick review of my code too. :) I also plan to remove the 'OK' and 'Cancel' buttom, they seem to be overrated on this dialog - fairly uneeded. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
ebed836ee5
commit
24446f9c3c
2 changed files with 23 additions and 4 deletions
|
@ -1173,18 +1173,35 @@ void DiveComputerModel::update()
|
||||||
nnl = nnl->next;
|
nnl = nnl->next;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
qDebug() << "Numero de Devices" << count;
|
|
||||||
|
|
||||||
if(numRows){
|
if(numRows){
|
||||||
beginRemoveRows(QModelIndex(), 0, numRows-1);
|
beginRemoveRows(QModelIndex(), 0, numRows-1);
|
||||||
numRows = 0;
|
numRows = 0;
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count){
|
if (count){
|
||||||
beginInsertRows(QModelIndex(), 0, count-1);
|
beginInsertRows(QModelIndex(), 0, count-1);
|
||||||
numRows = count;
|
numRows = count;
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::ItemFlags DiveComputerModel::flags(const QModelIndex& index) const
|
||||||
|
{
|
||||||
|
Qt::ItemFlags flags = QAbstractItemModel::flags(index);
|
||||||
|
if (index.column() == NICKNAME)
|
||||||
|
flags |= Qt::ItemIsEditable;
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DiveComputerModel::setData(const QModelIndex& index, const QVariant& value, int role)
|
||||||
|
{
|
||||||
|
struct device_info *nnl = head_of_device_info_list();
|
||||||
|
for(int i = 0; i < index.row(); i++){
|
||||||
|
nnl = nnl->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray v = value.toByteArray();
|
||||||
|
nnl->nickname = strdup(v.data()); // how should I free this before setting a new one?
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,6 +177,8 @@ public:
|
||||||
virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
|
virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
|
||||||
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
|
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
|
||||||
virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
|
virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
|
||||||
|
virtual Qt::ItemFlags flags(const QModelIndex& index) const;
|
||||||
|
virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
|
||||||
void update();
|
void update();
|
||||||
private:
|
private:
|
||||||
int numRows;
|
int numRows;
|
||||||
|
|
Loading…
Add table
Reference in a new issue