Skip to content

Commit

Permalink
WIP Port to QtQuick2
Browse files Browse the repository at this point in the history
  • Loading branch information
special committed Jul 22, 2013
1 parent fed2dfb commit 24efd65
Show file tree
Hide file tree
Showing 22 changed files with 87 additions and 97 deletions.
3 changes: 1 addition & 2 deletions dbusadaptor.cpp
Expand Up @@ -17,8 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

#include <QApplication>
#include <QWidget>
#include <QGuiApplication>
#include "dbusadaptor.h"
#include "mainwindow.h"

Expand Down
2 changes: 1 addition & 1 deletion fingerterm.pro
@@ -1,4 +1,4 @@
QT = core gui declarative opengl dbus
QT = core gui qml quick dbus

contains(MEEGO_EDITION,harmattan): {
CONFIG += meegotouch
Expand Down
1 change: 0 additions & 1 deletion keyloader.h
Expand Up @@ -21,7 +21,6 @@
#define KEYLOADER_H

#include <QtCore>
#include <QtDeclarative>

class Util;

Expand Down
27 changes: 11 additions & 16 deletions main.cpp
Expand Up @@ -20,8 +20,7 @@
#include "qplatformdefs.h"

#include <QtGui>
#include <QtDeclarative>
#include <QtOpenGL>
#include <QtQml>

extern "C" {
#include <pty.h>
Expand Down Expand Up @@ -52,7 +51,7 @@ int main(int argc, char *argv[])
QSettings *settings = new QSettings(QDir::homePath()+"/.config/FingerTerm/settings.ini", QSettings::IniFormat);
defaultSettings(settings);

// fork the child process before creating QApplication
// fork the child process before creating QGuiApplication
int socketM;
int pid = forkpty(&socketM,NULL,NULL,NULL);
if( pid==-1 ) {
Expand Down Expand Up @@ -94,7 +93,7 @@ int main(int argc, char *argv[])
exit(0);
}

QApplication app(argc, argv);
QGuiApplication app(argc, argv);

qmlRegisterType<TextRender>("TextRender",1,0,"TextRender");
MainWindow view;
Expand All @@ -107,14 +106,6 @@ int main(int argc, char *argv[])
MComponentData::createInstance(argc, argv, "fingerterm", dba);
#endif

#ifdef MEEGO_EDITION_HARMATTAN
if(!app.arguments().contains("-nogl")) {
view.setViewport(new QGLWidget(QGLFormat(QGL::DoubleBuffer)));
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
}
#endif
view.setResizeMode(QDeclarativeView::SizeRootObjectToView);

Terminal term;
Util util(settings);
term.setUtil(&util);
Expand All @@ -137,7 +128,7 @@ int main(int argc, char *argv[])
qFatal("failure loading keyboard layout");
}

QDeclarativeContext* context = view.rootContext();
QQmlContext *context = view.rootContext();
context->setContextProperty( "term", &term );
context->setContextProperty( "util", &util );
context->setContextProperty( "keyLoader", &keyLoader );
Expand All @@ -159,18 +150,22 @@ int main(int argc, char *argv[])
util.setWindow(&view);
util.setTerm(&term);
util.setRenderer(tr);
view.scene()->installEventFilter(&util); //for grabbing mouse drags
view.installEventFilter(&util); //for grabbing mouse drags

QObject::connect(&term,SIGNAL(displayBufferChanged()),win,SLOT(displayBufferChanged()));
QObject::connect(view.engine(),SIGNAL(quit()),&app,SLOT(quit()));

#ifdef MEEGO_EDITION_HARMATTAN
view.showFullScreen();
#else
if ((QApplication::desktop()->width() < 1024 || QApplication::desktop()->height() < 768 || app.arguments().contains("-fs"))
QSize screenSize = QGuiApplication::primaryScreen()->size();
view.rootObject()->setWidth(screenSize.width());
view.rootObject()->setHeight(screenSize.height());
if ((screenSize.width() < 1024 || screenSize.height() < 768 || app.arguments().contains("-fs"))
&& !app.arguments().contains("-nofs"))
{
view.showFullScreen();
else
} else
view.show();
#endif

Expand Down
9 changes: 5 additions & 4 deletions mainwindow.cpp
Expand Up @@ -30,8 +30,9 @@
#include <X11/Xatom.h>
#endif //MEEGO_EDITION_HARMATTAN

MainWindow::MainWindow(QWidget* parent): QDeclarativeView(parent)
MainWindow::MainWindow()
{
// setResizeMode(SizeRootObjectToView);
}

MainWindow::~MainWindow()
Expand All @@ -40,19 +41,19 @@ MainWindow::~MainWindow()

void MainWindow::focusInEvent(QFocusEvent *event)
{
QDeclarativeView::focusInEvent(event);
QQuickView::focusInEvent(event);
emit focusChanged(true);
}

void MainWindow::focusOutEvent(QFocusEvent *event)
{
QDeclarativeView::focusOutEvent(event);
QQuickView::focusOutEvent(event);
emit focusChanged(false);
}

void MainWindow::minimize()
{
setWindowState(windowState() | Qt::WindowMinimized);
setWindowState(Qt::WindowMinimized);
}

void MainWindow::disableSwipe()
Expand Down
6 changes: 3 additions & 3 deletions mainwindow.h
Expand Up @@ -20,13 +20,13 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDeclarativeView>
#include <QQuickView>

class MainWindow : public QDeclarativeView
class MainWindow : public QQuickView
{
Q_OBJECT
public:
explicit MainWindow(QWidget* parent=0);
explicit MainWindow();
virtual ~MainWindow();

void minimize();
Expand Down
2 changes: 1 addition & 1 deletion qml/Button.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: button
Expand Down
2 changes: 1 addition & 1 deletion qml/Key.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: key
Expand Down
2 changes: 1 addition & 1 deletion qml/Keyboard.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: keyboard
Expand Down
2 changes: 1 addition & 1 deletion qml/LayoutWindow.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: layoutWindow
Expand Down
2 changes: 1 addition & 1 deletion qml/Lineview.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: lineView
Expand Down
4 changes: 1 addition & 3 deletions qml/Main.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0
import TextRender 1.0

Rectangle {
Expand All @@ -32,8 +32,6 @@ Rectangle {

id: window
objectName: "window"
width: 854
height: 480
color: bgcolor

NotifyWin {
Expand Down
3 changes: 2 additions & 1 deletion qml/Menu.qml
Expand Up @@ -17,7 +17,8 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0
import QtQuick.XmlListModel 2.0

Rectangle {
id: menuWin
Expand Down
2 changes: 1 addition & 1 deletion qml/NotifyWin.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: notifyWin
Expand Down
2 changes: 1 addition & 1 deletion qml/UrlWindow.qml
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

import QtQuick 1.1
import QtQuick 2.0

Rectangle {
id: urlWindow
Expand Down
5 changes: 3 additions & 2 deletions rpm/fingerterm.spec
Expand Up @@ -9,8 +9,9 @@ URL: https://github.com/nemomobile/fingerterm
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(Qt5Declarative)
BuildRequires: pkgconfig(Qt5Qml)
BuildRequires: pkgconfig(Qt5Quick)
Requires: qt5-qtdeclarative-import-xmllistmodel
Obsoletes: meego-terminal <= 0.2.2
Provides: meego-terminal > 0.2.2

Expand Down
6 changes: 3 additions & 3 deletions terminal.cpp
Expand Up @@ -17,7 +17,7 @@
along with FingerTerm. If not, see <http://www.gnu.org/licenses/>.
*/

#include <QApplication>
#include <QGuiApplication>
#include <QClipboard>

#include "terminal.h"
Expand Down Expand Up @@ -1142,7 +1142,7 @@ void Terminal::resetTabs()

void Terminal::pasteFromClipboard()
{
QClipboard *cb = QApplication::clipboard();
QClipboard *cb = QGuiApplication::clipboard();
if(cb->mimeData()->hasText() && !cb->mimeData()->text().isEmpty()) {
if(iPtyIFace) {
resetBackBufferScrollPos();
Expand Down Expand Up @@ -1275,7 +1275,7 @@ void Terminal::copySelectionToClipboard()
if (selection().isNull())
return;

QClipboard *cb = QApplication::clipboard();
QClipboard *cb = QGuiApplication::clipboard();
cb->clear();

QString text;
Expand Down
6 changes: 3 additions & 3 deletions terminal.h
Expand Up @@ -21,11 +21,11 @@
#define TERMINAL_H

#include <QtCore>
#include <QWidget>

class TextRender;
class PtyIFace;
class Util;
class QQuickView;

struct TermChar {
QChar c;
Expand Down Expand Up @@ -62,7 +62,7 @@ class Terminal : public QObject
virtual ~Terminal() {}
void setRenderer(TextRender* tr);
void setPtyIFace(PtyIFace* pty);
void setWindow(QWidget* win) { iWindow=win; }
void setWindow(QQuickView* win) { iWindow=win; }
void setUtil(Util* util) { iUtil = util; }

void insertInBuffer(const QString& chars);
Expand Down Expand Up @@ -128,7 +128,7 @@ class Terminal : public QObject

TextRender* iRenderer;
PtyIFace* iPtyIFace;
QWidget* iWindow;
QQuickView* iWindow;
Util* iUtil;

QList<QList<TermChar> > iBuffer;
Expand Down
17 changes: 7 additions & 10 deletions textrender.cpp
Expand Up @@ -22,15 +22,15 @@
#include "terminal.h"
#include "util.h"

TextRender::TextRender(QDeclarativeItem *parent) :
QDeclarativeItem(parent),
TextRender::TextRender(QQuickItem *parent) :
QQuickPaintedItem(parent),
iTerm(0),
iUtil(0)
{
setFlag(QGraphicsItem::ItemHasNoContents, false);
setFlag(ItemHasContents);

connect(this,SIGNAL(widthChanged(int)),this,SLOT(updateTermSize()));
connect(this,SIGNAL(heightChanged(int)),this,SLOT(updateTermSize()));
connect(this,SIGNAL(myWidthChanged(int)),this,SLOT(updateTermSize()));
connect(this,SIGNAL(myHeightChanged(int)),this,SLOT(updateTermSize()));
connect(this,SIGNAL(fontSizeChanged()),this,SLOT(updateTermSize()));

//normal
Expand All @@ -56,16 +56,13 @@ TextRender::TextRender(QDeclarativeItem *parent) :
qFatal("invalid color table");

iShowBufferScrollIndicator = false;

// caching results in considerably faster redrawing during animations
setCacheMode(QGraphicsItem::DeviceCoordinateCache);
}

TextRender::~TextRender()
{
}

void TextRender::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*)
void TextRender::paint(QPainter* painter)
{
if (!iTerm)
return;
Expand Down Expand Up @@ -252,7 +249,7 @@ void TextRender::drawTextFragment(QPainter* painter, int x, int y, QString text,

void TextRender::redraw()
{
update(boundingRect());
update();
}

void TextRender::setTerminal(Terminal *term)
Expand Down

0 comments on commit 24efd65

Please sign in to comment.