diff options
Diffstat (limited to 'kdeprint/management/kminstancepage.cpp')
-rw-r--r-- | kdeprint/management/kminstancepage.cpp | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/kdeprint/management/kminstancepage.cpp b/kdeprint/management/kminstancepage.cpp deleted file mode 100644 index 25c037516..000000000 --- a/kdeprint/management/kminstancepage.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* - * This file is part of the KDE libraries - * Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be> - * - * 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 "kminstancepage.h" -#include "kmprinter.h" -#include "kmfactory.h" -#include "kmvirtualmanager.h" -#include "kmmanager.h" -#include "kprinterpropertydialog.h" -#include "kprinter.h" -#include "kmtimer.h" - -#include <tqlayout.h> -#include <tqregexp.h> -#include <tqwhatsthis.h> -#include <tqpushbutton.h> -#include <kmessagebox.h> -#include <kinputdialog.h> -#include <klistbox.h> -#include <klocale.h> -#include <kiconloader.h> -#include <kstandarddirs.h> -#include <kdebug.h> - -KMInstancePage::KMInstancePage(TQWidget *parent, const char *name) -: TQWidget(parent,name) -{ - m_view = new KListBox(this); - m_printer = 0; - - initActions(); - - TQHBoxLayout *main_ = new TQHBoxLayout(this, 0, 0); - main_->addWidget(m_view); - TQVBoxLayout *sub_ = new TQVBoxLayout(0, 0, 0); - main_->addLayout(sub_); - for (TQValueList<TQButton*>::Iterator it=m_buttons.begin(); it!=m_buttons.end(); ++it) - if (*it) - sub_->addWidget(*it); - else - sub_->addSpacing(10); - sub_->addStretch(1); - - TQWhatsThis::add(this, - i18n("Define/Edit here instances for the current selected " - "printer. An instance is a combination of a real " - "(physical) printer and a set of predefined options. " - "For a single InkJet printer, you could define different " - "print formats like <i>DraftQuality</i>, <i>PhotoQuality</i> " - "or <i>TwoSided</i>. Those instances appear as normal " - "printers in the print dialog and allow you to quickly " - "select the print format you want.")); -} - -KMInstancePage::~KMInstancePage() -{ -} - -void KMInstancePage::addButton(const TQString& txt, const TQString& pixmap, const char *receiver) -{ - TQPushButton *btn = new TQPushButton(this, 0L); - btn->setText(txt); - btn->setIconSet(BarIconSet(pixmap)); - btn->setFlat(true); - connect(btn, TQT_SIGNAL(clicked()), receiver); - m_buttons.append(btn); -} - -void KMInstancePage::initActions() -{ - addButton(i18n("New..."), "filenew", TQT_SLOT(slotNew())); - addButton(i18n("Copy..."), "editcopy", TQT_SLOT(slotCopy())); - addButton(i18n("Remove"), "edittrash", TQT_SLOT(slotRemove())); - m_buttons.append(0); - addButton(i18n("Set as Default"), "exec", TQT_SLOT(slotDefault())); - addButton(i18n("Settings"), "configure", TQT_SLOT(slotSettings())); - m_buttons.append(0); - addButton(i18n("Test..."), "fileprint", TQT_SLOT(slotTest())); -} - -void KMInstancePage::setPrinter(KMPrinter *p) -{ - TQString oldText = m_view->currentText(); - - m_view->clear(); - m_printer = p; - //bool ok = (p && !p->isSpecial()); - bool ok = (p != 0); - if (ok) - { - TQPtrList<KMPrinter> list; - KMFactory::self()->virtualManager()->virtualList(list,p->name()); - TQPtrListIterator<KMPrinter> it(list); - for (;it.current();++it) - { - TQStringList pair = TQStringList::split('/',it.current()->name(),false); - m_view->insertItem(SmallIcon((it.current()->isSoftDefault() ? "exec" : "fileprint")),(pair.count() > 1 ? pair[1] : i18n("(Default)"))); - } - m_view->sort(); - } - - for (TQValueList<TQButton*>::ConstIterator it=m_buttons.begin(); it!=m_buttons.end(); ++it) - if (*it) - (*it)->setEnabled(ok); - - //iif (!oldText.isEmpty()) - //{ - TQListBoxItem *item = m_view->findItem(oldText); - if (!item) - item = m_view->findItem(i18n("(Default)")); - if (item) - m_view->setSelected(item,true); - //} -} - -void KMInstancePage::slotNew() -{ - KMTimer::self()->hold(); - - bool ok(false); - TQString name = KInputDialog::getText(i18n("Instance Name"),i18n("Enter name for new instance (leave untouched for default):"), - i18n("(Default)"),&ok,this); - if (ok) - { - if (name.find(TQRegExp("[/\\s]")) != -1) - KMessageBox::error(this, i18n("Instance name must not contain any spaces or slashes.")); - else - { - if (name == i18n("(Default)")) - name = TQString(); - KMFactory::self()->virtualManager()->create(m_printer,name); - setPrinter(m_printer); - } - } - - KMTimer::self()->release(); -} - -void KMInstancePage::slotRemove() -{ - KMTimer::self()->hold(); - bool reload(false); - - TQString src = m_view->currentText(); - TQString msg = (src != i18n("(Default)") ? i18n("Do you really want to remove instance %1?") : i18n("You can't remove the default instance. However all settings of %1 will be discarded. Continue?")); - if (!src.isEmpty() && KMessageBox::warningContinueCancel(this,msg.arg(src),TQString(),KStdGuiItem::del()) == KMessageBox::Continue) - { - if (src == i18n("(Default)")) - src = TQString(); - reload = KMFactory::self()->virtualManager()->isDefault(m_printer,src); - KMFactory::self()->virtualManager()->remove(m_printer,src); - setPrinter(m_printer); - } - - KMTimer::self()->release(reload); -} - -void KMInstancePage::slotCopy() -{ - KMTimer::self()->hold(); - - TQString src = m_view->currentText(); - if (!src.isEmpty()) - { - bool ok(false); - TQString name = KInputDialog::getText(i18n("Instance Name"),i18n("Enter name for new instance (leave untouched for default):"), - i18n("(Default)"),&ok,this); - if (ok) - { - if (name.find(TQRegExp("[/\\s]")) != -1) - KMessageBox::error(this, i18n("Instance name must not contain any spaces or slashes.")); - else - { - if (src == i18n("(Default)")) - src = TQString(); - if (name == i18n("(Default)")) - name = TQString(); - KMFactory::self()->virtualManager()->copy(m_printer,src,name); - setPrinter(m_printer); - } - } - } - - KMTimer::self()->release(); -} - -void KMInstancePage::slotSettings() -{ - KMTimer::self()->hold(); - - TQString src = m_view->currentText(); - if (!src.isEmpty()) - { - if (src == i18n("(Default)")) src = TQString(); - KMPrinter *pr = KMFactory::self()->virtualManager()->findInstance(m_printer,src); - if ( !pr ) - KMessageBox::error( this, i18n( "Unable to find instance %1." ).arg( m_view->currentText() ) ); - else if ( !pr->isSpecial() && !KMFactory::self()->manager()->completePrinterShort( pr ) ) - KMessageBox::error( this, i18n( "Unable to retrieve printer information. Message from printing system: %1." ).arg( KMFactory::self()->manager()->errorMsg() ) ); - else - { - int oldAppType = KMFactory::self()->settings()->application; - KMFactory::self()->settings()->application = -1; - KPrinterPropertyDialog::setupPrinter(pr, this); - KMFactory::self()->settings()->application = oldAppType; - if (pr->isEdited()) - { // printer edited, need to save changes - pr->setDefaultOptions(pr->editedOptions()); - pr->setEditedOptions(TQMap<TQString,TQString>()); - pr->setEdited(false); - KMFactory::self()->virtualManager()->triggerSave(); - } - } - } - else - KMessageBox::error( this, i18n( "The instance name is empty. Please select an instance." ) ); - - KMTimer::self()->release(); -} - -void KMInstancePage::slotDefault() -{ - KMTimer::self()->hold(); - - TQString src = m_view->currentText(); - if (!src.isEmpty()) - { - if (src == i18n("(Default)")) - src = TQString(); - KMFactory::self()->virtualManager()->setAsDefault(m_printer,src); - setPrinter(m_printer); - } - - KMTimer::self()->release(true); -} - -void KMInstancePage::slotTest() -{ - KMTimer::self()->hold(); - - TQString src = m_view->currentText(); - if (!src.isEmpty()) - { - if (src == i18n("(Default)")) - src = TQString(); - KMPrinter *mpr = KMFactory::self()->virtualManager()->findInstance(m_printer,src); - if (!mpr) - KMessageBox::error(this,i18n("Internal error: printer not found.")); - else if (KMessageBox::warningContinueCancel(this, i18n("You are about to print a test page on %1. Do you want to continue?").arg(mpr->printerName()), TQString(), i18n("Print Test Page"), "printTestPage") == KMessageBox::Continue) - { - if (!KMFactory::self()->virtualManager()->testInstance(mpr)) - KMessageBox::error(this, i18n("Unable to send test page to %1.").arg(mpr->printerName())); - else - KMessageBox::information(this,i18n("Test page successfully sent to printer %1.").arg(mpr->printerName())); - } - } - - KMTimer::self()->release(false); -} -#include "kminstancepage.moc" |