OSDN Git Service

テキストビューアを試し実装
[gefu/Gefu.git] / simpletextview.cpp
1 #include "common.h"
2 #include "simpletextview.h"
3
4 #include <QDebug>
5 #include <QSettings>
6
7 SimpleTextView::SimpleTextView(QWidget *parent) :
8     QPlainTextEdit(parent)
9 {
10     setReadOnly(true);
11
12     QSettings settings;
13     QPalette palette = this->palette();
14     palette.setColor(QPalette::Base,
15                      settings.value(IniKey_ViewColorBgNormal).value<QColor>());
16     palette.setColor(QPalette::Text,
17                      settings.value(IniKey_ViewColorFgNormal).value<QColor>());
18     setPalette(palette);
19 }
20
21
22 void SimpleTextView::keyPressEvent(QKeyEvent *event)
23 {
24     QString modifier = QString::null;
25     if (event->modifiers() & Qt::ShiftModifier)     { modifier += "Shift+"; }
26     if (event->modifiers() & Qt::ControlModifier)   { modifier += "Ctrl+"; }
27     if (event->modifiers() & Qt::AltModifier)       { modifier += "Alt+"; }
28     if (event->modifiers() & Qt::MetaModifier)      { modifier += "Meta+"; }
29
30     QString key = QKeySequence(event->key()).toString();
31     QString ksq = QKeySequence(modifier + key).toString();
32
33     if (ksq == "Return" || ksq == "Backspace" || ksq == "W") {
34         emit viewFinished(this);
35         event->accept();
36         return;
37     }
38
39     if (ksq != "Down" && ksq != "Up") {
40         qDebug() << ksq;
41     }
42     QPlainTextEdit::keyPressEvent(event);
43 }