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,7 +1173,6 @@ void DiveComputerModel::update()
 | 
			
		|||
		nnl = nnl->next;
 | 
			
		||||
		count++;
 | 
			
		||||
	}
 | 
			
		||||
	qDebug() << "Numero de Devices" << count;
 | 
			
		||||
 | 
			
		||||
	if(numRows){
 | 
			
		||||
		beginRemoveRows(QModelIndex(), 0, numRows-1);
 | 
			
		||||
| 
						 | 
				
			
			@ -1186,5 +1185,23 @@ void DiveComputerModel::update()
 | 
			
		|||
		numRows = count;
 | 
			
		||||
		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 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) 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();
 | 
			
		||||
private:
 | 
			
		||||
	int numRows;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue