OpenMS  2.8.0
TableView.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2021.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Chris Bielow $
32 // $Authors: Chris Bielow $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 #include <QTableWidget>
38 
40 
41 namespace OpenMS
42 {
46  class TableView :
47  public QTableWidget
48  {
49  Q_OBJECT
50  public:
52  TableView(QWidget* parent = nullptr);
54  ~TableView() override = default;
55 
69  virtual void exportEntries();
70 
72  void appendRow();
73 
74  QTableWidgetItem* setAtBottomRow(const QString& text, size_t column_index, const QColor& background, const QColor& foreground = QColor("SomeInvalidColor"));
75  QTableWidgetItem* setAtBottomRow(const char* text, size_t column_index, const QColor& background, const QColor& foreground = QColor("SomeInvalidColor"));
76  QTableWidgetItem* setAtBottomRow(const int i, size_t column_index, const QColor& background, const QColor& foreground = QColor("SomeInvalidColor"));
77  QTableWidgetItem* setAtBottomRow(const double d, size_t column_index, const QColor& background, const QColor& foreground = QColor("SomeInvalidColor"));
79  QTableWidgetItem* setAtBottomRow(const bool selected, size_t column_index, const QColor& background, const QColor& foreground = QColor("SomeInvalidColor"));
81  QTableWidgetItem* setAtBottomRow(QTableWidgetItem* item, size_t column_index, const QColor& background, const QColor& foreground);
82 
86  static void updateCheckBoxItem(QTableWidgetItem* item);
87 
89  void setHeaders(const QStringList& headers);
90 
93  void hideColumns(const QStringList& header_names);
94 
105  QStringList getHeaderNames(const WidgetHeader which, bool use_export_name = false);
106 
119  void setHeaderExportName(const int header_column, const QString& export_name);
120 
133  QString getHeaderExportName(const int header_column);
134 
137  QString getHeaderName(const int header_column);
138 
140  void setMandatoryExportColumns(QStringList& cols);
141  signals:
143  void resized();
144 
145  protected:
147  void resizeEvent(QResizeEvent* event) override;
148 
151  protected slots:
153  void headerContextMenu_(const QPoint&);
154  };
155 }
A better QTable for TOPPView, which supports exporting to TSV and conveniently adding data to cells a...
Definition: TableView.h:48
void setMandatoryExportColumns(QStringList &cols)
Set the mandatory export columns cols which get exported even if the user decided to hide them.
virtual void exportEntries()
Export table entries as currently shown in the table in TSV format (only for visible data)
QStringList getHeaderNames(const WidgetHeader which, bool use_export_name=false)
Obtain header names, either from all, or only the visible columns.
QTableWidgetItem * setAtBottomRow(const int i, size_t column_index, const QColor &background, const QColor &foreground=QColor("SomeInvalidColor"))
void setHeaders(const QStringList &headers)
sets the visible headers (and the number of columns)
void resized()
emitted when the widget is resized
~TableView() override=default
Destructor.
void setHeaderExportName(const int header_column, const QString &export_name)
Set the export-name of a column, which will be returned in getHeaderNames() when use_export_name it t...
static void updateCheckBoxItem(QTableWidgetItem *item)
QTableWidgetItem * setAtBottomRow(const double d, size_t column_index, const QColor &background, const QColor &foreground=QColor("SomeInvalidColor"))
void appendRow()
adds a new row to the bottom
void headerContextMenu_(const QPoint &)
Display header context menu; allows to show/hide columns.
void resizeEvent(QResizeEvent *event) override
emits the resized signal
QTableWidgetItem * setAtBottomRow(const char *text, size_t column_index, const QColor &background, const QColor &foreground=QColor("SomeInvalidColor"))
QTableWidgetItem * setAtBottomRow(const QString &text, size_t column_index, const QColor &background, const QColor &foreground=QColor("SomeInvalidColor"))
QStringList mandatory_export_columns_
columns that are exported to tsv files even if they are hidden in the GUI
Definition: TableView.h:150
void hideColumns(const QStringList &header_names)
QTableWidgetItem * setAtBottomRow(QTableWidgetItem *item, size_t column_index, const QColor &background, const QColor &foreground)
create a custom item (if above methods are not sufficient)
TableView(QWidget *parent=nullptr)
Constructor.
QString getHeaderExportName(const int header_column)
Gets the export-name of a column.
QTableWidgetItem * setAtBottomRow(const bool selected, size_t column_index, const QColor &background, const QColor &foreground=QColor("SomeInvalidColor"))
create a checkbox item (with no text)
QString getHeaderName(const int header_column)
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
WidgetHeader
Enum to decide which headers(=column) names should be get/set in a table/tree widget.
Definition: CommonDefs.h:51