You can post issues or request new features at
<https://github.com/hluk/CopyQ/issues>. If you have a patch you can submit new
pull requests at <https://github.com/hluk/CopyQ>.

Translations
------------

Weblate is the preferred way to translate CopyQ. Follow instructions at
https://hosted.weblate.org/engage/copyq/.

Writing Platform-dependent Code
-------------------------------

To be able to fully use this software on different platform there need to be
support for platform-specific features as system-wide shortcuts, focusing and
pasting to other windows.

To port the code to other platforms:

    1. create new directory "src/platform/<PLATFORM_NAME>",
    2. implement interface from "src/platform/platformnativeinterface.h",
    3. modify "platform.cmake" and "platform.pri" to be able to compile
       the platform-dependent code on given platforms with "cmake" and "qmake".

System-wide shortcuts are handled using third-party library libqxt in "qxt/".

Writing Plugins
---------------

Plugins in this application are used to display different types of data (MIME
formats) as items in clipboard history and other tabs.

See existing plugins in "plugins" directory. Simply just copy one plugin
directory and start rewriting the code and modify "plugins/CMakeLists.txt" to
contain path to the new directory.

Any plugin class must implement ItemLoaderInterface from
"src/include/itemwidget.h" and must be QObject. Mainly any object of this class
should be able to instantiate ItemWidget object (using create() method) if
suitable data are available.

Running Tests
-------------

After changing code or implementing new features, it's important to check if
unit tests are not failing.

Following command will execute all tests.

    copyq tests

Or run

   copyq tests --help

to get more information about tests.

