• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
kncomposer.h
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2006 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #ifndef KNCOMPOSER_H
16 #define KNCOMPOSER_H
17 
18 #include "knarticle.h"
19 
20 #include <kxmlguiwindow.h>
21 #include <kdialog.h>
22 #include <QList>
23 #include <kprocess.h>
24 #include <kabc/addresslineedit.h>
25 
26 
27 class KSelectAction;
28 class KTemporaryFile;
29 class KToggleAction;
30 class QComboBox;
31 class QFile;
32 namespace KNode {
33  namespace Composer {
34  class View;
35  }
36 }
37 using KNode::Composer::View;
38 
39 
41 class KNComposer : public KXmlGuiWindow {
42 
43  Q_OBJECT
44  Q_CLASSINFO( "D-Bus Interface", "org.kde.knode.composer")
45 
46  public:
47  enum composerResult { CRsendNow, CRsendLater, CRdelAsk,
48  CRdel, CRsave, CRcancel };
49 
50  enum MessageMode {
51  news = 0,
52  mail = 1,
53  news_mail = 2
54  };
55 
67  explicit KNComposer( KNLocalArticle::Ptr a, const QString &text = QString(),
68  const QString &unwraped = QString(), bool firstEdit = false,
69  bool dislikesCopies = false, bool createCopy = false, bool allowMail = true);
70  ~KNComposer();
71  void setConfig(bool onlyFonts);
72  void setMessageMode(MessageMode mode);
73 
74  //get result
75  bool hasValidData();
76  composerResult result() const { return r_esult; }
77  KNLocalArticle::Ptr article() const { return a_rticle; }
78 
83  bool applyChanges();
84 
85  void closeEvent(QCloseEvent *e);
86 
87  public slots:
88  //set data from the given article
89  Q_SCRIPTABLE void initData(const QString &text);
90 
91  public:
92 
97  void insertFile( QFile *file, bool clear = false, bool box = false, const QString &boxTitle = QString() );
98 
100  void insertFile(bool clear=false, bool box=false);
101 
102 //internal classes
103  class Editor;
104  class AttachmentPropertiesDlg;
105 
106  //GUI
107  View *v_iew;
108 
109  //Data
110  composerResult r_esult;
111  KNLocalArticle::Ptr a_rticle;
112  QString u_nwraped;
113  MessageMode m_ode;
114  bool n_eeds8Bit, // false: fall back to us-ascii
115  v_alidated, // hasValidData was run and found no problems, n_eeds8Bit is valid
116  a_uthorDislikesMailCopies;
117 
122  void setCharset( const QString &charset );
123 
124  //edit
125  bool e_xternalEdited;
126  KProcess *e_xternalEditor;
127  KTemporaryFile *e_ditorTempfile;
128 
129  //Attachments
130  QList<KNAttachment::Ptr> mDeletedAttachments;
131  bool a_ttChanged;
132 
133  //------------------------------ <Actions> -----------------------------
134 
135  QAction *a_ctExternalEditor,
136  *a_ctSpellCheck,
137  *a_ctRemoveAttachment,
138  *a_ctAttachmentProperties,
139  *a_ctSetCharsetKeyb;
140  KToggleAction *a_ctPGPsign,
141  *a_ctDoPost, *a_ctDoMail, *a_ctWordWrap, *a_ctAutoSpellChecking;
142  KSelectAction *a_ctSetCharset;
143  protected slots:
144  void slotSendNow();
145  void slotSendLater();
146  void slotSaveAsDraft();
147  void slotArtDelete();
148  void slotInsertFile();
149  void slotInsertFileBoxed();
150  void slotAttachFile();
151  void slotToggleDoPost();
152  void slotToggleDoMail();
153  void slotSetCharset(const QString &s);
154  void slotSetCharsetKeyboard();
155  void slotToggleWordWrap();
156  void slotAutoSpellCheckingToggled();
157  void slotUndoRewrap();
158  void slotExternalEditor();
159 
160  void slotUpdateStatusBar();
161  void slotUpdateCursorPos();
162  void slotConfKeys();
163  void slotConfToolbar();
164  void slotNewToolbarConfig();
165  void slotUpdateCheckSpellChecking(bool _b);
166 
167  //------------------------------ </Actions> ----------------------------
168 
169  // GUI
170  void slotSubjectChanged(const QString &t);
171  void slotToBtnClicked();
172  void slotGroupsBtnClicked();
173 
174  // external editor
175  void slotEditorFinished(int, QProcess::ExitStatus);
176  void slotCancelEditor();
177 
178  // attachment list
183  void slotAttachmentPopup( const QPoint &point );
187  void slotAttachmentRemoved( KNAttachment::Ptr attachment, bool last );
191  void slotAttachmentChanged();
192 
193 
194  void slotUndo();
195  void slotRedo();
196  void slotCut();
197  void slotCopy();
198  void slotPaste();
199  void slotSelectAll();
200  void addRecentAddress();
201 
202  protected:
203 
204  // DND handling
208  virtual void dragEnterEvent( QDragEnterEvent *event );
212  virtual void dropEvent( QDropEvent *event );
213 
214  signals:
215  void composerDone(KNComposer*);
216 
217  private:
218  bool mFirstEdit;
229  QString mCharset;
230 };
231 
232 
234 class KNComposer::AttachmentPropertiesDlg : public KDialog {
235 
236  Q_OBJECT
237 
238  public:
246  AttachmentPropertiesDlg( KNAttachment::Ptr a, QWidget *parent = 0 );
250  ~AttachmentPropertiesDlg();
251 
252  protected:
256  void apply();
257 
258  KLineEdit *m_imeType,
259  *d_escription;
260  QComboBox *e_ncoding;
261 
262  KNAttachment::Ptr a_ttachment;
263  bool n_onTextAsText;
264 
265  protected slots:
266  void accept();
267  void slotMimeTypeTextChanged(const QString &text);
268 };
269 
270 //-----------------------------------------------------------------------------
272 class KNLineEdit : public KABC::AddressLineEdit
273 {
274  Q_OBJECT
275 
276 public:
280  explicit KNLineEdit( View *parent, bool useCompletion = true );
285  explicit KNLineEdit( QWidget *parent, bool useCompletion = true );
286 
290  void setView( View *view )
291  { composerView = view; }
292 
293 protected:
294  // Inherited. Always called by the parent when this widget is created.
295  virtual void loadAddresses();
296  void keyPressEvent(QKeyEvent *e);
297  virtual void contextMenuEvent( QContextMenuEvent*e );
298 private slots:
299  void editRecentAddresses();
300 private:
301  View *composerView;
302 };
303 
305 class KNLineEditSpell : public KNLineEdit
306 {
307  Q_OBJECT
308 public:
312  explicit KNLineEditSpell( View *parent, bool useCompletion = true );
317  explicit KNLineEditSpell( QWidget *parent, bool useCompletion = true );
318 
319  void highLightWord( unsigned int length, unsigned int pos );
320  void spellCheckDone( const QString &s );
321  void spellCheckerMisspelling( const QString &text, const QStringList &, unsigned int pos);
322  void spellCheckerCorrected( const QString &old, const QString &corr, unsigned int pos);
323 };
324 
325 #endif
KNComposer::result
composerResult result() const
Definition: kncomposer.h:76
KNComposer::a_ctExternalEditor
QAction * a_ctExternalEditor
Definition: kncomposer.h:135
KNLineEditSpell::spellCheckerCorrected
void spellCheckerCorrected(const QString &old, const QString &corr, unsigned int pos)
Definition: kncomposer.cpp:155
KNLineEdit::contextMenuEvent
virtual void contextMenuEvent(QContextMenuEvent *e)
Definition: kncomposer.cpp:70
KNComposer::setConfig
void setConfig(bool onlyFonts)
Definition: kncomposer.cpp:488
KNLocalArticle::Ptr
boost::shared_ptr< KNLocalArticle > Ptr
Shared pointer to a KNLocalArticle. To be used instead of raw KNLocalArticle*.
Definition: knarticle.h:214
KNComposer::slotConfToolbar
void slotConfToolbar()
Definition: kncomposer.cpp:1382
KNComposer::AttachmentPropertiesDlg::~AttachmentPropertiesDlg
~AttachmentPropertiesDlg()
Destructor.
Definition: kncomposer.cpp:1615
KNode::Composer::View
Message composer view.
Definition: kncomposerview.h:33
KNComposer::initData
Q_SCRIPTABLE void initData(const QString &text)
Definition: kncomposer.cpp:926
KNComposer::a_ctSetCharset
KSelectAction * a_ctSetCharset
Definition: kncomposer.h:142
KNComposer::AttachmentPropertiesDlg::apply
void apply()
Apply the change to the attachment passed to the constructor.
Definition: kncomposer.cpp:1621
text
virtual QByteArray text(quint32 serialNumber) const =0
KNComposer::a_ctPGPsign
KToggleAction * a_ctPGPsign
Definition: kncomposer.h:140
KNComposer::CRsave
Definition: kncomposer.h:48
QWidget
KNLineEditSpell
Line edit with on-the-fly spell checking.
Definition: kncomposer.h:305
KNComposer::a_ctAutoSpellChecking
KToggleAction * a_ctAutoSpellChecking
Definition: kncomposer.h:140
KNComposer::slotEditorFinished
void slotEditorFinished(int, QProcess::ExitStatus)
Definition: kncomposer.cpp:1470
KNComposer::slotToggleDoMail
void slotToggleDoMail()
Definition: kncomposer.cpp:1189
KNComposer::CRdelAsk
Definition: kncomposer.h:47
KNComposer::slotAttachmentRemoved
void slotAttachmentRemoved(KNAttachment::Ptr attachment, bool last)
Called by the View when an attachment was removed.
Definition: kncomposer.cpp:1145
KNComposer::a_ctWordWrap
KToggleAction * a_ctWordWrap
Definition: kncomposer.h:140
KNComposer::slotSaveAsDraft
void slotSaveAsDraft()
Definition: kncomposer.cpp:1102
KNComposer::slotToggleWordWrap
void slotToggleWordWrap()
Definition: kncomposer.cpp:1256
KDialog
KNComposer::slotGroupsBtnClicked
void slotGroupsBtnClicked()
Definition: kncomposer.cpp:1437
KNComposer::slotUndoRewrap
void slotUndoRewrap()
Definition: kncomposer.cpp:1270
KNComposer::slotAttachFile
void slotAttachFile()
Definition: kncomposer.cpp:1128
KNComposer::v_iew
View * v_iew
Definition: kncomposer.h:104
KNLineEdit::setView
void setView(View *view)
Sets the View that this line edit belongs to.
Definition: kncomposer.h:290
KNComposer::r_esult
composerResult r_esult
Definition: kncomposer.h:110
KNComposer::e_xternalEditor
KProcess * e_xternalEditor
Definition: kncomposer.h:126
KNLineEdit
Line edit for addresses used in the composer.
Definition: kncomposer.h:272
KNComposer::slotSetCharset
void slotSetCharset(const QString &s)
Definition: kncomposer.cpp:1235
KNComposer::setCharset
void setCharset(const QString &charset)
Sets the character set to used to encode this message.
Definition: kncomposer.cpp:889
KNComposer::hasValidData
bool hasValidData()
Definition: kncomposer.cpp:533
KNLineEdit::keyPressEvent
void keyPressEvent(QKeyEvent *e)
Definition: kncomposer.cpp:105
KNComposer::AttachmentPropertiesDlg::slotMimeTypeTextChanged
void slotMimeTypeTextChanged(const QString &text)
Definition: kncomposer.cpp:1647
KNComposer
Message composer window.
Definition: kncomposer.h:41
KNComposer::AttachmentPropertiesDlg::accept
void accept()
Definition: kncomposer.cpp:1629
KXmlGuiWindow
KNComposer::AttachmentPropertiesDlg::d_escription
KLineEdit * d_escription
Definition: kncomposer.h:258
KNComposer::AttachmentPropertiesDlg::n_onTextAsText
bool n_onTextAsText
Definition: kncomposer.h:263
KNComposer::MessageMode
MessageMode
Definition: kncomposer.h:50
KNLineEditSpell::KNLineEditSpell
KNLineEditSpell(View *parent, bool useCompletion=true)
Constructor.
Definition: kncomposer.cpp:129
KNComposer::slotNewToolbarConfig
void slotNewToolbarConfig()
Definition: kncomposer.cpp:1390
QComboBox
KNLineEdit::loadAddresses
virtual void loadAddresses()
Definition: kncomposer.cpp:95
KNComposer::AttachmentPropertiesDlg::AttachmentPropertiesDlg
AttachmentPropertiesDlg(KNAttachment::Ptr a, QWidget *parent=0)
Create a dialog to edit attribute of a message attachment.
Definition: kncomposer.cpp:1537
KNComposer::v_alidated
bool v_alidated
Definition: kncomposer.h:114
KNComposer::composerResult
composerResult
Definition: kncomposer.h:47
KNComposer::news_mail
Message is to be sent by e-mail and to a newsgroup.
Definition: kncomposer.h:53
KNComposer::slotExternalEditor
void slotExternalEditor()
Definition: kncomposer.cpp:1278
KNComposer::a_ctAttachmentProperties
QAction * a_ctAttachmentProperties
Definition: kncomposer.h:135
KNLineEditSpell::highLightWord
void highLightWord(unsigned int length, unsigned int pos)
Definition: kncomposer.cpp:139
KNComposer::e_xternalEdited
bool e_xternalEdited
Definition: kncomposer.h:125
KNComposer::slotPaste
void slotPaste()
Definition: kncomposer.cpp:464
KNComposer::CRsendNow
Definition: kncomposer.h:47
KNComposer::AttachmentPropertiesDlg::m_imeType
KLineEdit * m_imeType
Definition: kncomposer.h:258
KNComposer::a_ttChanged
bool a_ttChanged
Definition: kncomposer.h:131
KNComposer::~KNComposer
~KNComposer()
Definition: kncomposer.cpp:395
KNLineEdit::KNLineEdit
KNLineEdit(View *parent, bool useCompletion=true)
Constructor.
Definition: kncomposer.cpp:58
KNComposer::slotCut
void slotCut()
Definition: kncomposer.cpp:438
KNComposer::article
KNLocalArticle::Ptr article() const
Definition: kncomposer.h:77
KNComposer::mail
Message is to be sent by e-mail.
Definition: kncomposer.h:52
KNComposer::setMessageMode
void setMessageMode(MessageMode mode)
Definition: kncomposer.cpp:505
KNComposer::dropEvent
virtual void dropEvent(QDropEvent *event)
Reimplemented to add the dropped files as attachments.
Definition: kncomposer.cpp:1513
KNComposer::a_ctSetCharsetKeyb
QAction * a_ctSetCharsetKeyb
Definition: kncomposer.h:135
KNComposer::slotAttachmentPopup
void slotAttachmentPopup(const QPoint &point)
Open a popup menu to do action on an attachment.
Definition: kncomposer.cpp:1497
KLineEdit
KNComposer::n_eeds8Bit
bool n_eeds8Bit
Definition: kncomposer.h:114
KNComposer::mDeletedAttachments
QList< KNAttachment::Ptr > mDeletedAttachments
Definition: kncomposer.h:130
KNComposer::slotAutoSpellCheckingToggled
void slotAutoSpellCheckingToggled()
Definition: kncomposer.cpp:1264
KNComposer::slotConfKeys
void slotConfKeys()
Definition: kncomposer.cpp:1376
KNComposer::AttachmentPropertiesDlg::a_ttachment
KNAttachment::Ptr a_ttachment
Definition: kncomposer.h:262
KNComposer::addRecentAddress
void addRecentAddress()
Definition: kncomposer.cpp:1079
KNComposer::CRdel
Definition: kncomposer.h:48
KNComposer::slotInsertFile
void slotInsertFile()
Definition: kncomposer.cpp:1117
KNComposer::slotAttachmentChanged
void slotAttachmentChanged()
Called by the View to notify that an attachment was modified.
Definition: kncomposer.cpp:1163
KNComposer::slotSelectAll
void slotSelectAll()
Definition: kncomposer.cpp:476
KNComposer::slotUndo
void slotUndo()
Definition: kncomposer.cpp:416
KNComposer::composerDone
void composerDone(KNComposer *)
KNLineEditSpell::spellCheckerMisspelling
void spellCheckerMisspelling(const QString &text, const QStringList &, unsigned int pos)
Definition: kncomposer.cpp:150
KNComposer::slotUpdateCursorPos
void slotUpdateCursorPos()
Definition: kncomposer.cpp:1369
KNComposer::a_ctSpellCheck
QAction * a_ctSpellCheck
Definition: kncomposer.h:135
KNComposer::slotSendNow
void slotSendNow()
Definition: kncomposer.cpp:1086
KNComposer::applyChanges
bool applyChanges()
Applies changes from the editor into the article being edited.
Definition: kncomposer.cpp:725
KNComposer::closeEvent
void closeEvent(QCloseEvent *e)
Definition: kncomposer.cpp:896
KNComposer::CRsendLater
Definition: kncomposer.h:47
KNComposer::slotRedo
void slotRedo()
Definition: kncomposer.cpp:427
KNComposer::slotSubjectChanged
void slotSubjectChanged(const QString &t)
Definition: kncomposer.cpp:1400
knarticle.h
KNComposer::slotSetCharsetKeyboard
void slotSetCharsetKeyboard()
Definition: kncomposer.cpp:1245
KNComposer::a_ctDoMail
KToggleAction * a_ctDoMail
Definition: kncomposer.h:140
KNComposer::e_ditorTempfile
KTemporaryFile * e_ditorTempfile
Definition: kncomposer.h:127
KNComposer::slotInsertFileBoxed
void slotInsertFileBoxed()
Definition: kncomposer.cpp:1123
KNComposer::slotCancelEditor
void slotCancelEditor()
Definition: kncomposer.cpp:1483
KNComposer::AttachmentPropertiesDlg::e_ncoding
QComboBox * e_ncoding
Definition: kncomposer.h:260
KNComposer::slotUpdateStatusBar
void slotUpdateStatusBar()
Definition: kncomposer.cpp:1345
KNComposer::u_nwraped
QString u_nwraped
Definition: kncomposer.h:112
KNComposer::slotToBtnClicked
void slotToBtnClicked()
Definition: kncomposer.cpp:1416
KNComposer::dragEnterEvent
virtual void dragEnterEvent(QDragEnterEvent *event)
Reimplemented to accept list of URI as drag content.
Definition: kncomposer.cpp:1505
KNComposer::a_uthorDislikesMailCopies
bool a_uthorDislikesMailCopies
Definition: kncomposer.h:114
KNComposer::slotSendLater
void slotSendLater()
Definition: kncomposer.cpp:1094
KNComposer::m_ode
MessageMode m_ode
Definition: kncomposer.h:113
KNComposer::insertFile
void insertFile(QFile *file, bool clear=false, bool box=false, const QString &boxTitle=QString())
Inserts at cursor position if clear is false, replaces content otherwise puts the file content into a...
Definition: kncomposer.cpp:1014
KNComposer::slotCopy
void slotCopy()
Definition: kncomposer.cpp:450
KNAttachment::Ptr
boost::shared_ptr< KNAttachment > Ptr
Shared pointer to a KNAttachment.
Definition: knarticle.h:281
KNComposer::slotToggleDoPost
void slotToggleDoPost()
Definition: kncomposer.cpp:1170
KNComposer::news
Message is to be sent to a newsgroup.
Definition: kncomposer.h:51
KNLineEditSpell::spellCheckDone
void spellCheckDone(const QString &s)
Definition: kncomposer.cpp:144
KNComposer::AttachmentPropertiesDlg
Attachment properties dialog.
Definition: kncomposer.h:234
KNComposer::a_ctRemoveAttachment
QAction * a_ctRemoveAttachment
Definition: kncomposer.h:135
KNComposer::a_ctDoPost
KToggleAction * a_ctDoPost
Definition: kncomposer.h:140
KNComposer::a_rticle
KNLocalArticle::Ptr a_rticle
Definition: kncomposer.h:111
KNComposer::slotArtDelete
void slotArtDelete()
Definition: kncomposer.cpp:1110
QList< KNAttachment::Ptr >
KNComposer::slotUpdateCheckSpellChecking
void slotUpdateCheckSpellChecking(bool _b)
Definition: kncomposer.cpp:410
KNComposer::CRcancel
Definition: kncomposer.h:48
KNComposer::KNComposer
KNComposer(KNLocalArticle::Ptr a, const QString &text=QString(), const QString &unwraped=QString(), bool firstEdit=false, bool dislikesCopies=false, bool createCopy=false, bool allowMail=true)
Create a composer for a message (e-mail or newsgroup post).
Definition: kncomposer.cpp:166
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal