Kate
kateviglobal.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "kateviglobal.h"
00021
00022 #include "kdebug.h"
00023 #include <QApplication>
00024 #include <QClipboard>
00025
00026 KateViGlobal::KateViGlobal()
00027 {
00028 m_numberedRegisters = new QList<QString>;
00029 m_registers = new QMap<QChar, QString>;
00030 }
00031
00032 KateViGlobal::~KateViGlobal()
00033 {
00034 delete m_numberedRegisters;
00035 delete m_registers;
00036 }
00037
00038 QString KateViGlobal::getRegisterContent( const QChar ® ) const
00039 {
00040 QString regContent;
00041 QChar _reg = ( reg != '"' ? reg : m_defaultRegister );
00042
00043 if ( _reg >= '1' && _reg <= '9' ) {
00044 regContent = m_numberedRegisters->at( QString( _reg ).toInt()-1 );
00045 } else if ( _reg == '+' ) {
00046 regContent = QApplication::clipboard()->text( QClipboard::Clipboard );
00047 } else if ( _reg == '*' ) {
00048 regContent = QApplication::clipboard()->text( QClipboard::Selection );
00049 } else {
00050 if ( m_registers->contains( _reg ) ) {
00051 regContent = m_registers->value( _reg );
00052 }
00053 }
00054
00055 return regContent;
00056 }
00057
00058 void KateViGlobal::addToNumberedRegister( const QString &text )
00059 {
00060 if ( m_numberedRegisters->size() == 9 ) {
00061 m_numberedRegisters->removeLast();
00062 }
00063
00064
00065 m_numberedRegisters->prepend( text );
00066
00067 kDebug( 13070 ) << "Register 1-9:";
00068 for ( int i = 0; i < m_numberedRegisters->size(); i++ ) {
00069 kDebug( 13070 ) << "\t Register " << i+1 << ": " << m_numberedRegisters->at( i );
00070 }
00071 }
00072
00073 void KateViGlobal::fillRegister( const QChar ®, const QString &text )
00074 {
00075
00076 if ( reg == '_' ) {
00077 return;
00078 }
00079
00080 if ( reg >= '1' && reg <= '9' ) {
00081 addToNumberedRegister( text );
00082 } else if ( reg == '+' ) {
00083 QApplication::clipboard()->setText( text, QClipboard::Clipboard );
00084 } else if ( reg == '*' ) {
00085 QApplication::clipboard()->setText( text, QClipboard::Selection );
00086 } else {
00087 m_registers->insert( reg, text );
00088 }
00089
00090 kDebug( 13070 ) << "Register " << reg << " set to " << getRegisterContent( reg );
00091
00092 if ( reg == '0' || reg == '1' || reg == '-' ) {
00093 m_defaultRegister = reg;
00094 kDebug( 13070 ) << "Register " << '"' << " set to point to \"" << reg;
00095 }
00096 }
00097