void KMMainView::slotPrinterSelected(const QString &prname) { KMPrinter *p = KMManager::self()->findPrinter(prname); m_current = p; if(p && !p->isSpecial()) KMFactory::self()->manager()->completePrinter(p); m_printerpages->setPrinter(p); // update actions state (only if toolbar enabled, workaround for toolbar // problem). // if (m_toolbar->isEnabled()) //{ int mask = (m_manager->hasManagement() ? m_manager->printerOperationMask() : 0); bool sp = !(p && p->isSpecial()); m_actions->action("printer_remove")->setEnabled(!sp || ((mask & KMManager::PrinterRemoval) && p && p->isLocal() && !p->isImplicit())); m_actions->action("printer_configure")->setEnabled(!sp || ((mask & KMManager::PrinterConfigure) && p && !p->isClass(true) /*&& p->isLocal()*/)); m_actions->action("printer_hard_default") ->setEnabled((sp && (mask & KMManager::PrinterDefault) && p && !p->isClass(true) && !p->isHardDefault() && p->isLocal())); m_actions->action("printer_soft_default")->setEnabled((p && !p->isSoftDefault())); m_actions->action("printer_test")->setEnabled((sp && (mask & KMManager::PrinterTesting) && p && !p->isClass(true))); bool stmask = (sp && (mask & KMManager::PrinterEnabling) && p); m_actions->action("printer_state_change")->setEnabled(stmask && p->isLocal()); m_actions->action("printer_spool_change")->setEnabled(stmask); m_actions->action("printer_start")->setEnabled((stmask && p->state() == KMPrinter::Stopped)); m_actions->action("printer_stop")->setEnabled((stmask && p->state() != KMPrinter::Stopped)); m_actions->action("printer_enable")->setEnabled((stmask && !p->acceptJobs())); m_actions->action("printer_disable")->setEnabled((stmask && p->acceptJobs())); m_actions->action("printer_add")->setEnabled((mask & KMManager::PrinterCreation)); mask = m_manager->serverOperationMask(); m_actions->action("server_restart")->setEnabled((mask & KMManager::ServerRestarting)); m_actions->action("server_configure")->setEnabled((mask & KMManager::ServerConfigure)); KMFactory::self()->manager()->validatePluginActions(m_actions, p); //} m_actions->action("printer_tool")->setEnabled(p && !p->isClass(true) && !p->isRemote() && !p->isSpecial()); }
void KMJobViewer::addToManager() { if (m_prname == i18n("All Printers")) { loadPrinters(); QPtrListIterator<KMPrinter> it(m_printers); for (; it.current(); ++it) m_manager->addPrinter(it.current()->printerName(), (KMJobManager::JobType)m_type, it.current()->isSpecial()); } else if (!m_prname.isEmpty()) { KMPrinter *prt = KMManager::self()->findPrinter( m_prname ); bool isSpecial = ( prt ? prt->isSpecial() : false ); m_manager->addPrinter(m_prname, (KMJobManager::JobType)m_type, isSpecial); } }
void PrintMenu::initialize() { if (initialized()) clear(); setInitialized(true); int ID = PRINTER_LIST_ID; // just to be sure the plugin is loaded -> icons are available KMManager::self(); if ((KMManager::self()->printerOperationMask() & KMManager::PrinterCreation) && KMManager::self()->hasManagement()) insertItem(KIcon("wizard"), i18n("Add Printer..."), ADD_PRINTER_ID); insertItem(KIcon("kdeprint-configmgr"), i18n("KDE Print Settings"), KDEPRINT_SETTINGS_ID); if (KMManager::self()->serverOperationMask() & KMManager::ServerConfigure) insertItem(KIcon("kdeprint-configsrv"), i18n("Configure Server"), CONFIG_SERVER_ID); addSeparator(); insertItem(KIcon("kcontrol"), i18n("Print Manager"), PRINT_MANAGER_ID); insertItem(KIcon("konqueror"), i18n("Print Browser (Konqueror)"), PRINT_BROWSER_ID); addSeparator(); insertItem(KIcon("document-print"), i18n("Print File..."), KPRINTER_ID); // printer list QList<KMPrinter*> l = KMManager::self()->printerList(); if (!l.isEmpty()) { bool separatorInserted = false; QListIterator<KMPrinter*> it(l); while (it.hasNext()) { KMPrinter *itprt = it.next(); // no special, implicit or pure instances if (itprt->isSpecial() || itprt->isVirtual()) continue; if (!separatorInserted) { // we insert a separator only when we find the first // printer addSeparator(); separatorInserted = true; } insertItem(KIcon(itprt->pixmap()), itprt->printerName(), ID++); } } }
void KMInstancePage::slotSettings() { KMTimer::self()->hold(); QString src = m_view->currentText(); if(!src.isEmpty()) { if(src == i18n("(Default)")) src = QString::null; 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(QMap< QString, QString >()); 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 KMMainView::slotRightButtonClicked(const QString &prname, const QPoint &p) { KMPrinter *printer = KMManager::self()->findPrinter(prname); // construct popup menu m_pop->clear(); if(printer) { m_current = printer; if(!printer->isSpecial()) { if(printer->isLocal()) m_actions->action((printer->state() == KMPrinter::Stopped ? "printer_start" : "printer_stop"))->plug(m_pop); m_actions->action((printer->acceptJobs() ? "printer_disable" : "printer_enable"))->plug(m_pop); m_pop->insertSeparator(); } if(!printer->isSoftDefault()) m_actions->action("printer_soft_default")->plug(m_pop); if(printer->isLocal() && !printer->isImplicit()) { if(!printer->isHardDefault()) m_actions->action("printer_hard_default")->plug(m_pop); m_actions->action("printer_remove")->plug(m_pop); m_pop->insertSeparator(); if(!printer->isClass(true)) { m_actions->action("printer_configure")->plug(m_pop); m_actions->action("printer_test")->plug(m_pop); m_actions->action("printer_tool")->plug(m_pop); m_pop->insertSeparator(); } } else { if(!printer->isClass(true)) { m_actions->action("printer_configure")->plug(m_pop); m_actions->action("printer_test")->plug(m_pop); } m_pop->insertSeparator(); } if(!printer->isSpecial()) { QValueList< KAction * > pactions = m_actions->actions("plugin"); for(QValueList< KAction * >::Iterator it = pactions.begin(); it != pactions.end(); ++it) (*it)->plug(m_pop); if(pactions.count() > 0) m_pop->insertSeparator(); } } else { m_actions->action("printer_add")->plug(m_pop); m_actions->action("printer_add_special")->plug(m_pop); m_pop->insertSeparator(); m_actions->action("server_restart")->plug(m_pop); m_actions->action("server_configure")->plug(m_pop); m_pop->insertSeparator(); m_actions->action("manager_configure")->plug(m_pop); m_actions->action("view_refresh")->plug(m_pop); m_pop->insertSeparator(); } m_actions->action("view_printerinfos")->plug(m_pop); m_actions->action("view_change")->plug(m_pop); m_actions->action("orientation_change")->plug(m_pop); m_actions->action("view_toolbar")->plug(m_pop); m_actions->action("view_menubar")->plug(m_pop); m_pop->insertSeparator(); m_actions->action("view_pfilter")->plug(m_pop); // pop the menu m_pop->popup(p); }