Skip to content

Commit 8c911c4

Browse files
authored
Merge pull request #8846 from gadfort/gui-ext
gui: add .gz and .db to allowed extension for open db
2 parents 75c677e + 17a2c88 commit 8c911c4

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

src/gui/src/mainWindow.cpp

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,7 +1870,17 @@ void MainWindow::showGlobalConnect()
18701870

18711871
void MainWindow::openDesign()
18721872
{
1873-
const QString filefilter = "OpenDB (*.odb *.ODB)";
1873+
const std::vector<QString> exts{".odb", ".odb.gz", ".db", ".db.gz"};
1874+
1875+
QString filefilter = "OpenDB (";
1876+
for (const auto& ext : exts) {
1877+
if (filefilter.length() != 8) {
1878+
filefilter += " ";
1879+
}
1880+
filefilter += "*" + ext;
1881+
filefilter += " *" + ext.toUpper();
1882+
}
1883+
filefilter += ")";
18741884
const QString file = QFileDialog::getOpenFileName(
18751885
this, "Open Design", QString(), filefilter);
18761886

@@ -1879,15 +1889,21 @@ void MainWindow::openDesign()
18791889
}
18801890

18811891
try {
1882-
if (file.endsWith(".odb", Qt::CaseInsensitive)) {
1883-
open_->setEnabled(false);
1884-
ord::OpenRoad::openRoad()->readDb(file.toStdString().c_str());
1885-
logger_->warn(utl::GUI,
1886-
77,
1887-
"Timing data is not stored in {} and must be loaded "
1888-
"separately, if needed.",
1889-
file.toStdString());
1890-
} else {
1892+
bool found = false;
1893+
for (const auto& ext : exts) {
1894+
if (file.endsWith(ext, Qt::CaseInsensitive)) {
1895+
open_->setEnabled(false);
1896+
ord::OpenRoad::openRoad()->readDb(file.toStdString().c_str());
1897+
logger_->warn(utl::GUI,
1898+
77,
1899+
"Timing data is not stored in {} and must be loaded "
1900+
"separately, if needed.",
1901+
file.toStdString());
1902+
found = true;
1903+
break;
1904+
}
1905+
}
1906+
if (!found) {
18911907
logger_->error(utl::GUI, 76, "Unknown filetype: {}", file.toStdString());
18921908
}
18931909
} catch (const std::exception&) {
@@ -1898,7 +1914,17 @@ void MainWindow::openDesign()
18981914

18991915
void MainWindow::saveDesign()
19001916
{
1901-
const QString filefilter = "OpenDB (*.odb *.ODB)";
1917+
const std::vector<QString> exts{".odb", ".odb.gz"};
1918+
1919+
QString filefilter = "OpenDB (";
1920+
for (const auto& ext : exts) {
1921+
if (filefilter.length() != 8) {
1922+
filefilter += " ";
1923+
}
1924+
filefilter += "*" + ext;
1925+
filefilter += " *" + ext.toUpper();
1926+
}
1927+
filefilter += ")";
19021928
const QString file = QFileDialog::getSaveFileName(
19031929
this, "Save Design", QString(), filefilter);
19041930

0 commit comments

Comments
 (0)