edit and resend begun
This commit is contained in:
parent
739a6b7e06
commit
18ca397589
7 changed files with 102 additions and 18 deletions
|
@ -1,11 +1,18 @@
|
|||
#include "editandresend.h"
|
||||
#include "ui_editandresend.h"
|
||||
|
||||
EditAndResend::EditAndResend(QWidget *parent) :
|
||||
EditAndResend::EditAndResend(std::tuple<QString, QString, QString, QString> initial, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::EditAndResend)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
auto [requestHeader, requestData, responseHeader, responseData] = initial;
|
||||
|
||||
ui->requestHeaderEdit->setPlainText(requestHeader);
|
||||
ui->requestDataEdit->setPlainText(requestData);
|
||||
ui->responseHeaderEdit->setPlainText(responseHeader);
|
||||
ui->responseDataEdit->setPlainText(responseData);
|
||||
}
|
||||
|
||||
EditAndResend::~EditAndResend()
|
||||
|
|
|
@ -11,7 +11,7 @@ class EditAndResend : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit EditAndResend(QWidget *parent = nullptr);
|
||||
explicit EditAndResend(std::tuple<QString, QString, QString, QString> initial, QWidget *parent = nullptr);
|
||||
~EditAndResend();
|
||||
|
||||
private:
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<widget class="QPushButton" name="sendButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>730</x>
|
||||
|
@ -56,7 +56,7 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>PushButton</string>
|
||||
<string>Send</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_2">
|
||||
|
@ -137,8 +137,8 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit"/>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_3"/>
|
||||
<widget class="QPlainTextEdit" name="requestHeaderEdit"/>
|
||||
<widget class="QPlainTextEdit" name="requestDataEdit"/>
|
||||
</widget>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="sizePolicy">
|
||||
|
@ -150,8 +150,8 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_2"/>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_4"/>
|
||||
<widget class="QPlainTextEdit" name="responseHeaderEdit"/>
|
||||
<widget class="QPlainTextEdit" name="responseDataEdit"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
1
main.cpp
1
main.cpp
|
@ -4,6 +4,7 @@
|
|||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
QApplication a(argc, argv);
|
||||
MainWindow w;
|
||||
w.show();
|
||||
|
|
|
@ -8,7 +8,7 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
: QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
int metatype_id = qRegisterMetaType<http::Flow>("httpflow");
|
||||
qRegisterMetaType<http::Flow>("httpflow");
|
||||
current_session = new Session();
|
||||
current_session->load("/tmp/littlesnitch.session");
|
||||
|
||||
|
@ -29,6 +29,23 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
ui->historyHTTPTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
ui->historyHTTPTable->setModel(&history_proxy);
|
||||
connect(ui->historyHTTPTable->selectionModel(), SIGNAL (selectionChanged(QItemSelection, QItemSelection)), this, SLOT (on_selectionChange(QItemSelection)));
|
||||
|
||||
ui->historyHTTPTable->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->requestHeaderEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->requestDataEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->responseHeaderEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->responseDataEdit->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui->historyHTTPTable, SIGNAL(customContextMenuRequested(QPoint)), SLOT(historyMenuRequested(QPoint)));
|
||||
connect(ui->requestHeaderEdit, SIGNAL(customContextMenuRequested(QPoint)), SLOT(editMenuRequested(QPoint)));
|
||||
connect(ui->requestDataEdit, SIGNAL(customContextMenuRequested(QPoint)), SLOT(edit2MenuRequested(QPoint)));
|
||||
connect(ui->responseHeaderEdit, SIGNAL(customContextMenuRequested(QPoint)), SLOT(edit3MenuRequested(QPoint)));
|
||||
connect(ui->responseDataEdit, SIGNAL(customContextMenuRequested(QPoint)), SLOT(edit4MenuRequested(QPoint)));
|
||||
|
||||
editAndResendMenu = new QAction("Edit and Resend", this);
|
||||
connect(editAndResendMenu, &QAction::triggered, this, &MainWindow::openEditAndResend);
|
||||
|
||||
updateHistory();
|
||||
std::make_tuple(QString(), QString(), QString(), QString());
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
@ -36,23 +53,69 @@ MainWindow::~MainWindow()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::openEditAndResend() {
|
||||
auto wnd = new EditAndResend(current_selection, this);
|
||||
wnd->show();
|
||||
}
|
||||
void MainWindow::updateHistory() {
|
||||
history_model.update(current_session->getHistoryItems());
|
||||
history_proxy.invalidate();
|
||||
ui->historyHTTPTable->horizontalHeader()->resizeSections(QHeaderView::ResizeToContents);
|
||||
}
|
||||
|
||||
void MainWindow::editMenuRequested(QPoint pos)
|
||||
{
|
||||
QMenu *menu=new QMenu(this);
|
||||
menu->addAction(editAndResendMenu);
|
||||
menu->popup(ui->requestHeaderEdit->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void MainWindow::edit2MenuRequested(QPoint pos)
|
||||
{
|
||||
QMenu *menu=new QMenu(this);
|
||||
menu->addAction(editAndResendMenu);
|
||||
menu->popup(ui->requestDataEdit->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void MainWindow::edit3MenuRequested(QPoint pos)
|
||||
{
|
||||
QMenu *menu=new QMenu(this);
|
||||
menu->addAction(editAndResendMenu);
|
||||
menu->popup(ui->responseHeaderEdit->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void MainWindow::edit4MenuRequested(QPoint pos)
|
||||
{
|
||||
QMenu *menu=new QMenu(this);
|
||||
menu->addAction(editAndResendMenu);
|
||||
menu->popup(ui->responseDataEdit->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void MainWindow::historyMenuRequested(QPoint pos)
|
||||
{
|
||||
QMenu *menu=new QMenu(this);
|
||||
menu->addAction(editAndResendMenu);
|
||||
menu->popup(ui->historyHTTPTable->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void MainWindow::on_selectionChange(const QItemSelection &selection)
|
||||
{
|
||||
if(!selection.indexes().isEmpty()) {
|
||||
auto index = selection.indexes().at(7);
|
||||
ui->plainTextEdit->setPlainText(history_proxy.data(index).toString());
|
||||
auto requestHeader = history_proxy.data(index).toString();
|
||||
index = selection.indexes().at(8);
|
||||
ui->plainTextEdit_2->setPlainText(history_proxy.data(index).toString());
|
||||
auto requestData = history_proxy.data(index).toString();
|
||||
index = selection.indexes().at(9);
|
||||
ui->plainTextEdit_3->setPlainText(history_proxy.data(index).toString());
|
||||
auto responseHeader = history_proxy.data(index).toString();
|
||||
index = selection.indexes().at(10);
|
||||
ui->plainTextEdit_4->setPlainText(history_proxy.data(index).toString());
|
||||
auto responseData = history_proxy.data(index).toString();
|
||||
|
||||
ui->requestHeaderEdit->setPlainText(requestHeader);
|
||||
ui->requestDataEdit->setPlainText(requestData);
|
||||
ui->responseHeaderEdit->setPlainText(responseHeader);
|
||||
ui->responseDataEdit->setPlainText(responseData);
|
||||
|
||||
current_selection = std::make_tuple(requestHeader, requestData, responseHeader, responseData);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
13
mainwindow.h
13
mainwindow.h
|
@ -22,11 +22,24 @@ private:
|
|||
Session* current_session;
|
||||
HistoryModel history_model;
|
||||
HistoryProxyModel history_proxy;
|
||||
|
||||
QAction* editAndResendMenu;
|
||||
QAction* hideHistoryColumn;
|
||||
QAction* showHistoryColumn;
|
||||
|
||||
// hack for supplying the initial data to edit&resend
|
||||
std::tuple<QString, QString, QString, QString> current_selection;
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
void openEditAndResend();
|
||||
public slots:
|
||||
void updateHistory();
|
||||
void editMenuRequested(QPoint pos);
|
||||
void edit2MenuRequested(QPoint pos);
|
||||
void edit3MenuRequested(QPoint pos);
|
||||
void edit4MenuRequested(QPoint pos);
|
||||
void historyMenuRequested(QPoint pos);
|
||||
private slots:
|
||||
void on_selectionChange(const QItemSelection& selection);
|
||||
void on_searchEdit_textEdited(const QString &arg1);
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit">
|
||||
<widget class="QPlainTextEdit" name="requestHeaderEdit">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
|
@ -151,7 +151,7 @@
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_2">
|
||||
<widget class="QPlainTextEdit" name="requestDataEdit">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>DejaVu Sans Mono</family>
|
||||
|
@ -166,7 +166,7 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_3">
|
||||
<widget class="QPlainTextEdit" name="responseHeaderEdit">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>DejaVu Sans Mono</family>
|
||||
|
@ -176,7 +176,7 @@
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit_4">
|
||||
<widget class="QPlainTextEdit" name="responseDataEdit">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>DejaVu Sans Mono</family>
|
||||
|
@ -353,7 +353,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>818</width>
|
||||
<height>22</height>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuFile">
|
||||
|
|
Loading…
Reference in a new issue