FriendFeed plugin and 2 cmake modules added
[choqok:choqok-playground.git] / microblogs / friendfeed / ffpostwidget.cpp
1 /*
2     This file is part of Choqok, the KDE micro-blogging client
3
4     Copyright (C) 2010 Mehrdad Momeny <mehrdad.momeny@gmail.com>
5
6     This program is free software; you can redistribute it and/or
7     modify it under the terms of the GNU General Public License as
8     published by the Free Software Foundation; either version 2 of
9     the License or (at your option) version 3 or any later version
10     accepted by the membership of KDE e.V. (or its successor approved
11     by the membership of KDE e.V.), which shall act as a proxy
12     defined in Section 14 of version 3 of the license.
13
14
15     This program is distributed in the hope that it will be useful,
16     but WITHOUT ANY WARRANTY; without even the implied warranty of
17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18     GNU General Public License for more details.
19
20     You should have received a copy of the GNU General Public License
21     along with this program; if not, see http://www.gnu.org/licenses/
22
23 */
24
25 #include "ffpostwidget.h"
26 #include <qtextdocument.h>
27 #include <textbrowser.h>
28 #include <mediamanager.h>
29 #include <klocalizedstring.h>
30 #include <KPushButton>
31 #include <KDebug>
32
33 class FFPostWidget::Private{
34 public:
35     Private(const FriendFeed::Entry& entry)
36     :currentEntry(entry)
37     {}
38     FriendFeed::Entry currentEntry;
39     QString image;
40 };
41
42 FFPostWidget::FFPostWidget(Choqok::Account* account, const FriendFeed::Entry& entry, QWidget* parent)
43     : PostWidget(account, entry.toChoqokPost(), parent), d(new Private(entry))
44 {
45     kDebug();
46 }
47
48 FFPostWidget::~FFPostWidget()
49 {
50     kDebug();
51 }
52
53 void FFPostWidget::initUi()
54 {
55     kDebug();
56     setupUi();
57     _mainWidget->document()->addResource( QTextDocument::ImageResource, QUrl("img://profileImage"),
58                              Choqok::MediaManager::self()->defaultImage() );
59
60     if(currentAccount()->username().compare( d->currentEntry.from.name, Qt::CaseInsensitive ) == 0) {
61         KPushButton *btnRemove = addButton("btnRemove", i18nc( "@info:tooltip", "Remove" ), "edit-delete" );
62         connect(btnRemove, SIGNAL(clicked(bool)), SLOT(removeCurrentPost()));
63         baseText = &ownText;
64     } else {
65 //         KPushButton *btnResend = addButton("btnResend", i18nc( "@info:tooltip", "ReSend" ), "retweet" );
66 //         connect(btnResend, SIGNAL(clicked(bool)), SLOT(slotResendPost()));
67         baseText = &otherText;
68     }
69     d->image = "<img src=\"img://profileImage\" title=\""+ d->currentEntry.from.name +"\"\
70                 width=\"50\" height=\"50\" />";
71     setContent(prepareStatus(d->currentEntry.body));
72     setSign(generateSign());
73     setupAvatar();
74     setDirection();
75     setUiStyle();
76     updateUi();
77 }
78
79 void FFPostWidget::updateUi()
80 {
81     _mainWidget->setHtml(baseText->arg(d->image, content(),
82                                     sign().arg(formatDateTime( d->currentEntry.date ))));
83 }
84
85 void FFPostWidget::checkAnchor(const QUrl& url)
86 {
87     Choqok::UI::PostWidget::checkAnchor(url);
88 }
89
90 QString FFPostWidget::prepareStatus(const QString& text)
91 {
92     return text;
93 }
94
95 #include "ffpostwidget.moc"