2 // File : QAD_Message.cxx
3 // Created : Thu Jun 14 15:55:14 2001
4 // Author : Nicolas REJNERI
7 // Copyright : Open CASCADE
10 #include "QAD_Message.h"
11 #include "QAD_Application.h"
12 #include "QAD_Config.h"
13 #include "QAD_Tools.h"
16 #include <qpopupmenu.h>
19 enum { IdCopy, IdClear, IdSelectAll };
22 \class QAD_Message QAD_Message.h
23 \brief Messages window for Study.
27 Constructor - creates Message Log window
29 QAD_Message::QAD_Message(QWidget *parent, const char* name)
30 : QMultiLineEdit(parent, name)
32 // setting default title
33 myTitle = tr("MESSAGE_LOG_NAME");
34 // setting default prompt
36 // setting font ( from preferences )
37 QString fntSet = QAD_CONFIG->getSetting("Viewer:ConsoleFont");
38 QFont myFont = QAD_Tools::stringToFont( fntSet );
39 // QFont myFont("Courier", 11);
44 // setting palette (special)
45 setPalette( QAD_Application::getPalette(true) );
46 setFocusPolicy( NoFocus );
47 // currently no text wrap
54 QAD_Message::~QAD_Message()
61 void QAD_Message::setMessage(const QString& s)
63 int line = numLines() > 0 ? numLines()-1 : 0;
64 int col = lineLength(line);
65 if (!s.isNull() && s.length() > 0) {
67 insertAt(ss, line, col, false);
73 Processes own popup manu
75 void QAD_Message::mousePressEvent(QMouseEvent* event)
77 if ( event->button() == RightButton ) {
78 QPopupMenu *popup = new QPopupMenu( this );
81 int line1, col1, line2, col2;
82 getMarkedRegion(&line1, &col1, &line2, &col2);
83 bool allSelected = getMarkedRegion(&line1, &col1, &line2, &col2) &&
84 line1 == 0 && line2 == numLines()-1 && col1 == 0 && col2 == lineLength(line2);
86 id = popup->insertItem( tr( "EDIT_COPY_CMD" ) );
87 idMap.insert(IdCopy, id);
88 id = popup->insertItem( tr( "EDIT_CLEAR_CMD" ) );
89 idMap.insert(IdClear, id);
90 popup->insertSeparator();
91 id = popup->insertItem( tr( "EDIT_SELECTALL_CMD" ) );
92 idMap.insert(IdSelectAll, id);
93 popup->setItemEnabled( idMap[ IdCopy ], hasMarkedText() );
94 popup->setItemEnabled( idMap[ IdSelectAll ],
95 (bool)text().length() && !allSelected );
97 int r = popup->exec( event->globalPos() );
100 if ( r == idMap[ IdCopy ] ) {
103 else if ( r == idMap [ IdClear ] ) {
107 else if ( r == idMap[ IdSelectAll ] ) {
113 QMultiLineEdit::mousePressEvent(event);
118 Sets prompt ( default is '>>> ' )
120 void QAD_Message::setPrompt(const QString& prompt)