Files
Adaptix-Framework-AdaptixC2/AdaptixClient/Source/UI/Widgets/TunnelsWidget.cpp
T

79 lines
3.1 KiB
C++

#include <UI/Widgets/TunnelsWidget.h>
#include <UI/Widgets/AdaptixWidget.h>
#include <Client/Requestor.h>
TunnelsWidget::TunnelsWidget(QWidget* w)
{
this->mainWidget = w;
this->createUI();
connect( tableWidget, &QTableWidget::customContextMenuRequested, this, &TunnelsWidget::handleTunnelsMenu );
}
TunnelsWidget::~TunnelsWidget() = default;
void TunnelsWidget::createUI()
{
tableWidget = new QTableWidget( this );
tableWidget->setColumnCount( 12 );
tableWidget->setContextMenuPolicy( Qt::CustomContextMenu );
tableWidget->setAutoFillBackground( false );
tableWidget->setShowGrid( false );
tableWidget->setSortingEnabled( true );
tableWidget->setWordWrap( true );
tableWidget->setCornerButtonEnabled( false );
tableWidget->setSelectionBehavior( QAbstractItemView::SelectRows );
tableWidget->setSelectionMode( QAbstractItemView::SingleSelection );
tableWidget->setFocusPolicy( Qt::NoFocus );
tableWidget->setAlternatingRowColors( true );
tableWidget->horizontalHeader()->setSectionResizeMode( QHeaderView::Stretch );
tableWidget->horizontalHeader()->setCascadingSectionResizes( true );
tableWidget->horizontalHeader()->setHighlightSections( false );
tableWidget->verticalHeader()->setVisible( false );
tableWidget->setHorizontalHeaderItem( 0, new QTableWidgetItem("Tunnel ID"));
tableWidget->setHorizontalHeaderItem( 1, new QTableWidgetItem("Agent ID"));
tableWidget->setHorizontalHeaderItem( 2, new QTableWidgetItem("Computer"));
tableWidget->setHorizontalHeaderItem( 3, new QTableWidgetItem("User"));
tableWidget->setHorizontalHeaderItem( 4, new QTableWidgetItem("Process"));
tableWidget->setHorizontalHeaderItem( 5, new QTableWidgetItem("Type"));
tableWidget->setHorizontalHeaderItem( 6, new QTableWidgetItem("Info"));
tableWidget->setHorizontalHeaderItem( 7, new QTableWidgetItem("Interface"));
tableWidget->setHorizontalHeaderItem( 8, new QTableWidgetItem("Listen port"));
tableWidget->setHorizontalHeaderItem( 9, new QTableWidgetItem("Client"));
tableWidget->setHorizontalHeaderItem( 10, new QTableWidgetItem("Forward host"));
tableWidget->setHorizontalHeaderItem( 11, new QTableWidgetItem("Forward port"));
tableWidget->hideColumn( 0 );
mainGridLayout = new QGridLayout( this );
mainGridLayout->setContentsMargins( 0, 0, 0, 0);
mainGridLayout->addWidget( tableWidget, 0, 0, 1, 1);
}
void TunnelsWidget::Clear()
{
auto adaptixWidget = qobject_cast<AdaptixWidget*>( mainWidget );
adaptixWidget->Tunnels.clear();
for (int index = tableWidget->rowCount(); index > 0; index-- )
tableWidget->removeRow(index -1 );
}
/// Slots
void TunnelsWidget::handleTunnelsMenu(const QPoint &pos ) const
{
QMenu tunnelsMenu = QMenu();
tunnelsMenu.addAction( "Set info", this, &TunnelsWidget::actionSetInfo);
tunnelsMenu.addAction("Stop", this, &TunnelsWidget::actionStopTunnel );
QPoint globalPos = tableWidget->mapToGlobal( pos );
tunnelsMenu.exec(globalPos);
}
void TunnelsWidget::stopTunnel()
{
}