File indexing completed on 2024-04-21 03:41:42

0001 /*
0002     SPDX-FileCopyrightText: 2007 Johannes Simon <johannes.simon@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef EXPORTDIALOG_H
0007 #define EXPORTDIALOG_H
0008 
0009 #include <QDialog>
0010 #include <QListWidget>
0011 
0012 #include "kalziumdataobject.h"
0013 #include "ui_exportdialog.h"
0014 #include <element.h>
0015 
0016 class ElementListEntry : public QListWidgetItem
0017 {
0018 public:
0019     explicit ElementListEntry(Element *element);
0020     ~ElementListEntry() override;
0021 
0022     int m_atomicNum;
0023     QString m_name;
0024     Element *m_element = nullptr;
0025 };
0026 
0027 class PropertyListEntry : public QListWidgetItem
0028 {
0029 public:
0030     PropertyListEntry(const QString &name, ChemicalDataObject::BlueObelisk type);
0031     ~PropertyListEntry() override;
0032 
0033     ChemicalDataObject::BlueObelisk m_type;
0034 };
0035 
0036 /**
0037  * @author: Johannes Simon
0038  */
0039 class ExportDialog : public QDialog
0040 {
0041     Q_OBJECT
0042 
0043 public:
0044     explicit ExportDialog(QWidget *parent);
0045     ~ExportDialog() override;
0046 
0047     void populateElementList();
0048     void exportToHtml();
0049     void exportToXml();
0050     void exportToCsv();
0051 
0052 private:
0053     Ui::exportDialogForm ui;
0054     QTextStream *m_outputStream = nullptr;
0055 
0056 public Q_SLOTS:
0057     void slotOkClicked();
0058     /**
0059      * Open help page
0060      */
0061     void slotHelpRequested();
0062 };
0063 
0064 #endif // EXPORTDIALOG_H