]> 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 92634b4247110d1c781d78ccaaa3d188d388914f..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_H
-#define PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
+#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;
@@ -39,8 +45,11 @@ class StoreProgress : public QProgressDialog
        Q_OBJECT
 
 public:
-       StoreProgress(const QString &file_name, const Session &session,
-               QWidget *parent = 0);
+       StoreProgress(const QString &file_name,
+               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();
 
@@ -53,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_H
+#endif // PULSEVIEW_PV_DIALOGS_STOREPROGRESS_HPP