Skip navigation.

NoobSaibots I/O

Posts tagged with "c++"

WebKit Browser

, , , ...

Aus reiner Neugier wie weit ich wohl kommen könnte, hab ich mal einen Versuch gestartet einen ähnlichen Browser zu implementieren wie der uzbl.

Wodurch zeichnet sich der uzbl Browser aus. Diese Software ist einzig und allein dafür geschaffen worden eine Seite anzuzeigen. Sonst nichts. Klingt erst einmal recht bescheiden an. Keine Favoriten, keine Extensions, kein gar nichts.

Dafür ist er sehr gut konfigurierbar. Ehrlich gesagt habe ich keine Ahnung wie gut er konfiguriert werden kann, genauer gesagt an die eigenen Bedürfnisse angepasst werden kann, da ich ihn noch nie ausprobiert habe.

Wieso? Ganz einfach. Der uzbl verwendet die Gtk Version von WebKit. Das bedeutet für mich unnötige Bibliotheken auf meinem System, komisch aussehende Dialoge und GUI-Elemente. Keine Integration in mein KDE System. Sei es drum.

Ich verwende die Qt Version von WebKit. Die gesamte Software ist recht übersichtlich und besteht soweit aus 2 Klassen und einer main.cpp. Die Hauptkomponenten des Browsers, die GUI und die WebView sind bei der Script Engine registriert. Das bedeutet, daß man durch selbstgeschriebene Skripte einiges am System drehen kann.

Wer Lust hat das ganze auszuprobieren, hier ist das Code-Repo

Bin offen für Anregungen.

Qt Creator

, , ,

Seit ein paar Wochen trage ich ein wenig Code zum Projekt Qt Creator bei. Qt Creator ist ein Cross-Plattform Entwicklungseditor, der mithilfe von Qt geschrieben wird. Bisher bietet dieser Editor nur Unterstützung für C++/Qt Entwicklung. Dennoch, da die Struktur sehr pluginlastig ist, ist es möglich jedwede Sprache zu unterstützen. Natürlich muß jemand die Implementierung in Angriff nehmen :wink:.

Ein Paar Sachen, die ich soweit implementiert habe:

1. Copy Lines/Selection Up/Down

Das Verhalten habe ich einfach aus Eclipse übernommen. Hier wird entweder die aktuelle Zeile, oder alle Zeilen, die markiert sind, hoch oder runter kopiert. Die Keysequenz dafür ist CTRL+ALT+(UP|DOWN)

2. Minimap

Minimap, hier ein Beispiel, stellt die stark verkleinerte Version des aktuellen Dokumentes dar und ist links von der Editierkomponente positioniert (direkt neben den zeilennummern). Dadurch hat der Entwickler mehr Übersicht über das Dokument. Ferner wird auch der aktuelle sichtbare Bereich durch ein kleines Fenster angezeigt. Dieses Fenster kann auch zum Scrollen benutzt werden.

3. SmartReplace

Diese Funktionalität ermöglicht ein CaseSensitives Ersetzen. Hier ein Beispiel:

#ifndef FOO_H
#define FOO_H

class FooClass {
public:
    FooClass();
    ~FooClass();

private:
    int foo;
};


nun soll das "foo" durch "bar" ersetzt werden. Vorher würde der Ersetzungsalgorithmus jedes Vorkommen von foo (foo, Foo, FOO, ...) exakt durch das ersetzen was im "ersetzen durch:" steht; also durch "bar". Mit meinem kleinen Beitrag würde folgendes rauskommen.

#ifndef BAR_H
#define BAR_H

class BarClass {
public:
    BarClass();
    ~BarClass();

private:
    int bar;
};


Ferner kann auch beliebige Abfolge von klein-/großschreibung beachtet werden, solange die länge von "suchen nach" und "ersetzen durch" gleich ist. CamelCase funktioniert leider nicht, wenn die der ersetzte String nicht die gleiche Länge hat wie der String mit der er ersetzt wird.

Leider hat mein Arbeitgeber mir die Unterschrift des Copyright Assignments versagt. Da das Projekt zwar OpenSource sei, aber dahinter ein kommerzieller Konzern steht würde ich Nokia einen Vorteil erbringen in einem Geschäft, das nicht das geringste das unsere tangiert! Ich frage mich ob ich jetzt auch mein Nokia handy abgeben muß. :furious: :bomb: :jester:

Programmiereditor - QCodeEdit

, , ,

Habe jetzt zumindest eine C++ Komponente entdeckt, die vielversprechend ausschaut. Die Komponente ist in Qt geschrieben -- und somit auch Plattformübergreifend. Und unterstützt einige Sachen bereits jetzt.

Die Komponente ist ein Teil der Entwicklungsumgebung Edyuk. Die sourcen können über SVN bezogen werden:

http://edyuk.svn.sourceforge.net/svnroot/edyuk/trunk/3rdparty/qcodeedit2/

Qt: Dateiexplorer 0.3

, , , ...

Heute veröffentliche ich die Version 0.3 meines Dateiexplorers. Dies ist überwiegend eine Bugfix Version. Folgende Bugs wurden identifiziert und liquidiert :smile:

  • bug: die auswahl der einträge im lister wurden nicht unter den verschiedenen sichten geteilt.
  • bug: der letzte eintrag einer spalte in der listenansicht konnte nicht ausgewählt werden.
  • bug: hat der anwender mehr als nur einen reiter und wurde versucht im "nicht ersten" reiter einen nicknamen einzugeben, stürzte die anwendung ab.
  • bug: beim umschalten zwischen den verschiedenen ansichten über das hauptmenü kann es im aktiven lister bei der navigation in den verzeichnissen zum absturz kommen.
  • erweiterung: nach einer löschoperation werden die lister auf ihre validität geprüft, da das aktuelle verzeichnis gelöscht sein könnte. ist dies der fall wird zum root verzeichnis gesprungen.
  • bug: beim anwählen eines links im krümmelpfad eines listers stürzt das programm gelegentlich ab.
  • bug: bei einem doppelklick wurde der editier modus für diesen eintrag aktiviert.
  • bug: in tabellenansicht wurde eine zelle und nicht die gesamte zeile ausgewählt.
  • bug: der lister wurde nicht aktiv geschaltet wenn auf den lister header gedrückt wird.
  • erweiterung: die anzeige der jeweiligen verzeichnisse im header bereich eines listers wird jetzt durch html links dargestellt.


Zum runterladen der Datei bitte freeOpus_0_3.tar.bz2 anklicken.

Und hier noch ein Paar Screenshots:



screenshot 01
screenshot 02
screenshot 03
screenshot 04
screenshot 05

Qt 4: Teil 4 - Nachtrag: Hintergrundbild setzen

, ,

Vor einiger Zeit habe ich mal beschrieben wie ein Hintergrundbild eines Widgets zu setzen ist. Für die jenigen, die es noch nicht mitgekriegt haben; Qt 4 unterstützt CSS. Also hier nochmal das Gleiche nur diesmal verwende ich Stylesheets.

Seit ihr bereit? Hier kommt es ...

myWidget->setStyleSheet( "background: url(':/graphics/images/splash.png')" );


jepp, das ist alles :smile:

Qt: Mein Dateiexplorer 0.2

, , ,

Hier kommt die Weiterentwicklung des Dateibrowsers ( v0.2 ) download

Einiges wurde verbessert:

- Drag&Drop implementiert
- multiple Reiter im Lister jetzt möglich
- Spitznamen für Verzeichnisse ( verwaltbar über die GUI )
die Eingabe des Spitznamens wird ausgelöst durch ":"
- i18n umgesetzt. zu den unterstützten sprachen gehören deutsch, englisch und russisch
- Löschen von Einträgen
- Kopieren und Löschen von Einträgen in eigene Threads ausgelagert um die GUI nicht einzufrieren.
- Programmweites Benachrichtigungssystem implementiert
- Vorschau für Textbasierte Dateien implementiert
- Vorschau wird über externe Plugins realisiert
- Bugfix


bild

Qt 4.3 ist unterwegs

, , , ...

Qt 4.3 ist unterwegs und bringt wieder neue und leckere Sachen mit. Intro

ich bin echt gespannt ob Opera auf Qt 4 umsteigt. Einige Sachen in Qt 4 sind doch ziemlich verlockend.

Vorausgesetzt natürlich Opera verwendet Qt nicht nur für kleine Dialoge. Ich denke Opera verwendet Qt für die Darstellung der gesamten UI, jedoch sind die Widgets soweit an ihre Anforderungen angepasst worden, daß der Umstieg nicht einfach so möglich wäre.

Naja, nur mal so ...
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31