cabana: improve open/save functions (#27007)
old-commit-hash: d365d99cb005b99ce7385d169e696847b0726315
This commit is contained in:
@@ -68,13 +68,14 @@ MainWindow::MainWindow() : QMainWindow() {
|
||||
|
||||
void MainWindow::createActions() {
|
||||
QMenu *file_menu = menuBar()->addMenu(tr("&File"));
|
||||
file_menu->addAction(tr("Open DBC File..."), this, &MainWindow::loadDBCFromFile);
|
||||
file_menu->addAction(tr("Open DBC File..."), this, &MainWindow::loadDBCFromFile)->setShortcuts(QKeySequence::Open);
|
||||
file_menu->addAction(tr("Load DBC From Clipboard"), this, &MainWindow::loadDBCFromClipboard);
|
||||
file_menu->addSeparator();
|
||||
file_menu->addAction(tr("Save DBC As..."), this, &MainWindow::saveDBCToFile);
|
||||
file_menu->addAction(tr("Save DBC..."), this, &MainWindow::saveDBCToFile)->setShortcuts(QKeySequence::Save);
|
||||
file_menu->addAction(tr("Save DBC As..."), this, &MainWindow::saveAsDBCToFile)->setShortcuts(QKeySequence::SaveAs);
|
||||
file_menu->addAction(tr("Copy DBC To Clipboard"), this, &MainWindow::saveDBCToClipboard);
|
||||
file_menu->addSeparator();
|
||||
file_menu->addAction(tr("Settings..."), this, &MainWindow::setOption);
|
||||
file_menu->addAction(tr("Settings..."), this, &MainWindow::setOption)->setShortcuts(QKeySequence::Preferences);
|
||||
|
||||
QMenu *edit_menu = menuBar()->addMenu(tr("&Edit"));
|
||||
auto undo_act = detail_widget->undo_stack->createUndoAction(this, tr("&Undo"));
|
||||
@@ -182,7 +183,7 @@ void MainWindow::loadDBCFromName(const QString &name) {
|
||||
}
|
||||
|
||||
void MainWindow::loadDBCFromFile() {
|
||||
QString file_name = QFileDialog::getOpenFileName(this, tr("Open File"), settings.last_dir, "DBC (*.dbc)");
|
||||
file_name = QFileDialog::getOpenFileName(this, tr("Open File"), settings.last_dir, "DBC (*.dbc)");
|
||||
if (!file_name.isEmpty()) {
|
||||
settings.last_dir = QFileInfo(file_name).absolutePath();
|
||||
QFile file(file_name);
|
||||
@@ -213,18 +214,24 @@ void MainWindow::loadDBCFromFingerprint() {
|
||||
}
|
||||
|
||||
void MainWindow::saveDBCToFile() {
|
||||
QString file_name = QFileDialog::getSaveFileName(this, tr("Save File"),
|
||||
QDir::cleanPath(settings.last_dir + "/untitled.dbc"), tr("DBC (*.dbc)"));
|
||||
if (!file_name.isEmpty()) {
|
||||
if (file_name.isEmpty()) {
|
||||
saveAsDBCToFile();
|
||||
} else {
|
||||
settings.last_dir = QFileInfo(file_name).absolutePath();
|
||||
QFile file(file_name);
|
||||
if (file.open(QIODevice::WriteOnly)) {
|
||||
file.write(dbc()->generateDBC().toUtf8());
|
||||
detail_widget->undo_stack->clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::saveAsDBCToFile() {
|
||||
file_name = QFileDialog::getSaveFileName(this, tr("Save File"), QDir::cleanPath(settings.last_dir + "/untitled.dbc"), tr("DBC (*.dbc)"));
|
||||
if (!file_name.isEmpty()) {
|
||||
saveDBCToFile();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::saveDBCToClipboard() {
|
||||
QGuiApplication::clipboard()->setText(dbc()->generateDBC());
|
||||
QMessageBox::information(this, tr("Copy To Clipboard"), tr("DBC Successfully copied!"));
|
||||
|
||||
@@ -28,6 +28,7 @@ public slots:
|
||||
void loadDBCFromFile();
|
||||
void loadDBCFromClipboard();
|
||||
void saveDBCToFile();
|
||||
void saveAsDBCToFile();
|
||||
void saveDBCToClipboard();
|
||||
|
||||
signals:
|
||||
@@ -57,4 +58,5 @@ protected:
|
||||
QJsonDocument fingerprint_to_dbc;
|
||||
QComboBox *dbc_combo;
|
||||
QSplitter *video_splitter;;
|
||||
QString file_name = "";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user