void JpegStegoDecoder::StegoGetMessage(void *cinfo, JBLOCKROW *MCU_data) { /*JpegDCallbackData *pJCD = static_cast<JpegDCallbackData*>(cinfo->stegoDecoderData.stegoObjPtr); JpegStegoDecoder *pJSD = static_cast<JpegStegoDecoder*>(pJCD->stegoObjPtr);*/ j_decompress_ptr *dcinfop = static_cast<j_decompress_ptr*>(cinfo); j_decompress_ptr dcinfo = *dcinfop; JpegStegoDecoder *pJSD = static_cast<JpegStegoDecoder*>(dcinfo->stego.stegoObjPtr); if(!pJSD->get_message)// || !pJSD->mesArray.IsArraySet()) return; try { int DCT_pos; jpeg_component_info *compptr; for (int blkn = 0; blkn < dcinfo->blocks_in_MCU; blkn++) { compptr = dcinfo->cur_comp_info[dcinfo->MCU_membership[blkn]]; if(pJSD->work_component == ALL || pJSD->work_component == compptr->component_id) //check current component { if (pJSD->get_message) { DCT_pos = /*pJSD->*/selectPosition(MCU_data[blkn][0]); BYTE bit = abs(MCU_data[blkn][0][DCT_pos]); //cerr << (int)bit; if (DCT_pos != -1 && (bit == 1 || bit == 0)) { pJSD->mit = bit; pJSD->mit++; } } if (pJSD->blog) { pJSD->slog->writeData(compptr->component_id); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { pJSD->slog->writeCoef(MCU_data[blkn][0][i * 8 + j]); } pJSD->slog->endStr(); } pJSD->slog->endBlock(); } } } }catch(EndOfMessageException exc) { cerr << exc.getMessage()<<endl; //pJSD->sData.isStego = 0; dcinfo->stego.isStego=0; pJSD->get_message = false; }catch(DamagedMessageException exc) { cerr << exc.getMessage()<<endl; //pJSD->sData.isStego = 0; dcinfo->stego.isStego=0; pJSD->get_message = false; }catch(Exception exc) { cerr << exc.getMessage()<<endl; } }
CQAlignAnchor:: CQAlignAnchor(QWidget *parent) : QWidget(parent) { QGridLayout *layout = new QGridLayout(this); layout->setMargin(0); layout->setSpacing(2); QLabel *anchorLabel = new QLabel("<small><b>Anchor</b></small>"); layout->addWidget(anchorLabel, 0, 0, 1, 2); objectCombo_ = new QComboBox; objectCombo_->addItem("Selection"); objectCombo_->addItem("Object"); objectCombo_->addItem("Position"); connect(objectCombo_, SIGNAL(activated(const QString &)), this, SLOT(objectSlot(const QString &))); layout->addWidget(objectCombo_, 1, 0); anchorStack_ = new QStackedWidget; anchorLabel_ = new QWidget; anchorObject_ = new CQAlignAnchorObject; anchorPoint_ = new CQAlignAnchorPoint; anchorStack_->addWidget(anchorLabel_); anchorStack_->addWidget(anchorObject_); anchorStack_->addWidget(anchorPoint_); layout->addWidget(anchorStack_, 1, 1); connect(anchorObject_, SIGNAL(selectObject()), this, SIGNAL(selectObject())); connect(anchorObject_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect())); connect(anchorPoint_, SIGNAL(selectPoint()), this, SIGNAL(selectPosition())); connect(anchorPoint_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect())); //----- updateState(); }
void CQIllustratorAlignToolbar:: addWidgets() { QBoxLayout *layout = qobject_cast<QBoxLayout *>(CQIllustratorToolbar::layout()); QGridLayout *grid = new QGridLayout; grid->setMargin(0); grid->setSpacing(2); layout->addLayout(grid); //----- QTabWidget *tab = new QTabWidget; QFont font = tab->font(); font.setPointSizeF(font.pointSizeF()*0.7); tab->setFont(font); //------ alignw_ = new CQAlignButtons; tab->addTab(alignw_, "Align"); connect(alignw_, SIGNAL(alignLeft()), this, SIGNAL(alignLeft())); connect(alignw_, SIGNAL(alignBottom()), this, SIGNAL(alignBottom())); connect(alignw_, SIGNAL(alignRight()), this, SIGNAL(alignRight())); connect(alignw_, SIGNAL(alignTop()), this, SIGNAL(alignTop())); connect(alignw_, SIGNAL(alignHorizontal()), this, SIGNAL(alignHorizontal())); connect(alignw_, SIGNAL(alignVertical()), this, SIGNAL(alignVertical())); connect(alignw_, SIGNAL(alignLeftPreview()), this, SIGNAL(alignLeftPreview())); connect(alignw_, SIGNAL(alignBottomPreview()), this, SIGNAL(alignBottomPreview())); connect(alignw_, SIGNAL(alignRightPreview()), this, SIGNAL(alignRightPreview())); connect(alignw_, SIGNAL(alignTopPreview()), this, SIGNAL(alignTopPreview())); connect(alignw_, SIGNAL(alignHorizontalPreview()), this, SIGNAL(alignHorizontalPreview())); connect(alignw_, SIGNAL(alignVerticalPreview()), this, SIGNAL(alignVerticalPreview())); connect(alignw_, SIGNAL(alignPreviewClear()), this, SIGNAL(alignPreviewClear())); //------ distw_ = new CQDistButtons; tab->addTab(distw_, "Distribute"); //------ spreadw_ = new CQSpreadButtons; tab->addTab(spreadw_, "Spread"); //------ grid->addWidget(tab, 0, 0, 2, 1); //------ QLabel *olabel = new QLabel("<small><b>Offset</b></small>"); offset_ = new CQRealEdit(0.0); offset_->setFocusPolicy(Qt::ClickFocus); grid->addWidget(olabel , 0, 1); grid->addWidget(offset_, 1, 1); //------ anchor_ = new CQAlignAnchor; connect(anchor_, SIGNAL(selectObject()), this, SIGNAL(selectAnchorObject())); connect(anchor_, SIGNAL(selectPosition()), this, SIGNAL(selectAnchorPosition())); connect(anchor_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelectAnchor())); grid->addWidget(anchor_, 0, 2, 2, 1); //------ grid->setColumnStretch(3, 1); }