⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qg_dlgtext.ui.h

📁 qcad2.05可用于windows和linux的源码
💻 H
字号:
/****************************************************************************** ui.h extension file, included from the uic-generated form implementation.**** If you wish to add, delete or rename functions or slots use** Qt Designer which will update this file, preserving your code. Create an** init() function in place of a constructor, and a destroy() function in** place of a destructor.*****************************************************************************/#include "rs_system.h"#include <qtextcodec.h>void QG_DlgText::init() {    cbFont->init();    font=NULL;    text = NULL;    isNew = false;    updateUniCharComboBox(0);    updateUniCharButton(0);}void QG_DlgText::updateUniCharComboBox(int) {    QString t = cbUniPage->currentText();    int i1 = t.find('-');    int i2 = t.find(']');    int min = t.mid(1, i1-1).toInt(NULL, 16);    int max = t.mid(i1+1, i2-i1-1).toInt(NULL, 16);    cbUniChar->clear();    for (int c=min; c<=max; c++) {        char buf[5];        sprintf(buf, "%04X", c);        cbUniChar->insertItem(QString("[%1] %2").arg(buf).arg(QChar(c)));    }}void QG_DlgText::destroy() {    if (isNew) {        RS_SETTINGS->beginGroup("/Draw");        RS_SETTINGS->writeEntry("/TextHeight", leHeight->text());        RS_SETTINGS->writeEntry("/TextFont", cbFont->currentText());        RS_SETTINGS->writeEntry("/TextDefault", (int)cbDefault->isOn());        RS_SETTINGS->writeEntry("/TextAlignment", getAlignment());        //RS_SETTINGS->writeEntry("/TextLetterSpacing", leLetterSpacing->text());        //RS_SETTINGS->writeEntry("/TextWordSpacing", leWordSpacing->text());        RS_SETTINGS->writeEntry("/TextLineSpacingFactor",                                leLineSpacingFactor->text());        RS_SETTINGS->writeEntry("/TextString", teText->text());        //RS_SETTINGS->writeEntry("/TextShape", getShape());        RS_SETTINGS->writeEntry("/TextAngle", leAngle->text());        //RS_SETTINGS->writeEntry("/TextRadius", leRadius->text());        RS_SETTINGS->endGroup();    }}/** * Sets the text entity represented by this dialog. */void QG_DlgText::setText(RS_Text& t, bool isNew) {    text = &t;    this->isNew = isNew;    QString fon;    QString height;    QString def;    QString alignment;    //QString letterSpacing;    //QString wordSpacing;    QString lineSpacingFactor;    QString str;    //QString shape;    QString angle;    if (isNew) {        RS_SETTINGS->beginGroup("/Draw");        //default font depending on locale        QCString iso = RS_System::localeToISO( QTextCodec::locale() );        if (iso=="ISO8859-1") {             fon = RS_SETTINGS->readEntry("/TextFont", "normallatin1");        } else if (iso=="ISO8859-2") {             fon = RS_SETTINGS->readEntry("/TextFont", "normallatin2");        } else if (iso=="ISO8859-7") {             fon = RS_SETTINGS->readEntry("/TextFont", "greekc");        } else if (iso=="KOI8-U" || iso=="KOI8-R") {             fon = RS_SETTINGS->readEntry("/TextFont", "cyrillic_ii");        } else {             fon = RS_SETTINGS->readEntry("/TextFont", "standard");		}        height = RS_SETTINGS->readEntry("/TextHeight", "1.0");        def = RS_SETTINGS->readEntry("/TextDefault", "1");        alignment = RS_SETTINGS->readEntry("/TextAlignment", "1");        //letterSpacing = RS_SETTINGS->readEntry("/TextLetterSpacing", "0");        //wordSpacing = RS_SETTINGS->readEntry("/TextWordSpacing", "0");        lineSpacingFactor = RS_SETTINGS->readEntry("/TextLineSpacingFactor", "1");        str = RS_SETTINGS->readEntry("/TextString", "");        //shape = RS_SETTINGS->readEntry("/TextShape", "0");        angle = RS_SETTINGS->readEntry("/TextAngle", "0");        //radius = RS_SETTINGS->readEntry("/TextRadius", "10");        RS_SETTINGS->endGroup();    } else {        fon = text->getStyle();        setFont(fon);        height = QString("%1").arg(text->getHeight());        if (font!=NULL) {            if (font->getLineSpacingFactor()==text->getLineSpacingFactor()) {                def = "1";            } else {                def = "0";            }        }        alignment = QString("%1").arg(text->getAlignment());        //QString letterSpacing = RS_SETTINGS->readEntry("/TextLetterSpacing", "0");        //QString wordSpacing = RS_SETTINGS->readEntry("/TextWordSpacing", "0");        lineSpacingFactor = QString("%1").arg(text->getLineSpacingFactor());/* // Doesn't make sense. We don't want to show native DXF strings in the Dialog.#if defined(OOPL_VERSION) && defined(Q_WS_WIN)         QCString iso = RS_System::localeToISO( QTextCodec::locale() );        QTextCodec *codec = QTextCodec::codecForName(iso);        if (codec!=NULL) {            str = codec->toUnicode(RS_FilterDXF::toNativeString(text->getText().local8Bit()));        } else {            str = RS_FilterDXF::toNativeString(text->getText().local8Bit());        }#else*/       str = text->getText();//#endif        //QString shape = RS_SETTINGS->readEntry("/TextShape", "0");        angle = QString("%1").arg(RS_Math::rad2deg(text->getAngle()));    }    cbDefault->setChecked(def=="1");    setFont(fon);    leHeight->setText(height);    setAlignment(alignment.toInt());    if (def!="1" || font==NULL) {        //leLetterSpacing->setText(letterSpacing);        //leWordSpacing->setText(wordSpacing);        leLineSpacingFactor->setText(lineSpacingFactor);    } else {        //leLetterSpacing->setText(font->getLetterSpacing());        //leWordSpacing->setText(font->getWordSpacing());        leLineSpacingFactor->setText(            QString("%1").arg(font->getLineSpacingFactor()));    }    teText->setText(str);    //setShape(shape.toInt());    leAngle->setText(angle);    //leRadius->setText(radius);    teText->setFocus();    teText->selectAll();}/** * Updates the text entity represented by the dialog to fit the choices of the user. */void QG_DlgText::updateText() {    if (text!=NULL) {        text->setStyle(cbFont->currentText());        text->setHeight(leHeight->text().toDouble());//fix for windows (causes troubles if locale returns en_us):/*#if defined(OOPL_VERSION) && defined(Q_WS_WIN)        QCString iso = RS_System::localeToISO( QTextCodec::locale() );        text->setText(            RS_FilterDXF::toNativeString(              QString::fromLocal8Bit( QTextCodec::codecForName( iso )->fromUnicode( teText->text() ) )            )        );#else*/        text->setText(RS_FilterDXF::toNativeString(teText->text()));//#endif        //text->setLetterSpacing(leLetterSpacing.toDouble());        text->setLineSpacingFactor(leLineSpacingFactor->text().toDouble());        text->setAlignment(getAlignment());        text->setAngle(RS_Math::deg2rad(leAngle->text().toDouble()));    }}void QG_DlgText::setAlignmentTL() {    setAlignment(1);}void QG_DlgText::setAlignmentTC() {    setAlignment(2);}void QG_DlgText::setAlignmentTR() {    setAlignment(3);}void QG_DlgText::setAlignmentML() {    setAlignment(4);}void QG_DlgText::setAlignmentMC() {    setAlignment(5);}void QG_DlgText::setAlignmentMR() {    setAlignment(6);}void QG_DlgText::setAlignmentBL() {    setAlignment(7);}void QG_DlgText::setAlignmentBC() {    setAlignment(8);}void QG_DlgText::setAlignmentBR() {    setAlignment(9);}void QG_DlgText::setAlignment(int a) {    bTL->setOn(false);    bTC->setOn(false);    bTR->setOn(false);    bML->setOn(false);    bMC->setOn(false);    bMR->setOn(false);    bBL->setOn(false);    bBC->setOn(false);    bBR->setOn(false);    switch (a) {    case 1:        bTL->setOn(true);        break;    case 2:        bTC->setOn(true);        break;    case 3:        bTR->setOn(true);        break;    case 4:        bML->setOn(true);        break;    case 5:        bMC->setOn(true);        break;    case 6:        bMR->setOn(true);        break;    case 7:        bBL->setOn(true);        break;    case 8:        bBC->setOn(true);        break;    case 9:        bBR->setOn(true);        break;    default:        break;    }}int QG_DlgText::getAlignment() {    if (bTL->isOn()) {        return 1;    } else if (bTC->isOn()) {        return 2;    } else if (bTR->isOn()) {        return 3;    } else if (bML->isOn()) {        return 4;    } else if (bMC->isOn()) {        return 5;    } else if (bMR->isOn()) {        return 6;    } else if (bBL->isOn()) {        return 7;    } else if (bBC->isOn()) {        return 8;    } else if (bBR->isOn()) {        return 9;    }    return 1;}void QG_DlgText::setFont(const QString& f) {    cbFont->setCurrentText(f);    font = cbFont->getFont();    defaultChanged(false);}/*void QG_DlgText::setShape(int s) {    switch (s) {    case 0:        rbStraight->setChecked(true);        break;    case 1:        rbRound1->setChecked(true);        break;    case 2:        rbRound2->setChecked(true);        break;    default:        break;    }} int QG_DlgText::getShape() {    if (rbStraight->isOn()) {        return 0;    } else if (rbRound1->isOn()) {        return 1;    } else if (rbRound2->isOn()) {        return 2;    }    return 1;}*/void QG_DlgText::defaultChanged(bool) {    if (cbDefault->isChecked() && font!=NULL) {        leLineSpacingFactor->setText(			QString("%1").arg(font->getLineSpacingFactor()));    }}void QG_DlgText::loadText() {    QString fn = QFileDialog::getOpenFileName( QString::null, QString::null,                 this);    if (!fn.isEmpty()) {        load(fn);    }}void QG_DlgText::load(const QString& fn) {    QFile f(fn);    if (!f.open(IO_ReadOnly)) {        return;    }    QTextStream ts(&f);    teText->setText(ts.read());}void QG_DlgText::saveText() {    QString fn = QFileDialog::getSaveFileName(QString::null, QString::null,                 this);    if (!fn.isEmpty()) {        save(fn);    }}void QG_DlgText::save(const QString& fn) {    QString text = teText->text();    QFile f(fn);    if (f.open(IO_WriteOnly)) {        QTextStream t(&f);        t << text;        f.close();    }}void QG_DlgText::insertSymbol(int) {    QString str = cbSymbol->currentText();    int i=str.find('(');    if (i!=-1) {        teText->insert(QString("%1").arg(str.at(i+1)));    }}void QG_DlgText::updateUniCharButton(int) {    QString t = cbUniChar->currentText();    int i1 = t.find(']');    int c = t.mid(1, i1-1).toInt(NULL, 16);    bUnicode->setText(QString("%1").arg(QChar(c)));}void QG_DlgText::insertChar() {    QString t = cbUniChar->currentText();    int i1 = t.find(']');    int c = t.mid(1, i1-1).toInt(NULL, 16);    teText->insert(QString("%1").arg(QChar(c)));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -