File indexing completed on 2024-05-05 05:45:46
0001 /* 0002 SPDX-FileCopyrightText: 2001-2003 John Firebaugh <jfirebaugh@kde.org> 0003 SPDX-FileCopyrightText: 2001-2004 Otto Bruggeman <otto.bruggeman@home.nl> 0004 SPDX-FileCopyrightText: 2004 Jeff Snyder <jeff@caffeinated.me.uk> 0005 SPDX-FileCopyrightText: 2007 Kevin Kofler <kevin.kofler@chello.at> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef KOMPARECONNECTWIDGET_H 0011 #define KOMPARECONNECTWIDGET_H 0012 0013 #include <QWidget> 0014 #include <QSplitter> 0015 #include <QPaintEvent> 0016 #include <QMouseEvent> 0017 #include <QVBoxLayout> 0018 #include <QLabel> 0019 0020 #include <KompareDiff2/ModelList> 0021 0022 namespace KompareDiff2 { 0023 class DiffModel; 0024 } 0025 class ViewSettings; 0026 class KompareSplitter; 0027 0028 class KompareConnectWidget : public QWidget 0029 { 0030 Q_OBJECT 0031 0032 public: 0033 KompareConnectWidget(ViewSettings* settings, QWidget* parent, const char* name = nullptr); 0034 ~KompareConnectWidget() override; 0035 0036 public Q_SLOTS: 0037 void slotSetSelection(const KompareDiff2::DiffModel* model, const KompareDiff2::Difference* diff); 0038 void slotSetSelection(const KompareDiff2::Difference* diff); 0039 0040 void slotDelayedRepaint(); 0041 0042 Q_SIGNALS: 0043 void selectionChanged(const KompareDiff2::Difference* diff); 0044 0045 protected: 0046 void paintEvent(QPaintEvent* e) override; 0047 QPainterPath makeBezier(int l, int r) const; 0048 0049 private: 0050 ViewSettings* m_settings; 0051 0052 const KompareDiff2::DiffModel* m_selectedModel; 0053 const KompareDiff2::Difference* m_selectedDifference; 0054 }; 0055 0056 class KompareConnectWidgetFrame : public QSplitterHandle 0057 { 0058 Q_OBJECT 0059 public: 0060 KompareConnectWidgetFrame(ViewSettings* settings, KompareSplitter* parent, const char* name = nullptr); 0061 ~KompareConnectWidgetFrame() override; 0062 0063 QSize sizeHint() const override; 0064 0065 KompareConnectWidget* wid() { return &m_wid; } 0066 0067 protected: 0068 // stop the parent QSplitterHandle painting 0069 void paintEvent(QPaintEvent* /* e */) override { } 0070 0071 #if 0 0072 void mouseMoveEvent(QMouseEvent*); 0073 void mousePressEvent(QMouseEvent*); 0074 void mouseReleaseEvent(QMouseEvent*); 0075 #endif 0076 0077 private: 0078 KompareConnectWidget m_wid; 0079 QLabel m_label; 0080 QVBoxLayout m_layout; 0081 }; 0082 0083 #endif