Skip to content

Local Qt5 JSON minifier and prettifier desktop application with OS X 10.6.8 compatibility

License

GPL-3.0, LGPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
LGPL-3.0
LICENSE-LGPL3
Notifications You must be signed in to change notification settings

NucleaPeon/QJsonify

Repository files navigation


Logo

QJsonify

Prettify and Minify your JSON files locally. Don't give out your precious information to online sources.

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

QJsonify on Linux QJsonify on OS X Snow Leopard QJsonify on Windows 7

A Windows XP is planned.

QJsonify is a project that aims to help developers keep their data local. There are many great online JSON minifiers and prettifiers, but all that functionality is easily accessible within the Qt5 Framework and this avoids submitting data across the network.

It's faster and more secure, you can toggle quickly between minified and prettified forms as well as print and export said json files in a couple clicks.

Starting at v1.2.0, support for qmake is being dropped.

Oxygen Icon Licensing

This project includes Oxygen Icons https://techbase.kde.org/Projects/Oxygen/Licensing which are licensed under the LGPL v3 (see LICENSE-LGPL3 file). All files under this license are located in the icons/ directory except jsonify-* files which I created for the program logo. These also can be licensed under the LGPL v3.

The oxygen repo is old when checked out, some svg/svgz files may not be available for inclusion with the project. Latest commit is bff159d338fe08be09146a5ee17b9b6efa8a2c8d. See https://github.com/KDE/oxygen-icons for latest repo commits.

Files not included:

  • format-line-spacing-normal.svg*
  • format-line-spacing-triple.svg*

(back to top)

Built With

This project is built on a minimum Qt5 version of Qt 5.3.2. For OS X 10.6.8, you can download the Qt5 binary at my other repository.

It is also tested using Qt5.15 on Linux amd64.

(back to top)

Getting Started

Starting at version 1.2.0, we depend on qt5menugen: a library that handles dynamic .json-based menu and toolbar generation. It was partially developed in this application (and others of mine) before being split into its own library. Use version 1.1.0 if you want it all included, but there will be no support/added features going forward.

Windows users should use either the v1.1.0 release or source until I figure out how cmake building libraries on Windows works and can add instructions for that.

Prerequisites

You will need:

  • git
  • cmake (for CMake builds)
  • clang >= 3 OR g++ >= 4.2 OR msvc
  • make (OS X and Linux)
  • Qt5 >= 5.3.2 (Though 5.3.1 may also be acceptable)
  • For Windows 7:
    • Visual Studio with MSBuild.exe on your PATH (I'm using VS 2013)
    • Windows Driver Version kit (I'm using 7.1.0)
    • Git Bash is useful for cli builds
    • Ensure that Qt5_DIR environmental variable is set to something like C:\Qt\Qt5.3.1\5.3\msvc2013_opengl or C:\Qt\Qt5.3.2\5.3\msvc2013_64_opengl
    • Ensure your path to windeployqt is on PATH (C:\Qt\Qt5.3.1\5.3\msvc2013_opengl\Bin)

Installation

Clone and install the library repo:

    git clone https://github.com/NucleaPeon/qt5menugen.git
    cd qt5menugen/build
    cmake ..
    make -j2
    sudo make install

Clone and install QJsonify

    git clone https://github.com/NucleaPeon/QJsonify.git
    cd QJsonify/build

Additional Note: Windows is currently the only statically built version of this Software. For OS X and Linux, you will need Qt5 installed to run it.


  • Using cmake on Linux or Mac:

    cmake ..
    make

    Mac users should have a .app/ folder they can click on to run in the build/ directory. To install: drag to your Applications folder. Linux users can optionally run sudo make install to install it.

  • For Windows 7 on Visual Studio 2013

v1.2.0 uses a library dependency. This is only for v1.1.0.

Easiest way is to open project in Qt Creator and build, then navigate to directory, copy over .dll's or run windeployqt QJsonify.exe

For cmake use Git Bash on main project directory. Not specifying the Configuration parameter will build the Debug release by default:

cd build
cmake ..
# Define Debug or Release for build type. "//" to specify an option is required for git bash, but only "/" for cmd.exe or powershell.
MSBuild.exe QJsonify.sln //p:Configuration="Debug"
windeployqt Debug/QJsonify.exe

Compress the Release/ or Debug/ directory and distribute.

(back to top)

Usage

  • Use the Open action to load your .json file.
  • Select Minify or Prettify
  • Print or Export the output to file.

(back to top)

Roadmap

  • Remove qmake files
  • Compile for, and add Windows 7 binary
  • Compile for, and add Windows XP binary
  • Compile static releases for all supported operating systems
  • Remote file read and write
  • Add to Gentoo Guru repository
  • Implement Recent Files menu and have ability to clear it
  • Use CMake as the build system instead of qmake
  • Create a debian release package
  • Show statistics between prettified and minified file sizes
  • Have an editor button to allow system editor to edit json file

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please remember to avoid any c++11 code and any Qt 5.4.0+ introduced functions for Q_OS_MAC def blocks as this project must be compatible with Snow Leopard (OS X 10.6.8).

If you have a suggestion that would make this better, either create an issue with your idea(s) or fork the repo and create a pull request.

Don't forget to give the project a star! Thanks again!

(back to top)

License

Distributed under the GPL v3.0 License. See LICENSE for more information.

(back to top)

Contact

You can email me at [email protected].

https://github.com/NucleaPeon

Thanks to the https://github.com/othneildrew/Best-README-Template project for helping me get started on this README.md.

(back to top)

About

Local Qt5 JSON minifier and prettifier desktop application with OS X 10.6.8 compatibility

Resources

License

GPL-3.0, LGPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
LGPL-3.0
LICENSE-LGPL3

Stars

Watchers

Forks

Packages

No packages published