Code cleanup and reformat
[blogilo:blogilo.git] / src / composer / bilboeditor.h
1 /*
2     This file is part of Blogilo, A KDE Blogging Client
3
4     Copyright (C) 2008-2010 Mehrdad Momeny <mehrdad.momeny@gmail.com>
5     Copyright (C) 2008-2010 Golnaz Nilieh <g382nilieh@gmail.com>
6
7     This program is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License as
9     published by the Free Software Foundation; either version 2 of
10     the License or (at your option) version 3 or any later version
11     accepted by the membership of KDE e.V. (or its successor approved
12     by the membership of KDE e.V.), which shall act as a proxy
13     defined in Section 14 of version 3 of the license.
14
15
16     This program is distributed in the hope that it will be useful,
17     but WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19     GNU General Public License for more details.
20
21     You should have received a copy of the GNU General Public License
22     along with this program; if not, see http://www.gnu.org/licenses/
23 */
24
25 #ifndef BILBOEDITOR_H
26 #define BILBOEDITOR_H
27
28 #include <ktabwidget.h>
29 #include <KUrl>
30
31 class BilboMedia;
32
33 /**
34 * Class BilboEditor represents the editor part of BilboBlogger
35 * @author Mehrdad Momeny <mehrdad.momeny@gmail.com>
36 * @author Golnaz Nilieh <g382nilieh@gmail.com>
37 */
38 class BilboEditor : public KTabWidget
39 {
40     Q_OBJECT
41 public:
42
43     /**
44      * @brief BilboEditor constructor.
45      * Creates a new instance of BilboEditor, and calls createUi() function to 
46      * initialize its widgets.
47      */
48     BilboEditor( QWidget *parent = 0 );
49
50     /**
51      * @brief BilboEditor destructor.
52      */
53     ~BilboEditor();
54
55     /**
56      * @brief Returns the editor current text in html format
57      * Synchronizes HtmlEditor and editor tabs, by sending content of the current one to another.
58      * then copies the content of HtmlEditor into the variable mHtmlContent, and returns it.
59      * @return an String which contains html text
60      */
61     QString htmlContent();
62
63     QString plainTextContent();
64
65     /**
66      * Sets the given string as the HtmlEditor and VisualEditor content.
67      * @param content
68      */
69     void setHtmlContent( const QString &content );
70
71     QList <BilboMedia*> localImages();
72
73     /**
74      * Stores the given title, to be shown as the post title in preview tab.
75      * @param title is the post title.
76      */
77     void setCurrentTitle( const QString& title );
78
79     void replaceImageSrc(const QString& src, const QString& dest);
80
81 Q_SIGNALS:
82     /**
83      * This signal is emitted when the content of VisualEditor or HtmlEditor changes.
84      */
85     void textChanged();
86
87     /**
88      * To show a message on statusBar
89      * @param message Message to be shown
90      * @param isPermanent If it's true the message will not have a timeout!
91      *  so it will be shown until next message arrived
92      */
93     void sigShowStatusMessage( const QString& message, bool isPermanent );
94
95     /**
96      * This signal is emitted for operations in background, like request of some
97      * data from the web.
98      * @param isBusy if it's true, the operation is in progress. otherwise, it
99      * is finished.
100      */
101     void sigBusy( bool isBusy );
102
103 protected Q_SLOTS:
104     void slotSettingsChanged();
105
106     /*!
107     Sets the content of the current tab  as other tabs' contents, to apply recent
108      * changes. this function executes each time the user switches between tabs.
109      */
110     void slotSyncEditors( int index );
111
112     void slotSetPostPreview();
113
114 private:
115
116     /*!
117     Creates Widget of BilboEditor.
118     then assigns default charachter format of the editor tab to defaultCharFormat
119      * variable, to be used in remove formatting operation. then calls createActions
120      * function.
121     \sa slotRemoveFormatting(), createActions()
122      */
123     void createUi();
124
125     class Private;
126     Private * const d;
127 };
128
129 #endif