1 /*
2     SPDX-License-Identifier: GPL-2.0-or-later
3     SPDX-FileCopyrightText: 2012 Martin Kuettler <martin.kuettler@gmail.com>
4 */
5 
6 #ifndef TEXTRESULTITEM_H
7 #define TEXTRESULTITEM_H
8 
9 #include "resultitem.h"
10 #include "worksheettextitem.h"
11 
12 namespace Cantor {
13     class LatexResult;
14 }
15 
16 class TextResultItem : public WorksheetTextItem, public ResultItem
17 {
18   Q_OBJECT
19   public:
20     explicit TextResultItem(WorksheetEntry*, Cantor::Result*);
21     ~TextResultItem() override = default;
22 
23     using WorksheetTextItem::setGeometry;
24     double setGeometry(double x, double y, double w) override;
25     void populateMenu(QMenu*, QPointF) override;
26 
27     void update() override;
28 
29     void setLatex(Cantor::LatexResult*);
30     QTextImageFormat toFormat(const QImage&, const QString& latex);
31 
32     double width() const override;
33     double height() const override;
34 
35     void deleteLater() override;
36 
37   Q_SIGNALS:
38     void collapseActionSizeChanged();
39 
40   protected Q_SLOTS:
41     void toggleLatexCode();
42     void showHtml();
43     void showHtmlSource();
44     void showPlain();
45     void saveResult();
46 
47   protected:
48     void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) override;
49     int visibleLineCount();
50     void collapseExtraLines();
51 
52   protected:
53     bool m_isCollapsed{false};
54     bool m_userCollapseOverride{false};
55     int m_widthWhenCollapsed{0};
56 };
57 
58 #endif //TEXTRESULTITEM_H
59