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

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • conf
transfersgrouptree.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
4  Copyright (C) 2007 Urs Wolfer <uwolfer @ kde.org>
5  Copyright (C) 2007 Javier Goday <jgoday @ gmail.com>
6  Copyright (C) 2009 Lukas Appelhans <l.appelhans@gmx.de>
7  Copyright (C) 2010 Matthias Fuchs <mat69@gmx.net>
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public
11  License as published by the Free Software Foundation; either
12  version 2 of the License, or (at your option) any later version.
13 */
14 
15 #include "transfersgrouptree.h"
16 
17 #include "core/kget.h"
18 #include "core/transfertreemodel.h"
19 #include "core/transfertreeselectionmodel.h"
20 
21 #include <QtGui/QHeaderView>
22 
23 #include <KLineEdit>
24 
25 TransfersGroupDelegate::TransfersGroupDelegate(QAbstractItemView *parent)
26  : BasicTransfersViewDelegate(parent)
27 {
28 }
29 
30 QWidget *TransfersGroupDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
31 {
32  if (index.column() == TransferTreeModel::Name) {
33  return new KLineEdit(parent);
34  } else {
35  return BasicTransfersViewDelegate::createEditor(parent, option, index);
36  }
37 }
38 
39 void TransfersGroupDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
40 {
41  if (index.column() == TransferTreeModel::Name) {
42  KLineEdit *groupEditor = static_cast<KLineEdit*>(editor);
43  groupEditor->setText(index.data().toString());
44  } else {
45  BasicTransfersViewDelegate::setEditorData(editor, index);
46  }
47 }
48 
49 void TransfersGroupDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
50 {
51  if (index.column() == TransferTreeModel::Name) {
52  KLineEdit *groupEditor = static_cast<KLineEdit*>(editor);
53  const QString newName = groupEditor->text();
54  const QString oldName = index.data().toString();
55 
56  if (!newName.isEmpty()) {
57  foreach (const QString &groupName, KGet::transferGroupNames()) {
58  if (groupName == newName && groupName != oldName) {
59  groupEditor->setText(oldName);
60  return;
61  }
62  }
63 
64  KGet::renameGroup(oldName, newName);
65  }
66  } else {
67  BasicTransfersViewDelegate::setModelData(editor, model, index);
68  }
69 }
70 
71 
72 TransfersGroupTree::TransfersGroupTree(QWidget *parent)
73  : QTreeView(parent)
74 {
75  setItemDelegate(new TransfersGroupDelegate(this));
76 }
77 
78 void TransfersGroupTree::setModel(QAbstractItemModel *model)
79 {
80  QTreeView::setModel(model);
81 
82  int nGroups = model->rowCount(QModelIndex());
83  for (int i = 0; i < nGroups; i++) {
84  kDebug(5001) << "openEditor for row " << i;
85  openPersistentEditor(model->index(i, TransferTreeModel::Status, QModelIndex()));
86  }
87 
88  setColumnWidth(0 , 250);
89 }
90 
91 void TransfersGroupTree::rowsInserted(const QModelIndex &parent, int start, int end)
92 {
93  if (!parent.isValid()) {
94  for (int i = start; i <= end; ++i) {
95  kDebug(5001) << "openEditor for row " << i;
96  openPersistentEditor(model()->index(i, TransferTreeModel::Status, parent));
97  }
98  }
99 
100  QTreeView::rowsInserted(parent, start, end);
101 }
102 
103 void TransfersGroupTree::editCurrent()
104 {
105  QTreeView::edit(currentIndex());
106 }
107 
108 void TransfersGroupTree::addGroup()
109 {
110  QString groupName(i18n("New Group"));
111  int i=0;
112 
113  while(KGet::transferGroupNames().contains(groupName))
114  {
115  groupName = i18n("New Group") + QString::number(++i);
116  }
117 
118  if (KGet::addGroup(groupName)) {
119  QModelIndex index = model()->index(model()->rowCount() - 1, 0);
120  setCurrentIndex(index);
121  editCurrent();
122  }
123 }
124 
125 void TransfersGroupTree::deleteSelectedGroup()
126 {
127  KGet::delGroups(KGet::selectedTransferGroups());
128 }
129 
130 void TransfersGroupTree::renameSelectedGroup()
131 {
132  if(currentIndex().isValid())
133  editCurrent();
134 }
135 
136 void TransfersGroupTree::changeIcon(const QString &icon)
137 {
138  kDebug(5001);
139  TransferTreeSelectionModel *selModel = KGet::selectionModel();
140 
141  QModelIndexList indexList = selModel->selectedRows();
142 
143  if (!icon.isEmpty())
144  {
145  foreach (TransferGroupHandler *group, KGet::selectedTransferGroups())
146  {
147  group->setIconName(icon);
148  }
149  }
150  emit dataChanged(indexList.first(),indexList.last());
151 }
TransferTreeModel::Status
Definition: transfertreemodel.h:120
KGet::transferGroupNames
static QStringList transferGroupNames()
Definition: kget.cpp:168
TransfersGroupTree::TransfersGroupTree
TransfersGroupTree(QWidget *parent=0)
Definition: transfersgrouptree.cpp:72
KGet::renameGroup
static void renameGroup(const QString &oldName, const QString &newName)
Changes the name of the group.
Definition: kget.cpp:158
TransferGroupHandler
Definition: transfergrouphandler.h:30
TransfersGroupDelegate::setModelData
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
Definition: transfersgrouptree.cpp:49
transfertreemodel.h
KGet::selectedTransferGroups
static QList< TransferGroupHandler * > selectedTransferGroups()
Definition: kget.cpp:469
QWidget
TransfersGroupDelegate::setEditorData
void setEditorData(QWidget *editor, const QModelIndex &index) const
Definition: transfersgrouptree.cpp:39
TransfersGroupTree::addGroup
void addGroup()
Definition: transfersgrouptree.cpp:108
BasicTransfersViewDelegate::setEditorData
virtual void setEditorData(QWidget *editor, const QModelIndex &index) const
Definition: transfersviewdelegate.cpp:290
BasicTransfersViewDelegate::createEditor
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: transfersviewdelegate.cpp:274
TransfersGroupTree::editCurrent
void editCurrent()
Definition: transfersgrouptree.cpp:103
BasicTransfersViewDelegate
The BasicTransfersViewDelegate handles the setting of the status of a group.
Definition: transfersviewdelegate.h:81
TransfersGroupDelegate::createEditor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: transfersgrouptree.cpp:30
KGet::addGroup
static bool addGroup(const QString &groupName)
Adds a new group to the KGet.
Definition: kget.cpp:101
KGet::selectionModel
static TransferTreeSelectionModel * selectionModel()
Definition: kget.cpp:492
QTreeView
TransfersGroupTree::changeIcon
void changeIcon(const QString &icon)
Definition: transfersgrouptree.cpp:136
TransfersGroupTree::deleteSelectedGroup
void deleteSelectedGroup()
Definition: transfersgrouptree.cpp:125
TransfersGroupDelegate
Definition: transfersgrouptree.h:24
transfertreeselectionmodel.h
transfersgrouptree.h
TransfersGroupDelegate::TransfersGroupDelegate
TransfersGroupDelegate(QAbstractItemView *parent)
Definition: transfersgrouptree.cpp:25
QAbstractItemModel
TransferTreeSelectionModel
Definition: transfertreeselectionmodel.h:16
BasicTransfersViewDelegate::setModelData
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
Definition: transfersviewdelegate.cpp:300
TransfersGroupTree::renameSelectedGroup
void renameSelectedGroup()
Definition: transfersgrouptree.cpp:130
KGet::delGroups
static void delGroups(QList< TransferGroupHandler * > groups, bool askUser=true)
Removes specific groups from the KGet.
Definition: kget.cpp:132
TransferGroupHandler::setIconName
void setIconName(const QString &name)
Set the group's icon.
Definition: transfergrouphandler.h:188
kget.h
TransfersGroupTree::setModel
void setModel(QAbstractItemModel *model)
Definition: transfersgrouptree.cpp:78
TransferTreeModel::Name
Definition: transfertreemodel.h:119
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:18 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

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

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

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