Пример #1
0
void TextEditor::OpenFile(const QString FileLocation) {
    qApp->setOverrideCursor(Qt::WaitCursor);
    if  (!FileLocation.isEmpty()) {
        QFile File(FileLocation);

        if (File.open(QFile::ReadOnly | QFile::WriteOnly | QFile::ReadWrite)) {
            QTextStream InputFile(&File);
            InputFile.setCodec("UTF-8");
            setPlainText(InputFile.readAll());

            QObject::connect(c, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));

            File.close();
            Filename = FileLocation;
            SetupFile();

            qApp->restoreOverrideCursor();
            return;
        }

        QMessageBox::warning(this, Shared::Error,
                             Shared::CannotReadFile.arg(FileLocation).arg(File.errorString()));

        qApp->restoreOverrideCursor();
        return;
    }
    qApp->restoreOverrideCursor();
}
Пример #2
0
CCodeEdit::CCodeEdit(QWidget *parent)
	: QPlainTextEdit(parent)
	, m_lineIconBackgroundColorRole(QPalette::Window)
	, m_lineNumberBackgroundColorRole(QPalette::Light)
	, m_lineNumberTextColorRole(QPalette::Text)
	, m_lineIconBackgroundColor(QColor(255, 255, 255, 255))
	, m_lineNumberBackgroundColor(QColor(255, 255, 255, 255))
	, m_lineNumberTextColor(QColor(255, 0, 0, 0))
	, m_visibleLineNumber(true)
	, m_lineIconSize(16, 16)
	, m_tabStopCharWidth(4)
{
	m_lineNumberWidget = new CLineNumberArea(this);
	m_completer        = new QCompleter(this);

	m_completer->setWidget(this);
	m_completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
	m_completer->setCaseSensitivity(Qt::CaseInsensitive);
	m_completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
	m_completer->setWrapAround(false);

	connect(this, SIGNAL(blockCountChanged(int)),   this, SLOT(updateLineNumberWidth(int)));
	connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumber(QRect,int)));
	connect(m_completer, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));

	updateLineNumberWidth(0);

	// タブストップを設定
	setTabStopCharWidth(m_tabStopCharWidth);
}
Пример #3
0
CodeArea::CodeArea(QWidget *parent)
    :QPlainTextEdit(parent)
    ,highlighter(this->document())
{
    QFont font;
    font.setFamily("Courier");
    font.setFixedPitch(true);
    font.setPointSize(10);
    font.insertSubstitution("	","    ");
    setFont(font);
    setWordWrapMode(QTextOption::NoWrap);

    lineNumberArea = new LineNumberArea(this);
    connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth(int)));
    connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumberArea(QRect,int)));
    connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine()));

    updateLineNumberAreaWidth(0);
    highlightCurrentLine();
    mCompleter = new QCompleter(this);
    mCompleter->setModel(new QStringListModel(mWordList, mCompleter));
    mCompleter->setModelSorting(QCompleter::CaseSensitivelySortedModel);
    mCompleter->setCaseSensitivity(Qt::CaseSensitive);
    mCompleter->setWrapAround(false);

    mCompleter->setWidget(this);
    mCompleter->setCompletionMode(QCompleter::PopupCompletion);
    mCompleter->setCaseSensitivity(Qt::CaseInsensitive);
    QObject::connect(mCompleter, SIGNAL(activated(QString)),
                  this, SLOT(insertCompletion(QString)));

    connect(this,SIGNAL(textChanged()), this, SLOT(onTextChange()));
}
Пример #4
0
SqlTextEdit::SqlTextEdit(QWidget* parent) :
    QPlainTextEdit(parent), m_defaultCompleterModel(0)
{
    // basic auto completer for sqliteedit
    m_Completer = new QCompleter(this);
    m_Completer->setCaseSensitivity(Qt::CaseInsensitive);
    m_Completer->setCompletionMode(QCompleter::PopupCompletion);
    m_Completer->setWrapAround(false);
    m_Completer->setWidget(this);

    // Set font
    QFont font("Monospace");
    font.setStyleHint(QFont::TypeWriter);
    font.setPointSize(PreferencesDialog::getSettingsValue("editor", "fontsize").toInt());
    setFont(font);

    QFontMetrics fm(font);
    setTabStopWidth(fm.width(" ") * PreferencesDialog::getSettingsValue("editor", "tabsize").toInt());

    // Create syntax highlighter
    m_syntaxHighlighter = new SQLiteSyntaxHighlighter(document());

    // Create line number area
    lineNumberArea = new LineNumberArea(this);

    connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth()));
    connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumberArea(QRect,int)));
    connect(m_Completer, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
    connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine()));

    highlightCurrentLine();
    updateLineNumberAreaWidth();
}
Пример #5
0
//-----------------------------------------------------------------------------
void ctkConsolePrivate::setCompleter(ctkConsoleCompleter* completer)
{
  if (this->Completer)
    {
    this->Completer->setWidget(0);
    disconnect(this->Completer, SIGNAL(activated(QString)),
               this, SLOT(insertCompletion(QString)));

    }
  this->Completer = completer;
  if (this->Completer)
    {
    this->Completer->setWidget(this);
    connect(this->Completer, SIGNAL(activated(QString)),
            this, SLOT(insertCompletion(QString)));
    }
}
Пример #6
0
void TextEdit::execSbMenuAction(const QString& title) {

    insertCompletion(title);
    if ( title.startsWith("operacion:") ) {
        setFocus();
    }


}
Пример #7
0
void Console::setCompleter(QCompleter* c)
{
    m_completer = c;
    c->setParent(this);
    c->setWidget(this);
    c->setCompletionMode(QCompleter::PopupCompletion);
    c->setCaseSensitivity(Qt::CaseInsensitive);
    connect(c, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
}
Пример #8
0
Completer::Completer(QObject* parent) : QCompleter(parent)
{
    d.lineEdit = 0;
    d.defaultModel = 0;
    d.slashModel = 0;
    setCaseSensitivity(Qt::CaseInsensitive);
    setCompletionMode(InlineCompletion);
    connect(this, SIGNAL(highlighted(QString)), this, SLOT(insertCompletion(QString)));
}
Пример #9
0
//-----------------------------------------------------------------------------
void TextEdit::setCompleter(QCompleter *completer)
{
	if(c && c!=completer)
	{	QObject::disconnect(c);	c->setWidget(0);	delete c;	c=0;	}
	if(!completer)	return;
	c = completer;
	c->setWidget(this);
	c->setCompletionMode(QCompleter::PopupCompletion);
	c->setCaseSensitivity(Qt::CaseInsensitive);
	QObject::connect(c, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
}
Пример #10
0
GmacsCompleter::GmacsCompleter(QPlainTextEdit *editor) : QCompleter()
{
	//setModelSorting(QCompleter::CaseInsensitivelySortedModel);
	//setCaseSensitivity(Qt::CaseInsensitive);
	setWrapAround(false);
	setMaxVisibleItems(20);
	setCompletionMode(QCompleter::PopupCompletion);
	setWidget(editor);
	QObject::connect(this, SIGNAL(activated(QString)),
					 editor, SLOT(insertCompletion(QString)));
}
Пример #11
0
void ContactListEdit::insertCompletion( const QModelIndex& completionIndex )
  {
  if( !completionIndex.isValid())
    return;
  QString completion = completionIndex.data().toString();
  int row = completionIndex.data(Qt::UserRole).toInt();
  row = row / 2;
  //DLNFIX consider telling ContactListEdit about addressbookmodel some other way eventually
  QModelIndex index = getKeyhoteeWindow()->getAddressBookModel()->index(row,0);
  auto contact = getKeyhoteeWindow()->getAddressBookModel()->getContact(index);
  insertCompletion(completion, contact);
  }
Пример #12
0
TextEdit::TextEdit(QWidget* parent)
	: QTextEdit(parent)
{
	m_Highlighter = new Highlighter(document());
	m_Completer = new QCompleter(QStringList()
		<< "class"<< "def"<< "import"<< "from"<< "with" << "__extern__" << "__result__" << "__result_str__", this); // TODO: add support to load from file
	m_Completer->setCompletionMode(QCompleter::PopupCompletion);
	m_Completer->setCaseSensitivity(Qt::CaseInsensitive);
	m_Completer->setWidget(this);
	CHECKED_CONNECT(connect(m_Completer, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString))));

	setAcceptRichText(false);
}
Пример #13
0
LiteCompleter::LiteCompleter(QObject *parent) :
    LiteApi::ICompleter(parent),
    m_completer( new TreeModelCompleter(this)),
    m_model(new QStandardItemModel(this))
{
    m_completer->setModel(m_model);
    m_completer->setCompletionMode(QCompleter::PopupCompletion);
    m_completer->setCaseSensitivity(Qt::CaseSensitive);
    m_completer->setSeparator(".");
    m_stop = '(';
    QObject::connect(m_completer, SIGNAL(activated(QModelIndex)),
                     this, SLOT(insertCompletion(QModelIndex)));
}
Пример #14
0
void ContactListEdit::insertCompletion( const QModelIndex& completionIndex )
  {
  if( !completionIndex.isValid())
    return;
  QString completion = completionIndex.data().toString();
  int row = completionIndex.data(Qt::UserRole).toInt();
  row = row / 2;
  auto addressbook = bts::get_profile()->get_addressbook();
  auto contacts = addressbook->get_contacts();
  auto contact = contacts[row];
  
  insertCompletion(completion, contact);
  }
void CompletingTextEdit::setCompleter(QCompleter *c)
{
    if (completer())
        disconnect(completer(), 0, this, 0);

    d->m_completer = c;

    if (!c)
        return;

    completer()->setWidget(this);
    completer()->setCompletionMode(QCompleter::PopupCompletion);
    connect(completer(), SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
}
int TextEdit::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QTextEdit::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: insertCompletion((*reinterpret_cast< const QString(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 1;
    }
    return _id;
}
Пример #17
0
void TikzEditor::setCompleter(QCompleter *completer)
{
	if (m_completer)
		disconnect(m_completer, 0, this, 0);

	m_completer = completer;
	if (!m_completer)
		return;

	m_completer->setWidget(this);
	m_completer->setCompletionMode(QCompleter::PopupCompletion);
	m_completer->setCaseSensitivity(Qt::CaseInsensitive);
	connect(m_completer, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
}
Пример #18
0
void CodeEditor::setCompleter(QCompleter *completer){
    if(completer_){
        QObject::disconnect(completer_, 0, this, 0);
    }
    completer_ = completer;
    if (!completer_){
        return;
    }
    completer_->setWidget(this);
    completer_->setCompletionMode(QCompleter::PopupCompletion);
    completer_->setCaseSensitivity(Qt::CaseInsensitive);
    QObject::connect(completer_, SIGNAL(activated(QString)),
                     this, SLOT(insertCompletion(QString)));
}
Пример #19
0
LiteCompleter::LiteCompleter(QObject *parent) :
    LiteApi::ICompleter(parent),
    m_completer( new CodeCompleterEx(this)),
    m_model(new QStandardItemModel(this)),
    m_bSearchSeparator(true),
    m_bExternalMode(false)
{
    m_completer->setModel(m_model);
    m_completer->setCaseSensitivity(Qt::CaseSensitive);
    m_completer->setSeparator(".");
    m_stop = '(';
    QObject::connect(m_completer, SIGNAL(activated(QModelIndex)),
                     this, SLOT(insertCompletion(QModelIndex)));
}
Пример #20
0
void SyntaxTextEditor::setCompleter(SyntaxCompleter *completer)
{
    if (editCompleter)
        QObject::disconnect(editCompleter, 0, this, 0);

    editCompleter = completer;

    if (!editCompleter)
        return;

    editCompleter->setFileName(this->curFile);
    editCompleter->setWidget(this);
    QObject::connect(editCompleter, SIGNAL(activated(QString)),
                     this, SLOT(insertCompletion(QString)));
}
Пример #21
0
void MimeTextEdit::setCompleter(QCompleter *completer)
{
	if (mCompleter)
		QObject::disconnect(mCompleter, 0, this, 0);

	mCompleter = completer;

	if (!mCompleter)
		return;

	mCompleter->setWidget(this);
	mCompleter->setCompletionMode(QCompleter::PopupCompletion);
	mCompleter->setCaseSensitivity(Qt::CaseInsensitive);
	QObject::connect(mCompleter, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
}
Пример #22
0
void LineEdit::setCompleter(QCompleter *completer)
 {
     if (c)
         QObject::disconnect(c, 0, this, 0);

     c = completer;

     if (!c)
         return;

     c->setWidget(this);
     c->setCompletionMode(QCompleter::PopupCompletion);
     c->setCaseSensitivity(Qt::CaseInsensitive);
     QObject::connect(c, SIGNAL(activated(QString)),
                      this, SLOT(insertCompletion(QString)));
 }
Пример #23
0
void RecipientEdit::setChoices(QStringList choices) {
  m_choices = choices;
  if (m_completer)
    delete m_completer;

  m_completer = new QCompleter(this);
  m_completer->setWidget(this);

  m_completer->setCaseSensitivity(Qt::CaseInsensitive);
  QStringListModel* model = new QStringListModel(choices);
  m_completer->setModel(model);
  //m_completer->setCompletionMode(QCompleter::PopupCompletion);
  
  connect(m_completer, SIGNAL(activated(QString)),
          this, SLOT(insertCompletion(QString)));
}
Пример #24
0
void ContactListEdit::setCompleter( QCompleter* completer )
{
   if( _completer )
   {
      QObject::disconnect(_completer, 0, this, 0 );
   }
   _completer = completer;

   if( !_completer ) return;

   _completer->setWidget(this);
   _completer->setCompletionMode( QCompleter::PopupCompletion );
   _completer->setCaseSensitivity(Qt::CaseInsensitive);
  
   connect(_completer, SIGNAL(activated(QString)),
           this, SLOT(insertCompletion(QString)));

}
Пример #25
0
void XmlEdit::performCompletion(const QString &completionPrefix)
{
    populateModel(completionPrefix);

    if (completionPrefix != completer->completionPrefix()) {
        completer->setCompletionPrefix(completionPrefix);
        completer->popup()->setCurrentIndex(
                completer->completionModel()->index(0, 0));
    }

    if (completer->completionCount() == 1)
        insertCompletion(completer->currentCompletion(), true);
    else {
        QRect rect = cursorRect();
        rect.setWidth(completer->popup()->sizeHintForColumn(0) +
                completer->popup()->verticalScrollBar()->
                sizeHint().width());
        completer->complete(rect);
    }
}
Пример #26
0
TagEditor::TagEditor(QWidget* parent)
    : KTextEdit(parent)
{
    // Don't keep scroll bars
    setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
    setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );

    setContextMenuPolicy( Qt::NoContextMenu );
    setPlaceholderText( QLatin1String("Tags (comma separated)") );

    connect( document()->documentLayout(), SIGNAL(documentSizeChanged(QSizeF)),
             this, SLOT(slotDocumentSizeChanged()) );

    slotDocumentSizeChanged();

    m_completer = new TagCompleter( this );
    m_completer->setWidget( this );
    m_completer->setCompletionMode( QCompleter::PopupCompletion );

    connect( m_completer, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)) );
}
Пример #27
0
SCsCodeEditor::SCsCodeEditor(QWidget *parent) : QPlainTextEdit(parent)
{
    mLineNumberArea = new SCsLineNumberArea(this);
    mAnalyzer = new SCsCodeAnalyzer(this);
    mCompleter = new SCsCodeCompleter(this);

    mCompleter->setWidget(this);
    mCompleter->setCompletionMode(QCompleter::PopupCompletion);
    mCompleter->setCaseSensitivity(Qt::CaseSensitive);
    mCompleter->setModelSorting(QCompleter::CaseInsensitivelySortedModel);

    connect(mCompleter, SIGNAL(activated(QModelIndex)), this, SLOT(insertCompletion(QModelIndex)));

    connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth(int)));
    connect(this, SIGNAL(updateRequest(QRect,int)), this, SLOT(updateLineNumberArea(QRect,int)));
    connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine()));
    connect(this, SIGNAL(textChanged()), this, SLOT(updateAnalyzer()));


    updateLineNumberAreaWidth(0);
    highlightCurrentLine();
}
Пример #28
0
void LuaEditor::inite() {
	// inite kite2D model
	initeModel();

	// create editor
	editor = new CodeEditor(completer, this);

	// create highlighter 
	hlight = new LuaHLight(editor->document());

	//main layout
	auto vlayout = new QVBoxLayout(this);
	vlayout->setMargin(2);

	vlayout->addWidget(editor);

	reload();
	
	// connect completer 
	connect(completer, SIGNAL(activated(QString)),
			editor, SLOT(insertCompletion(QString)));
}
Пример #29
0
CodeEditor::CodeEditor(QWidget *parent) :
    QTextEdit(parent)
{


    setAcceptRichText(false);
    setTabStopWidth(40);
    SHL = new SyntaxHL(this); //Adding syntax highlighter.

    //Auto-complete setup:

    compList << "add"
             << "addu"
             << "sub"
             << "subu"
             << "and"
             << "or"
             << "xor"
             << "srlv"
             << "sllv"
             << "srav"
             << "slt"
             << "sltu"
             << "addi"
             << "addiu"
             << "andi"
             << "ori"
             << "nori"
             << "xori"
             << "srl"
             << "sll"
             << "sra"
             << "slti"
             << "sltiu"
             << "beq"
             << "bne"
             << "lui"
             << "sb"
             << "lb"
             << "lbu"
             << "sh"
             << "lh"
             << "lhu"
             << "sw"
             << "lw"
             << "lwl"
             << "lwr"
             << "swl"
             << "swr"
             <<"ll"
            << "sc"
            << "jr"
            << "jalr"
            << "mfhi"
            << "mflo"
            << "mthi"
            << "mtlo"
            << "mult"
            << "multu"
            << "div"
            << "divu"
            << "j"
            << "jal"
            << "syscall"
            << "nop";

    //for (int i = 0; i < 32; i++) compList.append(QString("$" + QString::number(i)));
    compList << "$0"
             << "$zero"
             << "$at"
             << "$v0"
             << "$v1"
             <<"$a0"
            << "$a1"
            << "$a2"
            << "$a3"
            << "$t0"
            << "$t1"
            << "$t2"
            << "$t3"
            << "$t4"
            << "$t5"
            << "$t6"
            << "$t7"
            << "$s0"
            << "$s1"
            << "$s2"
            << "$s3"
            << "$s4"
            << "$s5"
            << "$s6"
            << "$s7"
            << "$t8"
            << "$t9"
            << "$gp"
            << "$fp"
            << "$ra"
            << "$sp";

    compList << "blt"  <<  "bgt"
             <<  "ble"
             <<  "bge"
             <<  "bltu"
             <<  "bgtu"
             <<  "bleu"
             <<  "bgeu"
             <<  "blti"
             <<  "bgti"
             <<  "blei"
             <<  "bgei"
             <<  "bltiu"
             <<  "bgtiu"
             <<  "bleiu"
             <<  "bgeiu"
             <<  "beqz"
             <<  "bnez"
             <<  "bltz"
             <<  "bgtz"
             <<  "blez"
             <<  "bgez"
             <<  "li"
             <<  "ror"
             <<  "rol"
             <<  "not"
             <<  "neg"
             <<  "move"
             <<  "abs"
             <<  "mul"
             <<  "div"
             <<  "rem"
             <<  "clear"
             <<  "subi"
             <<  "la"
             << ".align" << ".ascii" << ".asciiz" << ".byte" << ".double" <<".float" << ".half" << ".space" << ".word";

    lCounter = NULL;

    model = new QStringListModel(compList, this);

    codeCompleter = new QCompleter(model, this);
    codeCompleter->setCompletionMode(QCompleter::PopupCompletion);
    CompleterList *cl = new CompleterList(this);
    codeCompleter->setPopup(cl);
    codeCompleter->setCaseSensitivity(Qt::CaseInsensitive);
    codeCompleter->setWidget(this);

    QObject::connect(codeCompleter, SIGNAL(activated(QString)), this, SLOT(insertCompletion(QString)));
    QObject::connect(this, SIGNAL(textChanged()), this, SLOT(updateCounter()));
    QObject::connect(this, SIGNAL(textChanged()), this, SLOT(refreshScroll()));
    QObject::connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(refreshScroll()));
    QObject::connect(this, SIGNAL(textChanged()), this, SLOT(completerPop()));    
    QObject::connect(this, SIGNAL(selectionChanged()), this, SLOT(highlightLine()));
    QObject::connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightLine()));
    QObject::connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(updateCounterFormat()));
    QObject::connect(this, SIGNAL(textChanged()), this, SLOT(updateCounterFormat()));
    selectionStart = selectionEnd = 0;

}