Уж мозг сломал
есть TableView, есть TabWidget c 3 вкладками( жилая, комерч, земля) в зависимости на какой вкладке нажимаем кнопку "поиск "- заполняется TableView, хочется при двойном клике по TableView показывать подробную информацию конкретно (либо "подробно о жилая", либо "подробно о комерч", либо "подробно о земле") реализовал так:
connect( flatseach, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );
.......................................................
connect( commercialseach, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );
......................................................
connect( seachgroundareas, SIGNAL( exec( const QString & ) ), this, SLOT( openDetail() ) );
........................................
void MainWindow::openDetail()
{
detailToolBar->clear();
detailToolBar->addAction( tmp_dock_action );
connect( tableView, SIGNAL( doubleClicked ( const QModelIndex & ) ), tmp_dock_action, SLOT ( toggle()));
connect( tmp_dock_action, SIGNAL( toggled ( bool ) ), tmp_dock, SLOT( setVisible( bool )));
}
........................................
//где-то в коде
tmp_dock_action = qobject_cast<QAction*>(a_dock_d);
tmp_dock = qobject_cast<QDockWidget*>(dock_d);
// и
tmp_dock_action = qobject_cast<QAction*>(a_dock_comm);
tmp_dock = qobject_cast<QDockWidget*>(dock_comm);
// и еще
tmp_dock_action = qobject_cast<QAction*>(a_dock_gr);
tmp_dock = qobject_cast<QDockWidget*>(dock_gr);
Но при клике по "жилой" открывается правильно, а вот если затем кликаем по "коммерч" открывается оба и "жилая" и "коммерч".
Т.е. "tmp_dock = qobject_cast<QDockWidget*>(dock_d);" как-то неотрабатывает, сохраняя и предыдущее значение tmp_dock
Полагаю надо как-то замаппить клик на TableView, но как не врубаюсь
Короче вот скрин: