__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# -*- coding: utf-8 -*-
#
# (c) Copyright 2011-2015 HP Development Company, L.P.
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Authors: Amarnath Chitumalla
#
#global
import os
import os.path
import sys
import signal
# Local
from base.g import *
from base import utils
from prnt import cups
from base.codes import *
from base import validation
from .ui_utils import *
# Qt
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
HPLIP_INFO_SITE ="http://hplip.sourceforge.net/hplip_web.conf"
class Ui_Dialog(object):
def setupUi(self, Dialog, printerName, device_uri,Error_msg):
Dialog.setObjectName("Dialog")
Dialog.resize(700, 180)
self.printerName=printerName
self.device_uri=device_uri
self.Error_msg=Error_msg
self.gridlayout = QGridLayout(Dialog)
self.gridlayout.setObjectName("gridlayout")
self.StackedWidget = QStackedWidget(Dialog)
self.StackedWidget.setObjectName("StackedWidget")
self.page = QWidget()
self.page.setObjectName("page")
self.gridlayout1 = QGridLayout(self.page)
self.gridlayout1.setObjectName("gridlayout1")
self.label = QLabel(self.page)
font = QFont()
font.setPointSize(16)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridlayout1.addWidget(self.label, 0, 0, 1, 1)
self.line = QFrame(self.page)
self.line.setFrameShape(QFrame.HLine)
self.line.setFrameShadow(QFrame.Sunken)
self.line.setObjectName("line")
self.gridlayout1.addWidget(self.line, 1, 0, 1, 2)
self.TitleLabel = QLabel(self.page)
self.TitleLabel.setWordWrap(True)
self.TitleLabel.setObjectName("TitleLabel")
self.gridlayout1.addWidget(self.TitleLabel, 2, 0, 1, 2)
spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
spacerItem2 = QSpacerItem(200, 51, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.gridlayout1.addItem(spacerItem2, 5, 1, 1, 1)
self.StackedWidget.addWidget(self.page)
self.gridlayout.addWidget(self.StackedWidget, 0, 0, 1, 5)
self.line_2 = QFrame(Dialog)
self.line_2.setFrameShape(QFrame.HLine)
self.line_2.setFrameShadow(QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridlayout.addWidget(self.line_2, 1, 0, 1, 4)
self.NextButton = QPushButton(Dialog)
self.NextButton.setObjectName("NextButton")
self.gridlayout.addWidget(self.NextButton, 2, 3, 1, 1)
self.CancelButton = QPushButton(Dialog)
self.CancelButton.setObjectName("CancelButton")
self.gridlayout.addWidget(self.CancelButton, 2, 4, 1, 1)
self.retranslateUi(Dialog)
self.StackedWidget.setCurrentIndex(0)
QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
if self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
Dialog.setWindowTitle(QApplication.translate("Dialog", "HP SmartInstall/Mass storage Disabler", None))
else:
Dialog.setWindowTitle(QApplication.translate("Dialog", "HP Device Manager - Queues diagnose", None))
if self.Error_msg == QUEUES_PAUSED:
self.label.setText(QApplication.translate("Dialog", "Print/Fax Queue is Paused", None))
elif self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
self.label.setText(QApplication.translate("Dialog", "Smart Install Device(s) Detected", None))
else:
self.label.setText(QApplication.translate("Dialog", "Queue needs to be reconfigured", None))
if self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
text= "Smart Install is enabled in "+ self.printerName + " device(s). \nDo you want to download and disable smart install to perform device functionalities?"
elif self.Error_msg == QUEUES_INCORRECT_PPD:
text= "'"+ self.printerName + "' is using incorrect PPD file. Do you want to remove and reconfigure queue?"
elif self.Error_msg == QUEUES_PAUSED:
text="'"+ self.printerName + "' is paused. Do you want to enable queue?"
elif self.Error_msg == QUEUES_CONFIG_ERROR:
text="'"+ self.printerName + "' is not configured using hp-setup utility. Click 'Remove and Setup' to remove and reconfigure queue."
if self.Error_msg != QUEUES_MSG_SENDING:
self.TitleLabel.setText(QApplication.translate("Dialog", text, None))
# if self.Error_msg == QUEUES_PAUSED or self.Error_msg == QUEUES_INCORRECT_PPD or self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
if self.Error_msg == QUEUES_PAUSED or self.Error_msg == QUEUES_INCORRECT_PPD:
self.NextButton.setText(QApplication.translate("Dialog", "Yes", None))
self.CancelButton.setText(QApplication.translate("Dialog", "No", None))
elif self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
self.NextButton.setText(QApplication.translate("Dialog", "Download and Disable", None))
self.CancelButton.setText(QApplication.translate("Dialog", "Cancel", None))
else:
self.NextButton.setText(QApplication.translate("Dialog", "Remove and Setup", None))
self.CancelButton.setText(QApplication.translate("Dialog", "Cancel", None))
# Ui
class QueuesDiagnose(QDialog, Ui_Dialog):
def __init__(self, parent, printerName, device_uri, Error_msg,passwordObj=None):
QDialog.__init__(self, parent)
self.result = False
self.printerName = printerName
self.device_uri = device_uri
self.Error_msg = Error_msg
self.passwordObj = passwordObj
self.setupUi(self, self.printerName, self.device_uri,self.Error_msg)
self.user_settings = UserSettings()
self.user_settings.load()
self.user_settings.debug()
self.initUi()
def init(self, printerName, device_uri, Error_msg):
QDialog.__init__(self,None)
self.printerName = printerName
self.device_uri = device_uri
self.Error_msg = Error_msg
self.setupUi(self, printerName, device_uri,Error_msg)
self.user_settings = UserSettings()
self.user_settings.load()
self.user_settings.debug()
self.initUi()
def initUi(self):
# connect signals/slots
self.CancelButton.clicked.connect(self.CancelButton_clicked)
self.NextButton.clicked.connect(self.NextButton_clicked)
signal.signal(signal.SIGINT, signal.SIG_DFL)
# Application icon
self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
#
# Misc
#
def displayPage(self, page):
self.updateStepText(page)
self.StackedWidget.setCurrentIndex(page)
def CancelButton_clicked(self):
self.close()
def NextButton_clicked(self):
beginWaitCursor()
try:
if self.Error_msg == QUEUES_SMART_INSTALL_ENABLED:
self.disable_smart_install()
elif self.Error_msg == QUEUES_PAUSED:
cups.enablePrinter(self.printerName)
msg ="'"+self.printerName+"' is enabled successfully"
SuccessUI(self, self.__tr(msg))
else:
status, status_str = cups.cups_operation(cups.delPrinter, GUI_MODE, 'qt4', self, self.printerName)
if status != cups.IPP_OK:
msg="Failed to remove ' "+self.printerName+" ' queue.\nRemove using hp-toolbox..."
FailureUI(self, self.__tr(msg))
else:
msg="' "+self.printerName+" ' removed successfully.\nRe-configuring this printer by hp-setup..."
log.debug(msg)
path = utils.which('hp-setup')
if path:
log.debug("Starting hp-setup")
utils.run('hp-setup --gui')
finally:
endWaitCursor()
self.result = True
self.close()
def showMessage(self,msg):
FailureUI(self, self.__tr(msg))
def showSuccessMessage(self,msg):
SuccessUI(self, self.__tr(msg))
def __tr(self,s,c = None):
return qApp.translate("PluginDialog",s,c)
def disable_smart_install(self):
if not utils.check_network_connection():
FailureUI(self, queryString(ERROR_NO_NETWORK))
else:
sts, HPLIP_file = utils.download_from_network(HPLIP_INFO_SITE)
if sts == 0:
hplip_si_conf = ConfigBase(HPLIP_file)
source = hplip_si_conf.get("SMART_INSTALL","url","")
if not source :
FailureUI(self, queryString(ERROR_FAILED_TO_DOWNLOAD_FILE, 0, HPLIP_INFO_SITE))
return
response_file, smart_install_run = utils.download_from_network(source)
response_asc, smart_install_asc = utils.download_from_network(source+'.asc')
if response_file == 0 and response_asc == 0:
gpg_obj = validation.GPG_Verification()
digsig_sts, error_str = gpg_obj.validate(smart_install_run, smart_install_asc)
if ERROR_SUCCESS == digsig_sts:
sts, out = utils.run("sh %s"%smart_install_run)
else:
if QMessageBox.question(self, " ",
self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate this tool prior to installation.</p>Do you still want to run Smart Install disabler?" %error_str),
QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:
# Disabling without verification.
sts, out = utils.run("sh %s"%smart_install_run)
else:
if response_asc:
FailureUI(self, queryString(ERROR_FAILED_TO_DOWNLOAD_FILE, 0, source + ".asc"))
else:
FailureUI(self, queryString(ERROR_FAILED_TO_DOWNLOAD_FILE, 0, source))
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 786 B | 0644 |
|
| aboutdialog.py | File | 1.71 KB | 0644 |
|
| aboutdialog_base.py | File | 8.27 KB | 0644 |
|
| aligndialog.py | File | 31.94 KB | 0644 |
|
| aligndialog_base.py | File | 24.45 KB | 0644 |
|
| cleandialog.py | File | 12.28 KB | 0644 |
|
| cleandialog_base.py | File | 11.46 KB | 0644 |
|
| colorcaldialog.py | File | 14.36 KB | 0644 |
|
| colorcaldialog_base.py | File | 23.27 KB | 0644 |
|
| devicesetupdialog.py | File | 8.57 KB | 0644 |
|
| devicesetupdialog_base.py | File | 4.58 KB | 0644 |
|
| deviceuricombobox.py | File | 5.4 KB | 0644 |
|
| devmgr5.py | File | 84.28 KB | 0644 |
|
| devmgr5_base.py | File | 23.31 KB | 0644 |
|
| devmgr_ext.py | File | 2.51 KB | 0644 |
|
| fabgrouptable.py | File | 2.26 KB | 0644 |
|
| fabnametable.py | File | 1.2 KB | 0644 |
|
| fabwindow.py | File | 23.63 KB | 0644 |
|
| fabwindow_base.py | File | 8.7 KB | 0644 |
|
| faxsetupdialog.py | File | 14.9 KB | 0644 |
|
| faxsetupdialog_base.py | File | 5.65 KB | 0644 |
|
| filetable.py | File | 15.45 KB | 0644 |
|
| firmwaredialog.py | File | 3 KB | 0644 |
|
| firmwaredialog_base.py | File | 3.59 KB | 0644 |
|
| infodialog.py | File | 10.22 KB | 0644 |
|
| infodialog_base.py | File | 5.76 KB | 0644 |
|
| linefeedcaldialog.py | File | 3.52 KB | 0644 |
|
| linefeedcaldialog_base.py | File | 2.7 KB | 0644 |
|
| loadpapergroupbox.py | File | 3.3 KB | 0644 |
|
| makecopiesdialog.py | File | 2.55 KB | 0644 |
|
| makecopiesdialog_base.py | File | 2.42 KB | 0644 |
|
| mimetypesdialog.py | File | 1.76 KB | 0644 |
|
| mimetypesdialog_base.py | File | 4.17 KB | 0644 |
|
| nodevicesdialog.py | File | 2.26 KB | 0644 |
|
| nodevicesdialog_base.py | File | 6.05 KB | 0644 |
|
| plugindiagnose.py | File | 3.03 KB | 0644 |
|
| plugindiagnose_base.py | File | 3.02 KB | 0644 |
|
| plugindialog.py | File | 12.2 KB | 0644 |
|
| plugindialog_base.py | File | 6.7 KB | 0644 |
|
| pluginlicensedialog.py | File | 1.34 KB | 0644 |
|
| pluginlicensedialog_base.py | File | 4.81 KB | 0644 |
|
| pqdiagdialog.py | File | 3.34 KB | 0644 |
|
| pqdiagdialog_base.py | File | 2.67 KB | 0644 |
|
| printdialog.py | File | 6 KB | 0644 |
|
| printdialog_base.py | File | 5.44 KB | 0644 |
|
| printernamecombobox.py | File | 5.46 KB | 0644 |
|
| printsettings_base.py | File | 210 B | 0644 |
|
| printsettingsdialog.py | File | 3.46 KB | 0644 |
|
| printsettingsdialog_base.py | File | 2.71 KB | 0644 |
|
| printsettingstoolbox.py | File | 79.17 KB | 0644 |
|
| printtestpagedialog.py | File | 4.78 KB | 0644 |
|
| printtestpagedialog_base.py | File | 4.22 KB | 0644 |
|
| queuesconf.py | File | 10.61 KB | 0644 |
|
| readonlyradiobutton.py | File | 1.63 KB | 0644 |
|
| scandialog.py | File | 89.66 KB | 0644 |
|
| sendfaxdialog.py | File | 37.13 KB | 0644 |
|
| sendfaxdialog_base.py | File | 23.96 KB | 0644 |
|
| settingsdialog.py | File | 4.15 KB | 0644 |
|
| settingsdialog_base.py | File | 16.93 KB | 0644 |
|
| setupdialog.py | File | 57.44 KB | 0644 |
|
| setupdialog_base.py | File | 23.38 KB | 0644 |
|
| setupdialog_base5.py | File | 23.17 KB | 0644 |
|
| systemtray.py | File | 32.35 KB | 0644 |
|
| systrayframe.py | File | 8.2 KB | 0644 |
|
| systrayframe_base.py | File | 5.96 KB | 0644 |
|
| ui_utils.py | File | 20.76 KB | 0644 |
|
| upgradedialog.py | File | 4.59 KB | 0644 |
|
| upgradedialog_base.py | File | 3.38 KB | 0644 |
|
| wifisetupdialog.py | File | 35.63 KB | 0644 |
|
| wifisetupdialog_base.py | File | 39.7 KB | 0644 |
|