Skip to content
Snippets Groups Projects
Commit e41bb586 authored by Nicolas Jager's avatar Nicolas Jager Committed by Edric Milaret
Browse files

fix: Video button appearing on many row

Change-Id: I1de8f75a1c71faaa82799d173aeb2705b37839eb
Tuleap: #441
parent 6cdeba95
Branches
Tags
No related merge requests found
...@@ -499,9 +499,6 @@ CallWidget::on_cancelButton_clicked() ...@@ -499,9 +499,6 @@ CallWidget::on_cancelButton_clicked()
void void
CallWidget::on_smartList_doubleClicked(const QModelIndex& index) CallWidget::on_smartList_doubleClicked(const QModelIndex& index)
{ {
ui->smartList->reset();
ui->smartList->setCurrentIndex(index);
auto realIndex = RecentModel::instance().peopleProxy()->mapToSource(index); auto realIndex = RecentModel::instance().peopleProxy()->mapToSource(index);
if (RecentModel::instance().hasActiveCall(realIndex)) if (RecentModel::instance().hasActiveCall(realIndex))
return; return;
...@@ -562,7 +559,6 @@ CallWidget::placeCall() ...@@ -562,7 +559,6 @@ CallWidget::placeCall()
void void
CallWidget::settingsButtonClicked() CallWidget::settingsButtonClicked()
{ {
ui->smartList->reset();
emit NavigationRequested(ScreenEnum::ConfScreen); emit NavigationRequested(ScreenEnum::ConfScreen);
} }
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include "combar.h" #include "combar.h"
ComBar::ComBar(QWidget* parent) : ComBar::ComBar(QWidget* parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::ComBar) ui(new Ui::ComBar)
......
...@@ -28,18 +28,21 @@ ...@@ -28,18 +28,21 @@
SmartList::SmartList(QWidget *parent) : SmartList::SmartList(QWidget *parent) :
QTreeView(parent) QTreeView(parent)
{ {
verticalScrollBar()->hide(); verticalScrollBar()->hide();
connect(this, &QAbstractItemView::entered, [this](const QModelIndex & index) { connect(this, &QAbstractItemView::entered, [this](const QModelIndex & index) {
removeCombar(); auto widget = indexWidget(index);
if (auto widget = indexWidget(index)) { if (!widget) {
widget->setVisible(true);
} else {
ComBar* bar = new ComBar(); ComBar* bar = new ComBar();
setIndexWidget(index, bar); setIndexWidget(index, bar);
connect(bar, &ComBar::btnVideoClicked, this, [=](){ emit btnVideoClicked(); }); connect(bar, &ComBar::btnVideoClicked, this, [=](){ emit btnVideoClicked(); });
} }
else if (index.isValid())
indexWidget(index)->setVisible(true);
if(hoveredRow_.isValid() and indexWidget(hoveredRow_))
indexWidget(hoveredRow_)->setVisible(false);
hoveredRow_ = index; hoveredRow_ = index;
}); });
...@@ -48,7 +51,7 @@ SmartList::SmartList(QWidget *parent) : ...@@ -48,7 +51,7 @@ SmartList::SmartList(QWidget *parent) :
SmartList::~SmartList() SmartList::~SmartList()
{ {
reset();
} }
void void
...@@ -63,16 +66,14 @@ SmartList::leaveEvent(QEvent* event) ...@@ -63,16 +66,14 @@ SmartList::leaveEvent(QEvent* event)
{ {
Q_UNUSED(event); Q_UNUSED(event);
hoveredRow_ = QModelIndex();
verticalScrollBar()->hide(); verticalScrollBar()->hide();
removeCombar();
} }
void void
SmartList::setSmartListItemDelegate(SmartListDelegate* delegate) SmartList::setSmartListItemDelegate(SmartListDelegate* delegate)
{ {
if (delegate) if (delegate) {
{
setItemDelegate(delegate); setItemDelegate(delegate);
smartListDelegate_ = delegate; smartListDelegate_ = delegate;
} }
...@@ -83,27 +84,21 @@ SmartList::eventFilter(QObject* watched, QEvent* event) ...@@ -83,27 +84,21 @@ SmartList::eventFilter(QObject* watched, QEvent* event)
{ {
if (qobject_cast<QScrollBar*>(watched) && event->type() == QEvent::Enter) { if (qobject_cast<QScrollBar*>(watched) && event->type() == QEvent::Enter) {
removeCombar(); hoveredRow_ = QModelIndex();
return true; return true;
} }
return QObject::eventFilter(watched, event); return QObject::eventFilter(watched, event);
} }
void
SmartList::removeCombar()
{
if(not hoveredRow_.isValid())
return;
if (auto widget = indexWidget(hoveredRow_)) {
widget->setVisible(false);
}
}
void void
SmartList::resizeEvent(QResizeEvent* event) SmartList::drawRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{ {
reset(); if(index == hoveredRow_ && indexWidget(hoveredRow_))
QTreeView::resizeEvent(event); indexWidget(index)->setVisible(true);
else if(indexWidget(index))
indexWidget(index)->setVisible(false);
QTreeView::drawRow(painter, option, index);
} }
...@@ -34,7 +34,7 @@ protected: ...@@ -34,7 +34,7 @@ protected:
void enterEvent(QEvent* event); void enterEvent(QEvent* event);
void leaveEvent(QEvent* event); void leaveEvent(QEvent* event);
bool eventFilter(QObject* watched, QEvent* event); bool eventFilter(QObject* watched, QEvent* event);
void resizeEvent(QResizeEvent* event); void drawRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
private: private:
SmartListDelegate* smartListDelegate_; SmartListDelegate* smartListDelegate_;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment