annotate widgets/CSVFormatDialog.h @ 959:2633a1d73e39

Address #1214, layer import produces wrong layer type. We needed a more principled approach to making sure the format gets updated properly and the dialog elements are consistent (basically separating making the dialog elements consistent from subsequently updating the format). This change should provide that, though there may be gotchas still.
author Chris Cannam
date Tue, 12 May 2015 12:31:37 +0100
parents c9d6cf9c51c8
children fcc1f45f7bd5
rev   line source
Chris@378 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@378 2
Chris@378 3 /*
Chris@378 4 Sonic Visualiser
Chris@378 5 An audio file viewer and annotation editor.
Chris@378 6 Centre for Digital Music, Queen Mary, University of London.
Chris@378 7 This file copyright 2006 Chris Cannam.
Chris@378 8
Chris@378 9 This program is free software; you can redistribute it and/or
Chris@378 10 modify it under the terms of the GNU General Public License as
Chris@378 11 published by the Free Software Foundation; either version 2 of the
Chris@378 12 License, or (at your option) any later version. See the file
Chris@378 13 COPYING included with this distribution for more information.
Chris@378 14 */
Chris@378 15
Chris@378 16 #ifndef _CSV_FORMAT_DIALOG_H_
Chris@378 17 #define _CSV_FORMAT_DIALOG_H_
Chris@378 18
Chris@378 19 #include "data/fileio/CSVFormat.h"
Chris@378 20
Chris@378 21 class QTableWidget;
Chris@378 22 class QComboBox;
Chris@378 23 class QLabel;
Chris@378 24
Chris@378 25 #include <QDialog>
Chris@378 26
Chris@378 27 class CSVFormatDialog : public QDialog
Chris@378 28 {
Chris@378 29 Q_OBJECT
Chris@378 30
Chris@378 31 public:
Chris@581 32 CSVFormatDialog(QWidget *parent, CSVFormat initialFormat,
Chris@581 33 int maxDisplayCols = 5);
Chris@378 34 ~CSVFormatDialog();
Chris@378 35
Chris@378 36 CSVFormat getFormat() const;
Chris@378 37
Chris@378 38 protected slots:
Chris@378 39 void timingTypeChanged(int type);
Chris@378 40 void sampleRateChanged(QString);
Chris@378 41 void windowSizeChanged(QString);
Chris@560 42 void columnPurposeChanged(int purpose);
Chris@959 43
Chris@959 44 void updateFormatFromDialog();
Chris@561 45 void updateModelLabel();
Chris@378 46
Chris@378 47 protected:
Chris@560 48 CSVFormat m_format;
Chris@581 49 int m_maxDisplayCols;
Chris@959 50
Chris@959 51 enum TimingOption {
Chris@959 52 TimingExplicitSeconds = 0,
Chris@959 53 TimingExplicitMsec,
Chris@959 54 TimingExplicitSamples,
Chris@959 55 TimingImplicit
Chris@959 56 };
Chris@959 57 std::map<TimingOption, QString> m_timingLabels;
Chris@959 58 TimingOption m_initialTimingOption;
Chris@959 59
Chris@959 60 void updateComboVisibility();
Chris@959 61 void applyStartTimePurpose();
Chris@959 62 void removeStartTimePurpose();
Chris@378 63
Chris@378 64 QComboBox *m_timingTypeCombo;
Chris@378 65 QLabel *m_sampleRateLabel;
Chris@378 66 QComboBox *m_sampleRateCombo;
Chris@378 67 QLabel *m_windowSizeLabel;
Chris@378 68 QComboBox *m_windowSizeCombo;
Chris@561 69 QLabel *m_modelLabel;
Chris@378 70
Chris@560 71 QList<QComboBox *> m_columnPurposeCombos;
Chris@581 72 int m_fuzzyColumn;
Chris@378 73 };
Chris@378 74
Chris@378 75 #endif