summaryrefslogtreecommitdiffstats
path: root/src/fetch/configwidget.cpp
blob: c7b3b5998f81998b2c8880906cab7f180b796436 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/***************************************************************************
    copyright            : (C) 2003-2006 by Robby Stephenson
    email                : robby@periapsis.org
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of version 2 of the GNU General Public License as  *
 *   published by the Free Software Foundation;                            *
 *                                                                         *
 ***************************************************************************/

#include "configwidget.h"

#include <kconfig.h>
#include <klocale.h>
#include <kaccelmanager.h>

#include <qvgroupbox.h>
#include <qlayout.h>

using Tellico::Fetch::ConfigWidget;

ConfigWidget::ConfigWidget(QWidget* parent_) : QWidget(parent_), m_modified(false), m_accepted(false) {
  QHBoxLayout* boxLayout = new QHBoxLayout(this);
  boxLayout->setSpacing(10);

  QGroupBox* vbox = new QVGroupBox(i18n("Source Options"), this);
  boxLayout->addWidget(vbox, 10 /*stretch*/);

  m_optionsWidget = new QWidget(vbox);
}

void ConfigWidget::addFieldsWidget(const StringMap& customFields_, const QStringList& fieldsToAdd_) {
  if(customFields_.isEmpty()) {
    return;
  }

  QVGroupBox* box = new QVGroupBox(i18n("Available Fields"), this);
  static_cast<QBoxLayout*>(layout())->addWidget(box);
  for(StringMap::ConstIterator it = customFields_.begin(); it != customFields_.end(); ++it) {
    QCheckBox* cb = new QCheckBox(it.data(), box);
    m_fields.insert(it.key(), cb);
    if(fieldsToAdd_.contains(it.key())) {
      cb->setChecked(true);
    }
    connect(cb, SIGNAL(clicked()), SLOT(slotSetModified()));
  }

  KAcceleratorManager::manage(this);

  return;
}

void ConfigWidget::saveFieldsConfig(KConfigGroup& config_) const {
  QStringList fields;
  for(QDictIterator<QCheckBox> it(m_fields); it.current(); ++it) {
    if(it.current()->isChecked()) {
      fields << it.currentKey();
    }
  }
  config_.writeEntry(QString::fromLatin1("Custom Fields"), fields);
}

#include "configwidget.moc"