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

blogilo

  • sources
  • kde-4.14
  • kdepim
  • blogilo
  • src
blogsettings.cpp
Go to the documentation of this file.
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 #include "blogsettings.h"
26 #include "addeditblog.h"
27 #include "dbman.h"
28 
29 #include <kdebug.h>
30 #include <KMessageBox>
31 
32 
33 BlogSettings::BlogSettings( QWidget *parent )
34  : QWidget( parent )
35 {
36  setupUi( this );
37 
38  connect( btnAdd, SIGNAL(clicked()), this, SLOT(addBlog()) );
39  connect( btnEdit, SIGNAL(clicked()), this, SLOT(editBlog()) );
40  connect( btnRemove, SIGNAL(clicked()), this, SLOT(removeBlog()) );
41  connect( blogsTable, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
42  this, SLOT(blogsTablestateChanged()) );
43  connect (blogsTable, SIGNAL(doubleClicked(QModelIndex)), SLOT(editBlog()));
44 
45  blogsTable->setHeaderLabels(QStringList()<<i18n("Title")<<i18n("URL"));
46  btnAdd->setIcon( KIcon( QLatin1String("list-add") ) );
47  btnEdit->setIcon( KIcon( QLatin1String("edit-rename") ) );
48  btnRemove->setIcon( KIcon( QLatin1String("list-remove") ) );
49  loadBlogsList();
50 }
51 
52 BlogSettings::~BlogSettings()
53 {
54 }
55 
56 void BlogSettings::addBlog()
57 {
58  AddEditBlog *addEditBlogWindow = new AddEditBlog( -1, this );
59  addEditBlogWindow->setWindowModality( Qt::ApplicationModal );
60  addEditBlogWindow->setAttribute( Qt::WA_DeleteOnClose );
61  connect( addEditBlogWindow, SIGNAL(sigBlogAdded(BilboBlog)),
62  this, SLOT(slotBlogAdded(BilboBlog)) );
63  connect( addEditBlogWindow, SIGNAL(sigBlogAdded(BilboBlog)),
64  this, SIGNAL(blogAdded(BilboBlog)));
65  addEditBlogWindow->show();
66 }
67 
68 void BlogSettings::slotBlogAdded( const BilboBlog &blog )
69 {
70  addBlogToList( blog );
71 }
72 
73 void BlogSettings::editBlog()
74 {
75  QTreeWidgetItem * item = blogsTable->currentItem();
76  if (item) {
77  const int blog_id = item->data( 0, BlogId ).toInt();
78  AddEditBlog *addEditBlogWindow = new AddEditBlog( blog_id, this );
79  addEditBlogWindow->setAttribute( Qt::WA_DeleteOnClose );
80  addEditBlogWindow->setWindowModality( Qt::ApplicationModal );
81  connect( addEditBlogWindow, SIGNAL(sigBlogEdited(BilboBlog)),
82  this, SLOT(slotBlogEdited(BilboBlog)) );
83  connect( addEditBlogWindow, SIGNAL(sigBlogEdited(BilboBlog)),
84  this, SIGNAL(blogEdited(BilboBlog)));
85  addEditBlogWindow->show();
86  }
87 }
88 
89 void BlogSettings::slotBlogEdited( const BilboBlog &blog )
90 {
91  QTreeWidgetItem * item = blogsTable->currentItem();
92  if (item) {
93  item->setText(0,blog.title());
94  item->setText(1,blog.blogUrl());
95  }
96 }
97 
98 void BlogSettings::removeBlog()
99 {
100  QTreeWidgetItem * item = blogsTable->currentItem();
101  if (item) {
102  if(KMessageBox::warningYesNo(this, i18n("Are you sure you want to remove the selected blog?"))
103  == KMessageBox::No)
104  return;
105  const int blog_id = item->data( 0, BlogId ).toInt();
106  if ( DBMan::self()->removeBlog( blog_id ) ) {
107  delete blogsTable->currentItem();
108  emit blogRemoved( blog_id );
109  } else {
111  kError()<<"Cannot remove blog with id "<<blog_id;
112  }
113  }
114 }
115 
116 void BlogSettings::loadBlogsList()
117 {
118  QList<BilboBlog*> list = DBMan::self()->blogList().values();
119  const int count = list.count();
120  for(int i=0; i<count; ++i) {
121  addBlogToList( *list[i] );
122  }
123 }
124 
125 void BlogSettings::blogsTablestateChanged()
126 {
127  if ( blogsTable->currentItem() ) {
128  btnEdit->setEnabled( true );
129  btnRemove->setEnabled( true );
130  } else {
131  btnEdit->setEnabled( false );
132  btnRemove->setEnabled( false );
133  }
134 }
135 
136 void BlogSettings::addBlogToList( const BilboBlog &blog )
137 {
138  QTreeWidgetItem *item = new QTreeWidgetItem( blogsTable, QStringList()<<blog.title()<<blog.blogUrl() );
139  item->setData(0, BlogId, blog.id());
140 }
141 
QModelIndex
QWidget
BlogSettings::blogEdited
void blogEdited(const BilboBlog &blog)
QWidget::setupUi
void setupUi(QWidget *widget)
BlogSettings::addBlog
void addBlog()
Definition: blogsettings.cpp:56
blogsettings.h
QMap::values
QList< T > values() const
QTreeWidgetItem::setData
virtual void setData(int column, int role, const QVariant &value)
BilboBlog::title
QString title() const
Definition: bilboblog.cpp:165
DBMan::self
static DBMan * self()
Retrieve the instance of DataBase Manager.
Definition: dbman.cpp:117
QTreeWidgetItem::data
virtual QVariant data(int column, int role) const
BlogSettings::editBlog
void editBlog()
Definition: blogsettings.cpp:73
BlogSettings::removeBlog
void removeBlog()
Definition: blogsettings.cpp:98
BlogSettings::BlogSettings
BlogSettings(QWidget *parent=0)
Definition: blogsettings.cpp:33
BlogSettings::blogAdded
void blogAdded(const BilboBlog &blog)
BilboBlog
Blog definition class!
Definition: bilboblog.h:40
QList::count
int count(const T &value) const
QVariant::toInt
int toInt(bool *ok) const
addeditblog.h
QList
QStringList
DBMan::blogList
const QMap< int, BilboBlog * > & blogList() const
Definition: dbman.cpp:124
dbman.h
BilboBlog::id
int id() const
Definition: bilboblog.cpp:217
QTreeWidgetItem
QLatin1String
BlogSettings::~BlogSettings
~BlogSettings()
Definition: blogsettings.cpp:52
QTreeWidgetItem::setText
void setText(int column, const QString &text)
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
AddEditBlog
Definition: addeditblog.h:43
BlogSettings::loadBlogsList
void loadBlogsList()
Definition: blogsettings.cpp:116
BilboBlog::blogUrl
QString blogUrl() const
return Blog Actual Url! For http://bilbo.wordpress.com : it's url() is http://bilbo.wordpress.com/xmlrpc.php and it's blogUrl() is http://bilbo.wordpress.com/
Definition: bilboblog.cpp:247
BlogSettings::blogRemoved
void blogRemoved(int blog_id)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:32:16 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

blogilo

Skip menu "blogilo"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

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
  • pimprint

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