{"id":18435300,"url":"https://github.com/jango73/qt-plus","last_synced_at":"2025-04-07T19:32:17.797Z","repository":{"id":86924016,"uuid":"80909583","full_name":"Jango73/qt-plus","owner":"Jango73","description":"Library of classes extending Qt","archived":false,"fork":false,"pushed_at":"2024-04-25T11:40:23.000Z","size":1682,"stargazers_count":14,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-23T00:06:56.441Z","etag":null,"topics":["factory","http","library","logger","mjpeg","qml","qt","server","singleton","static-analysis","xml"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jango73.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-02-04T09:37:54.000Z","updated_at":"2024-04-25T11:40:26.000Z","dependencies_parsed_at":"2023-05-29T19:45:10.609Z","dependency_job_id":null,"html_url":"https://github.com/Jango73/qt-plus","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2Fqt-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2Fqt-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2Fqt-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jango73%2Fqt-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jango73","download_url":"https://codeload.github.com/Jango73/qt-plus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247716428,"owners_count":20984238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["factory","http","library","logger","mjpeg","qml","qt","server","singleton","static-analysis","xml"],"created_at":"2024-11-06T06:07:46.070Z","updated_at":"2025-04-07T19:32:17.264Z","avatar_url":"https://github.com/Jango73.png","language":"C++","readme":"# qt-plus\nUtility classes extending Qt's functionnality.\n\n## Building\n\n* Open /qt-plus.pro in QtCreator\n* Build\n\n## How to use\n\n* As any other qt library\nor\n* Embed in app by including (in the .pro) one of:\n  * qt-plus-nolib-basic.pri (to use basic functionalities)\n  * qt-plus-nolib-web.pri (to use web classes)\n  * qt-plus-nolib-qml.pri (to use qml parsing and analyzing classes)\n\n## Classes\nThe full documentation for classes is available after project build, in the help directory.\n\nNote:\nDue to qdoc changes in Qt 5.12 (i think), the help files do not compile if using a recent Qt Creator version.\nThis issue is being fixed. Help may still be viewed in the related cpp file.\n\n### QTree\nTemplate for a tree structure. Each node has a value and 0 or more child nodes.  \nMay be used in a model where a variable can hold a scalar, a list or a tree.\n\n### CSingleton\nA template for singleton objects, based on the Singleton design pattern.\n\n### CFactory\nA template for a factory of objects, based on the Factory design pattern.\n\n### CXMLNode\nA helper class that wraps the *XML* and *JSON* facilities of Qt. Makes *DOM* style documents easier to use.\n\nAttention : This class is really slow with very large documents because a lot of nodes are created and copied around...\n\n### CLogger\nA simple yet efficient logger.\n\n### CImageUtilities\nA singleton that provides helpful image processing functions.\nCan do the following:\n* Apply a filter matrix to a *QImage*\n* Select pixels in a *QImage* by tint, resulting in a grayscale mask image\n* Modify the HSV values of a *QImage*, using a *QImage* mask for pixel selection\n* Colorize a *QImage*, using a *QImage* mask for pixel selection\n* Split RGBA channels of a *QImage*\n* Merge RGBA channels of several *QImage*s\n* Split HSVA channels of a *QImage*\n* Merge HSVA channels of several *QImage*s\n* Find the dominant hue of a *QImage*\n* Find the dominant luminance (value) of a *QImage*\n* Compute the disparity map (depth) from two *QImage*s (left and right eye)\n\n### CImageHistogram\nA class that contains the histogram of a *QImage*.\n\n### CLargeMatrix\nA class that can hold an NxN matrix. Used, among other things, for image filtering.\n\n### CTextGenerator\nA class that generates random words, sentences, paragraphs, pages using random syllables.\nTranslated to C++ from the Javascript class 'fake-words'.\nOriginal work is Copyright (c) anticoders: https://github.com/anticoders/fake-words\n\n### QMLTreeContext\nA full *QML* parser. \u003cbr\u003e\nHolds the contents of a *QML* file in the form of a tree, made of specialized classes for each kind of *QML* and JS declarations. \u003cbr\u003e\n* Can recreate the original *QML* file from the statement tree.\n* Can convert the statement tree to *XML*.\n* Has a known parsing problem : when using a prefix operator (like ++a)\n\n### QMLAnalyzer\nA class that allows static analysis of a *QML* statement tree (parsed using *QMLTreeContext*).  \nUses a grammar file in *XML* format that declares what to check and eventually reject.\n\n### CSecureContext\nA class that allows easy secure data exchange between servers and client of any kind. Based on *RSA* (copyright Nedim Srndic) and *ROKE*, a home made symetric encryption algorithm.\n\n### CHTTPServer\nImplements the base functionalities (GET and POST) of an *HTTP* server (see RFC 7230).  \nCan do the following:\n* Handles *GET* and *POST* requests (maybe more in the future)\n* Serve local file ressources\n* Define the accessible folders for ressources\n* Generate dynamic *HTML* content via overridden methods.\n* More or less efficient flood protection (has not been tested on large scale)\n* No *https* for now\n\n### CDynamicHTTPServer\nImplements the base functionalities of a web server that generates dynamic HTML content.\nA subclass of *CDynamicHTTPServer* may generate content in two ways:\n* Using a *CWebComposer* to generate *HTML* tags in a string\n* Using a *CWebFactory* to generate a *CWebPage*, which is a container of *CWebControls*\n\nThe second method works like *ASP*, with a view state that enables to transfer a serialized, compressed and eventually crypted (when someone wants to code it) version of the *CWebPage* between server and client.\nThis method enables \nSee the documentation of *CWebPage* for more information.\n\n### CRemoteControl\nA server/client that acts somewhat like SSH on Linux. Enables remote file transfers and remote shell.\n\n### CMJPEGClient\nA client for *MJPEG* streams. Notifies via signal whenever a new image arrives.\n\n### CMJPEGServer\nA server that creates an *MJPEG* stream for clients, based on *CHTTPServer*.\n\n### CTDMADevice\nA class that mimics the *TDMA* concept. But instead of devices auto-synchronizing themselves, a master device does it.  \nCan be used to transfer data from master \u003c-\u003e slave on a network with a single data channel.  \nInherits *QIODevice* and uses a *QIODevice* instance for input and output.\n\n### CPIDController\nA *PID* (Proportional Integral Derivative) controller for autopilots or mechanical controls.\n\n### CAverager\nA template used to average values.\n\n### CGeoUtilities\nContains methods to convert from geo coordinates (latitude, longitude, altitude) to cartesian coordinates (x, y, z) and back.\n\n## QML files\n\n### ScatteredItemView.qml\nThis view shows a wireframe of a QML scene. It can be rotated and zoomed. Elements can be isolated.\n\n# Third party files\n\n## beautify.js\nCopyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors\n\n## Content of source/cpp/rsa\nCopyright (c) 2008 Nedim Srndic. Originally hosted on http://code.google.com/p/rsa\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjango73%2Fqt-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjango73%2Fqt-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjango73%2Fqt-plus/lists"}