summaryrefslogtreecommitdiffstats
path: root/kcontrol/samba/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/samba/main.cpp')
-rw-r--r--kcontrol/samba/main.cpp119
1 files changed, 119 insertions, 0 deletions
diff --git a/kcontrol/samba/main.cpp b/kcontrol/samba/main.cpp
new file mode 100644
index 000000000..f6df8f91b
--- /dev/null
+++ b/kcontrol/samba/main.cpp
@@ -0,0 +1,119 @@
+/*
+ * main.cpp for the samba kcontrol module
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <qlayout.h>
+#include <qtabwidget.h>
+
+#include <kaboutdata.h>
+#include <kcmodule.h>
+#include <kdialog.h>
+#include <kgenericfactory.h>
+
+#include "kcmsambaimports.h"
+#include "kcmsambalog.h"
+#include "kcmsambastatistics.h"
+#include "ksmbstatus.h"
+
+class SambaContainer:public KCModule
+{
+ public:
+ SambaContainer(QWidget *parent=0, const char * name=0, const QStringList &list = QStringList() );
+ virtual ~SambaContainer();
+ virtual void load();
+ virtual void save();
+
+ private:
+ KConfig config;
+ QTabWidget tabs;
+ NetMon status;
+ ImportsView imports;
+ LogView logView;
+ StatisticsView statisticsView;
+};
+
+typedef KGenericFactory<SambaContainer, QWidget > SambaFactory;
+K_EXPORT_COMPONENT_FACTORY (kcm_samba, SambaFactory("kcmsamba") )
+
+SambaContainer::SambaContainer(QWidget *parent, const char* name, const QStringList&)
+:KCModule(SambaFactory::instance(), parent,name)
+,config("kcmsambarc",false,true)
+,tabs(this)
+,status(&tabs,&config)
+,imports(&tabs,&config)
+,logView(&tabs,&config)
+,statisticsView(&tabs,&config)
+{
+ QVBoxLayout *layout = new QVBoxLayout( this, 0, KDialog::spacingHint() );
+ layout->addWidget(&tabs);
+ tabs.addTab(&status,i18n("&Exports"));
+ tabs.addTab(&imports,i18n("&Imports"));
+ tabs.addTab(&logView,i18n("&Log"));
+ tabs.addTab(&statisticsView,i18n("&Statistics"));
+ connect(&logView,SIGNAL(contentsChanged(QListView* , int, int)),&statisticsView,SLOT(setListInfo(QListView *, int, int)));
+ setButtons(Help);
+ load();
+
+ setQuickHelp( i18n("The Samba and NFS Status Monitor is a front end to the programs"
+ " <em>smbstatus</em> and <em>showmount</em>. Smbstatus reports on current"
+ " Samba connections, and is part of the suite of Samba tools, which"
+ " implements the SMB (Session Message Block) protocol, also called the"
+ " NetBIOS or LanManager protocol. This protocol can be used to provide"
+ " printer sharing or drive sharing services on a network including"
+ " machines running the various flavors of Microsoft Windows.<p>"
+ " Showmount is part of the NFS software package. NFS stands for Network"
+ " File System and is the traditional UNIX way to share directories over"
+ " the network. In this case the output of <em>showmount -a localhost</em>"
+ " is parsed. On some systems showmount is in /usr/sbin, check if you have"
+ " showmount in your PATH."));
+
+ KAboutData *about =
+ new KAboutData(I18N_NOOP("kcmsamba"),
+ I18N_NOOP("KDE Panel System Information Control Module"),
+ 0, 0, KAboutData::License_GPL,
+ I18N_NOOP("(c) 2002 KDE Information Control Module Samba Team"));
+ about->addAuthor("Michael Glauche", 0, "glauche@isa.rwth-aachen.de");
+ about->addAuthor("Matthias Hoelzer", 0, "hoelzer@kde.org");
+ about->addAuthor("David Faure", 0, "faure@kde.org");
+ about->addAuthor("Harald Koschinski", 0, "Harald.Koschinski@arcormail.de");
+ about->addAuthor("Wilco Greven", 0, "greven@kde.org");
+ about->addAuthor("Alexander Neundorf", 0, "neundorf@kde.org");
+ setAboutData( about );
+}
+
+SambaContainer::~SambaContainer()
+{
+ save();
+}
+
+void SambaContainer::load()
+{
+ status.loadSettings();
+ imports.loadSettings();
+ logView.loadSettings();
+ statisticsView.loadSettings();
+}
+
+void SambaContainer::save()
+{
+ status.saveSettings();
+ imports.saveSettings();
+ logView.saveSettings();
+ statisticsView.saveSettings();
+ config.sync();
+}
+