Example #1
0
class LayOutQC(QMainWindow):

    def __init__(self):
        super().__init__()

        self.tables = [' ']
        self.pr = ''

        # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\STYLES IN CSS////////////////////////////////
        self.style_norm = "color: #cdd6e6;  font-size: 20px; font-family: Arial; background-color: rgba(55, 55, 68, " \
                          "0.4); margin-bottom: 13px; margin-top: 13px; border: 1px solid; border-color: #516588; "
        self.style_warning = "color: #cdd6e6;  font-size: 20px; font-family: Arial; background-color: rgba(55, 55, " \
                             "68, 0.4); margin-bottom: 13px; margin-top: 13px; border: 4px solid; border-color: " \
                             "#ff0000; "
        self.style_appFont_title = "color: #8fa3c4;  font-size: 18px; font-family: Arial;  margin-left: 20px; " \
                                   "margin-right: 20px; margin-bottom: 5px; margin-top: 5px;background-color: rgba(" \
                                   "55, 55, 68, 0.4); "
        self.style_appFont = "color: #8fa3c4;  font-size: 16px; font-family: Arial;  margin-bottom: 5px; margin-top: " \
                             "5px; text-align: center; "
        self.style_OK = "color: #cdd6e6;  font-size: 22px; font-family: Arial;"
        self.style_not_OK = "color: #ff0000;  font-size: 22px; font-family: Arial;"
        self.style_header = "color: #ffff00;  font-size: 16px; font-family: Arial;"

        self.initUI()

    def initUI(self):
        self.scene = QGraphicsScene()
        self.zoom = 0.1
        self.view = Preview(self.scene, self)
        self.view.setDragMode(QGraphicsView.ScrollHandDrag)
        self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setTransform(QTransform().scale(self.zoom, self.zoom))
        self.view.setBackgroundBrush(QBrush(QColor(40, 40, 50)))
        self.setCentralWidget(self.view)
        self.LayOutLoaded = False
        # self.TT()

        openAction = QAction(QIcon('icons/open.png'), 'Открыть', self)
        openAction.setShortcut('Ctrl+O')
        openAction.setStatusTip('Открыть макет для проверки')
        openAction.triggered.connect(self.loadDialog)

        saveAction = QAction(QIcon('icons/save.png'), 'Сохранить', self)
        saveAction.setShortcut('Ctrl+S')
        saveAction.setStatusTip('Сохранить макет')
        saveAction.triggered.connect(self.saveDialog)

        closeAction = QAction(QIcon('icons/close.png'), 'Закрыть', self)
        closeAction.setShortcut('Ctrl+C')
        closeAction.setStatusTip('Закрыть макет')

        editAction = QAction(QIcon('icons/edit.png'), 'Редактировать', self)
        editAction.setShortcut('Ctrl+C')
        editAction.setStatusTip('Закрыть макет')

        mailAction = QAction(QIcon('icons/mail.png'), 'Почта', self)
        mailAction.setShortcut('Ctrl+C')
        mailAction.setStatusTip('Перейти к почте')

        exitAction = QAction(QIcon('icons/exit.png'), 'Выйти', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Закрыть приложение')
        exitAction.triggered.connect(self.close)

        self.zoomInAct = QAction("Zoom &In (25%)", self, shortcut="Ctrl+Z", enabled=True)
        self.zoomOutAct = QAction("Zoom &Out (25%)", self, shortcut="Ctrl+X", enabled=True)
        self.normalSizeAct = QAction("&Normal Size", self, shortcut="A")

        icon1 = QIcon()
        icon1.addPixmap(QPixmap('icons/auto_TT.png'))
        icon1.addPixmap(QPixmap('icons/auto_TT_dis.png'), QIcon.Disabled)
        icon1.addPixmap(QPixmap('icons/auto_TT_cl.png'), QIcon.Active)
        self.AutoSelectTT_act = QAction(icon1, 'Автоподбор ТТ', self, shortcut="Ctrl+T", enabled=False,
                                        triggered=self.Auto_SelectTT)

        icon2 = QIcon()
        icon2.addPixmap(QPixmap('icons/check.png'))
        icon2.addPixmap(QPixmap('icons/check_dis.png'), QIcon.Disabled)
        icon2.addPixmap(QPixmap('icons/check_cl.png'), QIcon.Active)
        self.CheckTT_act = QAction(icon2, 'Автоподбор ТТ', self, shortcut="Ctrl+R", enabled=False,
                                   triggered=self.CheckLayOut)

        icon3 = QIcon()
        icon3.addPixmap(QPixmap('icons/top.png'))
        icon3.addPixmap(QPixmap('icons/top_dis.png'), QIcon.Disabled)
        icon3.addPixmap(QPixmap('icons/top_cl.png'), QIcon.Active)
        self.TopZone_act = QAction(icon3, 'Автоподбор ТТ', self, shortcut="Ctrl+Y", enabled=False,
                                   triggered=self.ShowVipZone)

        self.icon4 = QIcon()
        self.icon4.addPixmap(QPixmap('icons/show_input.png'))
        self.icon4.addPixmap(QPixmap('icons/show_input_dis.png'), QIcon.Disabled)
        self.icon4.addPixmap(QPixmap('icons/show_input_cl.png'), QIcon.Active)
        self.Show_input_act = QAction(self.icon4, 'Автоподбор ТТ', self, shortcut="Ctrl+I", enabled=False,
                                      triggered=self.ShowInputPrw)

        self.statusBar()

        but_tool = QPushButton()
        but_tool.setIcon(QIcon('icons/close.png'))
        but_tool.setIconSize(QSize(40, 40))

        self.dism_iconX = QLabel()
        self.dism_iconX.setPixmap(QPixmap('icons/dism_x.png'))
        self.dism_iconX.setToolTip('Ширина макета в мм')
        self.dismX = QLabel()
        self.dismX.setText('      ')
        self.dismX.setStyleSheet(self.style_norm)

        self.dism_iconY = QLabel()
        self.dism_iconY.setPixmap(QPixmap('icons/dism_y.png'))
        self.dism_iconY.setToolTip('Высота макета в мм')
        self.dismY = QLabel()
        self.dismY.setText('      ')
        self.dismY.setStyleSheet(self.style_norm)

        self.res_icon = QLabel()
        self.res_icon.setPixmap(QPixmap('icons/dpi.png'))
        self.res_icon.setToolTip(
            'Разрешение макета в dpi.\n Если исходник макета в ppcm, макет будет отконвертирован в dpi автоматически')
        self.resToolbar = QLabel()
        self.resToolbar.setText('      ')
        self.resToolbar.setStyleSheet(self.style_norm)

        self.mode_icon = QLabel()
        self.mode_icon.setPixmap(QPixmap('icons/mode.png'))
        self.mode_icon.setToolTip('Цветовой режим макета')
        self.modeToolbar = QLabel()
        self.modeToolbar.setText('      ')
        self.modeToolbar.setStyleSheet(self.style_norm)

        self.icc_icon = QLabel()
        self.icc_icon.setPixmap(QPixmap('icons/icc.png'))
        self.icc_icon.setToolTip('Цветовой профиль макета')
        self.iccToolbar = QLabel()
        self.iccToolbar.setText('      ')
        self.iccToolbar.setStyleSheet(self.style_norm)

        self.comboLabel_title = QLabel('ТЕХ ТРЕБОВАНИЯ')
        self.comboLabel_title.setStyleSheet(self.style_appFont_title)
        self.comboLabel_tables = QLabel('Раздел')
        self.comboLabel_tables.setStyleSheet(self.style_appFont)
        self.comboTT_tables = QComboBox()
        self.comboTT_tables.addItems(self.tables)
        self.comboTT_tables.activated[str].connect(self.tables_Activated)
        self.comboLabel2 = QLabel('Локация')
        self.comboLabel2.setStyleSheet(self.style_appFont)
        self.comboTT_location = QComboBox()
        self.comboTT_location.addItems([' '])
        self.comboTT_location.activated[str].connect(self.location_Activated)
        self.comboLabel3 = QLabel('Название ТТ')
        self.comboLabel3.setStyleSheet(self.style_appFont)
        self.comboTT_name = QComboBox()
        self.comboTT_name.addItems([' '])
        self.comboTT_name.activated[str].connect(self.name_Activated)
        self.comboLabelCode = QLabel('Код ТТ')
        self.comboLabelCode.setStyleSheet(self.style_appFont)
        self.comboTT_code = QComboBox()
        self.comboTT_code.addItems([' '])
        self.comboTT_code.activated[str].connect(self.code_Activated)
        self.TT_dismentions = QLabel('')
        self.TT_dismentions.setStyleSheet(self.style_appFont)

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('Файл')
        fileMenu.addAction(openAction)
        fileMenu.addAction(saveAction)
        fileMenu.addAction(editAction)
        fileMenu.addAction(closeAction)
        fileMenu.addAction(exitAction)

        checkMenu = menubar.addMenu('Проверить')
        editMenu = menubar.addMenu('Редактировать')
        mailMenu = menubar.addMenu('Почта')
        mailMenu.addAction(mailAction)
        viewMenu = menubar.addMenu('Вид')
        viewMenu.addAction(self.zoomInAct)
        viewMenu.addAction(self.zoomOutAct)

        toolbar = self.addToolBar('TopToolbar')
        toolbar.setIconSize(QSize(40, 40))
        toolbar.addAction(openAction)
        toolbar.addAction(saveAction)
        toolbar.addAction(closeAction)
        toolbar.addAction(editAction)
        toolbar.addAction(mailAction)
        toolbar.addAction(exitAction)
        toolbar.addSeparator()
        toolbar.addWidget(self.dism_iconX)
        toolbar.addWidget(self.dismX)
        toolbar.addWidget(self.dism_iconY)
        toolbar.addWidget(self.dismY)
        toolbar.addWidget(self.res_icon)
        toolbar.addWidget(self.resToolbar)
        toolbar.addWidget(self.mode_icon)
        toolbar.addWidget(self.modeToolbar)
        toolbar.addWidget(self.icc_icon)
        toolbar.addWidget(self.iccToolbar)

        self.toolbarTT = self.addToolBar('TT_Toolbar')
        self.addToolBar(Qt.RightToolBarArea, self.toolbarTT)
        # self.toolbarTT.setStyleSheet(self.style_appFont)
        self.toolbarTT.setIconSize(QSize(200, 40))
        self.toolbarTT.addWidget(self.comboLabel_title)
        self.toolbarTT.addWidget(self.comboLabel_tables)
        self.toolbarTT.addWidget(self.comboTT_tables)
        self.toolbarTT.addWidget(self.comboLabel2)
        self.toolbarTT.addWidget(self.comboTT_location)
        self.toolbarTT.addWidget(self.comboLabel3)
        self.toolbarTT.addWidget(self.comboTT_name)
        self.toolbarTT.addWidget(self.comboLabelCode)
        self.toolbarTT.addWidget(self.comboTT_code)
        self.toolbarTT.addWidget(self.TT_dismentions)
        self.toolbarTT.addAction(self.AutoSelectTT_act)
        self.toolbarTT.addAction(self.CheckTT_act)
        self.toolbarTT.addAction(self.TopZone_act)
        self.toolbarTT.addAction(self.Show_input_act)

        self.desktop = QApplication.desktop()
        self.setGeometry(0, 0, self.desktop.width() - 5, self.desktop.height() - 80)
        self.setWindowIcon(QIcon("icons/icon.png"))
        self.setWindowTitle('LayOutQC')
        self.show()

    def zoomIn(self):
        if self.zoom <=30:
            self.zoom *= 1.05
            self.updateView()

    def zoomOut(self):
        if self.zoom >= 0.05:
            self.zoom /= 1.05
            self.updateView()

    def updateView(self):
        self.view.setTransform(QTransform().scale(self.zoom, self.zoom))
    # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\END UI\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    def loadDialog(self):
        home_folder = os.listdir('D:/')
        if not 'LayOutQC' in home_folder:
            os.mkdir('D:/LayOutQC/')
        if not '--INCOMING--' in home_folder:
            os.mkdir('D:/--INCOMING--/')
        self.load_name = QFileDialog.getOpenFileName(self, 'Open file', 'D:/LayOutQC/', "TIF files (*.tif)")[0]
        self.FileName = self.load_name.split("/")[-1]
        self.PathName = self.load_name[:len(self.load_name) - len(self.FileName)]
        if self.FileName:
            self.im = ImagePil.open(self.load_name)
            self.LayOutLoaded = True
            self.prw_name = 'temp/input_temp.png'
            self.comboTT_tables.setCurrentText(' ')
            self.comboTT_location.clear()
            self.comboTT_location.addItems([' '])
            self.comboTT_name.clear()
            self.comboTT_name.addItems([' '])
            self.comboTT_code.clear()
            self.comboTT_code.addItems([' '])
            self.TT_dismentions.setText('')
            self.CheckTT_act.setEnabled(False)
            self.Show_input_act.setIcon(self.icon4)
            self.Show_input_act.setEnabled(False)
            self.TopZone_act.setEnabled(False)
            files = glob.glob('temp/*')
            for f in files:
                os.remove(f)

            # Runing Layout Module
            self.layout = Layout(self.im)
            self.layout._DEBAG(LayoutQC_DEBAG)

            #  set Layout info into Toolbar
            self.modeToolbar.setStyleSheet(self.layout.layout_mode_status())
            self.iccToolbar.setStyleSheet(self.layout.layout_profile_status())

            self.modeToolbar.setText(self.layout.image.mode)
            self.resToolbar.setText(str(self.layout.resolution))
            self.dismX.setText(str(self.layout.width_layout) + 'mm')
            self.dismY.setText(str(self.layout.height_layout) + 'mm')
            self.iccToolbar.setText(self.layout.layout_profile_name())

            # make $ showing preview
            self.layout.make_prw(self.prw_name, LayoutQC_DEBAG=LayoutQC_DEBAG)


            # self.im222=QPixmap(self.prw_name)


            # self.scaleFactor = 1.0
            # show_x = self.desktop.width() - 270
            # show_y = show_x / self.im.size[0] * self.im.size[1]
            # if show_y > self.desktop.height() - 200:
            #     show_y = self.desktop.height() - 200
            #     show_x = show_y / self.im.size[1] * self.im.size[0]

            width_central_widget = self.desktop.width() - 222
            height_central_widget = self.desktop.width() - 178
            if self.im.size[0] > self.im.size[1]:
                self.zoom = width_central_widget / self.im.size[0]
            else:
                self.zoom = height_central_widget / self.im.size[1]

            self.scene.clear()
            self.scene.addPixmap(QPixmap(self.prw_name))
            self.updateView()

            print(self.desktop.width())
            print(self.desktop.height())


            self.AutoSelectTT_act.setEnabled(True)
            self.tables = self.layout.layout_db_tabeles
            self.comboTT_tables.addItems(self.tables)
            self.name_Layout()

    def name_Layout(self):
        self.completer_list = []
        self.name_and_folder = self.FileName.split('.')[0]
        self.suget = ''
        for n in os.listdir('D:/LayOutQC/'):
            if not os.path.isfile('D:/LayOutQC/' + n):
                self.completer_list.append(n)
        self.popup(700, 50, 'Название макета')
        grid = QGridLayout()
        klientTitle = QLabel('Клиент')
        klientTitle.setStyleSheet(style_title)
        sugetTitle = QLabel('Сюжет')
        sugetTitle.setStyleSheet(style_title)
        klientInput = QLineEdit(self.name_and_folder)
        completer = QCompleter(self.completer_list)
        completer.setCaseSensitivity(Qt.CaseInsensitive)
        klientInput.setCompleter(completer)
        klientInput.textChanged[str].connect(self.klient_name)
        klientInput.setStyleSheet(style_OK)
        sugetInput = QLineEdit()
        sugetInput.textChanged[str].connect(self.suget_name)
        sugetInput.setStyleSheet(style_OK)
        grid.addWidget(klientTitle, 0, 0)
        grid.addWidget(sugetTitle, 1, 0)
        grid.addWidget(klientInput, 0, 1)
        grid.addWidget(sugetInput, 1, 1)
        self.layoutPop_old.insertLayout(0, grid)
        self.add_butOK(connect=self.make_Folder, text='Закрыть')
        self.add_butClose()
        self.path = self.PathName
        self.popUpModal.show()

    def klient_name(self, name_):
        self.name_and_folder = name_

    def suget_name(self, name_):
        self.suget = name_



    def make_Folder(self):
        # if self.name_and_folder != None or ' ':
        #     self.name_Layout()
        self.layout.makeFolder(self.name_and_folder, self.suget)




    def saveDialog(self):
        self.klient_suget = self.name_and_folder + '_' + self.suget
        self.signature = self.layout.makeSignature()
        self.comment = self.layout.makeComment()
        self.popup(900, 50, "Код ТТ")
        grid = QGridLayout()
        klientTitle = QLabel('Название')
        klientTitle.setStyleSheet(style_title)
        sugetTitle = QLabel('Подпись')
        sugetTitle.setStyleSheet(style_title)
        comentTitle = QLabel('Коментарий')
        comentTitle.setStyleSheet(style_title)
        nameInput = QLineEdit(self.klient_suget)
        nameInput.setStyleSheet(style_OK)
        nameInput.textChanged[str].connect(self.ks)

        signatureInput = QLineEdit(self.signature)
        signatureInput.setStyleSheet(style_OK)
        signatureInput.textChanged[str].connect(self.sig)

        commentInput = QLineEdit( self.comment)
        commentInput.setStyleSheet(style_OK)
        commentInput.textChanged[str].connect(self.com)

        person = QLabel('FRA')
        person.setStyleSheet(style_title)
        grid.addWidget(klientTitle, 0, 0)
        grid.addWidget(sugetTitle, 0, 1)
        grid.addWidget(comentTitle, 0, 2)
        grid.addWidget(nameInput, 1, 0)
        grid.addWidget(signatureInput, 1, 1)
        grid.addWidget(commentInput, 1, 2)
        grid.addWidget(person, 1, 3)
        self.layoutPop_old.insertLayout(0, grid)

        self.add_butOK(connect=self.save_)
        self.add_butClose()
        self.popUpModal.show()

    def ks(self, name_):
        self.klient_suget = name_

    def sig(self, name_):
        self.signature = name_

    def com(self, name_):
        self.comment = name_
    def save_(self):
        self.layout.saveLayout(self.klient_suget + self.signature + self.comment,  self.load_name, self.PathName)

    # ====================================================================================


        # ======================================  TT DATABASE  ==============================================

        # |||||||||||||||||||||||||||||||||||||||||||||||QUERY FOR A LOCATION||||||||||||||||||||||||||||||||||

    def tables_Activated(self, text_tables):
        self.comboTT_location.clear()
        self.comboTT_location.addItems([' '])
        self.comboTT_name.clear()
        self.comboTT_name.addItems([' '])
        self.comboTT_code.clear()
        self.comboTT_code.addItems([' '])
        self.TT_dismentions.setText('')
        locations = self.layout.table_Activated(text_tables)
        self.comboTT_location.addItems(locations)
        self.Show_input_act.setEnabled(False)

    # ||||||||||||||||||||||||||||||||||||||||||||||||||QUERY FOR A NAME TT|||||||||||||||||||||||||||||||||||||||

    def location_Activated(self, text_location):
        self.comboTT_name.clear()
        self.comboTT_name.addItems([' '])
        self.comboTT_code.clear()
        self.comboTT_code.addItems([' '])
        self.TT_dismentions.setText('')
        name = self.layout.location_Activated(text_location)
        self.comboTT_name.addItems(name)
        self.Show_input_act.setEnabled(False)

    # |||||||||||||||||||||||||||||||||||||QUERY FOR A CODE TT|||||||||||||||||||||||||||||||||||||||||||||
    def name_Activated(self, text_name):
        self.comboTT_code.clear()
        self.comboTT_code.addItems([' '])
        self.TT_dismentions.setText('')
        self.codes = self.layout.name_Activated(text_name)
        self.comboTT_code.addItems(self.codes)
        if text_name != ' ':
            if self.LayOutLoaded:
                self.TT_dismentions.setText(self.layout.layout_db.tt_value())
                self.CheckTT_act.setEnabled(True)
                # self.TopZone_act.setEnabled(True)
        self.Show_input_act.setEnabled(False)
        if LayoutQC_DEBAG:
            print('Name ', text_name, ' activated')

    def code_Activated(self, text_code):
        if text_code == 'выбрать несколько конструкций':
            self.PopUpCode()
        if LayoutQC_DEBAG:
            print('Code ', text_code, ' activated')
        self.Show_input_act.setEnabled(False)

    def ButtonClicked(self):
        checked_list = []
        for i in range(self.table_autoselectedTT.rowCount()):
            if self.table_autoselectedTT.cellWidget(i, 0).findChild(type(QCheckBox())).isChecked():
                checked_list.append(self.table_autoselectedTT.item(i, 1).text())
        ch = [str(checked_list).replace("', '", ",")[2:-2]]
        self.comboTT_code.clear()
        self.comboTT_code.addItems(ch + ['выбрать несколько конструкций'] + self.codes[:-1])
        self.code_Activated(ch[0])

    # ||||||||||||||||||||||||||||||||||||||||||||||||||||FUNC TO SHOW POPUP CODE|||||||||||||||||||||||||||||||
    def PopUpCode(self):
        self.popup(200, 400, "Код ТТ")
        self.table_autoselectedTT = QTableWidget(len(self.codes[:-1]), 2, self)
        self.table_autoselectedTT.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_autoselectedTT.setStyleSheet(
            "background-color: rgba(55, 55, 68, 0.1); color: #8fa3c4;  font-size: 16px; font-family: Arial;  "
            "margin-bottom: 5px; margin-top: 5px; text-align: center;")
        self.table_autoselectedTT.horizontalHeader().hide()
        self.table_autoselectedTT.verticalHeader().hide()
        self.table_autoselectedTT.setShowGrid(False)
        row = 0
        for name_row in self.codes[:-1]:
            widget = QWidget()
            checkbox = QCheckBox()
            checkbox.setCheckState(Qt.Unchecked)
            layoutH = QHBoxLayout(widget)
            layoutH.addWidget(checkbox)
            layoutH.setAlignment(Qt.AlignCenter)
            layoutH.setContentsMargins(0, 0, 0, 0)
            self.table_autoselectedTT.setCellWidget(row, 0, widget)
            self.table_autoselectedTT.setItem(row, 1, QTableWidgetItem(name_row))
            row += 1
        self.layoutPop_old.insertWidget(0, self.table_autoselectedTT)
        self.add_butOK(connect=self.ButtonClicked)
        self.add_butClose()
        self.popUpModal.show()

    def popup(self, x_w, y_h, name_pop):
        self.popUpModal = QWidget(ex, Qt.Tool)
        self.popUpModal.setWindowTitle(name_pop)
        self.popUpModal.setGeometry(self.desktop.width() / 2 - x_w / 2, self.desktop.height() / 2 - y_h / 2, x_w, y_h)
        self.popUpModal.setWindowModality(Qt.WindowModal)
        self.popUpModal.setAttribute(Qt.WA_DeleteOnClose, True)
        palle = self.popUpModal.palette()
        palle.setBrush(QPalette.Window, QBrush(QPixmap("bg_workspace_tools.png")))
        self.popUpModal.setPalette(palle)
        self.layoutPop_old = QVBoxLayout(self)
        self.layout_but = QHBoxLayout()
        self.layoutPop_old.addLayout(self.layout_but)
        self.popUpModal.setLayout(self.layoutPop_old)

    def Auto_SelectTT(self):
        self.autoselect_result = self.layout.Auto_SelectTT() \
                                 + [
                                     '---------------------------------------Похожие ТТ---------------------------------------'] \
                                 + self.layout.Auto_SelectTT_warning()

        self.popup(800, 400, "Выберите ТТ")
        self.table_autoselectedTT = QTableWidget(len(self.autoselect_result), 1, self)
        self.table_autoselectedTT.setStyleSheet(
            "background-color: rgba(55, 55, 68, 0.1); color: #8fa3c4;  font-size: 16px; "
            "font-family: Arial;  text-align: center;")
        self.table_autoselectedTT.setShowGrid(False)
        self.table_autoselectedTT.verticalHeader().hide()
        self.table_autoselectedTT.horizontalHeader().hide()
        self.table_autoselectedTT.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        row = 0
        for name_row in self.autoselect_result:
            if name_row == '---------------------------------------Похожие ТТ---------------------------------------':
                m = str(name_row)
            else:
                m = str(name_row).replace("', '", ", ")[2:-2]
            self.table_autoselectedTT.setItem(row, 0, QTableWidgetItem(m))
            row += 1
        header_no_TT = QLabel('Нет подходящих ТТ').setStyleSheet(self.style_not_OK)
        if self.autoselect_result:
            self.layoutPop_old.insertWidget(0, self.table_autoselectedTT)
        else:
            self.layoutPop_old.insertWidget(0, header_no_TT, alignment=Qt.AlignCenter)
        self.table_autoselectedTT.clicked.connect(self.AutoSelectChecked)
        self.add_butClose()
        self.popUpModal.show()

    def AutoSelectChecked(self):
        choosed_TT = []
        for n in self.table_autoselectedTT.selectedItems():
            choosed_TT = self.autoselect_result[n.row()]
        if choosed_TT != '---------------------------------------Похожие ТТ---------------------------------------':
            text_tables = choosed_TT[0]
            self.comboTT_tables.setCurrentText(text_tables)
            self.tables_Activated(text_tables)
            text_location = choosed_TT[1]
            self.comboTT_location.setCurrentText(text_location)
            self.location_Activated(text_location)
            text_name = choosed_TT[2]
            self.comboTT_name.setCurrentText(text_name)
            self.name_Activated(text_name)
            self.comboTT_code.setCurrentText(choosed_TT[3])
            self.popUpModal.close()
            self.CheckTT_act.setEnabled(True)
            self.Show_input_act.setEnabled(False)

    # ----------------------------------------------CHECKING!!!!!!!!!!!! _______
    def CheckLayOut(self):
        self.fin_temp = 'temp/out.tif'
        self.layout.CheckLayOut_func()

        checkpop = []
        CheckResult = QLabel(self.layout.CheckResult)
        CheckResult.setStyleSheet(self.style_OK)
        self.dismX.setStyleSheet(self.style_norm)
        self.dismY.setStyleSheet(self.style_norm)
        self.dismX.setText(str(self.layout.width_layout) + 'mm')
        self.dismY.setText(str(self.layout.height_layout) + 'mm')
        checkpop.append(CheckResult)
        if self.layout.CheckResult != 'Ширина и высота по ТТ ОК':
            CheckResult.setStyleSheet(self.style_not_OK)
            Check_edit_dimentions = QPushButton('Подогнать под размеры в ТТ')
            Check_edit_dimentions.clicked.connect(self.fit_dimensions)
            checkpop.append(Check_edit_dimentions)
            if self.layout.CheckResult == 'Ширина не по ТТ, а высота по ТТ ОК':
                self.dismX.setStyleSheet(self.style_warning)
            elif self.layout.CheckResult == 'Ширина по ТТ ОК, а высота не по ТТ':
                self.dismY.setStyleSheet(self.style_warning)
            else:
                self.dismX.setStyleSheet(self.style_warning)
                self.dismY.setStyleSheet(self.style_warning)

        CheckResult_DPI = QLabel(self.layout.CheckResult_DPI)
        CheckResult_DPI.setStyleSheet(self.style_OK)
        checkpop.append(CheckResult_DPI)
        if self.layout.CheckResult_DPI != 'Разрешение по ТТ ОК':
            CheckResult_DPI.setStyleSheet(self.style_not_OK)
            self.resToolbar.setStyleSheet(self.style_warning)

        CheckResult_mode = QLabel(self.layout.CheckResult_mode)
        CheckResult_mode.setStyleSheet(self.style_OK)
        checkpop.append(CheckResult_mode)
        self.modeToolbar.setText(self.layout.image.mode)
        self.modeToolbar.setStyleSheet(self.style_norm)
        if self.layout.CheckResult_mode != 'Цветовой режим CMYK OK':
            CheckResult_mode.setStyleSheet(self.style_not_OK)
            Check_edit_mode = QPushButton('Конвертировать в CMYK')
            Check_edit_mode.clicked.connect(self.convert_Mode)
            checkpop.append(Check_edit_mode)
            self.modeToolbar.setStyleSheet(self.style_warning)

        CheckResult_ICC = QLabel(self.layout.CheckResult_ICC)
        CheckResult_ICC.setStyleSheet(self.style_OK)
        checkpop.append(CheckResult_ICC)
        self.iccToolbar.setText(self.layout.layout_profile_name())
        self.iccToolbar.setStyleSheet(self.layout.layout_profile_status())

        if self.layout.CheckResult_ICC != 'Цветовой профиль Euroscale Coated v2 ОК':
            CheckResult_ICC.setStyleSheet(self.style_not_OK)
            if self.layout.CheckResult_mode == 'Цветовой режим CMYK OK' \
                    and CheckResult_ICC != 'Цветовой профиль Euroscale Coated v2 ОК':
                Check_edit_ICC_Euro = QPushButton('Изменить цветовой профиль на Euroscale Coated v2')
                Check_edit_ICC_Euro.clicked.connect(self.assign_Icc)
                checkpop.append(Check_edit_ICC_Euro)

            self.iccToolbar.setStyleSheet(self.style_warning)
        Check_edit_ICC = QPushButton('Выбрать другой цветовой профиль')
        Check_edit_ICC.clicked.connect(self.assign_AnotherICC)
        checkpop.append(Check_edit_ICC)

        self.popup(500, 230, "Результат проверки")
        n = 0
        for v in checkpop:
            self.layoutPop_old.insertWidget(n, v)
            n += 1
        if self.layout.CheckResult == 'Ширина и высота по ТТ ОК' and self.layout.image.mode == 'CMYK':
            self.add_butOK(self.ShowVipZone, 'Показать зону значимых элементов')
            self.TopZone_act.setEnabled(True)
        self.add_butClose()
        self.popUpModal.show()
        self.prw_name = self.layout.prw_name
        self.scene.clear()
        self.scene.addPixmap(QPixmap(self.prw_name))
        self.Show_input_act.setEnabled(True)

    def fit_dimensions(self):
        self.popUpModal.close()
        self.layout.FitDimensions()
        self.CheckLayOut()

    def convert_Mode(self):
        self.popUpModal.close()
        self.layout.ConvertMode_and_Icc()
        self.CheckLayOut()

    def assign_Icc(self):
        self.popUpModal.close()
        self.layout.Assign_Icc()
        self.CheckLayOut()

    def assign_AnotherICC(self):
        self.popUpModal.close()
        self.popup(500, 230, "Результат проверки")
        listdir = [f for f in os.listdir('icc/CMYK/')]
        n = 0
        for v in listdir:
            icc_but = QPushButton(v.split('.')[0])
            icc_but.setStyleSheet(style_OK)
            icc_but.clicked.connect(partial(self.Selected_ICC, v))
            self.layoutPop_old.insertWidget(n, icc_but)
            n += 1
        self.add_butClose()
        self.popUpModal.show()

    def Selected_ICC(self, icc):
        self.popUpModal.close()
        profile = ImageCms.getOpenProfile('icc/CMYK/' + icc)
        self.layout.Assign_Icc(profile)
        self.CheckLayOut()

    def ShowInputPrw(self):
        if self.prw_name == 'temp/convert_ICC_temp.png':
            self.prw_name = 'temp/input_temp.png'
            self.Show_input_act.setIcon(QIcon('icons/show_input_cl.png'))
            self.TopZone_act.setEnabled(False)
            self.CheckTT_act.setEnabled(False)
            self.AutoSelectTT_act.setEnabled(False)
        else:
            self.prw_name = 'temp/convert_ICC_temp.png'
            self.Show_input_act.setIcon(QIcon('icons/show_input.png'))
            self.TopZone_act.setEnabled(True)
            self.CheckTT_act.setEnabled(True)
            self.AutoSelectTT_act.setEnabled(True)
        self.scene.clear()
        self.scene.addPixmap(QPixmap(self.prw_name))

    def ShowVipZone(self):
        if not os.path.exists('temp/vip_temp.png'):
            self.layout.make_VIP_zone()
        if self.prw_name == 'temp/convert_ICC_temp.png' or self.prw_name == 'temp/input_temp.png':
            self.pr = self.prw_name
            self.prw_name = 'temp/vip_temp.png'
            self.CheckTT_act.setEnabled(False)
            self.AutoSelectTT_act.setEnabled(False)
            self.Show_input_act.setEnabled(False)
        elif self.prw_name == 'temp/vip_temp.png':
            self.prw_name = self.pr
            self.CheckTT_act.setEnabled(True)
            self.AutoSelectTT_act.setEnabled(True)
            self.Show_input_act.setEnabled(True)
        self.scene.clear()
        self.scene.addPixmap(QPixmap(self.prw_name))

    def add_butClose(self):
        self.butClose = QPushButton('Отмена')
        self.butClose.clicked.connect(self.popUpModal.close)
        self.layout_but.addWidget(self.butClose)

    def add_butOK(self, connect=None, text='OK'):
        self.butOK = QPushButton(text)
        if connect:
            self.butOK.clicked.connect(connect)
        self.butOK.clicked.connect(self.popUpModal.close)
        self.layout_but.addWidget(self.butOK)

    def CheckResult(self):
        print('checked')