00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#include "filegroupsconfigwidget.h"
00013
00014
#include <qlistview.h>
00015
#include <knotifyclient.h>
00016
#include <klocale.h>
00017
00018
#include "domutil.h"
00019
#include "addfilegroupdlg.h"
00020
#include "filegroupspart.h"
00021
00022
00023 FileGroupsConfigWidget::FileGroupsConfigWidget(
FileGroupsPart *part,
00024
QWidget *parent,
const char *name)
00025 :
FileGroupsConfigWidgetBase(parent, name)
00026 {
00027
m_part = part;
00028
00029 listview->setSorting(-1);
00030
00031
readConfig();
00032 }
00033
00034
00035 FileGroupsConfigWidget::~FileGroupsConfigWidget()
00036 {}
00037
00038
00039 void FileGroupsConfigWidget::readConfig()
00040 {
00041
QDomDocument &dom = *
m_part->
projectDom();
00042
DomUtil::PairList list = DomUtil::readPairListEntry(dom,
"/kdevfileview/groups",
00043
"group",
"name",
"pattern");
00044
00045
QListViewItem *lastItem = 0;
00046
00047 DomUtil::PairList::ConstIterator it;
00048
for (it = list.begin(); it != list.end(); ++it) {
00049
QListViewItem *newItem =
new QListViewItem(listview, (*it).first, (*it).second);
00050
if (lastItem)
00051 newItem->moveItem(lastItem);
00052 lastItem = newItem;
00053 }
00054 }
00055
00056
00057 void FileGroupsConfigWidget::storeConfig()
00058 {
00059
DomUtil::PairList list;
00060
00061
QListViewItem *item = listview->firstChild();
00062
while (item) {
00063 list <<
DomUtil::Pair(item->text(0), item->text(1));
00064 item = item->nextSibling();
00065 }
00066
00067 DomUtil::writePairListEntry(*
m_part->
projectDom(),
"/kdevfileview/groups",
00068
"group",
"name",
"pattern", list);
00069 }
00070
00071
00072 void FileGroupsConfigWidget::addGroup()
00073 {
00074
AddFileGroupDialog dlg;
00075 dlg.setCaption(i18n(
"Add File Group"));
00076
if (!dlg.exec())
00077
return;
00078
00079 (
void)
new QListViewItem(listview, dlg.
title(), dlg.
pattern());
00080 }
00081
00082
00083 void FileGroupsConfigWidget::editGroup()
00084 {
00085
if (listview->childCount()==0 || listview->currentItem()==0)
00086
return;
00087
AddFileGroupDialog dlg(listview->currentItem()->text(0),listview->currentItem()->text(1));
00088 dlg.setCaption(i18n(
"Edit File Group"));
00089
if (!dlg.exec() || dlg.
title().isEmpty() || dlg.
pattern().isEmpty())
00090
return;
00091 listview->currentItem()->setText(0,dlg.
title());
00092 listview->currentItem()->setText(1,dlg.
pattern());
00093 }
00094
00095
00096 void FileGroupsConfigWidget::removeGroup()
00097 {
00098
delete listview->currentItem();
00099 }
00100
00101
00102 void FileGroupsConfigWidget::moveUp()
00103 {
00104
if (listview->currentItem() == listview->firstChild()) {
00105
KNotifyClient::beep();
00106
return;
00107 }
00108
00109
QListViewItem *item = listview->firstChild();
00110
while (item->nextSibling() != listview->currentItem())
00111 item = item->nextSibling();
00112 item->moveItem(listview->currentItem());
00113 }
00114
00115
00116 void FileGroupsConfigWidget::moveDown()
00117 {
00118
if (listview->currentItem()->nextSibling() == 0) {
00119
KNotifyClient::beep();
00120
return;
00121 }
00122
00123 listview->currentItem()->moveItem(listview->currentItem()->nextSibling());
00124 }
00125
00126
00127 void FileGroupsConfigWidget::accept()
00128 {
00129
storeConfig();
00130
m_part->
refresh();
00131 }
00132
00133
#include "filegroupsconfigwidget.moc"