• 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
kngroupselectdialog.cpp
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 #include "kngroupselectdialog.h"
16 
17 #include "utilities.h"
18 
19 #include <q3header.h>
20 #include <QCheckBox>
21 #include <QGridLayout>
22 #include <QLabel>
23 #include <klocale.h>
24 #include <kmessagebox.h>
25 #include <QPushButton>
26 
27 
28 KNGroupSelectDialog::KNGroupSelectDialog( QWidget *parent, KNNntpAccount::Ptr a, const QStringList &groups ) :
29  KNGroupBrowser(parent, i18n("Select Destinations"), a)
30 {
31  selView=new Q3ListView(page);
32  selView->addColumn( QString() );
33  selView->header()->hide();
34  listL->addWidget(selView, 1,2);
35  rightLabel->setText(i18n("Groups for this article:"));
36  subCB->setChecked(true);
37 
38  KNGroupInfo info;
39  foreach ( const QString &group, groups ) {
40  info.name = group;
41  new GroupItem(selView, info);
42  }
43 
44  connect(selView, SIGNAL(selectionChanged(Q3ListViewItem*)),
45  this, SLOT(slotItemSelected(Q3ListViewItem*)));
46  connect(groupView, SIGNAL(selectionChanged(Q3ListViewItem*)),
47  this, SLOT(slotItemSelected(Q3ListViewItem*)));
48  connect(groupView, SIGNAL(selectionChanged()),
49  this, SLOT(slotSelectionChanged()));
50  connect(arrowBtn1, SIGNAL(clicked()), this, SLOT(slotArrowBtn1()));
51  connect(arrowBtn2, SIGNAL(clicked()), this, SLOT(slotArrowBtn2()));
52 
53  KNHelper::restoreWindowSize("groupSelDlg", this, QSize(659,364)); // optimized for 800x600
54 }
55 
56 
57 
58 KNGroupSelectDialog::~KNGroupSelectDialog()
59 {
60  KNHelper::saveWindowSize("groupSelDlg", this->size());
61 }
62 
63 
64 
65 void KNGroupSelectDialog::itemChangedState(CheckItem *it, bool s)
66 {
67  if(s)
68  new GroupItem(selView, it->info);
69  else
70  removeListItem(selView, it->info);
71  arrowBtn1->setEnabled(!s);
72 }
73 
74 
75 
76 void KNGroupSelectDialog::updateItemState(CheckItem *it)
77 {
78  it->setChecked(itemInListView(selView, it->info));
79  if(it->info.subscribed && it->pixmap(0)==0)
80  it->setPixmap(0, pmGroup);
81 }
82 
83 
84 
85 QString KNGroupSelectDialog::selectedGroups()const
86 {
87  QString ret;
88  Q3ListViewItemIterator it(selView);
89  bool moderated=false;
90  int count=0;
91  bool isFirst=true;
92 
93  for(; it.current(); ++it) {
94  if(!isFirst)
95  ret+=',';
96  ret+=(static_cast<GroupItem*>(it.current()))->info.name;
97  isFirst=false;
98  count++;
99  if ((static_cast<GroupItem*>(it.current()))->info.status == KNGroup::moderated)
100  moderated=true;
101  }
102 
103  if (moderated && (count>=2)) // warn the user
104  KMessageBox::information(parentWidget(),i18n("You are crossposting to a moderated newsgroup.\nPlease be aware that your article will not appear in any group\nuntil it has been approved by the moderators of the moderated group."),
105  QString(),"crosspostModeratedWarning");
106 
107  return ret;
108 }
109 
110 
111 
112 void KNGroupSelectDialog::slotItemSelected(Q3ListViewItem *it)
113 {
114  const QObject *s=sender();
115 
116  if(s==groupView) {
117  selView->clearSelection();
118  arrowBtn2->setEnabled(false);
119  if(it)
120  arrowBtn1->setEnabled(!(static_cast<CheckItem*>(it))->isOn());
121  else
122  arrowBtn1->setEnabled(false);
123  }
124  else {
125  groupView->clearSelection();
126  arrowBtn1->setEnabled(false);
127  arrowBtn2->setEnabled((it!=0));
128  }
129 }
130 
131 
132 
133 void KNGroupSelectDialog::slotSelectionChanged()
134 {
135  if (!groupView->selectedItem())
136  arrowBtn1->setEnabled(false);
137 }
138 
139 
140 
141 void KNGroupSelectDialog::slotArrowBtn1()
142 {
143  CheckItem *i=static_cast<CheckItem*>(groupView->selectedItem());
144 
145  if(i) {
146  new GroupItem(selView, i->info);
147  arrowBtn1->setEnabled(false);
148  i->setChecked(true);
149  }
150 }
151 
152 
153 
154 void KNGroupSelectDialog::slotArrowBtn2()
155 {
156  GroupItem *i=static_cast<GroupItem*>(selView->selectedItem());
157 
158  if(i) {
159  changeItemState(i->info, false);
160  delete i;
161  arrowBtn2->setEnabled(false);
162  }
163 }
164 
165 
166 // -----------------------------------------------------------------------------
167 
168 #include "kngroupselectdialog.moc"
169 
KNGroupBrowser::arrowBtn1
QPushButton * arrowBtn1
Definition: kngroupbrowser.h:89
KNGroupSelectDialog::selView
Q3ListView * selView
Definition: kngroupselectdialog.h:43
KNGroupBrowser::changeItemState
void changeItemState(const KNGroupInfo &gi, bool s)
Definition: kngroupbrowser.cpp:177
KNGroupBrowser
Base class for group selection dialogs.
Definition: kngroupbrowser.h:32
KNHelper::saveWindowSize
static void saveWindowSize(const QString &name, const QSize &s)
Definition: utilities.cpp:205
KNGroupBrowser::subCB
QCheckBox * subCB
Definition: kngroupbrowser.h:88
KNGroup::moderated
Definition: kngroup.h:50
utilities.h
KNGroupBrowser::pmGroup
QPixmap pmGroup
Definition: kngroupbrowser.h:90
KNGroupSelectDialog::slotItemSelected
void slotItemSelected(Q3ListViewItem *it)
Definition: kngroupselectdialog.cpp:112
KNGroupBrowser::page
QWidget * page
Definition: kngroupbrowser.h:84
KNGroupBrowser::removeListItem
void removeListItem(Q3ListView *view, const KNGroupInfo &gi)
Definition: kngroupbrowser.cpp:259
QWidget
KNGroupBrowser::GroupItem
List view item with special handling for displaying moderated groups.
Definition: kngroupbrowser.h:54
KNHelper::restoreWindowSize
static void restoreWindowSize(const QString &name, QWidget *d, const QSize &defaultSize)
Definition: utilities.cpp:212
QObject
KNNntpAccount::Ptr
boost::shared_ptr< KNNntpAccount > Ptr
Shared pointer to a KNNntpAccount.
Definition: knnntpaccount.h:62
KNGroupBrowser::listL
QGridLayout * listL
Definition: kngroupbrowser.h:92
KNGroupInfo::name
QString name
group names will be utf-8 encoded in the future...
Definition: kngroupmanager.h:43
KNGroupBrowser::GroupItem::info
KNGroupInfo info
Definition: kngroupbrowser.h:61
KNGroupSelectDialog::itemChangedState
void itemChangedState(CheckItem *it, bool s)
Definition: kngroupselectdialog.cpp:65
KNGroupBrowser::groupView
Q3ListView * groupView
Definition: kngroupbrowser.h:85
KNGroupSelectDialog::slotArrowBtn2
void slotArrowBtn2()
Definition: kngroupselectdialog.cpp:154
Q3ListViewItem
kngroupselectdialog.h
KNGroupBrowser::CheckItem::setChecked
void setChecked(bool c)
Definition: kngroupbrowser.cpp:447
KNGroupSelectDialog::slotSelectionChanged
void slotSelectionChanged()
deactivates the button when a root item is selected
Definition: kngroupselectdialog.cpp:133
KNGroupBrowser::rightLabel
QLabel * rightLabel
Definition: kngroupbrowser.h:93
KNGroupSelectDialog::KNGroupSelectDialog
KNGroupSelectDialog(QWidget *parent, KNNntpAccount::Ptr a, const QStringList &groups)
Creates a group selection dialog.
Definition: kngroupselectdialog.cpp:28
KNGroupInfo::subscribed
bool subscribed
Definition: kngroupmanager.h:44
KNGroupBrowser::CheckItem::info
KNGroupInfo info
Definition: kngroupbrowser.h:46
KNGroupSelectDialog::slotArrowBtn1
void slotArrowBtn1()
Definition: kngroupselectdialog.cpp:141
KNGroupBrowser::itemInListView
bool itemInListView(Q3ListView *view, const KNGroupInfo &gi)
Definition: kngroupbrowser.cpp:187
KNGroupBrowser::arrowBtn2
QPushButton * arrowBtn2
Definition: kngroupbrowser.h:89
KNGroupBrowser::CheckItem
Checkable list view item with special handling for displaying moderated groups.
Definition: kngroupbrowser.h:38
KNGroupInfo
Helper classes for the group selection dialog, contains info about a newsgroup (name, description)
Definition: kngroupmanager.h:34
KNGroupSelectDialog::~KNGroupSelectDialog
~KNGroupSelectDialog()
Definition: kngroupselectdialog.cpp:58
KNGroupSelectDialog::selectedGroups
QString selectedGroups() const
Definition: kngroupselectdialog.cpp:85
KNGroupSelectDialog::updateItemState
void updateItemState(CheckItem *it)
Definition: kngroupselectdialog.cpp:76
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