dyntrans-cvs Mailing List for Dynamic Qt translations
Status: Pre-Alpha
Brought to you by:
klichota
You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
(4) |
Dec
|
|---|
|
From: Krzysztof L. <kli...@us...> - 2004-11-18 10:18:08
|
Update of /cvsroot/dyntrans/qt-tr/src/styles In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24982/src/styles Modified Files: qcommonstyle.cpp qwindowsstyle.cpp Log Message: Removed modifications to Qt source, QTrString interface is better now. Index: qcommonstyle.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/styles/qcommonstyle.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- qcommonstyle.cpp 27 Sep 2004 23:47:17 -0000 1.2 +++ qcommonstyle.cpp 18 Nov 2004 10:17:52 -0000 1.3 @@ -2613,7 +2613,7 @@ } if (! mi->text().isNull()) { - if (((QString)mi->text()).find('\t') >= 0) + if (mi->text().find('\t') >= 0) w += 12; } Index: qwindowsstyle.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/styles/qwindowsstyle.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- qwindowsstyle.cpp 27 Sep 2004 23:47:18 -0000 1.2 +++ qwindowsstyle.cpp 18 Nov 2004 10:17:52 -0000 1.3 @@ -1224,7 +1224,7 @@ 2*windowsItemFrame); } - if (! mi->text().isNull() && ((QString)mi->text()).find('\t') >= 0) { + if (! mi->text().isNull() && mi->text().find('\t') >= 0) { if ( use2000style ) w += 20; else |
|
From: Krzysztof L. <kli...@us...> - 2004-11-18 10:18:08
|
Update of /cvsroot/dyntrans/qt-tr/tools/designer/designer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24982/tools/designer/designer Modified Files: listboxeditorimpl.cpp listvieweditorimpl.cpp mainwindow.cpp Log Message: Removed modifications to Qt source, QTrString interface is better now. Index: listvieweditorimpl.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/tools/designer/designer/listvieweditorimpl.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- listvieweditorimpl.cpp 25 Sep 2004 13:10:50 -0000 1.2 +++ listvieweditorimpl.cpp 18 Nov 2004 10:17:52 -0000 1.3 @@ -202,7 +202,7 @@ else colPreview->changeItem( c->text, colPreview->index( c->item ) ); c->item = colPreview->item( colPreview->currentItem() ); - colPixmap->setText( QString("") ); + colPixmap->setText( "" ); colPreview->blockSignals( FALSE ); colDeletePixmap->setEnabled( FALSE ); } @@ -274,7 +274,7 @@ if ( !c->pixmap.isNull() ) colPixmap->setPixmap( c->pixmap ); else - colPixmap->setText( QString("") ); + colPixmap->setText( "" ); colClickable->setChecked( c->clickable ); colResizable->setChecked( c->resizable ); } @@ -342,7 +342,7 @@ if ( i->pixmap( col ) ) itemPixmap->setPixmap( *i->pixmap( col ) ); else - itemPixmap->setText( QString("") ); + itemPixmap->setText( "" ); itemPixmap->blockSignals( FALSE ); } Index: listboxeditorimpl.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/tools/designer/designer/listboxeditorimpl.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- listboxeditorimpl.cpp 25 Sep 2004 13:10:50 -0000 1.2 +++ listboxeditorimpl.cpp 18 Nov 2004 10:17:52 -0000 1.3 @@ -46,7 +46,7 @@ itemText->setText( "" ); itemText->setEnabled( FALSE ); - itemPixmap->setText( QString("") ); + itemPixmap->setText( "" ); itemChoosePixmap->setEnabled( FALSE ); itemDeletePixmap->setEnabled( FALSE ); @@ -101,8 +101,8 @@ void ListBoxEditor::currentItemChanged( QListBoxItem *i ) { itemText->blockSignals( TRUE ); - itemText->setText( QString("") ); - itemPixmap->setText( QString("") ); + itemText->setText( "" ); + itemPixmap->setText( "" ); itemText->blockSignals( FALSE ); if ( !i ) { Index: mainwindow.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/tools/designer/designer/mainwindow.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mainwindow.cpp 25 Sep 2004 13:10:50 -0000 1.2 +++ mainwindow.cpp 18 Nov 2004 10:17:53 -0000 1.3 @@ -807,9 +807,9 @@ { AboutDialog dlg( this, 0, TRUE ); if ( singleProjectMode() ) { - dlg.aboutPixmap->setText( QString("") ); - dlg.aboutVersion->setText( QString("") ); - dlg.aboutCopyright->setText( QString("") ); + dlg.aboutPixmap->setText( "" ); + dlg.aboutVersion->setText( "" ); + dlg.aboutCopyright->setText( "" ); LanguageInterface *iface = MetaDataBase::languageInterface( eProject->language() ); dlg.aboutLicense->setText( iface->aboutText() ); } |
|
From: Krzysztof L. <kli...@us...> - 2004-11-18 10:18:08
|
Update of /cvsroot/dyntrans/qt-tr/src/widgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24982/src/widgets Modified Files: qcombobox.cpp Log Message: Removed modifications to Qt source, QTrString interface is better now. Index: qcombobox.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qcombobox.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- qcombobox.cpp 27 Sep 2004 23:47:18 -0000 1.2 +++ qcombobox.cpp 18 Nov 2004 10:17:52 -0000 1.3 @@ -630,7 +630,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( QString::fromLatin1(tmp), index ); else - d->popup()->insertItem( (QTrString)QString::fromLatin1(tmp), index, index ); + d->popup()->insertItem( QString::fromLatin1(tmp), index, index ); if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -658,7 +658,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( *it, index ); else - d->popup()->insertItem( (QTrString)*it, index, index ); + d->popup()->insertItem( *it, index, index ); if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -705,7 +705,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( QString::fromLatin1(strings[i]), index ); else - d->popup()->insertItem( (QTrString)QString::fromLatin1(strings[i]), index, index ); + d->popup()->insertItem( QString::fromLatin1(strings[i]), index, index ); i++; if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { @@ -734,7 +734,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( t, index ); else - d->popup()->insertItem( (QTrString)t, index, index ); + d->popup()->insertItem( t, index, index ); if ( index != cnt ) reIndex(); if ( index == d->current && d->current < count() ) { @@ -792,7 +792,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( pixmap, text, index ); else - d->popup()->insertItem( pixmap, (QTrString)text, index, index ); + d->popup()->insertItem( pixmap, text, index, index ); if ( index != cnt ) reIndex(); if ( index == d->current && d->current < count() ) { @@ -950,7 +950,7 @@ if ( d->usingListBox() ) d->listBox()->changeItem( t, index ); else - d->popup()->changeItem( (QTrString)t, index ); + d->popup()->changeItem( t, index ); if ( index == d->current ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -1531,12 +1531,12 @@ for(unsigned int i = 0; i < d->listBox()->count(); i++) { QListBoxItem *item = d->listBox()->item(i); if(item->rtti() == QListBoxText::RTTI) { - d->popup()->insertItem((QTrString)item->text(), i, i); + d->popup()->insertItem(item->text(), i, i); } else if(item->rtti() == QListBoxPixmap::RTTI) { if(item->pixmap()) - d->popup()->insertItem(QIconSet(*item->pixmap()), (QTrString)item->text(), i, i); + d->popup()->insertItem(QIconSet(*item->pixmap()), item->text(), i, i); else - d->popup()->insertItem((QTrString)item->text(), i, i); + d->popup()->insertItem(item->text(), i, i); } else { d->popup()->insertItem(new QComboBoxPopupItem(item), i, i); } |
|
From: Krzysztof L. <kli...@us...> - 2004-11-18 09:59:33
|
Update of /cvsroot/dyntrans/qt-tr/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21011 Modified Files: qtrhandler.cpp qtrhandler.h qtrstring.cpp qtrstring.h qtrstringelements.cpp qtrstringelements.h Log Message: * Added Arg string element. * Moved creating arg, number and untranslated elements to TrHandler. Index: qtrstring.h =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstring.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- qtrstring.h 27 Sep 2004 23:47:18 -0000 1.4 +++ qtrstring.h 18 Nov 2004 09:59:22 -0000 1.5 @@ -11,6 +11,9 @@ class QTrStringElement; +typedef signed long int SignedNumber; +typedef unsigned long int UnsignedNumber; + class QTrString { public: @@ -48,12 +51,12 @@ /** Returns translated message. */ - QString getTranslation() const; + QString getTranslation(QString variantTag = QString("")) const; /** Returns whether translation of string is valid. */ - bool translationValid() const; + bool translationValid(QString variantTag = QString("")) const; /** Returns translatable string element. Index: qtrhandler.h =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrhandler.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- qtrhandler.h 26 Sep 2004 22:59:23 -0000 1.2 +++ qtrhandler.h 18 Nov 2004 09:59:22 -0000 1.3 @@ -8,7 +8,7 @@ #define _QTRHANDLER_H_9933232 #include "qtrstring.h" - + /** Interface for class which can be registered to handle translation events. */ @@ -34,6 +34,60 @@ Returns whether widgets should draw attention to invalid translations. */ virtual bool highlightInvalidTranslations() = 0; + + // Elements creation methods + + /** + Creates string element for string which has been created using interface not allowing translations. + */ + virtual QTrStringElement* createUntranslatedElement( + QString const & originalText + ) = 0; + + /** + Creates string element for concatenation of strings. + + Ownership of subcomponents is passed to this object. + */ + virtual QTrStringElement* createConcatElement( + QTrStringElement *first, + QTrStringElement *second + ) = 0; + + /** + Creates string element for plural form of signed number. + + Ownership of subcomponents is passed to this object. + */ + virtual QTrStringElement* createPluralSignedElement( + QTrStringElement *text, + SignedNumber number, + int fieldWidth = 0, + int base = 10 + ) = 0; + + /** + Creates string element for plural form of unsigned number. + + Ownership of subcomponents is passed to this object. + */ + virtual QTrStringElement* createPluralUnsignedElement( + QTrStringElement *text, + UnsignedNumber number, + int fieldWidth = 0, + int base = 10 + ) = 0; + + /** + Creates string element for .arg() application operator. + + Ownership of subcomponents is passed to this object. + */ + virtual QTrStringElement* createArgElement( + QTrStringElement *base, + QTrStringElement *argument, + int fieldWidth = 0 + ) = 0; }; /** @@ -50,6 +104,35 @@ virtual bool openGlobalTranslationMenu(); virtual bool highlightInvalidTranslations(); + + virtual QTrStringElement* createUntranslatedElement( + QString const & originalText + ); + + virtual QTrStringElement* createConcatElement( + QTrStringElement *first, + QTrStringElement *second + ); + + virtual QTrStringElement* createPluralSignedElement( + QTrStringElement *text, + SignedNumber number, + int fieldWidth = 0, + int base = 10 + ); + + virtual QTrStringElement* createPluralUnsignedElement( + QTrStringElement *text, + UnsignedNumber number, + int fieldWidth = 0, + int base = 10 + ); + + virtual QTrStringElement* createArgElement( + QTrStringElement *base, + QTrStringElement *argument, + int fieldWidth = 0 + ); }; /** Index: qtrstring.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstring.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- qtrstring.cpp 27 Sep 2004 23:47:18 -0000 1.4 +++ qtrstring.cpp 18 Nov 2004 09:59:22 -0000 1.5 @@ -6,6 +6,7 @@ #include "qtrstring.h" #include "qtrstringelements.h" +#include "qapplication.h" QTrString::QTrString(QTrString const& other) { @@ -14,14 +15,18 @@ QTrString::QTrString( ): - element(new QUntranslatedTrStringElement("")) + element( + QApplication::getTrHandler()->createUntranslatedElement("") + ) { } QTrString::QTrString( QString const & qstring ): - element(new QUntranslatedTrStringElement(qstring.isNull() ? "" : qstring)) + element( + QApplication::getTrHandler()->createUntranslatedElement(qstring.isNull() ? "" : qstring) + ) { } @@ -30,7 +35,9 @@ QTrString::QTrString( char const* const string ): - element(new QUntranslatedTrStringElement(QString(string))) + element( + QApplication::getTrHandler()->createUntranslatedElement(QString(string)) + ) { } @@ -46,7 +53,7 @@ return this->element->getTranslation(variantTag); } -bool QTrString::translationValid(QString variantTag) const +bool QTrString::translationValid(QString /*variantTag*/) const { return this->element->translationValid(); } @@ -101,17 +108,63 @@ QTrString operator+(QTrString const & left, QTrString const & right) { - return new QConcatTrStringElement( - left.getRootTrStringElement()->copy(), - right.getRootTrStringElement()->copy() + return QTrString( + QApplication::getTrHandler()->createConcatElement( + left.getRootTrStringElement()->copy(), + right.getRootTrStringElement()->copy() + ) + ); +} + +QTrString QTrString::arg( long a, int fieldWidth, int base) const +{ + return QTrString( + QApplication::getTrHandler()->createPluralSignedElement( + this->getRootTrStringElement()->copy(), + a, + fieldWidth, + base + ) + ); +} + +QTrString QTrString::arg( ulong a, int fieldWidth, int base) const +{ + return QTrString( + QApplication::getTrHandler()->createPluralSignedElement( + this->getRootTrStringElement()->copy(), + a, + fieldWidth, + base + ) + ); +} + +QTrString QTrString::arg( const QString& a, int fieldWidth) const +{ + return QTrString( + QApplication::getTrHandler()->createArgElement( + this->getRootTrStringElement()->copy(), + ((QTrString)a).getRootTrStringElement()->copy(), + fieldWidth + ) + ); +} + +QTrString QTrString::arg( const QTrString& a, int fieldWidth) const +{ + return QTrString( + QApplication::getTrHandler()->createArgElement( + this->getRootTrStringElement()->copy(), + a.getRootTrStringElement()->copy(), + fieldWidth + ) ); } #if 0 -//FIXME: implement arg methods +//FIXME: implement all arg methods //arg methods - QTrString arg( long a, int fieldWidth = 0, int base = 10 ) const; - QTrString arg( ulong a, int fieldWidth = 0, int base = 10 ) const; QTrString arg( Q_LLONG a, int fieldwidth=0, int base=10 ) const; QTrString arg( Q_ULLONG a, int fieldwidth=0, int base=10 ) const; QTrString arg( int a, int fieldWidth = 0, int base = 10 ) const; @@ -122,18 +175,60 @@ int prec = -1 ) const; QTrString arg( char a, int fieldWidth = 0 ) const; QTrString arg( QChar a, int fieldWidth = 0 ) const; - QTrString arg( const QString& a, int fieldWidth = 0 ) const; QTrString arg( const QString& a1, const QString& a2 ) const; QTrString arg( const QString& a1, const QString& a2, const QString& a3 ) const; QTrString arg( const QString& a1, const QString& a2, const QString& a3, const QString& a4 ) const; - QTrString arg( const QTrString& a, int fieldWidth = 0 ) const; QTrString arg( const QTrString& a1, const QTrString& a2 ) const; QTrString arg( const QTrString& a1, const QTrString& a2, const QTrString& a3 ) const; QTrString arg( const QTrString& a1, const QTrString& a2, const QTrString& a3, const QTrString& a4 ) const; + //add these to interface + QString section( QChar sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; + QString section( char sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; +#ifndef QT_NO_CAST_ASCII + QString section( const char *in_sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; +#endif + QString section( const QString &in_sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const; +#ifndef QT_NO_REGEXP + QString section( const QRegExp ®, int start, int end = 0xffffffff, int flags = SectionDefault ) const; +#endif + + + QString left( uint len ) const; + QString right( uint len ) const; + QString mid( uint index, uint len=0xffffffff) const; + + QString leftJustify( uint width, QChar fill=' ', bool trunc=FALSE)const; + QString rightJustify( uint width, QChar fill=' ',bool trunc=FALSE)const; + + QString lower() const; + QString upper() const; + + QString stripWhiteSpace() const; + QString simplifyWhiteSpace() const; + + //add these too? + short toShort( bool *ok=0, int base=10 ) const; + ushort toUShort( bool *ok=0, int base=10 ) const; + int toInt( bool *ok=0, int base=10 ) const; + uint toUInt( bool *ok=0, int base=10 ) const; + long toLong( bool *ok=0, int base=10 ) const; + ulong toULong( bool *ok=0, int base=10 ) const; + Q_LLONG toLongLong( bool *ok=0, int base=10 ) const; + Q_ULLONG toULongLong( bool *ok=0, int base=10 ) const; + float toFloat( bool *ok=0 ) const; + double toDouble( bool *ok=0 ) const; + + //these for sure + QChar at( uint i ) const + { return i < d->len ? d->unicode[i] : QChar::null; } + QChar operator[]( int i ) const { return at((uint)i); } + QCharRef at( uint i ); + QCharRef operator[]( int i ); + #endif Index: qtrstringelements.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstringelements.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qtrstringelements.cpp 26 Sep 2004 22:59:23 -0000 1.3 +++ qtrstringelements.cpp 18 Nov 2004 09:59:22 -0000 1.4 @@ -24,11 +24,18 @@ return QTrString("Untranslated"); } -QString QUntranslatedTrStringElement::getTranslation() +QString QUntranslatedTrStringElement::getTranslation(QString /*variantTag*/) { + //variant not supported return this->getOriginalString(); } +QString QUntranslatedTrStringElement::getTranslationForm() +{ + //does not support forms + return QString(""); +} + QString QUntranslatedTrStringElement::getOriginalString() { return this->text; @@ -44,7 +51,7 @@ return this->getOriginalString(); } -bool QUntranslatedTrStringElement::translationValid() +bool QUntranslatedTrStringElement::translationValid(QString /*variantTag*/) { if (this->getOriginalString().isEmpty()) { @@ -80,14 +87,21 @@ return QTrString("StaticTranslated"); } -QString QStaticTranslatedTrStringElement::getTranslation() +QString QStaticTranslatedTrStringElement::getTranslation(QString /*variantTag*/) { - return this->getTranslationComponent(); + //variant not supported + return this->getTranslationComponent(); } - + +QString QStaticTranslatedTrStringElement::getTranslationForm() +{ + //does not support forms + return QString(""); +} + QString QStaticTranslatedTrStringElement::getOriginalString() { - return this->getOriginalComponent(); + return this->getOriginalComponent(); } QString QStaticTranslatedTrStringElement::getTranslationComponent() @@ -100,8 +114,14 @@ return this->originalText; } -bool QStaticTranslatedTrStringElement::translationValid() +bool QStaticTranslatedTrStringElement::translationValid(QString variantTag) { + if (variantTag.isEmpty() == FALSE) + { + //variant not supported, so it is not valid translation + return FALSE; + } + return TRUE; } @@ -142,11 +162,18 @@ return QTrString("Concat"); } -QString QConcatTrStringElement::getTranslation() +QString QConcatTrStringElement::getTranslation(QString /*variantTag*/) { + //variant not supported return this->first->getTranslation() + this->second->getTranslation(); } +QString QConcatTrStringElement::getTranslationForm() +{ + //does not support forms + return QString(""); +} + QString QConcatTrStringElement::getOriginalString() { return this->first->getOriginalString() + this->second->getOriginalString(); @@ -162,8 +189,13 @@ return QString(""); } -bool QConcatTrStringElement::translationValid() +bool QConcatTrStringElement::translationValid(QString variantTag) { + if (variantTag.isEmpty() == FALSE) + { + return FALSE; + } + if (this->first->translationValid() == FALSE) { return FALSE; @@ -185,13 +217,246 @@ ); } -std::vector<std::pair<QTrString, QTrStringElement*> > QConcatTrStringElement::getSubcomponents() +CompoundQTrStringElementInterface::SubcomponentsList QConcatTrStringElement::getSubcomponents() { - std::vector<std::pair<QTrString, QTrStringElement*> > subcomponents; + SubcomponentsList subcomponents; subcomponents.push_back(std::make_pair(QTrString("Left"), this->first)); subcomponents.push_back(std::make_pair(QTrString("Right"), this->second)); return subcomponents; } +/*************************** QArgTrStringElement ************************************/ + +QArgTrStringElement::QArgTrStringElement( + QTrStringElement *_base, + QTrStringElement *_argument, + int _fieldWidth + ): + base(_base), + argument(_argument), + fieldWidth(_fieldWidth) +{ + ASSERT(this->base != NULL); + ASSERT(this->argument != NULL); +} + +QArgTrStringElement::~QArgTrStringElement() +{ + delete this->base; + delete this->argument; +} + +QTrString QArgTrStringElement::getElementName() +{ + return QTrString("Arg"); +} + +QString QArgTrStringElement::getTranslation(QString /*variantTag*/) +{ + //variant not supported + return this->base->getTranslation().arg( + this->argument->getTranslation(), + this->fieldWidth + ); +} + +QString QArgTrStringElement::getTranslationForm() +{ + //does not support forms + return QString(""); +} + +QString QArgTrStringElement::getOriginalString() +{ + //NOTE: no fieldWidth used as original string should not be padded, fieldWidth is just formatting + return this->base->getOriginalString().arg( + this->argument->getOriginalString() + ); +} + +QString QArgTrStringElement::getTranslationComponent() +{ + return QString(""); +} + +QString QArgTrStringElement::getOriginalComponent() +{ + return QString(""); +} + +bool QArgTrStringElement::translationValid(QString variantTag) +{ + if (variantTag.isEmpty() == FALSE) + { + return FALSE; + } + + if (this->base->translationValid() == FALSE) + { + return FALSE; + } + + if (this->argument->translationValid() == FALSE) + { + return FALSE; + } + + return TRUE; +} + +QArgTrStringElement *QArgTrStringElement::copy() +{ + return new QArgTrStringElement( + this->base->copy(), + this->argument->copy(), + this->fieldWidth + ); +} +CompoundQTrStringElementInterface::SubcomponentsList QArgTrStringElement::getSubcomponents() +{ + SubcomponentsList subcomponents; + + subcomponents.push_back(std::make_pair(QTrString("Base"), this->base)); + subcomponents.push_back(std::make_pair(QTrString("Argument"), this->argument)); + + return subcomponents; +} + +/************************************** QNumberTrStringElement ********************************/ + +QNumberTrStringElement::QNumberTrStringElement( + QTrStringElement *_text, + SignedNumber _number, + int _fieldWidth, + int _base + ): + text(_text), + isSigned(TRUE), + fieldWidth(_fieldWidth), + base(_base) +{ + this->getSignedNumberRef() = _number; + ASSERT(this->text != NULL); +} + +QNumberTrStringElement::QNumberTrStringElement( + QTrStringElement *_text, + UnsignedNumber _number, + int _fieldWidth, + int _base + ): + text(_text), + isSigned(FALSE), + fieldWidth(_fieldWidth), + base(_base) +{ + this->getUnsignedNumberRef() = _number; + ASSERT(this->text != NULL); +} + +QNumberTrStringElement::~QNumberTrStringElement() +{ + delete this->text; +} + +QTrString QNumberTrStringElement::getElementName() +{ + return QTrString("Number"); +} + +QString QNumberTrStringElement::getTranslation(QString /*variantTag*/) +{ + //variant not supported + QString translatedText = this->text->getTranslation(); + + QString result; + + if (this->isSigned) + { + result = translatedText.arg( + this->getSignedNumberRef(), + this->fieldWidth, + this->base + ); + } + else + { + result = translatedText.arg( + this->getUnsignedNumberRef(), + this->fieldWidth, + this->base + ); + } + + return result; +} + +QString QNumberTrStringElement::getTranslationForm() +{ + //not supported + return QString(""); +} + +QString QNumberTrStringElement::getOriginalString() +{ + return this->text->getOriginalString(); +} + +QString QNumberTrStringElement::getTranslationComponent() +{ + return this->text->getTranslationComponent(); +} + +QString QNumberTrStringElement::getOriginalComponent() +{ + return this->text->getOriginalComponent(); +} + +bool QNumberTrStringElement::translationValid(QString /*variantTag*/) +{ + // translation always invalid as we don't support per-language plural forms + return FALSE; +} + +QNumberTrStringElement *QNumberTrStringElement::copy() +{ + if (this->isSigned) + { + return new QNumberTrStringElement( + this->text->copy(), + this->getSignedNumberRef(), + this->fieldWidth, + this->base + ); + } + else + { + return new QNumberTrStringElement( + this->text->copy(), + this->getUnsignedNumberRef(), + this->fieldWidth, + this->base + ); + } +} + +CompoundQTrStringElementInterface::SubcomponentsList QNumberTrStringElement::getSubcomponents() +{ + SubcomponentsList subcomponents; + + subcomponents.push_back(std::make_pair(QTrString("Text"), this->text)); + + return subcomponents; +} + +UnsignedNumber & QNumberTrStringElement::getUnsignedNumberRef() +{ + return this->number; +} + +SignedNumber & QNumberTrStringElement::getSignedNumberRef() +{ + return (SignedNumber&)this->number; +} Index: qtrhandler.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrhandler.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- qtrhandler.cpp 26 Sep 2004 22:59:23 -0000 1.2 +++ qtrhandler.cpp 18 Nov 2004 09:59:22 -0000 1.3 @@ -5,6 +5,9 @@ */ #include "qtrhandler.h" +#include "qmessagebox.h" +#include "qapplication.h" +#include "qtrstringelements.h" QTrHandlerDefault defaultTrHandler; @@ -12,13 +15,80 @@ QTrString & string ) { + QMessageBox::information(NULL, QApplication::tr("Editing translation not possible"), QApplication::tr("Editing translation of %1 not possible").arg(string)); + + return FALSE; } bool QTrHandlerDefault::openGlobalTranslationMenu() { + QMessageBox::information(NULL, QApplication::tr("No translations menu"), QApplication::tr("No translations menu")); + + return FALSE; } bool QTrHandlerDefault::highlightInvalidTranslations() { return FALSE; } + +QTrStringElement* QTrHandlerDefault::createUntranslatedElement( + QString const & originalText + ) +{ + return new QUntranslatedTrStringElement(originalText); +} + +QTrStringElement* QTrHandlerDefault::createConcatElement( + QTrStringElement *first, + QTrStringElement *second + ) +{ + return new QConcatTrStringElement( + first, + second + ); +} + +QTrStringElement* QTrHandlerDefault::createPluralSignedElement( + QTrStringElement *text, + SignedNumber number, + int fieldWidth, + int base + ) +{ + return new QNumberTrStringElement( + text, + number, + fieldWidth, + base + ); +} + +QTrStringElement* QTrHandlerDefault::createPluralUnsignedElement( + QTrStringElement *text, + UnsignedNumber number, + int fieldWidth, + int base + ) +{ + return new QNumberTrStringElement( + text, + number, + fieldWidth, + base + ); +} + +QTrStringElement* QTrHandlerDefault::createArgElement( + QTrStringElement *base, + QTrStringElement *argument, + int fieldWidth + ) +{ + return new QArgTrStringElement( + base, + argument, + fieldWidth + ); +} Index: qtrstringelements.h =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstringelements.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qtrstringelements.h 26 Sep 2004 22:59:23 -0000 1.3 +++ qtrstringelements.h 18 Nov 2004 09:59:22 -0000 1.4 @@ -22,7 +22,15 @@ If translation is not available, returns original string. Example: "Konfiguruj: Konqueror" */ - virtual QString getTranslation() = 0; + virtual QString getTranslation(QString variantTag = QString("")) = 0; + + /** + Returns form of given string. + + Form is independent of variant (thus it is not passed), but + it can depend on forms of subcomponents. + */ + virtual QString getTranslationForm() = 0; /** Returns (evaluated) original, untranslated string. @@ -51,7 +59,7 @@ Invalid translation includes creation through QString conversion, lack of translation, etc. */ - virtual bool translationValid() = 0; + virtual bool translationValid(QString variantTag = QString("")) = 0; /** Performs deep copy of string element. @@ -104,7 +112,9 @@ public: QUntranslatedTrStringElement(QString const & text); - virtual QString getTranslation(); + virtual QString getTranslation(QString variantTag = QString("")); + + virtual QString getTranslationForm(); virtual QString getOriginalString(); @@ -112,7 +122,7 @@ virtual QString getOriginalComponent(); - virtual bool translationValid(); + virtual bool translationValid(QString variantTag = QString("")); virtual QUntranslatedTrStringElement *copy(); @@ -139,13 +149,10 @@ QString const & translatedText ); - virtual QString getTranslation(); + virtual QString getTranslation(QString variantTag = QString("")); - /** - Updates currently stored translation. - - EditableQTrStringElementInterface interface. - */ + virtual QString getTranslationForm(); + virtual void updateTranslation(QString const & translatedText); virtual QString getOriginalString(); @@ -154,7 +161,7 @@ virtual QString getOriginalComponent(); - virtual bool translationValid(); + virtual bool translationValid(QString variantTag = QString("")); virtual QStaticTranslatedTrStringElement *copy(); @@ -162,6 +169,11 @@ virtual QTrString getElementName(); + /** + Updates currently stored translation. + + EditableQTrStringElementInterface interface. + */ protected: QString originalText; QString translatedText; @@ -179,26 +191,28 @@ Ownership of both string elements is passed to this object. */ QConcatTrStringElement( - QTrStringElement *_first, - QTrStringElement *_second + QTrStringElement *first, + QTrStringElement *second ); virtual ~QConcatTrStringElement(); virtual QTrString getElementName(); - virtual QString getTranslation(); + virtual QString getTranslation(QString variantTag = QString("")); + virtual QString getTranslationForm(); + virtual QString getOriginalString(); virtual QString getTranslationComponent(); virtual QString getOriginalComponent(); - virtual bool translationValid(); + virtual bool translationValid(QString variantTag = QString("")); - virtual QConcatTrStringElement *copy(); - + virtual QConcatTrStringElement *copy(); + /** CompoundQTrStringElementInterface interface. */ @@ -208,5 +222,133 @@ QTrStringElement *second; }; +/** + Element representing applying argument to other string. +*/ +class QArgTrStringElement: + public QTrStringElement, + public CompoundQTrStringElementInterface +{ +public: + /** + Ownership of both string elements is passed to this object. + */ + QArgTrStringElement( + QTrStringElement *base, + QTrStringElement *argument, + int fieldWidth = 0 + ); + + virtual ~QArgTrStringElement(); + + virtual QTrString getElementName(); + + virtual QString getTranslation(QString variantTag = QString("")); + + virtual QString getTranslationForm(); + + virtual QString getOriginalString(); + + virtual QString getTranslationComponent(); + + virtual QString getOriginalComponent(); + + virtual bool translationValid(QString variantTag = QString("")); + + virtual QArgTrStringElement *copy(); + + /** + CompoundQTrStringElementInterface interface. + */ + virtual SubcomponentsList getSubcomponents(); + +protected: + QTrStringElement *base; + QTrStringElement *argument; + int fieldWidth; +}; + +/** + Element representing applying number to other string. + + @attention This is simple implementation which does not differentiate plural forms! +*/ +class QNumberTrStringElement: + public QTrStringElement, + public CompoundQTrStringElementInterface +{ +public: + /** + Constructor for unsigned case. + + Ownership of text element is passed to this object. + */ + QNumberTrStringElement( + QTrStringElement *text, + UnsignedNumber number, + int fieldWidth = 0, + int base = 10 + ); + + /** + Constructor for signed case. + + Ownership of text element is passed to this object. + */ + QNumberTrStringElement( + QTrStringElement *text, + SignedNumber number, + int fieldWidth = 0, + int base = 10 + ); + + virtual ~QNumberTrStringElement(); + + virtual QTrString getElementName(); + + virtual QString getTranslation(QString variantTag = QString("")); + + virtual QString getTranslationForm(); + + virtual QString getOriginalString(); + + virtual QString getTranslationComponent(); + + virtual QString getOriginalComponent(); + + virtual bool translationValid(QString variantTag = QString("")); + + virtual QNumberTrStringElement *copy(); + + /** + CompoundQTrStringElementInterface interface. + */ + virtual SubcomponentsList getSubcomponents(); + +protected: + QTrStringElement *text; + + /** + Number field, can keep signed or unsigned number, depending on isSigned field. + + This is hack to avoid multiple implementation. + FIXME: split this class into two classes for signed and unsigned case. + */ + UnsignedNumber number; + bool isSigned; + + int fieldWidth; + int base; + + /** + Auxiliary function to cast number field to signed number. + */ + UnsignedNumber & getUnsignedNumberRef(); + + /** + Auxiliary function to cast number field to unsigned number. + */ + SignedNumber & getSignedNumberRef(); +}; #endif //#ifndef _QTRSTRINGELEMENTS_H_2293034 |
|
From: Krzysztof L. <kli...@us...> - 2004-09-28 10:29:27
|
Update of /cvsroot/dyntrans/webpage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1924 Modified Files: header.inc.php Log Message: Fixed wrong link to SF project page. Index: header.inc.php =================================================================== RCS file: /cvsroot/dyntrans/webpage/header.inc.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- header.inc.php 25 Sep 2004 13:00:24 -0000 1.8 +++ header.inc.php 28 Sep 2004 10:29:15 -0000 1.9 @@ -37,7 +37,7 @@ <!-- *************************************************** Menu *************************************** --> <h2><a href="index.php">Main page</a></h2> <h2><a href="screenshots.php">Screenshots</a></h2> - <h2><a href="http://sourceforge.net/projects/kdei18n-pl/">SourceForge project</a></h2> + <h2><a href="http://sourceforge.net/projects/dyntrans/">SourceForge project</a></h2> <!-- *************************************************** End menu *************************************** --> </td> |
|
From: Krzysztof L. <kli...@us...> - 2004-09-27 23:51:16
|
Update of /cvsroot/dyntrans/webpage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12928 Modified Files: index.php Log Message: * Added description of problems with dynamically loaded styles. Index: index.php =================================================================== RCS file: /cvsroot/dyntrans/webpage/index.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- index.php 25 Sep 2004 13:52:07 -0000 1.6 +++ index.php 27 Sep 2004 23:51:05 -0000 1.7 @@ -49,9 +49,18 @@ </ol> <h3>Troubleshooting</h3> +<ul> +<li> If qtrstringtest cannot find modified Qt library, set LD_LIBRARY_PATH to point to directory with compiled libs before starting application (in console). For example:<br> <div id="command">export LD_LIBRARY_PATH=/home/krzysiek/development/qttr/qt-tr/lib</div> <div id="command">./qtrstringtest</div> +</li> +<li> +Due to binary compatibility applications compiled for Qt-tr must not be run with style different than the ones supplied with Qt (for example Motif). +Styles are dynamic libraries, so they must be binary-compatible with Qt with which application is running. If you want to use some style with Qt-tr +application you can recompile it with Qt-tr headers. +</li> +</ul> <h3>Using in other applications</h3> <p> |
|
From: Krzysztof L. <kli...@us...> - 2004-09-27 23:49:58
|
Update of /cvsroot/dyntrans/qtrstringtest/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12541/src Modified Files: qtrstringtest.cpp Log Message: * Added menu with translated menu entries to test QPopupMenu translation edition. * Set style to "motif" statically as dynamically loaded styles are not binary compatible and cause segfault. Index: qtrstringtest.cpp =================================================================== RCS file: /cvsroot/dyntrans/qtrstringtest/src/qtrstringtest.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qtrstringtest.cpp 26 Sep 2004 10:43:43 -0000 1.3 +++ qtrstringtest.cpp 27 Sep 2004 23:49:46 -0000 1.4 @@ -55,6 +55,7 @@ qtrstringtest::qtrstringtest() : QMainWindow( 0, "qtrstringtest", WDestructiveClose ) { + QApplication::setStyle("motif"); QApplication::installTrHandler(&basicTrHandler); printer = new QPrinter; @@ -145,6 +146,12 @@ help->insertItem( tr("What's &This"), this, SLOT(whatsThis()), SHIFT+Key_F1 ); this->e = new QTextEdit( this, "editor" ); + this->e->hide(); + + QPopupMenu *translatedMenu = new QPopupMenu( this ); + menuBar()->insertItem(dyntr("&Translated menu"), translatedMenu); + translatedMenu->insertItem( dyntr("T&his is translated entry"), this, SLOT(about())); + translatedMenu->insertItem( dyntr("Try &changing accelerators"), this, SLOT(about())); QVBox *topWidget = new QVBox(this); |
|
From: Krzysztof L. <kli...@us...> - 2004-09-27 23:47:33
|
Update of /cvsroot/dyntrans/qt-tr/src/widgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11913/src/widgets Modified Files: qcombobox.cpp qlabel.cpp qlineedit.cpp qmenudata.cpp qmenudata.h qpopupmenu.cpp qtextedit.cpp Log Message: * Implemented editing translation for QPopupMenu. * Added find/findRev/contains methods to QTrString. * Added declaration of arg() methods to QTrString. * Added QTrString::operator!() and QTrString::null. Index: qmenudata.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qmenudata.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qmenudata.cpp 25 Sep 2004 11:28:22 -0000 1.1.1.1 +++ qmenudata.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -243,7 +243,7 @@ functions. */ -int QMenuData::insertAny( const QString *text, const QPixmap *pixmap, +int QMenuData::insertAny( const QTrString *text, const QPixmap *pixmap, QPopupMenu *popup, const QIconSet* iconset, int id, int index, QWidget* widget, QCustomMenuItem* custom ) { @@ -272,11 +272,11 @@ mi->is_separator = TRUE; // separator } else { #ifndef Q_OS_TEMP - mi->text_data = text?*text:QString(); + mi->text_data = text?*text:QTrString(); #else - QString newText( *text ); + QTrString newText( *text ); newText.truncate( newText.findRev( '\t' ) ); - mi->text_data = newText.isEmpty()?QString():newText; + mi->text_data = newText.isEmpty()?QTrString():newText; #endif #ifndef QT_NO_ACCEL mi->accel_key = Qt::Key_unknown; @@ -407,7 +407,7 @@ qnamespace.h */ -int QMenuData::insertItem( const QString &text, +int QMenuData::insertItem( const QTrString &text, const QObject *receiver, const char* member, const QKeySequence& accel, int id, int index ) { @@ -435,7 +435,7 @@ */ int QMenuData::insertItem( const QIconSet& icon, - const QString &text, + const QTrString &text, const QObject *receiver, const char* member, const QKeySequence& accel, int id, int index ) { @@ -523,7 +523,7 @@ \sa removeItem(), changeItem(), setAccel(), connectItem() */ -int QMenuData::insertItem( const QString &text, int id, int index ) +int QMenuData::insertItem( const QTrString &text, int id, int index ) { return insertAny( &text, 0, 0, 0, id, index ); } @@ -541,7 +541,7 @@ */ int QMenuData::insertItem( const QIconSet& icon, - const QString &text, int id, int index ) + const QTrString &text, int id, int index ) { return insertAny( &text, 0, 0, &icon, id, index ); } @@ -561,7 +561,7 @@ \sa removeItem(), changeItem(), setAccel(), connectItem() */ -int QMenuData::insertItem( const QString &text, QPopupMenu *popup, +int QMenuData::insertItem( const QTrString &text, QPopupMenu *popup, int id, int index ) { return insertAny( &text, 0, popup, 0, id, index ); @@ -584,7 +584,7 @@ */ int QMenuData::insertItem( const QIconSet& icon, - const QString &text, QPopupMenu *popup, + const QTrString &text, QPopupMenu *popup, int id, int index ) { return insertAny( &text, 0, popup, &icon, id, index ); @@ -937,10 +937,10 @@ \sa changeItem(), pixmap(), iconSet() */ -QString QMenuData::text( int id ) const +QTrString QMenuData::text( int id ) const { QMenuItem *mi = findItem( id ); - return mi ? mi->text() : QString::null; + return mi ? mi->text() : QTrString::null; } /*! @@ -957,7 +957,7 @@ } /*! - \fn void QMenuData::changeItem( const QString &, int ) + \fn void QMenuData::changeItem( const QTrString &, int ) \obsolete Changes the text of the menu item \a id. If the item has an icon, @@ -976,7 +976,7 @@ */ /*! - \fn void QMenuData::changeItem( const QIconSet &, const QString &, int ) + \fn void QMenuData::changeItem( const QIconSet &, const QTrString &, int ) \obsolete Changes the icon and text of the menu item \a id. @@ -991,7 +991,7 @@ \sa text() */ -void QMenuData::changeItem( int id, const QString &text ) +void QMenuData::changeItem( int id, const QTrString &text ) { QMenuData *parent; QMenuItem *mi = findItem( id, &parent ); @@ -1004,7 +1004,7 @@ } mi->text_data = text; #ifndef QT_NO_ACCEL - if ( !mi->accel_key && text.find( '\t' ) != -1 ) + if ( !mi->accel_key && ((QString)text).find( '\t' ) != -1 ) mi->accel_key = Qt::Key_unknown; #endif parent->menuContentsChanged(); @@ -1031,7 +1031,7 @@ i->height() == pixmap.height() && !mi->text(); if ( !mi->text_data.isNull() ) // delete text - mi->text_data = QString::null; + mi->text_data = QTrString::null; if ( !pixmap.isNull() ) mi->pixmap_data = new QPixmap( pixmap ); else @@ -1053,7 +1053,7 @@ \sa pixmap() */ -void QMenuData::changeItem( int id, const QIconSet &icon, const QString &text ) +void QMenuData::changeItem( int id, const QIconSet &icon, const QTrString &text ) { changeItem( id, text ); changeItemIconSet( id, icon ); @@ -1419,7 +1419,7 @@ \sa whatsThis() */ -void QMenuData::setWhatsThis( int id, const QString& text ) +void QMenuData::setWhatsThis( int id, const QTrString& text ) { QMenuData *parent; @@ -1432,15 +1432,15 @@ /*! Returns the What's This help text for the item with identifier \a - id or QString::null if no text has yet been defined. + id or QTrString::null if no text has yet been defined. \sa setWhatsThis() */ -QString QMenuData::whatsThis( int id ) const +QTrString QMenuData::whatsThis( int id ) const { QMenuItem *mi = findItem( id ); - return mi? mi->whatsThis() : QString::null; + return mi? mi->whatsThis() : QTrString::null; } Index: qcombobox.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qcombobox.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qcombobox.cpp 25 Sep 2004 11:29:21 -0000 1.1.1.1 +++ qcombobox.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -630,7 +630,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( QString::fromLatin1(tmp), index ); else - d->popup()->insertItem( QString::fromLatin1(tmp), index, index ); + d->popup()->insertItem( (QTrString)QString::fromLatin1(tmp), index, index ); if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -658,7 +658,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( *it, index ); else - d->popup()->insertItem( *it, index, index ); + d->popup()->insertItem( (QTrString)*it, index, index ); if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -705,7 +705,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( QString::fromLatin1(strings[i]), index ); else - d->popup()->insertItem( QString::fromLatin1(strings[i]), index, index ); + d->popup()->insertItem( (QTrString)QString::fromLatin1(strings[i]), index, index ); i++; if ( index++ == d->current && d->current < count() ) { if ( d->ed ) { @@ -734,7 +734,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( t, index ); else - d->popup()->insertItem( t, index, index ); + d->popup()->insertItem( (QTrString)t, index, index ); if ( index != cnt ) reIndex(); if ( index == d->current && d->current < count() ) { @@ -792,7 +792,7 @@ if ( d->usingListBox() ) d->listBox()->insertItem( pixmap, text, index ); else - d->popup()->insertItem( pixmap, text, index, index ); + d->popup()->insertItem( pixmap, (QTrString)text, index, index ); if ( index != cnt ) reIndex(); if ( index == d->current && d->current < count() ) { @@ -950,7 +950,7 @@ if ( d->usingListBox() ) d->listBox()->changeItem( t, index ); else - d->popup()->changeItem( t, index ); + d->popup()->changeItem( (QTrString)t, index ); if ( index == d->current ) { if ( d->ed ) { d->ed->setText( text( d->current ) ); @@ -1531,12 +1531,12 @@ for(unsigned int i = 0; i < d->listBox()->count(); i++) { QListBoxItem *item = d->listBox()->item(i); if(item->rtti() == QListBoxText::RTTI) { - d->popup()->insertItem(item->text(), i, i); + d->popup()->insertItem((QTrString)item->text(), i, i); } else if(item->rtti() == QListBoxPixmap::RTTI) { if(item->pixmap()) - d->popup()->insertItem(QIconSet(*item->pixmap()), item->text(), i, i); + d->popup()->insertItem(QIconSet(*item->pixmap()), (QTrString)item->text(), i, i); else - d->popup()->insertItem(item->text(), i, i); + d->popup()->insertItem((QTrString)item->text(), i, i); } else { d->popup()->insertItem(new QComboBoxPopupItem(item), i, i); } Index: qpopupmenu.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qpopupmenu.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qpopupmenu.cpp 25 Sep 2004 11:29:26 -0000 1.1.1.1 +++ qpopupmenu.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -1592,6 +1592,19 @@ e->pos().y() >= contentsRect().height() - sh))) //down return; + if ( e->button() == RightButton ) { + int item = itemAtPos( e->pos() ); + if ( item == -1 ) { + return; + } + register QMenuItem *mi = mitems->at(item); + //FIXME: what about whatsthis text? + if (QApplication::getTrHandler()->editTranslation(mi->trTextRef()) == TRUE) + { + this->updateItem(item); + } + } + mouseBtDn = TRUE; // mouse button down int item = itemAtPos( e->pos() ); if ( item == -1 ) { @@ -1601,6 +1614,8 @@ return; } register QMenuItem *mi = mitems->at(item); + + if ( item != actItem ) // new item activated setActiveItem( item ); Index: qmenudata.h =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qmenudata.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qmenudata.h 25 Sep 2004 11:29:46 -0000 1.1.1.1 +++ qmenudata.h 27 Sep 2004 23:47:18 -0000 1.2 @@ -43,6 +43,7 @@ #include "qiconset.h" // conversion QPixmap->QIconset #include "qkeysequence.h" #include "qstring.h" +#include "qtrstring.h" #include "qsignal.h" #include "qfont.h" #endif // QT_H @@ -65,8 +66,10 @@ int id() const { return ident; } QIconSet *iconSet() const { return iconset_data; } - QString text() const { return text_data; } - QString whatsThis() const { return whatsthis_data; } + QTrString text() const { return text_data; } + QTrString & trTextRef() { return text_data; } + QTrString whatsThis() const { return whatsthis_data; } + QTrString & trWhatsThisRef() { return whatsthis_data; } QPixmap *pixmap() const { return pixmap_data; } QPopupMenu *popup() const { return popup_menu; } QWidget *widget() const { return widget_item; } @@ -82,16 +85,16 @@ bool isVisible() const { return is_visible; } bool isEnabledAndVisible() const { return is_enabled && is_visible; } - void setText( const QString &text ) { text_data = text; } + void setText( const QTrString &text ) { text_data = text; } void setDirty( bool dirty ) { is_dirty = dirty; } void setVisible( bool visible ) { is_visible = visible; } - void setWhatsThis( const QString &text ) { whatsthis_data = text; } + void setWhatsThis( const QTrString &text ) { whatsthis_data = text; } private: int ident; // item identifier QIconSet *iconset_data; // icons - QString text_data; // item text - QString whatsthis_data; // item Whats This help text + QTrString text_data; // item text + QTrString whatsthis_data; // item Whats This help text QPixmap *pixmap_data; // item pixmap QPopupMenu *popup_menu; // item popup menu QWidget *widget_item; // widget menu item @@ -145,13 +148,26 @@ uint count() const; + int insertItem( const QTrString &text, + const QObject *receiver, const char* member, + const QKeySequence& accel = 0, int id = -1, int index = -1 ); int insertItem( const QString &text, const QObject *receiver, const char* member, + const QKeySequence& accel = 0, int id = -1, int index = -1 ) + { + return this->insertItem((QTrString)text, receiver, member, accel, id, index); + } + int insertItem( const QIconSet& icon, + const QTrString &text, + const QObject *receiver, const char* member, const QKeySequence& accel = 0, int id = -1, int index = -1 ); int insertItem( const QIconSet& icon, const QString &text, const QObject *receiver, const char* member, - const QKeySequence& accel = 0, int id = -1, int index = -1 ); + const QKeySequence& accel = 0, int id = -1, int index = -1 ) + { + return this->insertItem(icon, (QTrString)text, receiver, member, accel, id, index); + } int insertItem( const QPixmap &pixmap, const QObject *receiver, const char* member, const QKeySequence& accel = 0, int id = -1, int index = -1 ); @@ -160,15 +176,35 @@ const QObject *receiver, const char* member, const QKeySequence& accel = 0, int id = -1, int index = -1 ); - int insertItem( const QString &text, int id=-1, int index=-1 ); + int insertItem( const QTrString &text, int id=-1, int index=-1 ); + int insertItem( const QString &text, int id=-1, int index=-1 ) + { + return this->insertItem((QTrString)text, id, index); + } int insertItem( const QIconSet& icon, - const QString &text, int id=-1, int index=-1 ); + const QTrString &text, int id=-1, int index=-1 ); + int insertItem( const QIconSet& icon, + const QString &text, int id=-1, int index=-1 ) + { + return this->insertItem(icon, (QTrString)text, id, index); + } + int insertItem( const QTrString &text, QPopupMenu *popup, + int id=-1, int index=-1 ); int insertItem( const QString &text, QPopupMenu *popup, + int id=-1, int index=-1 ) + { + return this->insertItem((QTrString)text, popup, id, index); + } + int insertItem( const QIconSet& icon, + const QTrString &text, QPopupMenu *popup, int id=-1, int index=-1 ); int insertItem( const QIconSet& icon, const QString &text, QPopupMenu *popup, - int id=-1, int index=-1 ); + int id=-1, int index=-1 ) + { + return this->insertItem(icon, (QTrString)text, popup, id, index); + } int insertItem( const QPixmap &pixmap, int id=-1, int index=-1 ); @@ -198,23 +234,35 @@ #endif QIconSet *iconSet( int id ) const; - QString text( int id ) const; + QTrString text( int id ) const; QPixmap *pixmap( int id ) const; - void setWhatsThis( int id, const QString& ); - QString whatsThis( int id ) const; + void setWhatsThis( int id, const QTrString& ); + QTrString whatsThis( int id ) const; - void changeItem( int id, const QString &text ); + void changeItem( int id, const QTrString &text ); + void changeItem( int id, const QString &text ) + { + this->changeItem(id, (QTrString)text); + } void changeItem( int id, const QPixmap &pixmap ); - void changeItem( int id, const QIconSet &icon, const QString &text ); + void changeItem( int id, const QIconSet &icon, const QTrString &text ); + void changeItem( int id, const QIconSet &icon, const QString &text ) + { + this->changeItem(id, icon, (QTrString)text); + } void changeItem( int id, const QIconSet &icon, const QPixmap &pixmap ); - void changeItem( const QString &text, int id ) { changeItem( id, text); } // obsolete + void changeItem( const QTrString &text, int id ) { changeItem( id, text); } // obsolete + void changeItem( const QString &text, int id ) { changeItem( id, (QTrString)text); } // obsolete void changeItem( const QPixmap &pixmap, int id ) { changeItem( id, pixmap ); } // obsolete - void changeItem( const QIconSet &icon, const QString &text, int id ) { // obsolete + void changeItem( const QIconSet &icon, const QTrString &text, int id ) { // obsolete changeItem( id, icon, text ); } + void changeItem( const QIconSet &icon, const QString &text, int id ) { // obsolete + changeItem( id, icon, (QTrString)text ); + } bool isItemActive( int id ) const; @@ -263,7 +311,7 @@ virtual void menuDelPopup( QPopupMenu * ); private: - int insertAny( const QString *, const QPixmap *, QPopupMenu *, + int insertAny( const QTrString *, const QPixmap *, QPopupMenu *, const QIconSet*, int, int, QWidget* = 0, QCustomMenuItem* = 0); void removePopup( QPopupMenu * ); void changeItemIconSet( int id, const QIconSet &icon ); Index: qlabel.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qlabel.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qlabel.cpp 26 Sep 2004 22:59:23 -0000 1.3 +++ qlabel.cpp 27 Sep 2004 23:47:18 -0000 1.4 @@ -176,7 +176,7 @@ void QLabel::mousePressEvent( QMouseEvent *e ) { - if ( e->button() == LeftButton ) { + if ( e->button() != RightButton ) { e->ignore(); return; } @@ -198,7 +198,7 @@ trElement->updateTranslation(newTranslation); */ - if (QApplication::getTrHandler()->editTranslation(this->ltext) == true) + if (QApplication::getTrHandler()->editTranslation(this->ltext) == TRUE) { QSize osh = sizeHint(); @@ -775,7 +775,7 @@ if (this->ltext.translationValid() == FALSE) { //draw highlight background - p->fillRect(cr, Qt::cyan); + p->fillRect(cr, Qt::yellow); } } Index: qlineedit.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qlineedit.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qlineedit.cpp 25 Sep 2004 11:28:42 -0000 1.1.1.1 +++ qlineedit.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -50,6 +50,7 @@ #include "qstringlist.h" #include "qguardedptr.h" #include "qstyle.h" +#include "qtrstring.h" #include "qwhatsthis.h" #include "../kernel/qinternal_p.h" #include "private/qtextlayout_p.h" Index: qtextedit.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/widgets/qtextedit.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qtextedit.cpp 25 Sep 2004 11:30:05 -0000 1.1.1.1 +++ qtextedit.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -434,7 +434,7 @@ by using the HTML font tag \c {<font color=colorname>}. The color name can be one of the color names from the X11 color database, or a RGB hex value (e.g \c {#00ff00}). Example of valid color tags: - \c {<font color=red>}, \c {<font color="light blue">}, \c {<font + \c {<font color=red>}, \c{<font color="light blue">},\c {<font color="#223344">}. Bold, italic and underline settings can be specified by the tags \c {<b>}, \c <i> and \c {<u>}. Note that a tag does not necessarily have to be closed. A valid example: @@ -5077,7 +5077,7 @@ if ( n ) { int i = n ==1 && !always_ask ? popup.idAt( 0 ) : popup.exec( pt ); if ( i >= 0 ) - return popup.text(i).latin1(); + return ((QString)popup.text(i)).latin1(); } #else QString fmt; |
|
From: Krzysztof L. <kli...@us...> - 2004-09-27 23:47:29
|
Update of /cvsroot/dyntrans/qt-tr/src/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11913/src/tools Modified Files: qtrstring.cpp qtrstring.h Log Message: * Implemented editing translation for QPopupMenu. * Added find/findRev/contains methods to QTrString. * Added declaration of arg() methods to QTrString. * Added QTrString::operator!() and QTrString::null. Index: qtrstring.h =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstring.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qtrstring.h 26 Sep 2004 22:59:23 -0000 1.3 +++ qtrstring.h 27 Sep 2004 23:47:18 -0000 1.4 @@ -71,11 +71,74 @@ */ operator QString() const; + static QTrString null; + QTrString &operator=( const QTrString & ); // deep copy bool isNull() const; bool isEmpty() const; uint length() const; + bool operator!() const + { + return this->isNull(); + } + + //arg methods + QTrString arg( long a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( ulong a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( Q_LLONG a, int fieldwidth=0, int base=10 ) const; + QTrString arg( Q_ULLONG a, int fieldwidth=0, int base=10 ) const; + QTrString arg( int a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( uint a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( short a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( ushort a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( double a, int fieldWidth = 0, char fmt = 'g', + int prec = -1 ) const; + QTrString arg( char a, int fieldWidth = 0 ) const; + QTrString arg( QChar a, int fieldWidth = 0 ) const; + QTrString arg( const QString& a, int fieldWidth = 0 ) const; + QTrString arg( const QString& a1, const QString& a2 ) const; + QTrString arg( const QString& a1, const QString& a2, + const QString& a3 ) const; + QTrString arg( const QString& a1, const QString& a2, const QString& a3, + const QString& a4 ) const; + + QTrString arg( const QTrString& a, int fieldWidth = 0 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2, + const QTrString& a3 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2, const QTrString& a3, + const QTrString& a4 ) const; + + //find methods + int find( QChar c, int index=0, bool cs=TRUE ) const; + int find( char c, int index=0, bool cs=TRUE ) const; + int find( const QString &str, int index=0, bool cs=TRUE ) const; +#ifndef QT_NO_REGEXP + int find( const QRegExp &, int index=0 ) const; +#endif +#ifndef QT_NO_CAST_ASCII + int find( const char* str, int index=0 ) const; +#endif + int findRev( QChar c, int index=-1, bool cs=TRUE) const; + int findRev( char c, int index=-1, bool cs=TRUE) const; + int findRev( const QString &str, int index=-1, bool cs=TRUE) const; +#ifndef QT_NO_REGEXP + int findRev( const QRegExp &, int index=-1 ) const; +#endif +#ifndef QT_NO_CAST_ASCII + int findRev( const char* str, int index=-1 ) const; +#endif + int contains( QChar c, bool cs=TRUE ) const; + int contains( char c, bool cs=TRUE ) const; +#ifndef QT_NO_CAST_ASCII + int contains( const char* str, bool cs=TRUE ) const; +#endif + int contains( const QString &str, bool cs=TRUE ) const; +#ifndef QT_NO_REGEXP + int contains( const QRegExp & ) const; +#endif + virtual ~QTrString(); protected: @@ -84,4 +147,89 @@ QTrString operator+(QTrString const & left, QTrString const & right); +inline int QTrString::find( QChar c, int index, bool cs) const +{ + return this->getTranslation().find(c, index, cs); +} + +inline int QTrString::find( char c, int index, bool cs) const +{ + return this->getTranslation().find(c, index, cs); +} + +inline int QTrString::find( const QString &str, int index, bool cs) const +{ + return this->getTranslation().find(str, index, cs); +} + +#ifndef QT_NO_REGEXP +inline int QTrString::find( const QRegExp ®exp, int index) const +{ + return this->getTranslation().find(regexp, index); +} +#endif +#ifndef QT_NO_CAST_ASCII +inline int QTrString::find( const char* str, int index) const +{ + return this->getTranslation().find(str, index); +} +#endif +inline int QTrString::findRev( QChar c, int index, bool cs) const +{ + return this->getTranslation().findRev(c, index, cs); +} + +inline int QTrString::findRev( char c, int index, bool cs) const +{ + return this->getTranslation().findRev(c, index, cs); +} + +inline int QTrString::findRev( const QString &str, int index, bool cs) const +{ + return this->getTranslation().findRev(str, index, cs); +} + +#ifndef QT_NO_REGEXP +inline int QTrString::findRev( const QRegExp & regexp, int index) const +{ + return this->getTranslation().findRev(regexp, index); +} + +#endif +#ifndef QT_NO_CAST_ASCII +inline int QTrString::findRev( const char* str, int index) const +{ + return this->getTranslation().findRev(str, index); +} + +#endif +inline int QTrString::contains( QChar c, bool cs) const +{ + return this->getTranslation().contains(c, cs); +} + +inline int QTrString::contains( char c, bool cs) const +{ + return this->getTranslation().contains(c, cs); +} + +#ifndef QT_NO_CAST_ASCII +inline int QTrString::contains( const char* str, bool cs) const +{ + return this->getTranslation().contains(str, cs); +} +#endif +inline int QTrString::contains( const QString &str, bool cs) const +{ + return this->getTranslation().contains(str, cs); +} + +#ifndef QT_NO_REGEXP +inline int QTrString::contains( const QRegExp & regexp) const +{ + return this->getTranslation().contains(regexp); +} +#endif + + #endif //#ifdef _QTRSTRING_H_00333 Index: qtrstring.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/tools/qtrstring.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- qtrstring.cpp 26 Sep 2004 22:59:23 -0000 1.3 +++ qtrstring.cpp 27 Sep 2004 23:47:18 -0000 1.4 @@ -21,10 +21,12 @@ QTrString::QTrString( QString const & qstring ): - element(new QUntranslatedTrStringElement(qstring)) + element(new QUntranslatedTrStringElement(qstring.isNull() ? "" : qstring)) { } +QTrString QTrString::null = QTrString(); + QTrString::QTrString( char const* const string ): @@ -39,12 +41,12 @@ { } -QString QTrString::getTranslation() const +QString QTrString::getTranslation(QString variantTag) const { - return this->element->getTranslation(); + return this->element->getTranslation(variantTag); } -bool QTrString::translationValid() const +bool QTrString::translationValid(QString variantTag) const { return this->element->translationValid(); } @@ -75,7 +77,11 @@ bool QTrString::isNull() const { - return this->getTranslation().isNull(); + if (this == (&QTrString::null)) + { + return TRUE; + } + return FALSE; } bool QTrString::isEmpty() const @@ -101,3 +107,33 @@ ); } +#if 0 +//FIXME: implement arg methods + //arg methods + QTrString arg( long a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( ulong a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( Q_LLONG a, int fieldwidth=0, int base=10 ) const; + QTrString arg( Q_ULLONG a, int fieldwidth=0, int base=10 ) const; + QTrString arg( int a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( uint a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( short a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( ushort a, int fieldWidth = 0, int base = 10 ) const; + QTrString arg( double a, int fieldWidth = 0, char fmt = 'g', + int prec = -1 ) const; + QTrString arg( char a, int fieldWidth = 0 ) const; + QTrString arg( QChar a, int fieldWidth = 0 ) const; + QTrString arg( const QString& a, int fieldWidth = 0 ) const; + QTrString arg( const QString& a1, const QString& a2 ) const; + QTrString arg( const QString& a1, const QString& a2, + const QString& a3 ) const; + QTrString arg( const QString& a1, const QString& a2, const QString& a3, + const QString& a4 ) const; + + QTrString arg( const QTrString& a, int fieldWidth = 0 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2, + const QTrString& a3 ) const; + QTrString arg( const QTrString& a1, const QTrString& a2, const QTrString& a3, + const QTrString& a4 ) const; + +#endif |
|
From: Krzysztof L. <kli...@us...> - 2004-09-27 23:47:28
|
Update of /cvsroot/dyntrans/qt-tr/src/styles In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11913/src/styles Modified Files: qcommonstyle.cpp qwindowsstyle.cpp Log Message: * Implemented editing translation for QPopupMenu. * Added find/findRev/contains methods to QTrString. * Added declaration of arg() methods to QTrString. * Added QTrString::operator!() and QTrString::null. Index: qcommonstyle.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/styles/qcommonstyle.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qcommonstyle.cpp 25 Sep 2004 11:44:21 -0000 1.1.1.1 +++ qcommonstyle.cpp 27 Sep 2004 23:47:17 -0000 1.2 @@ -2613,7 +2613,7 @@ } if (! mi->text().isNull()) { - if (mi->text().find('\t') >= 0) + if (((QString)mi->text()).find('\t') >= 0) w += 12; } Index: qwindowsstyle.cpp =================================================================== RCS file: /cvsroot/dyntrans/qt-tr/src/styles/qwindowsstyle.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- qwindowsstyle.cpp 25 Sep 2004 11:44:26 -0000 1.1.1.1 +++ qwindowsstyle.cpp 27 Sep 2004 23:47:18 -0000 1.2 @@ -1224,7 +1224,7 @@ 2*windowsItemFrame); } - if (! mi->text().isNull() && mi->text().find('\t') >= 0) { + if (! mi->text().isNull() && ((QString)mi->text()).find('\t') >= 0) { if ( use2000style ) w += 20; else |