QupZilla rejoint KDE et devient Falkon

QupZilla est un navigateur Web entièrement libre et basé sur Qt WebEngine. En développement depuis 2010, il se targue de consommer moins de ressources que ses principaux concurrents, à savoir Firefox et Chrome, en plus d’être livré avec AdBlock. L’un de ses éléments distinctifs est qu’il est prévu pour s’intégrer de manière native à tous les environnements de bureau, à l’aide notamment de jeux d’icônes variés. Il fusionne également l’historique et les signets en un même endroit.

Ses débuts étaient assez modestes, le navigateur n’était prévu que comme manière d’apprendre à se servir de PyQt ; avec le temps et les réécritures (d’abord en C++ au lieu de Python pour la version 1.0, en 2011, puis avec Qt WebEngine pour remplacer Qt WebKit lors de la 2.0, en 2016), cependant, il a fini par devenir un navigateur complet. Récemment, le projet a décidé de quitter son statut de projet indépendant et de rejoindre le projet KDE. Il en profite pour changer de nom et devenir Falkon (le K rappelant KDE).

Pour KDE, l’intérêt est relativement clair. Le projet a déjà deux navigateurs, Konqueror et Rekonq, mais aucun des deux n’est réellement au goût du jour : ils sont restés à Qt WebKit (ce dernier ne revivant que depuis peu, mais sans support officiel), Rekonq n’étant toujours pas porté vers les KDE Frameworks 5. De son côté, Falkon s’intègre dans une communauté bien plus vaste et sera probablement installé par défaut sur tous les ordinateurs utilisant KDE.

Voir aussi : le dépôt Git, la page du projet.

Source : QupZilla is moving under KDE and looking for new name.

Advertisements

Sortie de Qbs 1.9

Qbs (prononcez “cubes” avec votre plus bel accent anglais) est annoncé comme le prochain outil de compilation par défaut avec Qt, il devrait remplacer QMake à l’horizon de Qt 6. La différence majeure par rapport à QMake est la manière de décrire le projet : Qbs utilise QML, le même langage que Qt Quick. La version 1.9 vient de sortir et, selon ses développeurs, elle pose les bases nécessaires à une utilisation à plus grande échelle.

Une énorme amélioration apportée est la paramétrisation des dépendances, à l’aide des composants Depends et Parameter(s). Depends sert à indiquer les dépendances entre deux produits de compilation : l’un doit être compilé avant l’autre, puisqu’il sert lors de sa compilation. Principalement, un exécutable principal dépend d’une ou plusieurs bibliothèques. Cependant, les dépendances peuvent être nettement plus générales : il faut donc un moyen de les contrôler, mais pas uniquement du côté de la dépendance. Les paramètres servent justement à cela : contrôler la compilation d’un produit depuis le produit qui en a besoin. Par exemple, sous macOS, si le produit A dépend de la bibliothèque partagée C sous la forme d’un paquet (A n’utilise pas directement C) et le produit B dépend également de C, mais en tant que liaison dynamique, A et B doivent pouvoir exprimer leurs besoins différents.

Parmi les grandes nouveautés, le multiplexage des produits est largement généralisé par rapport à l’implémentation précédente. Il était déjà utilisé pour créer des paquets Android pour plusieurs architectures. Cependant, il fallait suivre une architecture du projet assez rigide, ce qui posait notamment problème à Qt Creator. La nouvelle version effectue le multiplexage non sur des profils de compilation, mais bien des propriétés quelconques.

Qbs 1.9 simplifie également le déploiement d’applications pour macOS, avec la possibilité de créer des images disques (fichiers DMG) avec une apparence personnalisée. Les difficultés étaient nombreuses, étant donné que le format DMG n’est que partiellement documenté ; certaines parties datent de Mac OS Classic.

Télécharger Qbs 1.9. Qbs 1.9 est intégré à Qt Creator 4.4.

Plus de détails : Qbs 1.9 released.

QCustomPlot 2 est de sortie

Qt recense bon nombre d’options pour réaliser des graphiques. Certaines étant maintenant livrées avec Qt (comme Qt Charts), l’intérêt pour des bibliothèques externes s’amoindrit. Ce n’est pas pour autant que ces projets sont morts : un an après la préversion Beta, voici venu QCustomPlot 2.0.

Globalement, l’interface de programmation ne change pas beaucoup, si ce n’est pour les nouvelles fonctionnalités (d’ailleurs, certaines fonctionnalités seront disponibles dans une version 1.4 à venir, avec une garantie de rétrocompatibilité).

Une grande nouveauté est que QCustomPlot peut maintenant gérer des graphiques où certaines données manquent : le rendu n’interpolera pas les données absentes, les points correspondants ne seront juste pas dessinés.

Le mécanisme de sélection a aussi été largement retravaillé, permettant d’opérer à l’échelle du point, mais aussi de plages de points, dans toutes les dimensions (en rectangle, par exemple).

La gestion des marques sur les axes a été complètement repensée, avec la classe QCPAxisTicker : elle gère tout l’affichage de ces marques (les coordonnées et les étiquettes associées). Auparavant, QCustomPlot laissait très peu de choix : soit les étiquettes étaient numériques (ou des dates, mais avec de nombreuses limitations), soit elles étaient entièrement spécifiées par l’utilisateur. Maintenant, l’API propose une grande flexibilité à ce niveau.

Un système de stockage de données unifié a vu le jour pour les graphiques à une dimension (comme QCPGraph ou QCPBars), avec à la clé une performance largement améliorée (en lecture comme en écriture) et une consommation de mémoire moindre par rapport à l’implémentation précédente (à base d’arbres rouge-noir). Il est accompagné d’une interface commune pour tous ces types de graphiques, QCPPlottableInterface1D.

Source et images : QCustomPlot 2.0.0 released!.

Voir aussi : tous les changements depuis la version 1.3.2.

Sortie de Qt Creator 4.4

La version finale de Qt Creator 4.4 est maintenant sortie, un bon mois après la Beta et deux semaines après la RC. Par rapport à la version 4.3, on compte quelques améliorations dans l’interface, le modèle de code Clang et l’intégration avec CMake.

Le modèle de code Clang offre maintenant des annotations au niveau du code : des erreurs, des avertissements, ainsi que tout signet que vous avez inséré dans le code. Il est ainsi nettement plus facile de voir les problèmes en écrivant du code, sans devoir déplacer la souris pour voir le détail de chaque message. La position des annotations est évidemment configurable.

Lors du saut vers un autre endroit d’un fichier, il est aussi possible d’activer un défilement animé et adouci. Certaines fonctionnalités de la coloration syntaxique C++ ont maintenant une couleur spécifique : les variables locales, globales et membres, les fonctions, les déclarations et les arguments de sortie (l’ancien jeu de couleurs est toujours disponible). En tentant de renommer une classe, Qt Creator proposera de renommer les fichiers correspondants en même temps.

Côté CMake, en utilisant le mode serveur (disponible uniquement depuis CMake 3.7), Qt Creator n’affiche plus les répertoires vides par défaut ; les fichiers source sont remontés dans l’arborescence, ce qui élimine un nœud dans l’arbre.

Voir aussi : tous les changements apportés par Qt Creator 4.4.

Télécharger Qt Creator 4.4.

Source : Qt Creator 4.4.0 released.

Qt Creator 4.4 Beta

La nouvelle mouture de Qt Creator, numérotée 4.4, s’approche : la préversion Beta est maintenant sortie. Au niveau de l’éditeur textuel, elle fournit maintenant des annotations à même le code : des avertissements et des erreurs en provenance du modèle de code Clang, des marque-pages. Ainsi, toutes ces informations sont disponibles sans devoir déplacer la souris sur une ligne mise en évidence ou sur le marqueur du côté gauche.

Au niveau de la refactorisation du code C++, le renommage d’un symbole propose automatiquement de renommer le fichier (s’il porte le même nom), ainsi que les fichiers liés. Le modèle de code Clang (s’il est activé) est maintenant aussi utilisé pour mettre en surbrillance l’identifiant sous le curseur (avant, le modèle de Qt Creator s’en chargeait à tous les coups).

Côté CMake, il devient possible de filtrer les variables lors de la configuration de la compilation. En mode serveur, les fichiers d’en-tête du répertoire racine sont aussi affichés.

Windows CE n’est plus géré par Qt Creator, n’étant plus maintenu depuis belle lurette. L’intégration avec ClearCase est désactivée par défaut.

Voir la liste complète des changements.

Télécharger Qt Creator 4.4 Beta 1.

Le module QtQuick.Shapes fait son apparition avec Qt 5.10

Dessiner des formes arbitraires n’a jamais été chose aisée avec Qt Quick. De base, on ne peut dessiner que des rectangles (avec des bords carrés ou arrondis, au choix). Impossible de dessiner une autre forme, à moins de faire appel à du code JavaScript et l’API Canvas ou de coder soi-même la forme en C++. C’est d’ailleurs l’une des limitations historiques de Qt Quick par rapport à la vue graphique. Avec Qt 5.10, la situation évolue : le module QtQuick.Shapes apporte justement ces éléments manquants… avec une performance inégalée (sauf pour des formes codées en C++).

L’implémentation de ce module a été délicatement pensée. Ainsi, il n’y a aucune pixélisation du rendu : les formes dessinées le sont de manière vectorielles (sans passer par QImage ou un tampon OpenGL), ce qui laisse la possibilité de les afficher avec n’importe quelle résolution, voire de les animer. En effet, l’API est entièrement déclarative et tous les attributs des formes peuvent être animés avec les mécanismes habituels de Qt Quick — sans relancer des calculs inutiles.

Le rendu est implémenté de différentes manières, avec cependant la même API. L’implémentation de base réutilise le moteur de triangulation de QPainter en OpenGL, mais, sur les GPU NVIDIA, il est possible d’utiliser l’extension GL_NV_path_rendering pour accélérer le rendu. Pour le moteur de rendu logiciel de Qt Quick, tout se passe avec QPainter. Dans le futur, il sera ainsi possible d’ajouter un rendu par OpenVG ou Direct3D 12.

Ces formes sont dessinées par un composant Shape, mais la description est effectuée par un ou plusieurs ShapePath. Par exemple, pour dessiner un triangle avec une animation sur la largeur du trait et la couleur de remplissage :

Shape {
    id: tri
    anchors.fill: parent
 
    ShapePath {
        id: tri_sp
        strokeColor: "red"
        strokeWidth: 4
        SequentialAnimation on strokeWidth {
            running: tri.visible
            NumberAnimation { from: 1; to: 20; duration: 2000 }
            NumberAnimation { from: 20; to: 1; duration: 2000 }
        }
        ColorAnimation on fillColor {
            from: "blue"; to: "cyan"; duration: 2000; running: tri.visible
        }
 
        startX: 10; startY: 10
        PathLine { x: tri.width - 10; y: tri.height - 10 }
        PathLine { x: 10; y: tri.height - 10 }
        PathLine { x: 10; y: 10 }
    }
}

Cependant, le module en l’état n’est pas forcément à même de battre la vue graphique en termes de composants à afficher, chaque forme ayant un surcoût en performance à l’affichage — surtout sans accélération graphique, où un trop grand nombre de formes ou d’animations posera rapidement problème. Il est déjà possible de demander le calcul asynchrone de la géométrie, ce qui permet d’afficher rapidement l’interface, les formes Shape venant plus tard, sans retarder le reste de l’interface.

Source : Let There Be Shapes!.

Sortie de Qt Creator 4.3.1

En même temps que Qt 5.9.1 sort Qt Creator 4.3.1, qui corrige également un bon nombre de défauts. Le principal est une fuite de mémoire dans l’autocomplétion du code, qui pouvait vite dégénérer en plantage de l’application (surtout en 32 bits). Cette version apporte également bon nombre d’améliorations en ce qui concerne l’intégration avec CMake, corrige un défaut empêchant de lancer des applications sur des périphériques iOS 10.3. La liste complète des modifications est disponible sur le site officiel du projet.