aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt
diff options
context:
space:
mode:
authorMing Chen <mingc2099@gmail.com>2022-10-03 15:01:57 -0700
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-10-04 12:36:25 +0000
commit01a3a19e15c5e0ff7fcb070178dceb20d804ef3f (patch)
treecc9113e6cd5d4be13ab804650918e25b96206fdc /ui/qt
parent2c40dc97cd19f6b4ee3cf2d888ecdb7ee7705412 (diff)
Add copy as a Base64 string
Diffstat (limited to 'ui/qt')
-rw-r--r--ui/qt/utils/data_printer.cpp10
-rw-r--r--ui/qt/utils/data_printer.h3
2 files changed, 11 insertions, 2 deletions
diff --git a/ui/qt/utils/data_printer.cpp b/ui/qt/utils/data_printer.cpp
index 53e632d2c2..cfbc17180c 100644
--- a/ui/qt/utils/data_printer.cpp
+++ b/ui/qt/utils/data_printer.cpp
@@ -46,6 +46,9 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
for (int i = 0; i < printData.length(); i++)
clipboard_text += QString("%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
break;
+ case DP_Base64:
+ clipboard_text = printData.toBase64();
+ break;
case DP_EscapedString:
// Beginning quote
clipboard_text += QString("\"");
@@ -212,6 +215,11 @@ QActionGroup * DataPrinter::copyActions(QObject * copyClass, QObject * data)
action->setProperty("printertype", DataPrinter::DP_HexStream);
connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
+ action = new QAction(tr("…as a Base64 String"), actions);
+ action->setToolTip(tr("Copy packet bytes as a base64 encoded string."));
+ action->setProperty("printertype", DataPrinter::DP_Base64);
+ connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
+
action = new QAction(tr("…as Raw Binary"), actions);
action->setToolTip(tr("Copy packet bytes as application/octet-stream MIME data."));
action->setProperty("printertype", DataPrinter::DP_Binary);
@@ -240,7 +248,7 @@ void DataPrinter::copyIDataBytes(bool /* state */)
int dump_type = sendingAction->property("printertype").toInt();
- if (dump_type >= 0 && dump_type <= DataPrinter::DP_Binary) {
+ if (dump_type >= 0 && dump_type <= DataPrinter::DP_Base64) {
DataPrinter printer;
printer.toClipboard((DataPrinter::DumpType) dump_type, dynamic_cast<IDataPrintable *>(dataObject));
}
diff --git a/ui/qt/utils/data_printer.h b/ui/qt/utils/data_printer.h
index 67a394dd27..ec0ee88418 100644
--- a/ui/qt/utils/data_printer.h
+++ b/ui/qt/utils/data_printer.h
@@ -32,7 +32,8 @@ public:
DP_HexStream,
DP_PrintableText,
DP_EscapedString,
- DP_Binary
+ DP_Binary,
+ DP_Base64
};
void toClipboard(DataPrinter::DumpType type, IDataPrintable * printable);