summaryrefslogtreecommitdiffstats
path: root/kdeprint/management/kmwfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/management/kmwfile.cpp')
-rw-r--r--kdeprint/management/kmwfile.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/kdeprint/management/kmwfile.cpp b/kdeprint/management/kmwfile.cpp
new file mode 100644
index 000000000..497b03f27
--- /dev/null
+++ b/kdeprint/management/kmwfile.cpp
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the KDE libraries
+ * Copyright (c) 2001 Michael Goffioul <[email protected]>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#include "kmwfile.h"
+#include "kmwizard.h"
+#include "kmprinter.h"
+
+#include <qlabel.h>
+#include <qlayout.h>
+
+#include <kurlrequester.h>
+#include <klocale.h>
+#include <kfiledialog.h>
+
+KMWFile::KMWFile(QWidget *parent, const char *name)
+: KMWizardPage(parent,name)
+{
+ m_ID = KMWizard::File;
+ m_title = i18n("File Selection");
+ m_nextpage = KMWizard::Driver;
+
+ m_url = new KURLRequester(this);
+ m_url->setMode((KFile::Mode)(KFile::File|KFile::LocalOnly));
+ QLabel *l1 = new QLabel(this);
+ l1->setText(i18n("<p>The printing will be redirected to a file. Enter here the path "
+ "of the file you want to use for redirection. Use an absolute path or "
+ "the browse button for graphical selection.</p>"));
+ QLabel *l2 = new QLabel(i18n("Print to file:"), this);
+
+ QVBoxLayout *lay1 = new QVBoxLayout(this, 0, 30);
+ QVBoxLayout *lay2 = new QVBoxLayout(0, 0, 5);
+ lay1->addWidget(l1);
+ lay1->addLayout(lay2);
+ lay1->addStretch(1);
+ lay2->addWidget(l2);
+ lay2->addWidget(m_url);
+}
+
+bool KMWFile::isValid(QString& msg)
+{
+ QFileInfo fi(m_url->url());
+ if (fi.fileName().isEmpty())
+ {
+ msg = i18n("Empty file name.");
+ return false;
+ }
+
+ if (!fi.dir().exists())
+ {
+ msg = i18n("Directory does not exist.");
+ return false;
+ }
+
+ return true;
+}
+
+void KMWFile::updatePrinter(KMPrinter *p)
+{
+ QString dev = QString::fromLatin1("file:%1").arg(m_url->url());
+ p->setDevice(dev);
+}