summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/tools/linguist/linguist/msgedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/tools/linguist/linguist/msgedit.h')
-rw-r--r--tqtinterface/qt4/tools/linguist/linguist/msgedit.h247
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