]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/storeprogress.hpp
Session: Fix issue #67 by improving error handling
[pulseview.git] / pv / dialogs / storeprogress.hpp
index 48e1239dd033ba648a8caaa2f2280668f7e5cf56..f355acc69e2f3b6c8ff35eac2a389d2b93aa56e9 100644 (file)
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_HPP
-#define PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_HPP
+#ifndef PULSEVIEW_PV_DIALOGS_STOREPROGRESS_HPP
+#define PULSEVIEW_PV_DIALOGS_STOREPROGRESS_HPP
 
+#include <atomic>
 #include <memory>
 #include <set>
 
@@ -27,6 +28,7 @@
 
 #include <pv/storesession.hpp>
 
+using std::atomic;
 using std::map;
 using std::pair;
 using std::shared_ptr;
@@ -47,8 +49,7 @@ public:
                const shared_ptr<sigrok::OutputFormat> output_format,
                const map<string, Glib::VariantBase> &options,
                const pair<uint64_t, uint64_t> sample_range,
-               const Session &session,
-               QWidget *parent = nullptr);
+               const Session &session, QWidget *parent = nullptr);
 
        virtual ~StoreProgress();
 
@@ -61,12 +62,14 @@ private:
 
 private Q_SLOTS:
        void on_progress_updated();
+       void on_cancel();
 
 private:
        pv::StoreSession session_;
+       atomic<bool> showing_error_;
 };
 
-} // dialogs
-} // pv
+}  // namespace dialogs
+}  // namespace pv
 
-#endif // PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_HPP
+#endif // PULSEVIEW_PV_DIALOGS_STOREPROGRESS_HPP