diff options
Diffstat (limited to 'tqtinterface/qt4/tools/linguist/linguist/msgedit.h')
-rw-r--r-- | tqtinterface/qt4/tools/linguist/linguist/msgedit.h | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/tqtinterface/qt4/tools/linguist/linguist/msgedit.h b/tqtinterface/qt4/tools/linguist/linguist/msgedit.h new file mode 100644 index 0000000..21e6710 --- /dev/null +++ b/tqtinterface/qt4/tools/linguist/linguist/msgedit.h @@ -0,0 +1,247 @@ +/********************************************************************** +** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. +** +** This file is part of TQt Linguist. +** +** This file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free +** Software Foundation and appearing in the files LICENSE.GPL2 +** and LICENSE.GPL3 included in the packaging of this file. +** Alternatively you may (at your option) use any later version +** of the GNU General Public License if such license has been +** publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free TQt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing requirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at sales@trolltech.com. +** +** Licensees holding valid TQt Commercial licenses may use this file in +** accordance with the TQt Commercial License Agreement provided with +** the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef MSGEDIT_H +#define MSGEDIT_H + +#include "trwindow.h" +#include "phrase.h" + +#include <metatranslator.h> + +#include <tqsplitter.h> +#include <tqstring.h> +#include <tqstringlist.h> +#include <tqvaluelist.h> +#include <tqscrollview.h> +#include <tqpixmap.h> +#include <tqbitmap.h> +#include <tqtooltip.h> + +class TQAccel; +class TQDockArea; +class TQDockWindow; +class TQLabel; +class TQListView; +class TQListViewItem; +class TQTextView; +class TQVBoxLayout; + +class EditorPage; +class MED; +class PhraseLV; + +class PageCurl : public TQWidget +{ + Q_OBJECT + TQ_OBJECT +public: + PageCurl( TQWidget * tqparent = 0, const char * name = 0, + WFlags f = 0 ) + : TQWidget( tqparent, name, f ) + { + TQPixmap px = TrWindow::pageCurl(); + if ( px.tqmask() ) { + setMask( *px.tqmask() ); + } + setBackgroundPixmap( px ); + setFixedSize( px.size() ); + + TQRect r( 34, 0, width()-34, 19 ); + TQToolTip::add( this, r, tr("Next unfinished phrase") ); + r.setSize( TQSize(width()-34, height()-20) ); + r.setX( 0 ); + r.setY( 20 ); + TQToolTip::add( this, r, tr("Previous unfinished phrase") ); + } + +protected: + void mouseReleaseEvent( TQMouseEvent * e ) + { + int x = e->pos().x() - 14; + int y = e->pos().y() - 8; + + if ( y <= x ) + emit nextPage(); + else + emit prevPage(); + } + +Q_SIGNALS: + void prevPage(); + void nextPage(); +}; + +class ShadowWidget : public TQWidget +{ +public: + ShadowWidget( TQWidget * tqparent = 0, const char * name = 0 ); + ShadowWidget( TQWidget * child, TQWidget * tqparent = 0, const char * name = 0 ); + + void setShadowWidth( int width ) { sWidth = width; } + int shadowWidth() const { return sWidth; } + void setMargin( int margin ){ wMargin = margin; } + int margin() const { return wMargin; } + void setWidget( TQWidget * child); + +protected: + void resizeEvent( TQResizeEvent * e ); + void paintEvent( TQPaintEvent * e ); + +private: + int sWidth; + int wMargin; + TQWidget * childWgt; +}; + +class EditorPage : public TQFrame +{ + Q_OBJECT + TQ_OBJECT +public: + EditorPage( TQWidget * tqparent = 0, const char * name = 0 ); + +protected: + void resizeEvent( TQResizeEvent * ); + void layoutWidgets(); + void updateCommentField(); + void calculateFieldHeight( TQTextView * field ); + void fontChange( const TQFont & ); + +private: + PageCurl * pageCurl; + TQLabel * srcTextLbl; + TQLabel * transLbl; + TQTextView * srcText; + TQTextView * cmtText; + MED * translationMed; + + friend class MessageEditor; + +private Q_SLOTS: + void handleTranslationChanges(); + void handleSourceChanges(); + void handleCommentChanges(); + +Q_SIGNALS: + void pageHeightUpdated( int height ); +}; + +class MessageEditor : public TQWidget +{ + Q_OBJECT + TQ_OBJECT +public: + MessageEditor( MetaTranslator * t, TQWidget * tqparent = 0, + const char * name = 0 ); + TQListView * sourceTextList() const; + TQListView * phraseList() const; + + void showNothing(); + void showContext( const TQString& context, bool finished ); + void showMessage( const TQString& text, const TQString& comment, + const TQString& fullContext, const TQString& translation, + MetaTranslatorMessage::Type type, + const TQValueList<Phrase>& phrases ); + void setFinished( bool finished ); + bool eventFilter( TQObject *, TQEvent * ); + +Q_SIGNALS: + void translationChanged( const TQString& translation ); + void finished( bool finished ); + void prevUnfinished(); + void nextUnfinished(); + void updateActions( bool enable ); + + void undoAvailable( bool avail ); + void redoAvailable( bool avail ); + void cutAvailable( bool avail ); + void copyAvailable( bool avail ); + void pasteAvailable( bool avail ); + + void focusSourceList(); + void focusPhraseList(); + +public Q_SLOTS: + void undo(); + void redo(); + void cut(); + void copy(); + void paste(); + void del(); + void selectAll(); + void beginFromSource(); + void toggleGuessing(); + void finishAndNext(); + +private Q_SLOTS: + void emitTranslationChanged(); + void guessActivated( int accelKey ); + void insertPhraseInTranslation( TQListViewItem *item ); + void insertPhraseInTranslationAndLeave( TQListViewItem *item ); + void updateButtons(); + void updateCanPaste(); + void toggleFinished(); + + void updatePageHeight( int height ); + +protected: + void resizeEvent( TQResizeEvent * ); + +private: + void setTranslation( const TQString& translation, bool emitt ); + void setEditionEnabled( bool enabled ); + + TQListView * srcTextList; + TQDockArea * topDock, * bottomDock; + TQDockWindow * topDockWnd, *bottomDockWnd; + EditorPage * editorPage; + TQVBoxLayout * v; + + TQLabel * phraseLbl; + PhraseLV * phraseLv; + TQAccel * accel; + bool itemFinished; + + ShadowWidget * sw; + TQScrollView * sv; + + MetaTranslator *tor; + TQString sourceText; + TQStringList guesses; + bool mayOverwriteTranslation; + bool canPaste; + bool doGuesses; +}; + +#endif |