]> 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 19aef14a0e5bcb504813ccee9134b434ec73a217..f355acc69e2f3b6c8ff35eac2a389d2b93aa56e9 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * 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>
 
 
 #include <pv/storesession.hpp>
 
+using std::atomic;
+using std::map;
+using std::pair;
+using std::shared_ptr;
+using std::string;
+
 namespace pv {
 
 class Session;
@@ -40,9 +46,10 @@ class StoreProgress : public QProgressDialog
 
 public:
        StoreProgress(const QString &file_name,
-               const std::shared_ptr<sigrok::OutputFormat> output_format,
-               const std::map<std::string, Glib::VariantBase> &options,
-               const Session &session, QWidget *parent = 0);
+               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);
 
        virtual ~StoreProgress();
 
@@ -55,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