File indexing completed on 2024-05-12 05:14:42

0001 /*
0002  *  editdlg_p.h  -  private classes for editdlg.cpp
0003  *  Program:  kalarm
0004  *  SPDX-FileCopyrightText: 2003-2022 David Jarvie <djarvie@kde.org>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #pragma once
0010 
0011 #include <KTextEdit>
0012 #include <QFrame>
0013 class QDragEnterEvent;
0014 class QShowEvent;
0015 class CheckBox;
0016 class LineEdit;
0017 
0018 
0019 class PageFrame : public QFrame
0020 {
0021     Q_OBJECT
0022 public:
0023     explicit PageFrame(QWidget* parent = nullptr) : QFrame(parent) { }
0024 
0025 protected:
0026     void      showEvent(QShowEvent*) override    { Q_EMIT shown(); }
0027 
0028 Q_SIGNALS:
0029     void      shown();
0030 };
0031 
0032 class TextEdit : public KTextEdit
0033 {
0034     Q_OBJECT
0035 public:
0036     explicit TextEdit(QWidget* parent);
0037     void      enableEmailDrop();
0038     QSize     sizeHint() const override         { return minimumSizeHint(); }
0039     QSize     minimumSizeHint() const override  { return minimumSize(); }
0040 
0041 protected:
0042     void      dragEnterEvent(QDragEnterEvent*) override;
0043     void      dragMoveEvent(QDragMoveEvent*) override;
0044     void      dropEvent(QDropEvent*) override;
0045 
0046 private:
0047     bool      mEmailDrop {false};
0048 };
0049 
0050 class CommandEdit : public QWidget
0051 {
0052     Q_OBJECT
0053 public:
0054     explicit CommandEdit(QWidget* parent);
0055     bool      isScript() const;
0056     void      setScript(bool);
0057     QString   text(EditAlarmDlg*, bool showErrorMessage) const;
0058     void      setText(const AlarmText&);
0059     void      setReadOnly(bool);
0060     QSize     minimumSizeHint() const override;
0061     QSize     sizeHint() const override   { return minimumSizeHint(); }
0062 
0063 Q_SIGNALS:
0064     void      scriptToggled(bool);
0065     void      changed();        // emitted when any changes occur
0066 
0067 private Q_SLOTS:
0068     void      slotCmdScriptToggled(bool);
0069 
0070 private:
0071     CheckBox* mTypeScript;      // entering a script
0072     LineEdit* mCommandEdit;     // command line edit box
0073     TextEdit* mScriptEdit;      // script edit box
0074 };
0075 
0076 // vim: et sw=4: