Ok!
Решаем задачу подобным образом. Ставим, что то вроде фильтра на двойное нажатие клавиши мыши, прежде чем позволяем пользователю редактировать имя файла:
C++ (Qt)
connect( m_managerView, SIGNAL( doubleClicked( QModelIndex ) ),
this, SLOT( editName( QModelIndex ) ) );
...
...
void managerWidget::editName(const QModelIndex &index)
{
QString generalName = m_managerModel->rootPath() + "/general.txt";
if(!index.isValid())
{
return;
}
else if(m_managerModel->filePath(index) == generalName )
{
m_managerModel->setReadOnly( true );
return;
}
m_managerModel->setReadOnly( false );
m_managerView->edit(index);
}
Попутный вопрос.
Работаю на виртуальной машине VMware.
Имеется такая проблема: При двойном нажатии левой клавиши мыши на имени файла для редактирования, часто имя затирается и устанавливается 0.
С чем это может быть связано с VMware или кодом?
Как бы это исправить?
И еще вопрос. Необходимо что бы смена пункта дерева происходила только при щелчке левой кнопки мыши. Как отцепить колесико и правую кнопку мыши, которая должна показывать только контекстное меню для текущего итема, но не инициировать переход на него?