diff --git a/backend_qt4/qzint.cpp b/backend_qt4/qzint.cpp index e8a58543..9bf2a782 100644 --- a/backend_qt4/qzint.cpp +++ b/backend_qt4/qzint.cpp @@ -662,962 +662,6 @@ void QZint::render(QPainter & painter, const QRectF & paintRect, AspectRatioMode painter.restore(); } -int QZint::ustrlen(unsigned char data[]) { - /* Local replacement for strlen() with unsigned char strings */ - int i; - for (i=0;data[i];i++); - - return i; -} - -void QZint::to_upper(unsigned char source[]) -{ /* Converts lower case characters to upper case in a string source[] */ - int i; - - for (i = 0; i < ustrlen(source); i++) { - if ((source[i] >= 'a') && (source[i] <= 'z')) { - source [i] = (source[i] - 'a') + 'A'; } - } -} - -int QZint::ctoi(char source) -{ /* Converts a character 0-9 to its equivalent integer value */ - if((source >= '0') && (source <= '9')) - return (source - '0'); - return(source - 'A' + 10); -} - -int QZint::is_stackable(int symbology) { - /* Indicates which symbologies can have row binding */ - if(symbology < BARCODE_PDF417) { return 1; } - if(symbology == BARCODE_CODE128B) { return 1; } - if(symbology == BARCODE_ISBNX) { return 1; } - if(symbology == BARCODE_EAN14) { return 1; } - if(symbology == BARCODE_NVE18) { return 1; } - if(symbology == BARCODE_KOREAPOST) { return 1; } - if(symbology == BARCODE_PLESSEY) { return 1; } - if(symbology == BARCODE_TELEPEN_NUM) { return 1; } - if(symbology == BARCODE_ITF14) { return 1; } - if(symbology == BARCODE_CODE32) { return 1; } - - return 0; -} - -int QZint::is_extendable(int symbology) { - /* Indicates which symbols can have addon */ - if(symbology == BARCODE_EANX) { return 1; } - if(symbology == BARCODE_UPCA) { return 1; } - if(symbology == BARCODE_UPCE) { return 1; } - if(symbology == BARCODE_ISBNX) { return 1; } - if(symbology == BARCODE_UPCA_CC) { return 1; } - if(symbology == BARCODE_UPCE_CC) { return 1; } - if(symbology == BARCODE_EANX_CC) { return 1; } - - return 0; -} - -int QZint::roundup(float input) -{ - float remainder; - int integer_part; - - integer_part = (int)input; - remainder = input - integer_part; - - if(remainder > 0.1) { - integer_part++; - } - - return integer_part; -} - -QString QZint::copy_to_clipboard() -{ - QString clipdata; - clipdata.clear(); - int i, block_width, latch, r, this_row; - float textpos, large_bar_height, preset_height, row_height, row_posn = 0.0; - int fgred, fggrn, fgblu, bgred, bggrn, bgblu; - float red_ink, green_ink, blue_ink, red_paper, green_paper, blue_paper; - int textoffset, xoffset, yoffset, textdone, main_width; - char textpart[10], addon[6]; - int large_bar_count, comp_offset; - float addon_text_posn; - float scaler = m_zintSymbol->scale; - float default_text_posn; - - if (m_zintSymbol) - ZBarcode_Delete(m_zintSymbol); - - QString fg_colour_hash = m_fgColor.name(); - QString bg_colour_hash = m_bgColor.name(); - - m_lastError.clear(); - m_zintSymbol = ZBarcode_Create(); - m_zintSymbol->output_options=m_border; - m_zintSymbol->symbology=m_symbol; - m_zintSymbol->height=m_height; - m_zintSymbol->whitespace_width=m_whitespace; - m_zintSymbol->border_width=m_borderWidth; - m_zintSymbol->option_1=m_securityLevel; - m_zintSymbol->input_mode = m_input_mode; - m_zintSymbol->option_2=m_width; - m_zintSymbol->option_3=m_pdf417CodeWords; - m_zintSymbol->scale=m_scale; - QByteArray bstr=m_text.toAscii(); - QByteArray pstr=m_primaryMessage.left(99).toAscii(); - strcpy(m_zintSymbol->primary,pstr.data()); - QByteArray fgcol=fg_colour_hash.right(6).toAscii(); - QByteArray bgcol=bg_colour_hash.right(6).toAscii(); - strcpy(m_zintSymbol->fgcolour,fgcol.data()); - strcpy(m_zintSymbol->bgcolour,bgcol.data()); - int error = ZBarcode_Encode(m_zintSymbol, (unsigned char*)bstr.data()); - if (error > WARN_INVALID_OPTION) { - m_lastError=m_zintSymbol->errtxt; - return clipdata; - } - - row_height=0; - textdone = 0; - main_width = m_zintSymbol->width; - strcpy(addon, ""); - comp_offset = 0; - addon_text_posn = 0.0; - - /* sort out colour options */ - to_upper((unsigned char*)m_zintSymbol->fgcolour); - to_upper((unsigned char*)m_zintSymbol->bgcolour); - - fgred = (16 * ctoi(m_zintSymbol->fgcolour[0])) + ctoi(m_zintSymbol->fgcolour[1]); - fggrn = (16 * ctoi(m_zintSymbol->fgcolour[2])) + ctoi(m_zintSymbol->fgcolour[3]); - fgblu = (16 * ctoi(m_zintSymbol->fgcolour[4])) + ctoi(m_zintSymbol->fgcolour[5]); - bgred = (16 * ctoi(m_zintSymbol->bgcolour[0])) + ctoi(m_zintSymbol->bgcolour[1]); - bggrn = (16 * ctoi(m_zintSymbol->bgcolour[2])) + ctoi(m_zintSymbol->bgcolour[3]); - bgblu = (16 * ctoi(m_zintSymbol->bgcolour[4])) + ctoi(m_zintSymbol->bgcolour[5]); - red_ink = fgred / 256.0; - green_ink = fggrn / 256.0; - blue_ink = fgblu / 256.0; - red_paper = bgred / 256.0; - green_paper = bggrn / 256.0; - blue_paper = bgblu / 256.0; - - if (m_zintSymbol->height == 0) { - m_zintSymbol->height = 50; - } - - large_bar_count = 0; - preset_height = 0.0; - for(i = 0; i < m_zintSymbol->rows; i++) { - preset_height += m_zintSymbol->row_height[i]; - if(m_zintSymbol->row_height[i] == 0) { - large_bar_count++; - } - } - large_bar_height = (m_zintSymbol->height - preset_height) / large_bar_count; - - if (large_bar_count == 0) { - m_zintSymbol->height = preset_height; - } - - while(!(module_set(m_zintSymbol->rows - 1, comp_offset))) { - comp_offset++; - } - - /* Certain symbols need whitespace otherwise characters get chopped off the sides */ - if ((((m_zintSymbol->symbology == BARCODE_EANX) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_EANX_CC)) - || (m_zintSymbol->symbology == BARCODE_ISBNX)) { - switch(ustrlen(m_zintSymbol->text)) { - case 13: /* EAN 13 */ - case 16: - case 19: - if(m_zintSymbol->whitespace_width == 0) { - m_zintSymbol->whitespace_width = 10; - } - main_width = 96 + comp_offset; - break; - default: - main_width = 68 + comp_offset; - } - } - - if (((m_zintSymbol->symbology == BARCODE_UPCA) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_UPCA_CC)) { - if(m_zintSymbol->whitespace_width == 0) { - m_zintSymbol->whitespace_width = 10; - main_width = 96 + comp_offset; - } - } - - if (((m_zintSymbol->symbology == BARCODE_UPCE) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_UPCE_CC)) { - if(m_zintSymbol->whitespace_width == 0) { - m_zintSymbol->whitespace_width = 10; - main_width = 51 + comp_offset; - } - } - - latch = 0; - r = 0; - /* Isolate add-on text */ - if(is_extendable(m_zintSymbol->symbology)) { - for(i = 0; i < ustrlen(m_zintSymbol->text); i++) { - if (latch == 1) { - addon[r] = m_zintSymbol->text[i]; - r++; - } - if (m_zintSymbol->text[i] == '+') { - latch = 1; - } - } - } - addon[r] = '\0'; - - if(ustrlen(m_zintSymbol->text) != 0) { - textoffset = 9; - } else { - textoffset = 0; - } - xoffset = m_zintSymbol->border_width + m_zintSymbol->whitespace_width; - yoffset = m_zintSymbol->border_width; - - /* Start writing the header */ - clipdata += "\n"; - clipdata += "\n"; - if(m_zintSymbol->symbology != BARCODE_MAXICODE) { - clipdata += QString("width + xoffset + xoffset) * scaler)) - .arg(roundup((m_zintSymbol->height + textoffset + yoffset + yoffset) * scaler)); - } else { - clipdata += QString("\n"; - if(ustrlen(m_zintSymbol->text) != 0) { - clipdata += " "; - clipdata += QString((const char *)m_zintSymbol->text); - clipdata += "\n"; - } else { - clipdata += " Zint Generated Symbol\n"; - } - clipdata += " \n"; - clipdata += "\n fgcolour); - clipdata += "\">\n"; - - if(m_zintSymbol->symbology != BARCODE_MAXICODE) { - clipdata += QString(" width + xoffset + xoffset) * scaler)) - .arg(roundup((m_zintSymbol->height + textoffset + yoffset + yoffset) * scaler)); - clipdata += QString((const char *)m_zintSymbol->bgcolour); - clipdata += "\" />\n"; - } else { - clipdata += QString(" bgcolour); - clipdata += "\" />\n"; - } - - if(((m_zintSymbol->output_options & BARCODE_BOX) != 0) || ((m_zintSymbol->output_options & BARCODE_BIND) != 0)) { - default_text_posn = (m_zintSymbol->height + textoffset + m_zintSymbol->border_width + m_zintSymbol->border_width) * scaler; - } else { - default_text_posn = (m_zintSymbol->height + textoffset + m_zintSymbol->border_width) * scaler; - } - - if(m_zintSymbol->symbology == BARCODE_MAXICODE) { - /* Maxicode uses hexagons */ - float ax, ay, bx, by, cx, cy, dx, dy, ex, ey, fx, fy, mx, my; - - - textoffset = 0.0; - if (((m_zintSymbol->output_options & BARCODE_BOX) != 0) || ((m_zintSymbol->output_options & BARCODE_BIND) != 0)) { - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg((74.0 + xoffset + xoffset) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg((72.0 + m_zintSymbol->border_width) * scaler, 0, 'f', 2) - .arg((74.0 + xoffset + xoffset) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - } - if((m_zintSymbol->output_options & BARCODE_BOX) != 0) { - /* side bars */ - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2) - .arg((72.0 + (2 * m_zintSymbol->border_width)) * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((74.0 + xoffset + xoffset - m_zintSymbol->border_width) * scaler, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2) - .arg((72.0 + (2 * m_zintSymbol->border_width)) * scaler, 0, 'f', 2); - } - clipdata += QString(" fgcolour); - clipdata += "\" />\n"; - clipdata += QString(" bgcolour); - clipdata += "\" />\n"; - clipdata += QString(" fgcolour); - clipdata += "\" />\n"; - clipdata += QString(" bgcolour); - clipdata += "\" />\n"; - clipdata += QString(" fgcolour); - clipdata += "\" />\n"; - clipdata += QString(" bgcolour); - clipdata += "\" />\n"; - for(r = 0; r < m_zintSymbol->rows; r++) { - for(i = 0; i < m_zintSymbol->width; i++) { - if(module_set(r, i)) { - /* Dump a hexagon */ - my = r * 2.135 + 1.43; - ay = my + 1.0 + yoffset; - by = my + 0.5 + yoffset; - cy = my - 0.5 + yoffset; - dy = my - 1.0 + yoffset; - ey = my - 0.5 + yoffset; - fy = my + 0.5 + yoffset; - if(r % 2 == 1) { - mx = (2.46 * i) + 1.23 + 1.23; - } else { - mx = (2.46 * i) + 1.23; - } - ax = mx + xoffset; - bx = mx + 0.86 + xoffset; - cx = mx + 0.86 + xoffset; - dx = mx + xoffset; - ex = mx - 0.86 + xoffset; - fx = mx - 0.86 + xoffset; - clipdata += QString(" \n") - .arg(ax * scaler, 0, 'f', 2) - .arg(ay * scaler, 0, 'f', 2) - .arg(bx * scaler, 0, 'f', 2) - .arg(by * scaler, 0, 'f', 2) - .arg(cx * scaler, 0, 'f', 2) - .arg(cy * scaler, 0, 'f', 2) - .arg(dx * scaler, 0, 'f', 2) - .arg(dy * scaler, 0, 'f', 2) - .arg(ex * scaler, 0, 'f', 2) - .arg(ey * scaler, 0, 'f', 2) - .arg(fx * scaler, 0, 'f', 2) - .arg(fy * scaler, 0, 'f', 2); - } - } - } - } - - if(m_zintSymbol->symbology != BARCODE_MAXICODE) { - /* everything else uses rectangles (or squares) */ - /* Works from the bottom of the symbol up */ - int addon_latch = 0; - - for(r = 0; r < m_zintSymbol->rows; r++) { - this_row = r; - if(m_zintSymbol->row_height[this_row] == 0) { - row_height = large_bar_height; - } else { - row_height = m_zintSymbol->row_height[this_row]; - } - row_posn = 0; - for(i = 0; i < r; i++) { - if(m_zintSymbol->row_height[i] == 0) { - row_posn += large_bar_height; - } else { - row_posn += m_zintSymbol->row_height[i]; - } - } - row_posn += yoffset; - - i = 0; - if(module_set(this_row, 0)) { - latch = 1; - } else { - latch = 0; - } - - do { - block_width = 0; - do { - block_width++; - } while (module_set(this_row, i + block_width) == module_set(this_row, i)); - if((addon_latch == 0) && (r == 0) && (i > main_width)) { - addon_text_posn = 9.0 + m_zintSymbol->border_width; - addon_latch = 1; - } - if(latch == 1) { - /* a bar */ - if(addon_latch == 0) { - clipdata += QString(" \n") - .arg((i + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn * scaler, 0, 'f', 2) - .arg(block_width * scaler, 0, 'f', 2) - .arg(row_height * scaler, 0, 'f', 2); - } else { - clipdata += QString(" \n") - .arg((i + xoffset) * scaler, 0, 'f', 2) - .arg((row_posn + 10.0) * scaler, 0, 'f', 2) - .arg(block_width * scaler, 0, 'f', 2) - .arg((row_height - 5.0) * scaler, 0, 'f', 2); - } - latch = 0; - } else { - /* a space */ - latch = 1; - } - i += block_width; - - } while (i < m_zintSymbol->width); - } - } - /* That's done the actual data area, everything else is human-friendly */ - - xoffset += comp_offset; - row_posn = (row_posn + large_bar_height) * scaler; - - if ((((m_zintSymbol->symbology == BARCODE_EANX) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_EANX_CC)) || - (m_zintSymbol->symbology == BARCODE_ISBNX)) { - /* guard bar extensions and text formatting for EAN8 and EAN13 */ - switch(ustrlen(m_zintSymbol->text)) { - case 8: /* EAN-8 */ - case 11: - case 14: - clipdata += QString(" \n") - .arg((0 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((2 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((32 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((34 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((64 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((66 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - for(i = 0; i < 4; i++) { - textpart[i] = m_zintSymbol->text[i]; - } - textpart[4] = '\0'; - textpos = 17; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 4; i++) { - textpart[i] = m_zintSymbol->text[i + 4]; - } - textpart[4] = '\0'; - textpos = 50; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textdone = 1; - switch(strlen(addon)) { - case 2: - textpos = m_zintSymbol->width + xoffset - 10; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - case 5: - textpos = m_zintSymbol->width + xoffset - 23; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - } - - break; - case 13: /* EAN 13 */ - case 16: - case 19: - clipdata += QString(" \n") - .arg((0 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((2 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((46 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((48 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((92 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((94 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - textpart[0] = m_zintSymbol->text[0]; - textpart[1] = '\0'; - textpos = -7; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 6; i++) { - textpart[i] = m_zintSymbol->text[i + 1]; - } - textpart[6] = '\0'; - textpos = 24; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 6; i++) { - textpart[i] = m_zintSymbol->text[i + 7]; - } - textpart[6] = '\0'; - textpos = 71; - clipdata += QString(" \n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textdone = 1; - switch(strlen(addon)) { - case 2: - textpos = m_zintSymbol->width + xoffset - 10; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - case 5: - textpos = m_zintSymbol->width + xoffset - 23; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - } - break; - - } - } - - if (((m_zintSymbol->symbology == BARCODE_UPCA) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_UPCA_CC)) { - /* guard bar extensions and text formatting for UPCA */ - latch = 1; - - i = 0 + comp_offset; - do { - block_width = 0; - do { - block_width++; - } while (module_set(m_zintSymbol->rows - 1, i + block_width) == module_set(m_zintSymbol->rows - 1, i)); - if(latch == 1) { - /* a bar */ - clipdata += QString(" \n") - .arg((i + xoffset - comp_offset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(block_width * scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - latch = 0; - } else { - /* a space */ - latch = 1; - } - i += block_width; - } while (i < 11 + comp_offset); - clipdata += QString(" \n") - .arg((46 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((48 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - latch = 1; - i = 85 + comp_offset; - do { - block_width = 0; - do { - block_width++; - } while (module_set(m_zintSymbol->rows - 1, i + block_width) == module_set(m_zintSymbol->rows - 1, i)); - if(latch == 1) { - /* a bar */ - clipdata += QString(" \n") - .arg((i + xoffset - comp_offset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(block_width * scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - latch = 0; - } else { - /* a space */ - latch = 1; - } - i += block_width; - } while (i < 96 + comp_offset); - textpart[0] = m_zintSymbol->text[0]; - textpart[1] = '\0'; - textpos = -5; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 5; i++) { - textpart[i] = m_zintSymbol->text[i + 1]; - } - textpart[5] = '\0'; - textpos = 27; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 5; i++) { - textpart[i] = m_zintSymbol->text[i + 6]; - } - textpart[6] = '\0'; - textpos = 68; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textpart[0] = m_zintSymbol->text[11]; - textpart[1] = '\0'; - textpos = 100; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textdone = 1; - switch(strlen(addon)) { - case 2: - textpos = m_zintSymbol->width + xoffset - 10; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - case 5: - textpos = m_zintSymbol->width + xoffset - 23; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - } - - } - - if (((m_zintSymbol->symbology == BARCODE_UPCE) && (m_zintSymbol->rows == 1)) || (m_zintSymbol->symbology == BARCODE_UPCE_CC)) { - /* guard bar extensions and text formatting for UPCE */ - clipdata += QString(" \n") - .arg((0 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((2 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((46 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((48 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((50 + xoffset) * scaler, 0, 'f', 2) - .arg(row_posn, 0, 'f', 2) - .arg(scaler, 0, 'f', 2) - .arg(5.0 * scaler, 0, 'f', 2); - textpart[0] = m_zintSymbol->text[0]; - textpart[1] = '\0'; - textpos = -5; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - for(i = 0; i < 6; i++) { - textpart[i] = m_zintSymbol->text[i + 1]; - } - textpart[6] = '\0'; - textpos = 24; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textpart[0] = m_zintSymbol->text[7]; - textpart[1] = '\0'; - textpos = 55; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)textpart); - clipdata += "\n \n"; - textdone = 1; - switch(strlen(addon)) { - case 2: - textpos = m_zintSymbol->width + xoffset - 10; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - case 5: - textpos = m_zintSymbol->width + xoffset - 23; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)addon); - clipdata += "\n \n"; - break; - } - - } - - xoffset -= comp_offset; - - switch(m_zintSymbol->symbology) { - case BARCODE_CODABLOCKF: - case BARCODE_HIBC_BLOCKF: - clipdata += QString(" \n") - .arg(xoffset * scaler, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg(m_zintSymbol->width * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg(xoffset * scaler, 0, 'f', 2) - .arg((m_zintSymbol->height + m_zintSymbol->border_width) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->width * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - if(m_zintSymbol->rows > 1) { - /* row binding */ - for(r = 1; r < m_zintSymbol->rows; r++) { - clipdata += QString(" \n") - .arg((xoffset + 11) * scaler, 0, 'f', 2) - .arg(((r * row_height) + yoffset - 1) * scaler, 0, 'f', 2) - .arg((m_zintSymbol->width - 24) * scaler, 0, 'f', 2) - .arg(2.0 * scaler, 0, 'f', 2); - } - } - break; - case BARCODE_MAXICODE: - /* Do nothing! (It's already been done) */ - break; - default: - if((m_zintSymbol->output_options & BARCODE_BIND) != 0) { - if((m_zintSymbol->rows > 1) && (is_stackable(m_zintSymbol->symbology) == 1)) { - /* row binding */ - for(r = 1; r < m_zintSymbol->rows; r++) { - clipdata += QString(" \n") - .arg(xoffset * scaler, 0, 'f', 2) - .arg(((r * row_height) + yoffset - 1) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->width * scaler, 0, 'f', 2) - .arg(2.0 * scaler, 0, 'f', 2); - } - } - } - if (((m_zintSymbol->output_options & BARCODE_BOX) != 0) || ((m_zintSymbol->output_options & BARCODE_BIND) != 0)) { - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg((m_zintSymbol->width + xoffset + xoffset) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg((m_zintSymbol->height + m_zintSymbol->border_width) * scaler, 0, 'f', 2) - .arg((m_zintSymbol->width + xoffset + xoffset) * scaler, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2); - } - if((m_zintSymbol->output_options & BARCODE_BOX) != 0) { - /* side bars */ - clipdata += QString(" \n") - .arg(0.0, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2) - .arg((m_zintSymbol->height + (2 * m_zintSymbol->border_width)) * scaler, 0, 'f', 2); - clipdata += QString(" \n") - .arg((m_zintSymbol->width + xoffset + xoffset - m_zintSymbol->border_width) * scaler, 0, 'f', 2) - .arg(0.0, 0, 'f', 2) - .arg(m_zintSymbol->border_width * scaler, 0, 'f', 2) - .arg((m_zintSymbol->height + (2 * m_zintSymbol->border_width)) * scaler, 0, 'f', 2); - } - break; - } - - /* Put the human readable text at the bottom */ - if((textdone == 0) && (ustrlen(m_zintSymbol->text) != 0)) { - textpos = m_zintSymbol->width / 2.0; - clipdata += QString(" fgcolour); - clipdata += "\" >\n "; - clipdata += QString((const char *)m_zintSymbol->text); - clipdata += "\n \n"; - } - clipdata += " \n"; - clipdata += "\n"; - - return clipdata; -} - const QString & QZint::lastError() { return m_lastError; diff --git a/backend_qt4/qzint.h b/backend_qt4/qzint.h index 724c4ba9..310cd4bf 100644 --- a/backend_qt4/qzint.h +++ b/backend_qt4/qzint.h @@ -87,16 +87,10 @@ public: bool hasErrors(); bool save_to_file(QString filename); - QString copy_to_clipboard(); + private: void encode(); int module_set(int y_coord, int x_coord); - void to_upper(unsigned char source[]); - int ustrlen(unsigned char data[]); - int ctoi(char source); - int is_stackable(int symbology); - int is_extendable(int symbology); - int roundup(float input); private: int m_symbol; diff --git a/frontend_qt4/mainWindow.ui b/frontend_qt4/mainWindow.ui index b3800c13..f1ca3af7 100644 --- a/frontend_qt4/mainWindow.ui +++ b/frontend_qt4/mainWindow.ui @@ -565,16 +565,6 @@ p, li { white-space: pre-wrap; } - - - - true - - - Copy - - - diff --git a/frontend_qt4/mainwindow.cpp b/frontend_qt4/mainwindow.cpp index 1ca3ec17..ccb88dbf 100644 --- a/frontend_qt4/mainwindow.cpp +++ b/frontend_qt4/mainwindow.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include "mainwindow.h" #include @@ -126,7 +125,6 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl) connect(btnSave, SIGNAL(clicked( bool )), SLOT(save())); connect(spnScale, SIGNAL(valueChanged( double )), SLOT(change_print_scale())); connect(btnExit, SIGNAL(clicked( bool )), SLOT(quit_now())); - connect(btnCopy, SIGNAL(clicked( bool )), SLOT(copy_to_clipboard())); } MainWindow::~MainWindow() @@ -158,18 +156,6 @@ bool MainWindow::save() return status; } -void MainWindow::copy_to_clipboard() -{ - QClipboard *clipboard = QApplication::clipboard(); - QString clip_data_str = m_bc.bc.copy_to_clipboard(); - QByteArray clip_data_ba = clip_data_str.toUtf8(); - QMimeData *clip_data_mime = new QMimeData; - clip_data_mime->setData("image/svg+xml", clip_data_ba); - clipboard->setMimeData(clip_data_mime, QClipboard::Clipboard); - - return; -} - void MainWindow::about() { QMessageBox::about(this, tr("About Zint"), diff --git a/frontend_qt4/mainwindow.h b/frontend_qt4/mainwindow.h index fe332eaa..305cd108 100644 --- a/frontend_qt4/mainwindow.h +++ b/frontend_qt4/mainwindow.h @@ -122,7 +122,6 @@ private slots: bool save(); void about(); void quit_now(); - void copy_to_clipboard(); private: /* void createActions();