void OverviewErrorsWidget::contextMenuEvent(QContextMenuEvent *pEvent)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction(QPixmap(":/images/22_22/Save.png"), Homer::Gui::OverviewErrorsWidget::tr("Save"));
    tAction = tMenu.addAction(QPixmap(":/images/22_22/Reset.png"), Homer::Gui::OverviewErrorsWidget::tr("Update"));
    tAction = tMenu.addAction(QPixmap(":/images/22_22/Reset.png"), Homer::Gui::OverviewErrorsWidget::tr("Automatic updates"));
    tAction->setCheckable(true);
    tAction->setChecked(mAutoUpdate);

    QAction* tPopupRes = tMenu.exec(pEvent->globalPos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare(Homer::Gui::OverviewErrorsWidget::tr("Save")) == 0)
        {
            SaveLog();
            return;
        }
        if (tPopupRes->text().compare(Homer::Gui::OverviewErrorsWidget::tr("Update")) == 0)
        {
            UpdateView();
            return;
        }
        if (tPopupRes->text().compare(Homer::Gui::OverviewErrorsWidget::tr("Automatic updates")) == 0)
        {
            mAutoUpdate = !mAutoUpdate;
            return;
        }
    }
}
void PlaybackSlider::contextMenuEvent(QContextMenuEvent *pContextMenuEvent)
{
    QAction *tAction;

    // return if participant widget is not valid, in this case we cannot change the A/V drift anyway
    if (mParticipantWidget == NULL)
        return;

    QMenu tMenu(this);

    tAction = tMenu.addAction(Homer::Gui::PlaybackSlider::tr("Adjust A/V drift"));
    QIcon tIcon2;
    tIcon2.addPixmap(QPixmap(":/images/22_22/Configuration_Video.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon2);
    tAction->setCheckable(true);
    if (mParticipantWidget-> mAVDriftFrame != NULL)
        tAction->setChecked(mParticipantWidget->mAVDriftFrame->isVisible());

    QAction* tPopupRes = tMenu.exec(pContextMenuEvent->globalPos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare(Homer::Gui::PlaybackSlider::tr("Adjust A/V drift")) == 0)
        {
            mParticipantWidget->ActionToggleUserAVDriftWidget();
            return;
        }
    }
}
void MessageWidget::contextMenuEvent(QContextMenuEvent *pContextMenuEvent)
{
    QMenu tMenu(this);

    InitializeMenuMessagesSettings(&tMenu);

    QAction* tPopupRes = tMenu.exec(pContextMenuEvent->globalPos());
    if (tPopupRes != NULL)
        SelectedMenuMessagesSettings(tPopupRes);
}
void OverviewPlaylistWidget::contextMenuEvent(QContextMenuEvent *pContextMenuEvent)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction("Add an entry");
    QIcon tIcon1;
    tIcon1.addPixmap(QPixmap(":/images/22_22/Plus.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon1);

    if (!mLwFiles->selectedItems().isEmpty())
    {
        tAction = tMenu.addAction("Delete selected");
        QIcon tIcon2;
        tIcon2.addPixmap(QPixmap(":/images/22_22/Minus.png"), QIcon::Normal, QIcon::Off);
        tAction->setIcon(tIcon2);
    }

    tMenu.addSeparator();

    tAction = tMenu.addAction("Endless loop");
    tAction->setCheckable(true);
    tAction->setChecked(mEndlessLoop);

    QAction* tPopupRes = tMenu.exec(pContextMenuEvent->globalPos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare("Add an entry") == 0)
        {
            AddEntryDialog();
            return;
        }
        if (tPopupRes->text().compare("Delete selected") == 0)
        {
            DelEntryDialog();
            return;
        }
        if (tPopupRes->text().compare("Endless loop") == 0)
        {
            mEndlessLoop = !mEndlessLoop;
            LOG(LOG_VERBOSE, "Playlist %d has now endless loop activation %d", mPlaylistId, mEndlessLoop);
            return;
        }
    }
}
void OverviewDataStreamsWidget::contextMenuEvent(QContextMenuEvent *pContextMenuEvent)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction("Save statistic");
    QIcon tIcon1;
    tIcon1.addPixmap(QPixmap(":/images/22_22/Save.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon1);

    QAction* tPopupRes = tMenu.exec(pContextMenuEvent->globalPos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare("Save statistic") == 0)
        {
            SaveCompleteStatistic();
            return;
        }
    }
}
void OverviewErrorsWidget::ErrorLogCustomContextMenuEvent(const QPoint &pPos)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction("Save error log");
    QIcon tIcon1;
    tIcon1.addPixmap(QPixmap(":/images/22_22/Save.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon1);

    QAction* tPopupRes = tMenu.exec(QCursor::pos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare("Save error log") == 0)
        {
            SaveLog();
            return;
        }
    }
}
void OverviewThreadsWidget::contextMenuEvent(QContextMenuEvent *pContextMenuEvent)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction(Homer::Gui::OverviewThreadsWidget::tr("Scaled to one cpu core"));
    tAction->setCheckable(true);
    tAction->setChecked(mScaleToOneCpuCore);

    QAction* tPopupRes = tMenu.exec(pContextMenuEvent->globalPos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare(Homer::Gui::OverviewThreadsWidget::tr("Scaled to one cpu core")) == 0)
        {
            mScaleToOneCpuCore = !mScaleToOneCpuCore;
            LOG(LOG_VERBOSE, "Scale to one cpu core: %d", mScaleToOneCpuCore);
            UpdateView();
            return;
        }
    }
}
void OverviewDataStreamsWidget::TwAudioCustomContextMenuEvent(const QPoint &pPos)
{
    QAction *tAction;

    QMenu tMenu(this);

    tAction = tMenu.addAction("Save all");
    QIcon tIcon1;
    tIcon1.addPixmap(QPixmap(":/images/22_22/Save.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon1);

    tAction = tMenu.addAction("Save row history");
    tAction->setIcon(tIcon1);

    tAction = tMenu.addAction("Reset row");
    QIcon tIcon2;
    tIcon2.addPixmap(QPixmap(":/images/22_22/Reload.png"), QIcon::Normal, QIcon::Off);
    tAction->setIcon(tIcon2);

    QAction* tPopupRes = tMenu.exec(QCursor::pos());
    if (tPopupRes != NULL)
    {
        if (tPopupRes->text().compare("Reset row") == 0)
        {
            ResetStatistic(DATA_TYPE_AUDIO, mTwAudio->currentRow());
            return;
        }
        if (tPopupRes->text().compare("Save row history") == 0)
        {
            SaveHistory(DATA_TYPE_AUDIO, mTwAudio->currentRow());
            return;
        }
        if (tPopupRes->text().compare("Save all") == 0)
        {
            SaveCompleteStatistic();
            return;
        }
    }
}