2947 lines
100 KiB
C++
2947 lines
100 KiB
C++
#include "colorordersetwidget.h"
|
||
#include "ui_colorordersetwidget.h"
|
||
|
||
ColorOrderSetWidget::ColorOrderSetWidget(QWidget *parent) :
|
||
QWidget(parent),
|
||
ui(new Ui::ColorOrderSetWidget),
|
||
m_itemPerPage(72),
|
||
m_pEmbNeedleBtn(NULL),
|
||
m_pColorBtn(NULL)
|
||
{
|
||
ui->setupUi(this);
|
||
setWindowFlags (Qt::Window | Qt::FramelessWindowHint);
|
||
setWindowModality(Qt::ApplicationModal);
|
||
|
||
m_mousePressX = 0;
|
||
m_mousePressY = 0;
|
||
m_mouseReleaseX = 0;
|
||
m_mouseReleaseY = 0;
|
||
|
||
m_greyBeginStep = 0;//灰色起始
|
||
m_greyEndStep = 0; //灰色结束
|
||
|
||
initWidget();
|
||
initControl();
|
||
initNeedleBar();
|
||
refreshLockBtn();
|
||
initArabControlPos();
|
||
}
|
||
|
||
ColorOrderSetWidget::~ColorOrderSetWidget()
|
||
{
|
||
if(m_pCurEmbData != NULL)
|
||
{
|
||
delete m_pCurEmbData;
|
||
}
|
||
delete ui;
|
||
}
|
||
|
||
void ColorOrderSetWidget::initWidget()
|
||
{
|
||
m_pCurEmbData = new EmbData();
|
||
m_pCurEmbData->initColor(g_pSettings->getColorRgbArray().size(),(QRgb*)g_pSettings->getColorRgbArray().data());
|
||
|
||
int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能
|
||
if(coil == 1)
|
||
{
|
||
ui->buttonExplanation->setVisible(true);//缠绕的解释说明
|
||
}
|
||
else
|
||
{
|
||
ui->buttonExplanation->setVisible(false);
|
||
}
|
||
int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能
|
||
if(laser == 1)
|
||
{
|
||
ui->buttonColorLaser->setVisible(true);//设置激光的快捷色序
|
||
}
|
||
else
|
||
{
|
||
ui->buttonColorLaser->setVisible(false);
|
||
}
|
||
|
||
int combineEmb = g_pSettings->readFromInHMIiFile("HMI/combineEmb").toInt();//是否有双头组合绣功能
|
||
//是否显示双头组合按钮
|
||
if(combineEmb == 1)
|
||
{
|
||
ui->buttonCombineEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonCombineEmb->setVisible(false);
|
||
}
|
||
int threeCombineEmb = g_pSettings->readFromInHMIiFile("HMI/threeCombineEmb").toInt();//是否有三头组合绣功能
|
||
//是否显示双头组合按钮
|
||
if(threeCombineEmb == 1)
|
||
{
|
||
ui->buttonThreeCombineEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonThreeCombineEmb->setVisible(false);
|
||
}
|
||
|
||
int headEmb = g_pSettings->readFromInHMIiFile("HMI/headEmb").toInt();//是否有隔头绣功能
|
||
//是否显示隔头绣按钮
|
||
if(headEmb == 1)
|
||
{
|
||
ui->buttonHeadEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonHeadEmb->setVisible(false);
|
||
}
|
||
|
||
m_colorBeginStepCtrl = 0;
|
||
m_colorEndStepCtrl = 0;
|
||
m_curSelectColor = -1;
|
||
m_curPages = 1;
|
||
m_pageNums = 1;
|
||
m_combineEmb = 1;//双头组合绣
|
||
m_threeCombineEmb = 1;//三头组合绣
|
||
m_combineEmbFirst = 1;
|
||
m_threeCombineEmbFirst = 1;
|
||
m_colorOrderLimitFlag = 0;
|
||
m_refreshColorOrder = 1;//是否刷新花版色序的标志
|
||
memset(m_headBuf, 0, sizeof(m_headBuf));
|
||
m_colorSetBtnLockFlag = 1;//锁住
|
||
m_setType = TYPE_COLORSET;
|
||
m_fileType = FILE_TYPE_DST;
|
||
|
||
m_pColorBuf = (QRgb *)(g_pSettings->getColorRgbArray().data());
|
||
m_buttonStyle1 = "QPushButton{outline: none;border:0px solid rgb(0,0,0);border-style:inset;border-radius:5px;";
|
||
m_buttonStyle2 = "QPushButton:checked{outline: none;border:3px groove rgb(80,80,80);}";
|
||
|
||
m_buttonColorOrderList.clear();//色序按钮
|
||
for(int i = 0; i < m_itemPerPage; i++)
|
||
{
|
||
MyButton *buttonColorOrder = new MyButton(ui->frameColorOrder);
|
||
m_buttonColorOrderList.append(buttonColorOrder);
|
||
connect(buttonColorOrder,
|
||
SIGNAL(clicked()),
|
||
this,
|
||
SLOT(colorOrderBtnClick())
|
||
);
|
||
}
|
||
|
||
m_buttonEmbNeedleList.clear();//针杆按钮
|
||
for(int i = 0; i < 32; i++)
|
||
{
|
||
QPushButton *buttonEmbNeedle = new QPushButton(ui->frameColorOrder);
|
||
m_buttonEmbNeedleList.append(buttonEmbNeedle);
|
||
connect(buttonEmbNeedle,
|
||
SIGNAL(pressed()),
|
||
this,
|
||
SLOT(embNeedleBtnPressed()));
|
||
|
||
connect(buttonEmbNeedle,
|
||
SIGNAL(released()),
|
||
this,
|
||
SLOT(embNeedleBtnReleased()));
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::initControl()
|
||
{
|
||
//根据不同分辨率设置控件的位置和尺寸
|
||
switch (g_emResolut)
|
||
{
|
||
case resolution1910:
|
||
initResolution1910();
|
||
break;
|
||
case resolution1006:
|
||
initResolution1006();
|
||
break;
|
||
default:
|
||
this->resize(1920,1080);
|
||
break;
|
||
}
|
||
int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能
|
||
int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能
|
||
int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能
|
||
//右上方色序锁住按钮是否可见
|
||
if((g_emMacType == MACHINE_EMB && towel ==1)|| //绣花机带毛巾
|
||
(g_emMacType == MACHINE_EMB && coil ==1)|| //绣花机带缠绕
|
||
(g_emMacType == MACHINE_EMB && laser ==1) //绣花机带激光
|
||
)
|
||
{
|
||
ui->buttonColorSetLock->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonColorSetLock->setVisible(false);
|
||
}
|
||
|
||
initControlStyle();//初始化窗体控件样式
|
||
}
|
||
|
||
void ColorOrderSetWidget::initResolution1910()
|
||
{
|
||
this->resize(1920,1080);
|
||
ui->frameBack->setGeometry(0,0,1920,1080);
|
||
|
||
ui->buttonTypeLogo->setGeometry(128,66,78,78);
|
||
ui->labelMainTitle->setGeometry(226,60,400,44);
|
||
ui->labelSubTitle->setGeometry(302,112,1000,36);
|
||
|
||
ui->frameRightUp->setGeometry(1130,92,768,72);
|
||
ui->buttonColorOrderClear->setGeometry(692,0,66,66);
|
||
ui->buttonColorOrderCycle->setGeometry(604,0,66,66);
|
||
ui->buttonColorSetLock->setGeometry(516,0,66,66);
|
||
ui->buttonHeadEmb->setGeometry(428,0,66,66);
|
||
ui->buttonCombineEmb->setGeometry(340,0,66,66);
|
||
ui->buttonThreeCombineEmb->setGeometry(252,0,66,66);
|
||
ui->buttonExplanation->setGeometry(164,0,66,66);
|
||
ui->buttonColorLaser->setGeometry(76,0,66,66);
|
||
ui ->buttonRefreshColorOrder->setGeometry(0,0,66,66);
|
||
|
||
ui->frameColorOrder->setGeometry(84,220,1344,704);
|
||
ui->buttonNeedle->setGeometry(0,0,200,52);
|
||
|
||
QRect rectImage(0,0,88,52);
|
||
QRect rectName(38,47,44,28);
|
||
QRect rectValue(0,0,88,52);
|
||
for(int i = 0; i < 6; i++)
|
||
{
|
||
int num = m_buttonColorOrderList.size()/6;
|
||
for(int j = 0; j < num; j++)
|
||
{
|
||
m_buttonColorOrderList[i*num+j]->setGeometry(j*114,220+i*82,88,80);
|
||
m_buttonColorOrderList[i*num+j]->initUpImageDownName(rectImage,rectName);
|
||
m_buttonColorOrderList[i*num+j]->initLabelValue(rectValue);
|
||
m_buttonColorOrderList[i*num+j]->setLabelNameFont(fontNormal_3);
|
||
m_buttonColorOrderList[i*num+j]->setLabelValueFont(fontNormal_1);
|
||
m_buttonColorOrderList[i*num+j]->setStyleSheet("border:0px;outline:none;");//无边框、无焦点
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < 3; i++)
|
||
{
|
||
int num,xSp,idx;
|
||
if(i == 0)
|
||
{
|
||
num = 10;//第一行10个
|
||
xSp = 228;
|
||
idx = 0;
|
||
}
|
||
else if(i == 1)
|
||
{
|
||
num = 12;//第二行12个
|
||
xSp = 0;
|
||
idx = 10;
|
||
}
|
||
else if(i == 2)
|
||
{
|
||
num = 10;//第三行10个
|
||
xSp = 0;
|
||
idx = 22;
|
||
}
|
||
for(int j = 0; j < num; j++)
|
||
{
|
||
m_buttonEmbNeedleList[idx+j]->setGeometry(xSp+j*114,i*70,88,52);
|
||
m_buttonEmbNeedleList[idx+j]->setFont(fontNormal_1);
|
||
m_buttonEmbNeedleList[idx+j]->setText(QString::number(idx+j+1));
|
||
}
|
||
}
|
||
|
||
ui->labelPatternView->setGeometry(1536,220,302,302);
|
||
ui->labelNameValue->setGeometry(1538,564,400,36);
|
||
ui->labelTotalNeedle->setGeometry(1538,604,200,36);
|
||
ui->labelTotalNeedleValue->setGeometry(1760,604,94,36);
|
||
ui->labelTotalColor->setGeometry(1538,644,200,36);
|
||
ui->labelTotalColorValue->setGeometry(1760,644,94,36);
|
||
ui->labelCurColorNum->setGeometry(1538,684,200,36);
|
||
ui->labelCurColorNumValue->setGeometry(1760,684,94,36);
|
||
ui->labelBeginIdx->setGeometry(1538,724,200,36);
|
||
ui->labelBeginIdxValue->setGeometry(1760,724,94,36);
|
||
ui->labelEndIdx->setGeometry(1538,764,200,36);
|
||
ui->labelEndIdxValue->setGeometry(1760,764,94,36);
|
||
ui->labelNeedleSelect->setGeometry(1538,804,180,36);
|
||
ui->labelNeedleSelectValue->setGeometry(1655,804,200,36);
|
||
|
||
ui->framePageBtn->setGeometry(1120,990,800,70);
|
||
ui->labelPage->setGeometry(32,1008,400,40);
|
||
ui->buttonPgUp->setGeometry(0,0,168,70);
|
||
ui->buttonPgDn->setGeometry(200,0,168,70);
|
||
ui->buttonOk->setGeometry(400,0,168,70);
|
||
ui->buttonCancel->setGeometry(600,0,168,70);
|
||
}
|
||
|
||
void ColorOrderSetWidget::initResolution1006()
|
||
{
|
||
this->resize(1024,600);
|
||
ui->frameBack->setGeometry(0,0,1024,600);
|
||
|
||
ui->buttonTypeLogo->setGeometry(25,30,60,60);
|
||
ui->labelMainTitle->setGeometry(100,30,200,24);
|
||
ui->labelSubTitle->setGeometry(130,64,240,21);
|
||
|
||
ui->frameRightUp->setGeometry(500,40,857,61);
|
||
ui->buttonColorOrderClear->setGeometry(456,0,50,50);
|
||
ui->buttonColorOrderCycle->setGeometry(399,0,50,50);
|
||
ui->buttonColorSetLock->setGeometry(342,0,50,50);
|
||
ui->buttonHeadEmb->setGeometry(285,0,50,50);
|
||
ui->buttonCombineEmb->setGeometry(228,0,50,50);
|
||
ui->buttonThreeCombineEmb->setGeometry(171,0,50,50);
|
||
ui->buttonExplanation->setGeometry(114,0,50,50);
|
||
ui->buttonColorLaser->setGeometry(57,0,50,50);
|
||
ui ->buttonRefreshColorOrder->setGeometry(0,0,50,50);
|
||
|
||
ui->frameColorOrder->setGeometry(20,120,740,420);
|
||
ui->buttonNeedle->setGeometry(24,0,110,32);
|
||
QRect rectImage(0,0,56,32);//下边颜色图片的大小和位置
|
||
QRect rectName(22,30,28,16);//数字
|
||
QRect rectValue(0,0,56,32);//下边颜色图片里的文字
|
||
for(int i = 0; i < 6; i++)
|
||
{
|
||
int num = m_buttonColorOrderList.size()/6;
|
||
for(int j = 0; j < num; j++)
|
||
{
|
||
m_buttonColorOrderList[i*num+j]->setGeometry(25+j*60,124+i*50,56,46);//下边控件的大小
|
||
m_buttonColorOrderList[i*num+j]->initUpImageDownName(rectImage,rectName);
|
||
m_buttonColorOrderList[i*num+j]->initLabelValue(rectValue);
|
||
m_buttonColorOrderList[i*num+j]->setLabelNameFont(fontNormal_1);
|
||
m_buttonColorOrderList[i*num+j]->setLabelValueFont(fontNormal_1);
|
||
m_buttonColorOrderList[i*num+j]->setStyleSheet("border:0px;outline:none;");//无边框、无焦点
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < 3; i++)
|
||
{
|
||
int num,xSp,idx;
|
||
if(i == 0)
|
||
{
|
||
num = 10;//第一行10个
|
||
xSp = 145;
|
||
idx = 0;
|
||
}
|
||
else if(i == 1)
|
||
{
|
||
num = 12;//第二行12个
|
||
xSp = 25;
|
||
idx = 10;
|
||
}
|
||
else if(i == 2)
|
||
{
|
||
num = 10;//第三行10个
|
||
xSp = 25;
|
||
idx = 22;
|
||
}
|
||
for(int j = 0; j < num; j++)
|
||
{
|
||
m_buttonEmbNeedleList[idx+j]->setGeometry(xSp+j*60,i*38,56,32);//上边颜色的大小
|
||
m_buttonEmbNeedleList[idx+j]->setFont(fontNormal_1);
|
||
m_buttonEmbNeedleList[idx+j]->setText(QString::number(idx+j+1));
|
||
}
|
||
}
|
||
|
||
ui->labelPatternView->setGeometry(790,98,220,220);
|
||
ui->labelNameValue->setGeometry(816,320,141,20);
|
||
ui->labelTotalNeedle->setGeometry(816,350,141,20);
|
||
ui->labelTotalNeedleValue->setGeometry(895,350,91,20);
|
||
ui->labelTotalColor->setGeometry(816,375,91,20);
|
||
ui->labelTotalColorValue->setGeometry(895,375,91,20);
|
||
ui->labelCurColorNum->setGeometry(816,400,91,20);
|
||
ui->labelCurColorNumValue->setGeometry(895,400,91,20);
|
||
ui->labelBeginIdx->setGeometry(816,425,91,20);
|
||
ui->labelBeginIdxValue->setGeometry(895,425,91,20);
|
||
ui->labelEndIdx->setGeometry(816,450,91,20);
|
||
ui->labelEndIdxValue->setGeometry(895,450,91,20);
|
||
ui->labelNeedleSelect->setGeometry(816,475,91,20);
|
||
ui->labelNeedleSelectValue->setGeometry(895,475,91,20);
|
||
|
||
ui->framePageBtn->setGeometry(595,545,600,40);
|
||
ui->labelPage->setGeometry(20,550,102,45);
|
||
ui->buttonPgUp->setGeometry(0,0,96,40);
|
||
ui->buttonPgDn->setGeometry(106,0,96,40);
|
||
ui->buttonOk->setGeometry(212,0,96,40);
|
||
ui->buttonCancel->setGeometry(318,0,96,40);
|
||
}
|
||
|
||
void ColorOrderSetWidget::initControlStyle()
|
||
{
|
||
SetControlStyle setControlStyle;
|
||
setControlStyle.setUiName(this->objectName());
|
||
|
||
//背景图
|
||
QString frameBackImgPath = setControlStyle.getStyleSheet(this->objectName());
|
||
ui->frameBack->setStyleSheet(frameBackImgPath);
|
||
ui->frameColorOrder->setStyleSheet(TRANSPARENTSTYLE);
|
||
|
||
//label样式
|
||
ui->labelMainTitle->setFont(fontBold_1);
|
||
ui->labelMainTitle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelSubTitle->setFont(fontNormal_1);
|
||
ui->labelSubTitle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelPage->setFont(fontNormal_1);
|
||
ui->labelPage->setStyleSheet(LABELWHITESTYLE);
|
||
ui->buttonNeedle->setFont(fontNormal_6);
|
||
ui->labelPatternView->setStyleSheet(TRANSPARENTSTYLE);
|
||
ui->labelNameValue->setFont(fontNormal_6);
|
||
ui->labelNameValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelTotalNeedle->setFont(fontNormal_6);
|
||
ui->labelTotalNeedle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelTotalNeedleValue->setFont(fontNormal_6);
|
||
ui->labelTotalNeedleValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelTotalColor->setFont(fontNormal_6);
|
||
ui->labelTotalColor->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelTotalColorValue->setFont(fontNormal_6);
|
||
ui->labelTotalColorValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelCurColorNum->setFont(fontNormal_6);
|
||
ui->labelCurColorNum->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelCurColorNumValue->setFont(fontNormal_6);
|
||
ui->labelCurColorNumValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelBeginIdx->setFont(fontNormal_6);
|
||
ui->labelBeginIdx->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelBeginIdxValue->setFont(fontNormal_6);
|
||
ui->labelBeginIdxValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelEndIdx->setFont(fontNormal_6);
|
||
ui->labelEndIdx->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelEndIdxValue->setFont(fontNormal_6);
|
||
ui->labelEndIdxValue->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelNeedleSelect->setFont(fontNormal_6);
|
||
ui->labelNeedleSelect->setStyleSheet(LABELWHITESTYLE);
|
||
ui->labelNeedleSelectValue->setFont(fontNormal_6);
|
||
ui->labelNeedleSelectValue->setStyleSheet(LABELWHITESTYLE);
|
||
|
||
ui->framePageBtn->setStyleSheet(TRANSPARENTSTYLE);
|
||
|
||
//右上方
|
||
ui->frameRightUp->setStyleSheet(TRANSPARENTSTYLE);
|
||
ui->buttonColorOrderClear->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonColorOrderClear->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorOrderClear->objectName()));
|
||
ui->buttonColorOrderCycle->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonColorOrderCycle->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorOrderCycle->objectName()));
|
||
ui->buttonHeadEmb->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonHeadEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonHeadEmb->objectName()));
|
||
ui->buttonCombineEmb->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonCombineEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonCombineEmb->objectName()));
|
||
ui->buttonThreeCombineEmb->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonThreeCombineEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonThreeCombineEmb->objectName()));
|
||
ui->buttonExplanation->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonExplanation->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonExplanation->objectName()));
|
||
ui->buttonColorLaser->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
ui->buttonColorLaser->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorLaser->objectName()));
|
||
ui->buttonRefreshColorOrder->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
// ui->buttonRefreshColorOrder->setVisible(false);
|
||
ui->buttonRefreshColorOrder->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonRefreshColorOrder->objectName()));
|
||
ui->buttonColorSetLock->setGreenGradientBottomStyle(BORDER_RADIUS1);
|
||
|
||
//四个按钮样式表一样
|
||
ui->buttonPgUp->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
ui->buttonPgUp->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgUp->objectName()),12);
|
||
|
||
ui->buttonPgDn->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
ui->buttonPgDn->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgDn->objectName()),12);
|
||
|
||
ui->buttonOk->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
ui->buttonOk->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonOk->objectName()),12);
|
||
|
||
ui->buttonCancel->setOrangeGradientBottomStyle(BORDER_RADIUS2);
|
||
ui->buttonCancel->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonCancel->objectName()),12);
|
||
}
|
||
|
||
void ColorOrderSetWidget::initArabControlPos()
|
||
{
|
||
int language = g_pSettings->readFromInHMIiFile("HMI/language").toInt();
|
||
if(language != arabic)
|
||
{
|
||
return;
|
||
}
|
||
|
||
ui->labelMainTitle->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
ui->labelSubTitle->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
|
||
//ui->labelNameValue->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
ui->labelTotalNeedle->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
// ui->labelTotalNeedleValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
ui->labelTotalColor->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
//ui->labelTotalColorValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
ui->labelCurColorNum->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
// ui->labelCurColorNumValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
ui->labelBeginIdx->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
// ui->labelBeginIdxValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
ui->labelEndIdx->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
//ui->labelEndIdxValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
ui->labelNeedleSelect->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||
//ui->labelNeedleSelectValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||
}
|
||
|
||
void ColorOrderSetWidget::initNeedleBar()
|
||
{
|
||
//读入配置
|
||
QDir apppath(qApp->applicationDirPath());
|
||
|
||
//配置文件路径
|
||
QString configFile = apppath.path() + apppath.separator() + "config.ini";
|
||
QFile iniFile(configFile);
|
||
|
||
int num,idx;
|
||
if(!iniFile.exists())
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
num = 2;
|
||
}
|
||
else if(m_threeCombineEmb == -1)//三头组合绣模式
|
||
{
|
||
num = 3;
|
||
}
|
||
else
|
||
{
|
||
num = 1;
|
||
}
|
||
|
||
idx = 0;
|
||
|
||
QRgb rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)];
|
||
rgb |= 0xff000000;
|
||
QColor bkcolor(rgb);
|
||
QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168);
|
||
QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";"
|
||
+ " color:" + tcolor.name() + ";";
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
if(i < num)
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)//i<1
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/2)//i>=1
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1));
|
||
}
|
||
}
|
||
else if(m_threeCombineEmb == -1)//三头组合绣
|
||
{
|
||
if(i < num/3)//9*3 = 27
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/3 && i < (num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1));
|
||
}
|
||
else if(i >=(num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
|
||
m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2);
|
||
m_buttonEmbNeedleList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//存在配置文件
|
||
QRgb rgb = qRgb(0,255,0);
|
||
switchNeedleNum(num);//显示当前色序所选的针杆
|
||
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
num = num * 2;//
|
||
}
|
||
else if(m_threeCombineEmb == -1)
|
||
{
|
||
num = num * 3;//9个针杆 *3
|
||
}
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
QString idxStr;
|
||
idxStr = getNeedleColorStr(i+1);
|
||
#if(0)
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx";
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number((i-num/2)+1)+"_coloridx";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx";
|
||
}
|
||
#endif
|
||
|
||
if(g_pSettings->ifKeyExists(idxStr) == true)
|
||
{
|
||
idx = g_pSettings->readFromIniFile(idxStr).toInt();
|
||
rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)];
|
||
m_pCurEmbData->setNeedleColorTable(i,idx);
|
||
}
|
||
else
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
m_pCurEmbData->setNeedleColorTable(i,i);
|
||
#if(0)
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
rgb = m_pColorBuf[((i-num/2) % EMB_MC_SW_ND)];
|
||
}
|
||
}
|
||
else
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
}
|
||
#endif
|
||
}
|
||
rgb |= 0xff000000;
|
||
QColor bkcolor(rgb);
|
||
QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168);
|
||
QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";"
|
||
+ " color:" + tcolor.name() + ";";
|
||
if(i < num)
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1));
|
||
}
|
||
}
|
||
else if(m_threeCombineEmb == -1)
|
||
{
|
||
if(i < num/3)//9*3 = 27
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/3 && i < (num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1));
|
||
}
|
||
else if(i >=(num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
|
||
//属于冲缝绣,毛巾针步才显示针杆设置按钮,因为有的色序里只有偏移针步
|
||
if(m_colorBeginStepCtrl == DATA_SEWING ||
|
||
m_colorBeginStepCtrl == DATA_EMB ||
|
||
m_colorBeginStepCtrl == DATA_PUNCH ||
|
||
m_colorBeginStepCtrl == DATA_CHENILLE ||
|
||
m_colorBeginStepCtrl == DATA_CHAIN ||
|
||
m_colorBeginStepCtrl == DATA_COIL ||
|
||
m_colorBeginStepCtrl == DATA_SAWTOOTH ||
|
||
m_colorBeginStepCtrl == DATA_RIBBON ||
|
||
m_colorBeginStepCtrl == DATA_LASER ||
|
||
m_colorBeginStepCtrl == 0)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2);
|
||
m_buttonEmbNeedleList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setChecked(false);
|
||
m_buttonEmbNeedleList.at(i)->setCheckable(false);
|
||
}
|
||
|
||
if(m_threeCombineEmb != 1 || m_combineEmb !=1)
|
||
{
|
||
m_colorSetBtnLockFlag = 1;
|
||
refreshLockBtn();
|
||
ui->buttonColorSetLock->setVisible(false);
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
switchNeedleBar();
|
||
}
|
||
if(m_threeCombineEmb == 1 && m_combineEmb ==1)
|
||
{
|
||
ui->buttonColorSetLock->setVisible(true);
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::switchNeedleBar()
|
||
{
|
||
//读入配置
|
||
QDir apppath(qApp->applicationDirPath());
|
||
|
||
//配置文件路径
|
||
QString configFile = apppath.path() + apppath.separator() + "config.ini";
|
||
QFile iniFile(configFile);
|
||
|
||
int num,idx;
|
||
num = 0;
|
||
if(!iniFile.exists())
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
num = 2;
|
||
}
|
||
else if(m_threeCombineEmb == -1)//三头组合绣模式
|
||
{
|
||
num = 3;
|
||
}
|
||
else
|
||
{
|
||
num = 1;
|
||
}
|
||
|
||
idx = 0;
|
||
|
||
QRgb rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)];
|
||
rgb |= 0xff000000;
|
||
QColor bkcolor(rgb);
|
||
QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168);
|
||
QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";"
|
||
+ " color:" + tcolor.name() + ";";
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
if(i < num)
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)//i<1
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/2)//i>=1
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1));
|
||
}
|
||
}
|
||
else if(m_threeCombineEmb == -1)//三头组合绣
|
||
{
|
||
if(i < num/3)//9*3 = 27
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/3 && i < (num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1));
|
||
}
|
||
else if(i >=(num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
|
||
m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2);
|
||
m_buttonEmbNeedleList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
QRgb rgb = qRgb(0,255,0);
|
||
|
||
if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示毛巾针杆
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆
|
||
{
|
||
num = COILNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆
|
||
{
|
||
num = SAWTOOTHNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆
|
||
{
|
||
num = RIBBONNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆
|
||
{
|
||
num = LASERNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆
|
||
ui->buttonExplanation->setEnabled(false);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆 //第一次选完花版进来是绣花数据,然后根据selIdx,切换相应的针杆
|
||
{
|
||
ui->buttonExplanation->setEnabled(false);
|
||
//针杆按钮切换,切换到绣花的时候,针杆显示不对
|
||
num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆
|
||
}
|
||
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
num = num * 2;//
|
||
}
|
||
else if(m_threeCombineEmb == -1)
|
||
{
|
||
num = num * 3;//9个针杆 *3
|
||
}
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
QString idxStr;
|
||
idxStr = getNeedleColorStr(i+1);
|
||
#if(0)
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx";
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number((i-num/2)+1)+"_coloridx";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx";
|
||
}
|
||
#endif
|
||
|
||
if(g_pSettings->ifKeyExists(idxStr) == true)
|
||
{
|
||
idx = g_pSettings->readFromIniFile(idxStr).toInt();
|
||
rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)];
|
||
m_pCurEmbData->setNeedleColorTable(i,idx);
|
||
}
|
||
else
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
m_pCurEmbData->setNeedleColorTable(i,i);
|
||
#if(0)
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
rgb = m_pColorBuf[((i-num/2) % EMB_MC_SW_ND)];
|
||
}
|
||
}
|
||
else
|
||
{
|
||
rgb = m_pColorBuf[(i % EMB_MC_SW_ND)];
|
||
}
|
||
#endif
|
||
}
|
||
rgb |= 0xff000000;
|
||
QColor bkcolor(rgb);
|
||
QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168);
|
||
QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";"
|
||
+ " color:" + tcolor.name() + ";";
|
||
if(i < num)
|
||
{
|
||
if(m_combineEmb == -1)//组合绣模式
|
||
{
|
||
if(i < num/2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1));
|
||
}
|
||
}
|
||
else if(m_threeCombineEmb == -1)
|
||
{
|
||
if(i < num/3)//9*3 = 27
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
else if(i >= num/3 && i < (num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1));
|
||
}
|
||
else if(i >=(num/3)*2)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
}
|
||
|
||
//属于冲缝绣,毛巾针步才显示针杆设置按钮,因为有的色序里只有偏移针步
|
||
if(m_colorBeginStepCtrl == DATA_SEWING ||
|
||
m_colorBeginStepCtrl == DATA_EMB ||
|
||
m_colorBeginStepCtrl == DATA_PUNCH ||
|
||
m_colorBeginStepCtrl == DATA_CHENILLE ||
|
||
m_colorBeginStepCtrl == DATA_CHAIN ||
|
||
m_colorBeginStepCtrl == DATA_COIL ||
|
||
m_colorBeginStepCtrl == DATA_SAWTOOTH ||
|
||
m_colorBeginStepCtrl == DATA_RIBBON ||
|
||
m_colorBeginStepCtrl == DATA_LASER ||
|
||
m_colorBeginStepCtrl == 0)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2);
|
||
m_buttonEmbNeedleList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setChecked(false);
|
||
m_buttonEmbNeedleList.at(i)->setCheckable(false);
|
||
}
|
||
}
|
||
|
||
//刷新色序显示
|
||
void ColorOrderSetWidget::refreshColorShow(int colorInPage)
|
||
{
|
||
QString str;
|
||
QString strNeedle;
|
||
m_colorOrderLimitFlag = 0;
|
||
|
||
int num = 0;
|
||
getNeedleNum(num);//获取配置文件针杆数量
|
||
|
||
int colorNum = m_colorTable.size();
|
||
m_pageNums = (colorNum + m_itemPerPage - 1)/m_itemPerPage;// 计算页数
|
||
if (m_curPages > m_pageNums)// 当前页
|
||
{
|
||
m_curPages = m_pageNums;
|
||
}
|
||
if (m_curPages <= 1 && colorNum != 0)
|
||
{
|
||
m_curPages = 1;
|
||
}
|
||
|
||
int colorIdx = (m_curPages-1) * m_itemPerPage;
|
||
if(colorIdx < 0)
|
||
{
|
||
colorIdx = 0;
|
||
}
|
||
|
||
s16 embHeadnum = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
|
||
for (int i = 0; i < m_itemPerPage; i++)
|
||
{
|
||
// 颜色显示
|
||
if (colorIdx < colorNum)
|
||
{
|
||
s16 needleIdx = m_colorTable.at(colorIdx);//花版里的第一个色序,设置成了毛巾1
|
||
int colorIdxCp = needleIdx;
|
||
|
||
//大于平绣机头数
|
||
if(needleIdx > embHeadnum && needleIdx <= EMB_NEEDLE_NUM)
|
||
{
|
||
//等于绣花机时有双头组合功能才有色序设置不合理的判断
|
||
if(m_combineEmb == 1 && m_threeCombineEmb == 1)//rq 没有判断有没有组合功能
|
||
{
|
||
m_colorOrderLimitFlag = -1;
|
||
}
|
||
}
|
||
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
strNeedle = getCurColorTabStr(needleIdx);
|
||
getCurColorTabValue(needleIdx);
|
||
}
|
||
|
||
QString idxStr;
|
||
if(colorInPage == -1)
|
||
{
|
||
idxStr = getNeedleColorStr(needleIdx);//needleIdx 针杆索引
|
||
}
|
||
else
|
||
{
|
||
if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_LASER;//激光针杆
|
||
idxStr = "LaserNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_SAWTOOTH;//锯齿针杆
|
||
idxStr = "SawtoothNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_COIL;//缠绕针杆
|
||
idxStr = "ColiNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_CHAIN;//链式针杆
|
||
idxStr = "TowelNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_CHENILLE;//毛巾针杆
|
||
idxStr = "TowelNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_RIBBON;//盘带针杆
|
||
idxStr = "RibbonNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
else
|
||
{
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
idxStr = "EmbNeedle/"+QString::number(needleIdx)+"_coloridx";
|
||
}
|
||
}
|
||
|
||
s16 colorInTab;
|
||
if(g_pSettings->ifKeyExists(idxStr) == true)
|
||
{
|
||
colorInTab = g_pSettings->readFromIniFile(idxStr).toInt();
|
||
}
|
||
else
|
||
{
|
||
colorInTab = m_colorTable.at(colorIdx);
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
getCurColorTabValue(colorInTab);
|
||
}
|
||
colorInTab -= 1;
|
||
if(colorInTab < 0){colorInTab = 0;}
|
||
}
|
||
|
||
// 文件中的色序
|
||
QRgb rgb = m_pColorBuf[(colorInTab % EMB_BF_SW_ND)];
|
||
rgb |= 0xff000000;
|
||
QColor bkcolor(rgb);
|
||
QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168);
|
||
QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";"
|
||
+ " color:" + tcolor.name() + ";";
|
||
|
||
m_buttonColorOrderList.at(i)->setImageBackColor(cstyle);
|
||
|
||
QString cstyle1 = "outline: none;background-color:rgba(255, 255, 255, 0);color:" + tcolor.name() + ";";
|
||
m_buttonColorOrderList.at(i)->setLabelValueStyle(cstyle1);
|
||
if(needleIdx <= 0)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue("");//色序里的数字是空
|
||
}
|
||
else
|
||
{
|
||
if(m_combineEmb == -1)
|
||
{
|
||
if(needleIdx > num)
|
||
{
|
||
int idx = needleIdx-num;
|
||
if(idx > EMB_NEEDLE_NUM)
|
||
{
|
||
s16 cidx = needleIdx;
|
||
QString str = getCurColorTabStr(cidx);
|
||
getCurColorTabValue(cidx);
|
||
m_buttonColorOrderList.at(i)->setLabelValue(str+QString::number(cidx));
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue("E"+QString::number(idx));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx));
|
||
}
|
||
}
|
||
else if(m_threeCombineEmb == -1)
|
||
{
|
||
if(needleIdx <= num)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx));
|
||
}
|
||
else if(needleIdx>num && needleIdx <= num*2)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue("E"+QString::number(needleIdx-num));
|
||
}
|
||
else if(needleIdx>num*2 && needleIdx <= num*3)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue("EX"+QString::number(needleIdx-num*2));
|
||
}
|
||
else
|
||
{
|
||
s16 cidx = needleIdx;
|
||
QString str = getCurColorTabStr(cidx);
|
||
getCurColorTabValue(cidx);
|
||
m_buttonColorOrderList.at(i)->setLabelValue(str+QString::number(cidx));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue(strNeedle+QString::number(needleIdx));
|
||
}
|
||
}
|
||
|
||
str.sprintf("%d", colorIdx+1);
|
||
//下方的色序按钮
|
||
//设置数字 花版里的色序个数
|
||
m_buttonColorOrderList.at(i)->setLabelName(str);
|
||
m_buttonColorOrderList.at(i)->show();
|
||
|
||
//选择显示
|
||
if (colorIdx == m_curSelectColor)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelImageChecked(cstyle);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelName("");
|
||
m_buttonColorOrderList.at(i)->hide();
|
||
}
|
||
colorIdx++;
|
||
}
|
||
|
||
// 翻页按钮
|
||
if (m_curPages <= 1)
|
||
{
|
||
ui->buttonPgUp->setEnabled(false);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonPgUp->setEnabled(true);
|
||
}
|
||
if (m_curPages >= m_pageNums)
|
||
{
|
||
ui->buttonPgDn->setEnabled(false);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonPgDn->setEnabled(true);
|
||
}
|
||
|
||
// 页信息
|
||
if(m_pageNums == 0)
|
||
{
|
||
m_curPages = 0;
|
||
}
|
||
|
||
QString pStr = tr("pageNum: ") + QString("%1/%2").arg(m_curPages).arg(m_pageNums);//页数:
|
||
ui->labelPage->setText(pStr);
|
||
}
|
||
|
||
//刷新花样选中的色序显示(刷新花样部分线迹)
|
||
void ColorOrderSetWidget::refreshPatternCurColorShow()
|
||
{
|
||
if(m_curSelectColor < 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
int beginIdx, endIdx;
|
||
beginIdx = endIdx = 0;
|
||
|
||
if(m_colorTable.size() == 1)//只有一个换色
|
||
{
|
||
endIdx = m_pCurEmbData->getStitchNums();
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
beginIdx = 1;
|
||
}
|
||
else
|
||
{
|
||
//获取起始针步和换色后第一个针步的针步属性(非跳针跨步等)
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
|
||
if(m_curSelectColor+1 == m_colorTable.size())//当前选择颜色数等于总的颜色数
|
||
{
|
||
endIdx = m_pCurEmbData->getStitchNums();
|
||
}
|
||
else
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl);
|
||
}
|
||
}
|
||
|
||
m_pCurEmbData->setGreyAreaRange(m_greyBeginStep,m_greyEndStep);
|
||
m_pCurEmbData->setDispAreaRange(beginIdx,endIdx,0);
|
||
if (m_refreshColorOrder != -1)
|
||
{
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重新画灰图
|
||
}
|
||
ui->labelBeginIdxValue->setText(QString::number(beginIdx));
|
||
ui->labelEndIdxValue->setText(QString::number(endIdx));
|
||
ui->labelCurColorNumValue->setText(QString::number(m_curSelectColor+1));
|
||
|
||
m_greyBeginStep = beginIdx;//灰色起始
|
||
m_greyEndStep = endIdx; //灰色结束
|
||
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelPatternView->setPixmap(patternPix);
|
||
|
||
//根据 beginStepCtrl 切换到相应针杆设置
|
||
int num = 0;
|
||
getNeedleNum(num);
|
||
|
||
s16 selIdx = m_colorTable[m_curSelectColor];
|
||
int idx = selIdx;
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
getCurColorTabValue(selIdx);
|
||
}
|
||
|
||
QString str;
|
||
if(selIdx <= 0)
|
||
{
|
||
str = tr("Not set");//未设置
|
||
}
|
||
else
|
||
{
|
||
if(m_combineEmb == -1)
|
||
{
|
||
if(selIdx <= num)//selIdx 总针杆的索引 , num 针杆个数
|
||
{
|
||
str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆
|
||
}
|
||
else
|
||
{
|
||
str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆
|
||
}
|
||
}
|
||
else if (m_threeCombineEmb == -1)//三头组合绣
|
||
{
|
||
if(selIdx <= num)
|
||
{
|
||
str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆
|
||
}
|
||
else if(selIdx>num && selIdx <= num*2)
|
||
{
|
||
str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆
|
||
}
|
||
else
|
||
{
|
||
str = tr("Head 3 Needle ") + QString::number(selIdx-num*2);//针杆
|
||
}
|
||
}
|
||
else
|
||
{
|
||
QString typeStr;
|
||
typeStr = getCurColorTabStr(idx);
|
||
str = typeStr + QString::number(selIdx);//针杆
|
||
}
|
||
}
|
||
ui->labelNeedleSelectValue->setText(str);// 右下角显示当前色序的针杆
|
||
ui->buttonColorSetLock->setEnabled(true);//右上方色序设定解锁按钮可按
|
||
}
|
||
|
||
//获取配置文件针杆数量
|
||
void ColorOrderSetWidget::getNeedleNum(int &num)
|
||
{
|
||
if(m_colorBeginStepCtrl == 0)//界面没打开的时候,进来这个里边
|
||
{
|
||
num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆
|
||
return;
|
||
}
|
||
|
||
if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示毛巾针杆
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆
|
||
{
|
||
num = COILNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆
|
||
{
|
||
num = SAWTOOTHNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆
|
||
{
|
||
num = RIBBONNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆
|
||
{
|
||
num = LASERNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆
|
||
ui->buttonExplanation->setEnabled(false);
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆 //第一次选完花版进来是绣花数据,然后根据selIdx,切换相应的针杆
|
||
{
|
||
ui->buttonExplanation->setEnabled(false);
|
||
//针杆按钮切换,切换到绣花的时候,针杆显示不对
|
||
num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆
|
||
}
|
||
else
|
||
{
|
||
ui->buttonExplanation->setEnabled(false);
|
||
num = 0;
|
||
//非冲缝绣针步
|
||
ui->buttonNeedle->setText(tr("Non needle step"));//非下针针步
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::switchNeedleNum(int &num)
|
||
{
|
||
//m_curSelectColor 花版中的第几个色序
|
||
//m_colorTable 色序表
|
||
//selIdx 色序表里的色序 0就是没有色序
|
||
if(m_colorTable.size() <= 0)
|
||
{
|
||
return;
|
||
}
|
||
int selIdx = m_colorTable[m_curSelectColor];
|
||
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
/*如果是dsr文件,有多种属性的针步时(或者dst文件),绣花针步可能会设置为其他色序,
|
||
* 此时点击色序设定按钮时需要切换为相应设置的针杆*/
|
||
if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆
|
||
{
|
||
num=LASERNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆
|
||
m_colorBeginStepCtrl = DATA_LASER;
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆
|
||
{
|
||
num = SAWTOOTHNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆
|
||
m_colorBeginStepCtrl = DATA_SAWTOOTH;
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆
|
||
{
|
||
num = COILNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆
|
||
m_colorBeginStepCtrl = DATA_COIL;
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM)//链式针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();//链式针杆和毛巾针杆是相同的
|
||
ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆
|
||
m_colorBeginStepCtrl = DATA_CHAIN;
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示的毛巾针杆
|
||
m_colorBeginStepCtrl = DATA_CHENILLE;
|
||
}
|
||
//selIdx =51 当前选择的是盘带针杆
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//盘带针杆 盘带 缠绕 平绣
|
||
{
|
||
num = RIBBONNEEDLE;
|
||
ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆
|
||
m_colorBeginStepCtrl = DATA_RIBBON;
|
||
}
|
||
else
|
||
{
|
||
if(g_emMacType == MACHINE_EMB && g_emProductType == PRODUCT_CHEN)//绣花机且为纯毛巾
|
||
{
|
||
num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示的毛巾针杆
|
||
m_colorBeginStepCtrl = DATA_CHENILLE;
|
||
}
|
||
else
|
||
{
|
||
num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆
|
||
}
|
||
}
|
||
|
||
//获取配置文件针杆颜色索引字符
|
||
QString ColorOrderSetWidget::getNeedleColorStr(s16 idx)
|
||
{
|
||
QString idxStr;
|
||
idxStr.clear();
|
||
|
||
if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆
|
||
{
|
||
idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆
|
||
{
|
||
idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆
|
||
{
|
||
idxStr = "ColiNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆
|
||
{
|
||
idxStr = "SawtoothNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆
|
||
{
|
||
idxStr = "RibbonNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆
|
||
{
|
||
idxStr = "LaserNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
|
||
else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆
|
||
if(m_curSelectColor < 0){return idxStr;}
|
||
int selIdx = m_colorTable[m_curSelectColor];
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
/*如果是dsr文件,有多种属性的针步时(或者dst文件),绣花针步可能会设置为其他色序
|
||
* 此时点击色序设定按钮时需要切换为相应设置的针杆*/
|
||
if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆
|
||
{
|
||
idxStr = "LaserNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆
|
||
{
|
||
idxStr = "SawtoothNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆
|
||
{
|
||
idxStr = "CoilNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM)//链式针杆
|
||
{
|
||
idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆
|
||
{
|
||
idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+ SEW_NEEDLE_NUM)//盘带
|
||
{
|
||
idxStr = "RibbonNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
else
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆
|
||
}
|
||
}
|
||
else
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆
|
||
}
|
||
}
|
||
else
|
||
{
|
||
idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";
|
||
}
|
||
|
||
return idxStr;
|
||
}
|
||
|
||
//刷新色序锁定按钮
|
||
void ColorOrderSetWidget::refreshLockBtn()
|
||
{
|
||
SetControlStyle setControlStyle;
|
||
setControlStyle.setUiName(this->objectName());
|
||
if(m_colorSetBtnLockFlag == 1)//锁住
|
||
{
|
||
ui->buttonColorSetLock->setCheckable(true);
|
||
ui->buttonColorSetLock->setChecked(true);
|
||
ui->buttonColorSetLock->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorSetLock->objectName()));
|
||
ui->buttonNeedle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->buttonNeedle->setEnabled(false);//针杆按钮不可按
|
||
}
|
||
else//解锁
|
||
{
|
||
ui->buttonColorSetLock->setChecked(false);
|
||
ui->buttonColorSetLock->setCheckable(false);
|
||
ui->buttonColorSetLock->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorSetLock->objectName()+"_unlock"));
|
||
ui->buttonNeedle->setStyleSheet(BUTTONWHITESTYLE);
|
||
ui->buttonNeedle->setEnabled(true);//针杆按钮可按
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::initTowelHeightValue()
|
||
{
|
||
int num = TOWELHIGHRANGE;
|
||
|
||
QString cstyle = "background-color: rgba(245, 245, 245);color: rgba(0, 0, 0);";
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
if(i < num)
|
||
{
|
||
m_buttonEmbNeedleList[i]->setText(QString::number(i+1));
|
||
m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2);
|
||
m_buttonEmbNeedleList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->hide();
|
||
}
|
||
}
|
||
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setChecked(false);
|
||
m_buttonEmbNeedleList.at(i)->setCheckable(false);
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::refreshTowelHeightShow()
|
||
{
|
||
QString str;
|
||
|
||
int colorNum = m_colorTable.size();
|
||
m_pageNums = (colorNum + m_itemPerPage - 1)/m_itemPerPage;// 计算页数
|
||
if (m_curPages > m_pageNums)// 当前页
|
||
{
|
||
m_curPages = m_pageNums;
|
||
}
|
||
if (m_curPages <= 1 && colorNum != 0)
|
||
{
|
||
m_curPages = 1;
|
||
}
|
||
|
||
int colorIdx = (m_curPages-1) * m_itemPerPage;
|
||
if(colorIdx < 0)
|
||
{
|
||
colorIdx = 0;
|
||
}
|
||
|
||
for (int i = 0; i < m_itemPerPage; i++)
|
||
{
|
||
// 颜色显示
|
||
if (colorIdx < colorNum)
|
||
{
|
||
int needleIdx = m_colorTable.at(colorIdx);
|
||
|
||
if(needleIdx <= 0)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue("");//数字是空
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx));
|
||
}
|
||
|
||
str.sprintf("%d", colorIdx+1);
|
||
//下方的按钮
|
||
//设置数字
|
||
m_buttonColorOrderList.at(i)->setLabelName(str);
|
||
|
||
QString cstyle = "outline: none;background-color:rgba(245, 245, 245);color: rgba(0, 0, 0);";
|
||
QString cstyle1 = "outline: none;background-color:rgba(255, 255, 255, 0);color: rgba(0, 0, 0);";
|
||
m_buttonColorOrderList.at(i)->setImageBackColor(cstyle);
|
||
m_buttonColorOrderList.at(i)->setLabelValueStyle(cstyle1);
|
||
|
||
//选择显示
|
||
if (colorIdx == m_curSelectColor)
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelImageChecked(cstyle);
|
||
}
|
||
m_buttonColorOrderList.at(i)->show();
|
||
}
|
||
else
|
||
{
|
||
m_buttonColorOrderList.at(i)->setLabelName("");
|
||
m_buttonColorOrderList.at(i)->hide();
|
||
}
|
||
|
||
colorIdx++;
|
||
}
|
||
|
||
// 翻页按钮
|
||
if (m_curPages <= 1)
|
||
{
|
||
ui->buttonPgUp->setEnabled(false);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonPgUp->setEnabled(true);
|
||
}
|
||
if (m_curPages >= m_pageNums)
|
||
{
|
||
ui->buttonPgDn->setEnabled(false);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonPgDn->setEnabled(true);
|
||
}
|
||
|
||
// 页信息
|
||
if(m_pageNums == 0)
|
||
{
|
||
m_curPages = 0;
|
||
}
|
||
|
||
QString pStr = tr("pageNum: ") + QString("%1/%2").arg(m_curPages).arg(m_pageNums);//页数:
|
||
ui->labelPage->setText(pStr);
|
||
}
|
||
|
||
void ColorOrderSetWidget::refreshPatternCurTowelHeightShow()
|
||
{
|
||
if(m_curSelectColor < 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
int beginIdx, endIdx;
|
||
|
||
if(m_colorTable.size() == 1)//只有一个毛巾高度
|
||
{
|
||
endIdx = m_pCurEmbData->getStitchNums();
|
||
if(m_fileType == FILE_TYPE_DSR)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromTowelHighIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
}
|
||
else if(m_fileType == FILE_TYPE_DST)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
}
|
||
beginIdx = 1;
|
||
}
|
||
else
|
||
{
|
||
//获取起始针步和换毛巾高度后第一个针步的针步属性(非跳针跨步等)
|
||
if(m_fileType == FILE_TYPE_DSR)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromTowelHighIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
}
|
||
else if(m_fileType == FILE_TYPE_DST)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl);
|
||
}
|
||
|
||
if(m_curSelectColor+1 == m_colorTable.size())//当前选择数等于总数
|
||
{
|
||
endIdx = m_pCurEmbData->getStitchNums();
|
||
}
|
||
else
|
||
{
|
||
if(m_fileType == FILE_TYPE_DSR)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromTowelHighIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl);
|
||
}
|
||
else if(m_fileType == FILE_TYPE_DST)
|
||
{
|
||
m_pCurEmbData->getNeedleIdxFromColorIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl);
|
||
}
|
||
}
|
||
}
|
||
|
||
m_pCurEmbData->setGreyAreaRange(m_greyBeginStep,m_greyEndStep);
|
||
m_pCurEmbData->setDispAreaRange(beginIdx,endIdx,0);
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重新画灰图
|
||
|
||
m_greyBeginStep = beginIdx;//灰色起始
|
||
m_greyEndStep = endIdx; //灰色结束
|
||
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelPatternView->setPixmap(patternPix);
|
||
|
||
ui->labelCurColorNumValue->setText(QString::number(m_curSelectColor+1));
|
||
ui->labelBeginIdxValue->setText(QString::number(beginIdx));
|
||
ui->labelEndIdxValue->setText(QString::number(endIdx));
|
||
|
||
int selIdx = m_colorTable[m_curSelectColor];
|
||
|
||
QString str;
|
||
if(selIdx <= 0)
|
||
{
|
||
str = tr("Not set");//未设置
|
||
}
|
||
else
|
||
{
|
||
str = QString::number(selIdx);//针杆
|
||
}
|
||
ui->labelNeedleSelectValue->setText(str);// 右下角显示当前索引
|
||
}
|
||
|
||
QString ColorOrderSetWidget::getCurColorTabStr(s16 needleIdx)
|
||
{
|
||
QString strNeedle;
|
||
strNeedle.clear();
|
||
|
||
if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆
|
||
{
|
||
strNeedle = tr("L");
|
||
}
|
||
else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆
|
||
{
|
||
strNeedle = tr("Z");
|
||
}
|
||
else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM)//缠绕针杆
|
||
{
|
||
strNeedle = tr("W");
|
||
}
|
||
else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM)//链式针杆
|
||
{
|
||
strNeedle = tr("C");
|
||
}
|
||
else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆
|
||
{
|
||
strNeedle = tr("T");
|
||
}
|
||
else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//盘带针杆
|
||
{
|
||
strNeedle = tr("R");
|
||
}
|
||
else
|
||
{
|
||
strNeedle = tr("F");
|
||
}
|
||
return strNeedle;
|
||
}
|
||
|
||
void ColorOrderSetWidget::getCurColorTabValue(s16 &colorInTab)
|
||
{
|
||
if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM);
|
||
}
|
||
else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM);
|
||
}
|
||
else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM);
|
||
}
|
||
else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM)//链式针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM);
|
||
}
|
||
else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM);
|
||
}
|
||
else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//缠绕针杆
|
||
{
|
||
colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM);
|
||
}
|
||
}
|
||
|
||
//设置类型图标
|
||
void ColorOrderSetWidget::setTypeLogo(QString tStyle)
|
||
{
|
||
ui->buttonTypeLogo->setUnPreBtnLogo(tStyle);
|
||
}
|
||
|
||
//设置主title
|
||
void ColorOrderSetWidget::setMainTitle(QString str)
|
||
{
|
||
ui->labelMainTitle->setText(str);
|
||
}
|
||
|
||
void ColorOrderSetWidget::setSubTitle(QString str)
|
||
{
|
||
ui->labelSubTitle->setText(str);
|
||
}
|
||
|
||
void ColorOrderSetWidget::show(QString filePath)
|
||
{
|
||
ui->buttonColorSetLock->setVisible(true);//右上方解锁按钮
|
||
m_colorSetBtnLockFlag = 1;//锁住
|
||
refreshLockBtn();
|
||
|
||
QFileInfo file(filePath);
|
||
QString ext = file.suffix().toUpper();
|
||
|
||
m_pCurEmbData->setViewInfo(ui->labelPatternView->width(),ui->labelPatternView->height());
|
||
m_pCurEmbData->clear();
|
||
|
||
if(ext == "DST")//dst文件
|
||
{
|
||
DataFileDst dst;
|
||
dst.initFile(filePath);
|
||
dst.convertDataToAbs();
|
||
m_pCurEmbData->appendAEmbAbsFile(filePath,dst.getEmbAbsData());//生成文件信息
|
||
m_colorTable.resize(dst.getColorNums());
|
||
}
|
||
else if(ext == "DSR")//dsr文件
|
||
{
|
||
DataFileDsr dsr;
|
||
dsr.initFile(filePath);
|
||
dsr.convertDataToEmbAbs();
|
||
m_pCurEmbData->appendAEmbAbsFile(filePath,dsr.getEmbAbsData());//生成文件信息
|
||
m_colorTable.resize(dsr.getColorNums());
|
||
}
|
||
|
||
m_pCurEmbData->getDsDat();
|
||
//转换为ds16数据后设置色序表
|
||
m_pCurEmbData->setDs16ColorOfTable((u8*)m_colorTable.data());
|
||
m_pCurEmbData->setEmbData();
|
||
m_greyBeginStep = 0;//灰色起始
|
||
m_greyEndStep = m_pCurEmbData->getStitchNums(); //灰色结束
|
||
|
||
QFileInfo info(filePath);
|
||
QString fileName = info.fileName();
|
||
int size = fileName.length();
|
||
if(size > NAMEMAXLENGTH+12)//花样名称过长时截取
|
||
{
|
||
fileName = fileName.mid(0,NAMEMAXLENGTH+12) + "~";
|
||
}
|
||
ui->labelNameValue->setText(fileName);
|
||
if(size <= 0)//未选择文件时
|
||
{
|
||
ui->labelTotalNeedleValue->setText("");
|
||
ui->labelTotalColorValue->setText("");
|
||
}
|
||
else
|
||
{
|
||
ui->labelTotalNeedleValue->setText(QString::number(m_pCurEmbData->getStitchNums()));
|
||
ui->labelTotalColor->setText(tr("Total color:"));//总颜色数:
|
||
ui->labelTotalColorValue->setText(QString::number(m_pCurEmbData->getColorNums()));
|
||
}
|
||
|
||
m_curSelectColor = 0;
|
||
if(m_buttonColorOrderList.size() > 0)
|
||
{
|
||
m_pColorBtn = m_buttonColorOrderList.at(0);//默认选中(等于)第一个色序按钮
|
||
}
|
||
|
||
refreshPatternCurColorShow();
|
||
refreshColorShow(1);
|
||
initNeedleBar();
|
||
|
||
#if(0)
|
||
ui->labelCurColorNumValue->setText("");
|
||
ui->labelBeginIdxValue->setText("");
|
||
ui->labelEndIdxValue->setText("");
|
||
ui->labelNeedleSelectValue->setText("");
|
||
#endif
|
||
|
||
QWidget::show();
|
||
}
|
||
|
||
void ColorOrderSetWidget::showTowelHeight(QString filePath)
|
||
{
|
||
m_colorSetBtnLockFlag = 1;//锁住
|
||
ui->buttonNeedle->setStyleSheet(LABELWHITESTYLE);
|
||
ui->buttonNeedle->setEnabled(false);//针杆按钮不可按
|
||
initTowelHeightValue();
|
||
|
||
QFileInfo file(filePath);
|
||
QString ext = file.suffix().toUpper();
|
||
|
||
m_pCurEmbData->setViewInfo(ui->labelPatternView->width(),ui->labelPatternView->height());
|
||
m_pCurEmbData->clear();
|
||
|
||
if(ext == "DST")//dst文件
|
||
{
|
||
m_fileType = FILE_TYPE_DST;
|
||
DataFileDst dst;
|
||
dst.initFile(filePath);
|
||
dst.convertDataToAbs();
|
||
m_pCurEmbData->appendAEmbAbsFile(filePath,dst.getEmbAbsData());//生成文件信息
|
||
m_colorTable.resize(dst.getColorNums());
|
||
}
|
||
else if(ext == "DSR")//dsr文件
|
||
{
|
||
m_fileType = FILE_TYPE_DSR;
|
||
DataFileDsr dsr;
|
||
dsr.initFile(filePath);
|
||
dsr.convertDataToEmbAbs();
|
||
m_pCurEmbData->appendAEmbAbsFile(filePath,dsr.getEmbAbsData());//生成文件信息
|
||
m_colorTable.resize(dsr.getTowelHighNums());
|
||
}
|
||
|
||
m_pCurEmbData->getDsDat();
|
||
m_pCurEmbData->setEmbData();
|
||
m_greyBeginStep = 0;//灰色起始
|
||
m_greyEndStep = m_pCurEmbData->getStitchNums(); //灰色结束
|
||
|
||
QFileInfo info(filePath);
|
||
QString fileName = info.fileName();
|
||
int size = fileName.length();
|
||
if(size > NAMEMAXLENGTH+12)//花样名称过长时截取
|
||
{
|
||
fileName = fileName.mid(0,NAMEMAXLENGTH+12) + "~";
|
||
}
|
||
ui->labelNameValue->setText(fileName);
|
||
if(size <= 0)//未选择文件时
|
||
{
|
||
ui->labelTotalNeedleValue->setText("");
|
||
ui->labelTotalColorValue->setText("");
|
||
}
|
||
else
|
||
{
|
||
ui->labelTotalNeedleValue->setText(QString::number(m_pCurEmbData->getStitchNums()));
|
||
ui->labelTotalColor->setText(tr("Total high Num:"));//总高度数:
|
||
ui->labelTotalColorValue->setText(QString::number(m_pCurEmbData->getTowelHighNums()));
|
||
}
|
||
|
||
m_curSelectColor = 0;
|
||
if(m_buttonColorOrderList.size() > 0)
|
||
{
|
||
m_pColorBtn = m_buttonColorOrderList.at(0);//默认选中(等于)第一个按钮
|
||
}
|
||
refreshPatternCurTowelHeightShow();
|
||
refreshTowelHeightShow();
|
||
|
||
#if(0)
|
||
ui->labelCurColorNumValue->setText("");
|
||
ui->labelBeginIdxValue->setText("");
|
||
ui->labelEndIdxValue->setText("");
|
||
ui->labelNeedleSelectValue->setText("");
|
||
#endif
|
||
|
||
QWidget::show();
|
||
}
|
||
|
||
void ColorOrderSetWidget::setColorTable(QByteArray table,s16 combineMode)
|
||
{
|
||
ui->labelCurColorNum->setText(tr("Color num:"));//当前色序:
|
||
ui->labelNeedleSelect->setText(tr("Needle:"));//针杆选择:
|
||
m_setType = TYPE_COLORSET;
|
||
int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能
|
||
|
||
//这里用是否有毛巾功能做判断,是因为有毛巾功能时会有毛巾高度设置功能,毛巾高度设置会把以下按钮全部隐藏
|
||
//这里需要根据配置再显示出来
|
||
if((towel == 1)||
|
||
(g_emProductType == PRODUCT_CHEN)
|
||
)
|
||
{
|
||
int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能
|
||
if(coil == 1)
|
||
{
|
||
ui->buttonExplanation->setVisible(true);//缠绕的解释说明
|
||
}
|
||
else
|
||
{
|
||
ui->buttonExplanation->setVisible(false);
|
||
}
|
||
int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能
|
||
if(laser == 1)
|
||
{
|
||
ui->buttonColorLaser->setVisible(true);//设置激光的快捷色序
|
||
}
|
||
else
|
||
{
|
||
ui->buttonColorLaser->setVisible(false);
|
||
}
|
||
int combineEmb = g_pSettings->readFromInHMIiFile("HMI/combineEmb").toInt();//是否有双头组合绣功能
|
||
//是否显示双头组合按钮
|
||
if(combineEmb == 1)
|
||
{
|
||
ui->buttonCombineEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonCombineEmb->setVisible(false);
|
||
}
|
||
int threeCombineEmb = g_pSettings->readFromInHMIiFile("HMI/threeCombineEmb").toInt();//是否有三头组合绣功能
|
||
//是否显示双头组合按钮
|
||
if(threeCombineEmb == 1)
|
||
{
|
||
ui->buttonThreeCombineEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonThreeCombineEmb->setVisible(false);
|
||
}
|
||
|
||
int headEmb = g_pSettings->readFromInHMIiFile("HMI/headEmb").toInt();//是否有隔头绣功能
|
||
//是否显示隔头绣按钮
|
||
if(headEmb == 1)
|
||
{
|
||
ui->buttonHeadEmb->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonHeadEmb->setVisible(false);
|
||
}
|
||
//右上方色序锁住按钮是否可见
|
||
if((g_emMacType == MACHINE_EMB && towel ==1)|| //绣花机带毛巾
|
||
(g_emMacType == MACHINE_EMB && coil ==1)|| //绣花机带缠绕
|
||
(g_emMacType == MACHINE_EMB && laser ==1) //绣花机带激光
|
||
)
|
||
{
|
||
ui->buttonColorSetLock->setVisible(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonColorSetLock->setVisible(false);
|
||
}
|
||
}
|
||
|
||
if(combineMode != 0)
|
||
{
|
||
m_combineEmbFirst = combineMode;
|
||
}
|
||
m_combineEmb = combineMode;
|
||
if(m_combineEmb == 0)
|
||
{
|
||
m_combineEmb = 1;
|
||
}
|
||
|
||
if(combineMode == -1)//双头组合模式清空工作机头缓存
|
||
{
|
||
//memset(m_headBuf, 0, sizeof(m_headBuf));
|
||
ui->buttonHeadEmb->setEnabled(false);//隔头不可用
|
||
ui->buttonCombineEmb->setCheckable(true);
|
||
ui->buttonCombineEmb->setChecked(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonHeadEmb->setEnabled(true);//隔头可用
|
||
ui->buttonCombineEmb->setCheckable(true);
|
||
ui->buttonCombineEmb->setChecked(false);
|
||
}
|
||
|
||
m_beforeColorTable.clear();
|
||
m_beforeColorTable.append(table);
|
||
|
||
m_colorTable.clear();
|
||
m_colorTable.append(table);
|
||
}
|
||
|
||
void ColorOrderSetWidget::setTowelHighTable(QByteArray table)
|
||
{
|
||
m_setType = TYPE_TOWELHIGHSET;
|
||
ui->buttonHeadEmb->setVisible(false);//隔头不可用
|
||
ui->buttonColorLaser->setVisible(false);
|
||
ui->buttonCombineEmb->setVisible(false);
|
||
ui->buttonThreeCombineEmb->setVisible(false);
|
||
ui->buttonColorSetLock->setVisible(false);
|
||
ui->buttonExplanation->setVisible(false);
|
||
ui->buttonNeedle->setText(tr("Towel high:"));//毛巾高度:
|
||
ui->labelCurColorNum->setText(tr("High index:"));//高度索引:
|
||
ui->labelNeedleSelect->setText(tr("High value:"));//高度值:
|
||
|
||
m_beforeColorTable.clear();
|
||
m_beforeColorTable.append(table);
|
||
|
||
m_colorTable.clear();
|
||
m_colorTable.append(table);
|
||
}
|
||
|
||
void ColorOrderSetWidget::setThreeColorTable(QByteArray table,s16 threeCombineMode)
|
||
{
|
||
if(threeCombineMode != 0)
|
||
{
|
||
m_threeCombineEmbFirst = threeCombineMode;
|
||
}
|
||
m_threeCombineEmb = threeCombineMode;
|
||
if(m_threeCombineEmb == 0)
|
||
{
|
||
m_threeCombineEmb = 1;
|
||
}
|
||
|
||
if(m_threeCombineEmb == -1)//双头组合模式清空工作机头缓存
|
||
{
|
||
//memset(m_headBuf, 0, sizeof(m_headBuf));
|
||
ui->buttonHeadEmb->setEnabled(false);//隔头不可用
|
||
ui->buttonThreeCombineEmb->setCheckable(true);
|
||
ui->buttonThreeCombineEmb->setChecked(true);
|
||
}
|
||
else
|
||
{
|
||
ui->buttonHeadEmb->setEnabled(true);//隔头可用
|
||
ui->buttonThreeCombineEmb->setCheckable(true);
|
||
ui->buttonThreeCombineEmb->setChecked(false);
|
||
}
|
||
|
||
m_beforeColorTable.clear();
|
||
m_beforeColorTable.append(table);
|
||
|
||
m_colorTable.clear();
|
||
m_colorTable.append(table);
|
||
}
|
||
|
||
//初始化隔头绣数据
|
||
void ColorOrderSetWidget::initHeadBuf(QString filePath)
|
||
{
|
||
QFile file(filePath + ".fcg");
|
||
if(file.exists())//存在fcg文件
|
||
{
|
||
if(file.open(QIODevice::ReadOnly))
|
||
{
|
||
QByteArray ary = file.readAll();
|
||
if((u32)ary.size() >= sizeof(DataFileHead)+HEADBUF)
|
||
{
|
||
memcpy(m_headBuf,ary.data()+sizeof(DataFileHead),sizeof(m_headBuf));
|
||
}
|
||
}
|
||
file.close();
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::slotResetHeadBuf(u8 *buf)
|
||
{
|
||
if(buf != NULL)
|
||
{
|
||
memcpy(m_headBuf,buf,sizeof(m_headBuf));
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::slotSetEmbDatNeedleTable()
|
||
{
|
||
int idx = 0;
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
QString idxStr;
|
||
idxStr = getNeedleColorStr(i+1);
|
||
|
||
if(g_pSettings->ifKeyExists(idxStr) == true)
|
||
{
|
||
idx = g_pSettings->readFromIniFile(idxStr).toInt();
|
||
m_pCurEmbData->setNeedleColorTable(i,idx);
|
||
}
|
||
else
|
||
{
|
||
m_pCurEmbData->setNeedleColorTable(i,i);
|
||
}
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::colorOrderBtnClick()
|
||
{
|
||
int idx = 0;
|
||
m_pColorBtn = (MyButton*) this->sender();
|
||
|
||
if(m_pColorBtn == NULL)
|
||
{
|
||
return;
|
||
}
|
||
for(int i = 0; i < m_buttonColorOrderList.size(); i++)
|
||
{
|
||
if(m_pColorBtn == m_buttonColorOrderList.at(i))
|
||
{
|
||
idx = i;
|
||
}
|
||
}
|
||
|
||
// int beforeColor = m_curSelectColor;//上一次选择的色序
|
||
m_curSelectColor = (m_curPages - 1) * m_itemPerPage + idx;
|
||
|
||
//针杆按钮不选中
|
||
if(m_pEmbNeedleBtn != NULL)
|
||
{
|
||
m_pEmbNeedleBtn->setChecked(false);
|
||
m_pEmbNeedleBtn->setCheckable(false);
|
||
}
|
||
|
||
if(m_setType == TYPE_COLORSET)//色序设定
|
||
{
|
||
refreshColorShow(1);
|
||
refreshPatternCurColorShow();//右下角花样数据
|
||
initNeedleBar();
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
refreshTowelHeightShow();
|
||
refreshPatternCurTowelHeightShow();
|
||
}
|
||
}
|
||
|
||
//针杆按钮被按下
|
||
void ColorOrderSetWidget::embNeedleBtnPressed()
|
||
{
|
||
m_pEmbNeedleBtn = (QPushButton*) this->sender();
|
||
m_pEmbNeedleBtn->setCheckable(true);
|
||
m_pEmbNeedleBtn->setChecked(true);
|
||
}
|
||
|
||
//针杆按钮抬起
|
||
void ColorOrderSetWidget::embNeedleBtnReleased()
|
||
{
|
||
if(m_pColorBtn == NULL || m_pEmbNeedleBtn == NULL || m_curSelectColor == -1)
|
||
{
|
||
//按钮都不选中
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
m_buttonEmbNeedleList.at(i)->setChecked(false);
|
||
m_buttonEmbNeedleList.at(i)->setCheckable(false);
|
||
}
|
||
return;
|
||
}
|
||
int btnIdx = 0;
|
||
for(int i = 0; i < m_buttonEmbNeedleList.size(); i++)
|
||
{
|
||
if(m_pEmbNeedleBtn == m_buttonEmbNeedleList.at(i))
|
||
{
|
||
btnIdx = i+1;
|
||
}
|
||
m_buttonEmbNeedleList.at(i)->setChecked(false);
|
||
m_buttonEmbNeedleList.at(i)->setCheckable(false);
|
||
}
|
||
|
||
if(m_setType == TYPE_TOWELHIGHSET)//毛巾高度设置
|
||
{
|
||
if(m_curSelectColor >= 0)
|
||
{
|
||
if(m_curSelectColor >= m_colorTable.size())
|
||
{
|
||
return;
|
||
}
|
||
//int colorInTab = m_colorTable.at(m_curSelectColor);
|
||
|
||
//if (colorInTab != btnIdx)
|
||
{
|
||
// 设置数据中的色序
|
||
m_colorTable[m_curSelectColor] = btnIdx;
|
||
emit siChangeTowelHighTable(m_curSelectColor,btnIdx);
|
||
|
||
QString str = tr("High ") + QString::number(btnIdx);//高度
|
||
ui->labelNeedleSelectValue->setText(str);
|
||
|
||
//当前色序设定完成后自动跳到下一色序
|
||
if(m_curSelectColor < m_colorTable.size() - 1)
|
||
{
|
||
m_curSelectColor += 1;//花版中的第几个色序
|
||
}
|
||
refreshTowelHeightShow();
|
||
refreshPatternCurTowelHeightShow();
|
||
}
|
||
}
|
||
return;
|
||
}
|
||
|
||
int num = 0;
|
||
getNeedleNum(num);//显示当前的色序的针杆
|
||
|
||
#if(0)
|
||
if(m_combineEmb == -1)//组合模式
|
||
{
|
||
if(btnIdx > num)
|
||
{
|
||
btnIdx = btnIdx-num;
|
||
}
|
||
}
|
||
#endif
|
||
|
||
int colorInPage = btnIdx;
|
||
if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM;
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM;
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM;
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM;
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM;
|
||
}
|
||
else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆
|
||
{
|
||
colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM;
|
||
}
|
||
|
||
if(m_curSelectColor >= 0)
|
||
{
|
||
int colorInTab = m_colorTable.at(m_curSelectColor); // 文件中的色序
|
||
|
||
if (colorInTab != colorInPage)
|
||
{
|
||
m_colorTable[m_curSelectColor] = colorInPage;
|
||
emit siChangeColorTable(m_curSelectColor,colorInPage);//针杆写入色序表
|
||
}
|
||
|
||
s16 selIdx = m_colorTable[m_curSelectColor];
|
||
if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式
|
||
{
|
||
getCurColorTabValue(selIdx);
|
||
}
|
||
|
||
QString str;
|
||
if(selIdx <= 0)
|
||
{
|
||
str = tr("Not set");//未设置
|
||
}
|
||
else
|
||
{
|
||
if(m_combineEmb == -1)
|
||
{
|
||
if(selIdx <= num)
|
||
{
|
||
str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆
|
||
}
|
||
else
|
||
{
|
||
str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆
|
||
}
|
||
}
|
||
|
||
else if (m_threeCombineEmb == -1)//三头组合绣
|
||
{
|
||
if(selIdx <= num)
|
||
{
|
||
str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆
|
||
}
|
||
else if(selIdx>num && selIdx <= num*2)
|
||
{
|
||
str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆
|
||
}
|
||
else
|
||
{
|
||
str = tr("Head 3 Needle ") + QString::number(selIdx-num*2);//针杆
|
||
}
|
||
}
|
||
else
|
||
{
|
||
str = tr("Needle ") + QString::number(selIdx);//针杆
|
||
}
|
||
}
|
||
ui->labelNeedleSelectValue->setText(str);
|
||
|
||
//当前色序设定完成后自动跳到下一色序
|
||
if(m_curSelectColor < m_colorTable.size() - 1)
|
||
{
|
||
m_curSelectColor += 1;//花版中的第几个色序
|
||
}
|
||
|
||
refreshColorShow(colorInPage);
|
||
refreshPatternCurColorShow();
|
||
initNeedleBar();//下一个色序针杆变,在这个函数里
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonPgUp_clicked()
|
||
{
|
||
m_curPages--;
|
||
refreshColorShow();
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonPgDn_clicked()
|
||
{
|
||
m_curPages++;
|
||
refreshColorShow();
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonOk_clicked()
|
||
{
|
||
if(m_setType == TYPE_COLORSET)//色序设定
|
||
{
|
||
//非组合模式且针位设置超限
|
||
if(m_combineEmb == 1 && m_threeCombineEmb == 1 && m_colorOrderLimitFlag == -1)
|
||
{
|
||
PromptDialog dlg(this);
|
||
dlg.initDialog(PromptDialog::BTN_OK);
|
||
dlg.setTitleStr(tr("Prompt"));
|
||
dlg.setContentStr(tr("Color order setting is unreasonable, please reset!"));//色序设定不合理,请重新设置!
|
||
dlg.exec();
|
||
return;
|
||
}
|
||
|
||
if(m_combineEmb == -1)//组合模式设置机头工作缓存区(绣花机才有)
|
||
{
|
||
int num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
int size = 16;//16个字节
|
||
s8 evenVal = 85;//偶 0101 0101
|
||
s8 oddVal = -86;//奇 1010 1010
|
||
s8 allVal = 0;//全部工作 0000 0000
|
||
|
||
int colorNum = m_colorTable.size();
|
||
for(int i = 0 ; i < colorNum; i++)
|
||
{
|
||
int needleIdx = m_colorTable.at(i);
|
||
for(int j = 0; j < size; j++)
|
||
{
|
||
if(needleIdx > num)
|
||
{
|
||
m_headBuf[i*size+j] = evenVal;
|
||
}
|
||
else if(needleIdx <= 0)
|
||
{
|
||
m_headBuf[i*size+j] = allVal;
|
||
}
|
||
else
|
||
{
|
||
m_headBuf[i*size+j] = oddVal;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
else if(m_threeCombineEmb ==-1)//三头组合绣
|
||
{
|
||
int num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt();
|
||
int size = 16;//16个字节
|
||
|
||
s8 Val1 = 182;// 1011 0110
|
||
s8 Val2 = 109;// 0110 1101
|
||
s8 Val3 = 219;// 1101 1011
|
||
|
||
s8 Val4 = 109;// 0110 1101
|
||
s8 Val5 = 219;// 1101 1011
|
||
s8 Val6 = 182;// 1011 0110
|
||
|
||
s8 Val7 = 219;// 1101 1011
|
||
s8 Val8 = 182;// 1011 0110
|
||
s8 Val9 = 109;// 0110 1101
|
||
|
||
|
||
int colorNum = m_colorTable.size();
|
||
for(int i = 0 ; i < colorNum; i++)
|
||
{
|
||
int needleIdx = m_colorTable.at(i);
|
||
for(int j = 0; j < size; j++)
|
||
{
|
||
if(needleIdx <= num)
|
||
{
|
||
int k= j%3;
|
||
if(k == 0)
|
||
{
|
||
m_headBuf[i*size+j] = Val1;
|
||
}
|
||
else if(k == 1)
|
||
{
|
||
m_headBuf[i*size+j] = Val2;
|
||
}
|
||
else if(k == 2)
|
||
{
|
||
m_headBuf[i*size+j] = Val3;
|
||
}
|
||
|
||
}
|
||
else if(needleIdx <= num*2 && needleIdx > num)
|
||
{
|
||
int k= j%3;
|
||
if(k == 0)
|
||
{
|
||
m_headBuf[i*size+j] = Val4;
|
||
}
|
||
else if(k == 1)
|
||
{
|
||
m_headBuf[i*size+j] = Val5;
|
||
}
|
||
else if(k == 2)
|
||
{
|
||
m_headBuf[i*size+j] = Val6;
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
int k= j%3;
|
||
if(k == 0)
|
||
{
|
||
m_headBuf[i*size+j] = Val7;
|
||
}
|
||
else if(k == 1)
|
||
{
|
||
m_headBuf[i*size+j] = Val8;
|
||
}
|
||
else if(k == 2)
|
||
{
|
||
m_headBuf[i*size+j] = Val9;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
emit siBackHome(m_combineEmb,m_threeCombineEmb);
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
emit siTowelHighBackHome();
|
||
}
|
||
this->hide();
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonCancel_clicked()
|
||
{
|
||
if(m_combineEmbFirst == 1 || m_threeCombineEmbFirst == 1)//非组合绣模式 或者三头组合绣模式
|
||
{
|
||
ui->buttonCombineEmb->setCheckable(true);
|
||
ui->buttonCombineEmb->setChecked(false);
|
||
ui->buttonHeadEmb->setEnabled(true);
|
||
siSetHeadEmbBtnEnable(true);
|
||
}
|
||
else//组合绣模式
|
||
{
|
||
ui->buttonCombineEmb->setCheckable(true);
|
||
ui->buttonCombineEmb->setChecked(true);
|
||
ui->buttonHeadEmb->setEnabled(false);
|
||
siSetHeadEmbBtnEnable(false);
|
||
}
|
||
|
||
//恢复之前的色序表
|
||
if(m_setType == TYPE_COLORSET)
|
||
{
|
||
emit siCancelChangeColor(m_beforeColorTable);
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
emit siCancelChangeTowelHigh(m_beforeColorTable);
|
||
}
|
||
this->hide();
|
||
}
|
||
|
||
//色序循环
|
||
void ColorOrderSetWidget::on_buttonColorOrderCycle_clicked()
|
||
{
|
||
QByteArray cycleTable;
|
||
cycleTable.clear();
|
||
|
||
//拷贝循环列表
|
||
for(int i = 0; i < m_colorTable.length(); i++)
|
||
{
|
||
int colorInTab = m_colorTable.at(i); // 色序
|
||
|
||
if(colorInTab != 0)
|
||
{
|
||
cycleTable.append(m_colorTable[i]);
|
||
}
|
||
else
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(cycleTable.length() <= 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
//将循环列表循环复制到m_colorTable中
|
||
for(int i = 0; i < m_colorTable.length();)
|
||
{
|
||
memcpy((char*)m_colorTable.data() + i,(char*)cycleTable.data(),cycleTable.length());
|
||
i += cycleTable.length();
|
||
}
|
||
|
||
for(int i = 0; i < m_colorTable.length(); i++)
|
||
{
|
||
int colorInTab = m_colorTable.at(i); // 色序
|
||
|
||
if(m_setType == TYPE_COLORSET)
|
||
{
|
||
emit siChangeColorTable(i,colorInTab);
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
emit siChangeTowelHighTable(i,colorInTab);
|
||
}
|
||
}
|
||
|
||
if(m_setType == TYPE_COLORSET)
|
||
{
|
||
m_pCurEmbData->setGreyAreaRange(0,m_pCurEmbData->getStitchNums());
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重绘
|
||
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelPatternView->setPixmap(patternPix);
|
||
|
||
m_curSelectColor = -1;
|
||
refreshColorShow(1);
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
m_curSelectColor = -1;
|
||
refreshTowelHeightShow();
|
||
}
|
||
}
|
||
|
||
//色序清空
|
||
void ColorOrderSetWidget::on_buttonColorOrderClear_clicked()
|
||
{
|
||
for(int i = 0; i < m_colorTable.length(); i++)
|
||
{
|
||
m_colorTable[i] = 0;//清空
|
||
int colorInTab = m_colorTable.at(i); // 色序
|
||
if(m_setType == TYPE_COLORSET)
|
||
{
|
||
emit siChangeColorTable(i,colorInTab);
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
emit siChangeTowelHighTable(i,colorInTab);
|
||
}
|
||
}
|
||
|
||
if(m_setType == TYPE_COLORSET)
|
||
{
|
||
m_pCurEmbData->setGreyAreaRange(0,m_pCurEmbData->getStitchNums());
|
||
m_pCurEmbData->setDispAreaRange(0,0);
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重绘
|
||
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelPatternView->setPixmap(patternPix);
|
||
|
||
m_curSelectColor = -1;
|
||
refreshColorShow();
|
||
}
|
||
else if(m_setType == TYPE_TOWELHIGHSET)
|
||
{
|
||
m_curSelectColor = -1;
|
||
refreshTowelHeightShow();
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonHeadEmb_clicked()
|
||
{
|
||
emit siHeadEmb();//发送隔头绣设置的信号
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonCombineEmb_clicked()
|
||
{
|
||
m_combineEmb *= -1;
|
||
|
||
if(m_combineEmb == 1)//非双头组合绣模式
|
||
{
|
||
ui->buttonCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中
|
||
ui->buttonCombineEmb->setChecked(false);
|
||
ui->buttonHeadEmb->setEnabled(true);//false ,按钮就不可点击,设置成true,按钮就可以点击。
|
||
emit siSetHeadEmbBtnEnable(true);
|
||
}
|
||
else//双头组合绣模式
|
||
{
|
||
m_threeCombineEmb = 1;
|
||
|
||
ui->buttonThreeCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中
|
||
ui->buttonThreeCombineEmb->setChecked(false);
|
||
|
||
ui->buttonCombineEmb->setCheckable(true);
|
||
ui->buttonCombineEmb->setChecked(true);//setChecked(true)为属性的值,表示已经选中
|
||
ui->buttonHeadEmb->setEnabled(false);
|
||
emit siSetHeadEmbBtnEnable(false);
|
||
}
|
||
initNeedleBar();
|
||
refreshColorShow();
|
||
}
|
||
|
||
void ColorOrderSetWidget::on_buttonThreeCombineEmb_clicked()
|
||
{
|
||
m_threeCombineEmb *= -1;
|
||
|
||
if(m_threeCombineEmb == 1)//非三头组合绣模式
|
||
{
|
||
ui->buttonThreeCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中
|
||
ui->buttonThreeCombineEmb->setChecked(false);
|
||
ui->buttonHeadEmb->setEnabled(true);//false ,按钮就不可点击,设置成true,按钮就可以点击。
|
||
emit siSetHeadEmbBtnEnable(true);
|
||
}
|
||
else//三头组合绣模式
|
||
{
|
||
m_combineEmb = 1;
|
||
|
||
ui->buttonCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中
|
||
ui->buttonCombineEmb->setChecked(false);
|
||
|
||
ui->buttonThreeCombineEmb->setCheckable(true);
|
||
ui->buttonThreeCombineEmb->setChecked(true);//setChecked(true)为属性的值,表示已经选中
|
||
ui->buttonHeadEmb->setEnabled(false);
|
||
emit siSetHeadEmbBtnEnable(false);
|
||
}
|
||
initNeedleBar();
|
||
refreshColorShow();
|
||
}
|
||
|
||
void ColorOrderSetWidget::mousePressEvent(QMouseEvent *e)
|
||
{
|
||
if (e->button() == Qt::LeftButton)
|
||
{
|
||
m_mousePressX = e->x();
|
||
m_mousePressY = e->y();
|
||
m_mouseReleaseX = 0;
|
||
m_mouseReleaseY = 0;
|
||
}
|
||
}
|
||
|
||
void ColorOrderSetWidget::mouseReleaseEvent(QMouseEvent *e)
|
||
{
|
||
if (e->button() == Qt::LeftButton)
|
||
{
|
||
m_mouseReleaseX = e->x();
|
||
m_mouseReleaseY = e->y();
|
||
}
|
||
|
||
int width = this->width();
|
||
int height = this->height();
|
||
if ((m_mousePressX >= 0 && m_mousePressX <= 100) &&
|
||
((m_mousePressY >= (height - 100)) && m_mousePressY <= height) &&
|
||
((m_mouseReleaseX >= (width - 100)) && m_mouseReleaseX <= width) &&
|
||
((m_mouseReleaseY >= (height - 100)) && m_mouseReleaseY <= height))
|
||
{
|
||
MainWidgetFunction mainFunction;
|
||
QString usbPath;//优盘路径
|
||
usbPath = mainFunction.detectUsb();//优盘检测
|
||
if(usbPath.length() <= 0)
|
||
{
|
||
//优盘不存在
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
QPixmap pixmap=QPixmap::grabWindow(this->winId(),0,0,this->width(),this->height());//截屏存放在pixmap
|
||
QString name_pc = usbPath + "EMB" + //
|
||
QDateTime::currentDateTime().toString("yyyyMMdd") +//获取时期时间
|
||
+"_"+
|
||
QDateTime::currentDateTime().toString("hhmmss") + ".png";
|
||
|
||
pixmap.save(name_pc,"png"); // 路径
|
||
}
|
||
}
|
||
|
||
m_mousePressX = 0;
|
||
m_mousePressY = 0;
|
||
m_mouseReleaseX = 0;
|
||
m_mouseReleaseY = 0;
|
||
}
|
||
|
||
//色序设定是否解锁,锁住时针杆不可切换,未锁住时针杆可切换
|
||
void ColorOrderSetWidget::on_buttonColorSetLock_clicked()
|
||
{
|
||
m_colorSetBtnLockFlag *= -1;
|
||
refreshLockBtn();
|
||
}
|
||
|
||
//切换成不同的针杆显示
|
||
void ColorOrderSetWidget::on_buttonNeedle_clicked()
|
||
{
|
||
int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能
|
||
int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能
|
||
int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能
|
||
|
||
ui->buttonExplanation->setEnabled(false);
|
||
|
||
switch (m_colorBeginStepCtrl)
|
||
{
|
||
case DATA_CHAIN:
|
||
{
|
||
if(coil == 1)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_SAWTOOTH;
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
else
|
||
{
|
||
//纯毛巾时不会带激光
|
||
if(laser == 1)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_LASER;//缠绕变激光
|
||
}
|
||
else if(g_emProductType == PRODUCT_CHEN)//纯毛巾
|
||
{
|
||
m_colorBeginStepCtrl = DATA_CHENILLE;
|
||
}
|
||
else
|
||
{
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case DATA_LASER:
|
||
{
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
break;
|
||
}
|
||
case DATA_EMB://第一次进来是平绣
|
||
{
|
||
if((towel == 1 && coil != 1) ||
|
||
(coil == 1 && towel == 1)||
|
||
(g_emProductType == PRODUCT_CHEN)
|
||
)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_CHENILLE;
|
||
}
|
||
if(coil == 1 && towel != 1)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_SAWTOOTH;
|
||
ui->buttonExplanation->setEnabled(true);
|
||
}
|
||
if(coil != 1 && towel != 1)
|
||
{
|
||
if(laser == 1)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_LASER;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case DATA_CHENILLE:
|
||
{
|
||
m_colorBeginStepCtrl = DATA_CHAIN;
|
||
break;
|
||
}
|
||
case DATA_SAWTOOTH:
|
||
{
|
||
m_colorBeginStepCtrl = DATA_RIBBON;
|
||
ui->buttonExplanation->setEnabled(true);
|
||
break;
|
||
}
|
||
case DATA_RIBBON:
|
||
{
|
||
m_colorBeginStepCtrl = DATA_COIL;
|
||
ui->buttonExplanation->setEnabled(true);
|
||
break;
|
||
}
|
||
case DATA_COIL:
|
||
{
|
||
if(laser == 1)
|
||
{
|
||
m_colorBeginStepCtrl = DATA_LASER;//缠绕变激光
|
||
}
|
||
else
|
||
{
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
}
|
||
break;
|
||
}
|
||
default:
|
||
m_colorBeginStepCtrl = DATA_EMB;
|
||
break;
|
||
}
|
||
|
||
switchNeedleBar();
|
||
}
|
||
|
||
//缠绕绣的说明按钮
|
||
void ColorOrderSetWidget::on_buttonExplanation_clicked()
|
||
{
|
||
if(m_colorBeginStepCtrl == DATA_COIL)
|
||
{
|
||
PromptDialog dlg(this);
|
||
dlg.initDialog(PromptDialog::BTN_OK);
|
||
dlg.setTitleStr(tr("Coil function description"));//缠绕功能说明
|
||
dlg.setContentStr(tr("W1: Left-handed 1; W2: Left-handed 2; W3: Left-handed 3; W4:Left-handed 4;W5:Right-handed 1;W6:Right-handed 2;W7:Right-handed 3;W8:Right-handed 4;W9:Winding plain embroidery"));//W1:左旋1;W2:左旋2;W3:左旋3;W4:左旋4;
|
||
dlg.exec();
|
||
}
|
||
else if (m_colorBeginStepCtrl == DATA_RIBBON)
|
||
{
|
||
PromptDialog dlg(this);
|
||
dlg.initDialog(PromptDialog::BTN_OK);
|
||
dlg.setTitleStr(tr("Ribbon function description"));//盘带功能说明
|
||
dlg.setContentStr(tr("R1: Normal 1; R2: Pleated embroidery"));//盘带1是正常,2是褶绣
|
||
dlg.exec();
|
||
}
|
||
else if (m_colorBeginStepCtrl == DATA_SAWTOOTH)
|
||
{
|
||
PromptDialog dlg(this);
|
||
dlg.initDialog(PromptDialog::BTN_OK);
|
||
dlg.setTitleStr(tr("Sawtooh function description")); //锯齿功能说明
|
||
dlg.setContentStr(tr("Z1: Each needle swings once; Z2: The same as Z1, with additional embroidery frame compensation;Z3: The needle will swing when it is dropped in place, and the needle will not swing when it is inserted; Z4: One swing per needle and one swing per three needles alternately; Z5: The needle will swing when it is dropped in place, and the needle will not swing when it is inserted; Z6: Swing once every two stitches"));//Z1:每针摆动一次;Z2:同Z1,附加绣框补偿;
|
||
//Z3:原地落两针摆动,进针不摆;Z4:每针摆动一次和每三针摆动一次交替进行;Z5:原地落一针摆动,进针不摆;Z6:每两针摆动一次
|
||
dlg.exec();
|
||
}
|
||
}
|
||
|
||
//激光色序快捷按钮
|
||
void ColorOrderSetWidget::on_buttonColorLaser_clicked()
|
||
{
|
||
//快捷设置色序按钮是激光色序5
|
||
int colorInPage = EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM+LASER_NEEDLE_NUM-5;
|
||
if(m_curSelectColor >= 0)
|
||
{
|
||
int colorInTab = m_colorTable.at(m_curSelectColor); // 文件中的色序
|
||
|
||
if (colorInTab != colorInPage)
|
||
{
|
||
m_colorTable[m_curSelectColor] = colorInPage;
|
||
emit siChangeColorTable(m_curSelectColor,colorInPage);//针杆写入色序表
|
||
}
|
||
//当前色序设定完成后自动跳到下一色序
|
||
if(m_curSelectColor < m_colorTable.size() - 1)
|
||
{
|
||
m_curSelectColor += 1;//花版中的第几个色序
|
||
}
|
||
refreshColorShow(colorInPage);
|
||
refreshPatternCurColorShow();
|
||
initNeedleBar();//下一个色序针杆变,在这个函数里
|
||
}
|
||
}
|
||
|
||
//是否刷新色序颜色显示
|
||
void ColorOrderSetWidget::on_buttonRefreshColorOrder_clicked()
|
||
{
|
||
PromptDialog dlg(this);
|
||
dlg.initDialog(PromptDialog::BTN_OK);
|
||
dlg.setTitleStr(tr("Description"));//说明
|
||
|
||
m_refreshColorOrder *=-1;
|
||
if(m_refreshColorOrder == -1)
|
||
{
|
||
dlg.setContentStr(tr("Turn off color sequence refresh function"));//关闭色序刷新功能
|
||
dlg.exec();
|
||
ui->buttonRefreshColorOrder->setCheckable(true);
|
||
ui->buttonRefreshColorOrder->setChecked(true); // 设置按钮的初始状态为未选中
|
||
}
|
||
else
|
||
{
|
||
dlg.setContentStr(tr("Enable color sequence refresh function"));//打开色序刷新功能
|
||
dlg.exec();
|
||
ui->buttonRefreshColorOrder->setCheckable(false);
|
||
ui->buttonRefreshColorOrder->setChecked(false); // 设置按钮的初始状态为未选中
|
||
m_greyBeginStep = 0;//灰色起始
|
||
m_greyEndStep = m_pCurEmbData->getStitchNums(); //灰色结束
|
||
m_pCurEmbData->setGreyAreaRange(m_greyBeginStep,m_greyEndStep);
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重新画灰图
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelPatternView->setPixmap(patternPix);
|
||
}
|
||
}
|