void FilmsViewList::ShowHeaderContextMenu( const QPoint& pos ) { // Setup QHeaderView* header = horizontalHeader(); QMenu menu( tr("Columns") ); // "Title" always enabled // "Filename" and "Poster" always disabled for( int column = 1; column < model()->columnCount() - 2; ++column ) { QAction* action = menu.addAction( model()->headerData( column, Qt::Horizontal ).toString() ); action->setCheckable( true ); action->setChecked( !header->isSectionHidden( column ) ); action->setData( column ); } menu.addSeparator(); QAction* resetAction = menu.addAction( tr("Reset to defaults") ); resetAction->setData( model()->columnCount() ); // Show QAction* triggered = menu.exec( header->viewport()->mapToGlobal(pos) ); // Processing if( triggered != nullptr ) { int i = triggered->data().toInt(); if( i < model()->columnCount() ) { header->setSectionHidden( i, !header->isSectionHidden( i ) ); } else // "Reset to defaults" item { RestoreColumnsOrder(); SetDefaultColumnsView(); } SaveSettings(); } }