Programming Guide

Total Page:16

File Type:pdf, Size:1020Kb

Programming Guide Programming Guide: The modular Qt C++ class library provides a rich set of application building blocks, delivering all of the functionality needed to build SocialCalc on Maemo. QtCore module: This is the most basic module required as it holds the event-loop and the most basic functionality required by Qt. Classes from this module have been frequently used in this application. Couple of them are explained below, further usage of other classes are explained as encountered. i. QString : Unicode character string. ii. QVariant: Acts like a union for the most common Qt data types. QtWebKit module: The Qt WebKit Integration is an integration of WebKit – the open source web browser engine fork of KHTML from the KDE project – with Qt. The Qt WebKit Integration provides an HTML browser engine that makes it easy to embed web content into native applications, and to enhance web content with native controls. Module provides class references required to implement database interaction in SocialCalc on Maemo. These class references would allow interaction between functions defined in JavaScript in index.html and UI framework developed using Qt C++ class library. Complete Qt code can be visualized by following file structure: .Pro file .ui file .h file (header) .cpp file (implementation of class main.cpp With reference to above structure, following is description of each and every file : .UI File : Graphical user interface of SocialCalc on Maemo is developed using Qt Designer. This Qt tool lets user develop application in WYSIWYG manner. By drop down strategy, as GUI of SocialCalc on Maemo is assembled, integrated XML code is generated which is saved in file with .ui extension as <name of file>.ui. Header file(.h): In this file, class named Test is defined as a QWidget. Q_OBJECT macro indicates use of Qt’s signals and slot features. #include <QtGui> #include <QWidget> #include "ui_example.h" class QPushButton; class Test : public QWidget ,public Ui::Form { Q_OBJECT public : Test(QWidget *parent=0); public slots: void on_pushButton1_clicked(); ///Start SocialCalc void on_pushButton2_clicked(); // Save feature void on_pushButton3_clicked(); ///Open feature private: QPushButton *startsocialcalc; QPushButton *SaveButton; QPushButton *OpenButton; }; #endif Three public slots are declared to perform three different functionalities of Starting, Saving and Opening the content. Along with this references to QPushButton are instantiated which are later to be used in Signals and Slots mechanism. “ui_example.h” included in the class definition is generated by User Interface Compiler (UIC). It reads an XML format user interface definition (.ui) file as generated by Qt Designer and creates a corresponding C++ header file. Once Test class has been defined, corresponding implantation of the class is done in .cpp file. .CPP file (implementation of class defined above): The constructor of class Test accepts a QWidget parameter, parent. Test::Test(QWidget *parent):QWidget(parent) { setupUi(this); connect(startsocialcalc, SIGNAL(clicked()), this, SLOT(on_pushButton1_clicked())); connect(SaveButton, SIGNAL(clicked()), this, SLOT(on_pushButton2_clicked())); connect(OpenButton, SIGNAL(clicked()), this, SLOT(on_pushButton3_clicked())); } Constructor’s definition includes: setupUi( this): It sets up the GUI of the application. Signals and Slot mechanism of Qt. SocialCalc button clicked on_pushButton1_clicked()- (Signal) Slot on_pushButton2_clicked()- Save button clicked (Signal) Slot on_pushButton3_clicked()- Open button clicked (Signal) Slot Implementation of Test class further includes description of the functions used in Signals and Slots mechanism. Following write up describes workflow in the functions when they are called: on_pushButton1_clicked(): void Test ::on_pushButton1_clicked() { webView ->setUrl(QUrl("index.html")); } On clicking the SocialCalc button, on_pushButton1_clicked() function is called. As coded, using QWebView class reference, public function setUrl is called, through which HTML page is loaded in WebView space of GUI. QWebView is the main widget component of the QtWebKit web browsing module. index.html file contains JavaScript code of SocialCalc which when loaded presents user a new spreadsheet. on_pushButton2_clicked(): This function is called when Save button is clicked. On accessing dosave() function in index.html, contents written on the spreadsheet by user are saved in a JavaScript string variable. dosave() function is called by passing it in evaluateJavaScript() as an argument, public function of QWebElement class reference. Return type of evaluateJavaScript() is QVariant variable which is converted to QString variable. void Test::on_pushButton2_clicked() { { QVariant content = webView->page()->mainFrame()- >evaluateJavaScript("dosave()"); QString data = content.toString(); QString variable obtained is written and saved in a file in host system using file handling operations. These operations are part of Qt Core module and mainly use QFile and QIODevice class reference. For the saving feature, fileName is obtained using QFileDialog::getSaveFileName(). This is a convenience function provided by QFileDialog which pops up a modal file dialog and allows the user to enter a file name or select any existing .scalc file. The .scalc file is SocialCalc on Maemo extension that is created when spreadsheet is saved. QString fileName = QFileDialog::getSaveFileName(this, tr("Save Spread Sheet"), "", tr("Social Calc (*.scalc);; AllFiles (*)")); If fileName is not empty, QFile object is created that is a file, with fileName. QFile works with QTextStream as QFile is a QIODevice. Next, file is opened in WriteOnly mode which if unsuccessful, QMessageBox is displayed to inform user. Otherwise, QTextStream object,in, is instantiated to write the open file. if (!fileName.isEmpty()) { // save to file QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } QTextStream in(&file); in << data; } } } on_pushButton3_clicked(): With reference to Signals and Slots mechanism, this function is called on clicking the Open button. To retrieve the saved spreadsheet, relevant file is read using QFile and QTextStream classes. QString obtained as a result of Qt file handling operation described above is passed to JavaScript function doreload(). Similar approach is followed to call JavaScript function doreload() as was used in implementing Save functionality. index.html contains definition of doreload() function. QtWebKit module is used to interact between JavaScript and Qt C++ code. For the retrieval feature, filename is obtained using QFileDialog::getOpenFileName(). This function, the counterpart to QFileDialog::getSaveFileName(), also pops up the modal file dialog and allows the user to enter a file name or select any existing .scalc file to load it into the the application SocialCalc on Maemo. void Test::on_pushButton3_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open Spread Sheet"), "", tr("Social Clac (*.scalc);; All Files(*)")); If fileName is not empty, again, QFile object, file, is used to open it in ReadOnly mode. Similar to implementation of save feature, if this attempt is unsuccessful, a QMessageBox is displayed to inform the user. Otherwise, a QTextStream object, out, is instantiated to read contents of file into a QString variable output. if (!fileName.isEmpty()) { // read from file QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } QTextStream out(&file); QString output = out.readAll(); Final step involves calling JavaScript function doreload() using evaluateJavaScript() function (public function defined in QWebElement class). QString variable obtained above is passed as an argument to doreload() function. Doreload() function prepares the spreadsheet for user with saved content displayed on it. webView->page()->mainFrame()-> evaluateJavaScript(QString("doreload('%1')").arg(output)); } } Main.cpp: A separate file, main.cpp, is used for the main() function. Within this function, QApplication object, app, is instantiated. QApplication is responsible for various application-wide resources, such as the default font and cursor, and for running an event loop. Hence, there is always one QApplication object in every GUI application using Qt. #include <QApplication> #include <QtGui> #include "example.h" int main(int argc ,char *argv[]) { QApplication app(argc,argv); Test *tela = new Test; tela->show(); return app.exec(); } A new Test widget is created on the stack and its show() function is invoked to display it. However, the widget will not be shown until the application's event loop is started. The event loop is started by calling the application's exec() function; the result returned by this function is used as the return value from the main() function. Compiling the Qt project and running the application on Maemo OS: In terminal, type the following command to start Xephyr 11 server software. $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb Login to Scratchbox X86 target. $ /scratchbox/login Reach the folder of project where all the files have been placed. Generating project file. $ qmake - project Now execute the following command to create a platform specific MakeFile : $ qmake <name of project>.pro To compile program, run the make command: $ make Above command would generate an executable file of application SocialCalc on Maemo. Following set of commands would run application on Maemo OS, seen on Xephyr X11. $ export DISPLAY =:2 $ af-sb-init.sh start $ run-standalone.sh ./<name of executable file> .
Recommended publications
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • Ubuntu Kung Fu
    Prepared exclusively for Alison Tyler Download at Boykma.Com What readers are saying about Ubuntu Kung Fu Ubuntu Kung Fu is excellent. The tips are fun and the hope of discov- ering hidden gems makes it a worthwhile task. John Southern Former editor of Linux Magazine I enjoyed Ubuntu Kung Fu and learned some new things. I would rec- ommend this book—nice tips and a lot of fun to be had. Carthik Sharma Creator of the Ubuntu Blog (http://ubuntu.wordpress.com) Wow! There are some great tips here! I have used Ubuntu since April 2005, starting with version 5.04. I found much in this book to inspire me and to teach me, and it answered lingering questions I didn’t know I had. The book is a good resource that I will gladly recommend to both newcomers and veteran users. Matthew Helmke Administrator, Ubuntu Forums Ubuntu Kung Fu is a fantastic compendium of useful, uncommon Ubuntu knowledge. Eric Hewitt Consultant, LiveLogic, LLC Prepared exclusively for Alison Tyler Download at Boykma.Com Ubuntu Kung Fu Tips, Tricks, Hints, and Hacks Keir Thomas The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Prepared exclusively for Alison Tyler Download at Boykma.Com Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
    [Show full text]
  • The Nokia Open Source Browser
    The Nokia Open Source Browser Guido Grassel1, Roland Geisler2, Elina Vartiainen1, Deepika Chauhan2, Andrei Popescu1 1Nokia Research Center, P.O. Box 407, 00045 Nokia Group, Finland 2Nokia Technology Platforms, 5 Wayside Road, Burlington, MA 01803, U.S.A, [guido.grassel, roland.geisler, elina.vartiainen, deepika.chauhan, andrei.popescu]@nokia.com ABSTRACT learned and benefits, and chapter 7 summarizes and makes final With the advent of faster wireless networks and more conclusions. capable mobile devices we expect to see growth in the mobile use of the Internet. In this paper we describe a new Web browser for 2. RELATED WORK mobile devices that we have built based on Open Source Software Both Web browsers licensed by Nokia as well as S60’s own components. Our goal was to design a full Web browser that is browser used Narrow Layout. Narrow Layout is a method easy to use, an architecture that is portable to other mobile whereby the Web page is reformatted into one column that fits the software platforms, and an Open Source development approach to width of a typically small handheld device display. This way, the give others the opportunity to further develop it or use it for need for horizontal scrolling is eliminated and the user will see all research purposes. We describe our technical implementation, the the content just by scrolling down. From our own experience usability features that we invented, and discuss the benefits and using these browsers, and based on usability studies [17] we Nokia's plans to work with the Open Source community to further concluded that this method was insufficient.
    [Show full text]
  • Rapid GUI Development with Qtruby
    Rapid GUI Development with QtRuby Caleb Tennis The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas BOOKLEET © Many of the designations used by manufacturers and sellers to distin- guish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Pro- grammer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC. Qt® is a registered trademark of Trolltech in Norway, the United States and other countries. Useful Friday Links • Source code from this book and Every precaution was taken in the preparation of this book. However, the other resources. publisher assumes no responsibility for errors or omissions, or for dam- • Free updates to this PDF • Errata and suggestions. To report ages that may result from the use of information (including program list- an erratum on a page, click the ings) contained herein. link in the footer. To see what we’re up to, please visit us at http://www.pragmaticprogrammer.com Copyright © 2006 The Pragmatic Programmers LLC. All rights reserved. This PDF publication is intended for the personal use of the individual whose name appears at the bottom of each page. This publication may not be disseminated to others by any means without the prior consent of the publisher. In particular, the publication must not be made available on the Internet (via a web server, file sharing network, or any other means).
    [Show full text]
  • Master Thesis Innovation Dynamics in Open Source Software
    Master thesis Innovation dynamics in open source software Author: Name: Remco Bloemen Student number: 0109150 Email: [email protected] Telephone: +316 11 88 66 71 Supervisors and advisors: Name: prof. dr. Stefan Kuhlmann Email: [email protected] Telephone: +31 53 489 3353 Office: Ravelijn RA 4410 (STEPS) Name: dr. Chintan Amrit Email: [email protected] Telephone: +31 53 489 4064 Office: Ravelijn RA 3410 (IEBIS) Name: dr. Gonzalo Ord´o~nez{Matamoros Email: [email protected] Telephone: +31 53 489 3348 Office: Ravelijn RA 4333 (STEPS) 1 Abstract Open source software development is a major driver of software innovation, yet it has thus far received little attention from innovation research. One of the reasons is that conventional methods such as survey based studies or patent co-citation analysis do not work in the open source communities. In this thesis it will be shown that open source development is very accessible to study, due to its open nature, but it requires special tools. In particular, this thesis introduces the method of dependency graph analysis to study open source software devel- opment on the grandest scale. A proof of concept application of this method is done and has delivered many significant and interesting results. Contents 1 Open source software 6 1.1 The open source licenses . 8 1.2 Commercial involvement in open source . 9 1.3 Opens source development . 10 1.4 The intellectual property debates . 12 1.4.1 The software patent debate . 13 1.4.2 The open source blind spot . 15 1.5 Litterature search on network analysis in software development .
    [Show full text]
  • Webkit and Blink: Open Development Powering the HTML5 Revolution
    WebKit and Blink: Open Development Powering the HTML5 Revolution Juan J. Sánchez LinuxCon 2013, New Orleans Myself, Igalia and WebKit Co-founder, member of the WebKit/Blink/Browsers team Igalia is an open source consultancy founded in 2001 Igalia is Top 5 contributor to upstream WebKit/Blink Working with many industry actors: tablets, phones, smart tv, set-top boxes, IVI and home automation. WebKit and Blink Juan J. Sánchez Outline The WebKit technology: goals, features, architecture, code structure, ports, webkit2, ongoing work The WebKit community: contributors, committers, reviewers, tools, events How to contribute to WebKit: bugfixing, features, new ports Blink: history, motivations for the fork, differences, status and impact in the WebKit community WebKit and Blink Juan J. Sánchez WebKit: The technology WebKit and Blink Juan J. Sánchez The WebKit project Web rendering engine (HTML, JavaScript, CSS...) The engine is the product Started as a fork of KHTML and KJS in 2001 Open Source since 2005 Among other things, it’s useful for: Web browsers Using web technologies for UI development WebKit and Blink Juan J. Sánchez Goals of the project Web Content Engine: HTML, CSS, JavaScript, DOM Open Source: BSD-style and LGPL licenses Compatibility: regression testing Standards Compliance Stability Performance Security Portability: desktop, mobile, embedded... Usability Hackability WebKit and Blink Juan J. Sánchez Goals of the project NON-goals: “It’s an engine, not a browser” “It’s an engineering project not a science project” “It’s not a bundle of maximally general and reusable code” “It’s not the solution to every problem” http://www.webkit.org/projects/goals.html WebKit and Blink Juan J.
    [Show full text]
  • Open Source Software Seminar — Konstantin Käfer Webkit
    WebKit Bug #17229 Konstantin Käfer 1 Open Source SoftwareOpen Seminar Source — Software Konstantin Seminar Käfer Outline ‣ Project Structure and Goals ‣ History ‣ Communication and Process ‣ People ‣ The Bug 2 Open Source Software Seminar — Konstantin Käfer WebKit GTK Android Google Symbian Chrome Safari Qt Toolkit 3 Open Source Software Seminar — Konstantin Käfer 1. Project Structure and Goals WebCore JavaScriptCore Rendering Engine JavaScript Engine WebKit { Wrapper 4 Open Source Software Seminar — Konstantin Käfer 1. Project Structure and Goals Goals ‣ Web Content Engine: mainly web, but also general- purpose display/interaction engine ‣ Portability: Make it usable on many platforms ‣ Hackability: Keep code easy and maintainable ‣ Usability: Use platform-native UI conventions 5 Open Source Software Seminar — Konstantin Käfer 2. History 2. History 1999: Started as KHTML (KDE project) 2002: Apple forked quietly 2005: Apple opens up development process Now: “Unforking” 6 Open Source Software Seminar — Konstantin Käfer 2. History Apple vs. KHTML ‣ Apple did only the minimum required by LGPL ‣ No access to internal CVS ‣ Changes are released as single large patches ‣ Lots of platform-specific code ‣ Only WebCore/JSCore, but not WebKit was released 7 Open Source Software Seminar — Konstantin Käfer 3. Communication and Process Mailing lists Bug tracker IRC Ticket Patch Review Commit 8 Open Source Software Seminar — Konstantin Käfer 3. Communication and Process Mailing lists ‣ webkit-dev: General discussion ‣ webkit-reviews: Receives all review requests ‣ webkit-changes: Receives all commit messages ‣ webkit-unassigned: All unassigned tickets ‣ webkitsdk-dev: Development on Mac OS X 9 Open Source Software Seminar — Konstantin Käfer 3. Communication and Process Bug tracker ‣ Bugzilla 10 Open Source Software Seminar — Konstantin Käfer 3.
    [Show full text]
  • The State of KHTML in the Beginning
    The State of KHTML In The Beginning... Why KHTML Is Important ● KHTML is critical to the success of KDE ● Provides a fast, light web browser and component that tightly integrates with KDE ● Gives us higher visibility as a project: “the web” is much larger than the Linux desktop community ● It's a great testcase for our existing infrastructure What We Have ● CSS 1 / 2 parts of 3 ● Java applets (modular) ● SSL ● ECMAScript 1.2 ● Wallet ● XHTML ● KDE integration ● HTML up to 4.x ● Basic LiveConnect ● “AJAX” support ● KJSEmbed derived ● NS plugin support from KJS What We Don't Have ● Internal SVG support ● DOM bindings to non- C++/non-JS ● Latest NSPlugin API support ● Opacity (Qt4 should help) ● XBL ● Lightweight widgets ● Content Editable KHTML – From Industry ● Great alternative to Gecko and Opera – small, fast, easy to understand, standards compliant ● In use in many embedded platforms as well as desktop browsers – Safari, Nokia, Omni, etc ● Forking is a problem ● Gaining respect from other browser vendors ● Could become a major player with enough 'unity' - >= 10% market share Can We Complete The “Merge”? ● “Merging” is not really feasible at this point ● Unity – a port of WebKit to Qt4: – KPart, KIO development is underway – Ca n co-exist with KHTML from KDE – Works 'now' – Abstraction layer in WebKit makes it relatively easy to port – Open questions: How do we avoid re-forking? How do we merge our own work? If We Go Unity, What Do We Gain? ● Support for many of the functions we lack as described earlier – XBL, content editable, etc ●
    [Show full text]
  • The Konqueror Handbook
    The Konqueror Handbook Pamela Roberts Developers: The KDE Team The Konqueror Handbook 2 Contents 1 Overview 6 2 Konqueror Basics7 2.1 Starting Konqueror . .7 2.2 The Parts of Konqueror . .8 2.3 Tooltips and What’s This? . .9 2.4 Left and Middle Mouse Button Actions . .9 2.5 Right Mouse Button Menus . 10 2.6 Viewing Help, Man and Info Pages . 11 3 Konqueror the File Manager 12 3.1 Folders and Paths . 12 3.2 View Modes . 12 3.2.1 File Tip Info . 13 3.2.2 File Previews . 13 3.2.3 Information in the View . 14 3.3 Folder View Properties . 14 3.3.1 The View Properties Dialog . 15 3.4 Navigation . 15 3.4.1 Finding Files and Folders . 16 3.4.2 Removable Devices . 16 3.5 Deleting Files and Folders . 17 3.6 Moving and Copying . 17 3.6.1 Using Drag ’n Drop . 18 3.6.2 Duplicate File or Folder Names . 18 3.7 Selecting Items in the View . 19 3.7.1 Selecting Items Using the Mouse . 19 3.7.2 Selecting Items Using the Keyboard . 19 3.7.3 Selecting Items Using the Menu . 20 3.8 Create New . 20 3.9 Changing Names and Permissions . 21 3.9.1 Copy and Rename . 21 3.10 Configuring File Associations . 22 3.11 At the Command Line . 22 The Konqueror Handbook 4 Konqueror the Web Browser 23 4.1 Connecting to the Internet . 23 4.2 Surfing and Searching . 24 4.3 Tabbed Browsing . 25 4.4 Web Shortcuts .
    [Show full text]
  • Glossary.Pdf
    2 Contents 1 Glossary 4 3 1 Glossary Technologies Akonadi The data storage access mechanism for all PIM (Personal Information Manager) data in KDE SC 4. One single storage and retrieval system allows efficiency and extensibility not possible under KDE 3, where each PIM component had its own system. Note that use of Akonadi does not change data storage formats (vcard, iCalendar, mbox, maildir etc.) - it just provides a new way of accessing and updating the data.</p><p> The main reasons for design and development of Akonadi are of technical nature, e.g. having a unique way to ac- cess PIM-data (contacts, calendars, emails..) from different applications (e.g. KMail, KWord etc.), thus eliminating the need to write similar code here and there.</p><p> Another goal is to de-couple GUI applications like KMail from the direct access to external resources like mail-servers - which was a major reason for bug-reports/wishes with regard to perfor- mance/responsiveness in the past.</p><p> More info:</p><p> <a href=https://community.kde.org/KDE_PIM/Akonadi target=_top>Akonadi for KDE’s PIM</a></p><p> <a href=https://en.wikipedia.org/wiki/Akonadi target=_top>Wikipedia: Akonadi</a></p><p> <a href=https://techbase.kde.org/KDE_PIM/Akonadi target=_top>Techbase - Akonadi</a> See Also "GUI". See Also "KDE". Applications Applications are based on the core libraries projects by the KDE community, currently KDE Frameworks and previously KDE Platform.</p><p> More info:</p><p> <a href=https://community.kde.org/Promo/Guidance/Branding/Quick_Guide/ target=_top>KDE Branding</a> See Also "Plasma".
    [Show full text]
  • Webkit in Qt and Qtopia (2008)
    WebKit in Qt and Qtopia February 2008 Abstract This whitepaper discusses the challenges faced when developing applications that re- quire dynamic user interfaces based on Web technologies. We describe why Trolltech has chosen WebKit as the preferred option for integration of Web technology in Qt applications, and describe benefits and possible use cases enabled by this integration. Contents 1. Executive Summary 2 2. Rationale 3 2.1. Web Technologies Provide Rich Experiences ................... 3 2.2. Simplifying the User Interface ........................... 3 3. The Trolltech Solution 4 4. Features Overview 5 4.1. Web Standards Support ............................... 5 4.2. Native Application Integration ........................... 6 5. In Depth: Technology Details 7 5.1. Examples ....................................... 7 5.2. Underlying Technologies .............................. 9 5.3. Future Improvements ................................ 10 6. Benefits 11 7. Use Cases 12 WebKit in Qt and Qtopia © 2008 Trolltech ASA 1. Executive Summary Forthcoming versions of Trolltech’s Qt and Qtopia products feature integration of the We- bKit open source rendering and scripting components. The Qt WebKit Integration abstracts the components with highly intuitive Qt APIs, and exploits Qt’s underlying infrastructure to retain its renowned cross-platform portability. The Qt WebKit Integration allows Web and native content to be easily merged on de- vices and in desktop applications, allowing new opportunities for service innovation. Use cases may include mixing Facebook content with local address book details, or populating a scripted idle screen weather widget with live updates. WebKit allows script based – as opposed to code based – development of a UI. This allows for faster design, code and test iterations than compiled code because there is less overhead for deployment.
    [Show full text]
  • KDE 4 – the Future of the K Desktop
    KDE 4 – the future of the K Desktop Beside KDE and GNOME, Mandriva 2008.1 contains also the future great evolution of the KDE desktop: KDE 4. The Mandriva 2008.1 is shipped with KDE 4.0.3, which can be seen as a technology preview of what will be the KDE 4 desktop. That’s why KDE 4 is not proposed by default and is not replacing KDE 3.5.9. DE 4 will be a major update of the KDE desktop featuring Kmany new technologies and some radical changes in the KDE underlying infrastructures. KDE 4 is based on Qt 4 which brings many improvements concerning the text handling (Arthur), graphical effects, performances improvements, Web- kit HTML engine integration. Many new infrastructure components have been introduced like Phonon for basic multimedia usage, Solid for hardware interaction and detection, or the new desktop shell Plasma (see Figure 1). For further informations you can visit the KDE 4 dedicated web pages: http://kde.org/announcements/ Figure 1. The default KDE 4 desktop 4.0/guide.php http://kde.org/announcements/ announce-4.0.3.php Installing and testing KDE 4 KDE 4 is provided for testing purposes. You are not supposed to use it as your default desktop. Indeed as this is a technology preview, don’t be surprised if you encounter some crashes or bugs. Installing KDE 4.0.3 Now the first thing to do before testing KDE is... installing KDE 4. Installing KDE 4 under Mandriva is very easy and straightforward. First, all the Man- driva official repositories need to be configured.
    [Show full text]