diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2021-06-07 14:22:20 +0200 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-06-07 13:52:59 +0000 |
commit | 44a615e854e1e8281cf7d88dcb435fbbaba9e2ab (patch) | |
tree | a23a37b5dd71359a1bdf71619f493bc2986379bb /ui/qt | |
parent | 8c79fa5e1b9890668444e374b6df9e63b80a133c (diff) |
Qt: Give a directory to wsApp->setLastOpenDir()
Use wsApp->setLastOpenDirFromFilename() to convert a filename
to a directory name before calling wsApp->setLastOpenDir().
This will ensure to always store a directory instead of a filename
in the recent gui.fileopen_remembered_dir.
Diffstat (limited to 'ui/qt')
-rw-r--r-- | ui/qt/firewall_rules_dialog.cpp | 2 | ||||
-rw-r--r-- | ui/qt/iax2_analysis_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/io_graph_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/lte_rlc_graph_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/main_window.cpp | 6 | ||||
-rw-r--r-- | ui/qt/main_window_slots.cpp | 13 | ||||
-rw-r--r-- | ui/qt/packet_diagram.cpp | 3 | ||||
-rw-r--r-- | ui/qt/profile_dialog.cpp | 2 | ||||
-rw-r--r-- | ui/qt/rtp_analysis_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/rtp_stream_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/sctp_graph_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/sequence_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/tcp_stream_dialog.cpp | 3 | ||||
-rw-r--r-- | ui/qt/wireshark_application.cpp | 6 | ||||
-rw-r--r-- | ui/qt/wireshark_application.h | 2 |
15 files changed, 22 insertions, 36 deletions
diff --git a/ui/qt/firewall_rules_dialog.cpp b/ui/qt/firewall_rules_dialog.cpp index befbb98d32..615a14a65a 100644 --- a/ui/qt/firewall_rules_dialog.cpp +++ b/ui/qt/firewall_rules_dialog.cpp @@ -189,7 +189,7 @@ void FirewallRulesDialog::on_buttonBox_clicked(QAbstractButton *button) } /* Save the directory name for future file dialogs. */ - wsApp->setLastOpenDir(file_name.constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } else if (button == ui->buttonBox->button(QDialogButtonBox::Apply)) { if (ui->textBrowser->textCursor().hasSelection()) { diff --git a/ui/qt/iax2_analysis_dialog.cpp b/ui/qt/iax2_analysis_dialog.cpp index adb690ab7e..ea9b6ff3aa 100644 --- a/ui/qt/iax2_analysis_dialog.cpp +++ b/ui/qt/iax2_analysis_dialog.cpp @@ -586,8 +586,7 @@ void Iax2AnalysisDialog::on_actionSaveGraph_triggered() // ui->streamGraph->legend->setVisible(false); // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/io_graph_dialog.cpp b/ui/qt/io_graph_dialog.cpp index 3b52bb1d54..df7a539e24 100644 --- a/ui/qt/io_graph_dialog.cpp +++ b/ui/qt/io_graph_dialog.cpp @@ -1517,8 +1517,7 @@ void IOGraphDialog::on_buttonBox_accepted() } // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/lte_rlc_graph_dialog.cpp b/ui/qt/lte_rlc_graph_dialog.cpp index f9aedf6ee0..56f27b76e2 100644 --- a/ui/qt/lte_rlc_graph_dialog.cpp +++ b/ui/qt/lte_rlc_graph_dialog.cpp @@ -872,8 +872,7 @@ void LteRlcGraphDialog::on_buttonBox_accepted() } // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp index 900a4aaee0..56fbd3d1b4 100644 --- a/ui/qt/main_window.cpp +++ b/ui/qt/main_window.cpp @@ -1297,10 +1297,8 @@ void MainWindow::mergeCaptureFile() return; } - /* Save the name of the containing directory specified in the path name, - if any; we can write over cf_merged_name, which is a good thing, given that - "get_dirname()" does write over its argument. */ - wsApp->setLastOpenDir(get_dirname(tmpname)); + /* Save the name of the containing directory specified in the path name. */ + wsApp->setLastOpenDirFromFilename(tmpname); g_free(tmpname); main_ui_->statusBar->showExpert(); return; diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index 1c6d945808..947914411c 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -275,8 +275,7 @@ bool MainWindow::openCaptureFile(QString cf_path, QString read_filter, unsigned break; } - // get_dirname overwrites its path. - wsApp->setLastOpenDir(get_dirname(cf_path.toUtf8().data())); + wsApp->setLastOpenDirFromFilename(cf_path); main_ui_->statusBar->showExpert(); @@ -760,16 +759,12 @@ void MainWindow::captureFileReadStarted(const QString &action) { } void MainWindow::captureFileReadFinished() { - gchar *dir_path; - if (!capture_file_.capFile()->is_tempfile && capture_file_.capFile()->filename) { /* Add this filename to the list of recent files in the "Recent Files" submenu */ add_menu_recent_capture_file(capture_file_.capFile()->filename); /* Remember folder for next Open dialog and save it in recent */ - dir_path = g_strdup(capture_file_.capFile()->filename); - wsApp->setLastOpenDir(get_dirname(dir_path)); - g_free(dir_path); + wsApp->setLastOpenDirFromFilename(capture_file_.capFile()->filename); } /* Update the appropriate parts of the main window. */ @@ -1802,7 +1797,7 @@ void MainWindow::on_actionFileExportPacketBytes_triggered() write_file_binary_mode(qUtf8Printable(file_name), data_p, capture_file_.capFile()->finfo_selected->length); /* Save the directory name for future file dialogs. */ - wsApp->setLastOpenDir(file_name); + wsApp->setLastOpenDirFromFilename(file_name); } } @@ -1861,7 +1856,7 @@ void MainWindow::on_actionFileExportTLSSessionKeys_triggered() write_file_binary_mode(qUtf8Printable(file_name), keylist, keylist_length); /* Save the directory name for future file dialogs. */ - wsApp->setLastOpenDir(file_name); + wsApp->setLastOpenDirFromFilename(file_name); g_free(keylist); } } diff --git a/ui/qt/packet_diagram.cpp b/ui/qt/packet_diagram.cpp index dddf51af8e..3350c2c3fb 100644 --- a/ui/qt/packet_diagram.cpp +++ b/ui/qt/packet_diagram.cpp @@ -796,8 +796,7 @@ void PacketDiagram::saveAsTriggered() #endif // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/profile_dialog.cpp b/ui/qt/profile_dialog.cpp index 444d5acab2..7959bf83b0 100644 --- a/ui/qt/profile_dialog.cpp +++ b/ui/qt/profile_dialog.cpp @@ -735,7 +735,7 @@ QString ProfileDialog::lastOpenDir() void ProfileDialog::storeLastDir(QString dir) { if (wsApp && dir.length() > 0) - wsApp->setLastOpenDir(dir.toUtf8().constData()); + wsApp->setLastOpenDir(qUtf8Printable(dir)); } void ProfileDialog::resetTreeView() diff --git a/ui/qt/rtp_analysis_dialog.cpp b/ui/qt/rtp_analysis_dialog.cpp index 920d8cab94..adb2e46004 100644 --- a/ui/qt/rtp_analysis_dialog.cpp +++ b/ui/qt/rtp_analysis_dialog.cpp @@ -651,8 +651,7 @@ void RtpAnalysisDialog::on_actionSaveGraph_triggered() // ui->streamGraph->legend->setVisible(false); // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/rtp_stream_dialog.cpp b/ui/qt/rtp_stream_dialog.cpp index 7f8f8188a0..a5566a7be0 100644 --- a/ui/qt/rtp_stream_dialog.cpp +++ b/ui/qt/rtp_stream_dialog.cpp @@ -752,8 +752,7 @@ void RtpStreamDialog::on_actionExportAsRtpDump_triggered() g_free(dest_file); // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } diff --git a/ui/qt/sctp_graph_dialog.cpp b/ui/qt/sctp_graph_dialog.cpp index 1db60007b8..c1339c083f 100644 --- a/ui/qt/sctp_graph_dialog.cpp +++ b/ui/qt/sctp_graph_dialog.cpp @@ -506,8 +506,7 @@ void SCTPGraphDialog::save_graph(QDialog *dlg, QCustomPlot *plot) } // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp index dd22a3d144..604e27407d 100644 --- a/ui/qt/sequence_dialog.cpp +++ b/ui/qt/sequence_dialog.cpp @@ -473,8 +473,7 @@ void SequenceDialog::exportDiagram() } // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } else { open_failure_alert_box(file_name.toUtf8().constData(), errno, TRUE); } diff --git a/ui/qt/tcp_stream_dialog.cpp b/ui/qt/tcp_stream_dialog.cpp index 9a789c86d2..c566b41a08 100644 --- a/ui/qt/tcp_stream_dialog.cpp +++ b/ui/qt/tcp_stream_dialog.cpp @@ -1867,8 +1867,7 @@ void TCPStreamDialog::on_buttonBox_accepted() } // else error dialog? if (save_ok) { - path = QDir(file_name); - wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + wsApp->setLastOpenDirFromFilename(file_name); } } } diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp index 2b78c50c09..6c5662ced1 100644 --- a/ui/qt/wireshark_application.cpp +++ b/ui/qt/wireshark_application.cpp @@ -282,8 +282,10 @@ QDir WiresharkApplication::lastOpenDir() { return QDir(last_open_dir); } -void WiresharkApplication::setLastOpenDir(QString dir_str) { - setLastOpenDir(qUtf8Printable(dir_str)); +void WiresharkApplication::setLastOpenDirFromFilename(const QString file_name) +{ + QString directory = QFileInfo(file_name).absolutePath(); + setLastOpenDir(qUtf8Printable(directory)); } void WiresharkApplication::helpTopicAction(topic_action_e action) diff --git a/ui/qt/wireshark_application.h b/ui/qt/wireshark_application.h index 26e53d7160..5454c68f14 100644 --- a/ui/qt/wireshark_application.h +++ b/ui/qt/wireshark_application.h @@ -107,7 +107,7 @@ public: void removeRecentItem(const QString &filename); QDir lastOpenDir(); void setLastOpenDir(const char *dir_name); - void setLastOpenDir(QString dir_str); + void setLastOpenDirFromFilename(QString file_name); void helpTopicAction(topic_action_e action); const QFont monospaceFont(bool zoomed = false) const; void setMonospaceFont(const char *font_string); |