Giter Club home page Giter Club logo

fluid's Introduction

Fluid

License GitHub release GitHub issues CI

Fluid is a collection of cross-platform QtQuick components for building fluid and dynamic applications, using the Material Design guidelines.

Online documentation is available at docs.liri.io.

We develop using the git flow method this means that the develop branch contains code that is being developed and might break from time to time. If you want to check out a stable version just install one of the releases or clone the master branch that has the latest released version.

Desktop

Dependencies

Qt >= 6.6.0 with at least the following modules is required:

On Linux you also need:

The following modules and their dependencies are required:

Build

You can perform a standalone build opening CMakeLists.txt with QtCreator, but make sure cmake is set up correctly.

You can also build from command line:

git submodule update --init
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/prefix ..
make
make install # use sudo if necessary

Replace /path/to/prefix to your installation prefix. Default is /usr/local.

You can also append the following options to the cmake command:

  • -DFLUID_USE_SYSTEM_LCS:BOOL=ON: Use a system-wide copy of LiriCMakeShared.
  • -DFLUID_WITH_DOCUMENTATION:BOOL=OFF: Do not build the documentation.
  • -DFLUID_WITH_DEMO:BOOL=OFF: Do not build the demo application.
  • -DFLUID_WITH_QML_MODULES:BOOL=OFF: Do not build QML modules.
  • -DFLUID_INSTALL_ICONS:BOOL=OFF: Embed icons into resources.

If cmake-shared is not installed and -DFLUID_USE_SYSTEM_LCS:BOOL=ON is passed to cmake, the build will fail without finding LiriSetup.

The cmake arguments above can also be specified when building on QtCreator, as explained in this guide.

Documentation

The HTML documentation is built unless -DFLUID_WITH_DOCUMENTATION:BOOL=OFF is passed to cmake and it's installed into <prefix>/share/doc/fluid/html.

Open <prefix>/share/doc/fluid/html/index.html with a browser to read it.

Installation

You can either install system-wide or per-project installation which is essentially embedding Fluid in your project.

System-wide installations are usually performed by packagers who want to redistribute Fluid in their Linux distro.

Per-project installation is most useful for mobile developers that want to build Fluid alongside their project.

System-wide installation

We assume that your distro installs QtQuick modules in /usr/lib/qt/qml like Arch Linux does, please change the paths for your Linux distro.

The same goes for other operating systems.

From the root of the repository, run:

git submodule update --init --recursive
mkdir build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

Please note that a system-wide installation is discouraged in most cases because there's a risk to "pollute" your system with libraries not managed by a package manager.

Per-project installation

You can embed Fluid in your project and build it along your app.

We have the following examples: We have examples for qmake, qbs and cmake.

Licensing

Licensed under the terms of the Mozilla Public License version 2.0.

fluid's People

Contributors

aldrog avatar eraxillan avatar ibelieve avatar lukasoberhoeller avatar luntik2012 avatar mikkogy avatar okcerg avatar pasdam avatar plfiorini avatar raphaelcotty avatar redgrapetech avatar rmallah avatar sushitee avatar timsueberkrueb avatar vimpostor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fluid's Issues

Import components into Fluid.Material

TabbedPage is not a type

Hello,

i'm getting the following error running the demo:

QQmlApplicationEngine failed to load component
qrc:/main.qml:74 TabbedPage is not a type

what am i doing wrong

Make controls more generic

Some controls such as Subheader use Material design styling, make them more generic and move the Material implementation into +material

Utils.getSourceForIconName() returns invalid URL

For Fluid material icons it returns a icon:// URL but that schema doesn't exist.
This is meant for Icon which will replace that offending URL with a relative path to the icons but it doesn't work if a program uses Utils.getSourceForIconName() directly.

ListItem height is wrong

Commit 1f9744f is a regression, now height doesn't take into account leftItem and rightItem making list items in settings power module as high as the subtext even when rightItem contains a combo box that is taller than subtext.

@ibeliever I'm going to revert the commit

SmoothFadeImage error

file:///opt/qmlos/lib/qml/Fluid/Controls/SmoothFadeImage.qml:196:35: Unable to assign [undefined] to QSizeF

Icon theme image provider

Add an image provider for icons from the icon theme in order to avoid a dependency on QtQuick Controls 1.0

Fix list item height

Secondary item is a container hence we should take into account the children rect height.
Also, unit test the height.

Improve AppBar

  • Align tab text to keyline
  • Fix tab button colors according to MD
  • Support fixed and scrollable tabs
  • Support left aligned and centered tabs
  • Implement overflow menu
  • Tooltip for actions

Fluid shared library

The shared library will contain templates and allow app developers to check for Fluid at build time.

List item remain colored after dragging the list

How to reproduce:

  1. Open the demo program
  2. Drag the list down by clicking on a list item and moving the mouse pointer
  3. Release the mouse button
  4. Now the list item background is dark grey and there's no way to make it look like the others

Missing Fluid/DateUtils header

When building libqmlos:

[ 22%] Building CXX object declarative/hardware/CMakeFiles/hardwareplugin.dir/hardwareengine.cpp.o [ 23%] Building CXX object declarative/hardware/CMakeFiles/hardwareplugin.dir/battery.cpp.o /home/plfiorini/git/qmlos/libqmlos/declarative/hardware/battery.cpp:29:27: fatal error: Fluid/DateUtils: No such file or directory #include <Fluid/DateUtils> ^ compilation terminated. make[2]: *** [declarative/hardware/CMakeFiles/hardwareplugin.dir/build.make:87: declarative/hardware/CMakeFiles/hardwareplugin.dir/battery.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:516: declarative/hardware/CMakeFiles/hardwareplugin.dir/all] Error 2 make: *** [Makefile:161: all] Error 2

More list items

Add more list items like subtitle list item.
QML Material should have more.

Add ErrorView component

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.