You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
222 lines
5.8 KiB
222 lines
5.8 KiB
/* ****************************************************************************
|
|
This file is part of KBabel
|
|
|
|
Copyright (C) 1999-2000 by Matthias Kiefer
|
|
<matthias.kiefer@gmx.de>
|
|
2002-2004 by Stanislav Visnovsky
|
|
<visnovsky@kde.org>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
In addition, as a special exception, the copyright holders give
|
|
permission to link the code of this program with any edition of
|
|
the TQt library by Trolltech AS, Norway (or with modified versions
|
|
of TQt that use the same license as TQt), and distribute linked
|
|
combinations including the two. You must obey the GNU General
|
|
Public License in all respects for all of the code used other than
|
|
TQt. If you modify this file, you may extend this exception to
|
|
your version of the file, but you are not obligated to do so. If
|
|
you do not wish to do so, delete this exception statement from
|
|
your version.
|
|
|
|
**************************************************************************** */
|
|
|
|
#include "commentview.h"
|
|
|
|
#include <tqlayout.h>
|
|
#include <tqlabel.h>
|
|
#include <tqwhatsthis.h>
|
|
#include <tqdragobject.h>
|
|
#include <tqtextview.h>
|
|
|
|
#include <tdeapplication.h>
|
|
#include <tdeconfig.h>
|
|
#include <kcursor.h>
|
|
#include <kdialog.h>
|
|
#include <tdelocale.h>
|
|
#include <kurl.h>
|
|
#include <kurldrag.h>
|
|
|
|
#include "resources.h"
|
|
|
|
#include "editcmd.h"
|
|
#include "hidingmsgedit.h"
|
|
#include "kbcatalog.h"
|
|
|
|
#define ID_DROP_OPEN 1
|
|
#define ID_DROP_OPEN_TEMPLATE 2
|
|
|
|
#define MAX_HISTORY 50
|
|
|
|
using namespace KBabel;
|
|
|
|
CommentView::CommentView(KBCatalog* catalog,TQWidget *parent, Project::Ptr project)
|
|
: KBCatalogView(catalog,parent, project)
|
|
{
|
|
setAcceptDrops(true);
|
|
|
|
TQVBoxLayout* layout=new TQVBoxLayout(this);
|
|
|
|
commentEdit = new MsgMultiLineEdit(0, 0, this);
|
|
commentEdit->setMinimumHeight(50);
|
|
commentEdit->setSpacePoints(false);
|
|
commentEdit->setHighlightSyntax(false);
|
|
KCursor::setAutoHideCursor(commentEdit,true);
|
|
|
|
TQLabel* label=new TQLabel(commentEdit,i18n("&Comment:"),this);
|
|
|
|
TQHBoxLayout* hb=new TQHBoxLayout(layout);
|
|
hb->addSpacing(KDialog::marginHint());
|
|
hb->addWidget(label);
|
|
|
|
layout->addWidget(commentEdit);
|
|
layout->setStretchFactor(commentEdit,1);
|
|
|
|
TQWhatsThis::add(this,
|
|
i18n("<qt><p><b>Comment Editor</b></p>\n\
|
|
This edit window shows you the comments of the currently displayed message.<p>\n\
|
|
<p>The comments normally contain information about where the message is found in the source\n\
|
|
code and status information about this message (fuzzy, c-format).\n\
|
|
Hints from other translators are also sometimes contained in comments.</p>\n\
|
|
<p>You can hide the comment editor by deactivating\n\
|
|
<b>Options->Show Comments</b>.</p></qt>"));
|
|
|
|
commentEdit->setReadOnly(true);
|
|
connect(commentEdit,TQ_SIGNAL(signalUndoCmd(KBabel::EditCommand*)),this,TQ_SLOT(forwardCommentEditCmd(KBabel::EditCommand*)));
|
|
|
|
connect(commentEdit,TQ_SIGNAL(cursorPositionChanged(int,int))
|
|
, this, TQ_SIGNAL(signalCursorPosChanged(int,int)));
|
|
|
|
connect(_catalog, TQ_SIGNAL(signalFileOpened(bool)), this, TQ_SLOT(setDisabled(bool)));
|
|
}
|
|
|
|
void CommentView::update(EditCommand* cmd, bool undo)
|
|
{
|
|
if((int)_currentIndex==cmd->index())
|
|
{
|
|
if(cmd->part()==Comment)
|
|
{
|
|
commentEdit->processCommand(cmd,undo);
|
|
}
|
|
}
|
|
}
|
|
|
|
void CommentView::textCut()
|
|
{
|
|
if(commentEdit->hasFocus())
|
|
{
|
|
commentEdit->cut();
|
|
}
|
|
}
|
|
|
|
void CommentView::textCopy()
|
|
{
|
|
if(commentEdit->hasSelectedText())
|
|
{
|
|
commentEdit->copy();
|
|
}
|
|
}
|
|
|
|
void CommentView::textPaste()
|
|
{
|
|
if(commentEdit->hasFocus())
|
|
{
|
|
commentEdit->paste();
|
|
}
|
|
}
|
|
|
|
void CommentView::textSelectAll()
|
|
{
|
|
if(commentEdit->hasFocus())
|
|
{
|
|
commentEdit->selectAll();
|
|
}
|
|
}
|
|
|
|
void CommentView::textDeselectAll()
|
|
{
|
|
commentEdit->selectAll(false);
|
|
}
|
|
|
|
void CommentView::updateView()
|
|
{
|
|
commentEdit->setText ( _catalog->comment (_currentIndex) );
|
|
}
|
|
|
|
void CommentView::forwardCommentEditCmd(EditCommand* cmd)
|
|
{
|
|
cmd->setPart(Comment);
|
|
cmd->setIndex(_currentIndex);
|
|
|
|
_catalog->applyEditCommand(cmd,this);
|
|
}
|
|
|
|
void CommentView::setReadOnly(bool on)
|
|
{
|
|
commentEdit->setReadOnly( on );
|
|
}
|
|
|
|
void CommentView::setOverwriteMode(bool on)
|
|
{
|
|
commentEdit->setOverwriteMode( on );
|
|
}
|
|
|
|
void CommentView::readFileSettings()
|
|
{
|
|
setReadOnly( _catalog->isReadOnly() );
|
|
}
|
|
|
|
const TQString CommentView::selectText(int from, int to)
|
|
{
|
|
int line, col, endline, endcol;
|
|
|
|
commentEdit->selectAll(false);
|
|
commentEdit->setFocus();
|
|
commentEdit->offset2Pos(from,line,col);
|
|
commentEdit->offset2Pos(to,endline,endcol);
|
|
|
|
commentEdit->setSelection(line,col,endline,endcol);
|
|
commentEdit->setCursorPosition(endline,endcol);
|
|
|
|
return commentEdit->selectedText();
|
|
}
|
|
|
|
bool CommentView::isActiveView ()
|
|
{
|
|
return hasFocus () || commentEdit->hasFocus ();
|
|
}
|
|
|
|
int CommentView::currentIndex ()
|
|
{
|
|
return commentEdit->currentIndex ();
|
|
}
|
|
|
|
const TQString CommentView::selectedText ()
|
|
{
|
|
return commentEdit->selectedText ();
|
|
}
|
|
|
|
void CommentView::installEventFilter( const TQObject * filterObj )
|
|
{
|
|
commentEdit->installEventFilter( const_cast<TQObject*>(filterObj) );
|
|
}
|
|
|
|
bool CommentView::hasFocus()
|
|
{
|
|
return commentEdit->hasFocus();
|
|
}
|
|
|
|
#include "commentview.moc"
|