[seiscomp, scanloc] Install, add .gitignore

This commit is contained in:
2025-10-09 15:07:02 +02:00
commit 20f5301bb1
2848 changed files with 1315858 additions and 0 deletions

View File

@ -0,0 +1,485 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_AMPLITUDEVIEW_H
#define SEISCOMP_GUI_AMPLITUDEVIEW_H
#include <seiscomp/gui/datamodel/ui_amplitudeview.h>
#include <seiscomp/gui/core/recordview.h>
#include <seiscomp/gui/core/connectionstatelabel.h>
#include <seiscomp/gui/core/utils.h>
#ifndef Q_MOC_RUN
#include <seiscomp/seismology/ttt.h>
#include <seiscomp/datamodel/databasequery.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/magnitude.h>
#include <seiscomp/datamodel/pick.h>
#include <seiscomp/datamodel/amplitude.h>
#include <seiscomp/processing/amplitudeprocessor.h>
#include <seiscomp/processing/magnitudeprocessor.h>
#include <seiscomp/math/matrix3.h>
#endif
#include <QActionGroup>
#include <QComboBox>
#include <QSpinBox>
#include <QCheckBox>
#include <QMovie>
#include <QSet>
#include <QLabel>
#include <QLineEdit>
namespace Seiscomp {
namespace DataModel {
class SensorLocation;
}
namespace Gui {
class TimeScale;
class AmplitudeView;
namespace PrivateAmplitudeView {
class AmplitudeRecordLabel;
class SC_GUI_API ThreeComponentTrace : public QObject {
Q_OBJECT
public:
ThreeComponentTrace() = default;
~ThreeComponentTrace();
public:
void setTransformationEnabled(bool);
void showProcessedData(bool);
void setRecordWidget(RecordWidget *);
void setFilter(RecordWidget::Filter *, const std::string &filterID);
bool transform(int comp = -1, Record *rec = nullptr);
bool setProcessedData(int comp,
const std::string &networkCode,
const std::string &stationCode,
const std::string &locationCode,
const Core::Time &startTime,
double samplingFrequency,
DoubleArrayPtr data);
void removeProcessedData(int comp);
private slots:
void widgetDestroyed(QObject *obj);
private:
void transformedRecord(int comp, const Record *rec);
public:
// One component
struct Component {
std::string channelCode;
int recordSlot;
RecordSequence *raw{nullptr};
RecordSequence *transformed{nullptr};
RecordSequence *processed{nullptr};
RecordWidget::Filter *filter{nullptr};
RecordStreamThread *thread{nullptr};
};
AmplitudeRecordLabel *label;
Math::Matrix3d transformation;
Component traces[3];
std::string filterID;
RecordWidget *widget{nullptr};
bool enableTransformation{false};
bool showProcessed{false};
};
class SC_GUI_API AmplitudeRecordLabel : public StandardRecordLabel {
Q_OBJECT
public:
AmplitudeRecordLabel(int items=3, QWidget *parent=0, const char* name = 0);
~AmplitudeRecordLabel();
public:
void setControlledItem(RecordViewItem *controlledItem);
RecordViewItem *controlledItem() const;
void setLinkedItem(bool sm);
void enabledExpandButton(RecordViewItem *controlledItem);
void disableExpandButton();
void unlink();
bool isLinkedItem() const;
bool isExpanded() const;
void setLabelColor(QColor);
void removeLabelColor();
void updateProcessingInfo();
protected:
void visibilityChanged(bool);
void resizeEvent(QResizeEvent *e);
void paintEvent(QPaintEvent *e);
public slots:
void extentButtonPressed();
private slots:
void enableExpandable(const Seiscomp::Record*);
private:
bool _isLinkedItem;
bool _isExpanded;
QPushButton *_btnExpand;
RecordViewItem *_linkedItem;
bool _hasLabelColor;
QColor _labelColor;
public:
double latitude;
double longitude;
const DataModel::SensorLocation *location;
Core::TimeWindow timeWindow;
ThreeComponentTrace data;
Math::Matrix3f orientationZNE;
Math::Matrix3f orientationZRT;
Processing::AmplitudeProcessorPtr processor;
Processing::MagnitudeProcessorPtr magnitudeProcessor;
Processing::AmplitudeProcessor::Config initialAmpConfig;
double initialMinSNR;
QString infoText;
bool isError;
bool hasGotData;
bool isEnabledByConfig;
friend class Gui::AmplitudeView;
};
}
class AmplitudeViewPrivate;
class SC_GUI_API AmplitudeView : public QMainWindow {
public:
struct SC_GUI_API Config {
typedef QPair<QString, QString> FilterEntry;
typedef QVector<FilterEntry> FilterList;
typedef QList<QString> StringList;
QString recordURL;
FilterList filters;
bool showAllComponents;
bool loadStrongMotionData;
double allComponentsMaximumStationDistance;
double defaultAddStationsDistance;
bool ignoreDisabledStations;
bool hideStationsWithoutData;
QColor timingQualityLow;
QColor timingQualityMedium;
QColor timingQualityHigh;
Core::TimeSpan preOffset;
Core::TimeSpan postOffset;
Config();
void addFilter(const QString &f, const QString &n) {
filters.push_back(QPair<QString, QString>(f, n));
}
};
Q_OBJECT
public:
//! Default c'tor
AmplitudeView(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~AmplitudeView();
public:
bool setConfig(const Config &c, QString *error = nullptr);
void setDatabase(Seiscomp::DataModel::DatabaseQuery*);
//! Sets an origin and inserts the traces for each arrival
//! in the view.
bool setOrigin(Seiscomp::DataModel::Origin*, const std::string &magType);
bool hasModifiedAmplitudes() const;
void getChangedAmplitudes(ObjectChangeList<DataModel::Amplitude> &list) const;
void stop();
void selectTrace(const Seiscomp::DataModel::WaveformStreamID &wid);
void selectTrace(const std::string &code);
const std::string &currentMagnitudeType() const;
void setStrongMotionCodes(const std::vector<std::string> &codes);
public slots:
void setDefaultDisplay();
void applyAmplitudes();
void changeFilter(int);
void setArrivalState(int arrivalId, bool state);
void setStationEnabled(const std::string& networkCode,
const std::string& stationCode,
bool state);
void setCurrentStation(const std::string& networkCode,
const std::string& stationCode);
signals:
void magnitudeCreated(Seiscomp::DataModel::Magnitude*);
void amplitudesConfirmed(Seiscomp::DataModel::Origin*, QList<Seiscomp::DataModel::AmplitudePtr>);
private slots:
void receivedRecord(Seiscomp::Record*);
void updateTraceInfo(RecordViewItem*, const Seiscomp::Record*);
void onAddedItem(const Seiscomp::Record*, Seiscomp::Gui::RecordViewItem*);
void onSelectedTime(Seiscomp::Core::Time);
void onSelectedTimeRange(Seiscomp::Core::Time, Seiscomp::Core::Time);
void onChangingTimeRange(Seiscomp::Core::Time, Seiscomp::Core::Time);
void onSelectedTime(Seiscomp::Gui::RecordWidget*, Seiscomp::Core::Time);
void setAlignment(Seiscomp::Core::Time);
void acquisitionFinished();
void commit();
void itemSelected(RecordViewItem*, RecordViewItem*);
void updateMainCursor(RecordWidget*,int);
void updateSubCursor(RecordWidget*,int);
void updateItemLabel(RecordViewItem*, char);
void updateItemRecordState(const Seiscomp::Record*);
void updateRecordValue(Seiscomp::Core::Time);
void showTraceScaleToggled(bool);
void showTheoreticalArrivals(bool);
void resetScale();
void resetDefaultTimeWindows();
void limitFilterToZoomTrace(bool);
void toggleFilter();
void addNewFilter(const QString&);
void scaleVisibleAmplitudes();
void changeScale(double, double);
void changeTimeRange(double, double);
void sortAlphabetically();
void sortByDistance();
void showZComponent();
void showNComponent();
void showEComponent();
void alignOnOriginTime();
void alignOnPArrivals();
void pickNone(bool);
void pickAmplitudes(bool);
void scaleAmplUp();
void scaleAmplDown();
void scaleTimeUp();
void scaleTimeDown();
void scaleReset();
void scrollLeft();
void scrollFineLeft();
void scrollRight();
void scrollFineRight();
void createAmplitude();
void setAmplitude();
void confirmAmplitude();
void deleteAmplitude();
void setCurrentRowEnabled(bool);
void setCurrentRowDisabled(bool);
void loadNextStations();
void showUsedStations(bool);
void moveTraces(double offset);
void move(double offset);
void zoom(float factor);
void applyTimeRange(double,double);
void sortByState();
void alignByState();
void componentByState();
void updateLayoutFromState();
void firstConnectionEstablished();
void lastConnectionClosed();
void beginWaitForRecords();
void doWaitForRecords(int value);
void endWaitForRecords();
void showFullscreen(bool);
void recalculateAmplitude();
void recalculateAmplitudes();
void enableAutoScale();
void disableAutoScale();
void zoomSelectionHandleMoved(int,double,Qt::KeyboardModifiers);
void zoomSelectionHandleMoveFinished();
void selectionHandleMoved(int,double,Qt::KeyboardModifiers);
void selectionHandleMoveFinished();
void addStations();
void searchStation();
void search(const QString&);
void nextSearch();
void abortSearchStation();
void openConnectionInfo(const QPoint &);
void ttInterfaceChanged(QString);
void ttTableChanged(QString);
protected:
void showEvent(QShowEvent* event);
RecordLabel* createLabel(RecordViewItem*) const;
private:
void figureOutTravelTimeTable();
void init();
RecordViewItem* addStream(const DataModel::SensorLocation *,
const DataModel::WaveformStreamID& streamID,
const Core::Time &referenceTime,
bool showDisabled);
RecordViewItem* addRawStream(const DataModel::SensorLocation *,
const DataModel::WaveformStreamID& streamID,
const Core::Time &referenceTime);
void queueStream(const DataModel::WaveformStreamID& streamID, int component);
void setupItem(const char comps[3], RecordViewItem*);
bool addTheoreticalArrivals(RecordViewItem*,
const std::string& netCode,
const std::string& staCode,
const std::string& locCode);
bool fillTheoreticalArrivals();
void resetState();
void updateOriginInformation();
void loadNextStations(float distance);
void setCursorText(const QString&);
void setCursorPos(const Seiscomp::Core::Time&, bool always = false);
void setTimeRange(double, double);
void acquireStreams();
bool applyFilter(RecordViewItem *item = nullptr);
//! Makes sure that the time range [tmin, tmax] is visible.
//! When the interval is larger than the visible area
//! the time range will be left aligned.
void ensureVisibility(double &tmin, double &tmax);
void ensureVisibility(const Seiscomp::Core::Time &time, int pixelMargin);
RecordMarker *updatePhaseMarker(Seiscomp::Gui::RecordViewItem*,
const Processing::AmplitudeProcessor *proc,
const Processing::AmplitudeProcessor::Result &res);
void setPhaseMarker(Seiscomp::Gui::RecordWidget*, const Seiscomp::Core::Time&);
void updateCurrentRowState();
void setMarkerState(Seiscomp::Gui::RecordWidget*, bool);
bool setArrivalState(Seiscomp::Gui::RecordWidget* w, int arrivalId, bool state);
void resetAmplitude(RecordViewItem *item, const QString &text, bool enable);
void fetchManualAmplitudes(std::vector<RecordMarker*>* marker = nullptr) const;
void showComponent(char componentCode);
void fetchComponent(char componentCode);
void addAmplitude(Gui::RecordViewItem*,
DataModel::Amplitude*,
DataModel::Pick*, Core::Time reference, int id);
void addFilter(const QString& name, const QString& filter);
void changeFilter(int, bool force);
void closeThreads();
char currentComponent() const;
void searchByText(const QString &text);
void newAmplitudeAvailable(const Processing::AmplitudeProcessor*,
const Processing::AmplitudeProcessor::Result &);
private:
AmplitudeViewPrivate *_d_ptr;
};
}
}
#endif

View File

@ -0,0 +1,179 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_CALCULATEAMPLITUDES_H
#define SEISCOMP_GUI_CALCULATEAMPLITUDES_H
#include <seiscomp/gui/core/recordstreamthread.h>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/timewindow.h>
#include <seiscomp/datamodel/waveformstreamid.h>
#include <seiscomp/processing/amplitudeprocessor.h>
#endif
#include <seiscomp/gui/qt.h>
#include <QDialog>
#include <map>
#include <set>
#include <seiscomp/gui/datamodel/ui_calculateamplitudes.h>
namespace Seiscomp {
class Record;
namespace DataModel {
DEFINE_SMARTPOINTER(Amplitude);
class Pick;
class Origin;
class DatabaseQuery;
}
namespace Gui {
class SC_GUI_API CalculateAmplitudes : public QDialog {
Q_OBJECT
public:
typedef std::pair<DataModel::AmplitudePtr, bool> AmplitudeEntry;
typedef std::multimap<std::string, AmplitudeEntry> PickAmplitudeMap;
typedef PickAmplitudeMap::iterator iterator;
typedef std::pair<iterator, iterator> iterator_range;
typedef std::set<std::string> TypeSet;
public:
CalculateAmplitudes(DataModel::Origin *origin,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~CalculateAmplitudes();
void setOrigin(DataModel::Origin *origin);
void setStreamURL(const std::string& streamURL);
void setDatabase(DataModel::DatabaseQuery *);
void setRecomputeAmplitudes(bool);
void setAmplitudeCache(PickAmplitudeMap *cache);
void setAmplitudeTypes(const TypeSet &types);
public:
int exec();
void done(int r);
bool process();
//! Iterate over the computed/fetched amplitudes.
iterator begin();
iterator end();
//! Returns the amplitudes belonging to a pick that has been
//! fetched or calculated
iterator_range pickAmplitudes(const std::string &pickID);
iterator amplitude(const std::string &amplitudeID);
bool isNewlyCreated(const iterator&) const;
DataModel::AmplitudePtr amplitude(const iterator&) const;
//! Sets the state of an amplitude that stand for 'newly created'
void setState(iterator it, bool);
void setSilentMode(bool f);
private slots:
void receivedRecord(Seiscomp::Record*);
void finishedAcquisition();
void filterStateChanged(int index);
void filterTypeChanged(int index);
private:
void closeAcquisition();
void addProcessor(const std::string &type,
const DataModel::Pick *pick,
const DataModel::SensorLocation *loc,
double dist);
void addProcessor(Processing::AmplitudeProcessor *,
const DataModel::Pick *pick,
int c);
void subscribeData(Processing::AmplitudeProcessor *,
const DataModel::Pick *pick,
int c);
void checkPriority(const AmplitudeEntry &newAmp);
int addProcessingRow(const std::string &streamID, const std::string &type);
void emitAmplitude(const Processing::AmplitudeProcessor *,
const Processing::AmplitudeProcessor::Result &res);
void setError(int row, QString text);
void setInfo(int row, QString text);
void setMessage(int row, QString text);
void setProgress(int row, int progress);
void setValue(int row, double value);
void filterView(int startRow = 0, int cnt = -1);
void updateTitle();
private:
typedef std::vector<Processing::AmplitudeProcessorPtr> ProcessorSlot;
typedef std::map<std::string, ProcessorSlot> ProcessorMap;
typedef std::multimap<Processing::AmplitudeProcessorCPtr, int> TableRowMap;
typedef std::map<std::string, Seiscomp::Util::KeyValuesPtr> ParameterMap;
typedef std::map<std::string, Seiscomp::Processing::StreamPtr> StreamMap;
::Ui::CalculateAmplitudes _ui;
ProcessorMap _processors;
ParameterMap _parameters;
StreamMap _streams;
TableRowMap _rows;
PickAmplitudeMap _amplitudes;
PickAmplitudeMap *_externalAmplitudeCache;
Core::TimeWindow _timeWindow;
RecordStreamThread *_thread;
DataModel::DatabaseQuery *_query;
DataModel::Origin *_origin;
TypeSet _amplitudeTypes;
bool _recomputeAmplitudes;
bool _computeSilently;
};
}
}
#endif

View File

@ -0,0 +1,323 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_EVENTEDIT_H
#define SEISCOMP_GUI_EVENTEDIT_H
#include <QWidget>
#include <string>
#include <list>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/event.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/magnitude.h>
#include <seiscomp/datamodel/focalmechanism.h>
#include <seiscomp/datamodel/momenttensor.h>
#include <seiscomp/datamodel/journalentry.h>
#include <seiscomp/datamodel/databasequery.h>
#endif
#include <seiscomp/gui/qt.h>
#include <seiscomp/gui/datamodel/originsymbol.h>
#include <seiscomp/gui/datamodel/tensorsymbol.h>
#include <seiscomp/gui/map/mapwidget.h>
#include <seiscomp/gui/datamodel/ui_eventedit.h>
namespace Seiscomp {
namespace Gui {
// Extends tensor symbol by label and reference position
class SC_GUI_API ExtTensorSymbol : public TensorSymbol {
public:
ExtTensorSymbol(const Math::Tensor2Sd &t,
const DataModel::FocalMechanism *fm,
Map::Decorator* decorator = nullptr);
~ExtTensorSymbol() {};
public:
void setSelected(bool selected) { _selected = selected; }
void setDrawAgency(bool enabled) { _drawAgency = enabled; }
void setDrawMagnitude(bool enabled) { _drawMagnitude = enabled; }
void setDrawDepth(bool enabled) { _drawDepth = enabled; }
void setReferencePositionEnabled(bool enabled) { _refPosEnabled = enabled; }
void setReferencePosition(const QPointF &refPos) { _refPos = refPos; }
const QString& agencyID() const { return _agency; }
const Core::Time& created() const { return _created; }
protected:
virtual void customDraw(const Map::Canvas *canvas, QPainter &painter);
private:
bool _selected;
bool _refPosEnabled;
QPointF _refPos;
QString _agency;
QString _magnitude;
QString _depth;
Core::Time _created;
bool _drawAgency;
bool _drawMagnitude;
bool _drawDepth;
};
// Adds context menu entries to control drawing of focal mechanism symbols
class SC_GUI_API FMMap : public MapWidget {
Q_OBJECT
public:
FMMap(const MapsDesc &maps, QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags())
: MapWidget(maps, parent, f) { init(); }
FMMap(Map::ImageTree* mapTree, QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags())
: MapWidget(mapTree, parent, f) { init(); }
virtual ~FMMap();
virtual void draw(QPainter&);
void addFM(const DataModel::FocalMechanism *fm);
void clear();
void setCurrentFM(const std::string &id);
void setEvent(const DataModel::Event *event);
protected:
void contextMenuEvent(QContextMenuEvent *e);
private:
void init();
void updateSmartLayout();
private:
typedef std::map<std::string, ExtTensorSymbol*> FMSymbols;
FMSymbols _fmSymbols;
OriginSymbol *_originSymbol;
bool _drawAgency;
bool _drawMagnitude;
bool _drawDepth;
bool _smartLayout;
bool _groupByAgency;
bool _smartLayoutDirty;
QRectF _fmBoundings;
};
// Derived from Observer to receive local object modifications, because
// messages sent by other controls won't be received by the client
// application again.
class SC_GUI_API EventEdit : public QWidget, public DataModel::Observer {
Q_OBJECT
public:
EventEdit(DataModel::DatabaseQuery* reader,
Map::ImageTree *mapTreeOrigin = nullptr,
QWidget *parent = 0);
~EventEdit();
public:
//! Sets the usage of messaging to notify about object changes.
//! When disabled a local EventParameters instance is searched for and
//! all updates and adds are applied to this instance.
void setMessagingEnabled(bool);
signals:
void originSelected(Seiscomp::DataModel::Origin*, Seiscomp::DataModel::Event* = nullptr);
void originMergeRequested(QList<Seiscomp::DataModel::Origin*>);
void fmSelected(Seiscomp::DataModel::FocalMechanism*, Seiscomp::DataModel::Event* = nullptr);
public slots:
void addObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void updateObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void removeObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void setEvent(Seiscomp::DataModel::Event *event, Seiscomp::DataModel::Origin *origin);
void updateOrigin(Seiscomp::DataModel::Origin*);
void updateFM(Seiscomp::DataModel::FocalMechanism*);
void showTab(int);
private slots:
void sortOriginItems(int);
void sortFMItems(int);
void originSelected(QTreeWidgetItem *item, int);
void fmSelected(QTreeWidgetItem *item, int);
void sortMagnitudeItems(int);
void currentTypeChanged(int);
void currentTypeCertaintyChanged(int);
void currentOriginChanged(QTreeWidgetItem*, QTreeWidgetItem*);
void currentFMChanged(QTreeWidgetItem*, QTreeWidgetItem*);
void currentMagnitudeChanged(QTreeWidgetItem*, QTreeWidgetItem*);
void originTreeCustomContextMenu(const QPoint &);
void originTreeHeaderCustomContextMenu(const QPoint &);
void fmTreeCustomContextMenu(const QPoint &);
void fmTreeHeaderCustomContextMenu(const QPoint &);
void magnitudeTreeCustomContextMenu(const QPoint &);
void fixOrigin();
void fixFM();
void releaseOrigin();
void releaseFM();
void fixMagnitudeType();
void releaseMagnitudeType();
void fixMw();
void fixFmMw();
void releaseMw();
void triggerMw();
void evalResultAvailable(const QString &originID,
const QString &className,
const QString &script,
const QString &result);
void evalResultError(const QString &originID,
const QString &className,
const QString &script,
int error);
public:
const DataModel::Event *currentEvent() const;
void handleOrigins(const QList<DataModel::Origin*> &origins);
private:
void init();
void updateContent();
void updateEvent();
void updateOrigin();
void updateMagnitude();
void updateFM();
void updateMT();
void updateJournal();
void resetContent();
void resetOrigin();
void resetMagnitude();
void resetFM();
void resetMT(bool resetCurrent = false);
bool sendJournal(const std::string &action,
const std::string &params);
void addMagnitude(DataModel::Magnitude *mag);
void addJournal(DataModel::JournalEntry *entry);
void updatePreferredOriginIndex();
void updatePreferredMagnitudeIndex();
void updatePreferredFMIndex();
void onObjectAdded(DataModel::Object* parent, DataModel::Object* newChild);
void onObjectRemoved(DataModel::Object* parent, DataModel::Object* oldChild);
void onObjectModified(DataModel::Object* object);
void insertOriginRow(DataModel::Origin *);
void updateOriginRow(int row, DataModel::Origin *);
void updateMagnitudeRow(int row, DataModel::Magnitude *);
void insertFMRow(DataModel::FocalMechanism *);
void updateFMRow(int row, DataModel::FocalMechanism *);
void storeOrigin(DataModel::Origin *);
void storeFM(DataModel::FocalMechanism *);
void storeDerivedOrigin(DataModel::Origin *);
void clearOrigins();
void clearFMs();
void mergeOrigins(const QList<DataModel::Origin*> &origins);
void setFMActivity(bool);
private:
typedef std::list<DataModel::OriginPtr> OriginList;
typedef std::list<DataModel::FocalMechanismPtr> FMList;
struct ProcessColumn {
int pos;
QString script;
};
Ui::EventEdit _ui;
QList<DataModel::EventType> _eventTypesWhitelist;
DataModel::DatabaseQuery* _reader;
Map::ImageTreePtr _mapTreeOrigin;
Map::ImageTreePtr _mapTreeFM;
QLabel *_fmActivity;
QMovie *_fmActivityMovie;
DataModel::EventPtr _currentEvent;
bool _updateLocalEPInstance;
bool _blockObserver;
// origin tab
OriginList _origins;
MapWidget *_originMap;
QRectF _originBoundings;
DataModel::OriginPtr _currentOrigin;
DataModel::MagnitudePtr _currentMagnitude;
int _fixOriginDefaultActionCount;
int _preferredOriginIdx;
int _preferredMagnitudeIdx;
QStringList _originTableHeader;
QVector<int> _originColumnMap;
int _customColumn;
QString _customColumnLabel;
std::string _commentID;
QString _customDefaultText;
QMap<std::string, QColor> _customColorMap;
QVector<ProcessColumn> _scriptColumns;
QHash<QString, int> _scriptColumnMap;
QTreeWidget *_originTree;
// focal mechanism tab
FMList _fms;
OriginList _derivedOrigins;
FMMap *_fmMap;
DataModel::FocalMechanismPtr _currentFM;
DataModel::MomentTensorPtr _currentMT;
int _fixFMDefaultActionCount;
int _preferredFMIdx;
QStringList _fmTableHeader;
QVector<int> _fmColumnMap;
OriginSymbol *_fmPrefOriginSymbol;
};
}
}
#endif

View File

@ -0,0 +1,136 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_EVENTLAYER_H
#define SEISCOMP_GUI_EVENTLAYER_H
#include <seiscomp/gui/map/layer.h>
#include <seiscomp/gui/map/legend.h>
#include <seiscomp/gui/datamodel/originsymbol.h>
#include <QMap>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API EventLayer : public Map::Layer {
Q_OBJECT
// ----------------------------------------------------------------------
// X'truction
// ----------------------------------------------------------------------
public:
//! C'tor
EventLayer(QObject* parent = nullptr);
//! D'tor
~EventLayer();
// ----------------------------------------------------------------------
// Layer interface
// ----------------------------------------------------------------------
public:
virtual void draw(const Map::Canvas *, QPainter &);
virtual void calculateMapPosition(const Map::Canvas *canvas);
virtual bool isInside(const QMouseEvent *event, const QPointF &geoPos);
virtual void handleEnterEvent();
virtual void handleLeaveEvent();
virtual bool filterMouseMoveEvent(QMouseEvent *event, const QPointF &geoPos);
virtual bool filterMouseDoubleClickEvent(QMouseEvent *event, const QPointF &geoPos);
// ----------------------------------------------------------------------
// Slots
// ----------------------------------------------------------------------
public slots:
virtual void clear();
virtual void addEvent(Seiscomp::DataModel::Event*,bool);
virtual void updateEvent(Seiscomp::DataModel::Event*);
virtual void removeEvent(Seiscomp::DataModel::Event*);
// ----------------------------------------------------------------------
// Signals
// ----------------------------------------------------------------------
signals:
void eventHovered(const std::string &eventID);
void eventSelected(const std::string &eventID);
// ----------------------------------------------------------------------
// Protected members
// ----------------------------------------------------------------------
protected:
typedef QMap<std::string, OriginSymbol*> SymbolMap;
SymbolMap _eventSymbols;
mutable std::string _hoverId;
mutable bool _hoverChanged;
};
class EventLegend : public Map::Legend {
Q_OBJECT
// ----------------------------------------------------------------------
// X'truction
// ----------------------------------------------------------------------
public:
//! C'tor
EventLegend(QObject* parent = nullptr);
//! D'tor
~EventLegend();
// ----------------------------------------------------------------------
// Legend interface
// ----------------------------------------------------------------------
public:
virtual void contextResizeEvent(const QSize &size);
virtual void draw(const QRect &rect, QPainter &p);
// ----------------------------------------------------------------------
// Private members
// ----------------------------------------------------------------------
private:
typedef QPair<QString, int> StringWithWidth;
typedef QPair<QColor, StringWithWidth> DepthItem;
typedef QPair<int, StringWithWidth> MagItem;
QVector<DepthItem> _depthItems;
QVector<MagItem> _magItems;
int _depthWidth;
int _magWidth;
int _magHeight;
};
}
}
#endif

View File

@ -0,0 +1,404 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGINLISTVIEW_H
#define SEISCOMP_GUI_ORIGINLISTVIEW_H
#include <seiscomp/gui/core/connectiondialog.h>
#include <seiscomp/gui/core/utils.h>
#include <seiscomp/gui/qt.h>
#ifndef Q_MOC_RUN
#include <seiscomp/core/baseobject.h>
#include <seiscomp/core/timewindow.h>
#include <seiscomp/geo/boundingbox.h>
#endif
#include <QWidget>
// Ui forward declarations
class QTreeWidget;
class QTreeWidgetItem;
namespace Ui {
class EventListView;
class EventListViewRegionFilterDialog;
}
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Event);
DEFINE_SMARTPOINTER(Origin);
DEFINE_SMARTPOINTER(FocalMechanism);
DEFINE_SMARTPOINTER(Pick);
DEFINE_SMARTPOINTER(Station);
DEFINE_SMARTPOINTER(Amplitude);
class OriginReference;
class DatabaseQuery;
class Notifier;
}
namespace Client {
DEFINE_SMARTPOINTER(Connection);
}
namespace Geo {
DEFINE_SMARTPOINTER(GeoFeature);
}
namespace Gui {
namespace Private {
class EventTreeItem;
class OriginTreeItem;
class FocalMechanismTreeItem;
class EventFilterWidget;
}
class CommandMessage;
class SC_GUI_API EventListView : public QWidget {
Q_OBJECT
// ------------------------------------------------------------------
// Public types
// ------------------------------------------------------------------
public:
typedef QMap<QString, DataModel::StationPtr> StationMap;
struct Filter {
Filter(const Seiscomp::Core::TimeWindow& tw = Seiscomp::Core::TimeWindow())
: startTime(tw.startTime()), endTime(tw.endTime()) {}
Seiscomp::Core::Time startTime;
Seiscomp::Core::Time endTime;
OPT(float) minLatitude, maxLatitude;
OPT(float) minLongitude, maxLongitude;
OPT(float) minDepth, maxDepth;
OPT(float) minMagnitude, maxMagnitude;
std::string eventID;
bool isNull() const;
};
// ------------------------------------------------------------------
// X'truction
// ------------------------------------------------------------------
public:
EventListView(Seiscomp::DataModel::DatabaseQuery* reader,
bool withOrigins = true, bool withFocalMechanisms = false,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~EventListView();
public:
void setRelativeMinimumEventTime(const Seiscomp::Core::TimeSpan&);
void add(Seiscomp::DataModel::Event* event,
Seiscomp::DataModel::Origin* origin);
//! Sets the usage of messaging to notify about new objects or updates.
//! When disabled a local EventParameters instance is searched for and
//! all updates and adds are applied to this instance.
void setMessagingEnabled(bool);
void setEventModificationsEnabled(bool);
void setSortingEnabled(bool);
void moveSection(int, int);
void setControlsHidden(bool);
void setCustomControls(QWidget*) const;
void setFMLinkEnabled(bool);
QList<Seiscomp::DataModel::Event*> selectedEvents();
QTreeWidget *eventTree() { return _treeWidget; }
Seiscomp::DataModel::Event *eventFromTreeItem(QTreeWidgetItem *item) const;
int eventCount() const;
//! \since 15.0.0
int visibleEventCount() const;
signals:
void originAdded();
void focalMechanismAdded();
void originSelected(Seiscomp::DataModel::Origin*,
Seiscomp::DataModel::Event* = nullptr);
void originUpdated(Seiscomp::DataModel::Origin*);
void focalMechanismSelected(Seiscomp::DataModel::FocalMechanism*,
Seiscomp::DataModel::Event* = nullptr);
void focalMechanismUpdated(Seiscomp::DataModel::FocalMechanism*);
void eventSelected(Seiscomp::DataModel::Event*);
void eventFMSelected(Seiscomp::DataModel::Event*);
void originReferenceAdded(const std::string &, Seiscomp::DataModel::OriginReference*);
//! Emitted when the event list is cleared
void reset();
void eventAddedToList(Seiscomp::DataModel::Event*, bool fromNotification);
void eventUpdatedInList(Seiscomp::DataModel::Event*);
void eventRemovedFromList(Seiscomp::DataModel::Event*);
//! \since 15.0.0
void visibleEventCountChanged();
//! Emitted when a bigger update process has finished, such as show/hide
//! of a subset of events.
void eventsUpdated();
public slots:
void setAutoSelect(bool);
void onCommand(Seiscomp::Gui::CommandMessage* cmsg);
void messageAvailable(Seiscomp::Core::Message*, Seiscomp::Client::Packet*);
void notifierAvailable(Seiscomp::DataModel::Notifier*);
void updateOrigin(Seiscomp::DataModel::Origin* origin);
void insertOrigin(Seiscomp::DataModel::Origin* origin,
Seiscomp::DataModel::Event* baseEvent,
const Seiscomp::Gui::ObjectChangeList<Seiscomp::DataModel::Pick>&,
const std::vector<Seiscomp::DataModel::AmplitudePtr>&);
void updateFocalMechanism(Seiscomp::DataModel::FocalMechanism *fm);
void insertFocalMechanism(Seiscomp::DataModel::FocalMechanism *fm,
Seiscomp::DataModel::Event *event,
Seiscomp::DataModel::Origin *origin = 0);
void setInterval(const Seiscomp::Core::TimeWindow&);
void selectFirstEnabledEvent();
void selectEvent(int index);
void selectEventID(const std::string& publicID);
/**
* @brief Activates the previous visible event.
* This is similar to selecting the event before (visually below) the
* current event in the list.
*/
void setPreviousEvent();
/**
* @brief Activates the next visible event.
* This is similar to selecting the event after (visually above) the
* current event in the list.
*/
void setNextEvent();
void readFromDatabase();
void readFromDatabase(const Seiscomp::Gui::EventListView::Filter&);
void clear();
void clearDatabaseFilter();
void selectEventFM(const QString &);
protected slots:
void itemSelected(QTreeWidgetItem*,int);
void itemPressed(QTreeWidgetItem*,int);
void copyRowToClipboard();
void readLastDays();
void readInterval();
void onShowOtherEvents(int checked);
void onShowForeignEvents(int checked);
void onHideOutsideRegion(int checked);
void onFilterRegionModeChanged(int mode);
void updateAgencyState();
private slots:
void sortItems(int);
void headerContextMenuRequested(const QPoint &);
void waitDialogDestroyed(QObject *o);
void regionSelectionChanged(int index);
void changeRegion();
void itemEntered(QTreeWidgetItem *item, int);
void itemExpanded(QTreeWidgetItem * item);
void currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
void indicatorResized(const QSize &size);
void evalResultAvailable(const QString &publicID,
const QString &className,
const QString &script,
const QString &result);
void evalResultError(const QString &publicID,
const QString &className,
const QString &script,
int error);
protected:
bool eventFilter(QObject *obj, QEvent *event);
private:
void initTree();
Private::EventTreeItem* addEvent(Seiscomp::DataModel::Event*, bool fromNotification);
Private::OriginTreeItem* addOrigin(Seiscomp::DataModel::Origin*, QTreeWidgetItem* parent, bool highPriority);
Private::FocalMechanismTreeItem* addFocalMechanism(Seiscomp::DataModel::FocalMechanism*, QTreeWidgetItem* parent);
Private::EventTreeItem* findEvent(const std::string&);
Private::OriginTreeItem* findOrigin(const std::string&);
Private::FocalMechanismTreeItem* findFocalMechanism(const std::string&);
void removeExpiredEvents();
void updateHideState();
bool updateHideState(QTreeWidgetItem *item);
void updateOriginProcessColumns(QTreeWidgetItem *item, bool highPriority);
void updateEventProcessColumns(QTreeWidgetItem *item, bool highPriority);
bool sendJournalAndWait(const std::string &objectID,
const std::string &action,
const std::string &params, const char *group);
void loadItem(QTreeWidgetItem*);
public:
struct ProcessColumn {
int pos;
QString script;
};
struct ItemConfig {
ItemConfig() : createFMLink(false) {}
QColor disabledColor;
bool createFMLink;
QStringList header;
QVector<int> columnMap;
int customColumn;
std::string originCommentID;
std::string eventCommentID;
QString customDefaultText;
QMap<std::string, QColor> customColorMap;
QVector<ProcessColumn> originScriptColumns;
QVector<ProcessColumn> eventScriptColumns;
QSet<int> eventScriptPositions;
QHash<QString, int> originScriptColumnMap;
QHash<QString, int> eventScriptColumnMap;
QSet<int> hiddenEventTypes;
QSet<QString> preferredAgencies;
};
struct Region {
QString name;
Geo::GeoBoundingBox bbox;
const Geo::GeoFeature *poly{nullptr};
};
typedef QList<Region> FilterRegions;
private:
::Ui::EventListView *_ui;
Private::EventFilterWidget *_filterWidget;
ItemConfig _itemConfig;
FilterRegions _filterRegions;
QTreeWidget *_treeWidget;
QTreeWidgetItem *_unassociatedEventItem;
QWidget *_commandWaitDialog;
QMovie *_busyIndicator;
QLabel *_busyIndicatorLabel;
//StationMap _associatedStations;
Seiscomp::DataModel::DatabaseQuery *_reader;
Seiscomp::Core::TimeSpan _timeAgo;
Filter _filter;
bool _autoSelect;
bool _withOrigins;
bool _withFocalMechanisms;
bool _updateLocalEPInstance;
//bool _withComments;
bool _blockSelection;
bool _blockRemovingOfExpiredEvents;
bool _blockCountSignal;
bool _hideOtherEvents;
bool _hideForeignEvents;
bool _hideOutsideRegion;
bool _checkEventAgency;
bool _showOnlyLatestPerAgency;
int _regionIndex;
mutable int _visibleEventCount;
};
class SC_GUI_API EventListViewRegionFilterDialog : public QDialog {
Q_OBJECT
// ------------------------------------------------------------------
// X'truction
// ------------------------------------------------------------------
public:
EventListViewRegionFilterDialog(QWidget *parent, EventListView::Region *target,
EventListView::FilterRegions *regionList);
~EventListViewRegionFilterDialog();
// ------------------------------------------------------------------
// QDialog interface
// ------------------------------------------------------------------
public:
virtual void accept();
// ------------------------------------------------------------------
// Slots
// ------------------------------------------------------------------
private slots:
void regionSelectionChanged(const QString &);
void showError(const QString &);
// ------------------------------------------------------------------
// Private members
// ------------------------------------------------------------------
private:
::Ui::EventListViewRegionFilterDialog *_ui;
EventListView::Region *_target;
EventListView::FilterRegions *_regionList;
};
}
}
#endif

View File

@ -0,0 +1,204 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_EVENTSUMMARY_H
#define SEISCOMP_GUI_EVENTSUMMARY_H
#include <string>
#include <set>
#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/event.h>
#include <seiscomp/datamodel/focalmechanism.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/magnitude.h>
#include <seiscomp/datamodel/databasequery.h>
#endif
#include <seiscomp/gui/core/gradient.h>
#include <seiscomp/gui/map/mapwidget.h>
#include <seiscomp/gui/qt.h>
namespace Ui {
class EventSummary;
}
namespace Seiscomp {
namespace Gui {
class OriginSymbol;
class SC_GUI_API EventSummaryMagnitudeRow : public QHBoxLayout {
Q_OBJECT
public:
EventSummaryMagnitudeRow(const std::string &type,
QWidget *parent = 0);
void reset();
void select(bool);
void set(const std::string &id, const double *value, int stationCount);
signals:
void clicked(const std::string &magID);
protected:
bool eventFilter(QObject *obj, QEvent *event);
private:
void setMagnitude(const double *value, int stationCount);
public:
std::string magnitudeID;
QLabel *label;
QLabel *value;
};
class SC_GUI_API EventSummary : public QWidget {
Q_OBJECT
public:
EventSummary(const MapsDesc &maps,
DataModel::DatabaseQuery* reader,
QWidget *parent = 0);
EventSummary(Map::ImageTree* mapTree,
DataModel::DatabaseQuery* reader,
QWidget * parent = 0);
~EventSummary();
public:
DataModel::Event *currentEvent() const;
DataModel::Origin *currentOrigin() const;
//! Negative value switches to default behaviour
void setDefaultEventRadius(double radius);
void setSecondDisplayUpToMaxMinutes(int);
void addVisibleMagnitudeType(const std::string &mag);
QList<QFrame*> separators() const;
signals:
void selected(Seiscomp::DataModel::Origin*, Seiscomp::DataModel::Event*);
void magnitudeSelected(const std::string &magnitudeID);
public slots:
void addObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void updateObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void removeObject(const QString& parentID, Seiscomp::DataModel::Object* obj);
void updateOrigin(Seiscomp::DataModel::Origin* origin);
void setEvent(Seiscomp::DataModel::Event *event,
Seiscomp::DataModel::Origin* org = nullptr,
bool fixed = false);
void showOrigin(Seiscomp::DataModel::Origin*);
public:
QPushButton *exportButton() const;
MapWidget *mapWidget() const;
private slots:
void updateTimeAgo();
void magnitudeClicked(const std::string &magnitudeID);
private:
void init();
void setTextContrast(bool);
void mapClicked();
void setFocalMechanism(DataModel::FocalMechanism*);
void setOrigin(DataModel::Origin *origin);
void setOrigin(const std::string &originID);
void setMagnitude(const DataModel::Magnitude *mag);
void selectMagnitude(const std::string &type);
void resetContent();
void resetMagnitudes();
void updateContent();
void updateMagnitude();
void updateOrigin();
void updateAlert();
private:
struct AlertSettings {
AlertSettings() : textSize(-1) {}
bool empty() { return commentId.empty(); }
std::string commentId;
std::vector<std::string > commentBlacklist;
int textSize;
Gui::Gradient gradient;
};
private:
::Ui::EventSummary *_ui;
Map::ImageTreePtr _maptree;
MapWidget *_map;
QTimer _timeAgo;
DataModel::DatabaseQuery* _reader;
DataModel::EventPtr _currentEvent;
DataModel::OriginPtr _currentOrigin;
DataModel::MagnitudeCPtr _currentMag;
DataModel::FocalMechanismPtr _currentFocalMechanism;
OriginSymbol *_symbol;
QBoxLayout *_magnitudeRows;
typedef std::set<std::string> MagnitudeTypes;
typedef std::map<std::string, EventSummaryMagnitudeRow*> MagnitudeList;
MagnitudeTypes _visibleMagnitudes;
MagnitudeList _magnitudes;
AlertSettings _alertSettings;
bool _alertActive;
bool _fixedView;
bool _showComment;
double _defaultEventRadius;
int _maxMinutesSecondDisplay;
friend class EventSummaryMap;
};
}
}
#endif

View File

@ -0,0 +1,334 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_EVENTSUMMARYVIEW_H
#define SEISCOMP_GUI_EVENTSUMMARYVIEW_H
#include <QtGui>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/event.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/focalmechanism.h>
#include <seiscomp/datamodel/types.h>
#include <seiscomp/gui/datamodel/originlocatormap.h>
#include <seiscomp/gui/map/mapwidget.h>
#include <seiscomp/datamodel/databasequery.h>
#include <seiscomp/datamodel/magnitude.h>
#endif
#include <seiscomp/gui/core/application.h>
#include <QProcess>
namespace Ui {
class EventSummaryView;
class Hypocenter;
}
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Pick);
class DatabaseReader;
}
namespace Gui {
class MagList;
class TensorSymbol;
//!
//! magnitude-type-quality display line
//!
class SC_GUI_API MagRow : public QWidget
{
Q_OBJECT
public:
MagRow(DataModel::Magnitude *netMag, bool bold, QWidget *parent = 0);
MagRow(const std::string &type, bool bold, QWidget *parent = 0);
~MagRow();
void setMagnitude(DataModel::Magnitude*);
DataModel::Magnitude *magnitude() const { return _netMag.get(); }
void setReferenceMagnitude(DataModel::Magnitude*);
DataModel::Magnitude *referenceMagnitude() const { return _netMagReference.get(); }
void setReferenceMagnitudeVisible(bool);
void setReferenceMagnitudeColor(QColor);
void setVisible(bool);
void updateContent();
private:
void init();
void setBold(bool);
private:
QHBoxLayout *_rowsLayout;
QLabel *_type;
QLabel *_magnitude;
QLabel *_magnitudeReference;
QLabel *_quality;
QLabel *_qualityReference;
QLabel *_stdev;
QLabel *_stdevReference;
DataModel::MagnitudePtr _netMag;
DataModel::MagnitudePtr _netMagReference;
bool _header;
bool _referenceMagVisible;
friend class MagList;
};
//!
//! widget for displaying the magnitude-type-quality lines
//!
class SC_GUI_API MagList : public QWidget
{
Q_OBJECT
public:
MagList(QWidget *parent = 0);
~MagList();
void addMag(DataModel::Magnitude* netMag, bool bold, bool visible);
void addMag(const std::string& type, bool bold, bool visible);
void updateMag(DataModel::Magnitude* netMag);
void updateReferenceMag(DataModel::Magnitude* netMag);
void selectMagnitude(const char *id);
void reset();
void clear();
void showAll();
void hideTypes(const std::set<std::string>&);
void setReferenceMagnitudesVisible(bool);
void setReferenceMagnitudesColor(QColor);
int rowCount() { return _magRows.size(); }
MagRow *rowAt(int i) const { return _magRows[i]; }
MagRow* row(const std::string& type) const;
// QSize sizeHint() const;
private:
QWidget* _widget;
QGridLayout* _mainLayout;
QVector<MagRow*> _magRows;
MagRow* _header;
QColor _referenceColor;
bool _space;
bool _referenceMagsVisible;
};
class SC_GUI_API EventSummaryView : public QWidget
{
Q_OBJECT
public:
EventSummaryView(const MapsDesc &maps,
Seiscomp::DataModel::DatabaseQuery* reader,
QWidget *parent = 0);
EventSummaryView(Map::ImageTree* mapTree,
Seiscomp::DataModel::DatabaseQuery* reader,
QWidget * parent = 0);
~EventSummaryView();
void setToolButtonText(const QString&);
void setScript0(const std::string&, bool oldStyle, bool exportMap);
void setScript1(const std::string&, bool oldStyle, bool exportMap);
Seiscomp::DataModel::Event* currentEvent() const;
Seiscomp::DataModel::Origin* currentOrigin() const;
Seiscomp::DataModel::Magnitude* currentMagnitude() const;
OriginLocatorMap* map() const;
bool ignoreOtherEvents() const;
public slots:
void addObject(const QString &parentID, Seiscomp::DataModel::Object *obj);
void updateObject(const QString &parentID, Seiscomp::DataModel::Object *obj);
void removeObject(const QString &parentID, Seiscomp::DataModel::Object *obj);
void showEvent(Seiscomp::DataModel::Event* event, Seiscomp::DataModel::Origin* org = nullptr);
//! Shows an origin that maybe does not belong to an event yet
void showOrigin(Seiscomp::DataModel::Origin* origin);
void updateTimeAgoLabel();
void updateEvent();
void deferredMapUpdate();
void setWaveformPropagation(bool);
void drawStations(bool);
void drawBeachballs(bool);
void drawFullTensor(bool);
void setAutoSelect(bool);
void setInteractiveEnabled(bool);
private slots:
void runScript0();
void runScript1();
void switchToAutomaticPressed();
void showVisibleMagnitudes(bool);
void setLastAutomaticOriginColor(QColor c);
void setLastAutomaticFMColor(QColor c);
void setLastAutomaticOriginVisible(bool);
void showOnlyMostRecentEvent(bool);
void ignoreOtherEvents(bool);
signals:
void toolButtonPressed();
void requestNonFakeEvent();
void newNofifier(Seiscomp::DataModel::Notifier *n);
void showInStatusbar(QString, int);
private:
void init();
void runScript(const QString&, const QString& name, bool oldStyle,
bool exportMap);
void processEventMsg(DataModel::Event* event, DataModel::Origin* org = nullptr);
bool setOriginParameter(std::string OriginID);
void setPrefMagnitudeParameter(std::string MaginitudeID);
void setOrigin(DataModel::Origin* origin);
void setAutomaticOrigin(DataModel::Origin* origin);
void setAutomaticFM(DataModel::FocalMechanism* fm);
void setMagnitudeParameter(DataModel::Origin* origin);
void setAutomaticMagnitudeParameter(DataModel::Origin* origin);
void setFMParametersVisible(bool);
void updateEventComment();
void updateEventName();
void showFocalMechanism(DataModel::FocalMechanism *fm, int ofsX, int ofsY,
QColor borderColor);
void setFM(DataModel::FocalMechanism *fm);
void clearMagnitudeParameter();
void clearPrefMagnitudeParameter();
void clearOriginParameter();
void clearAutomaticOriginParameter();
void clearAutomaticFMParameter();
void clearMap();
void updateMap(bool realignView);
void updateMagnitude(DataModel::Magnitude *mag);
bool updateLastAutomaticOrigin(DataModel::Origin *origin);
bool updateLastAutomaticFM(DataModel::FocalMechanism *fm);
// for calculating map boundaries from max sta dist
DataModel::Pick* getPick(DataModel::Arrival* arrival);
DataModel::Station* getStation(DataModel::Pick* pick);
void calcMinMax(double& latMin, double& latMax, double& lonMin, double& lonMax );
std::string description(DataModel::Origin*) const;
bool checkAndDisplay(DataModel::Event *);
void calcOriginDistances();
private:
Ui::EventSummaryView *_ui;
Ui::Hypocenter *_uiHypocenter;
MagList *_magList;
Seiscomp::DataModel::EventPtr _currentEvent;
Seiscomp::DataModel::EventPtr _lastEvent;
Seiscomp::DataModel::OriginPtr _currentOrigin;
Seiscomp::DataModel::OriginPtr _lastAutomaticOrigin;
Seiscomp::DataModel::FocalMechanismPtr _currentFocalMechanism;
Seiscomp::DataModel::FocalMechanismPtr _lastAutomaticFocalMechanism;
Seiscomp::DataModel::MagnitudePtr _currentNetMag;
Seiscomp::Gui::Map::ImageTreePtr _maptree;
OriginLocatorMap *_map;
Seiscomp::DataModel::DatabaseQuery* _reader;
QColor _automaticOriginColor;
QColor _automaticFMColor;
QColor _automaticOriginEnabledColor;
QColor _automaticOriginDisabledColor;
bool _interactive;
bool _autoSelect;
bool _displayFocMechs;
bool _recenterMap;
bool _recenterMapConfig;
bool _ignoreOtherEvents;
bool _showLastAutomaticSolution;
bool _showOnlyMostRecentEvent;
bool _enableFullTensor;
int _maxMinutesSecondDisplay;
QTimer* _mapTimer;
double _maxHotspotDist;
double _minHotspotPopulation;
std::string _hotSpotDescriptionPattern;
std::string _script0;
std::string _script1;
bool _scriptStyle0;
bool _scriptStyle1;
bool _scriptExportMap0;
bool _scriptExportMap1;
std::string _displayCommentID;
std::string _displayCommentDefault;
bool _displayComment;
std::string _displayEventCommentID;
std::string _displayEventCommentDefault;
bool _displayEventComment;
//typedef std::vector< std::pair<Seiscomp::DataModel::StationPtr, double> > StationDistances;
//StationDistances _originStations;
size_t _originStationsIndex;
std::set<std::string> _visibleMagnitudes;
};
}
}
#endif // of EVENTSUMMARYVIEW_H

View File

@ -0,0 +1,66 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_IMPORTPICKS_H
#define SEISCOMP_GUI_IMPORTPICKS_H
#include <QtGui>
#include <seiscomp/gui/datamodel/ui_importpicks.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API ImportPicksDialog : public QDialog {
Q_OBJECT
public:
enum Selection {
LatestOrigin,
LatestAutomaticOrigin,
MaxPhaseOrigin,
AllOrigins
};
public:
ImportPicksDialog(QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
Selection currentSelection() const;
bool importAllPicks() const;
bool importAllPhases() const;
bool preferTargetPhases() const;
private:
::Ui::ImportPicks _ui;
static Selection _lastSelection;
};
}
}
#endif

View File

@ -0,0 +1,126 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_INVENTORYLISTVIEW_H
#define SEISCOMP_GUI_INVENTORYLISTVIEW_H
#include <QTreeWidget>
#include <QStack>
#include <QMap>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/object.h>
#endif
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace DataModel {
class Network;
class Station;
class Stream;
class Component;
}
namespace Gui {
class SC_GUI_API InventoryListView : public QTreeWidget,
public DataModel::Visitor {
Q_OBJECT
public:
InventoryListView(QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags());
bool selectStream(const QString& streamID, bool);
void selectStreams(const QString&, bool);
QStringList selectedStreams() const;
void expandNetworks();
protected:
bool visit(DataModel::PublicObject*);
void visit(DataModel::Object*);
void finished();
signals:
void streamChanged(QString, bool);
public slots:
void clearSelection();
void setNonSelectedHidden(bool);
private slots:
void onItemChanged(QTreeWidgetItem *item, int column);
void onItemPressed(QTreeWidgetItem *item, int column);
private:
void updateChildSelection(QTreeWidgetItem *item);
void updateParentSelection(QTreeWidgetItem *item);
void setNonSelectedHidden(QTreeWidgetItem*, bool);
template <typename T>
QTreeWidgetItem* add(T*);
template <typename T>
QTreeWidgetItem* add(QTreeWidgetItem* parent, T*);
template <typename T>
QTreeWidgetItem* create(T* object);
QTreeWidgetItem* createDefaultItem();
QTreeWidgetItem* insert(DataModel::Object*);
void setRow(QTreeWidgetItem*,
const QString& first,
const QString& second = "",
const QString& third = "");
void notifyAboutStateChange(const QString& streamID, bool state, bool hightPriority = false);
private:
QStack<QTreeWidgetItem*> _itemStack;
typedef QMap<QChar, QTreeWidgetItem*> ComponentMap;
typedef QMap<QString, ComponentMap> StreamMap;
typedef QMap<QString, StreamMap> StationMap;
typedef QMap<QString, StationMap> NetworkMap;
typedef QMap<QString, QTreeWidgetItem*> StreamItems;
StreamItems _streamItems;
QTreeWidgetItem* _highestChangedItem;
};
}
}
#endif

View File

@ -0,0 +1,60 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_LOCATORSETTINGS_H
#define SEISCOMP_GUI_LOCATORSETTINGS_H
#include <QtGui>
#include <seiscomp/gui/datamodel/ui_locatorsettings.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API LocatorSettings : public QDialog {
Q_OBJECT
public:
typedef QList< QPair<QString,QString> > ContentList;
public:
LocatorSettings(QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
public:
void addRow(const QString &name, const QString &value);
void lastRowAdded();
ContentList content() const;
private:
::Ui::LocatorSettings _ui;
};
}
}
#endif

View File

@ -0,0 +1,137 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_MAGLISTVIEW_H
#define SEISCOMP_GUI_MAGLISTVIEW_H
#include <QtGui>
#include <seiscomp/gui/core/connectiondialog.h>
#include <seiscomp/gui/datamodel/ui_maglistview.h>
#ifndef Q_MOC_RUN
#include <seiscomp/core/baseobject.h>
#include <seiscomp/datamodel/magnitude.h>
#endif
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Event);
DEFINE_SMARTPOINTER(Origin);
DEFINE_SMARTPOINTER(Pick);
DEFINE_SMARTPOINTER(Station);
class DatabaseQuery;
class Notifier;
}
namespace Client {
DEFINE_SMARTPOINTER(Connection);
}
namespace Gui {
class SC_GUI_API MagListView : public QWidget {
Q_OBJECT
// ------------------------------------------------------------------
// Public types
// ------------------------------------------------------------------
public:
typedef QMap<QString, DataModel::StationPtr> StationMap;
// ------------------------------------------------------------------
// X'truction
// ------------------------------------------------------------------
public:
MagListView(Seiscomp::DataModel::DatabaseQuery* reader,
bool withOrigins = true,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~MagListView();
signals:
void originAdded();
void netMagAdded();
void netMagSelected(Seiscomp::DataModel::Magnitude*,
Seiscomp::DataModel::Origin* = nullptr,
Seiscomp::DataModel::Event* = nullptr);
void originSelected(Seiscomp::DataModel::Origin*,
Seiscomp::DataModel::Event* = nullptr);
void eventSelected(Seiscomp::DataModel::Event*);
void originUpdated(Seiscomp::DataModel::Origin*);
public slots:
void setAutoSelect(bool);
void messageAvailable(Seiscomp::Core::Message*);
void notifierAvailable(Seiscomp::DataModel::Notifier*);
void expandEventItem(QTreeWidgetItem* eventItem, int col);
void expandOriginItem(QTreeWidgetItem* originItem, int col);
protected slots:
void itemSelected(QTreeWidgetItem*,int);
void readFromDatabase();
void clear();
//! HACK
void onShowAll();
private:
void initTree();
QTreeWidgetItem* addEvent(Seiscomp::DataModel::Event*);
QTreeWidgetItem* addOrigin(Seiscomp::DataModel::Origin*, bool bold, QTreeWidgetItem* parent = nullptr);
QTreeWidgetItem* addNetMag(Seiscomp::DataModel::Magnitude*, bool bold, QTreeWidgetItem* parent = nullptr);
QTreeWidgetItem* findEvent(const std::string&);
QTreeWidgetItem* findOrigin(const std::string&);
QTreeWidgetItem* findNetMag(const std::string&);
void readPicks(Seiscomp::DataModel::Origin*);
private:
::Ui::OriginListView _ui;
QTreeWidgetItem* _unassociatedEventItem;
QVector<DataModel::PickPtr> _associatedPicks;
//StationMap _associatedStations;
Seiscomp::DataModel::DatabaseQuery* _reader;
bool _autoSelect;
bool _withOrigins;
bool _blockSelection;
bool _readLock;
};
}
}
#endif

View File

@ -0,0 +1,121 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_MAGNITUDEMAP_H
#define SEISCOMP_GUI_MAGNITUDEMAP_H
#include <QtGui>
#include <seiscomp/gui/map/mapwidget.h>
#ifndef Q_MOC_RUN
#include <seiscomp/core/baseobject.h>
#endif
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Origin);
DEFINE_SMARTPOINTER(Magnitude);
class StationMagnitude;
DEFINE_SMARTPOINTER(Station);
}
namespace Gui {
namespace Map {
class AnnotationLayer;
}
class SC_GUI_API MagnitudeMap : public MapWidget {
Q_OBJECT
public:
MagnitudeMap(const MapsDesc &maps,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
MagnitudeMap(Map::ImageTree* mapTree,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~MagnitudeMap();
//! Sets the maximum distance for stations to be displayed
//! if they are not part of the origin
void setStationsMaxDist(double);
//! Make the station state changeable interactively
//! The default is TRUE
void setStationsInteractive(bool);
void setOrigin(DataModel::Origin* o);
void setMagnitude(DataModel::Magnitude* nm);
void setMagnitudeState(int id, bool state);
void setStationState(const std::string& code, bool state);
void addStationMagnitude(DataModel::StationMagnitude* staMag, int index);
public slots:
void setDrawStations(bool);
void setDrawStationAnnotations(bool);
signals:
void clickedMagnitude(int id);
void clickedStation(const std::string &net, const std::string &code);
void magnitudeChanged(int id, bool state);
void stationChanged(const std::string &code, bool state);
protected:
void mousePressEvent(QMouseEvent*);
void mouseDoubleClickEvent(QMouseEvent*);
private:
void addMagnitude(int stationId, int magId);
void setStationState(int i, bool state);
void setStationResidual(int i, double residual);
void setMagnitudeResidual(int id, double residual);
int findStation(const std::string& stationCode) const;
int addStation(const std::string &net, const std::string &sta);
void sortSymbols();
private:
DataModel::OriginPtr _origin;
Map::Layer *_symbolLayer;
Map::AnnotationLayer *_annotationLayer;
DataModel::MagnitudePtr _magnitude;
QVector<int> _magnitudes;
std::map<std::string, int> _stationCodes;
int _hoverId{-1};
double _stationsMaxDist{-1};
};
}
}
#endif

View File

@ -0,0 +1,353 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_MAGNITUDEVIEW_H
#define SEISCOMP_GUI_MAGNITUDEVIEW_H
#include <QtGui>
#include <seiscomp/gui/datamodel/ui_magnitudeview.h>
#include <seiscomp/gui/datamodel/ui_magnitudeview_filter.h>
#include <seiscomp/gui/datamodel/magnitudemap.h>
#include <seiscomp/gui/map/mapwidget.h>
#include <seiscomp/gui/core/diagramwidget.h>
#include <seiscomp/gui/datamodel/amplitudeview.h>
#include <seiscomp/gui/datamodel/calculateamplitudes.h>
#ifndef Q_MOC_RUN
#include <seiscomp/core/baseobject.h>
#include <seiscomp/datamodel/databasequery.h>
#include <seiscomp/datamodel/publicobjectcache.h>
#include <seiscomp/datamodel/event.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/arrival.h>
#include <seiscomp/datamodel/pick.h>
#include <seiscomp/datamodel/station.h>
#include <seiscomp/datamodel/magnitude.h>
#include <seiscomp/datamodel/stationmagnitude.h>
#include <seiscomp/datamodel/amplitude.h>
#endif
#include <set>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API StationMagnitudeModel : public QAbstractTableModel {
Q_OBJECT
public:
StationMagnitudeModel(DataModel::Origin *origin = nullptr,
DataModel::Magnitude *netMag = nullptr,
DataModel::PublicObjectCache *cache = nullptr,
QObject *parent = 0);
void setOrigin(DataModel::Origin *origin,
DataModel::Magnitude *netMag);
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex &index) const;
bool setData(const QModelIndex &index, const QVariant &value,
int role = Qt::EditRole);
bool insertRow(int row, const QModelIndex & parent = QModelIndex());
bool useMagnitude(int row) const;
private:
DataModel::PublicObjectCache *_cache;
DataModel::Origin *_origin;
DataModel::Magnitude *_magnitude;
QVector<Qt::CheckState> _used;
QVector<double> _distance;
QStringList _header;
int _rowCount;
};
class ModelAbstractRowFilter {
public:
MAKEENUM(
CompareOperation,
EVALUES(
Undefined,
Less,
LessEqual,
Equal,
NotEqual,
Greater,
GreaterEqual,
Like
),
ENAMES(
"None",
"Less",
"Less or equal",
"Equal",
"Not equal",
"Greater",
"Greater or equal",
"Like"
)
);
public:
virtual ~ModelAbstractRowFilter() {}
virtual int column() const = 0;
virtual CompareOperation operation() const = 0;
virtual QString value() const = 0;
virtual QString toString() = 0;
virtual bool fromString(const QString &) = 0;
virtual bool passes(QAbstractItemModel *model, int row) = 0;
};
class SC_GUI_API MagnitudeRowFilter : public QDialog {
Q_OBJECT
public:
MagnitudeRowFilter(ModelAbstractRowFilter **filter, QWidget * parent = 0,
Qt::WindowFlags f = Qt::WindowFlags());
virtual void accept();
private slots:
void addFilter();
void removeFilter();
private:
struct Row {
QLayout *layout;
QComboBox *column;
QComboBox *operation;
QLineEdit *value;
};
Row &addRow();
void popRow();
::Ui::MagnitudeRowFilter _ui;
QVector<Row> _rows;
ModelAbstractRowFilter **_filter;
};
class SC_GUI_API MagnitudeView : public QWidget {
Q_OBJECT
public:
typedef std::set<std::pair<DataModel::AmplitudePtr, bool> > AmplitudeSet;
typedef std::set<std::string> StringSet;
public:
MagnitudeView(const MapsDesc &maps,
Seiscomp::DataModel::DatabaseQuery* reader,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
MagnitudeView(Map::ImageTree* mapTree,
Seiscomp::DataModel::DatabaseQuery* reader,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~MagnitudeView();
void setDrawGridLines(bool);
void setComputeMagnitudesSilently(bool);
void setMagnitudeTypeSelectionEnabled(bool);
void setAmplitudeConfig(const AmplitudeView::Config &config);
const AmplitudeView::Config &amplitudeConfig() const;
MapWidget* map() const;
void setPreferredMagnitudeID(const std::string &);
bool setDefaultAggregationType(const std::string &);
signals:
void localAmplitudesAvailable(Seiscomp::DataModel::Origin*, AmplitudeSet*, StringSet*);
void magnitudeUpdated(const QString &, Seiscomp::DataModel::Object*);
void magnitudeRemoved(const QString &, Seiscomp::DataModel::Object*);
void magnitudeSelected(const QString &, Seiscomp::DataModel::Magnitude*);
void requestClose();
public slots:
void drawStations(bool);
void drawStationAnnotations(bool);
void setOrigin(Seiscomp::DataModel::Origin *, Seiscomp::DataModel::Event *);
bool showMagnitude(const std::string &);
void addObject(const QString& parentID, Seiscomp::DataModel::Object*);
void removeObject(const QString& parentID, Seiscomp::DataModel::Object*);
void updateObject(const QString& parentID, Seiscomp::DataModel::Object*);
//! Enables/disabled the rework of magnitudes, default is true
void setReadOnly(bool);
void disableRework();
void computeMagnitudes();
void reload();
private slots:
void objectDestroyed(QObject*);
void magnitudeCreated(Seiscomp::DataModel::Magnitude*);
void amplitudesConfirmed(Seiscomp::DataModel::Origin*, QList<Seiscomp::DataModel::AmplitudePtr>);
void recalculateMagnitude();
void selectChannels();
void selectChannelsWithEdit();
void activateChannels();
void deactivateChannels();
void openWaveforms();
void magnitudesSelected();
void hoverMagnitude(int id);
void selectMagnitude(int id);
void selectStation(const std::string &net, const std::string &code);
void adjustMagnitudeRect(QRectF&);
void tableStationMagnitudesContextMenuRequested(const QPoint &pos);
void tableStationMagnitudesHeaderContextMenuRequested(const QPoint &pos);
void changeMagnitudeState(int id, bool state);
void changeStationState(int id, bool state);
void dataChanged(const QModelIndex&, const QModelIndex&);
void selectPreferredMagnitude(int idx);
void tabStateChanged(int state);
void updateContent();
void closeTab(int idx);
void debugCreateMagRef();
void evaluationStatusChanged(int index);
void magnitudeCommentChanged(QString);
protected:
void closeEvent(QCloseEvent *e);
private:
void init(Seiscomp::DataModel::DatabaseQuery* reader);
void setContent();
void resetContent();
int addMagnitude(Seiscomp::DataModel::Magnitude*);
void addStationMagnitude(Seiscomp::DataModel::StationMagnitude*, int);
void updateMagnitudeLabels();
void updateMinMaxMagnitude();
// for calculating map boundaries from max sta dist
DataModel::Station* getStation(DataModel::Pick* p);
DataModel::Pick* getPick(DataModel::Arrival* a);
void calcMinMax(Seiscomp::DataModel::Origin*, double& latMin, double& latMax, double& lonMin, double& lonMax );
//! returns distance to origin
double addStationMagnitude(DataModel::Magnitude* magnitude,
DataModel::StationMagnitude* stationMagnitude,
double weight);
struct MagnitudeStatus {
MagnitudeStatus(const std::string &t,
const DataModel::Amplitude *a,
Processing::MagnitudeProcessor::Status s,
bool isWarning = false)
: type(t), amplitude(a), status(s), warning(isWarning) {}
std::string type;
const DataModel::Amplitude *amplitude;
Processing::MagnitudeProcessor::Status status;
bool warning;
};
typedef QList<MagnitudeStatus> MagnitudeStats;
DataModel::Magnitude *
computeStationMagnitudes(const std::string &magType,
QList<DataModel::AmplitudePtr> *amps,
MagnitudeStats *errors = nullptr);
void computeMagnitude(DataModel::Magnitude *magnitude, const std::string &aggType);
bool editSelectionFilter();
void resetPreferredMagnitudeSelection();
private:
typedef CalculateAmplitudes::AmplitudeEntry AmplitudeEntry;
typedef CalculateAmplitudes::PickAmplitudeMap PickAmplitudeMap;
typedef Processing::MagnitudeProcessorFactory::ServiceNames AvailableTypes;
Seiscomp::DataModel::DatabaseQuery *_reader;
::Ui::MagnitudeView *_ui;
Map::ImageTreePtr _maptree;
MagnitudeMap *_map;
DiagramWidget *_stamagnitudes;
StationMagnitudeModel _modelStationMagnitudes;
QSortFilterProxyModel *_modelStationMagnitudesProxy;
AmplitudeView::Config _amplitudeConfig;
AmplitudeView *_amplitudeView;
QTabBar *_tabMagnitudes;
DataModel::OriginPtr _origin;
DataModel::EventPtr _event;
DataModel::MagnitudePtr _netMag;
double _minStationMagnitude;
double _maxStationMagnitude;
DataModel::PublicObjectRingBuffer _objCache;
bool _computeMagnitudesSilently;
bool _enableMagnitudeTypeSelection;
OPT(std::string) _defaultMagnitudeAggregation;
PickAmplitudeMap _amplitudes;
std::string _preferredMagnitudeID;
std::vector<std::string> _magnitudeTypes;
std::vector<std::string> _currentMagnitudeTypes;
AvailableTypes *_availableMagTypes;
};
}
}
#endif

View File

@ -0,0 +1,107 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGINDIALOG_H
#define SEISCOMP_GUI_ORIGINDIALOG_H
#include <ctime>
#include <QDialog>
#include <QDateTime>
#include <QString>
#include <seiscomp/gui/datamodel/ui_origindialog.h>
#include <seiscomp/core/datetime.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API OriginDialog : public QDialog
{
Q_OBJECT
public:
static void SetDefaultDepth(double depth);
static double DefaultDepth();
OriginDialog(QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
OriginDialog(double lon, double lat,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
OriginDialog(double lon, double lat, double dep,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~OriginDialog() override;
time_t getTime_t() const;
void setTime(Core::Time t);
double longitude() const;
void setLongitude(double lon);
double latitude() const;
void setLatitude(double lat);
double depth() const;
void setDepth(double dep);
// enable advanced group box
void enableAdvancedOptions(bool enable = true, bool checkable = true);
bool advanced() const;
void setAdvanced(bool checked);
int phaseCount() const;
void setPhaseCount(int count);
double magValue() const;
void setMagValue(double mag);
QString magType() const;
void setMagType(const QString &type);
void setMagTypes(const QStringList &types);
void setSendButtonText(const QString &text);
void loadSettings(const QString &groupName = "OriginDialog");
void saveSettings(const QString &groupName = "OriginDialog");
protected slots:
void onTextEdited(const QString &text);
private:
void init(double lon, double lat, double dep);
private:
static double _defaultDepth;
Ui::OriginDialog _ui;
QStringList _magTypes;
};
} // namespace Gui
} // namespace Seiscomp
#endif

View File

@ -0,0 +1,132 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGINLOCATORMAP_H
#define SEISCOMP_GUI_ORIGINLOCATORMAP_H
#include <QtGui>
#include <seiscomp/gui/map/mapwidget.h>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/origin.h>
#endif
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Station);
}
namespace Gui {
namespace Map {
class AnnotationLayer;
}
class OriginSymbol;
class SC_GUI_API OriginLocatorMap : public MapWidget {
Q_OBJECT
public:
OriginLocatorMap(const MapsDesc &maps,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
OriginLocatorMap(Map::ImageTree* mapTree,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
//! Sets the maximum distance for stations to be displayed
//! if they are not part of the origin
void setStationsMaxDist(double);
//! Make the station state changeable interactively
//! The default is TRUE
void setStationsInteractive(bool);
void setOrigin(DataModel::Origin* o);
bool waveformPropagation() const;
bool drawStations() const;
void setArrivalState(int id, bool state);
void setStationState(const std::string& code, bool state);
void setOriginCreationEnabled(bool enable);
void addLayer(Map::Layer *layer);
public slots:
void setDrawStations(bool);
void setDrawStationLines(bool);
void setDrawStationAnnotations(bool);
void setWaveformPropagation(bool);
signals:
#ifndef Q_MOC_RUN
// This is in particular for Qt 4 where signals are protected by default.
public:
#endif
void hoverArrival(int id);
signals:
void clickedArrival(int id);
void arrivalChanged(int id, bool state);
void clickedStation(const std::string &net, const std::string &code);
void stationChanged(const std::string &stationCode, bool state);
void artificialOriginRequested(const QPointF &epicenter,
const QPoint &dialogPos);
protected:
void mousePressEvent(QMouseEvent*);
void mouseDoubleClickEvent(QMouseEvent*);
void contextMenuEvent(QContextMenuEvent*);
private:
void addArrival();
void setStationState(int i, bool state);
private:
DataModel::OriginPtr _origin;
OriginSymbol *_originSymbol;
Map::Layer *_symbolLayer;
Map::AnnotationLayer *_annotationLayer;
bool _waveformPropagation{false};
bool _enabledCreateOrigin{false};
QVector<int> _arrivals;
std::map<std::string, int> _stationCodes;
double _stationsMaxDist{-1};
};
}
}
#endif

View File

@ -0,0 +1,488 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGINLOCATORVIEW_H
#define SEISCOMP_GUI_ORIGINLOCATORVIEW_H
#include <seiscomp/gui/core/diagramwidget.h>
#include <seiscomp/gui/datamodel/originlocatormap.h>
#include <seiscomp/gui/datamodel/pickerview.h>
#include <seiscomp/gui/map/mapwidget.h>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/databasequery.h>
#include <seiscomp/datamodel/pick.h>
#include <seiscomp/datamodel/amplitude.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/seismology/locatorinterface.h>
#include <seiscomp/core/baseobject.h>
#endif
#include <QAbstractItemModel>
#include <QStyledItemDelegate>
#include <set>
// Ui forward declarations
class QTreeWidgetItem;
namespace Ui {
class OriginLocatorView;
class FilterSettings;
}
namespace Seiscomp {
namespace DataModel {
DEFINE_SMARTPOINTER(Event);
DEFINE_SMARTPOINTER(Arrival);
DEFINE_SMARTPOINTER(Station);
}
namespace Gui {
class PickerView;
class RecordStreamThread;
class SC_GUI_API ArrivalModel : public QAbstractTableModel {
Q_OBJECT
public:
struct Filter {
virtual ~Filter() {}
virtual bool accepts(int row, int idx, DataModel::Arrival *) const = 0;
};
public:
ArrivalModel(DataModel::Origin* origin = nullptr, QObject *parent = 0);
public:
void setDisabledForeground(QColor c) { _disabledForeground = c; }
void setOrigin(DataModel::Origin* origin);
DataModel::Origin *origin() const;
void setRowColor(int row, const QColor&);
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex &index) const;
bool setData(const QModelIndex &index, const QVariant &value,
int role = Qt::EditRole);
void setRowEnabled(int row, bool enabled);
bool isRowEnabled(int row) const;
void setTakeOffAngle(int row, const QVariant &val);
bool useNoArrivals() const;
bool useArrival(int row) const;
void setUseArrival(int row, DataModel::Arrival *arrival);
bool backazimuthUsed(int row) const;
void setBackazimuthUsed(int row, bool enabled);
bool horizontalSlownessUsed(int row) const;
void setHorizontalSlownessUsed(int row, bool enabled);
bool timeUsed(int row) const;
void setTimeUsed(int row, bool enabled);
int usedFlags(int row) const;
private:
static const int F_DISABLED = 1 << 31;
DataModel::Origin *_origin;
QVector<int> _used;
QVector<int> _hoverState;
QVector<QVariant> _takeOffs;
QVector<bool> _enableState;
QVector<QVariant> _backgroundColors;
QColor _disabledForeground;
QStringList _header;
std::string _pickTimeFormat;
};
class SC_GUI_API ArrivalDelegate : public QStyledItemDelegate {
Q_OBJECT
public:
ArrivalDelegate(QWidget *parent = 0);
public:
void paint(QPainter * painter, const QStyleOptionViewItem & option,
const QModelIndex & index) const;
bool editorEvent(QEvent *event, QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index);
QSize sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const;
public slots:
bool helpEvent(QHelpEvent *event, QAbstractItemView *view,
const QStyleOptionViewItem &option,
const QModelIndex &index);
private:
int _flags[3];
QString _labels[3];
int _margin;
int _spacing;
int _statusRectWidth;
mutable int _labelWidth;
};
class SC_GUI_API DiagramFilterSettingsDialog : public QDialog {
Q_OBJECT
public:
struct Filter {
virtual ~Filter() {};
virtual bool accepts(DiagramWidget *w, int id) = 0;
};
public:
DiagramFilterSettingsDialog(QWidget *parent = 0);
~DiagramFilterSettingsDialog();
Filter *createFilter() const;
private slots:
void filterChanged(int);
private:
::Ui::FilterSettings *_ui;
};
class SC_GUI_API OriginLocatorPlot : public DiagramWidget {
Q_OBJECT
public:
OriginLocatorPlot(QWidget *parent = 0);
signals:
void focalMechanismCommitted(bool withMT = false,
QPoint pos = QPoint(0, 0));
protected slots:
virtual void linkClicked();
virtual void commitButtonClicked(bool);
virtual void commitWithMTTriggered(bool);
};
class OriginLocatorViewPrivate;
class SC_GUI_API OriginLocatorView : public QWidget {
Q_OBJECT
public:
struct SC_GUI_API Config {
double reductionVelocityP;
bool drawMapLines;
bool drawGridLines;
bool computeMissingTakeOffAngles;
double defaultEventRadius;
Config();
};
typedef std::vector<DataModel::PickPtr> PickList;
typedef std::set<std::pair<DataModel::PickPtr, bool> > PickSet;
typedef std::set<std::pair<DataModel::AmplitudePtr, bool> > AmplitudeSet;
typedef std::set<std::string> StringSet;
typedef std::map<std::string, DataModel::PickPtr> PickMap;
public:
OriginLocatorView(const MapsDesc &maps,
const PickerView::Config &pickerConfig,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
OriginLocatorView(Map::ImageTree* mapTree,
const PickerView::Config &pickerConfig,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~OriginLocatorView();
signals:
void waveformsRequested();
void eventListRequested();
void locatorRequested();
void computeMagnitudesRequested();
void baseEventSet();
void baseEventRejected();
//! When a new origin has been set inside the view this signal
//! is emitted. The bool flag signal whether a new origin has been
//! created or not
void newOriginSet(Seiscomp::DataModel::Origin *newOrigin,
Seiscomp::DataModel::Event *event, bool localOrigin,
bool relocated);
void updatedOrigin(Seiscomp::DataModel::Origin* origin);
void committedOrigin(Seiscomp::DataModel::Origin* origin,
Seiscomp::DataModel::Event* baseEvent,
const Seiscomp::Gui::ObjectChangeList<Seiscomp::DataModel::Pick>& changedPicks,
const std::vector<Seiscomp::DataModel::AmplitudePtr>& newAmplitudes);
void committedFocalMechanism(Seiscomp::DataModel::FocalMechanism *fm,
Seiscomp::DataModel::Event *event,
Seiscomp::DataModel::Origin *origin);
void artificalOriginCreated(Seiscomp::DataModel::Origin*);
void magnitudesAdded(Seiscomp::DataModel::Origin*, Seiscomp::DataModel::Event*);
void undoStateChanged(bool undoState);
void redoStateChanged(bool undoState);
void requestRaise();
public slots:
void clear();
void addObject(const QString& parentID, Seiscomp::DataModel::Object*);
void updateObject(const QString& parentID, Seiscomp::DataModel::Object*);
bool setOrigin(Seiscomp::DataModel::Origin*, Seiscomp::DataModel::Event*, bool = false);
void addPick(Seiscomp::DataModel::Pick*);
void setStationEnabled(const std::string& networkCode,
const std::string& stationCode,
bool state);
void setMagnitudeCalculationEnabled(bool);
void computeMagnitudes();
void magnitudeRemoved(const QString &, Seiscomp::DataModel::Object*);
void magnitudeSelected(const QString &, Seiscomp::DataModel::Magnitude*);
void mergeOrigins(QList<Seiscomp::DataModel::Origin*>);
void setLocalAmplitudes(Seiscomp::DataModel::Origin*, AmplitudeSet*, StringSet*);
void drawStations(bool);
void drawStationAnnotations(bool);
bool undo();
bool redo();
void createArtificialOrigin();
void createArtificialOrigin(const QPointF &epicenter,
const QPoint &dialogPos);
// ----------------------------------------------------------------------
// Public interface
// ----------------------------------------------------------------------
public:
// Scripts
void setScript0(const std::string&);
void setScript1(const std::string&);
// Configuration
void setConfig(const Config&);
const Config &config() const;
/**
* @brief Adds a pick to the internal pick list which will be
* sent along with the origin at commit.
* @param pick The pick to be managed with a smart pointer.
*/
void addLocalPick(Seiscomp::DataModel::Pick *pick);
// Manual picker configuration
void setPickerConfig(const PickerView::Config&);
const PickerView::Config& pickerConfig() const;
// Misc
void setDatabase(Seiscomp::DataModel::DatabaseQuery*);
void setPickerView(PickerView*);
OriginLocatorMap* map() const;
protected:
void closeEvent(QCloseEvent *e);
private slots:
void editComment();
void setOrigin(Seiscomp::DataModel::Origin*);
void setCreatedOrigin(Seiscomp::DataModel::Origin*);
void hoverArrival(int);
void selectArrival(int);
void selectStation(const std::string &, const std::string &);
void residualsSelected();
void adjustResidualsRect(QRectF&);
void selectRow(const QModelIndex&, const QModelIndex&);
void plotTabChanged(int);
void zoomMap();
void mapKeyPressed(QKeyEvent*);
void objectDestroyed(QObject*);
void importArrivals();
void showWaveforms();
void relocate();
void commit(bool associate = true, bool ignoreDefaultEventType = false);
void customCommit();
void commitFocalMechanism(bool withMT = false, QPoint pos = QPoint(0, 0));
void commitWithOptions();
void tableArrivalsContextMenuRequested(const QPoint &pos);
void tableArrivalsHeaderContextMenuRequested(const QPoint &pos);
void dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);
void changeArrival(int,bool);
void changeArrivalEnableState(int,bool);
void artificialOriginRequested(double lat, double lon, double depth, Seiscomp::Core::Time time);
void updateBlinkState();
void locatorProfileChanged(const QString &text);
void locatorChanged(const QString &text);
void configureLocator();
void changePlotFilter();
void runScript0();
void runScript1();
void evalResultAvailable(const QString &originID,
const QString &className,
const QString &script,
const QString &result);
void evalResultError(const QString &originID,
const QString &className,
const QString &script,
int error);
void evaluateOrigin(Seiscomp::DataModel::Origin *org,
Seiscomp::DataModel::Event *event,
bool localOrigin, bool relocated);
private:
struct PhasePickWithFlags {
DataModel::PickPtr pick;
std::string phase;
int flags;
};
void init();
void createArtificialOrigin(const QPointF &epicenter,
double depth,
Seiscomp::Core::Time time,
const QPoint &dialogPos);
void updateOrigin(Seiscomp::DataModel::Origin*);
void updateContent();
void addArrival(int idx, DataModel::Arrival* arrival, const Core::Time &, const QColor&);
void readPicks(Seiscomp::DataModel::Origin*);
bool merge(void *sourcePhases, void *targetPhases, bool checkDuplicates,
bool associateOnly, bool failOnNoNewPhases);
void relocate(std::vector<PhasePickWithFlags>* additionalPicks,
bool associateOnly = false,
bool replaceExistingPhases = false);
void relocate(DataModel::Origin *org,
std::vector<PhasePickWithFlags>* additionalPicks,
bool associateOnly = false,
bool replaceExistingPhases = false,
bool useArrivalTable = true);
void applyNewOrigin(DataModel::Origin *org, bool relocated);
void pushUndo();
void startBlinking(QColor, QWidget *);
void stopBlinking();
void runScript(const QString &script, const QString &name);
void selectArrivals(const ArrivalModel::Filter *f);
void selectArrivals(const ArrivalModel::Filter &f);
void setPlotFilter(DiagramFilterSettingsDialog::Filter *f);
void applyPlotFilter();
bool sendJournal(const std::string &objectID,
const std::string &action,
const std::string &params);
DataModel::Notifier *
createJournal(const std::string &objectID, const std::string &action,
const std::string &params);
void setBaseEvent(DataModel::Event *e);
void resetCustomLabels();
void deleteSelectedArrivals();
void activateSelectedArrivals(Seiscomp::Seismology::LocatorInterface::Flags flags,
bool activate);
void renameArrivals();
void commitWithOptions(const void *options);
private:
OriginLocatorViewPrivate *_d_ptr;
};
inline DataModel::Origin *ArrivalModel::origin() const {
return _origin;
}
inline int ArrivalModel::usedFlags(int row) const {
return _used[row];
}
}
}
#endif

View File

@ -0,0 +1,141 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGIN_H
#define SEISCOMP_GUI_ORIGIN_H
#include <vector>
#include <string>
#include <QPolygon>
#include <QColor>
#include <QPoint>
#include <QPainter>
#include <seiscomp/gui/qt.h>
#include <seiscomp/gui/map/mapsymbol.h>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/origin.h>
#endif
namespace Seiscomp {
namespace Gui {
class Canvas;
class SC_GUI_API OriginSymbol : public Map::Symbol {
public:
OriginSymbol(Map::Decorator* decorator = nullptr);
OriginSymbol(double latitude,
double longitude,
double depth = 0,
Map::Decorator* decorator = nullptr);
public:
void setPreferredMagnitudeValue(double magnitudeValue);
double preferredMagnitudeValue() const;
/**
* @brief Sets the symbol depth and updates the color according
* to scheme.colors.originSymbol.depth.gradient.
* @param depth The depth in km
*/
void setDepth(double depth);
double depth() const;
/**
* @brief Sets the symbol color and therefore overrides what
* a prior call to setDepth has been set. This method was
* added with API version 11.
* @param c The desired color
*/
void setColor(const QColor &c);
/**
* @brief Returns the current color. This method was added with API
* version 11.
* @return The current symbol color.
*/
const QColor &color() const;
/**
* @brief Sets the symbols fill color if filling is enabled. This
* overrides the default fill color set with setDepth.
* This method was added with API version 11.
* @param c The fill color
*/
void setFillColor(const QColor &c);
/**
* @brief Returns the current fill color.
* This method was added with API version 11.
* @return The fill color
*/
const QColor &fillColor() const;
void setFilled(bool val);
bool isFilled() const;
bool isInside(int x, int y) const override;
/**
* @brief Returns the size of an origin symbol in pixel depending on
* the magnitude.
* @param mag The input magnitude
* @return The size in pixels
*/
static int getSize(double mag);
protected:
void customDraw(const Map::Canvas *canvas, QPainter &painter) override;
void init();
void updateSize();
void depthColorCoding();
protected:
QColor _color;
QColor _fillColor;
bool _filled{false};
double _magnitude{0};
double _depth{0};
};
inline const QColor &OriginSymbol::color() const {
return _color;
}
inline const QColor &OriginSymbol::fillColor() const {
return _fillColor;
}
} // namespace Gui
} // namespace Seiscomp
#endif

View File

@ -0,0 +1,52 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_ORIGINTIME_H
#define SEISCOMP_GUI_ORIGINTIME_H
#include <QtGui>
#include <seiscomp/gui/datamodel/ui_origintime.h>
#include <seiscomp/core/datetime.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API OriginTimeDialog : public QDialog {
public:
OriginTimeDialog(double lon, double lat,
Seiscomp::Core::Time time,
QWidget * parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
Seiscomp::Core::Time time() const;
private:
Ui::OriginTimeDialog _ui;
};
}
}
#endif

View File

@ -0,0 +1,109 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_WAVEFORMSETTINGS_H
#define SEISCOMP_GUI_WAVEFORMSETTINGS_H
#include <seiscomp/gui/datamodel/ui_pickersettings.h>
#include <seiscomp/gui/datamodel/pickerview.h>
#include <seiscomp/gui/datamodel/amplitudeview.h>
#include <seiscomp/gui/datamodel/originlocatorview.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API PickerSettings : public QDialog {
Q_OBJECT
public:
PickerSettings(const OriginLocatorView::Config &c1,
const PickerView::Config &c2,
const AmplitudeView::Config &c3,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~PickerSettings();
public:
const Ui::PickerSettings &ui() const { return _ui; }
OriginLocatorView::Config locatorConfig() const;
PickerView::Config pickerConfig() const;
AmplitudeView::Config amplitudeConfig() const;
void setSaveEnabled(bool);
bool saveSettings() const;
int exec();
signals:
void saveRequested();
private slots:
void save();
void adjustPreTime(int);
void adjustPostTime(int);
void adjustLength(int);
void adjustPreSlider(const QTime&);
void adjustPostSlider(const QTime&);
void adjustLengthSlider(const QTime&);
void adjustAmplitudePreTime(int);
void adjustAmplitudePostTime(int);
void adjustAmplitudePreSlider(const QTime&);
void adjustAmplitudePostSlider(const QTime&);
void addPickFilter();
void removePickFilter();
void movePickFilterUp();
void movePickFilterDown();
void addAmplitudeFilter();
void removeAmplitudeFilter();
void moveAmplitudeFilterUp();
void moveAmplitudeFilterDown();
private:
Ui::PickerSettings _ui;
bool _saveSettings;
QAbstractListModel *_pickerFilterModel;
QAbstractListModel *_amplitudeFilterModel;
mutable OriginLocatorView::Config _locatorConfig;
mutable PickerView::Config _pickerConfig;
mutable AmplitudeView::Config _amplitudeConfig;
};
}
}
#endif

View File

@ -0,0 +1,633 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_PICKERVIEW_H
#define SEISCOMP_GUI_PICKERVIEW_H
#include <seiscomp/gui/core/recordview.h>
#include <seiscomp/gui/core/connectionstatelabel.h>
#include <seiscomp/gui/core/utils.h>
#ifndef Q_MOC_RUN
#include <seiscomp/io/recordfilter/iirfilter.h>
#include <seiscomp/datamodel/databasequery.h>
#include <seiscomp/datamodel/origin.h>
#include <seiscomp/datamodel/pick.h>
#include <seiscomp/seismology/ttt.h>
#include <seiscomp/math/matrix3.h>
#include <seiscomp/processing/picker.h>
#endif
#include <QActionGroup>
#include <QComboBox>
#include <QPushButton>
#include <QSpinBox>
#include <QMovie>
#include <QSet>
#include <QLabel>
#include <QLineEdit>
#include <QMainWindow>
namespace Seiscomp {
namespace DataModel {
class SensorLocation;
}
namespace Processing {
DEFINE_SMARTPOINTER(AmplitudeProcessor);
}
namespace Gui {
class TimeScale;
class PickerView;
class SpectrumWidget;
namespace PrivatePickerView {
class SC_GUI_API ThreeComponentTrace : public QObject {
Q_OBJECT
public:
ThreeComponentTrace() = default;
~ThreeComponentTrace();
public:
void setTransformationEnabled(bool enable);
void setL2Horizontals(bool);
void setPassThrough(int component, bool enable);
void setRecordWidget(RecordWidget *);
void reset();
void setFilter(RecordWidget::Filter *);
bool transform(int comp = -1, Seiscomp::Record *rec = nullptr);
private slots:
void widgetDestroyed(QObject *obj);
public:
typedef IO::RecordIIRFilter<double> Filter;
// One component
struct Component {
std::string channelCode;
RecordSequence *raw{nullptr};
RecordSequence *transformed{nullptr};
Filter filter{nullptr};
RecordStreamThread *thread{nullptr};
bool passthrough{false};
};
Math::Matrix3d transformation;
Component traces[3];
RecordWidget *widget{nullptr};
bool enableTransformation{false};
bool enableL2Horizontals{false};
};
class SC_GUI_API PickerRecordLabel : public StandardRecordLabel {
Q_OBJECT
public:
PickerRecordLabel(int items=3, QWidget *parent=0, const char* name = 0);
~PickerRecordLabel();
public:
void setConfigState(bool);
void setControlledItem(RecordViewItem *controlledItem);
RecordViewItem *controlledItem() const;
void setLinkedItem(bool sm);
void enabledExpandButton(RecordViewItem *controlledItem);
void disableExpandButton();
void unlink();
bool isLinkedItem() const;
bool isExpanded() const;
void setLabelColor(QColor);
void removeLabelColor();
protected:
void visibilityChanged(bool);
void resizeEvent(QResizeEvent *e);
void paintEvent(QPaintEvent *e);
public slots:
void extentButtonPressed();
private slots:
void enableExpandable(const Seiscomp::Record*);
private:
bool _isLinkedItem;
bool _isExpanded;
QPushButton *_btnExpand;
RecordViewItem *_linkedItem;
bool _hasLabelColor;
QColor _labelColor;
private:
double latitude;
double longitude;
int unit;
QString gainUnit[3];
ThreeComponentTrace data;
Math::Matrix3d orientationZNE;
Math::Matrix3d orientationZRT;
bool hasGotData;
bool isEnabledByConfig;
friend class Gui::PickerView;
};
}
class SC_GUI_API PickerMarkerActionPlugin : public QObject {
public:
virtual ~PickerMarkerActionPlugin() {}
public:
//! Returns the action title as added to the context menu
virtual QString title() const = 0;
virtual bool init(const DataModel::WaveformStreamID &wid,
const Core::Time &time) = 0;
//! Feed a record of the current stream (including all available
//! components)
virtual void setRecords(RecordSequence *seqZ, RecordSequence *seq1, RecordSequence *seq2) = 0;
//! Finalize the action, no more data will be fed a this point
virtual void finalize() = 0;
};
DEFINE_INTERFACE_FACTORY(PickerMarkerActionPlugin);
class SpectrumViewBase : public QWidget {
Q_OBJECT
public:
SpectrumViewBase(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags())
: QWidget(parent, f) {}
protected slots:
virtual void modeChanged(int) = 0;
virtual void windowFuncChanged(int) = 0;
virtual void windowWidthChanged(double) = 0;
};
class PickerViewPrivate;
class SC_GUI_API PickerView : public QMainWindow {
public:
struct SC_GUI_API Config {
typedef QPair<QString, QString> FilterEntry;
typedef QVector<FilterEntry> FilterList;
typedef QList<QString> StringList;
typedef StringList PhaseList;
struct PhaseGroup {
QString name;
QList<PhaseGroup> childs;
};
typedef QList<PhaseGroup> GroupList;
typedef QPair<float, float> Uncertainty;
typedef QVector<Uncertainty> UncertaintyList;
typedef QMap<QString, UncertaintyList> UncertaintyProfiles;
typedef QPair<QString, QString> ChannelMapItem;
typedef QMultiMap<QString, ChannelMapItem> ChannelMap;
QString recordURL;
ChannelMap channelMap;
FilterList filters;
QString integrationFilter;
bool onlyApplyIntegrationFilterOnce;
GroupList phaseGroups;
PhaseList favouritePhases;
PhaseList showPhases;
UncertaintyProfiles uncertaintyProfiles;
QString uncertaintyProfile;
bool showCrossHair;
bool ignoreUnconfiguredStations;
bool ignoreDisabledStations;
bool loadAllComponents;
bool loadAllPicks;
bool loadStrongMotionData;
bool usePerStreamTimeWindows;
bool limitStations;
bool showAllComponents;
bool hideStationsWithoutData;
bool hideDisabledStations;
int limitStationCount;
double allComponentsMaximumStationDistance;
double defaultAddStationsDistance;
double defaultDepth;
bool removeAutomaticStationPicks;
bool removeAutomaticPicks;
Core::TimeSpan preOffset;
Core::TimeSpan postOffset;
Core::TimeSpan minimumTimeWindow;
double alignmentPosition;
double offsetWindowStart;
double offsetWindowEnd;
QColor timingQualityLow;
QColor timingQualityMedium;
QColor timingQualityHigh;
OPT(double) repickerSignalStart;
OPT(double) repickerSignalEnd;
Config();
void addFilter(const QString &f, const QString &n) {
filters.push_back(QPair<QString, QString>(f, n));
}
void addShowPhase(const QString &ph) {
showPhases.push_back(ph);
}
void getPickPhases(StringList &phases) const;
void getPickPhases(StringList &phases, const QList<PhaseGroup> &groups) const;
};
Q_OBJECT
public:
//! Default c'tor
//! The mode defaults to ringbuffer with a buffer
//! size of 30 minutes
PickerView(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
//! Creates a RecordView using a time window
PickerView(const Seiscomp::Core::TimeWindow&,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
//! Creates a RecordView using a timespan and
//! a ringbuffer
PickerView(const Seiscomp::Core::TimeSpan&,
QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~PickerView();
public:
bool setConfig(const Config &c, QString *error = nullptr);
void setDatabase(Seiscomp::DataModel::DatabaseQuery*);
void activateFilter(int index);
void setBroadBandCodes(const std::vector<std::string> &codes);
void setStrongMotionCodes(const std::vector<std::string> &codes);
void setAuxiliaryChannels(const std::vector<std::string> &patterns,
double minimumDistance, double maximumDistance);
//! Sets an origin an inserts the traces for each arrival
//! in the view.
bool setOrigin(Seiscomp::DataModel::Origin*,
double relTimeWindowStart,
double relTimeWindowEnd);
//! Sets an origin and keeps all available traces
bool setOrigin(Seiscomp::DataModel::Origin*);
bool hasModifiedPicks() const;
void getChangedPicks(ObjectChangeList<DataModel::Pick> &list) const;
void stop();
void selectTrace(const std::string &, const std::string &);
void selectTrace(const Seiscomp::DataModel::WaveformStreamID &wid);
signals:
void requestArtificialOrigin(double lat, double lon, double depth, Seiscomp::Core::Time time);
void originCreated(Seiscomp::DataModel::Origin*);
void arrivalChanged(int id, bool state);
void arrivalEnableStateChanged(int id, bool state);
public slots:
void setDefaultDisplay();
void applyPicks();
void changeFilter(int);
void changeRotation(int);
void changeUnit(int);
void setArrivalState(int arrivalId, bool state);
void addPick(Seiscomp::DataModel::Pick* pick);
void setStationEnabled(const std::string& networkCode,
const std::string& stationCode,
bool state);
private slots:
void receivedRecord(Seiscomp::Record*);
void updateTraceInfo(RecordViewItem*, const Seiscomp::Record*);
void currentMarkerChanged(Seiscomp::Gui::RecordMarker*);
void apply(QAction*);
void setPickPhase(QAction*);
void alignOnPhase(QAction*);
void onAddedItem(const Seiscomp::Record*, Seiscomp::Gui::RecordViewItem*);
void onSelectedTime(Seiscomp::Core::Time);
void onSelectedTime(Seiscomp::Gui::RecordWidget*, Seiscomp::Core::Time);
void setAlignment(Seiscomp::Core::Time);
void acquisitionFinished();
void handleAcquisitionError(const QString &msg);
void relocate();
void modifyOrigin();
void updateTheoreticalArrivals();
void itemSelected(RecordViewItem*, RecordViewItem*);
void updateMainCursor(RecordWidget*,int);
void updateSubCursor(RecordWidget*,int);
void updateItemLabel(RecordViewItem*, char);
void updateItemRecordState(const Seiscomp::Record*);
void updateRecordValue(Seiscomp::Core::Time);
void showTraceScaleToggled(bool);
void specLogToggled(bool);
void specSmoothToggled(bool);
void specMinValue(double);
void specMaxValue(double);
void specTimeWindow(double);
void specApply();
void limitFilterToZoomTrace(bool);
void showTheoreticalArrivals(bool);
void showUnassociatedPicks(bool);
void showSpectrogram(bool);
void showSpectrum();
void toggleFilter();
void nextFilter();
void previousFilter();
void addNewFilter(const QString&);
void scaleVisibleAmplitudes();
void zoomSelectionHandleMoved(int, double, Qt::KeyboardModifiers);
void zoomSelectionHandleMoveFinished();
void changeScale(double, double);
void changeTimeRange(double, double);
void sortAlphabetically();
void sortByDistance();
void sortByAzimuth();
void sortByResidual();
void sortByPhase(const QString&);
void showAllComponents(bool);
void showZComponent();
void showNComponent();
void showEComponent();
void alignOnOriginTime();
void alignOnPArrivals();
void alignOnSArrivals();
void pickNone(bool);
void pickP(bool);
void pickS(bool);
void scaleAmplUp();
void scaleAmplDown();
void scaleTimeUp();
void scaleTimeDown();
void scaleReset();
void scrollLeft();
void scrollFineLeft();
void scrollRight();
void scrollFineRight();
void automaticRepick();
void gotoNextMarker();
void gotoPreviousMarker();
void createPick();
void setPick();
void confirmPick();
void resetPick();
void deletePick();
void setCurrentRowEnabled(bool);
void setCurrentRowDisabled(bool);
void loadNextStations();
void showUsedStations(bool);
void moveTraces(double offset);
void move(double offset);
void zoom(float factor);
void applyTimeRange(double,double);
void sortByState();
void alignByState();
void componentByState();
void updateLayoutFromState();
void firstConnectionEstablished();
void lastConnectionClosed();
void beginWaitForRecords();
void doWaitForRecords(int value);
void endWaitForRecords();
void showFullscreen(bool);
void enableAutoScale();
void disableAutoScale();
void addStations();
void searchStation();
void search(const QString&);
void nextSearch();
void abortSearchStation();
void setPickPolarity();
void setPickOnset();
void setPickUncertainty();
void openContextMenu(const QPoint &p);
void openRecordContextMenu(const QPoint &p);
void previewUncertainty(QAction *);
void previewUncertainty(double lower, double upper);
void openConnectionInfo(const QPoint &);
void destroyedSpectrumWidget(QObject *);
void ttInterfaceChanged(QString);
void ttTableChanged(QString);
protected:
void showEvent(QShowEvent* event);
RecordLabel* createLabel(RecordViewItem*) const;
private:
void figureOutTravelTimeTable();
void init();
void initPhases();
bool fillTheoreticalArrivals();
bool fillRawPicks();
int loadPicks();
const TravelTime* findPhase(const TravelTimeList &list, const QString &phase, double delta);
RecordViewItem* addStream(const DataModel::SensorLocation *,
const DataModel::WaveformStreamID& streamID,
double distance,
const std::string& text,
bool showDisabled,
bool addTheoreticalArrivals,
const DataModel::Stream *base = nullptr);
RecordViewItem* addRawStream(const DataModel::SensorLocation *,
const DataModel::WaveformStreamID& streamID,
double distance,
const std::string& text,
bool addTheoreticalArrivals,
const DataModel::Stream *base = nullptr);
void queueStream(double dist, const DataModel::WaveformStreamID& streamID, char component);
void setupItem(const char comps[3], RecordViewItem*);
bool addTheoreticalArrivals(RecordViewItem*,
const std::string& netCode,
const std::string& staCode,
const std::string& locCode);
bool addRawPick(Seiscomp::DataModel::Pick*);
void resetState();
void alignOnPhase(const QString&, bool theoretical);
void diffStreamState(Seiscomp::DataModel::Origin* oldOrigin,
Seiscomp::DataModel::Origin* newOrigin);
void updateOriginInformation();
void loadNextStations(float distance);
void setCursorText(const QString&);
void setCursorPos(const Seiscomp::Core::Time&, bool always = false);
void setTimeRange(double, double);
void acquireStreams();
bool applyFilter(RecordViewItem *item = nullptr);
bool applyRotation(RecordViewItem *item, int type);
void updateRecordAxisLabel(RecordViewItem *item);
//! Makes sure that the time range [tmin, tmax] is visible.
//! When the interval is larger than the visible area
//! the time range will be left aligned.
void ensureVisibility(double &tmin, double &tmax);
void ensureVisibility(const Seiscomp::Core::Time &time, int pixelMargin);
void updatePhaseMarker(Seiscomp::Gui::RecordWidget*, const Seiscomp::Core::Time&);
void declareArrival(Seiscomp::Gui::RecordMarker *m, const QString &phase, bool);
void updateUncertaintyHandles(RecordMarker *marker);
void updateCurrentRowState();
void setMarkerState(Seiscomp::Gui::RecordWidget*, bool);
bool setArrivalState(Seiscomp::Gui::RecordWidget* w, int arrivalId, bool state);
void fetchManualPicks(std::vector<RecordMarker*>* marker = nullptr) const;
void showComponent(char componentCode);
void fetchComponent(char componentCode);
void addArrival(Seiscomp::Gui::RecordWidget*, Seiscomp::DataModel::Arrival*, int id);
void addFilter(const QString& name, const QString& filter);
void changeFilter(int, bool force);
void closeThreads();
char currentComponent() const;
void searchByText(const QString &text);
void emitPick(const Processing::Picker *, const Processing::Picker::Result &res);
private:
PickerViewPrivate *_d_ptr;
};
}
}
#define REGISTER_PICKER_MARKER_ACTION(Class, Service) \
Seiscomp::Core::Generic::InterfaceFactory<Seiscomp::Gui::PickerMarkerActionPlugin, Class> __##Class##InterfaceFactory__(Service)
#endif

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_PICKERZOOMFRAME_H
#define SEISCOMP_GUI_PICKERZOOMFRAME_H
#include <QFrame>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API ZoomRecordFrame : public QFrame {
Q_OBJECT
public:
ZoomRecordFrame(QWidget* parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
protected:
void wheelEvent(QWheelEvent* e);
signals:
void lineDown();
void lineUp();
void verticalZoomIn();
void verticalZoomOut();
void horizontalZoomIn();
void horizontalZoomOut();
};
}
}
#endif

View File

@ -0,0 +1,139 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_DATAMODEL_ORIGINEVALUATOR_H
#define SEISCOMP_GUI_DATAMODEL_ORIGINEVALUATOR_H
#include <list>
#include <QThread>
#include <QMutex>
#include <QHash>
#include <QSet>
#include <QProcess>
#include <QStringList>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/databasereader.h>
#endif
namespace Seiscomp {
namespace Gui {
class PublicObjectEvaluator : public QThread {
Q_OBJECT
private:
PublicObjectEvaluator();
public:
static PublicObjectEvaluator &Instance();
bool setDatabaseURI(const char *uri);
//! Adds a job for an publicID of a specific PublicObject type and a
//! script to be called.
//! Multiple calls will increase the reference count of
//! script while removeJob will decrease it. A reference
//! count of 0 removes this script from the job list.
bool append(void *owner, const QString &publicID,
const Core::RTTI& classType, const QString &script);
bool append(void *owner, const QString &publicID,
const Core::RTTI& classType, const QStringList &scripts);
bool prepend(void *owner, const QString &publicID,
const Core::RTTI& classType, const QString &script);
bool prepend(void *owner, const QString &publicID,
const Core::RTTI& classType, const QStringList &scripts);
bool moveToFront(const QString &publicID);
//! Remove a job for an publicID and a script. This decreases
//! the reference count of script if it exists already and removes
//! it when the reference count drops to 0.
bool erase(void *owner, const QString &publicID, const QString &script);
//! Removes all scripts for an publicID and does not check for
//! reference counts.
bool erase(void *owner, const QString &publicID);
int pendingJobs() const;
//! Removes all pending jobs of owner. If owner is set to nullptr
//! all jobs are removed
void clear(void *owner);
//! Does an evaluation. The evaluation is not queued but executed
//! in place,
bool eval(DataModel::PublicObject *po, const QStringList &scripts);
QString errorMsg(int errorCode) const;
protected:
void run();
private:
bool connect();
signals:
void resultAvailable(const QString &publicID, const QString &className,
const QString &script, const QString &result);
void resultError(const QString &publicID, const QString &className,
const QString &script, int errorCode);
private:
// A script which is an owner. If two or more objects
// added the same script then owner is set to nullptr.
typedef QHash<QString,void*> Scripts;
struct Job {
Job(const QString &id, const Core::RTTI &ct)
: publicID(id), classType(ct) {}
QString publicID;
Core::RTTI classType;
Scripts scripts;
};
typedef std::list<Job> JobList;
typedef QHash<QString, JobList::iterator> JobIDMap;
static PublicObjectEvaluator *_instance;
mutable QMutex _mutexJobList;
std::string _databaseURI;
DataModel::DatabaseReader _reader;
JobIDMap _jobIDLookup;
JobList _jobs;
};
}
}
#endif

View File

@ -0,0 +1,82 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_SELECTSTATION_H
#define SEISCOMP_SELECTSTATION_H
#include <QDialog>
#include <QAbstractTableModel>
#ifndef Q_MOC_RUN
#include <seiscomp/core/datetime.h>
#include <seiscomp/datamodel/station.h>
#endif
#include <seiscomp/gui/qt.h>
#include <seiscomp/gui/datamodel/ui_selectstation.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API SelectStation : public QDialog {
Q_OBJECT
// ------------------------------------------------------------------
// X'struction
// ------------------------------------------------------------------
public:
explicit SelectStation(Core::Time time, bool ignoreDisabledStations,
QWidget* parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
explicit SelectStation(Core::Time time, bool ignoreDisabledStations,
const QSet<QString> &blackList,
QWidget* parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
~SelectStation();
QList<DataModel::Station*> selectedStations() const;
void setReferenceLocation(double lat, double lon);
// ------------------------------------------------------------------
// Private Interface
// ------------------------------------------------------------------
private slots:
void listMatchingStations(const QString& substr);
private:
void init(Core::Time, bool ignoreDisabledStations,
const QSet<QString> *blackList);
// ------------------------------------------------------------------
// Private data members
// ------------------------------------------------------------------
private:
Ui::SelectStation _ui;
};
} // namespace Gui
} // namespace Seiscomp
#endif

View File

@ -0,0 +1,112 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_STATIONSYMBOL_H
#define SEISCOMP_GUI_STATIONSYMBOL_H
#include <iostream>
#include <string>
#include <vector>
#include <QColor>
#include <seiscomp/datamodel/station.h>
#include <seiscomp/gui/map/mapsymbol.h>
#include <seiscomp/gui/qt.h>
#include <seiscomp/math/coord.h>
// Forward declaration
class QPainter;
namespace Seiscomp {
namespace Gui {
class SC_GUI_API StationSymbol : public Map::Symbol {
public:
StationSymbol(Map::Decorator *decorator = nullptr);
StationSymbol(double latitude,
double longitude,
Map::Decorator *decorator = nullptr);
void setColor(const QColor &color);
const QColor &color() const;
/**
* @brief Sets the color of the outline. The default is black.
* @since 15
* @param color The outline color
*/
void setOutlineColor(const QColor &color);
/**
* @brief Returns the current outline color.
* @since 15
* @return The outline color.
*/
const QColor &outlineColor() const;
void setRadius(int radius);
int radius() const;
void setFrameColor(const QColor &color);
const QColor &frameColor() const;
void setFrameSize(int);
int frameSize() const;
bool isInside(int x, int y) const override;
/**
* @brief Draws the station symbol
* @param canvas The canvas is not being used and can be nullptr
* @param painter The painter to draw with
*/
void customDraw(const Map::Canvas *canvas, QPainter &painter) override;
protected:
QPolygon generateShape(int posX, int posY, int radius);
const QPolygon &stationPolygon() const;
private:
void init();
private:
int _radius;
int _frameSize;
QPolygon _stationPolygon;
QColor _frameColor;
QColor _outlineColor;
QColor _color;
};
} // namespace Gui
} // namespace Seiscomp
#endif

View File

@ -0,0 +1,79 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_FMSYMBOL_H
#define SEISCOMP_GUI_FMSYMBOL_H
#include <seiscomp/gui/core/tensorrenderer.h>
#include <seiscomp/gui/map/mapsymbol.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API TensorSymbol : public Map::Symbol
{
public:
TensorSymbol(const Math::Tensor2Sd &t,
Map::Decorator* decorator = nullptr);
~TensorSymbol();
void setShadingEnabled(bool);
void setDrawConnectorEnabled(bool);
void setBorderColor(QColor);
void setTColor(QColor);
void setPColor(QColor);
void setPosition(QPointF geoPosition);
void setOffset(QPoint offset);
public:
virtual bool isInside(int x, int y) const;
protected:
virtual void customDraw(const Map::Canvas *canvas, QPainter& painter);
void resize(int w, int h);
protected:
TensorRenderer _renderer;
QImage _buffer;
Math::Tensor2Sd _tensor;
Math::Matrix3f _rotation;
QSize _lastSize;
QPoint _offset;
bool _drawLocationConnector;
};
}
}
#endif

View File

@ -0,0 +1,117 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_TTDECORATOR_H
#define SEISCOMP_GUI_TTDECORATOR_H
#include <list>
#include <seiscomp/math/geo.h>
#include <seiscomp/seismology/ttt.h>
#include <seiscomp/datamodel/timequantity.h>
#include <seiscomp/gui/map/mapwidget.h>
#include <seiscomp/gui/qt.h>
namespace Seiscomp {
namespace Gui {
class SC_GUI_API TTDecorator : public Map::Decorator {
// ------------------------------------------------------------------
// Nested Types
// ------------------------------------------------------------------
private:
typedef std::vector<double> TravelTimes;
enum Direction { NORTH_SOUTH, EAST_WEST };
// ------------------------------------------------------------------
// X'struction
// ------------------------------------------------------------------
public:
TTDecorator(Map::Decorator *decorator = nullptr);
void setPreferredMagnitudeValue(double val);
double longitude() const;
void setLongitude(double longitude);
double latitude() const;
void setLatitude(double latitude);
double depth() const;
void setDepth(double depth);
const DataModel::TimeQuantity& originTime() const;
void setOriginTime(const DataModel::TimeQuantity& time);
// ------------------------------------------------------------------
// Protected Interface
// ------------------------------------------------------------------
protected:
virtual void customDraw(const Map::Canvas *canvas, QPainter& painter);
// ------------------------------------------------------------------
// Private Interface
// ------------------------------------------------------------------
private:
void computeTTT(TravelTimes& travelTimes, const std::string& phase,
double phaseDistance);
double computeTTTPolygon(const std::vector<double>& travelTimes,
std::vector<QPointF>& polygon);
void drawPolygon(const Map::Canvas *canvas, QPainter& painter,
const std::vector<QPointF>& polygon);
void annotatePropagation(const Map::Canvas *canvas, QPainter& painter,
double distance, Direction direction);
// ----------------------------------------------------------------------
// Private data members
// ----------------------------------------------------------------------
private:
std::vector<QPointF> _polygonP;
std::vector<QPointF> _polygonS;
TravelTimeTable _ttTable;
TravelTimes _travelTimesP;
TravelTimes _travelTimesS;
int _deltaDepth;
double _maxPDistance;
double _maxSDistance;
double _pDistance;
int _deltaDist;
int _rotDelta;
double _preferredMagnitudeVal;
double _longitude;
double _latitude;
double _depth;
DataModel::TimeQuantity _originTime;
};
} // namespace Gui
} // namespace Seiscomp
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,218 @@
/********************************************************************************
** Form generated from reading UI file 'calculateamplitudes.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_CALCULATEAMPLITUDES_H
#define UI_CALCULATEAMPLITUDES_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_CalculateAmplitudes
{
public:
QVBoxLayout *vboxLayout;
QHBoxLayout *hboxLayout;
QLabel *label;
QLabel *source;
QFrame *frame;
QHBoxLayout *hboxLayout1;
QLabel *label_2;
QComboBox *comboFilterState;
QSpacerItem *spacerItem;
QLabel *label_3;
QComboBox *comboFilterType;
QTableWidget *table;
QHBoxLayout *hboxLayout2;
QSpacerItem *spacerItem1;
QPushButton *btnOK;
QPushButton *btnCancel;
void setupUi(QDialog *CalculateAmplitudes)
{
if (CalculateAmplitudes->objectName().isEmpty())
CalculateAmplitudes->setObjectName(QString::fromUtf8("CalculateAmplitudes"));
CalculateAmplitudes->resize(645, 624);
vboxLayout = new QVBoxLayout(CalculateAmplitudes);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
label = new QLabel(CalculateAmplitudes);
label->setObjectName(QString::fromUtf8("label"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
label->setSizePolicy(sizePolicy);
hboxLayout->addWidget(label);
source = new QLabel(CalculateAmplitudes);
source->setObjectName(QString::fromUtf8("source"));
QSizePolicy sizePolicy1(QSizePolicy::Ignored, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(source->sizePolicy().hasHeightForWidth());
source->setSizePolicy(sizePolicy1);
hboxLayout->addWidget(source);
vboxLayout->addLayout(hboxLayout);
frame = new QFrame(CalculateAmplitudes);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(frame);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
label_2 = new QLabel(CalculateAmplitudes);
label_2->setObjectName(QString::fromUtf8("label_2"));
hboxLayout1->addWidget(label_2);
comboFilterState = new QComboBox(CalculateAmplitudes);
comboFilterState->addItem(QString());
comboFilterState->addItem(QString());
comboFilterState->addItem(QString());
comboFilterState->addItem(QString());
comboFilterState->setObjectName(QString::fromUtf8("comboFilterState"));
hboxLayout1->addWidget(comboFilterState);
spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem);
label_3 = new QLabel(CalculateAmplitudes);
label_3->setObjectName(QString::fromUtf8("label_3"));
hboxLayout1->addWidget(label_3);
comboFilterType = new QComboBox(CalculateAmplitudes);
comboFilterType->setObjectName(QString::fromUtf8("comboFilterType"));
QSizePolicy sizePolicy2(QSizePolicy::Maximum, QSizePolicy::Fixed);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(comboFilterType->sizePolicy().hasHeightForWidth());
comboFilterType->setSizePolicy(sizePolicy2);
hboxLayout1->addWidget(comboFilterType);
vboxLayout->addLayout(hboxLayout1);
table = new QTableWidget(CalculateAmplitudes);
if (table->columnCount() < 4)
table->setColumnCount(4);
QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
table->setHorizontalHeaderItem(0, __qtablewidgetitem);
QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem();
table->setHorizontalHeaderItem(1, __qtablewidgetitem1);
QTableWidgetItem *__qtablewidgetitem2 = new QTableWidgetItem();
table->setHorizontalHeaderItem(2, __qtablewidgetitem2);
QTableWidgetItem *__qtablewidgetitem3 = new QTableWidgetItem();
table->setHorizontalHeaderItem(3, __qtablewidgetitem3);
table->setObjectName(QString::fromUtf8("table"));
vboxLayout->addWidget(table);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem1);
btnOK = new QPushButton(CalculateAmplitudes);
btnOK->setObjectName(QString::fromUtf8("btnOK"));
hboxLayout2->addWidget(btnOK);
btnCancel = new QPushButton(CalculateAmplitudes);
btnCancel->setObjectName(QString::fromUtf8("btnCancel"));
hboxLayout2->addWidget(btnCancel);
vboxLayout->addLayout(hboxLayout2);
retranslateUi(CalculateAmplitudes);
QObject::connect(btnCancel, SIGNAL(clicked()), CalculateAmplitudes, SLOT(reject()));
QObject::connect(btnOK, SIGNAL(clicked()), CalculateAmplitudes, SLOT(accept()));
QMetaObject::connectSlotsByName(CalculateAmplitudes);
} // setupUi
void retranslateUi(QDialog *CalculateAmplitudes)
{
CalculateAmplitudes->setWindowTitle(QCoreApplication::translate("CalculateAmplitudes", "Measure amplitudes", nullptr));
label->setText(QCoreApplication::translate("CalculateAmplitudes", "Source:", nullptr));
source->setText(QCoreApplication::translate("CalculateAmplitudes", "TextLabel", nullptr));
label_2->setText(QCoreApplication::translate("CalculateAmplitudes", "State:", nullptr));
comboFilterState->setItemText(0, QCoreApplication::translate("CalculateAmplitudes", "- Any -", nullptr));
comboFilterState->setItemText(1, QCoreApplication::translate("CalculateAmplitudes", "Success", nullptr));
comboFilterState->setItemText(2, QCoreApplication::translate("CalculateAmplitudes", "Error", nullptr));
comboFilterState->setItemText(3, QCoreApplication::translate("CalculateAmplitudes", "Progress", nullptr));
label_3->setText(QCoreApplication::translate("CalculateAmplitudes", "Type:", nullptr));
QTableWidgetItem *___qtablewidgetitem = table->horizontalHeaderItem(0);
___qtablewidgetitem->setText(QCoreApplication::translate("CalculateAmplitudes", "Stream", nullptr));
QTableWidgetItem *___qtablewidgetitem1 = table->horizontalHeaderItem(1);
___qtablewidgetitem1->setText(QCoreApplication::translate("CalculateAmplitudes", "Type", nullptr));
QTableWidgetItem *___qtablewidgetitem2 = table->horizontalHeaderItem(2);
___qtablewidgetitem2->setText(QCoreApplication::translate("CalculateAmplitudes", "Value", nullptr));
QTableWidgetItem *___qtablewidgetitem3 = table->horizontalHeaderItem(3);
___qtablewidgetitem3->setText(QCoreApplication::translate("CalculateAmplitudes", "Progress", nullptr));
btnOK->setText(QCoreApplication::translate("CalculateAmplitudes", "OK", nullptr));
btnCancel->setText(QCoreApplication::translate("CalculateAmplitudes", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class CalculateAmplitudes: public Ui_CalculateAmplitudes {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_CALCULATEAMPLITUDES_H

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,338 @@
/********************************************************************************
** Form generated from reading UI file 'eventfilterwidget.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_EVENTFILTERWIDGET_H
#define UI_EVENTFILTERWIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
#include "seiscomp/gui/core/optionaldoublespinbox.h"
QT_BEGIN_NAMESPACE
class Ui_EventFilter
{
public:
QVBoxLayout *vboxLayout;
QGridLayout *gridLayout;
Seiscomp::Gui::OptionalDoubleSpinBox *toLatitude;
QFrame *frame;
Seiscomp::Gui::OptionalDoubleSpinBox *fromMagnitude;
QLabel *label_4;
QLabel *label_15;
Seiscomp::Gui::OptionalDoubleSpinBox *toLongitude;
Seiscomp::Gui::OptionalDoubleSpinBox *fromDepth;
QFrame *frame_2;
QLabel *label;
Seiscomp::Gui::OptionalDoubleSpinBox *toDepth;
QLabel *label_5;
QFrame *frame_3;
QLabel *label_14;
QLabel *label_11;
QLabel *label_8;
QLabel *label_10;
QLabel *label_12;
QLabel *label_9;
Seiscomp::Gui::OptionalDoubleSpinBox *fromLatitude;
QLabel *label_6;
QLabel *label_7;
Seiscomp::Gui::OptionalDoubleSpinBox *toMagnitude;
Seiscomp::Gui::OptionalDoubleSpinBox *fromLongitude;
QLabel *label_13;
QFrame *frame_4;
QLineEdit *editEventID;
QFrame *frame_5;
QToolButton *btnReset;
void setupUi(QWidget *EventFilter)
{
if (EventFilter->objectName().isEmpty())
EventFilter->setObjectName(QString::fromUtf8("EventFilter"));
EventFilter->resize(407, 419);
vboxLayout = new QVBoxLayout(EventFilter);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
gridLayout = new QGridLayout();
#ifndef Q_OS_MAC
gridLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
gridLayout->setContentsMargins(0, 0, 0, 0);
#endif
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
toLatitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
toLatitude->setObjectName(QString::fromUtf8("toLatitude"));
toLatitude->setDecimals(4);
toLatitude->setMaximum(90.000000000000000);
toLatitude->setMinimum(-90.000000000000000);
toLatitude->setValue(-90.000000000000000);
gridLayout->addWidget(toLatitude, 3, 3, 1, 1);
frame = new QFrame(EventFilter);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(frame, 4, 0, 1, 4);
fromMagnitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
fromMagnitude->setObjectName(QString::fromUtf8("fromMagnitude"));
fromMagnitude->setDecimals(1);
fromMagnitude->setMaximum(20.000000000000000);
fromMagnitude->setMinimum(-10.000000000000000);
fromMagnitude->setSingleStep(0.500000000000000);
fromMagnitude->setValue(-10.000000000000000);
gridLayout->addWidget(fromMagnitude, 12, 1, 1, 1);
label_4 = new QLabel(EventFilter);
label_4->setObjectName(QString::fromUtf8("label_4"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(label_4->sizePolicy().hasHeightForWidth());
label_4->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_4, 0, 0, 1, 1);
label_15 = new QLabel(EventFilter);
label_15->setObjectName(QString::fromUtf8("label_15"));
gridLayout->addWidget(label_15, 12, 2, 1, 1);
toLongitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
toLongitude->setObjectName(QString::fromUtf8("toLongitude"));
toLongitude->setDecimals(4);
toLongitude->setMaximum(180.000000000000000);
toLongitude->setMinimum(-180.000000000000000);
toLongitude->setValue(-180.000000000000000);
gridLayout->addWidget(toLongitude, 6, 3, 1, 1);
fromDepth = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
fromDepth->setObjectName(QString::fromUtf8("fromDepth"));
fromDepth->setMaximum(999.000000000000000);
fromDepth->setMinimum(-999.000000000000000);
fromDepth->setValue(-999.000000000000000);
gridLayout->addWidget(fromDepth, 9, 1, 1, 1);
frame_2 = new QFrame(EventFilter);
frame_2->setObjectName(QString::fromUtf8("frame_2"));
frame_2->setFrameShape(QFrame::HLine);
frame_2->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(frame_2, 7, 0, 1, 4);
label = new QLabel(EventFilter);
label->setObjectName(QString::fromUtf8("label"));
gridLayout->addWidget(label, 2, 0, 1, 4);
toDepth = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
toDepth->setObjectName(QString::fromUtf8("toDepth"));
toDepth->setMaximum(999.000000000000000);
toDepth->setMinimum(-999.000000000000000);
toDepth->setValue(-999.000000000000000);
gridLayout->addWidget(toDepth, 9, 3, 1, 1);
label_5 = new QLabel(EventFilter);
label_5->setObjectName(QString::fromUtf8("label_5"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(label_5->sizePolicy().hasHeightForWidth());
label_5->setSizePolicy(sizePolicy1);
label_5->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_5, 3, 0, 1, 1);
frame_3 = new QFrame(EventFilter);
frame_3->setObjectName(QString::fromUtf8("frame_3"));
frame_3->setFrameShape(QFrame::HLine);
frame_3->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(frame_3, 10, 0, 1, 4);
label_14 = new QLabel(EventFilter);
label_14->setObjectName(QString::fromUtf8("label_14"));
label_14->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_14, 12, 0, 1, 1);
label_11 = new QLabel(EventFilter);
label_11->setObjectName(QString::fromUtf8("label_11"));
label_11->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_11, 9, 0, 1, 1);
label_8 = new QLabel(EventFilter);
label_8->setObjectName(QString::fromUtf8("label_8"));
label_8->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_8, 6, 0, 1, 1);
label_10 = new QLabel(EventFilter);
label_10->setObjectName(QString::fromUtf8("label_10"));
gridLayout->addWidget(label_10, 8, 0, 1, 4);
label_12 = new QLabel(EventFilter);
label_12->setObjectName(QString::fromUtf8("label_12"));
gridLayout->addWidget(label_12, 9, 2, 1, 1);
label_9 = new QLabel(EventFilter);
label_9->setObjectName(QString::fromUtf8("label_9"));
gridLayout->addWidget(label_9, 6, 2, 1, 1);
fromLatitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
fromLatitude->setObjectName(QString::fromUtf8("fromLatitude"));
fromLatitude->setDecimals(4);
fromLatitude->setMaximum(90.000000000000000);
fromLatitude->setMinimum(-90.000000000000000);
fromLatitude->setValue(-90.000000000000000);
gridLayout->addWidget(fromLatitude, 3, 1, 1, 1);
label_6 = new QLabel(EventFilter);
label_6->setObjectName(QString::fromUtf8("label_6"));
sizePolicy.setHeightForWidth(label_6->sizePolicy().hasHeightForWidth());
label_6->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_6, 3, 2, 1, 1);
label_7 = new QLabel(EventFilter);
label_7->setObjectName(QString::fromUtf8("label_7"));
gridLayout->addWidget(label_7, 5, 0, 1, 4);
toMagnitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
toMagnitude->setObjectName(QString::fromUtf8("toMagnitude"));
toMagnitude->setDecimals(1);
toMagnitude->setMaximum(20.000000000000000);
toMagnitude->setMinimum(-10.000000000000000);
toMagnitude->setSingleStep(0.500000000000000);
toMagnitude->setValue(-10.000000000000000);
gridLayout->addWidget(toMagnitude, 12, 3, 1, 1);
fromLongitude = new Seiscomp::Gui::OptionalDoubleSpinBox(EventFilter);
fromLongitude->setObjectName(QString::fromUtf8("fromLongitude"));
fromLongitude->setDecimals(4);
fromLongitude->setMaximum(180.000000000000000);
fromLongitude->setMinimum(-180.000000000000000);
fromLongitude->setValue(-180.000000000000000);
gridLayout->addWidget(fromLongitude, 6, 1, 1, 1);
label_13 = new QLabel(EventFilter);
label_13->setObjectName(QString::fromUtf8("label_13"));
gridLayout->addWidget(label_13, 11, 0, 1, 4);
frame_4 = new QFrame(EventFilter);
frame_4->setObjectName(QString::fromUtf8("frame_4"));
frame_4->setFrameShape(QFrame::HLine);
frame_4->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(frame_4, 1, 0, 1, 4);
editEventID = new QLineEdit(EventFilter);
editEventID->setObjectName(QString::fromUtf8("editEventID"));
gridLayout->addWidget(editEventID, 0, 1, 1, 3);
vboxLayout->addLayout(gridLayout);
frame_5 = new QFrame(EventFilter);
frame_5->setObjectName(QString::fromUtf8("frame_5"));
frame_5->setFrameShape(QFrame::HLine);
frame_5->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(frame_5);
btnReset = new QToolButton(EventFilter);
btnReset->setObjectName(QString::fromUtf8("btnReset"));
vboxLayout->addWidget(btnReset);
QWidget::setTabOrder(fromLatitude, toLatitude);
QWidget::setTabOrder(toLatitude, fromLongitude);
QWidget::setTabOrder(fromLongitude, toLongitude);
QWidget::setTabOrder(toLongitude, fromDepth);
QWidget::setTabOrder(fromDepth, toDepth);
QWidget::setTabOrder(toDepth, fromMagnitude);
QWidget::setTabOrder(fromMagnitude, toMagnitude);
retranslateUi(EventFilter);
QMetaObject::connectSlotsByName(EventFilter);
} // setupUi
void retranslateUi(QWidget *EventFilter)
{
EventFilter->setWindowTitle(QCoreApplication::translate("EventFilter", "Filter Settings", nullptr));
toLatitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
toLatitude->setSuffix(QCoreApplication::translate("EventFilter", "\302\260", nullptr));
fromMagnitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
label_4->setText(QCoreApplication::translate("EventFilter", "Event ID", nullptr));
label_15->setText(QCoreApplication::translate("EventFilter", "to", nullptr));
toLongitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
toLongitude->setSuffix(QCoreApplication::translate("EventFilter", "\302\260", nullptr));
fromDepth->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
fromDepth->setSuffix(QCoreApplication::translate("EventFilter", "km", nullptr));
label->setText(QCoreApplication::translate("EventFilter", "Latitude range", nullptr));
toDepth->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
toDepth->setSuffix(QCoreApplication::translate("EventFilter", "km", nullptr));
label_5->setText(QCoreApplication::translate("EventFilter", "from", nullptr));
label_14->setText(QCoreApplication::translate("EventFilter", "from", nullptr));
label_11->setText(QCoreApplication::translate("EventFilter", "from", nullptr));
label_8->setText(QCoreApplication::translate("EventFilter", "from", nullptr));
label_10->setText(QCoreApplication::translate("EventFilter", "Depth range", nullptr));
label_12->setText(QCoreApplication::translate("EventFilter", "to", nullptr));
label_9->setText(QCoreApplication::translate("EventFilter", "to", nullptr));
fromLatitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
fromLatitude->setSuffix(QCoreApplication::translate("EventFilter", "\302\260", nullptr));
label_6->setText(QCoreApplication::translate("EventFilter", "to", nullptr));
label_7->setText(QCoreApplication::translate("EventFilter", "Longitude range", nullptr));
toMagnitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
fromLongitude->setSpecialValueText(QCoreApplication::translate("EventFilter", "Unset", nullptr));
fromLongitude->setSuffix(QCoreApplication::translate("EventFilter", "\302\260", nullptr));
label_13->setText(QCoreApplication::translate("EventFilter", "Magnitude range", nullptr));
#if QT_CONFIG(tooltip)
editEventID->setToolTip(QCoreApplication::translate("EventFilter", "EventID filter which allows wildcards (* and ?)", nullptr));
#endif // QT_CONFIG(tooltip)
btnReset->setText(QCoreApplication::translate("EventFilter", "Reset all", nullptr));
} // retranslateUi
};
namespace Ui {
class EventFilter: public Ui_EventFilter {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_EVENTFILTERWIDGET_H

View File

@ -0,0 +1,379 @@
/********************************************************************************
** Form generated from reading UI file 'eventlistview.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_EVENTLISTVIEW_H
#define UI_EVENTLISTVIEW_H
#include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDateTimeEdit>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_EventListView
{
public:
QAction *actionCopyRowToClipboard;
QVBoxLayout *vboxLayout;
QFrame *frameList;
QFrame *frameControls;
QVBoxLayout *vboxLayout1;
QHBoxLayout *hboxLayout;
QToolButton *btnClear;
QToolButton *btnFilter;
QSpacerItem *spacerItem;
QLabel *label_3;
QSpinBox *spinBox;
QToolButton *btnReadDays;
QSpacerItem *spacerItem1;
QLabel *label;
QDateTimeEdit *dateTimeEditStart;
QLabel *label_2;
QDateTimeEdit *dateTimeEditEnd;
QToolButton *btnReadInterval;
QFrame *frameCustomControls;
QFrame *frame;
QHBoxLayout *hboxLayout1;
QCheckBox *cbHideOther;
QSpacerItem *spacerItem2;
QCheckBox *cbHideForeign;
QSpacerItem *spacerItem3;
QCheckBox *cbShowLatestOnly;
QSpacerItem *spacerItem4;
QHBoxLayout *hboxLayout2;
QFrame *frameRegionFilter;
QHBoxLayout *hboxLayout3;
QCheckBox *cbFilterRegions;
QComboBox *cbFilterRegionMode;
QComboBox *lstFilterRegions;
QToolButton *btnChangeRegion;
QLabel *lbFilterRegions;
QSpacerItem *spacerItem5;
void setupUi(QWidget *EventListView)
{
if (EventListView->objectName().isEmpty())
EventListView->setObjectName(QString::fromUtf8("EventListView"));
EventListView->resize(802, 710);
actionCopyRowToClipboard = new QAction(EventListView);
actionCopyRowToClipboard->setObjectName(QString::fromUtf8("actionCopyRowToClipboard"));
vboxLayout = new QVBoxLayout(EventListView);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
vboxLayout->setContentsMargins(0, 0, 0, 0);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
frameList = new QFrame(EventListView);
frameList->setObjectName(QString::fromUtf8("frameList"));
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(2);
sizePolicy.setHeightForWidth(frameList->sizePolicy().hasHeightForWidth());
frameList->setSizePolicy(sizePolicy);
frameList->setFrameShape(QFrame::NoFrame);
frameList->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(frameList);
frameControls = new QFrame(EventListView);
frameControls->setObjectName(QString::fromUtf8("frameControls"));
frameControls->setFrameShadow(QFrame::Plain);
vboxLayout1 = new QVBoxLayout(frameControls);
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
btnClear = new QToolButton(frameControls);
btnClear->setObjectName(QString::fromUtf8("btnClear"));
btnClear->setEnabled(false);
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(btnClear->sizePolicy().hasHeightForWidth());
btnClear->setSizePolicy(sizePolicy1);
hboxLayout->addWidget(btnClear);
btnFilter = new QToolButton(frameControls);
btnFilter->setObjectName(QString::fromUtf8("btnFilter"));
sizePolicy1.setHeightForWidth(btnFilter->sizePolicy().hasHeightForWidth());
btnFilter->setSizePolicy(sizePolicy1);
const QIcon icon = QIcon(QString::fromUtf8(":/icons/icons/filter2.png"));
btnFilter->setIcon(icon);
hboxLayout->addWidget(btnFilter);
spacerItem = new QSpacerItem(16, 29, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
label_3 = new QLabel(frameControls);
label_3->setObjectName(QString::fromUtf8("label_3"));
QSizePolicy sizePolicy2(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(label_3->sizePolicy().hasHeightForWidth());
label_3->setSizePolicy(sizePolicy2);
hboxLayout->addWidget(label_3);
spinBox = new QSpinBox(frameControls);
spinBox->setObjectName(QString::fromUtf8("spinBox"));
QSizePolicy sizePolicy3(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy3.setHorizontalStretch(0);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(spinBox->sizePolicy().hasHeightForWidth());
spinBox->setSizePolicy(sizePolicy3);
spinBox->setMinimum(1);
hboxLayout->addWidget(spinBox);
btnReadDays = new QToolButton(frameControls);
btnReadDays->setObjectName(QString::fromUtf8("btnReadDays"));
QSizePolicy sizePolicy4(QSizePolicy::Maximum, QSizePolicy::Fixed);
sizePolicy4.setHorizontalStretch(0);
sizePolicy4.setVerticalStretch(0);
sizePolicy4.setHeightForWidth(btnReadDays->sizePolicy().hasHeightForWidth());
btnReadDays->setSizePolicy(sizePolicy4);
btnReadDays->setMinimumSize(QSize(50, 0));
hboxLayout->addWidget(btnReadDays);
spacerItem1 = new QSpacerItem(16, 29, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem1);
label = new QLabel(frameControls);
label->setObjectName(QString::fromUtf8("label"));
sizePolicy2.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
label->setSizePolicy(sizePolicy2);
hboxLayout->addWidget(label);
dateTimeEditStart = new QDateTimeEdit(frameControls);
dateTimeEditStart->setObjectName(QString::fromUtf8("dateTimeEditStart"));
dateTimeEditStart->setCurrentSection(QDateTimeEdit::YearSection);
hboxLayout->addWidget(dateTimeEditStart);
label_2 = new QLabel(frameControls);
label_2->setObjectName(QString::fromUtf8("label_2"));
sizePolicy2.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy2);
hboxLayout->addWidget(label_2);
dateTimeEditEnd = new QDateTimeEdit(frameControls);
dateTimeEditEnd->setObjectName(QString::fromUtf8("dateTimeEditEnd"));
dateTimeEditEnd->setCurrentSection(QDateTimeEdit::YearSection);
hboxLayout->addWidget(dateTimeEditEnd);
btnReadInterval = new QToolButton(frameControls);
btnReadInterval->setObjectName(QString::fromUtf8("btnReadInterval"));
sizePolicy4.setHeightForWidth(btnReadInterval->sizePolicy().hasHeightForWidth());
btnReadInterval->setSizePolicy(sizePolicy4);
btnReadInterval->setMinimumSize(QSize(50, 0));
hboxLayout->addWidget(btnReadInterval);
vboxLayout1->addLayout(hboxLayout);
vboxLayout->addWidget(frameControls);
frameCustomControls = new QFrame(EventListView);
frameCustomControls->setObjectName(QString::fromUtf8("frameCustomControls"));
frameCustomControls->setFrameShape(QFrame::NoFrame);
frameCustomControls->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(frameCustomControls);
frame = new QFrame(EventListView);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Raised);
vboxLayout->addWidget(frame);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
cbHideOther = new QCheckBox(EventListView);
cbHideOther->setObjectName(QString::fromUtf8("cbHideOther"));
cbHideOther->setChecked(true);
hboxLayout1->addWidget(cbHideOther);
spacerItem2 = new QSpacerItem(16, 23, QSizePolicy::Minimum, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem2);
cbHideForeign = new QCheckBox(EventListView);
cbHideForeign->setObjectName(QString::fromUtf8("cbHideForeign"));
cbHideForeign->setChecked(false);
hboxLayout1->addWidget(cbHideForeign);
spacerItem3 = new QSpacerItem(16, 23, QSizePolicy::Minimum, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem3);
cbShowLatestOnly = new QCheckBox(EventListView);
cbShowLatestOnly->setObjectName(QString::fromUtf8("cbShowLatestOnly"));
hboxLayout1->addWidget(cbShowLatestOnly);
spacerItem4 = new QSpacerItem(144, 23, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem4);
vboxLayout->addLayout(hboxLayout1);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
frameRegionFilter = new QFrame(EventListView);
frameRegionFilter->setObjectName(QString::fromUtf8("frameRegionFilter"));
frameRegionFilter->setFrameShape(QFrame::NoFrame);
frameRegionFilter->setFrameShadow(QFrame::Raised);
hboxLayout3 = new QHBoxLayout(frameRegionFilter);
#ifndef Q_OS_MAC
hboxLayout3->setSpacing(6);
#endif
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
cbFilterRegions = new QCheckBox(frameRegionFilter);
cbFilterRegions->setObjectName(QString::fromUtf8("cbFilterRegions"));
hboxLayout3->addWidget(cbFilterRegions);
cbFilterRegionMode = new QComboBox(frameRegionFilter);
cbFilterRegionMode->addItem(QString());
cbFilterRegionMode->addItem(QString());
cbFilterRegionMode->setObjectName(QString::fromUtf8("cbFilterRegionMode"));
hboxLayout3->addWidget(cbFilterRegionMode);
lstFilterRegions = new QComboBox(frameRegionFilter);
lstFilterRegions->setObjectName(QString::fromUtf8("lstFilterRegions"));
hboxLayout3->addWidget(lstFilterRegions);
btnChangeRegion = new QToolButton(frameRegionFilter);
btnChangeRegion->setObjectName(QString::fromUtf8("btnChangeRegion"));
hboxLayout3->addWidget(btnChangeRegion);
lbFilterRegions = new QLabel(frameRegionFilter);
lbFilterRegions->setObjectName(QString::fromUtf8("lbFilterRegions"));
hboxLayout3->addWidget(lbFilterRegions);
hboxLayout2->addWidget(frameRegionFilter);
spacerItem5 = new QSpacerItem(351, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem5);
vboxLayout->addLayout(hboxLayout2);
retranslateUi(EventListView);
QMetaObject::connectSlotsByName(EventListView);
} // setupUi
void retranslateUi(QWidget *EventListView)
{
EventListView->setWindowTitle(QCoreApplication::translate("EventListView", "Event List", nullptr));
actionCopyRowToClipboard->setText(QCoreApplication::translate("EventListView", "copyRowToClipboard", nullptr));
#if QT_CONFIG(shortcut)
actionCopyRowToClipboard->setShortcut(QCoreApplication::translate("EventListView", "Ctrl+C", nullptr));
#endif // QT_CONFIG(shortcut)
#if QT_CONFIG(tooltip)
btnClear->setToolTip(QCoreApplication::translate("EventListView", "Removes all events from the list", nullptr));
#endif // QT_CONFIG(tooltip)
btnClear->setText(QCoreApplication::translate("EventListView", "Clear list", nullptr));
#if QT_CONFIG(tooltip)
btnFilter->setToolTip(QCoreApplication::translate("EventListView", "Configures the server-side event filter", nullptr));
#endif // QT_CONFIG(tooltip)
btnFilter->setText(QCoreApplication::translate("EventListView", "Filter", nullptr));
label_3->setText(QCoreApplication::translate("EventListView", "Last days:", nullptr));
#if QT_CONFIG(tooltip)
btnReadDays->setToolTip(QCoreApplication::translate("EventListView", "Reads the events of the last n days using the \"Last days:\" value", nullptr));
#endif // QT_CONFIG(tooltip)
btnReadDays->setText(QCoreApplication::translate("EventListView", "Read", nullptr));
label->setText(QCoreApplication::translate("EventListView", "From:", nullptr));
dateTimeEditStart->setDisplayFormat(QCoreApplication::translate("EventListView", "yyyy/MM/dd HH:mm:ss", nullptr));
label_2->setText(QCoreApplication::translate("EventListView", "To:", nullptr));
dateTimeEditEnd->setDisplayFormat(QCoreApplication::translate("EventListView", "yyyy/MM/dd HH:mm:ss", nullptr));
#if QT_CONFIG(tooltip)
btnReadInterval->setToolTip(QCoreApplication::translate("EventListView", "Reads the events of the given timespan using the \"From:\" and \"To:\" dates", nullptr));
#endif // QT_CONFIG(tooltip)
btnReadInterval->setText(QCoreApplication::translate("EventListView", "Read", nullptr));
#if QT_CONFIG(tooltip)
cbHideOther->setToolTip(QCoreApplication::translate("EventListView", "Hides/shows events with EventType set to OTHER/NOT_EXISTING", nullptr));
#endif // QT_CONFIG(tooltip)
cbHideOther->setText(QCoreApplication::translate("EventListView", "Hide other/fake events", nullptr));
#if QT_CONFIG(tooltip)
cbHideForeign->setToolTip(QCoreApplication::translate("EventListView", "Hides/shows events from non preferred agencies", nullptr));
#endif // QT_CONFIG(tooltip)
cbHideForeign->setText(QCoreApplication::translate("EventListView", "Show only own events", nullptr));
#if QT_CONFIG(tooltip)
cbShowLatestOnly->setToolTip(QCoreApplication::translate("EventListView", "Enables/disables the display of only one origin per agency (the latest one) or all origins", nullptr));
#endif // QT_CONFIG(tooltip)
cbShowLatestOnly->setText(QCoreApplication::translate("EventListView", "Show only latest/preferred origin per agency", nullptr));
cbFilterRegions->setText(QCoreApplication::translate("EventListView", "Hide events", nullptr));
cbFilterRegionMode->setItemText(0, QCoreApplication::translate("EventListView", "outside", nullptr));
cbFilterRegionMode->setItemText(1, QCoreApplication::translate("EventListView", "inside", nullptr));
btnChangeRegion->setText(QCoreApplication::translate("EventListView", "...", nullptr));
lbFilterRegions->setText(QCoreApplication::translate("EventListView", "region", nullptr));
} // retranslateUi
};
namespace Ui {
class EventListView: public Ui_EventListView {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_EVENTLISTVIEW_H

View File

@ -0,0 +1,306 @@
/********************************************************************************
** Form generated from reading UI file 'eventlistviewregionfilterdialog.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_EVENTLISTVIEWREGIONFILTERDIALOG_H
#define UI_EVENTLISTVIEWREGIONFILTERDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_EventListViewRegionFilterDialog
{
public:
QVBoxLayout *vboxLayout;
QGroupBox *groupBox;
QGridLayout *gridLayout;
QLabel *label_2;
QLabel *label_6;
QComboBox *cbRegions;
QLabel *label_8;
QLabel *label;
QHBoxLayout *hboxLayout;
QLineEdit *edMaxLon;
QLabel *label_11;
QLabel *label_7;
QHBoxLayout *hboxLayout1;
QLineEdit *edMinLon;
QLabel *label_9;
QHBoxLayout *hboxLayout2;
QLineEdit *edMaxLat;
QLabel *label_10;
QLabel *label_5;
QHBoxLayout *hboxLayout3;
QLineEdit *edMinLat;
QLabel *label_3;
QLabel *label_4;
QLabel *labelPolys;
QComboBox *cbPolys;
QSpacerItem *spacerItem;
QHBoxLayout *hboxLayout4;
QSpacerItem *spacerItem1;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *EventListViewRegionFilterDialog)
{
if (EventListViewRegionFilterDialog->objectName().isEmpty())
EventListViewRegionFilterDialog->setObjectName(QString::fromUtf8("EventListViewRegionFilterDialog"));
EventListViewRegionFilterDialog->resize(676, 642);
vboxLayout = new QVBoxLayout(EventListViewRegionFilterDialog);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
groupBox = new QGroupBox(EventListViewRegionFilterDialog);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
gridLayout = new QGridLayout(groupBox);
#ifndef Q_OS_MAC
gridLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
gridLayout->setContentsMargins(9, 9, 9, 9);
#endif
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label_2 = new QLabel(groupBox);
label_2->setObjectName(QString::fromUtf8("label_2"));
gridLayout->addWidget(label_2, 1, 1, 1, 1);
label_6 = new QLabel(groupBox);
label_6->setObjectName(QString::fromUtf8("label_6"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(label_6->sizePolicy().hasHeightForWidth());
label_6->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_6, 1, 0, 1, 1);
cbRegions = new QComboBox(groupBox);
cbRegions->setObjectName(QString::fromUtf8("cbRegions"));
gridLayout->addWidget(cbRegions, 0, 1, 1, 4);
label_8 = new QLabel(groupBox);
label_8->setObjectName(QString::fromUtf8("label_8"));
gridLayout->addWidget(label_8, 1, 3, 1, 1);
label = new QLabel(groupBox);
label->setObjectName(QString::fromUtf8("label"));
sizePolicy.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
label->setSizePolicy(sizePolicy);
gridLayout->addWidget(label, 0, 0, 1, 1);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
edMaxLon = new QLineEdit(groupBox);
edMaxLon->setObjectName(QString::fromUtf8("edMaxLon"));
edMaxLon->setMaxLength(11);
edMaxLon->setAlignment(Qt::AlignRight);
hboxLayout->addWidget(edMaxLon);
label_11 = new QLabel(groupBox);
label_11->setObjectName(QString::fromUtf8("label_11"));
hboxLayout->addWidget(label_11);
gridLayout->addLayout(hboxLayout, 2, 4, 1, 1);
label_7 = new QLabel(groupBox);
label_7->setObjectName(QString::fromUtf8("label_7"));
sizePolicy.setHeightForWidth(label_7->sizePolicy().hasHeightForWidth());
label_7->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_7, 2, 0, 1, 1);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
edMinLon = new QLineEdit(groupBox);
edMinLon->setObjectName(QString::fromUtf8("edMinLon"));
edMinLon->setMaxLength(11);
edMinLon->setAlignment(Qt::AlignRight);
hboxLayout1->addWidget(edMinLon);
label_9 = new QLabel(groupBox);
label_9->setObjectName(QString::fromUtf8("label_9"));
hboxLayout1->addWidget(label_9);
gridLayout->addLayout(hboxLayout1, 2, 2, 1, 1);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
edMaxLat = new QLineEdit(groupBox);
edMaxLat->setObjectName(QString::fromUtf8("edMaxLat"));
edMaxLat->setMaxLength(10);
edMaxLat->setAlignment(Qt::AlignRight);
hboxLayout2->addWidget(edMaxLat);
label_10 = new QLabel(groupBox);
label_10->setObjectName(QString::fromUtf8("label_10"));
hboxLayout2->addWidget(label_10);
gridLayout->addLayout(hboxLayout2, 1, 4, 1, 1);
label_5 = new QLabel(groupBox);
label_5->setObjectName(QString::fromUtf8("label_5"));
gridLayout->addWidget(label_5, 2, 3, 1, 1);
hboxLayout3 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout3->setSpacing(6);
#endif
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
edMinLat = new QLineEdit(groupBox);
edMinLat->setObjectName(QString::fromUtf8("edMinLat"));
edMinLat->setMaxLength(10);
edMinLat->setAlignment(Qt::AlignRight);
hboxLayout3->addWidget(edMinLat);
label_3 = new QLabel(groupBox);
label_3->setObjectName(QString::fromUtf8("label_3"));
hboxLayout3->addWidget(label_3);
gridLayout->addLayout(hboxLayout3, 1, 2, 1, 1);
label_4 = new QLabel(groupBox);
label_4->setObjectName(QString::fromUtf8("label_4"));
gridLayout->addWidget(label_4, 2, 1, 1, 1);
labelPolys = new QLabel(groupBox);
labelPolys->setObjectName(QString::fromUtf8("labelPolys"));
labelPolys->setEnabled(false);
gridLayout->addWidget(labelPolys, 3, 0, 1, 1);
cbPolys = new QComboBox(groupBox);
cbPolys->setObjectName(QString::fromUtf8("cbPolys"));
cbPolys->setEnabled(false);
gridLayout->addWidget(cbPolys, 3, 1, 1, 4);
vboxLayout->addWidget(groupBox);
spacerItem = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
hboxLayout4 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout4->setSpacing(6);
#endif
hboxLayout4->setContentsMargins(0, 0, 0, 0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem1);
okButton = new QPushButton(EventListViewRegionFilterDialog);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout4->addWidget(okButton);
cancelButton = new QPushButton(EventListViewRegionFilterDialog);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout4->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout4);
QWidget::setTabOrder(cbRegions, edMinLat);
QWidget::setTabOrder(edMinLat, edMaxLat);
QWidget::setTabOrder(edMaxLat, edMinLon);
QWidget::setTabOrder(edMinLon, edMaxLon);
QWidget::setTabOrder(edMaxLon, okButton);
QWidget::setTabOrder(okButton, cancelButton);
retranslateUi(EventListViewRegionFilterDialog);
QMetaObject::connectSlotsByName(EventListViewRegionFilterDialog);
} // setupUi
void retranslateUi(QDialog *EventListViewRegionFilterDialog)
{
EventListViewRegionFilterDialog->setWindowTitle(QCoreApplication::translate("EventListViewRegionFilterDialog", "Edit region", nullptr));
groupBox->setTitle(QCoreApplication::translate("EventListViewRegionFilterDialog", "Region", nullptr));
label_2->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "from", nullptr));
label_6->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "Latitude range", nullptr));
label_8->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "to", nullptr));
label->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "Template", nullptr));
edMaxLon->setText(QString());
label_11->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "\302\260 ", nullptr));
label_7->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "Longitude range", nullptr));
edMinLon->setText(QString());
label_9->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "\302\260 ", nullptr));
edMaxLat->setText(QString());
label_10->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "\302\260 ", nullptr));
label_5->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "to", nullptr));
edMinLat->setText(QString());
label_3->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "\302\260 ", nullptr));
label_4->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "from", nullptr));
#if QT_CONFIG(tooltip)
labelPolys->setToolTip(QCoreApplication::translate("EventListViewRegionFilterDialog", "If a polygon is selected then it will override the latitude/longitude rect.", nullptr));
#endif // QT_CONFIG(tooltip)
labelPolys->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "Polygon", nullptr));
okButton->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("EventListViewRegionFilterDialog", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class EventListViewRegionFilterDialog: public Ui_EventListViewRegionFilterDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_EVENTLISTVIEWREGIONFILTERDIALOG_H

View File

@ -0,0 +1,668 @@
/********************************************************************************
** Form generated from reading UI file 'eventsummary.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_EVENTSUMMARY_H
#define UI_EVENTSUMMARY_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_EventSummary
{
public:
QVBoxLayout *vboxLayout;
QLabel *originTime;
QLabel *timeAgo;
QHBoxLayout *hboxLayout;
QLabel *magnitudeText;
QLabel *magnitude;
QLabel *region;
QLabel *nearestCity;
QHBoxLayout *hboxLayout1;
QLabel *depthText;
QLabel *depth;
QHBoxLayout *hboxLayout2;
QLabel *latitude;
QSpacerItem *spacerItem;
QLabel *longitude;
QSpacerItem *spacerItem1;
QLabel *type;
QFrame *map;
QLabel *labelOpComment;
QFrame *labelOpCommentSeparator;
QFrame *magnitudes;
QFrame *separator1;
QLabel *thisLocationText;
QHBoxLayout *hboxLayout3;
QLabel *phaseCountText;
QLabel *phaseCount;
QHBoxLayout *hboxLayout4;
QLabel *azimuthalGapText;
QLabel *azimuthalGap;
QHBoxLayout *hboxLayout5;
QLabel *rmsText;
QLabel *rms;
QHBoxLayout *hboxLayout6;
QLabel *minimumDistanceText;
QLabel *minimumDistance;
QHBoxLayout *hboxLayout7;
QLabel *maximumDistanceText;
QLabel *maximumDistance;
QFrame *separator2;
QHBoxLayout *hboxLayout8;
QLabel *firstLocationText;
QLabel *firstLocation;
QHBoxLayout *hboxLayout9;
QLabel *eventIDText;
QLabel *eventID;
QHBoxLayout *hboxLayout10;
QLabel *originIDText;
QLabel *originID;
QHBoxLayout *hboxLayout11;
QLabel *originIDText_2;
QLabel *agencyID;
QHBoxLayout *hboxLayout12;
QLabel *state;
QLabel *mode;
QFrame *focalMechanism;
QVBoxLayout *vboxLayout1;
QFrame *separator3;
QHBoxLayout *hboxLayout13;
QVBoxLayout *vboxLayout2;
QFrame *frame;
QHBoxLayout *hboxLayout14;
QLabel *momentTensor;
QLabel *label;
QSpacerItem *spacerItem2;
QVBoxLayout *vboxLayout3;
QVBoxLayout *vboxLayout4;
QLabel *mw;
QLabel *fmDepth;
QSpacerItem *spacerItem3;
QSpacerItem *spacerItem4;
QHBoxLayout *hboxLayout15;
QSpacerItem *spacerItem5;
QPushButton *exportButton;
void setupUi(QWidget *EventSummary)
{
if (EventSummary->objectName().isEmpty())
EventSummary->setObjectName(QString::fromUtf8("EventSummary"));
EventSummary->resize(412, 762);
vboxLayout = new QVBoxLayout(EventSummary);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
vboxLayout->setContentsMargins(0, 0, 0, 0);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
originTime = new QLabel(EventSummary);
originTime->setObjectName(QString::fromUtf8("originTime"));
vboxLayout->addWidget(originTime);
timeAgo = new QLabel(EventSummary);
timeAgo->setObjectName(QString::fromUtf8("timeAgo"));
vboxLayout->addWidget(timeAgo);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
magnitudeText = new QLabel(EventSummary);
magnitudeText->setObjectName(QString::fromUtf8("magnitudeText"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(magnitudeText->sizePolicy().hasHeightForWidth());
magnitudeText->setSizePolicy(sizePolicy);
hboxLayout->addWidget(magnitudeText);
magnitude = new QLabel(EventSummary);
magnitude->setObjectName(QString::fromUtf8("magnitude"));
hboxLayout->addWidget(magnitude);
vboxLayout->addLayout(hboxLayout);
region = new QLabel(EventSummary);
region->setObjectName(QString::fromUtf8("region"));
QSizePolicy sizePolicy1(QSizePolicy::Ignored, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(region->sizePolicy().hasHeightForWidth());
region->setSizePolicy(sizePolicy1);
vboxLayout->addWidget(region);
nearestCity = new QLabel(EventSummary);
nearestCity->setObjectName(QString::fromUtf8("nearestCity"));
vboxLayout->addWidget(nearestCity);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
depthText = new QLabel(EventSummary);
depthText->setObjectName(QString::fromUtf8("depthText"));
sizePolicy.setHeightForWidth(depthText->sizePolicy().hasHeightForWidth());
depthText->setSizePolicy(sizePolicy);
hboxLayout1->addWidget(depthText);
depth = new QLabel(EventSummary);
depth->setObjectName(QString::fromUtf8("depth"));
hboxLayout1->addWidget(depth);
vboxLayout->addLayout(hboxLayout1);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
latitude = new QLabel(EventSummary);
latitude->setObjectName(QString::fromUtf8("latitude"));
hboxLayout2->addWidget(latitude);
spacerItem = new QSpacerItem(2, 5, QSizePolicy::Maximum, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem);
longitude = new QLabel(EventSummary);
longitude->setObjectName(QString::fromUtf8("longitude"));
hboxLayout2->addWidget(longitude);
spacerItem1 = new QSpacerItem(2, 5, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem1);
vboxLayout->addLayout(hboxLayout2);
type = new QLabel(EventSummary);
type->setObjectName(QString::fromUtf8("type"));
sizePolicy1.setHeightForWidth(type->sizePolicy().hasHeightForWidth());
type->setSizePolicy(sizePolicy1);
vboxLayout->addWidget(type);
map = new QFrame(EventSummary);
map->setObjectName(QString::fromUtf8("map"));
QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(map->sizePolicy().hasHeightForWidth());
map->setSizePolicy(sizePolicy2);
map->setFrameShape(QFrame::NoFrame);
map->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(map);
labelOpComment = new QLabel(EventSummary);
labelOpComment->setObjectName(QString::fromUtf8("labelOpComment"));
sizePolicy1.setHeightForWidth(labelOpComment->sizePolicy().hasHeightForWidth());
labelOpComment->setSizePolicy(sizePolicy1);
labelOpComment->setWordWrap(true);
vboxLayout->addWidget(labelOpComment);
labelOpCommentSeparator = new QFrame(EventSummary);
labelOpCommentSeparator->setObjectName(QString::fromUtf8("labelOpCommentSeparator"));
labelOpCommentSeparator->setFrameShape(QFrame::HLine);
labelOpCommentSeparator->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(labelOpCommentSeparator);
magnitudes = new QFrame(EventSummary);
magnitudes->setObjectName(QString::fromUtf8("magnitudes"));
magnitudes->setFrameShape(QFrame::NoFrame);
magnitudes->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(magnitudes);
separator1 = new QFrame(EventSummary);
separator1->setObjectName(QString::fromUtf8("separator1"));
separator1->setFrameShape(QFrame::HLine);
separator1->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(separator1);
thisLocationText = new QLabel(EventSummary);
thisLocationText->setObjectName(QString::fromUtf8("thisLocationText"));
vboxLayout->addWidget(thisLocationText);
hboxLayout3 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout3->setSpacing(6);
#endif
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
phaseCountText = new QLabel(EventSummary);
phaseCountText->setObjectName(QString::fromUtf8("phaseCountText"));
hboxLayout3->addWidget(phaseCountText);
phaseCount = new QLabel(EventSummary);
phaseCount->setObjectName(QString::fromUtf8("phaseCount"));
hboxLayout3->addWidget(phaseCount);
vboxLayout->addLayout(hboxLayout3);
hboxLayout4 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout4->setSpacing(6);
#endif
hboxLayout4->setContentsMargins(0, 0, 0, 0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
azimuthalGapText = new QLabel(EventSummary);
azimuthalGapText->setObjectName(QString::fromUtf8("azimuthalGapText"));
hboxLayout4->addWidget(azimuthalGapText);
azimuthalGap = new QLabel(EventSummary);
azimuthalGap->setObjectName(QString::fromUtf8("azimuthalGap"));
hboxLayout4->addWidget(azimuthalGap);
vboxLayout->addLayout(hboxLayout4);
hboxLayout5 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout5->setSpacing(6);
#endif
hboxLayout5->setContentsMargins(0, 0, 0, 0);
hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
rmsText = new QLabel(EventSummary);
rmsText->setObjectName(QString::fromUtf8("rmsText"));
hboxLayout5->addWidget(rmsText);
rms = new QLabel(EventSummary);
rms->setObjectName(QString::fromUtf8("rms"));
hboxLayout5->addWidget(rms);
vboxLayout->addLayout(hboxLayout5);
hboxLayout6 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout6->setSpacing(6);
#endif
hboxLayout6->setContentsMargins(0, 0, 0, 0);
hboxLayout6->setObjectName(QString::fromUtf8("hboxLayout6"));
minimumDistanceText = new QLabel(EventSummary);
minimumDistanceText->setObjectName(QString::fromUtf8("minimumDistanceText"));
hboxLayout6->addWidget(minimumDistanceText);
minimumDistance = new QLabel(EventSummary);
minimumDistance->setObjectName(QString::fromUtf8("minimumDistance"));
hboxLayout6->addWidget(minimumDistance);
vboxLayout->addLayout(hboxLayout6);
hboxLayout7 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout7->setSpacing(6);
#endif
hboxLayout7->setContentsMargins(0, 0, 0, 0);
hboxLayout7->setObjectName(QString::fromUtf8("hboxLayout7"));
maximumDistanceText = new QLabel(EventSummary);
maximumDistanceText->setObjectName(QString::fromUtf8("maximumDistanceText"));
hboxLayout7->addWidget(maximumDistanceText);
maximumDistance = new QLabel(EventSummary);
maximumDistance->setObjectName(QString::fromUtf8("maximumDistance"));
hboxLayout7->addWidget(maximumDistance);
vboxLayout->addLayout(hboxLayout7);
separator2 = new QFrame(EventSummary);
separator2->setObjectName(QString::fromUtf8("separator2"));
separator2->setFrameShape(QFrame::HLine);
separator2->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(separator2);
hboxLayout8 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout8->setSpacing(6);
#endif
hboxLayout8->setContentsMargins(0, 0, 0, 0);
hboxLayout8->setObjectName(QString::fromUtf8("hboxLayout8"));
firstLocationText = new QLabel(EventSummary);
firstLocationText->setObjectName(QString::fromUtf8("firstLocationText"));
hboxLayout8->addWidget(firstLocationText);
firstLocation = new QLabel(EventSummary);
firstLocation->setObjectName(QString::fromUtf8("firstLocation"));
hboxLayout8->addWidget(firstLocation);
vboxLayout->addLayout(hboxLayout8);
hboxLayout9 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout9->setSpacing(6);
#endif
hboxLayout9->setContentsMargins(0, 0, 0, 0);
hboxLayout9->setObjectName(QString::fromUtf8("hboxLayout9"));
eventIDText = new QLabel(EventSummary);
eventIDText->setObjectName(QString::fromUtf8("eventIDText"));
hboxLayout9->addWidget(eventIDText);
eventID = new QLabel(EventSummary);
eventID->setObjectName(QString::fromUtf8("eventID"));
sizePolicy1.setHeightForWidth(eventID->sizePolicy().hasHeightForWidth());
eventID->setSizePolicy(sizePolicy1);
hboxLayout9->addWidget(eventID);
vboxLayout->addLayout(hboxLayout9);
hboxLayout10 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout10->setSpacing(6);
#endif
hboxLayout10->setContentsMargins(0, 0, 0, 0);
hboxLayout10->setObjectName(QString::fromUtf8("hboxLayout10"));
originIDText = new QLabel(EventSummary);
originIDText->setObjectName(QString::fromUtf8("originIDText"));
hboxLayout10->addWidget(originIDText);
originID = new QLabel(EventSummary);
originID->setObjectName(QString::fromUtf8("originID"));
sizePolicy1.setHeightForWidth(originID->sizePolicy().hasHeightForWidth());
originID->setSizePolicy(sizePolicy1);
hboxLayout10->addWidget(originID);
vboxLayout->addLayout(hboxLayout10);
hboxLayout11 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout11->setSpacing(6);
#endif
hboxLayout11->setContentsMargins(0, 0, 0, 0);
hboxLayout11->setObjectName(QString::fromUtf8("hboxLayout11"));
originIDText_2 = new QLabel(EventSummary);
originIDText_2->setObjectName(QString::fromUtf8("originIDText_2"));
hboxLayout11->addWidget(originIDText_2);
agencyID = new QLabel(EventSummary);
agencyID->setObjectName(QString::fromUtf8("agencyID"));
sizePolicy1.setHeightForWidth(agencyID->sizePolicy().hasHeightForWidth());
agencyID->setSizePolicy(sizePolicy1);
hboxLayout11->addWidget(agencyID);
vboxLayout->addLayout(hboxLayout11);
hboxLayout12 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout12->setSpacing(6);
#endif
hboxLayout12->setContentsMargins(0, 0, 0, 0);
hboxLayout12->setObjectName(QString::fromUtf8("hboxLayout12"));
state = new QLabel(EventSummary);
state->setObjectName(QString::fromUtf8("state"));
hboxLayout12->addWidget(state);
mode = new QLabel(EventSummary);
mode->setObjectName(QString::fromUtf8("mode"));
sizePolicy1.setHeightForWidth(mode->sizePolicy().hasHeightForWidth());
mode->setSizePolicy(sizePolicy1);
hboxLayout12->addWidget(mode);
vboxLayout->addLayout(hboxLayout12);
focalMechanism = new QFrame(EventSummary);
focalMechanism->setObjectName(QString::fromUtf8("focalMechanism"));
QSizePolicy sizePolicy3(QSizePolicy::Preferred, QSizePolicy::Minimum);
sizePolicy3.setHorizontalStretch(0);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(focalMechanism->sizePolicy().hasHeightForWidth());
focalMechanism->setSizePolicy(sizePolicy3);
focalMechanism->setMinimumSize(QSize(16, 60));
focalMechanism->setFrameShape(QFrame::NoFrame);
focalMechanism->setFrameShadow(QFrame::Raised);
vboxLayout1 = new QVBoxLayout(focalMechanism);
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
separator3 = new QFrame(focalMechanism);
separator3->setObjectName(QString::fromUtf8("separator3"));
separator3->setFrameShape(QFrame::HLine);
separator3->setFrameShadow(QFrame::Sunken);
vboxLayout1->addWidget(separator3);
hboxLayout13 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout13->setSpacing(6);
#endif
hboxLayout13->setContentsMargins(0, 0, 0, 0);
hboxLayout13->setObjectName(QString::fromUtf8("hboxLayout13"));
vboxLayout2 = new QVBoxLayout();
vboxLayout2->setSpacing(0);
#ifndef Q_OS_MAC
vboxLayout2->setContentsMargins(0, 0, 0, 0);
#endif
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
frame = new QFrame(focalMechanism);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::NoFrame);
frame->setFrameShadow(QFrame::Raised);
hboxLayout14 = new QHBoxLayout(frame);
hboxLayout14->setSpacing(0);
hboxLayout14->setContentsMargins(0, 0, 0, 0);
hboxLayout14->setObjectName(QString::fromUtf8("hboxLayout14"));
momentTensor = new QLabel(frame);
momentTensor->setObjectName(QString::fromUtf8("momentTensor"));
momentTensor->setEnabled(true);
QSizePolicy sizePolicy4(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy4.setHorizontalStretch(0);
sizePolicy4.setVerticalStretch(0);
sizePolicy4.setHeightForWidth(momentTensor->sizePolicy().hasHeightForWidth());
momentTensor->setSizePolicy(sizePolicy4);
momentTensor->setMinimumSize(QSize(42, 42));
momentTensor->setMaximumSize(QSize(42, 42));
momentTensor->setFrameShape(QFrame::NoFrame);
momentTensor->setFrameShadow(QFrame::Sunken);
hboxLayout14->addWidget(momentTensor);
label = new QLabel(frame);
label->setObjectName(QString::fromUtf8("label"));
hboxLayout14->addWidget(label);
vboxLayout2->addWidget(frame);
spacerItem2 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout2->addItem(spacerItem2);
hboxLayout13->addLayout(vboxLayout2);
vboxLayout3 = new QVBoxLayout();
vboxLayout3->setSpacing(0);
vboxLayout3->setContentsMargins(0, 0, 0, 0);
vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3"));
vboxLayout4 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout4->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout4->setContentsMargins(0, 0, 0, 0);
#endif
vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4"));
mw = new QLabel(focalMechanism);
mw->setObjectName(QString::fromUtf8("mw"));
QSizePolicy sizePolicy5(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy5.setHorizontalStretch(0);
sizePolicy5.setVerticalStretch(0);
sizePolicy5.setHeightForWidth(mw->sizePolicy().hasHeightForWidth());
mw->setSizePolicy(sizePolicy5);
vboxLayout4->addWidget(mw);
fmDepth = new QLabel(focalMechanism);
fmDepth->setObjectName(QString::fromUtf8("fmDepth"));
sizePolicy5.setHeightForWidth(fmDepth->sizePolicy().hasHeightForWidth());
fmDepth->setSizePolicy(sizePolicy5);
vboxLayout4->addWidget(fmDepth);
vboxLayout3->addLayout(vboxLayout4);
spacerItem3 = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout3->addItem(spacerItem3);
hboxLayout13->addLayout(vboxLayout3);
vboxLayout1->addLayout(hboxLayout13);
vboxLayout->addWidget(focalMechanism);
spacerItem4 = new QSpacerItem(20, 51, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem4);
hboxLayout15 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout15->setSpacing(6);
#endif
hboxLayout15->setContentsMargins(0, 0, 0, 0);
hboxLayout15->setObjectName(QString::fromUtf8("hboxLayout15"));
spacerItem5 = new QSpacerItem(10, 1, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout15->addItem(spacerItem5);
exportButton = new QPushButton(EventSummary);
exportButton->setObjectName(QString::fromUtf8("exportButton"));
exportButton->setIconSize(QSize(46, 32));
hboxLayout15->addWidget(exportButton);
vboxLayout->addLayout(hboxLayout15);
retranslateUi(EventSummary);
QMetaObject::connectSlotsByName(EventSummary);
} // setupUi
void retranslateUi(QWidget *EventSummary)
{
EventSummary->setWindowTitle(QCoreApplication::translate("EventSummary", "Form", nullptr));
originTime->setText(QCoreApplication::translate("EventSummary", "1970/01/01 - 00:00:00", nullptr));
timeAgo->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
magnitudeText->setText(QCoreApplication::translate("EventSummary", "M", nullptr));
magnitude->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
region->setText(QCoreApplication::translate("EventSummary", "...", nullptr));
nearestCity->setText(QCoreApplication::translate("EventSummary", "200 km SW of City XYZ", nullptr));
depthText->setText(QCoreApplication::translate("EventSummary", "Depth", nullptr));
depth->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
latitude->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
longitude->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
type->setText(QString());
labelOpComment->setText(QString());
thisLocationText->setText(QCoreApplication::translate("EventSummary", "Location:", nullptr));
phaseCountText->setText(QCoreApplication::translate("EventSummary", "Phases:", nullptr));
phaseCount->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
azimuthalGapText->setText(QCoreApplication::translate("EventSummary", "Az. Gap:", nullptr));
azimuthalGap->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
rmsText->setText(QCoreApplication::translate("EventSummary", "RMS Res.:", nullptr));
rms->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
minimumDistanceText->setText(QCoreApplication::translate("EventSummary", "Min. Dist.:", nullptr));
minimumDistance->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
maximumDistanceText->setText(QCoreApplication::translate("EventSummary", "Max. Dist.:", nullptr));
maximumDistance->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
firstLocationText->setText(QCoreApplication::translate("EventSummary", "First Location:", nullptr));
firstLocation->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
eventIDText->setText(QCoreApplication::translate("EventSummary", "Event ID:", nullptr));
eventID->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
originIDText->setText(QCoreApplication::translate("EventSummary", "Origin ID:", nullptr));
originID->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
originIDText_2->setText(QCoreApplication::translate("EventSummary", "Agency ID:", nullptr));
agencyID->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
state->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
mode->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
momentTensor->setText(QString());
label->setText(QString());
mw->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
fmDepth->setText(QCoreApplication::translate("EventSummary", "-", nullptr));
#if QT_CONFIG(tooltip)
exportButton->setToolTip(QCoreApplication::translate("EventSummary", "Run configured script with current event", nullptr));
#endif // QT_CONFIG(tooltip)
exportButton->setText(QString());
} // retranslateUi
};
namespace Ui {
class EventSummary: public Ui_EventSummary {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_EVENTSUMMARY_H

View File

@ -0,0 +1,375 @@
/********************************************************************************
** Form generated from reading UI file 'eventsummaryview.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_EVENTSUMMARYVIEW_H
#define UI_EVENTSUMMARYVIEW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_EventSummaryView
{
public:
QAction *actionShowInvisibleMagnitudes;
QHBoxLayout *hboxLayout;
QFrame *frameRegion;
QVBoxLayout *vboxLayout;
QLabel *_lbOriginTime;
QLabel *_lbOriginTimeAutomatic;
QLabel *_lbTimeAgo;
QLabel *_lbRegion;
QLabel *_lbRegionExtra;
QFrame *frameMap;
QFrame *frameHDistance;
QVBoxLayout *vboxLayout1;
QFrame *frameMagnitudes;
QVBoxLayout *vboxLayout2;
QHBoxLayout *hboxLayout1;
QLabel *_lbPreMagType;
QLabel *_lbPreMagVal;
QSpacerItem *spacerItem;
QLabel *labelDepth;
QHBoxLayout *hboxLayout2;
QLabel *labelCustomName;
QLabel *labelCustomValue;
QFrame *frameMagnitudeDistance;
QFrame *frameVDistance;
QFrame *frameEpicenterInformation;
QFrame *frameProcessing;
QHBoxLayout *hboxLayout3;
QPushButton *btnSwitchToAutomatic;
QSpacerItem *spacerItem1;
QPushButton *btnShowDetails;
QFrame *framePlugable;
QHBoxLayout *hboxLayout4;
QPushButton *btnPlugable0;
QSpacerItem *spacerItem2;
QPushButton *btnPlugable1;
void setupUi(QWidget *EventSummaryView)
{
if (EventSummaryView->objectName().isEmpty())
EventSummaryView->setObjectName(QString::fromUtf8("EventSummaryView"));
EventSummaryView->resize(941, 678);
actionShowInvisibleMagnitudes = new QAction(EventSummaryView);
actionShowInvisibleMagnitudes->setObjectName(QString::fromUtf8("actionShowInvisibleMagnitudes"));
actionShowInvisibleMagnitudes->setCheckable(true);
actionShowInvisibleMagnitudes->setChecked(false);
hboxLayout = new QHBoxLayout(EventSummaryView);
hboxLayout->setSpacing(6);
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
frameRegion = new QFrame(EventSummaryView);
frameRegion->setObjectName(QString::fromUtf8("frameRegion"));
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(5);
sizePolicy.setVerticalStretch(5);
sizePolicy.setHeightForWidth(frameRegion->sizePolicy().hasHeightForWidth());
frameRegion->setSizePolicy(sizePolicy);
frameRegion->setMaximumSize(QSize(16777215, 16777215));
frameRegion->setBaseSize(QSize(0, 0));
frameRegion->setFrameShape(QFrame::NoFrame);
frameRegion->setFrameShadow(QFrame::Raised);
vboxLayout = new QVBoxLayout(frameRegion);
vboxLayout->setSpacing(6);
vboxLayout->setContentsMargins(0, 0, 0, 0);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
_lbOriginTime = new QLabel(frameRegion);
_lbOriginTime->setObjectName(QString::fromUtf8("_lbOriginTime"));
QSizePolicy sizePolicy1(QSizePolicy::MinimumExpanding, QSizePolicy::Maximum);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(_lbOriginTime->sizePolicy().hasHeightForWidth());
_lbOriginTime->setSizePolicy(sizePolicy1);
vboxLayout->addWidget(_lbOriginTime);
_lbOriginTimeAutomatic = new QLabel(frameRegion);
_lbOriginTimeAutomatic->setObjectName(QString::fromUtf8("_lbOriginTimeAutomatic"));
vboxLayout->addWidget(_lbOriginTimeAutomatic);
_lbTimeAgo = new QLabel(frameRegion);
_lbTimeAgo->setObjectName(QString::fromUtf8("_lbTimeAgo"));
QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Maximum);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(_lbTimeAgo->sizePolicy().hasHeightForWidth());
_lbTimeAgo->setSizePolicy(sizePolicy2);
vboxLayout->addWidget(_lbTimeAgo);
_lbRegion = new QLabel(frameRegion);
_lbRegion->setObjectName(QString::fromUtf8("_lbRegion"));
QSizePolicy sizePolicy3(QSizePolicy::Ignored, QSizePolicy::Maximum);
sizePolicy3.setHorizontalStretch(0);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(_lbRegion->sizePolicy().hasHeightForWidth());
_lbRegion->setSizePolicy(sizePolicy3);
_lbRegion->setScaledContents(false);
vboxLayout->addWidget(_lbRegion);
_lbRegionExtra = new QLabel(frameRegion);
_lbRegionExtra->setObjectName(QString::fromUtf8("_lbRegionExtra"));
vboxLayout->addWidget(_lbRegionExtra);
frameMap = new QFrame(frameRegion);
frameMap->setObjectName(QString::fromUtf8("frameMap"));
QSizePolicy sizePolicy4(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
sizePolicy4.setHorizontalStretch(1);
sizePolicy4.setVerticalStretch(1);
sizePolicy4.setHeightForWidth(frameMap->sizePolicy().hasHeightForWidth());
frameMap->setSizePolicy(sizePolicy4);
frameMap->setFrameShape(QFrame::StyledPanel);
frameMap->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(frameMap);
hboxLayout->addWidget(frameRegion);
frameHDistance = new QFrame(EventSummaryView);
frameHDistance->setObjectName(QString::fromUtf8("frameHDistance"));
QSizePolicy sizePolicy5(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy5.setHorizontalStretch(0);
sizePolicy5.setVerticalStretch(0);
sizePolicy5.setHeightForWidth(frameHDistance->sizePolicy().hasHeightForWidth());
frameHDistance->setSizePolicy(sizePolicy5);
frameHDistance->setMinimumSize(QSize(8, 16));
frameHDistance->setFrameShape(QFrame::NoFrame);
frameHDistance->setFrameShadow(QFrame::Plain);
hboxLayout->addWidget(frameHDistance);
vboxLayout1 = new QVBoxLayout();
vboxLayout1->setSpacing(6);
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
frameMagnitudes = new QFrame(EventSummaryView);
frameMagnitudes->setObjectName(QString::fromUtf8("frameMagnitudes"));
sizePolicy2.setHeightForWidth(frameMagnitudes->sizePolicy().hasHeightForWidth());
frameMagnitudes->setSizePolicy(sizePolicy2);
frameMagnitudes->setMaximumSize(QSize(16777215, 400));
frameMagnitudes->setBaseSize(QSize(0, 0));
frameMagnitudes->setFrameShape(QFrame::StyledPanel);
frameMagnitudes->setFrameShadow(QFrame::Raised);
vboxLayout2 = new QVBoxLayout(frameMagnitudes);
vboxLayout2->setSpacing(4);
vboxLayout2->setContentsMargins(4, 4, 4, 4);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
hboxLayout1 = new QHBoxLayout();
hboxLayout1->setSpacing(10);
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
_lbPreMagType = new QLabel(frameMagnitudes);
_lbPreMagType->setObjectName(QString::fromUtf8("_lbPreMagType"));
QSizePolicy sizePolicy6(QSizePolicy::Maximum, QSizePolicy::Maximum);
sizePolicy6.setHorizontalStretch(0);
sizePolicy6.setVerticalStretch(0);
sizePolicy6.setHeightForWidth(_lbPreMagType->sizePolicy().hasHeightForWidth());
_lbPreMagType->setSizePolicy(sizePolicy6);
hboxLayout1->addWidget(_lbPreMagType);
_lbPreMagVal = new QLabel(frameMagnitudes);
_lbPreMagVal->setObjectName(QString::fromUtf8("_lbPreMagVal"));
QSizePolicy sizePolicy7(QSizePolicy::Minimum, QSizePolicy::Maximum);
sizePolicy7.setHorizontalStretch(0);
sizePolicy7.setVerticalStretch(0);
sizePolicy7.setHeightForWidth(_lbPreMagVal->sizePolicy().hasHeightForWidth());
_lbPreMagVal->setSizePolicy(sizePolicy7);
hboxLayout1->addWidget(_lbPreMagVal);
spacerItem = new QSpacerItem(20, 5, QSizePolicy::Minimum, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem);
labelDepth = new QLabel(frameMagnitudes);
labelDepth->setObjectName(QString::fromUtf8("labelDepth"));
labelDepth->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
hboxLayout1->addWidget(labelDepth);
vboxLayout2->addLayout(hboxLayout1);
hboxLayout2 = new QHBoxLayout();
hboxLayout2->setSpacing(10);
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
labelCustomName = new QLabel(frameMagnitudes);
labelCustomName->setObjectName(QString::fromUtf8("labelCustomName"));
sizePolicy5.setHeightForWidth(labelCustomName->sizePolicy().hasHeightForWidth());
labelCustomName->setSizePolicy(sizePolicy5);
hboxLayout2->addWidget(labelCustomName);
labelCustomValue = new QLabel(frameMagnitudes);
labelCustomValue->setObjectName(QString::fromUtf8("labelCustomValue"));
QSizePolicy sizePolicy8(QSizePolicy::Ignored, QSizePolicy::Preferred);
sizePolicy8.setHorizontalStretch(0);
sizePolicy8.setVerticalStretch(0);
sizePolicy8.setHeightForWidth(labelCustomValue->sizePolicy().hasHeightForWidth());
labelCustomValue->setSizePolicy(sizePolicy8);
hboxLayout2->addWidget(labelCustomValue);
vboxLayout2->addLayout(hboxLayout2);
frameMagnitudeDistance = new QFrame(frameMagnitudes);
frameMagnitudeDistance->setObjectName(QString::fromUtf8("frameMagnitudeDistance"));
frameMagnitudeDistance->setFrameShape(QFrame::NoFrame);
frameMagnitudeDistance->setFrameShadow(QFrame::Raised);
vboxLayout2->addWidget(frameMagnitudeDistance);
vboxLayout1->addWidget(frameMagnitudes);
frameVDistance = new QFrame(EventSummaryView);
frameVDistance->setObjectName(QString::fromUtf8("frameVDistance"));
frameVDistance->setMinimumSize(QSize(8, 8));
frameVDistance->setFrameShape(QFrame::NoFrame);
frameVDistance->setFrameShadow(QFrame::Plain);
vboxLayout1->addWidget(frameVDistance);
frameEpicenterInformation = new QFrame(EventSummaryView);
frameEpicenterInformation->setObjectName(QString::fromUtf8("frameEpicenterInformation"));
QSizePolicy sizePolicy9(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
sizePolicy9.setHorizontalStretch(0);
sizePolicy9.setVerticalStretch(0);
sizePolicy9.setHeightForWidth(frameEpicenterInformation->sizePolicy().hasHeightForWidth());
frameEpicenterInformation->setSizePolicy(sizePolicy9);
frameEpicenterInformation->setFrameShape(QFrame::NoFrame);
vboxLayout1->addWidget(frameEpicenterInformation);
frameProcessing = new QFrame(EventSummaryView);
frameProcessing->setObjectName(QString::fromUtf8("frameProcessing"));
frameProcessing->setEnabled(true);
sizePolicy2.setHeightForWidth(frameProcessing->sizePolicy().hasHeightForWidth());
frameProcessing->setSizePolicy(sizePolicy2);
frameProcessing->setFrameShape(QFrame::StyledPanel);
frameProcessing->setFrameShadow(QFrame::Raised);
hboxLayout3 = new QHBoxLayout(frameProcessing);
hboxLayout3->setSpacing(6);
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
btnSwitchToAutomatic = new QPushButton(frameProcessing);
btnSwitchToAutomatic->setObjectName(QString::fromUtf8("btnSwitchToAutomatic"));
btnSwitchToAutomatic->setEnabled(false);
hboxLayout3->addWidget(btnSwitchToAutomatic);
spacerItem1 = new QSpacerItem(0, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout3->addItem(spacerItem1);
btnShowDetails = new QPushButton(frameProcessing);
btnShowDetails->setObjectName(QString::fromUtf8("btnShowDetails"));
btnShowDetails->setEnabled(false);
QSizePolicy sizePolicy10(QSizePolicy::Maximum, QSizePolicy::Fixed);
sizePolicy10.setHorizontalStretch(0);
sizePolicy10.setVerticalStretch(0);
sizePolicy10.setHeightForWidth(btnShowDetails->sizePolicy().hasHeightForWidth());
btnShowDetails->setSizePolicy(sizePolicy10);
hboxLayout3->addWidget(btnShowDetails);
vboxLayout1->addWidget(frameProcessing);
framePlugable = new QFrame(EventSummaryView);
framePlugable->setObjectName(QString::fromUtf8("framePlugable"));
framePlugable->setFrameShape(QFrame::StyledPanel);
framePlugable->setFrameShadow(QFrame::Raised);
hboxLayout4 = new QHBoxLayout(framePlugable);
hboxLayout4->setSpacing(6);
hboxLayout4->setContentsMargins(0, 0, 0, 0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
btnPlugable0 = new QPushButton(framePlugable);
btnPlugable0->setObjectName(QString::fromUtf8("btnPlugable0"));
btnPlugable0->setEnabled(false);
sizePolicy10.setHeightForWidth(btnPlugable0->sizePolicy().hasHeightForWidth());
btnPlugable0->setSizePolicy(sizePolicy10);
btnPlugable0->setMinimumSize(QSize(0, 0));
hboxLayout4->addWidget(btnPlugable0);
spacerItem2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem2);
btnPlugable1 = new QPushButton(framePlugable);
btnPlugable1->setObjectName(QString::fromUtf8("btnPlugable1"));
btnPlugable1->setEnabled(false);
sizePolicy10.setHeightForWidth(btnPlugable1->sizePolicy().hasHeightForWidth());
btnPlugable1->setSizePolicy(sizePolicy10);
btnPlugable1->setMinimumSize(QSize(0, 0));
hboxLayout4->addWidget(btnPlugable1);
vboxLayout1->addWidget(framePlugable);
hboxLayout->addLayout(vboxLayout1);
retranslateUi(EventSummaryView);
QMetaObject::connectSlotsByName(EventSummaryView);
} // setupUi
void retranslateUi(QWidget *EventSummaryView)
{
EventSummaryView->setWindowTitle(QCoreApplication::translate("EventSummaryView", "EventSummaryView", nullptr));
actionShowInvisibleMagnitudes->setText(QCoreApplication::translate("EventSummaryView", "Show invisible magnitudes", nullptr));
#if QT_CONFIG(shortcut)
actionShowInvisibleMagnitudes->setShortcut(QCoreApplication::translate("EventSummaryView", "Ctrl+Alt+Shift+I", nullptr));
#endif // QT_CONFIG(shortcut)
_lbOriginTime->setText(QCoreApplication::translate("EventSummaryView", "0000/00/00 - 00.00.00.000 UTC", nullptr));
_lbOriginTimeAutomatic->setText(QCoreApplication::translate("EventSummaryView", "0000/00/00 - 00.00.00.000 UTC", nullptr));
_lbTimeAgo->setText(QCoreApplication::translate("EventSummaryView", "00 Min. 00 Sec. ago", nullptr));
_lbRegion->setText(QCoreApplication::translate("EventSummaryView", "region", nullptr));
_lbRegionExtra->setText(QCoreApplication::translate("EventSummaryView", "regionInformation", nullptr));
_lbPreMagType->setText(QCoreApplication::translate("EventSummaryView", "mb", nullptr));
_lbPreMagVal->setText(QCoreApplication::translate("EventSummaryView", "---", nullptr));
labelDepth->setText(QCoreApplication::translate("EventSummaryView", "0 km", nullptr));
labelCustomName->setText(QCoreApplication::translate("EventSummaryView", "...", nullptr));
labelCustomValue->setText(QCoreApplication::translate("EventSummaryView", "-", nullptr));
btnSwitchToAutomatic->setText(QCoreApplication::translate("EventSummaryView", "Fix automatic solutions", nullptr));
btnShowDetails->setText(QCoreApplication::translate("EventSummaryView", "Show Details", nullptr));
btnPlugable0->setText(QCoreApplication::translate("EventSummaryView", "Button0", nullptr));
btnPlugable1->setText(QCoreApplication::translate("EventSummaryView", "Button1", nullptr));
} // retranslateUi
};
namespace Ui {
class EventSummaryView: public Ui_EventSummaryView {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_EVENTSUMMARYVIEW_H

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,255 @@
/********************************************************************************
** Form generated from reading UI file 'importpicks.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_IMPORTPICKS_H
#define UI_IMPORTPICKS_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QRadioButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_ImportPicks
{
public:
QVBoxLayout *vboxLayout;
QLabel *label;
QRadioButton *radioLatestOrigin;
QHBoxLayout *hboxLayout;
QSpacerItem *spacerItem;
QLabel *label_2;
QRadioButton *radioLatestAutomaticOrigin;
QHBoxLayout *hboxLayout1;
QSpacerItem *spacerItem1;
QLabel *label_5;
QRadioButton *radioMaxPhaseOrigin;
QHBoxLayout *hboxLayout2;
QSpacerItem *spacerItem2;
QLabel *label_3;
QRadioButton *radioAllOrigins;
QHBoxLayout *hboxLayout3;
QSpacerItem *spacerItem3;
QLabel *label_4;
QSpacerItem *spacerItem4;
QCheckBox *checkAllAgencies;
QCheckBox *checkAllPhases;
QCheckBox *checkPreferTargetPhases;
QHBoxLayout *hboxLayout4;
QSpacerItem *spacerItem5;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *ImportPicks)
{
if (ImportPicks->objectName().isEmpty())
ImportPicks->setObjectName(QString::fromUtf8("ImportPicks"));
ImportPicks->resize(415, 499);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(ImportPicks->sizePolicy().hasHeightForWidth());
ImportPicks->setSizePolicy(sizePolicy);
vboxLayout = new QVBoxLayout(ImportPicks);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
label = new QLabel(ImportPicks);
label->setObjectName(QString::fromUtf8("label"));
label->setWordWrap(true);
vboxLayout->addWidget(label);
radioLatestOrigin = new QRadioButton(ImportPicks);
radioLatestOrigin->setObjectName(QString::fromUtf8("radioLatestOrigin"));
radioLatestOrigin->setChecked(true);
vboxLayout->addWidget(radioLatestOrigin);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
spacerItem = new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
label_2 = new QLabel(ImportPicks);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setWordWrap(true);
hboxLayout->addWidget(label_2);
vboxLayout->addLayout(hboxLayout);
radioLatestAutomaticOrigin = new QRadioButton(ImportPicks);
radioLatestAutomaticOrigin->setObjectName(QString::fromUtf8("radioLatestAutomaticOrigin"));
vboxLayout->addWidget(radioLatestAutomaticOrigin);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
spacerItem1 = new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
label_5 = new QLabel(ImportPicks);
label_5->setObjectName(QString::fromUtf8("label_5"));
label_5->setWordWrap(true);
hboxLayout1->addWidget(label_5);
vboxLayout->addLayout(hboxLayout1);
radioMaxPhaseOrigin = new QRadioButton(ImportPicks);
radioMaxPhaseOrigin->setObjectName(QString::fromUtf8("radioMaxPhaseOrigin"));
vboxLayout->addWidget(radioMaxPhaseOrigin);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
spacerItem2 = new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem2);
label_3 = new QLabel(ImportPicks);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setWordWrap(true);
hboxLayout2->addWidget(label_3);
vboxLayout->addLayout(hboxLayout2);
radioAllOrigins = new QRadioButton(ImportPicks);
radioAllOrigins->setObjectName(QString::fromUtf8("radioAllOrigins"));
vboxLayout->addWidget(radioAllOrigins);
hboxLayout3 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout3->setSpacing(6);
#endif
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
spacerItem3 = new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout3->addItem(spacerItem3);
label_4 = new QLabel(ImportPicks);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setWordWrap(true);
hboxLayout3->addWidget(label_4);
vboxLayout->addLayout(hboxLayout3);
spacerItem4 = new QSpacerItem(397, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem4);
checkAllAgencies = new QCheckBox(ImportPicks);
checkAllAgencies->setObjectName(QString::fromUtf8("checkAllAgencies"));
vboxLayout->addWidget(checkAllAgencies);
checkAllPhases = new QCheckBox(ImportPicks);
checkAllPhases->setObjectName(QString::fromUtf8("checkAllPhases"));
checkAllPhases->setChecked(true);
vboxLayout->addWidget(checkAllPhases);
checkPreferTargetPhases = new QCheckBox(ImportPicks);
checkPreferTargetPhases->setObjectName(QString::fromUtf8("checkPreferTargetPhases"));
checkPreferTargetPhases->setChecked(true);
vboxLayout->addWidget(checkPreferTargetPhases);
hboxLayout4 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout4->setSpacing(6);
#endif
hboxLayout4->setContentsMargins(0, 0, 0, 0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
spacerItem5 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem5);
okButton = new QPushButton(ImportPicks);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout4->addWidget(okButton);
cancelButton = new QPushButton(ImportPicks);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout4->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout4);
retranslateUi(ImportPicks);
QObject::connect(okButton, SIGNAL(clicked()), ImportPicks, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), ImportPicks, SLOT(reject()));
QMetaObject::connectSlotsByName(ImportPicks);
} // setupUi
void retranslateUi(QDialog *ImportPicks)
{
ImportPicks->setWindowTitle(QCoreApplication::translate("ImportPicks", "Import picks", nullptr));
label->setText(QCoreApplication::translate("ImportPicks", "Please select the picks of the origin(s) you want to import. Streams that are picked already are going to be ignored.", nullptr));
radioLatestOrigin->setText(QCoreApplication::translate("ImportPicks", "Latest origin", nullptr));
label_2->setText(QCoreApplication::translate("ImportPicks", "Imports the picks and corresponding weights of the latest origin belonging to the event including manual solutions (e.g. created by another operator).", nullptr));
radioLatestAutomaticOrigin->setText(QCoreApplication::translate("ImportPicks", "Latest automatic origin", nullptr));
label_5->setText(QCoreApplication::translate("ImportPicks", "Imports the picks and corresponding weights of the latest automatic origin belonging to the event. Manual solutions are going to be ignored.", nullptr));
radioMaxPhaseOrigin->setText(QCoreApplication::translate("ImportPicks", "Origin with maximum phase count", nullptr));
label_3->setText(QCoreApplication::translate("ImportPicks", "Imports the picks and corresponding weights of the latest origin with the most phases belonging to the event.", nullptr));
radioAllOrigins->setText(QCoreApplication::translate("ImportPicks", "All origins referenced by this event", nullptr));
label_4->setText(QCoreApplication::translate("ImportPicks", "Imports the picks of all origins of the event. Duplicates are going to be removed. All picks are associated to the origin with a weight of 0!", nullptr));
checkAllAgencies->setText(QCoreApplication::translate("ImportPicks", "Import picks from all agencies instead of using only own picks.", nullptr));
checkAllPhases->setText(QCoreApplication::translate("ImportPicks", "Import all phases and do not map only to P and S.", nullptr));
checkPreferTargetPhases->setText(QCoreApplication::translate("ImportPicks", "Prefer phases of target in case of duplicates.", nullptr));
okButton->setText(QCoreApplication::translate("ImportPicks", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("ImportPicks", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class ImportPicks: public Ui_ImportPicks {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_IMPORTPICKS_H

View File

@ -0,0 +1,98 @@
/********************************************************************************
** Form generated from reading UI file 'locatorsettings.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_LOCATORSETTINGS_H
#define UI_LOCATORSETTINGS_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_LocatorSettings
{
public:
QVBoxLayout *vboxLayout;
QTableWidget *tableParameters;
QHBoxLayout *hboxLayout;
QSpacerItem *spacerItem;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *LocatorSettings)
{
if (LocatorSettings->objectName().isEmpty())
LocatorSettings->setObjectName(QString::fromUtf8("LocatorSettings"));
LocatorSettings->resize(453, 455);
vboxLayout = new QVBoxLayout(LocatorSettings);
vboxLayout->setSpacing(4);
vboxLayout->setContentsMargins(6, 6, 6, 6);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
tableParameters = new QTableWidget(LocatorSettings);
tableParameters->setObjectName(QString::fromUtf8("tableParameters"));
tableParameters->setAlternatingRowColors(true);
tableParameters->setSelectionMode(QAbstractItemView::SingleSelection);
tableParameters->setSelectionBehavior(QAbstractItemView::SelectRows);
tableParameters->setSortingEnabled(true);
vboxLayout->addWidget(tableParameters);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
spacerItem = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
okButton = new QPushButton(LocatorSettings);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout->addWidget(okButton);
cancelButton = new QPushButton(LocatorSettings);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout);
retranslateUi(LocatorSettings);
QObject::connect(okButton, SIGNAL(clicked()), LocatorSettings, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), LocatorSettings, SLOT(reject()));
QMetaObject::connectSlotsByName(LocatorSettings);
} // setupUi
void retranslateUi(QDialog *LocatorSettings)
{
LocatorSettings->setWindowTitle(QCoreApplication::translate("LocatorSettings", "Dialog", nullptr));
okButton->setText(QCoreApplication::translate("LocatorSettings", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("LocatorSettings", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class LocatorSettings: public Ui_LocatorSettings {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_LOCATORSETTINGS_H

View File

@ -0,0 +1,98 @@
/********************************************************************************
** Form generated from reading UI file 'maglistview.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAGLISTVIEW_H
#define UI_MAGLISTVIEW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_OriginListView
{
public:
QVBoxLayout *vboxLayout;
QTreeWidget *treeWidget;
QHBoxLayout *hboxLayout;
QPushButton *btnClear;
QSpacerItem *spacerItem;
QPushButton *btnDbRead;
void setupUi(QWidget *OriginListView)
{
if (OriginListView->objectName().isEmpty())
OriginListView->setObjectName(QString::fromUtf8("OriginListView"));
OriginListView->resize(448, 649);
vboxLayout = new QVBoxLayout(OriginListView);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
treeWidget = new QTreeWidget(OriginListView);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
vboxLayout->addWidget(treeWidget);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
btnClear = new QPushButton(OriginListView);
btnClear->setObjectName(QString::fromUtf8("btnClear"));
btnClear->setEnabled(false);
hboxLayout->addWidget(btnClear);
spacerItem = new QSpacerItem(201, 27, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
btnDbRead = new QPushButton(OriginListView);
btnDbRead->setObjectName(QString::fromUtf8("btnDbRead"));
btnDbRead->setEnabled(false);
hboxLayout->addWidget(btnDbRead);
vboxLayout->addLayout(hboxLayout);
retranslateUi(OriginListView);
QMetaObject::connectSlotsByName(OriginListView);
} // setupUi
void retranslateUi(QWidget *OriginListView)
{
OriginListView->setWindowTitle(QCoreApplication::translate("OriginListView", "OriginList", nullptr));
btnClear->setText(QCoreApplication::translate("OriginListView", "Clear", nullptr));
btnDbRead->setText(QCoreApplication::translate("OriginListView", "Read from DB", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginListView: public Ui_OriginListView {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAGLISTVIEW_H

View File

@ -0,0 +1,575 @@
/********************************************************************************
** Form generated from reading UI file 'magnitudeview.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAGNITUDEVIEW_H
#define UI_MAGNITUDEVIEW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDoubleSpinBox>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QRadioButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QTableView>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MagnitudeView
{
public:
QVBoxLayout *vboxLayout;
QFrame *frameMagnitudeTypes;
QHBoxLayout *hboxLayout;
QFrame *groupSummary;
QVBoxLayout *vboxLayout1;
QLabel *labelRegion;
QFrame *frameMap;
QVBoxLayout *vboxLayout2;
QFrame *groupMagnitude;
QGridLayout *gridLayout;
QLabel *label_3;
QLabel *lbAgencyID;
QLabel *labelAuthor;
QLabel *lbAuthor;
QSpacerItem *spacerItem;
QLabel *label_8;
QLabel *label;
QLabel *labelAgencyID;
QLabel *label_2;
QLabel *labelMagnitude;
QLabel *labelRMS;
QLabel *labelMinMag;
QLabel *labelMaxMag;
QLabel *labelNumStaMags;
QLabel *label_7;
QLabel *lbMethod;
QLabel *labelMethod;
QFrame *frame;
QLabel *lbEvaluation;
QLabel *labelEvaluation;
QFrame *groupMagnitudes;
QVBoxLayout *vboxLayout3;
QTableView *tableStationMagnitudes;
QFrame *groupReview;
QVBoxLayout *vboxLayout4;
QHBoxLayout *hboxLayout1;
QFrame *groupSettings;
QHBoxLayout *hboxLayout2;
QRadioButton *btnDefault;
QRadioButton *btnMean;
QRadioButton *btnMedian;
QRadioButton *btnTrimmedMean;
QSpinBox *spinTrimmedMeanValue;
QRadioButton *btnTrimmedMedian;
QDoubleSpinBox *spinTrimmedMedianValue;
QSpacerItem *spacerItem1;
QHBoxLayout *layoutActions;
QToolButton *btnRecalculate;
QToolButton *btnSelect;
QToolButton *btnActivate;
QToolButton *btnDeactivate;
QLabel *label_4;
QComboBox *cbEvalStatus;
QSpacerItem *spacerItem2;
QToolButton *btnWaveforms;
QToolButton *btnCommit;
void setupUi(QWidget *MagnitudeView)
{
if (MagnitudeView->objectName().isEmpty())
MagnitudeView->setObjectName(QString::fromUtf8("MagnitudeView"));
MagnitudeView->resize(894, 864);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(MagnitudeView->sizePolicy().hasHeightForWidth());
MagnitudeView->setSizePolicy(sizePolicy);
vboxLayout = new QVBoxLayout(MagnitudeView);
vboxLayout->setSpacing(6);
vboxLayout->setContentsMargins(0, 0, 0, 0);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
frameMagnitudeTypes = new QFrame(MagnitudeView);
frameMagnitudeTypes->setObjectName(QString::fromUtf8("frameMagnitudeTypes"));
frameMagnitudeTypes->setFrameShape(QFrame::NoFrame);
vboxLayout->addWidget(frameMagnitudeTypes);
hboxLayout = new QHBoxLayout();
hboxLayout->setSpacing(4);
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
groupSummary = new QFrame(MagnitudeView);
groupSummary->setObjectName(QString::fromUtf8("groupSummary"));
QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(2);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(groupSummary->sizePolicy().hasHeightForWidth());
groupSummary->setSizePolicy(sizePolicy1);
vboxLayout1 = new QVBoxLayout(groupSummary);
vboxLayout1->setSpacing(4);
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
labelRegion = new QLabel(groupSummary);
labelRegion->setObjectName(QString::fromUtf8("labelRegion"));
QSizePolicy sizePolicy2(QSizePolicy::Ignored, QSizePolicy::Maximum);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(labelRegion->sizePolicy().hasHeightForWidth());
labelRegion->setSizePolicy(sizePolicy2);
labelRegion->setMinimumSize(QSize(100, 0));
labelRegion->setFrameShape(QFrame::NoFrame);
vboxLayout1->addWidget(labelRegion);
frameMap = new QFrame(groupSummary);
frameMap->setObjectName(QString::fromUtf8("frameMap"));
QSizePolicy sizePolicy3(QSizePolicy::Preferred, QSizePolicy::Expanding);
sizePolicy3.setHorizontalStretch(1);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(frameMap->sizePolicy().hasHeightForWidth());
frameMap->setSizePolicy(sizePolicy3);
frameMap->setMinimumSize(QSize(120, 200));
frameMap->setFrameShape(QFrame::NoFrame);
frameMap->setFrameShadow(QFrame::Plain);
vboxLayout1->addWidget(frameMap);
hboxLayout->addWidget(groupSummary);
vboxLayout2 = new QVBoxLayout();
vboxLayout2->setSpacing(4);
vboxLayout2->setContentsMargins(0, 0, 0, 0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
groupMagnitude = new QFrame(MagnitudeView);
groupMagnitude->setObjectName(QString::fromUtf8("groupMagnitude"));
QSizePolicy sizePolicy4(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy4.setHorizontalStretch(0);
sizePolicy4.setVerticalStretch(1);
sizePolicy4.setHeightForWidth(groupMagnitude->sizePolicy().hasHeightForWidth());
groupMagnitude->setSizePolicy(sizePolicy4);
gridLayout = new QGridLayout(groupMagnitude);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(9, 9, 9, 9);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label_3 = new QLabel(groupMagnitude);
label_3->setObjectName(QString::fromUtf8("label_3"));
sizePolicy.setHeightForWidth(label_3->sizePolicy().hasHeightForWidth());
label_3->setSizePolicy(sizePolicy);
label_3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_3, 3, 0, 1, 1);
lbAgencyID = new QLabel(groupMagnitude);
lbAgencyID->setObjectName(QString::fromUtf8("lbAgencyID"));
sizePolicy.setHeightForWidth(lbAgencyID->sizePolicy().hasHeightForWidth());
lbAgencyID->setSizePolicy(sizePolicy);
lbAgencyID->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbAgencyID, 7, 0, 1, 1);
labelAuthor = new QLabel(groupMagnitude);
labelAuthor->setObjectName(QString::fromUtf8("labelAuthor"));
QSizePolicy sizePolicy5(QSizePolicy::Ignored, QSizePolicy::Preferred);
sizePolicy5.setHorizontalStretch(0);
sizePolicy5.setVerticalStretch(0);
sizePolicy5.setHeightForWidth(labelAuthor->sizePolicy().hasHeightForWidth());
labelAuthor->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelAuthor, 8, 1, 1, 1);
lbAuthor = new QLabel(groupMagnitude);
lbAuthor->setObjectName(QString::fromUtf8("lbAuthor"));
lbAuthor->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbAuthor, 8, 0, 1, 1);
spacerItem = new QSpacerItem(20, 87, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(spacerItem, 5, 0, 1, 2);
label_8 = new QLabel(groupMagnitude);
label_8->setObjectName(QString::fromUtf8("label_8"));
sizePolicy.setHeightForWidth(label_8->sizePolicy().hasHeightForWidth());
label_8->setSizePolicy(sizePolicy);
label_8->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_8, 2, 0, 1, 1);
label = new QLabel(groupMagnitude);
label->setObjectName(QString::fromUtf8("label"));
label->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label, 1, 0, 1, 1);
labelAgencyID = new QLabel(groupMagnitude);
labelAgencyID->setObjectName(QString::fromUtf8("labelAgencyID"));
sizePolicy5.setHeightForWidth(labelAgencyID->sizePolicy().hasHeightForWidth());
labelAgencyID->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelAgencyID, 7, 1, 1, 1);
label_2 = new QLabel(groupMagnitude);
label_2->setObjectName(QString::fromUtf8("label_2"));
sizePolicy.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy);
label_2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_2, 4, 0, 1, 1);
labelMagnitude = new QLabel(groupMagnitude);
labelMagnitude->setObjectName(QString::fromUtf8("labelMagnitude"));
QSizePolicy sizePolicy6(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
sizePolicy6.setHorizontalStretch(0);
sizePolicy6.setVerticalStretch(0);
sizePolicy6.setHeightForWidth(labelMagnitude->sizePolicy().hasHeightForWidth());
labelMagnitude->setSizePolicy(sizePolicy6);
gridLayout->addWidget(labelMagnitude, 0, 1, 1, 1);
labelRMS = new QLabel(groupMagnitude);
labelRMS->setObjectName(QString::fromUtf8("labelRMS"));
sizePolicy6.setHeightForWidth(labelRMS->sizePolicy().hasHeightForWidth());
labelRMS->setSizePolicy(sizePolicy6);
gridLayout->addWidget(labelRMS, 1, 1, 1, 1);
labelMinMag = new QLabel(groupMagnitude);
labelMinMag->setObjectName(QString::fromUtf8("labelMinMag"));
sizePolicy6.setHeightForWidth(labelMinMag->sizePolicy().hasHeightForWidth());
labelMinMag->setSizePolicy(sizePolicy6);
gridLayout->addWidget(labelMinMag, 3, 1, 1, 1);
labelMaxMag = new QLabel(groupMagnitude);
labelMaxMag->setObjectName(QString::fromUtf8("labelMaxMag"));
sizePolicy6.setHeightForWidth(labelMaxMag->sizePolicy().hasHeightForWidth());
labelMaxMag->setSizePolicy(sizePolicy6);
gridLayout->addWidget(labelMaxMag, 4, 1, 1, 1);
labelNumStaMags = new QLabel(groupMagnitude);
labelNumStaMags->setObjectName(QString::fromUtf8("labelNumStaMags"));
sizePolicy6.setHeightForWidth(labelNumStaMags->sizePolicy().hasHeightForWidth());
labelNumStaMags->setSizePolicy(sizePolicy6);
labelNumStaMags->setLayoutDirection(Qt::LeftToRight);
labelNumStaMags->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelNumStaMags, 2, 1, 1, 1);
label_7 = new QLabel(groupMagnitude);
label_7->setObjectName(QString::fromUtf8("label_7"));
sizePolicy.setHeightForWidth(label_7->sizePolicy().hasHeightForWidth());
label_7->setSizePolicy(sizePolicy);
label_7->setMinimumSize(QSize(0, 0));
label_7->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_7, 0, 0, 1, 1);
lbMethod = new QLabel(groupMagnitude);
lbMethod->setObjectName(QString::fromUtf8("lbMethod"));
sizePolicy.setHeightForWidth(lbMethod->sizePolicy().hasHeightForWidth());
lbMethod->setSizePolicy(sizePolicy);
lbMethod->setLayoutDirection(Qt::LeftToRight);
lbMethod->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbMethod, 10, 0, 1, 1);
labelMethod = new QLabel(groupMagnitude);
labelMethod->setObjectName(QString::fromUtf8("labelMethod"));
sizePolicy.setHeightForWidth(labelMethod->sizePolicy().hasHeightForWidth());
labelMethod->setSizePolicy(sizePolicy);
labelMethod->setScaledContents(false);
gridLayout->addWidget(labelMethod, 10, 1, 1, 1);
frame = new QFrame(groupMagnitude);
frame->setObjectName(QString::fromUtf8("frame"));
QSizePolicy sizePolicy7(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy7.setHorizontalStretch(0);
sizePolicy7.setVerticalStretch(0);
sizePolicy7.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
frame->setSizePolicy(sizePolicy7);
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Plain);
gridLayout->addWidget(frame, 6, 0, 1, 2);
lbEvaluation = new QLabel(groupMagnitude);
lbEvaluation->setObjectName(QString::fromUtf8("lbEvaluation"));
lbEvaluation->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbEvaluation, 9, 0, 1, 1);
labelEvaluation = new QLabel(groupMagnitude);
labelEvaluation->setObjectName(QString::fromUtf8("labelEvaluation"));
gridLayout->addWidget(labelEvaluation, 9, 1, 1, 1);
vboxLayout2->addWidget(groupMagnitude);
hboxLayout->addLayout(vboxLayout2);
groupMagnitudes = new QFrame(MagnitudeView);
groupMagnitudes->setObjectName(QString::fromUtf8("groupMagnitudes"));
sizePolicy1.setHeightForWidth(groupMagnitudes->sizePolicy().hasHeightForWidth());
groupMagnitudes->setSizePolicy(sizePolicy1);
vboxLayout3 = new QVBoxLayout(groupMagnitudes);
vboxLayout3->setSpacing(4);
vboxLayout3->setContentsMargins(0, 0, 0, 0);
vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3"));
hboxLayout->addWidget(groupMagnitudes);
vboxLayout->addLayout(hboxLayout);
tableStationMagnitudes = new QTableView(MagnitudeView);
tableStationMagnitudes->setObjectName(QString::fromUtf8("tableStationMagnitudes"));
tableStationMagnitudes->setFrameShape(QFrame::NoFrame);
tableStationMagnitudes->setFrameShadow(QFrame::Plain);
tableStationMagnitudes->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
tableStationMagnitudes->setAlternatingRowColors(true);
tableStationMagnitudes->setSelectionMode(QAbstractItemView::SingleSelection);
tableStationMagnitudes->setSelectionBehavior(QAbstractItemView::SelectRows);
vboxLayout->addWidget(tableStationMagnitudes);
groupReview = new QFrame(MagnitudeView);
groupReview->setObjectName(QString::fromUtf8("groupReview"));
groupReview->setFrameShape(QFrame::NoFrame);
groupReview->setFrameShadow(QFrame::Raised);
vboxLayout4 = new QVBoxLayout(groupReview);
vboxLayout4->setSpacing(6);
vboxLayout4->setContentsMargins(0, 0, 0, 0);
vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4"));
hboxLayout1 = new QHBoxLayout();
hboxLayout1->setSpacing(6);
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
groupSettings = new QFrame(groupReview);
groupSettings->setObjectName(QString::fromUtf8("groupSettings"));
QSizePolicy sizePolicy8(QSizePolicy::Maximum, QSizePolicy::Maximum);
sizePolicy8.setHorizontalStretch(1);
sizePolicy8.setVerticalStretch(0);
sizePolicy8.setHeightForWidth(groupSettings->sizePolicy().hasHeightForWidth());
groupSettings->setSizePolicy(sizePolicy8);
hboxLayout2 = new QHBoxLayout(groupSettings);
hboxLayout2->setSpacing(6);
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
btnDefault = new QRadioButton(groupSettings);
btnDefault->setObjectName(QString::fromUtf8("btnDefault"));
QSizePolicy sizePolicy9(QSizePolicy::Maximum, QSizePolicy::Fixed);
sizePolicy9.setHorizontalStretch(0);
sizePolicy9.setVerticalStretch(0);
sizePolicy9.setHeightForWidth(btnDefault->sizePolicy().hasHeightForWidth());
btnDefault->setSizePolicy(sizePolicy9);
btnDefault->setChecked(true);
hboxLayout2->addWidget(btnDefault);
btnMean = new QRadioButton(groupSettings);
btnMean->setObjectName(QString::fromUtf8("btnMean"));
sizePolicy9.setHeightForWidth(btnMean->sizePolicy().hasHeightForWidth());
btnMean->setSizePolicy(sizePolicy9);
hboxLayout2->addWidget(btnMean);
btnMedian = new QRadioButton(groupSettings);
btnMedian->setObjectName(QString::fromUtf8("btnMedian"));
hboxLayout2->addWidget(btnMedian);
btnTrimmedMean = new QRadioButton(groupSettings);
btnTrimmedMean->setObjectName(QString::fromUtf8("btnTrimmedMean"));
sizePolicy9.setHeightForWidth(btnTrimmedMean->sizePolicy().hasHeightForWidth());
btnTrimmedMean->setSizePolicy(sizePolicy9);
hboxLayout2->addWidget(btnTrimmedMean);
spinTrimmedMeanValue = new QSpinBox(groupSettings);
spinTrimmedMeanValue->setObjectName(QString::fromUtf8("spinTrimmedMeanValue"));
sizePolicy9.setHeightForWidth(spinTrimmedMeanValue->sizePolicy().hasHeightForWidth());
spinTrimmedMeanValue->setSizePolicy(sizePolicy9);
spinTrimmedMeanValue->setMaximum(100);
spinTrimmedMeanValue->setValue(25);
hboxLayout2->addWidget(spinTrimmedMeanValue);
btnTrimmedMedian = new QRadioButton(groupSettings);
btnTrimmedMedian->setObjectName(QString::fromUtf8("btnTrimmedMedian"));
sizePolicy9.setHeightForWidth(btnTrimmedMedian->sizePolicy().hasHeightForWidth());
btnTrimmedMedian->setSizePolicy(sizePolicy9);
hboxLayout2->addWidget(btnTrimmedMedian);
spinTrimmedMedianValue = new QDoubleSpinBox(groupSettings);
spinTrimmedMedianValue->setObjectName(QString::fromUtf8("spinTrimmedMedianValue"));
sizePolicy9.setHeightForWidth(spinTrimmedMedianValue->sizePolicy().hasHeightForWidth());
spinTrimmedMedianValue->setSizePolicy(sizePolicy9);
spinTrimmedMedianValue->setMaximum(100.000000000000000);
spinTrimmedMedianValue->setSingleStep(0.100000000000000);
spinTrimmedMedianValue->setValue(0.500000000000000);
hboxLayout2->addWidget(spinTrimmedMedianValue);
hboxLayout1->addWidget(groupSettings);
spacerItem1 = new QSpacerItem(40, 20, QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
vboxLayout4->addLayout(hboxLayout1);
layoutActions = new QHBoxLayout();
layoutActions->setSpacing(6);
layoutActions->setContentsMargins(0, 0, 0, 0);
layoutActions->setObjectName(QString::fromUtf8("layoutActions"));
btnRecalculate = new QToolButton(groupReview);
btnRecalculate->setObjectName(QString::fromUtf8("btnRecalculate"));
layoutActions->addWidget(btnRecalculate);
btnSelect = new QToolButton(groupReview);
btnSelect->setObjectName(QString::fromUtf8("btnSelect"));
layoutActions->addWidget(btnSelect);
btnActivate = new QToolButton(groupReview);
btnActivate->setObjectName(QString::fromUtf8("btnActivate"));
layoutActions->addWidget(btnActivate);
btnDeactivate = new QToolButton(groupReview);
btnDeactivate->setObjectName(QString::fromUtf8("btnDeactivate"));
layoutActions->addWidget(btnDeactivate);
label_4 = new QLabel(groupReview);
label_4->setObjectName(QString::fromUtf8("label_4"));
layoutActions->addWidget(label_4);
cbEvalStatus = new QComboBox(groupReview);
cbEvalStatus->setObjectName(QString::fromUtf8("cbEvalStatus"));
layoutActions->addWidget(cbEvalStatus);
spacerItem2 = new QSpacerItem(474, 29, QSizePolicy::Expanding, QSizePolicy::Minimum);
layoutActions->addItem(spacerItem2);
btnWaveforms = new QToolButton(groupReview);
btnWaveforms->setObjectName(QString::fromUtf8("btnWaveforms"));
layoutActions->addWidget(btnWaveforms);
btnCommit = new QToolButton(groupReview);
btnCommit->setObjectName(QString::fromUtf8("btnCommit"));
btnCommit->setEnabled(false);
layoutActions->addWidget(btnCommit);
vboxLayout4->addLayout(layoutActions);
vboxLayout->addWidget(groupReview);
retranslateUi(MagnitudeView);
QObject::connect(btnTrimmedMean, SIGNAL(toggled(bool)), spinTrimmedMeanValue, SLOT(setEnabled(bool)));
QObject::connect(btnTrimmedMedian, SIGNAL(toggled(bool)), spinTrimmedMedianValue, SLOT(setEnabled(bool)));
QMetaObject::connectSlotsByName(MagnitudeView);
} // setupUi
void retranslateUi(QWidget *MagnitudeView)
{
MagnitudeView->setWindowTitle(QCoreApplication::translate("MagnitudeView", "MagnitudeView", nullptr));
labelRegion->setText(QCoreApplication::translate("MagnitudeView", "Region", nullptr));
label_3->setText(QCoreApplication::translate("MagnitudeView", "Min: ", nullptr));
lbAgencyID->setText(QCoreApplication::translate("MagnitudeView", "Agency: ", nullptr));
labelAuthor->setText(QCoreApplication::translate("MagnitudeView", "-", nullptr));
lbAuthor->setText(QCoreApplication::translate("MagnitudeView", "Author: ", nullptr));
#if QT_CONFIG(tooltip)
label_8->setToolTip(QCoreApplication::translate("MagnitudeView", "Station Magnitude Count", nullptr));
#endif // QT_CONFIG(tooltip)
label_8->setText(QCoreApplication::translate("MagnitudeView", "Count: ", nullptr));
label->setText(QCoreApplication::translate("MagnitudeView", "+/-: ", nullptr));
labelAgencyID->setText(QCoreApplication::translate("MagnitudeView", "MagTool@GFZ", nullptr));
label_2->setText(QCoreApplication::translate("MagnitudeView", "Max: ", nullptr));
labelMagnitude->setText(QCoreApplication::translate("MagnitudeView", "-.-", nullptr));
labelRMS->setText(QCoreApplication::translate("MagnitudeView", "-.-", nullptr));
labelMinMag->setText(QCoreApplication::translate("MagnitudeView", "-.-", nullptr));
labelMaxMag->setText(QCoreApplication::translate("MagnitudeView", "-.-", nullptr));
labelNumStaMags->setText(QCoreApplication::translate("MagnitudeView", "0", nullptr));
label_7->setText(QCoreApplication::translate("MagnitudeView", "Value: ", nullptr));
lbMethod->setText(QCoreApplication::translate("MagnitudeView", "Method: ", nullptr));
labelMethod->setText(QCoreApplication::translate("MagnitudeView", "average", nullptr));
lbEvaluation->setText(QCoreApplication::translate("MagnitudeView", "Evaluation:", nullptr));
labelEvaluation->setText(QCoreApplication::translate("MagnitudeView", "-", nullptr));
btnDefault->setText(QCoreApplication::translate("MagnitudeView", "Default", nullptr));
btnMean->setText(QCoreApplication::translate("MagnitudeView", "Mean", nullptr));
btnMedian->setText(QCoreApplication::translate("MagnitudeView", "Median", nullptr));
btnTrimmedMean->setText(QCoreApplication::translate("MagnitudeView", "Trimmed mean", nullptr));
spinTrimmedMeanValue->setSuffix(QCoreApplication::translate("MagnitudeView", "%", nullptr));
btnTrimmedMedian->setText(QCoreApplication::translate("MagnitudeView", "Median trimmed mean", nullptr));
#if QT_CONFIG(tooltip)
btnRecalculate->setToolTip(QCoreApplication::translate("MagnitudeView", "Recalculate the network magnitude", nullptr));
#endif // QT_CONFIG(tooltip)
btnRecalculate->setText(QCoreApplication::translate("MagnitudeView", "Recalculate", nullptr));
#if QT_CONFIG(tooltip)
btnSelect->setToolTip(QCoreApplication::translate("MagnitudeView", "Selects channels passing the current filter", nullptr));
#endif // QT_CONFIG(tooltip)
btnSelect->setText(QCoreApplication::translate("MagnitudeView", "Select", nullptr));
#if QT_CONFIG(shortcut)
btnSelect->setShortcut(QCoreApplication::translate("MagnitudeView", "S", nullptr));
#endif // QT_CONFIG(shortcut)
#if QT_CONFIG(tooltip)
btnActivate->setToolTip(QCoreApplication::translate("MagnitudeView", "Activate selected channels", nullptr));
#endif // QT_CONFIG(tooltip)
btnActivate->setText(QCoreApplication::translate("MagnitudeView", "+", nullptr));
#if QT_CONFIG(shortcut)
btnActivate->setShortcut(QCoreApplication::translate("MagnitudeView", "+", nullptr));
#endif // QT_CONFIG(shortcut)
#if QT_CONFIG(tooltip)
btnDeactivate->setToolTip(QCoreApplication::translate("MagnitudeView", "Deactivate selected channels", nullptr));
#endif // QT_CONFIG(tooltip)
btnDeactivate->setText(QCoreApplication::translate("MagnitudeView", "-", nullptr));
#if QT_CONFIG(shortcut)
btnDeactivate->setShortcut(QCoreApplication::translate("MagnitudeView", "-", nullptr));
#endif // QT_CONFIG(shortcut)
label_4->setText(QCoreApplication::translate("MagnitudeView", "Evaluation:", nullptr));
btnWaveforms->setText(QCoreApplication::translate("MagnitudeView", "Waveforms", nullptr));
btnCommit->setText(QCoreApplication::translate("MagnitudeView", "Commit", nullptr));
} // retranslateUi
};
namespace Ui {
class MagnitudeView: public Ui_MagnitudeView {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAGNITUDEVIEW_H

View File

@ -0,0 +1,145 @@
/********************************************************************************
** Form generated from reading UI file 'magnitudeview_filter.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAGNITUDEVIEW_FILTER_H
#define UI_MAGNITUDEVIEW_FILTER_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_MagnitudeRowFilter
{
public:
QVBoxLayout *vboxLayout;
QHBoxLayout *hboxLayout;
QLabel *labelInfo;
QToolButton *btnRemove;
QToolButton *btnAdd;
QFrame *frameFilters;
QSpacerItem *spacerItem;
QHBoxLayout *hboxLayout1;
QSpacerItem *spacerItem1;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *MagnitudeRowFilter)
{
if (MagnitudeRowFilter->objectName().isEmpty())
MagnitudeRowFilter->setObjectName(QString::fromUtf8("MagnitudeRowFilter"));
MagnitudeRowFilter->resize(405, 209);
vboxLayout = new QVBoxLayout(MagnitudeRowFilter);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
labelInfo = new QLabel(MagnitudeRowFilter);
labelInfo->setObjectName(QString::fromUtf8("labelInfo"));
hboxLayout->addWidget(labelInfo);
btnRemove = new QToolButton(MagnitudeRowFilter);
btnRemove->setObjectName(QString::fromUtf8("btnRemove"));
hboxLayout->addWidget(btnRemove);
btnAdd = new QToolButton(MagnitudeRowFilter);
btnAdd->setObjectName(QString::fromUtf8("btnAdd"));
hboxLayout->addWidget(btnAdd);
vboxLayout->addLayout(hboxLayout);
frameFilters = new QFrame(MagnitudeRowFilter);
frameFilters->setObjectName(QString::fromUtf8("frameFilters"));
frameFilters->setFrameShape(QFrame::NoFrame);
frameFilters->setFrameShadow(QFrame::Raised);
vboxLayout->addWidget(frameFilters);
spacerItem = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
okButton = new QPushButton(MagnitudeRowFilter);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout1->addWidget(okButton);
cancelButton = new QPushButton(MagnitudeRowFilter);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout1->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout1);
retranslateUi(MagnitudeRowFilter);
QObject::connect(okButton, SIGNAL(clicked()), MagnitudeRowFilter, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), MagnitudeRowFilter, SLOT(reject()));
QMetaObject::connectSlotsByName(MagnitudeRowFilter);
} // setupUi
void retranslateUi(QDialog *MagnitudeRowFilter)
{
MagnitudeRowFilter->setWindowTitle(QCoreApplication::translate("MagnitudeRowFilter", "Selection filter", nullptr));
labelInfo->setText(QString());
#if QT_CONFIG(tooltip)
btnRemove->setToolTip(QCoreApplication::translate("MagnitudeRowFilter", "Remove last filter", nullptr));
#endif // QT_CONFIG(tooltip)
btnRemove->setText(QCoreApplication::translate("MagnitudeRowFilter", "-", nullptr));
#if QT_CONFIG(tooltip)
btnAdd->setToolTip(QCoreApplication::translate("MagnitudeRowFilter", "Add another filter that is OR'ed with the others", nullptr));
#endif // QT_CONFIG(tooltip)
btnAdd->setText(QCoreApplication::translate("MagnitudeRowFilter", "+", nullptr));
okButton->setText(QCoreApplication::translate("MagnitudeRowFilter", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("MagnitudeRowFilter", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class MagnitudeRowFilter: public Ui_MagnitudeRowFilter {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAGNITUDEVIEW_FILTER_H

View File

@ -0,0 +1,113 @@
/********************************************************************************
** Form generated from reading UI file 'mergeorigins.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MERGEORIGINS_H
#define UI_MERGEORIGINS_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_MergeOrigins
{
public:
QVBoxLayout *vboxLayout;
QLabel *labelInfo;
QCheckBox *checkAllAgencies;
QSpacerItem *spacerItem;
QHBoxLayout *hboxLayout;
QSpacerItem *spacerItem1;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *MergeOrigins)
{
if (MergeOrigins->objectName().isEmpty())
MergeOrigins->setObjectName(QString::fromUtf8("MergeOrigins"));
MergeOrigins->resize(411, 182);
vboxLayout = new QVBoxLayout(MergeOrigins);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
labelInfo = new QLabel(MergeOrigins);
labelInfo->setObjectName(QString::fromUtf8("labelInfo"));
labelInfo->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
labelInfo->setWordWrap(true);
vboxLayout->addWidget(labelInfo);
checkAllAgencies = new QCheckBox(MergeOrigins);
checkAllAgencies->setObjectName(QString::fromUtf8("checkAllAgencies"));
vboxLayout->addWidget(checkAllAgencies);
spacerItem = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem1);
okButton = new QPushButton(MergeOrigins);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout->addWidget(okButton);
cancelButton = new QPushButton(MergeOrigins);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout);
retranslateUi(MergeOrigins);
QObject::connect(okButton, SIGNAL(clicked()), MergeOrigins, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), MergeOrigins, SLOT(reject()));
QMetaObject::connectSlotsByName(MergeOrigins);
} // setupUi
void retranslateUi(QDialog *MergeOrigins)
{
MergeOrigins->setWindowTitle(QCoreApplication::translate("MergeOrigins", "Merge origins", nullptr));
labelInfo->setText(QCoreApplication::translate("MergeOrigins", "%1 origins are selected to be merged. Picks are not associated with the result more than once. The first associated pick and its defined phase is taken. If the same pick is associated with a successive origin in the merge list it is ignored. In a drag and drop operation the drop target is always the first element in the merge list. ", nullptr));
checkAllAgencies->setText(QCoreApplication::translate("MergeOrigins", "Merge picks from all agencies instead of using only own picks.", nullptr));
okButton->setText(QCoreApplication::translate("MergeOrigins", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("MergeOrigins", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class MergeOrigins: public Ui_MergeOrigins {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MERGEORIGINS_H

View File

@ -0,0 +1,364 @@
/********************************************************************************
** Form generated from reading UI file 'origindialog.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ORIGINDIALOG_H
#define UI_ORIGINDIALOG_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDateTimeEdit>
#include <QtWidgets/QDialog>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_OriginDialog
{
public:
QVBoxLayout *vboxLayout;
QGroupBox *groupBox;
QGridLayout *gridLayout;
QLabel *depthLabel;
QLabel *lonLabel;
QLabel *latLabel;
QLabel *timeLabel;
QDateTimeEdit *dateTimeEdit;
QLineEdit *latLineEdit;
QLabel *latUnitLabel;
QLabel *lonUnitLabel;
QLabel *depthUnitLabel;
QLineEdit *lonLineEdit;
QLineEdit *depthLineEdit;
QGroupBox *advancedGroupBox;
QGridLayout *gridLayout1;
QLabel *magTypeLabel;
QLabel *magLabel;
QLabel *phaseCountLabel;
QLineEdit *phaseCountLineEdit;
QLineEdit *magLineEdit;
QComboBox *magTypeComboBox;
QSpacerItem *spacerItem;
QHBoxLayout *hboxLayout;
QSpacerItem *spacerItem1;
QPushButton *sendButton;
QPushButton *cancelButton;
void setupUi(QDialog *OriginDialog)
{
if (OriginDialog->objectName().isEmpty())
OriginDialog->setObjectName(QString::fromUtf8("OriginDialog"));
OriginDialog->resize(284, 346);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(OriginDialog->sizePolicy().hasHeightForWidth());
OriginDialog->setSizePolicy(sizePolicy);
vboxLayout = new QVBoxLayout(OriginDialog);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
groupBox = new QGroupBox(OriginDialog);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
gridLayout = new QGridLayout(groupBox);
#ifndef Q_OS_MAC
gridLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
gridLayout->setContentsMargins(9, 9, 9, 9);
#endif
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
depthLabel = new QLabel(groupBox);
depthLabel->setObjectName(QString::fromUtf8("depthLabel"));
gridLayout->addWidget(depthLabel, 3, 0, 1, 1);
lonLabel = new QLabel(groupBox);
lonLabel->setObjectName(QString::fromUtf8("lonLabel"));
gridLayout->addWidget(lonLabel, 2, 0, 1, 1);
latLabel = new QLabel(groupBox);
latLabel->setObjectName(QString::fromUtf8("latLabel"));
gridLayout->addWidget(latLabel, 1, 0, 1, 1);
timeLabel = new QLabel(groupBox);
timeLabel->setObjectName(QString::fromUtf8("timeLabel"));
QSizePolicy sizePolicy1(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(timeLabel->sizePolicy().hasHeightForWidth());
timeLabel->setSizePolicy(sizePolicy1);
gridLayout->addWidget(timeLabel, 0, 0, 1, 1);
dateTimeEdit = new QDateTimeEdit(groupBox);
dateTimeEdit->setObjectName(QString::fromUtf8("dateTimeEdit"));
dateTimeEdit->setAlignment(Qt::AlignRight);
dateTimeEdit->setCurrentSection(QDateTimeEdit::YearSection);
gridLayout->addWidget(dateTimeEdit, 0, 1, 1, 1);
latLineEdit = new QLineEdit(groupBox);
latLineEdit->setObjectName(QString::fromUtf8("latLineEdit"));
gridLayout->addWidget(latLineEdit, 1, 1, 1, 1);
latUnitLabel = new QLabel(groupBox);
latUnitLabel->setObjectName(QString::fromUtf8("latUnitLabel"));
gridLayout->addWidget(latUnitLabel, 1, 2, 1, 1);
lonUnitLabel = new QLabel(groupBox);
lonUnitLabel->setObjectName(QString::fromUtf8("lonUnitLabel"));
gridLayout->addWidget(lonUnitLabel, 2, 2, 1, 1);
depthUnitLabel = new QLabel(groupBox);
depthUnitLabel->setObjectName(QString::fromUtf8("depthUnitLabel"));
gridLayout->addWidget(depthUnitLabel, 3, 2, 1, 1);
lonLineEdit = new QLineEdit(groupBox);
lonLineEdit->setObjectName(QString::fromUtf8("lonLineEdit"));
gridLayout->addWidget(lonLineEdit, 2, 1, 1, 1);
depthLineEdit = new QLineEdit(groupBox);
depthLineEdit->setObjectName(QString::fromUtf8("depthLineEdit"));
gridLayout->addWidget(depthLineEdit, 3, 1, 1, 1);
vboxLayout->addWidget(groupBox);
advancedGroupBox = new QGroupBox(OriginDialog);
advancedGroupBox->setObjectName(QString::fromUtf8("advancedGroupBox"));
advancedGroupBox->setEnabled(true);
advancedGroupBox->setCheckable(true);
advancedGroupBox->setChecked(false);
gridLayout1 = new QGridLayout(advancedGroupBox);
#ifndef Q_OS_MAC
gridLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
gridLayout1->setContentsMargins(9, 9, 9, 9);
#endif
gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
magTypeLabel = new QLabel(advancedGroupBox);
magTypeLabel->setObjectName(QString::fromUtf8("magTypeLabel"));
sizePolicy1.setHeightForWidth(magTypeLabel->sizePolicy().hasHeightForWidth());
magTypeLabel->setSizePolicy(sizePolicy1);
gridLayout1->addWidget(magTypeLabel, 2, 0, 1, 1);
magLabel = new QLabel(advancedGroupBox);
magLabel->setObjectName(QString::fromUtf8("magLabel"));
sizePolicy1.setHeightForWidth(magLabel->sizePolicy().hasHeightForWidth());
magLabel->setSizePolicy(sizePolicy1);
gridLayout1->addWidget(magLabel, 1, 0, 1, 1);
phaseCountLabel = new QLabel(advancedGroupBox);
phaseCountLabel->setObjectName(QString::fromUtf8("phaseCountLabel"));
sizePolicy1.setHeightForWidth(phaseCountLabel->sizePolicy().hasHeightForWidth());
phaseCountLabel->setSizePolicy(sizePolicy1);
gridLayout1->addWidget(phaseCountLabel, 0, 0, 1, 1);
phaseCountLineEdit = new QLineEdit(advancedGroupBox);
phaseCountLineEdit->setObjectName(QString::fromUtf8("phaseCountLineEdit"));
gridLayout1->addWidget(phaseCountLineEdit, 0, 1, 1, 1);
magLineEdit = new QLineEdit(advancedGroupBox);
magLineEdit->setObjectName(QString::fromUtf8("magLineEdit"));
gridLayout1->addWidget(magLineEdit, 1, 1, 1, 1);
magTypeComboBox = new QComboBox(advancedGroupBox);
magTypeComboBox->setObjectName(QString::fromUtf8("magTypeComboBox"));
magTypeComboBox->setEditable(true);
magTypeComboBox->setMaxVisibleItems(30);
gridLayout1->addWidget(magTypeComboBox, 2, 1, 1, 1);
vboxLayout->addWidget(advancedGroupBox);
spacerItem = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
spacerItem1 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem1);
sendButton = new QPushButton(OriginDialog);
sendButton->setObjectName(QString::fromUtf8("sendButton"));
QPalette palette;
QBrush brush(QColor(0, 0, 0, 255));
brush.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::WindowText, brush);
QBrush brush1(QColor(221, 223, 228, 255));
brush1.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Button, brush1);
QBrush brush2(QColor(255, 255, 255, 255));
brush2.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Light, brush2);
palette.setBrush(QPalette::Active, QPalette::Midlight, brush2);
QBrush brush3(QColor(85, 85, 85, 255));
brush3.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Dark, brush3);
QBrush brush4(QColor(199, 199, 199, 255));
brush4.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Mid, brush4);
palette.setBrush(QPalette::Active, QPalette::Text, brush);
palette.setBrush(QPalette::Active, QPalette::BrightText, brush2);
palette.setBrush(QPalette::Active, QPalette::ButtonText, brush);
palette.setBrush(QPalette::Active, QPalette::Base, brush2);
QBrush brush5(QColor(239, 239, 239, 255));
brush5.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Window, brush5);
palette.setBrush(QPalette::Active, QPalette::Shadow, brush);
QBrush brush6(QColor(103, 141, 178, 255));
brush6.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Highlight, brush6);
palette.setBrush(QPalette::Active, QPalette::HighlightedText, brush2);
QBrush brush7(QColor(0, 0, 238, 255));
brush7.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Link, brush7);
QBrush brush8(QColor(82, 24, 139, 255));
brush8.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::LinkVisited, brush8);
QBrush brush9(QColor(232, 232, 232, 255));
brush9.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::AlternateBase, brush9);
palette.setBrush(QPalette::Inactive, QPalette::WindowText, brush);
palette.setBrush(QPalette::Inactive, QPalette::Button, brush1);
palette.setBrush(QPalette::Inactive, QPalette::Light, brush2);
palette.setBrush(QPalette::Inactive, QPalette::Midlight, brush2);
palette.setBrush(QPalette::Inactive, QPalette::Dark, brush3);
palette.setBrush(QPalette::Inactive, QPalette::Mid, brush4);
palette.setBrush(QPalette::Inactive, QPalette::Text, brush);
palette.setBrush(QPalette::Inactive, QPalette::BrightText, brush2);
palette.setBrush(QPalette::Inactive, QPalette::ButtonText, brush);
palette.setBrush(QPalette::Inactive, QPalette::Base, brush2);
palette.setBrush(QPalette::Inactive, QPalette::Window, brush5);
palette.setBrush(QPalette::Inactive, QPalette::Shadow, brush);
palette.setBrush(QPalette::Inactive, QPalette::Highlight, brush6);
palette.setBrush(QPalette::Inactive, QPalette::HighlightedText, brush2);
palette.setBrush(QPalette::Inactive, QPalette::Link, brush7);
palette.setBrush(QPalette::Inactive, QPalette::LinkVisited, brush8);
palette.setBrush(QPalette::Inactive, QPalette::AlternateBase, brush9);
QBrush brush10(QColor(128, 128, 128, 255));
brush10.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush10);
palette.setBrush(QPalette::Disabled, QPalette::Button, brush1);
palette.setBrush(QPalette::Disabled, QPalette::Light, brush2);
palette.setBrush(QPalette::Disabled, QPalette::Midlight, brush2);
palette.setBrush(QPalette::Disabled, QPalette::Dark, brush3);
palette.setBrush(QPalette::Disabled, QPalette::Mid, brush4);
palette.setBrush(QPalette::Disabled, QPalette::Text, brush4);
palette.setBrush(QPalette::Disabled, QPalette::BrightText, brush2);
palette.setBrush(QPalette::Disabled, QPalette::ButtonText, brush10);
palette.setBrush(QPalette::Disabled, QPalette::Base, brush5);
palette.setBrush(QPalette::Disabled, QPalette::Window, brush5);
palette.setBrush(QPalette::Disabled, QPalette::Shadow, brush);
QBrush brush11(QColor(86, 117, 148, 255));
brush11.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Disabled, QPalette::Highlight, brush11);
palette.setBrush(QPalette::Disabled, QPalette::HighlightedText, brush2);
palette.setBrush(QPalette::Disabled, QPalette::Link, brush7);
palette.setBrush(QPalette::Disabled, QPalette::LinkVisited, brush8);
palette.setBrush(QPalette::Disabled, QPalette::AlternateBase, brush9);
sendButton->setPalette(palette);
hboxLayout->addWidget(sendButton);
cancelButton = new QPushButton(OriginDialog);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout);
QWidget::setTabOrder(dateTimeEdit, latLineEdit);
QWidget::setTabOrder(latLineEdit, lonLineEdit);
QWidget::setTabOrder(lonLineEdit, depthLineEdit);
QWidget::setTabOrder(depthLineEdit, advancedGroupBox);
QWidget::setTabOrder(advancedGroupBox, phaseCountLineEdit);
QWidget::setTabOrder(phaseCountLineEdit, magLineEdit);
QWidget::setTabOrder(magLineEdit, magTypeComboBox);
QWidget::setTabOrder(magTypeComboBox, sendButton);
QWidget::setTabOrder(sendButton, cancelButton);
retranslateUi(OriginDialog);
QObject::connect(sendButton, SIGNAL(clicked()), OriginDialog, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), OriginDialog, SLOT(reject()));
QMetaObject::connectSlotsByName(OriginDialog);
} // setupUi
void retranslateUi(QDialog *OriginDialog)
{
OriginDialog->setWindowTitle(QCoreApplication::translate("OriginDialog", "Artificial Origin", nullptr));
groupBox->setTitle(QCoreApplication::translate("OriginDialog", "Origin", nullptr));
depthLabel->setText(QCoreApplication::translate("OriginDialog", "Depth:", nullptr));
#if QT_CONFIG(tooltip)
lonLabel->setToolTip(QCoreApplication::translate("OriginDialog", "Longitude", nullptr));
#endif // QT_CONFIG(tooltip)
lonLabel->setText(QCoreApplication::translate("OriginDialog", "Lon:", nullptr));
#if QT_CONFIG(tooltip)
latLabel->setToolTip(QCoreApplication::translate("OriginDialog", "Latitude", nullptr));
#endif // QT_CONFIG(tooltip)
latLabel->setText(QCoreApplication::translate("OriginDialog", "Lat:", nullptr));
timeLabel->setText(QCoreApplication::translate("OriginDialog", "Time:", nullptr));
dateTimeEdit->setDisplayFormat(QCoreApplication::translate("OriginDialog", "yyyy-MM-dd hh:mm:ss", nullptr));
latUnitLabel->setText(QCoreApplication::translate("OriginDialog", "deg", nullptr));
lonUnitLabel->setText(QCoreApplication::translate("OriginDialog", "deg", nullptr));
depthUnitLabel->setText(QCoreApplication::translate("OriginDialog", "km", nullptr));
advancedGroupBox->setTitle(QCoreApplication::translate("OriginDialog", "Advanced", nullptr));
magTypeLabel->setText(QCoreApplication::translate("OriginDialog", "Magnitude Type", nullptr));
magLabel->setText(QCoreApplication::translate("OriginDialog", "Magnitude", nullptr));
#if QT_CONFIG(tooltip)
phaseCountLabel->setToolTip(QString());
#endif // QT_CONFIG(tooltip)
phaseCountLabel->setText(QCoreApplication::translate("OriginDialog", "PhaseCount", nullptr));
sendButton->setText(QCoreApplication::translate("OriginDialog", "Create", nullptr));
cancelButton->setText(QCoreApplication::translate("OriginDialog", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginDialog: public Ui_OriginDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ORIGINDIALOG_H

View File

@ -0,0 +1,977 @@
/********************************************************************************
** Form generated from reading UI file 'originlocatorview.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ORIGINLOCATORVIEW_H
#define UI_ORIGINLOCATORVIEW_H
#include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTableView>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_OriginLocatorView
{
public:
QVBoxLayout *vboxLayout;
QHBoxLayout *hboxLayout;
QFrame *groupSummary;
QVBoxLayout *vboxLayout1;
QLabel *labelRegion;
QFrame *frameMap;
QFrame *groupBox;
QGridLayout *gridLayout;
QLabel *labelNumPhases;
QLabel *labelAgency;
QLabel *labelMinDistUnit;
QLabel *labelDepth;
QLabel *labelStdErrorUnit;
QLabel *lbEventID;
QLabel *labelLatitudeErrorUnit;
QLabel *labelLatitudeError;
QLabel *label_13;
QLabel *labelLongitude;
QLabel *labelCreated;
QLabel *label_11;
QLabel *labelLongitudeErrorUnit;
QLabel *labelUser;
QLabel *labelEarthModel;
QFrame *frameInfoSeparator;
QLabel *labelNumPhasesError;
QLabel *labelLatitudeUnit;
QLabel *labelStdError;
QLabel *labelLatitude;
QLabel *label_7;
QLabel *labelEventID;
QLabel *labelDepthErrorUnit;
QLabel *labelTime;
QLabel *label_12;
QLabel *lbEarthModel;
QLabel *lbMethod;
QLabel *labelMinDist;
QLabel *lbAgencyID;
QLabel *label_8;
QLabel *labelMethod;
QLabel *label_10;
QSpacerItem *spacerItem;
QLabel *label_16;
QLabel *labelNumPhasesUnit;
QLabel *lbUser;
QLabel *label_9;
QLabel *labelLongitudeError;
QLabel *labelDepthError;
QLabel *labelEvaluation;
QLabel *labelLongitudeUnit;
QLabel *label_15;
QLabel *labelAzimuthGap;
QLabel *labelDepthUnit;
QLabel *labelAzimuthGapUnit;
QLabel *lbEvaluation;
QLabel *lbComment;
QLabel *labelComment;
QFrame *groupResiduals;
QVBoxLayout *vboxLayout2;
QHBoxLayout *hboxLayout1;
QSpacerItem *spacerItem1;
QLabel *label_5;
QLabel *labelPlotFilter;
QTableView *tableArrivals;
QFrame *toolButtonGroupBox;
QGridLayout *gridLayout1;
QFrame *frameDepthType;
QHBoxLayout *hboxLayout2;
QComboBox *cbDepthType;
QFrame *frameActionsLeft;
QHBoxLayout *hboxLayout3;
QToolButton *btnRelocate;
QToolButton *btnCustom0;
QToolButton *btnCustom1;
QSpacerItem *spacerItem2;
QFrame *frameLocator;
QHBoxLayout *hboxLayout4;
QComboBox *cbLocator;
QToolButton *btnLocatorSettings;
QSpacerItem *spacerItem3;
QLabel *label_2;
QComboBox *cbLocatorProfile;
QSpacerItem *spacerItem4;
QFrame *frameFixDepth;
QHBoxLayout *hboxLayout5;
QCheckBox *cbFixedDepth;
QLineEdit *editFixedDepth;
QLabel *label_3;
QSpacerItem *spacerItem5;
QFrame *frame;
QHBoxLayout *hboxLayout6;
QCheckBox *cbDistanceCutOff;
QLineEdit *editDistanceCutOff;
QLabel *label;
QSpacerItem *spacerItem6;
QCheckBox *cbIgnoreInitialLocation;
QSpacerItem *spacerItem7;
QToolButton *buttonEditComment;
QFrame *frameActionsRight;
QHBoxLayout *hboxLayout7;
QSpacerItem *spacerItem8;
QToolButton *btnShowWaveforms;
QToolButton *btnImportAllArrivals;
QToolButton *btnMagnitudes;
QToolButton *btnCommit;
void setupUi(QWidget *OriginLocatorView)
{
if (OriginLocatorView->objectName().isEmpty())
OriginLocatorView->setObjectName(QString::fromUtf8("OriginLocatorView"));
OriginLocatorView->resize(1734, 1127);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(OriginLocatorView->sizePolicy().hasHeightForWidth());
OriginLocatorView->setSizePolicy(sizePolicy);
vboxLayout = new QVBoxLayout(OriginLocatorView);
vboxLayout->setSpacing(6);
vboxLayout->setContentsMargins(0, 0, 0, 0);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
hboxLayout = new QHBoxLayout();
hboxLayout->setSpacing(6);
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
groupSummary = new QFrame(OriginLocatorView);
groupSummary->setObjectName(QString::fromUtf8("groupSummary"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(2);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(groupSummary->sizePolicy().hasHeightForWidth());
groupSummary->setSizePolicy(sizePolicy1);
groupSummary->setFrameShape(QFrame::NoFrame);
groupSummary->setFrameShadow(QFrame::Plain);
vboxLayout1 = new QVBoxLayout(groupSummary);
vboxLayout1->setSpacing(4);
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
labelRegion = new QLabel(groupSummary);
labelRegion->setObjectName(QString::fromUtf8("labelRegion"));
QSizePolicy sizePolicy2(QSizePolicy::Ignored, QSizePolicy::Maximum);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(labelRegion->sizePolicy().hasHeightForWidth());
labelRegion->setSizePolicy(sizePolicy2);
QFont font;
font.setFamily(QString::fromUtf8("Sans Serif"));
font.setPointSize(14);
font.setBold(true);
font.setItalic(false);
font.setUnderline(false);
font.setWeight(75);
font.setStrikeOut(false);
labelRegion->setFont(font);
labelRegion->setFrameShape(QFrame::NoFrame);
vboxLayout1->addWidget(labelRegion);
frameMap = new QFrame(groupSummary);
frameMap->setObjectName(QString::fromUtf8("frameMap"));
QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Expanding);
sizePolicy3.setHorizontalStretch(1);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(frameMap->sizePolicy().hasHeightForWidth());
frameMap->setSizePolicy(sizePolicy3);
frameMap->setMinimumSize(QSize(120, 200));
frameMap->setMaximumSize(QSize(2000, 2000));
QPalette palette;
palette.setColor(QPalette::Active, QPalette::WindowText, QColor(0, 0, 0));
palette.setColor(QPalette::Active, QPalette::Button, QColor(221, 223, 228));
palette.setColor(QPalette::Active, QPalette::Light, QColor(255, 255, 255));
palette.setColor(QPalette::Active, QPalette::Midlight, QColor(255, 255, 255));
palette.setColor(QPalette::Active, QPalette::Dark, QColor(85, 85, 85));
palette.setColor(QPalette::Active, QPalette::Mid, QColor(199, 199, 199));
palette.setColor(QPalette::Active, QPalette::Text, QColor(0, 0, 0));
palette.setColor(QPalette::Active, QPalette::BrightText, QColor(255, 255, 255));
palette.setColor(QPalette::Active, QPalette::ButtonText, QColor(0, 0, 0));
palette.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::Active, QPalette::Window, QColor(239, 239, 239));
palette.setColor(QPalette::Active, QPalette::Shadow, QColor(0, 0, 0));
palette.setColor(QPalette::Active, QPalette::Highlight, QColor(103, 141, 178));
palette.setColor(QPalette::Active, QPalette::HighlightedText, QColor(255, 255, 255));
palette.setColor(QPalette::Active, QPalette::Link, QColor(0, 0, 238));
palette.setColor(QPalette::Active, QPalette::LinkVisited, QColor(82, 24, 139));
palette.setColor(QPalette::Active, QPalette::AlternateBase, QColor(232, 232, 232));
palette.setColor(QPalette::Inactive, QPalette::WindowText, QColor(0, 0, 0));
palette.setColor(QPalette::Inactive, QPalette::Button, QColor(221, 223, 228));
palette.setColor(QPalette::Inactive, QPalette::Light, QColor(255, 255, 255));
palette.setColor(QPalette::Inactive, QPalette::Midlight, QColor(255, 255, 255));
palette.setColor(QPalette::Inactive, QPalette::Dark, QColor(85, 85, 85));
palette.setColor(QPalette::Inactive, QPalette::Mid, QColor(199, 199, 199));
palette.setColor(QPalette::Inactive, QPalette::Text, QColor(0, 0, 0));
palette.setColor(QPalette::Inactive, QPalette::BrightText, QColor(255, 255, 255));
palette.setColor(QPalette::Inactive, QPalette::ButtonText, QColor(0, 0, 0));
palette.setColor(QPalette::Inactive, QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::Inactive, QPalette::Window, QColor(239, 239, 239));
palette.setColor(QPalette::Inactive, QPalette::Shadow, QColor(0, 0, 0));
palette.setColor(QPalette::Inactive, QPalette::Highlight, QColor(103, 141, 178));
palette.setColor(QPalette::Inactive, QPalette::HighlightedText, QColor(255, 255, 255));
palette.setColor(QPalette::Inactive, QPalette::Link, QColor(0, 0, 238));
palette.setColor(QPalette::Inactive, QPalette::LinkVisited, QColor(82, 24, 139));
palette.setColor(QPalette::Inactive, QPalette::AlternateBase, QColor(232, 232, 232));
palette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(128, 128, 128));
palette.setColor(QPalette::Disabled, QPalette::Button, QColor(221, 223, 228));
palette.setColor(QPalette::Disabled, QPalette::Light, QColor(255, 255, 255));
palette.setColor(QPalette::Disabled, QPalette::Midlight, QColor(255, 255, 255));
palette.setColor(QPalette::Disabled, QPalette::Dark, QColor(85, 85, 85));
palette.setColor(QPalette::Disabled, QPalette::Mid, QColor(199, 199, 199));
palette.setColor(QPalette::Disabled, QPalette::Text, QColor(199, 199, 199));
palette.setColor(QPalette::Disabled, QPalette::BrightText, QColor(255, 255, 255));
palette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(128, 128, 128));
palette.setColor(QPalette::Disabled, QPalette::Base, QColor(239, 239, 239));
palette.setColor(QPalette::Disabled, QPalette::Window, QColor(239, 239, 239));
palette.setColor(QPalette::Disabled, QPalette::Shadow, QColor(0, 0, 0));
palette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(86, 117, 148));
palette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(255, 255, 255));
palette.setColor(QPalette::Disabled, QPalette::Link, QColor(0, 0, 238));
palette.setColor(QPalette::Disabled, QPalette::LinkVisited, QColor(82, 24, 139));
palette.setColor(QPalette::Disabled, QPalette::AlternateBase, QColor(232, 232, 232));
frameMap->setPalette(palette);
frameMap->setFrameShape(QFrame::NoFrame);
frameMap->setFrameShadow(QFrame::Plain);
vboxLayout1->addWidget(frameMap);
hboxLayout->addWidget(groupSummary);
groupBox = new QFrame(OriginLocatorView);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
QSizePolicy sizePolicy4(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy4.setHorizontalStretch(1);
sizePolicy4.setVerticalStretch(0);
sizePolicy4.setHeightForWidth(groupBox->sizePolicy().hasHeightForWidth());
groupBox->setSizePolicy(sizePolicy4);
gridLayout = new QGridLayout(groupBox);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(9, 9, 9, 9);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
labelNumPhases = new QLabel(groupBox);
labelNumPhases->setObjectName(QString::fromUtf8("labelNumPhases"));
labelNumPhases->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelNumPhases, 4, 1, 1, 1);
labelAgency = new QLabel(groupBox);
labelAgency->setObjectName(QString::fromUtf8("labelAgency"));
QSizePolicy sizePolicy5(QSizePolicy::Ignored, QSizePolicy::Preferred);
sizePolicy5.setHorizontalStretch(0);
sizePolicy5.setVerticalStretch(0);
sizePolicy5.setHeightForWidth(labelAgency->sizePolicy().hasHeightForWidth());
labelAgency->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelAgency, 12, 1, 1, 4);
labelMinDistUnit = new QLabel(groupBox);
labelMinDistUnit->setObjectName(QString::fromUtf8("labelMinDistUnit"));
gridLayout->addWidget(labelMinDistUnit, 8, 2, 1, 1);
labelDepth = new QLabel(groupBox);
labelDepth->setObjectName(QString::fromUtf8("labelDepth"));
labelDepth->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelDepth, 1, 1, 1, 1);
labelStdErrorUnit = new QLabel(groupBox);
labelStdErrorUnit->setObjectName(QString::fromUtf8("labelStdErrorUnit"));
gridLayout->addWidget(labelStdErrorUnit, 5, 2, 1, 1);
lbEventID = new QLabel(groupBox);
lbEventID->setObjectName(QString::fromUtf8("lbEventID"));
lbEventID->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbEventID, 11, 0, 1, 1);
labelLatitudeErrorUnit = new QLabel(groupBox);
labelLatitudeErrorUnit->setObjectName(QString::fromUtf8("labelLatitudeErrorUnit"));
gridLayout->addWidget(labelLatitudeErrorUnit, 2, 4, 1, 1);
labelLatitudeError = new QLabel(groupBox);
labelLatitudeError->setObjectName(QString::fromUtf8("labelLatitudeError"));
labelLatitudeError->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelLatitudeError, 2, 3, 1, 1);
label_13 = new QLabel(groupBox);
label_13->setObjectName(QString::fromUtf8("label_13"));
label_13->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_13, 5, 0, 1, 1);
labelLongitude = new QLabel(groupBox);
labelLongitude->setObjectName(QString::fromUtf8("labelLongitude"));
labelLongitude->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelLongitude, 3, 1, 1, 1);
labelCreated = new QLabel(groupBox);
labelCreated->setObjectName(QString::fromUtf8("labelCreated"));
gridLayout->addWidget(labelCreated, 17, 1, 1, 4);
label_11 = new QLabel(groupBox);
label_11->setObjectName(QString::fromUtf8("label_11"));
label_11->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_11, 3, 0, 1, 1);
labelLongitudeErrorUnit = new QLabel(groupBox);
labelLongitudeErrorUnit->setObjectName(QString::fromUtf8("labelLongitudeErrorUnit"));
gridLayout->addWidget(labelLongitudeErrorUnit, 3, 4, 1, 1);
labelUser = new QLabel(groupBox);
labelUser->setObjectName(QString::fromUtf8("labelUser"));
sizePolicy5.setHeightForWidth(labelUser->sizePolicy().hasHeightForWidth());
labelUser->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelUser, 13, 1, 1, 4);
labelEarthModel = new QLabel(groupBox);
labelEarthModel->setObjectName(QString::fromUtf8("labelEarthModel"));
sizePolicy5.setHeightForWidth(labelEarthModel->sizePolicy().hasHeightForWidth());
labelEarthModel->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelEarthModel, 16, 1, 1, 4);
frameInfoSeparator = new QFrame(groupBox);
frameInfoSeparator->setObjectName(QString::fromUtf8("frameInfoSeparator"));
frameInfoSeparator->setFrameShape(QFrame::HLine);
frameInfoSeparator->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(frameInfoSeparator, 10, 0, 1, 5);
labelNumPhasesError = new QLabel(groupBox);
labelNumPhasesError->setObjectName(QString::fromUtf8("labelNumPhasesError"));
labelNumPhasesError->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelNumPhasesError, 4, 3, 1, 1);
labelLatitudeUnit = new QLabel(groupBox);
labelLatitudeUnit->setObjectName(QString::fromUtf8("labelLatitudeUnit"));
gridLayout->addWidget(labelLatitudeUnit, 2, 2, 1, 1);
labelStdError = new QLabel(groupBox);
labelStdError->setObjectName(QString::fromUtf8("labelStdError"));
labelStdError->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelStdError, 5, 1, 1, 1);
labelLatitude = new QLabel(groupBox);
labelLatitude->setObjectName(QString::fromUtf8("labelLatitude"));
labelLatitude->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelLatitude, 2, 1, 1, 1);
label_7 = new QLabel(groupBox);
label_7->setObjectName(QString::fromUtf8("label_7"));
label_7->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_7, 7, 0, 1, 1);
labelEventID = new QLabel(groupBox);
labelEventID->setObjectName(QString::fromUtf8("labelEventID"));
sizePolicy5.setHeightForWidth(labelEventID->sizePolicy().hasHeightForWidth());
labelEventID->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelEventID, 11, 1, 1, 4);
labelDepthErrorUnit = new QLabel(groupBox);
labelDepthErrorUnit->setObjectName(QString::fromUtf8("labelDepthErrorUnit"));
gridLayout->addWidget(labelDepthErrorUnit, 1, 4, 1, 1);
labelTime = new QLabel(groupBox);
labelTime->setObjectName(QString::fromUtf8("labelTime"));
labelTime->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelTime, 0, 1, 1, 4);
label_12 = new QLabel(groupBox);
label_12->setObjectName(QString::fromUtf8("label_12"));
label_12->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_12, 1, 0, 1, 1);
lbEarthModel = new QLabel(groupBox);
lbEarthModel->setObjectName(QString::fromUtf8("lbEarthModel"));
lbEarthModel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbEarthModel, 16, 0, 1, 1);
lbMethod = new QLabel(groupBox);
lbMethod->setObjectName(QString::fromUtf8("lbMethod"));
lbMethod->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbMethod, 15, 0, 1, 1);
labelMinDist = new QLabel(groupBox);
labelMinDist->setObjectName(QString::fromUtf8("labelMinDist"));
labelMinDist->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelMinDist, 8, 1, 1, 1);
lbAgencyID = new QLabel(groupBox);
lbAgencyID->setObjectName(QString::fromUtf8("lbAgencyID"));
lbAgencyID->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbAgencyID, 12, 0, 1, 1);
label_8 = new QLabel(groupBox);
label_8->setObjectName(QString::fromUtf8("label_8"));
label_8->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_8, 4, 0, 1, 1);
labelMethod = new QLabel(groupBox);
labelMethod->setObjectName(QString::fromUtf8("labelMethod"));
sizePolicy5.setHeightForWidth(labelMethod->sizePolicy().hasHeightForWidth());
labelMethod->setSizePolicy(sizePolicy5);
gridLayout->addWidget(labelMethod, 15, 1, 1, 4);
label_10 = new QLabel(groupBox);
label_10->setObjectName(QString::fromUtf8("label_10"));
label_10->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_10, 2, 0, 1, 1);
spacerItem = new QSpacerItem(201, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(spacerItem, 9, 0, 1, 5);
label_16 = new QLabel(groupBox);
label_16->setObjectName(QString::fromUtf8("label_16"));
label_16->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_16, 17, 0, 1, 1);
labelNumPhasesUnit = new QLabel(groupBox);
labelNumPhasesUnit->setObjectName(QString::fromUtf8("labelNumPhasesUnit"));
labelNumPhasesUnit->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(labelNumPhasesUnit, 4, 2, 1, 1);
lbUser = new QLabel(groupBox);
lbUser->setObjectName(QString::fromUtf8("lbUser"));
lbUser->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbUser, 13, 0, 1, 1);
label_9 = new QLabel(groupBox);
label_9->setObjectName(QString::fromUtf8("label_9"));
label_9->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_9, 8, 0, 1, 1);
labelLongitudeError = new QLabel(groupBox);
labelLongitudeError->setObjectName(QString::fromUtf8("labelLongitudeError"));
labelLongitudeError->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelLongitudeError, 3, 3, 1, 1);
labelDepthError = new QLabel(groupBox);
labelDepthError->setObjectName(QString::fromUtf8("labelDepthError"));
labelDepthError->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
gridLayout->addWidget(labelDepthError, 1, 3, 1, 1);
labelEvaluation = new QLabel(groupBox);
labelEvaluation->setObjectName(QString::fromUtf8("labelEvaluation"));
gridLayout->addWidget(labelEvaluation, 14, 1, 1, 4);
labelLongitudeUnit = new QLabel(groupBox);
labelLongitudeUnit->setObjectName(QString::fromUtf8("labelLongitudeUnit"));
gridLayout->addWidget(labelLongitudeUnit, 3, 2, 1, 1);
label_15 = new QLabel(groupBox);
label_15->setObjectName(QString::fromUtf8("label_15"));
label_15->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(label_15, 0, 0, 1, 1);
labelAzimuthGap = new QLabel(groupBox);
labelAzimuthGap->setObjectName(QString::fromUtf8("labelAzimuthGap"));
labelAzimuthGap->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelAzimuthGap, 7, 1, 1, 1);
labelDepthUnit = new QLabel(groupBox);
labelDepthUnit->setObjectName(QString::fromUtf8("labelDepthUnit"));
gridLayout->addWidget(labelDepthUnit, 1, 2, 1, 1);
labelAzimuthGapUnit = new QLabel(groupBox);
labelAzimuthGapUnit->setObjectName(QString::fromUtf8("labelAzimuthGapUnit"));
gridLayout->addWidget(labelAzimuthGapUnit, 7, 2, 1, 1);
lbEvaluation = new QLabel(groupBox);
lbEvaluation->setObjectName(QString::fromUtf8("lbEvaluation"));
lbEvaluation->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbEvaluation, 14, 0, 1, 1);
lbComment = new QLabel(groupBox);
lbComment->setObjectName(QString::fromUtf8("lbComment"));
lbComment->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(lbComment, 6, 0, 1, 1);
labelComment = new QLabel(groupBox);
labelComment->setObjectName(QString::fromUtf8("labelComment"));
labelComment->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
gridLayout->addWidget(labelComment, 6, 1, 1, 1);
hboxLayout->addWidget(groupBox);
groupResiduals = new QFrame(OriginLocatorView);
groupResiduals->setObjectName(QString::fromUtf8("groupResiduals"));
sizePolicy1.setHeightForWidth(groupResiduals->sizePolicy().hasHeightForWidth());
groupResiduals->setSizePolicy(sizePolicy1);
groupResiduals->setFrameShape(QFrame::NoFrame);
vboxLayout2 = new QVBoxLayout(groupResiduals);
vboxLayout2->setSpacing(4);
vboxLayout2->setContentsMargins(0, 0, 0, 0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
hboxLayout1 = new QHBoxLayout();
hboxLayout1->setSpacing(6);
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
spacerItem1 = new QSpacerItem(40, 4, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
label_5 = new QLabel(groupResiduals);
label_5->setObjectName(QString::fromUtf8("label_5"));
QSizePolicy sizePolicy6(QSizePolicy::Preferred, QSizePolicy::Maximum);
sizePolicy6.setHorizontalStretch(0);
sizePolicy6.setVerticalStretch(0);
sizePolicy6.setHeightForWidth(label_5->sizePolicy().hasHeightForWidth());
label_5->setSizePolicy(sizePolicy6);
hboxLayout1->addWidget(label_5);
labelPlotFilter = new QLabel(groupResiduals);
labelPlotFilter->setObjectName(QString::fromUtf8("labelPlotFilter"));
sizePolicy6.setHeightForWidth(labelPlotFilter->sizePolicy().hasHeightForWidth());
labelPlotFilter->setSizePolicy(sizePolicy6);
hboxLayout1->addWidget(labelPlotFilter);
vboxLayout2->addLayout(hboxLayout1);
hboxLayout->addWidget(groupResiduals);
vboxLayout->addLayout(hboxLayout);
tableArrivals = new QTableView(OriginLocatorView);
tableArrivals->setObjectName(QString::fromUtf8("tableArrivals"));
tableArrivals->setFrameShape(QFrame::NoFrame);
tableArrivals->setFrameShadow(QFrame::Plain);
tableArrivals->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
tableArrivals->setAlternatingRowColors(true);
tableArrivals->setSelectionMode(QAbstractItemView::SingleSelection);
tableArrivals->setSelectionBehavior(QAbstractItemView::SelectRows);
vboxLayout->addWidget(tableArrivals);
toolButtonGroupBox = new QFrame(OriginLocatorView);
toolButtonGroupBox->setObjectName(QString::fromUtf8("toolButtonGroupBox"));
sizePolicy6.setHeightForWidth(toolButtonGroupBox->sizePolicy().hasHeightForWidth());
toolButtonGroupBox->setSizePolicy(sizePolicy6);
toolButtonGroupBox->setFrameShape(QFrame::NoFrame);
gridLayout1 = new QGridLayout(toolButtonGroupBox);
gridLayout1->setSpacing(6);
gridLayout1->setContentsMargins(0, 0, 0, 0);
gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
frameDepthType = new QFrame(toolButtonGroupBox);
frameDepthType->setObjectName(QString::fromUtf8("frameDepthType"));
frameDepthType->setFrameShape(QFrame::NoFrame);
frameDepthType->setFrameShadow(QFrame::Raised);
hboxLayout2 = new QHBoxLayout(frameDepthType);
hboxLayout2->setSpacing(6);
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
cbDepthType = new QComboBox(frameDepthType);
cbDepthType->setObjectName(QString::fromUtf8("cbDepthType"));
cbDepthType->setEnabled(false);
hboxLayout2->addWidget(cbDepthType);
gridLayout1->addWidget(frameDepthType, 1, 1, 1, 1);
frameActionsLeft = new QFrame(toolButtonGroupBox);
frameActionsLeft->setObjectName(QString::fromUtf8("frameActionsLeft"));
sizePolicy.setHeightForWidth(frameActionsLeft->sizePolicy().hasHeightForWidth());
frameActionsLeft->setSizePolicy(sizePolicy);
frameActionsLeft->setFrameShape(QFrame::NoFrame);
frameActionsLeft->setFrameShadow(QFrame::Raised);
hboxLayout3 = new QHBoxLayout(frameActionsLeft);
hboxLayout3->setSpacing(6);
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
btnRelocate = new QToolButton(frameActionsLeft);
btnRelocate->setObjectName(QString::fromUtf8("btnRelocate"));
btnRelocate->setEnabled(false);
hboxLayout3->addWidget(btnRelocate);
btnCustom0 = new QToolButton(frameActionsLeft);
btnCustom0->setObjectName(QString::fromUtf8("btnCustom0"));
btnCustom0->setEnabled(false);
hboxLayout3->addWidget(btnCustom0);
btnCustom1 = new QToolButton(frameActionsLeft);
btnCustom1->setObjectName(QString::fromUtf8("btnCustom1"));
btnCustom1->setEnabled(false);
hboxLayout3->addWidget(btnCustom1);
spacerItem2 = new QSpacerItem(31, 24, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout3->addItem(spacerItem2);
gridLayout1->addWidget(frameActionsLeft, 1, 0, 1, 1);
frameLocator = new QFrame(toolButtonGroupBox);
frameLocator->setObjectName(QString::fromUtf8("frameLocator"));
sizePolicy.setHeightForWidth(frameLocator->sizePolicy().hasHeightForWidth());
frameLocator->setSizePolicy(sizePolicy);
frameLocator->setFrameShape(QFrame::NoFrame);
frameLocator->setFrameShadow(QFrame::Raised);
hboxLayout4 = new QHBoxLayout(frameLocator);
hboxLayout4->setSpacing(6);
hboxLayout4->setContentsMargins(0, 0, 0, 0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
cbLocator = new QComboBox(frameLocator);
cbLocator->setObjectName(QString::fromUtf8("cbLocator"));
cbLocator->setEnabled(false);
hboxLayout4->addWidget(cbLocator);
btnLocatorSettings = new QToolButton(frameLocator);
btnLocatorSettings->setObjectName(QString::fromUtf8("btnLocatorSettings"));
btnLocatorSettings->setEnabled(false);
const QIcon icon = QIcon(QString::fromUtf8(":/icons/icons/configure.png"));
btnLocatorSettings->setIcon(icon);
btnLocatorSettings->setAutoRaise(true);
hboxLayout4->addWidget(btnLocatorSettings);
spacerItem3 = new QSpacerItem(20, 27, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem3);
label_2 = new QLabel(frameLocator);
label_2->setObjectName(QString::fromUtf8("label_2"));
hboxLayout4->addWidget(label_2);
cbLocatorProfile = new QComboBox(frameLocator);
cbLocatorProfile->setObjectName(QString::fromUtf8("cbLocatorProfile"));
cbLocatorProfile->setEnabled(false);
cbLocatorProfile->setSizeAdjustPolicy(QComboBox::AdjustToContents);
hboxLayout4->addWidget(cbLocatorProfile);
spacerItem4 = new QSpacerItem(20, 27, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem4);
gridLayout1->addWidget(frameLocator, 0, 0, 1, 1);
frameFixDepth = new QFrame(toolButtonGroupBox);
frameFixDepth->setObjectName(QString::fromUtf8("frameFixDepth"));
frameFixDepth->setFrameShape(QFrame::NoFrame);
frameFixDepth->setFrameShadow(QFrame::Raised);
hboxLayout5 = new QHBoxLayout(frameFixDepth);
hboxLayout5->setSpacing(6);
hboxLayout5->setContentsMargins(0, 0, 0, 0);
hboxLayout5->setObjectName(QString::fromUtf8("hboxLayout5"));
cbFixedDepth = new QCheckBox(frameFixDepth);
cbFixedDepth->setObjectName(QString::fromUtf8("cbFixedDepth"));
QSizePolicy sizePolicy7(QSizePolicy::Maximum, QSizePolicy::Fixed);
sizePolicy7.setHorizontalStretch(0);
sizePolicy7.setVerticalStretch(0);
sizePolicy7.setHeightForWidth(cbFixedDepth->sizePolicy().hasHeightForWidth());
cbFixedDepth->setSizePolicy(sizePolicy7);
hboxLayout5->addWidget(cbFixedDepth);
editFixedDepth = new QLineEdit(frameFixDepth);
editFixedDepth->setObjectName(QString::fromUtf8("editFixedDepth"));
editFixedDepth->setEnabled(false);
QSizePolicy sizePolicy8(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
sizePolicy8.setHorizontalStretch(0);
sizePolicy8.setVerticalStretch(0);
sizePolicy8.setHeightForWidth(editFixedDepth->sizePolicy().hasHeightForWidth());
editFixedDepth->setSizePolicy(sizePolicy8);
editFixedDepth->setMinimumSize(QSize(60, 0));
editFixedDepth->setAlignment(Qt::AlignRight);
hboxLayout5->addWidget(editFixedDepth);
label_3 = new QLabel(frameFixDepth);
label_3->setObjectName(QString::fromUtf8("label_3"));
QSizePolicy sizePolicy9(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy9.setHorizontalStretch(0);
sizePolicy9.setVerticalStretch(0);
sizePolicy9.setHeightForWidth(label_3->sizePolicy().hasHeightForWidth());
label_3->setSizePolicy(sizePolicy9);
hboxLayout5->addWidget(label_3);
spacerItem5 = new QSpacerItem(20, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
hboxLayout5->addItem(spacerItem5);
gridLayout1->addWidget(frameFixDepth, 0, 1, 1, 1);
frame = new QFrame(toolButtonGroupBox);
frame->setObjectName(QString::fromUtf8("frame"));
QSizePolicy sizePolicy10(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy10.setHorizontalStretch(1);
sizePolicy10.setVerticalStretch(0);
sizePolicy10.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
frame->setSizePolicy(sizePolicy10);
frame->setFrameShape(QFrame::NoFrame);
frame->setFrameShadow(QFrame::Raised);
hboxLayout6 = new QHBoxLayout(frame);
hboxLayout6->setSpacing(6);
hboxLayout6->setContentsMargins(0, 0, 0, 0);
hboxLayout6->setObjectName(QString::fromUtf8("hboxLayout6"));
cbDistanceCutOff = new QCheckBox(frame);
cbDistanceCutOff->setObjectName(QString::fromUtf8("cbDistanceCutOff"));
hboxLayout6->addWidget(cbDistanceCutOff);
editDistanceCutOff = new QLineEdit(frame);
editDistanceCutOff->setObjectName(QString::fromUtf8("editDistanceCutOff"));
editDistanceCutOff->setEnabled(false);
editDistanceCutOff->setMinimumSize(QSize(60, 0));
editDistanceCutOff->setMaximumSize(QSize(60, 16777215));
editDistanceCutOff->setAlignment(Qt::AlignRight);
hboxLayout6->addWidget(editDistanceCutOff);
label = new QLabel(frame);
label->setObjectName(QString::fromUtf8("label"));
hboxLayout6->addWidget(label);
spacerItem6 = new QSpacerItem(20, 27, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout6->addItem(spacerItem6);
cbIgnoreInitialLocation = new QCheckBox(frame);
cbIgnoreInitialLocation->setObjectName(QString::fromUtf8("cbIgnoreInitialLocation"));
hboxLayout6->addWidget(cbIgnoreInitialLocation);
spacerItem7 = new QSpacerItem(120, 27, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout6->addItem(spacerItem7);
buttonEditComment = new QToolButton(frame);
buttonEditComment->setObjectName(QString::fromUtf8("buttonEditComment"));
buttonEditComment->setEnabled(false);
buttonEditComment->setMaximumSize(QSize(25, 25));
const QIcon icon1 = QIcon(QString::fromUtf8(":/icons/icons/comment.png"));
buttonEditComment->setIcon(icon1);
buttonEditComment->setIconSize(QSize(24, 24));
buttonEditComment->setAutoRaise(true);
hboxLayout6->addWidget(buttonEditComment);
gridLayout1->addWidget(frame, 0, 2, 1, 1);
frameActionsRight = new QFrame(toolButtonGroupBox);
frameActionsRight->setObjectName(QString::fromUtf8("frameActionsRight"));
sizePolicy10.setHeightForWidth(frameActionsRight->sizePolicy().hasHeightForWidth());
frameActionsRight->setSizePolicy(sizePolicy10);
frameActionsRight->setFrameShape(QFrame::NoFrame);
frameActionsRight->setFrameShadow(QFrame::Raised);
hboxLayout7 = new QHBoxLayout(frameActionsRight);
hboxLayout7->setSpacing(6);
hboxLayout7->setContentsMargins(0, 0, 0, 0);
hboxLayout7->setObjectName(QString::fromUtf8("hboxLayout7"));
spacerItem8 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout7->addItem(spacerItem8);
btnShowWaveforms = new QToolButton(frameActionsRight);
btnShowWaveforms->setObjectName(QString::fromUtf8("btnShowWaveforms"));
btnShowWaveforms->setEnabled(false);
hboxLayout7->addWidget(btnShowWaveforms);
btnImportAllArrivals = new QToolButton(frameActionsRight);
btnImportAllArrivals->setObjectName(QString::fromUtf8("btnImportAllArrivals"));
btnImportAllArrivals->setEnabled(false);
hboxLayout7->addWidget(btnImportAllArrivals);
btnMagnitudes = new QToolButton(frameActionsRight);
btnMagnitudes->setObjectName(QString::fromUtf8("btnMagnitudes"));
btnMagnitudes->setEnabled(false);
hboxLayout7->addWidget(btnMagnitudes);
btnCommit = new QToolButton(frameActionsRight);
btnCommit->setObjectName(QString::fromUtf8("btnCommit"));
btnCommit->setEnabled(false);
hboxLayout7->addWidget(btnCommit);
gridLayout1->addWidget(frameActionsRight, 1, 2, 1, 1);
vboxLayout->addWidget(toolButtonGroupBox);
QWidget::setTabOrder(tableArrivals, cbLocator);
QWidget::setTabOrder(cbLocator, btnLocatorSettings);
QWidget::setTabOrder(btnLocatorSettings, cbLocatorProfile);
QWidget::setTabOrder(cbLocatorProfile, cbFixedDepth);
QWidget::setTabOrder(cbFixedDepth, editFixedDepth);
QWidget::setTabOrder(editFixedDepth, cbDistanceCutOff);
QWidget::setTabOrder(cbDistanceCutOff, editDistanceCutOff);
retranslateUi(OriginLocatorView);
QObject::connect(cbFixedDepth, SIGNAL(toggled(bool)), editFixedDepth, SLOT(setEnabled(bool)));
QObject::connect(cbFixedDepth, SIGNAL(toggled(bool)), cbDepthType, SLOT(setEnabled(bool)));
QObject::connect(cbDistanceCutOff, SIGNAL(toggled(bool)), editDistanceCutOff, SLOT(setEnabled(bool)));
QMetaObject::connectSlotsByName(OriginLocatorView);
} // setupUi
void retranslateUi(QWidget *OriginLocatorView)
{
OriginLocatorView->setWindowTitle(QCoreApplication::translate("OriginLocatorView", "OriginLocatorView", nullptr));
labelRegion->setText(QCoreApplication::translate("OriginLocatorView", "Region", nullptr));
labelNumPhases->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelAgency->setText(QCoreApplication::translate("OriginLocatorView", "GFZ Potsdam", nullptr));
labelMinDistUnit->setText(QCoreApplication::translate("OriginLocatorView", "\302\260", nullptr));
labelDepth->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelStdErrorUnit->setText(QCoreApplication::translate("OriginLocatorView", "s", nullptr));
lbEventID->setText(QCoreApplication::translate("OriginLocatorView", "EventID:", nullptr));
labelLatitudeErrorUnit->setText(QCoreApplication::translate("OriginLocatorView", "km", nullptr));
labelLatitudeError->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
label_13->setText(QCoreApplication::translate("OriginLocatorView", "RMS Res.:", nullptr));
labelLongitude->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelCreated->setText(QString());
label_11->setText(QCoreApplication::translate("OriginLocatorView", "Lon:", nullptr));
labelLongitudeErrorUnit->setText(QCoreApplication::translate("OriginLocatorView", "km", nullptr));
labelUser->setText(QString());
labelEarthModel->setText(QString());
labelNumPhasesError->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelLatitudeUnit->setText(QCoreApplication::translate("OriginLocatorView", "\302\260", nullptr));
labelStdError->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelLatitude->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
label_7->setText(QCoreApplication::translate("OriginLocatorView", " Az. Gap:", nullptr));
labelEventID->setText(QString());
labelDepthErrorUnit->setText(QString());
labelTime->setText(QString());
label_12->setText(QCoreApplication::translate("OriginLocatorView", "Depth:", nullptr));
lbEarthModel->setText(QCoreApplication::translate("OriginLocatorView", "Earth model:", nullptr));
lbMethod->setText(QCoreApplication::translate("OriginLocatorView", "Method:", nullptr));
labelMinDist->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
lbAgencyID->setText(QCoreApplication::translate("OriginLocatorView", "Agency:", nullptr));
label_8->setText(QCoreApplication::translate("OriginLocatorView", "Phases:", nullptr));
labelMethod->setText(QString());
label_10->setText(QCoreApplication::translate("OriginLocatorView", "Lat:", nullptr));
label_16->setText(QCoreApplication::translate("OriginLocatorView", "Updated:", nullptr));
labelNumPhasesUnit->setText(QCoreApplication::translate("OriginLocatorView", "/", nullptr));
lbUser->setText(QCoreApplication::translate("OriginLocatorView", "Author:", nullptr));
label_9->setText(QCoreApplication::translate("OriginLocatorView", "Min. Dist.:", nullptr));
labelLongitudeError->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelDepthError->setText(QString());
labelEvaluation->setText(QCoreApplication::translate("OriginLocatorView", "- (-)", nullptr));
labelLongitudeUnit->setText(QCoreApplication::translate("OriginLocatorView", "\302\260", nullptr));
label_15->setText(QCoreApplication::translate("OriginLocatorView", "Time:", nullptr));
labelAzimuthGap->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
labelDepthUnit->setText(QCoreApplication::translate("OriginLocatorView", "km", nullptr));
labelAzimuthGapUnit->setText(QCoreApplication::translate("OriginLocatorView", "\302\260", nullptr));
lbEvaluation->setText(QCoreApplication::translate("OriginLocatorView", "Evaluation:", nullptr));
lbComment->setText(QCoreApplication::translate("OriginLocatorView", "Custom:", nullptr));
labelComment->setText(QCoreApplication::translate("OriginLocatorView", "-", nullptr));
label_5->setText(QCoreApplication::translate("OriginLocatorView", "Filter is", nullptr));
labelPlotFilter->setText(QCoreApplication::translate("OriginLocatorView", "<a href=\"filter\">not active</a>", nullptr));
btnRelocate->setText(QCoreApplication::translate("OriginLocatorView", "Relocate", nullptr));
btnCustom0->setText(QCoreApplication::translate("OriginLocatorView", "Custom1", nullptr));
btnCustom1->setText(QCoreApplication::translate("OriginLocatorView", "Custom2", nullptr));
#if QT_CONFIG(tooltip)
btnLocatorSettings->setToolTip(QCoreApplication::translate("OriginLocatorView", "Change locator settings", nullptr));
#endif // QT_CONFIG(tooltip)
btnLocatorSettings->setText(QCoreApplication::translate("OriginLocatorView", "...", nullptr));
label_2->setText(QCoreApplication::translate("OriginLocatorView", "Profile:", nullptr));
cbFixedDepth->setText(QCoreApplication::translate("OriginLocatorView", "Fix depth", nullptr));
label_3->setText(QCoreApplication::translate("OriginLocatorView", "km", nullptr));
cbDistanceCutOff->setText(QCoreApplication::translate("OriginLocatorView", "Distance cutoff", nullptr));
label->setText(QCoreApplication::translate("OriginLocatorView", "km", nullptr));
#if QT_CONFIG(tooltip)
cbIgnoreInitialLocation->setToolTip(QCoreApplication::translate("OriginLocatorView", "Instructs the locator to ignore the passed initial location and to try to locate the event based on the given phases only.", nullptr));
#endif // QT_CONFIG(tooltip)
#if QT_CONFIG(whatsthis)
cbIgnoreInitialLocation->setWhatsThis(QCoreApplication::translate("OriginLocatorView", "Instructs the locator to ignore the passed initial location and to try to locate the event based on the given phases only.", nullptr));
#endif // QT_CONFIG(whatsthis)
cbIgnoreInitialLocation->setText(QCoreApplication::translate("OriginLocatorView", "Ignore initial location", nullptr));
#if QT_CONFIG(tooltip)
buttonEditComment->setToolTip(QCoreApplication::translate("OriginLocatorView", "Create a new comment on this event or edit an existing one.", nullptr));
#endif // QT_CONFIG(tooltip)
buttonEditComment->setText(QString());
btnShowWaveforms->setText(QCoreApplication::translate("OriginLocatorView", "Picker", nullptr));
btnImportAllArrivals->setText(QCoreApplication::translate("OriginLocatorView", "Import picks", nullptr));
btnMagnitudes->setText(QCoreApplication::translate("OriginLocatorView", "Compute magnitudes", nullptr));
btnCommit->setText(QCoreApplication::translate("OriginLocatorView", "Commit", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginLocatorView: public Ui_OriginLocatorView {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ORIGINLOCATORVIEW_H

View File

@ -0,0 +1,205 @@
/********************************************************************************
** Form generated from reading UI file 'originlocatorview_comment.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ORIGINLOCATORVIEW_COMMENT_H
#define UI_ORIGINLOCATORVIEW_COMMENT_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_OriginCommentOptions
{
public:
QVBoxLayout *vboxLayout;
QHBoxLayout *hboxLayout;
QVBoxLayout *vboxLayout1;
QLabel *labelHeadline;
QSpacerItem *spacerItem;
QVBoxLayout *vboxLayout2;
QSpacerItem *verticalSpacerTop;
QHBoxLayout *hboxLayout1;
QLabel *labelAuthor;
QSpacerItem *spacerItem1;
QLabel *labelDate;
QSpacerItem *verticalSpacerBottom;
QFrame *frame;
QTextEdit *editComment;
QHBoxLayout *hboxLayout2;
QSpacerItem *spacerItem2;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *OriginCommentOptions)
{
if (OriginCommentOptions->objectName().isEmpty())
OriginCommentOptions->setObjectName(QString::fromUtf8("OriginCommentOptions"));
OriginCommentOptions->resize(546, 320);
vboxLayout = new QVBoxLayout(OriginCommentOptions);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
hboxLayout = new QHBoxLayout();
hboxLayout->setSpacing(12);
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
vboxLayout1 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout1->setContentsMargins(0, 0, 0, 0);
#endif
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
labelHeadline = new QLabel(OriginCommentOptions);
labelHeadline->setObjectName(QString::fromUtf8("labelHeadline"));
labelHeadline->setEnabled(false);
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(labelHeadline->sizePolicy().hasHeightForWidth());
labelHeadline->setSizePolicy(sizePolicy);
labelHeadline->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/comment.png")));
labelHeadline->setScaledContents(false);
vboxLayout1->addWidget(labelHeadline);
spacerItem = new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout1->addItem(spacerItem);
hboxLayout->addLayout(vboxLayout1);
vboxLayout2 = new QVBoxLayout();
vboxLayout2->setSpacing(0);
vboxLayout2->setContentsMargins(0, 0, 0, 0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
verticalSpacerTop = new QSpacerItem(10, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout2->addItem(verticalSpacerTop);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout1->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
labelAuthor = new QLabel(OriginCommentOptions);
labelAuthor->setObjectName(QString::fromUtf8("labelAuthor"));
hboxLayout1->addWidget(labelAuthor);
spacerItem1 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
labelDate = new QLabel(OriginCommentOptions);
labelDate->setObjectName(QString::fromUtf8("labelDate"));
hboxLayout1->addWidget(labelDate);
vboxLayout2->addLayout(hboxLayout1);
verticalSpacerBottom = new QSpacerItem(10, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout2->addItem(verticalSpacerBottom);
hboxLayout->addLayout(vboxLayout2);
vboxLayout->addLayout(hboxLayout);
frame = new QFrame(OriginCommentOptions);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(frame);
editComment = new QTextEdit(OriginCommentOptions);
editComment->setObjectName(QString::fromUtf8("editComment"));
QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(1);
sizePolicy1.setHeightForWidth(editComment->sizePolicy().hasHeightForWidth());
editComment->setSizePolicy(sizePolicy1);
editComment->setFrameShape(QFrame::StyledPanel);
editComment->setFrameShadow(QFrame::Plain);
vboxLayout->addWidget(editComment);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
spacerItem2 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem2);
okButton = new QPushButton(OriginCommentOptions);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout2->addWidget(okButton);
cancelButton = new QPushButton(OriginCommentOptions);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout2->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout2);
retranslateUi(OriginCommentOptions);
QObject::connect(okButton, SIGNAL(clicked()), OriginCommentOptions, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), OriginCommentOptions, SLOT(reject()));
QMetaObject::connectSlotsByName(OriginCommentOptions);
} // setupUi
void retranslateUi(QDialog *OriginCommentOptions)
{
OriginCommentOptions->setWindowTitle(QCoreApplication::translate("OriginCommentOptions", "Edit comment", nullptr));
labelHeadline->setText(QString());
labelAuthor->setText(QString());
labelDate->setText(QString());
okButton->setText(QCoreApplication::translate("OriginCommentOptions", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("OriginCommentOptions", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginCommentOptions: public Ui_OriginCommentOptions {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ORIGINLOCATORVIEW_COMMENT_H

View File

@ -0,0 +1,300 @@
/********************************************************************************
** Form generated from reading UI file 'originlocatorview_commit.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ORIGINLOCATORVIEW_COMMIT_H
#define UI_ORIGINLOCATORVIEW_COMMIT_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QFrame>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_OriginCommitOptions
{
public:
QVBoxLayout *vboxLayout;
QCheckBox *cbAssociate;
QFrame *frameEventOptions;
QVBoxLayout *vboxLayout1;
QHBoxLayout *hboxLayout;
QCheckBox *cbFixSolution;
QCheckBox *cbFixMagnitudeType;
QGridLayout *gridLayout;
QLabel *label_21;
QLabel *label_2;
QComboBox *comboOriginStates;
QComboBox *comboEventTypes;
QLabel *label_3;
QComboBox *comboEventTypeCertainty;
QLabel *labelPreferredMagnitude;
QComboBox *comboPreferredMagnitude;
QFrame *line;
QLabel *label;
QFrame *line_3;
QLabel *labelEQName;
QLineEdit *editEQName;
QLabel *labelEQComment;
QTextEdit *editEQComment;
QComboBox *comboEQComment;
QSpacerItem *spacerItem;
QFrame *line_2;
QCheckBox *cbBackToEventList;
QHBoxLayout *hboxLayout1;
QSpacerItem *spacerItem1;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *OriginCommitOptions)
{
if (OriginCommitOptions->objectName().isEmpty())
OriginCommitOptions->setObjectName(QString::fromUtf8("OriginCommitOptions"));
OriginCommitOptions->resize(607, 746);
vboxLayout = new QVBoxLayout(OriginCommitOptions);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
cbAssociate = new QCheckBox(OriginCommitOptions);
cbAssociate->setObjectName(QString::fromUtf8("cbAssociate"));
cbAssociate->setChecked(true);
vboxLayout->addWidget(cbAssociate);
frameEventOptions = new QFrame(OriginCommitOptions);
frameEventOptions->setObjectName(QString::fromUtf8("frameEventOptions"));
frameEventOptions->setFrameShape(QFrame::NoFrame);
frameEventOptions->setFrameShadow(QFrame::Raised);
vboxLayout1 = new QVBoxLayout(frameEventOptions);
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
vboxLayout1->setContentsMargins(0, 0, 0, 0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
cbFixSolution = new QCheckBox(frameEventOptions);
cbFixSolution->setObjectName(QString::fromUtf8("cbFixSolution"));
cbFixSolution->setChecked(true);
hboxLayout->addWidget(cbFixSolution);
vboxLayout1->addLayout(hboxLayout);
cbFixMagnitudeType = new QCheckBox(frameEventOptions);
cbFixMagnitudeType->setObjectName(QString::fromUtf8("cbFixMagnitudeType"));
cbFixMagnitudeType->setChecked(true);
vboxLayout1->addWidget(cbFixMagnitudeType);
gridLayout = new QGridLayout();
#ifndef Q_OS_MAC
gridLayout->setSpacing(6);
#endif
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label_21 = new QLabel(frameEventOptions);
label_21->setObjectName(QString::fromUtf8("label_21"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(label_21->sizePolicy().hasHeightForWidth());
label_21->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_21, 2, 0, 1, 1);
label_2 = new QLabel(frameEventOptions);
label_2->setObjectName(QString::fromUtf8("label_2"));
sizePolicy.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy);
gridLayout->addWidget(label_2, 0, 0, 1, 1);
comboOriginStates = new QComboBox(frameEventOptions);
comboOriginStates->setObjectName(QString::fromUtf8("comboOriginStates"));
gridLayout->addWidget(comboOriginStates, 2, 1, 1, 1);
comboEventTypes = new QComboBox(frameEventOptions);
comboEventTypes->setObjectName(QString::fromUtf8("comboEventTypes"));
gridLayout->addWidget(comboEventTypes, 0, 1, 1, 1);
label_3 = new QLabel(frameEventOptions);
label_3->setObjectName(QString::fromUtf8("label_3"));
gridLayout->addWidget(label_3, 1, 0, 1, 1);
comboEventTypeCertainty = new QComboBox(frameEventOptions);
comboEventTypeCertainty->setObjectName(QString::fromUtf8("comboEventTypeCertainty"));
gridLayout->addWidget(comboEventTypeCertainty, 1, 1, 1, 1);
labelPreferredMagnitude = new QLabel(frameEventOptions);
labelPreferredMagnitude->setObjectName(QString::fromUtf8("labelPreferredMagnitude"));
gridLayout->addWidget(labelPreferredMagnitude, 3, 0, 1, 1);
comboPreferredMagnitude = new QComboBox(frameEventOptions);
comboPreferredMagnitude->setObjectName(QString::fromUtf8("comboPreferredMagnitude"));
gridLayout->addWidget(comboPreferredMagnitude, 3, 1, 1, 1);
vboxLayout1->addLayout(gridLayout);
line = new QFrame(frameEventOptions);
line->setObjectName(QString::fromUtf8("line"));
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
vboxLayout1->addWidget(line);
label = new QLabel(frameEventOptions);
label->setObjectName(QString::fromUtf8("label"));
label->setWordWrap(true);
vboxLayout1->addWidget(label);
line_3 = new QFrame(frameEventOptions);
line_3->setObjectName(QString::fromUtf8("line_3"));
line_3->setFrameShape(QFrame::HLine);
line_3->setFrameShadow(QFrame::Sunken);
vboxLayout1->addWidget(line_3);
labelEQName = new QLabel(frameEventOptions);
labelEQName->setObjectName(QString::fromUtf8("labelEQName"));
vboxLayout1->addWidget(labelEQName);
editEQName = new QLineEdit(frameEventOptions);
editEQName->setObjectName(QString::fromUtf8("editEQName"));
vboxLayout1->addWidget(editEQName);
labelEQComment = new QLabel(frameEventOptions);
labelEQComment->setObjectName(QString::fromUtf8("labelEQComment"));
vboxLayout1->addWidget(labelEQComment);
editEQComment = new QTextEdit(frameEventOptions);
editEQComment->setObjectName(QString::fromUtf8("editEQComment"));
vboxLayout1->addWidget(editEQComment);
comboEQComment = new QComboBox(frameEventOptions);
comboEQComment->setObjectName(QString::fromUtf8("comboEQComment"));
vboxLayout1->addWidget(comboEQComment);
vboxLayout->addWidget(frameEventOptions);
spacerItem = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
line_2 = new QFrame(OriginCommitOptions);
line_2->setObjectName(QString::fromUtf8("line_2"));
line_2->setFrameShape(QFrame::HLine);
line_2->setFrameShadow(QFrame::Sunken);
vboxLayout->addWidget(line_2);
cbBackToEventList = new QCheckBox(OriginCommitOptions);
cbBackToEventList->setObjectName(QString::fromUtf8("cbBackToEventList"));
cbBackToEventList->setChecked(true);
vboxLayout->addWidget(cbBackToEventList);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem1);
okButton = new QPushButton(OriginCommitOptions);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout1->addWidget(okButton);
cancelButton = new QPushButton(OriginCommitOptions);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout1->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout1);
retranslateUi(OriginCommitOptions);
QObject::connect(okButton, SIGNAL(clicked()), OriginCommitOptions, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), OriginCommitOptions, SLOT(reject()));
QMetaObject::connectSlotsByName(OriginCommitOptions);
} // setupUi
void retranslateUi(QDialog *OriginCommitOptions)
{
OriginCommitOptions->setWindowTitle(QCoreApplication::translate("OriginCommitOptions", "Commit location", nullptr));
#if QT_CONFIG(tooltip)
cbAssociate->setToolTip(QCoreApplication::translate("OriginCommitOptions", "If checked this origin will be associated with the current event. If unchecked, scevent will decide whether to assoiciate the origin with the current event or to create a new one.", nullptr));
#endif // QT_CONFIG(tooltip)
cbAssociate->setText(QCoreApplication::translate("OriginCommitOptions", "Force association with event %1", nullptr));
#if QT_CONFIG(tooltip)
cbFixSolution->setToolTip(QCoreApplication::translate("OriginCommitOptions", "If checked this origin will be fixed as preferred solution.", nullptr));
#endif // QT_CONFIG(tooltip)
cbFixSolution->setText(QCoreApplication::translate("OriginCommitOptions", "Fix this origin as preferred location.", nullptr));
cbFixMagnitudeType->setText(QCoreApplication::translate("OriginCommitOptions", "Fix event preferred magnitude type %1", nullptr));
label_21->setText(QCoreApplication::translate("OriginCommitOptions", "Set origin status to", nullptr));
label_2->setText(QCoreApplication::translate("OriginCommitOptions", "Set event type to", nullptr));
label_3->setText(QCoreApplication::translate("OriginCommitOptions", "Set event certainty to", nullptr));
labelPreferredMagnitude->setText(QCoreApplication::translate("OriginCommitOptions", "Set preferred magnitude type to ", nullptr));
label->setText(QCoreApplication::translate("OriginCommitOptions", "<b><u>NOTE</u></b> To fix the origin involves that successive origins are not considered as preferred origins by the event associator (scevent) until another origin is fixed again. Fixing an origin overrides the automatic rules of setting an origin as preferred origin.", nullptr));
labelEQName->setText(QCoreApplication::translate("OriginCommitOptions", "Earthquake name:", nullptr));
labelEQComment->setText(QCoreApplication::translate("OriginCommitOptions", "Event comment 'Operator':", nullptr));
cbBackToEventList->setText(QCoreApplication::translate("OriginCommitOptions", "Return to event list after commit", nullptr));
okButton->setText(QCoreApplication::translate("OriginCommitOptions", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("OriginCommitOptions", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginCommitOptions: public Ui_OriginCommitOptions {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ORIGINLOCATORVIEW_COMMIT_H

View File

@ -0,0 +1,225 @@
/********************************************************************************
** Form generated from reading UI file 'origintime.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_ORIGINTIME_H
#define UI_ORIGINTIME_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDateEdit>
#include <QtWidgets/QDialog>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTimeEdit>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_OriginTimeDialog
{
public:
QVBoxLayout *vboxLayout;
QGroupBox *groupBox;
QHBoxLayout *hboxLayout;
QVBoxLayout *vboxLayout1;
QLabel *label;
QLabel *label_2;
QVBoxLayout *vboxLayout2;
QLabel *labelLatitude;
QLabel *labelLongitude;
QGroupBox *groupBox_2;
QHBoxLayout *hboxLayout1;
QTimeEdit *timeEdit;
QDateEdit *dateEdit;
QSpacerItem *spacerItem;
QHBoxLayout *hboxLayout2;
QSpacerItem *spacerItem1;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *OriginTimeDialog)
{
if (OriginTimeDialog->objectName().isEmpty())
OriginTimeDialog->setObjectName(QString::fromUtf8("OriginTimeDialog"));
OriginTimeDialog->resize(229, 209);
vboxLayout = new QVBoxLayout(OriginTimeDialog);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
groupBox = new QGroupBox(OriginTimeDialog);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
hboxLayout = new QHBoxLayout(groupBox);
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
vboxLayout1 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout1->setContentsMargins(0, 0, 0, 0);
#endif
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
label = new QLabel(groupBox);
label->setObjectName(QString::fromUtf8("label"));
QFont font;
font.setFamily(QString::fromUtf8("Verdana"));
font.setPointSize(12);
font.setBold(false);
font.setItalic(false);
font.setUnderline(false);
font.setWeight(50);
font.setStrikeOut(false);
label->setFont(font);
label->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
vboxLayout1->addWidget(label);
label_2 = new QLabel(groupBox);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setFont(font);
label_2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
vboxLayout1->addWidget(label_2);
hboxLayout->addLayout(vboxLayout1);
vboxLayout2 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout2->setSpacing(6);
#endif
vboxLayout2->setContentsMargins(0, 0, 0, 0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
labelLatitude = new QLabel(groupBox);
labelLatitude->setObjectName(QString::fromUtf8("labelLatitude"));
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(labelLatitude->sizePolicy().hasHeightForWidth());
labelLatitude->setSizePolicy(sizePolicy);
QFont font1;
font1.setFamily(QString::fromUtf8("Verdana"));
font1.setPointSize(12);
font1.setBold(true);
font1.setItalic(false);
font1.setUnderline(false);
font1.setWeight(75);
font1.setStrikeOut(false);
labelLatitude->setFont(font1);
vboxLayout2->addWidget(labelLatitude);
labelLongitude = new QLabel(groupBox);
labelLongitude->setObjectName(QString::fromUtf8("labelLongitude"));
sizePolicy.setHeightForWidth(labelLongitude->sizePolicy().hasHeightForWidth());
labelLongitude->setSizePolicy(sizePolicy);
labelLongitude->setFont(font1);
vboxLayout2->addWidget(labelLongitude);
hboxLayout->addLayout(vboxLayout2);
vboxLayout->addWidget(groupBox);
groupBox_2 = new QGroupBox(OriginTimeDialog);
groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
hboxLayout1 = new QHBoxLayout(groupBox_2);
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout1->setContentsMargins(9, 9, 9, 9);
#endif
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
timeEdit = new QTimeEdit(groupBox_2);
timeEdit->setObjectName(QString::fromUtf8("timeEdit"));
hboxLayout1->addWidget(timeEdit);
dateEdit = new QDateEdit(groupBox_2);
dateEdit->setObjectName(QString::fromUtf8("dateEdit"));
dateEdit->setCurrentSection(QDateTimeEdit::DaySection);
hboxLayout1->addWidget(dateEdit);
vboxLayout->addWidget(groupBox_2);
spacerItem = new QSpacerItem(211, 16, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout->addItem(spacerItem);
hboxLayout2 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout2->setSpacing(6);
#endif
hboxLayout2->setContentsMargins(0, 0, 0, 0);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
spacerItem1 = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout2->addItem(spacerItem1);
okButton = new QPushButton(OriginTimeDialog);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout2->addWidget(okButton);
cancelButton = new QPushButton(OriginTimeDialog);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout2->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout2);
retranslateUi(OriginTimeDialog);
QObject::connect(okButton, SIGNAL(clicked()), OriginTimeDialog, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), OriginTimeDialog, SLOT(reject()));
QMetaObject::connectSlotsByName(OriginTimeDialog);
} // setupUi
void retranslateUi(QDialog *OriginTimeDialog)
{
OriginTimeDialog->setWindowTitle(QCoreApplication::translate("OriginTimeDialog", "OriginTime", nullptr));
groupBox->setTitle(QCoreApplication::translate("OriginTimeDialog", "Location", nullptr));
label->setText(QCoreApplication::translate("OriginTimeDialog", "Latitude:", nullptr));
label_2->setText(QCoreApplication::translate("OriginTimeDialog", "Longitude:", nullptr));
labelLatitude->setText(QCoreApplication::translate("OriginTimeDialog", "--.- \302\260", nullptr));
labelLongitude->setText(QCoreApplication::translate("OriginTimeDialog", "--.- \302\260", nullptr));
groupBox_2->setTitle(QCoreApplication::translate("OriginTimeDialog", "Time", nullptr));
timeEdit->setDisplayFormat(QCoreApplication::translate("OriginTimeDialog", "hh:mm:ss", nullptr));
dateEdit->setDisplayFormat(QCoreApplication::translate("OriginTimeDialog", "dd-MM-yyyy", nullptr));
okButton->setText(QCoreApplication::translate("OriginTimeDialog", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("OriginTimeDialog", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class OriginTimeDialog: public Ui_OriginTimeDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_ORIGINTIME_H

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,160 @@
/********************************************************************************
** Form generated from reading UI file 'renamephases.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_RENAMEPHASES_H
#define UI_RENAMEPHASES_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QListWidget>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_RenamePhases
{
public:
QVBoxLayout *vboxLayout;
QHBoxLayout *hboxLayout;
QVBoxLayout *vboxLayout1;
QLabel *label;
QListWidget *listSourcePhases;
QLabel *label_3;
QVBoxLayout *vboxLayout2;
QLabel *label_2;
QListWidget *listTargetPhase;
QHBoxLayout *hboxLayout1;
QSpacerItem *spacerItem;
QPushButton *okButton;
QPushButton *cancelButton;
void setupUi(QDialog *RenamePhases)
{
if (RenamePhases->objectName().isEmpty())
RenamePhases->setObjectName(QString::fromUtf8("RenamePhases"));
RenamePhases->resize(378, 213);
vboxLayout = new QVBoxLayout(RenamePhases);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
hboxLayout->setContentsMargins(0, 0, 0, 0);
#endif
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
vboxLayout1 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout1->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout1->setContentsMargins(0, 0, 0, 0);
#endif
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
label = new QLabel(RenamePhases);
label->setObjectName(QString::fromUtf8("label"));
vboxLayout1->addWidget(label);
listSourcePhases = new QListWidget(RenamePhases);
listSourcePhases->setObjectName(QString::fromUtf8("listSourcePhases"));
listSourcePhases->setSelectionMode(QAbstractItemView::ExtendedSelection);
vboxLayout1->addWidget(listSourcePhases);
hboxLayout->addLayout(vboxLayout1);
label_3 = new QLabel(RenamePhases);
label_3->setObjectName(QString::fromUtf8("label_3"));
hboxLayout->addWidget(label_3);
vboxLayout2 = new QVBoxLayout();
#ifndef Q_OS_MAC
vboxLayout2->setSpacing(6);
#endif
vboxLayout2->setContentsMargins(0, 0, 0, 0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
label_2 = new QLabel(RenamePhases);
label_2->setObjectName(QString::fromUtf8("label_2"));
vboxLayout2->addWidget(label_2);
listTargetPhase = new QListWidget(RenamePhases);
listTargetPhase->setObjectName(QString::fromUtf8("listTargetPhase"));
vboxLayout2->addWidget(listTargetPhase);
hboxLayout->addLayout(vboxLayout2);
vboxLayout->addLayout(hboxLayout);
hboxLayout1 = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout1->setSpacing(6);
#endif
hboxLayout1->setContentsMargins(0, 0, 0, 0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
spacerItem = new QSpacerItem(131, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem);
okButton = new QPushButton(RenamePhases);
okButton->setObjectName(QString::fromUtf8("okButton"));
hboxLayout1->addWidget(okButton);
cancelButton = new QPushButton(RenamePhases);
cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
hboxLayout1->addWidget(cancelButton);
vboxLayout->addLayout(hboxLayout1);
retranslateUi(RenamePhases);
QObject::connect(okButton, SIGNAL(clicked()), RenamePhases, SLOT(accept()));
QObject::connect(cancelButton, SIGNAL(clicked()), RenamePhases, SLOT(reject()));
QMetaObject::connectSlotsByName(RenamePhases);
} // setupUi
void retranslateUi(QDialog *RenamePhases)
{
RenamePhases->setWindowTitle(QCoreApplication::translate("RenamePhases", "Rename phases", nullptr));
label->setText(QCoreApplication::translate("RenamePhases", "Source:", nullptr));
label_3->setText(QCoreApplication::translate("RenamePhases", ">", nullptr));
label_2->setText(QCoreApplication::translate("RenamePhases", "Target:", nullptr));
okButton->setText(QCoreApplication::translate("RenamePhases", "OK", nullptr));
cancelButton->setText(QCoreApplication::translate("RenamePhases", "Cancel", nullptr));
} // retranslateUi
};
namespace Ui {
class RenamePhases: public Ui_RenamePhases {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_RENAMEPHASES_H

View File

@ -0,0 +1,107 @@
/********************************************************************************
** Form generated from reading UI file 'selectstation.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_SELECTSTATION_H
#define UI_SELECTSTATION_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTableView>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_SelectStation
{
public:
QVBoxLayout *vboxLayout;
QLabel *stationListLabel;
QLineEdit *stationLineEdit;
QTableView *table;
QHBoxLayout *hboxLayout;
QSpacerItem *spacerItem;
QPushButton *btnAdd;
void setupUi(QDialog *SelectStation)
{
if (SelectStation->objectName().isEmpty())
SelectStation->setObjectName(QString::fromUtf8("SelectStation"));
SelectStation->resize(400, 400);
vboxLayout = new QVBoxLayout(SelectStation);
#ifndef Q_OS_MAC
vboxLayout->setSpacing(6);
#endif
#ifndef Q_OS_MAC
vboxLayout->setContentsMargins(9, 9, 9, 9);
#endif
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
stationListLabel = new QLabel(SelectStation);
stationListLabel->setObjectName(QString::fromUtf8("stationListLabel"));
vboxLayout->addWidget(stationListLabel);
stationLineEdit = new QLineEdit(SelectStation);
stationLineEdit->setObjectName(QString::fromUtf8("stationLineEdit"));
vboxLayout->addWidget(stationLineEdit);
table = new QTableView(SelectStation);
table->setObjectName(QString::fromUtf8("table"));
table->setAlternatingRowColors(true);
table->setSelectionBehavior(QAbstractItemView::SelectRows);
vboxLayout->addWidget(table);
hboxLayout = new QHBoxLayout();
#ifndef Q_OS_MAC
hboxLayout->setSpacing(6);
#endif
hboxLayout->setContentsMargins(0, 0, 0, 0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
btnAdd = new QPushButton(SelectStation);
btnAdd->setObjectName(QString::fromUtf8("btnAdd"));
hboxLayout->addWidget(btnAdd);
vboxLayout->addLayout(hboxLayout);
retranslateUi(SelectStation);
QObject::connect(btnAdd, SIGNAL(clicked()), SelectStation, SLOT(accept()));
QMetaObject::connectSlotsByName(SelectStation);
} // setupUi
void retranslateUi(QDialog *SelectStation)
{
SelectStation->setWindowTitle(QCoreApplication::translate("SelectStation", "Add station(s)", nullptr));
stationListLabel->setText(QCoreApplication::translate("SelectStation", "Station List:", nullptr));
btnAdd->setText(QCoreApplication::translate("SelectStation", "Add", nullptr));
} // retranslateUi
};
namespace Ui {
class SelectStation: public Ui_SelectStation {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_SELECTSTATION_H

View File

@ -0,0 +1,63 @@
/***************************************************************************
* Copyright (C) gempa GmbH *
* All rights reserved. *
* Contact: gempa GmbH (seiscomp-dev@gempa.de) *
* *
* GNU Affero General Public License Usage *
* This file may be used under the terms of the GNU Affero *
* Public License version 3.0 as published by the Free Software Foundation *
* and appearing in the file LICENSE included in the packaging of this *
* file. Please review the following information to ensure the GNU Affero *
* Public License version 3.0 requirements will be met: *
* https://www.gnu.org/licenses/agpl-3.0.html. *
* *
* Other Usage *
* Alternatively, this file may be used in accordance with the terms and *
* conditions contained in a signed written agreement between you and *
* gempa GmbH. *
***************************************************************************/
#ifndef SEISCOMP_GUI_DATAMODEL_UTIL_H
#define SEISCOMP_GUI_DATAMODEL_UTIL_H
#include <seiscomp/gui/qt.h>
#ifndef Q_MOC_RUN
#include <seiscomp/datamodel/utils.h>
#endif
#include <seiscomp/gui/core/utils.h>
#include <QCheckBox>
namespace Seiscomp {
namespace Gui {
class CheckBox : public QCheckBox {
Q_OBJECT
public:
explicit CheckBox(QWidget *parent=0)
: QCheckBox(parent) {}
explicit CheckBox(const QString &text, QWidget *parent=0)
: QCheckBox(text, parent) {}
public slots:
void check() {
setChecked(true);
}
void unCheck() {
setChecked(false);
}
};
}
}
#endif