# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2015-09-30 00:21:05 # Node ID 6af8069441ab492e84b27ce45556a9f4e8431ed5 # Parent ba36fde18d58f4d914002a909b815f8cf407af6d load snapshots from multiple files diff --git a/snapshotmanager.cpp b/snapshotmanager.cpp --- a/snapshotmanager.cpp +++ b/snapshotmanager.cpp @@ -13,7 +13,7 @@ SnapshotManager::SnapshotManager(QMainWi QList* channelBuffers) : _menu("Snapshots"), _takeSnapshotAction("Take Snapshot", this), - loadSnapshotAction("Load Snapshot", this), + loadSnapshotAction("Load Snapshots", this), clearAction("Clear Snapshots", this) { _mainWindow = mainWindow; @@ -21,14 +21,14 @@ SnapshotManager::SnapshotManager(QMainWi _takeSnapshotAction.setToolTip("Take a snapshot of current plot (F5)"); _takeSnapshotAction.setShortcut(QKeySequence("F5")); - loadSnapshotAction.setToolTip("Load a snapshot from CSV file"); + loadSnapshotAction.setToolTip("Load snapshots from CSV files"); clearAction.setToolTip("Delete all snapshots"); connect(&_takeSnapshotAction, SIGNAL(triggered(bool)), this, SLOT(takeSnapshot())); connect(&clearAction, SIGNAL(triggered(bool)), this, SLOT(clearSnapshots())); connect(&loadSnapshotAction, SIGNAL(triggered(bool)), - this, SLOT(loadSnapshot())); + this, SLOT(loadSnapshots())); updateMenu(); } @@ -61,12 +61,12 @@ void SnapshotManager::takeSnapshot() addSnapshot(snapShot); } -void SnapshotManager::addSnapshot(SnapShot* snapshot) +void SnapshotManager::addSnapshot(SnapShot* snapshot, bool update_menu) { snapshots.append(snapshot); QObject::connect(snapshot, &SnapShot::deleteRequested, this, &SnapshotManager::deleteSnapshot); - updateMenu(); + if (update_menu) updateMenu(); } void SnapshotManager::updateMenu() @@ -103,12 +103,20 @@ void SnapshotManager::deleteSnapshot(Sna updateMenu(); } -void SnapshotManager::loadSnapshot() +void SnapshotManager::loadSnapshots() { - QString fileName = QFileDialog::getOpenFileName(_mainWindow, tr("Load CSV File")); + auto files = QFileDialog::getOpenFileNames(_mainWindow, tr("Load CSV File")); - if (fileName.isNull()) return; // user canceled + for (auto f : files) + { + if (!f.isNull()) loadSnapshotFromFile(f); + } + updateMenu(); +} + +void SnapshotManager::loadSnapshotFromFile(QString fileName) +{ QFile file(fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { @@ -158,7 +166,7 @@ void SnapshotManager::loadSnapshot() auto snapshot = new SnapShot(_mainWindow, QFileInfo(fileName).baseName()); snapshot->data = data; - addSnapshot(snapshot); + addSnapshot(snapshot, false); } QMenu* SnapshotManager::menu() diff --git a/snapshotmanager.h b/snapshotmanager.h --- a/snapshotmanager.h +++ b/snapshotmanager.h @@ -33,14 +33,15 @@ private: QAction loadSnapshotAction; QAction clearAction; - void addSnapshot(SnapShot* snapshot); + void addSnapshot(SnapShot* snapshot, bool update_menu=true); void updateMenu(); private slots: void takeSnapshot(); void clearSnapshots(); void deleteSnapshot(SnapShot* snapshot); - void loadSnapshot(); + void loadSnapshots(); + void loadSnapshotFromFile(QString fileName); }; #endif /* SNAPSHOTMANAGER_H */