Showing preview only (9,545K chars total). Download the full file or copy to clipboard to get everything.
Repository: hluk/CopyQ
Branch: master
Commit: a16201edf3e2
Files: 594
Total size: 9.0 MB
Directory structure:
gitextract_5_z0o7o6/
├── .claude/
│ └── settings.json
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── actions/
│ │ └── download-miniaudio/
│ │ └── action.yml
│ ├── dependabot.yml
│ └── workflows/
│ ├── build-linux.yml
│ ├── build-macos.yml
│ ├── build-windows.yml
│ └── codespell.yml
├── .gitignore
├── .gitlab-ci.yml
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .weblate
├── AGENTS.md
├── AUTHORS
├── CHANGES.md
├── CMakeLists.txt
├── CMakePresets.json
├── Doxyfile
├── HACKING
├── INSTALL
├── LICENSE
├── README.md
├── RELEASE.md
├── docs/
│ ├── Makefile
│ ├── autobuild.sh
│ ├── backup.rst
│ ├── basic-usage.rst
│ ├── build-source-code.rst
│ ├── command-examples.rst
│ ├── command-line.rst
│ ├── commands-display.rst
│ ├── commands-script.rst
│ ├── conf.py
│ ├── customize-and-build-the-windows-installer.rst
│ ├── faq.rst
│ ├── fixing-bugs.rst
│ ├── glossary.rst
│ ├── images.rst
│ ├── index.rst
│ ├── installation.rst
│ ├── keyboard.rst
│ ├── known-issues.rst
│ ├── make.bat
│ ├── password-protection.rst
│ ├── pin-items.rst
│ ├── requirements.txt
│ ├── scripting-api.rst
│ ├── scripting.rst
│ ├── security.rst
│ ├── sessions.rst
│ ├── source-code-overview.rst
│ ├── synchronize.rst
│ ├── tabs-and-items.rst
│ ├── tags.rst
│ ├── text-encoding.rst
│ ├── theme.rst
│ ├── translations.rst
│ ├── writing-commands-and-adding-functionality.rst
│ └── writing-raw-data.rst
├── gpl.txt
├── plugins/
│ ├── CMakeLists.txt
│ ├── itemencrypted/
│ │ ├── CMakeLists.txt
│ │ ├── itemencrypted.cpp
│ │ ├── itemencrypted.h
│ │ └── itemencryptedsettings.ui
│ ├── itemfakevim/
│ │ ├── CMakeLists.txt
│ │ ├── fakevim/
│ │ │ ├── LGPL_EXCEPTION.TXT
│ │ │ ├── LICENSE.LGPL
│ │ │ ├── fakevimactions.cpp
│ │ │ ├── fakevimactions.h
│ │ │ ├── fakevimhandler.cpp
│ │ │ ├── fakevimhandler.h
│ │ │ ├── fakevimtr.h
│ │ │ └── private/
│ │ │ └── fakevim_export.h
│ │ ├── itemfakevim.cpp
│ │ ├── itemfakevim.h
│ │ ├── itemfakevim.qrc
│ │ └── itemfakevimsettings.ui
│ ├── itemimage/
│ │ ├── CMakeLists.txt
│ │ ├── itemimage.cpp
│ │ ├── itemimage.h
│ │ └── itemimagesettings.ui
│ ├── itemnotes/
│ │ ├── CMakeLists.txt
│ │ ├── itemnotes.cpp
│ │ ├── itemnotes.h
│ │ └── itemnotessettings.ui
│ ├── itempinned/
│ │ ├── CMakeLists.txt
│ │ ├── itempinned.cpp
│ │ └── itempinned.h
│ ├── itemsync/
│ │ ├── CMakeLists.txt
│ │ ├── filewatcher.cpp
│ │ ├── filewatcher.h
│ │ ├── itemsync.cpp
│ │ ├── itemsync.h
│ │ └── itemsyncsettings.ui
│ ├── itemtags/
│ │ ├── CMakeLists.txt
│ │ ├── itemtags.cpp
│ │ ├── itemtags.h
│ │ └── itemtagssettings.ui
│ └── itemtext/
│ ├── CMakeLists.txt
│ ├── itemtext.cpp
│ ├── itemtext.h
│ └── itemtextsettings.ui
├── pyproject.toml
├── qxt/
│ ├── AUTHORS
│ ├── COPYING
│ ├── qxtglobalshortcut.cpp
│ ├── qxtglobalshortcut.h
│ ├── qxtglobalshortcut_mac.cpp
│ ├── qxtglobalshortcut_p.h
│ ├── qxtglobalshortcut_win.cpp
│ ├── qxtglobalshortcut_x11.cpp
│ └── xcbkeyboard.h
├── shared/
│ ├── Info.plist
│ ├── com.github.hluk.copyq.desktop.in
│ ├── com.github.hluk.copyq.metainfo.xml
│ ├── copyq-completion
│ ├── copyq.1
│ ├── copyq.iss
│ ├── flatpak/
│ │ ├── README.md
│ │ └── com.github.hluk.copyq.json
│ ├── gnome-extension/
│ │ ├── extension.js
│ │ └── metadata.json
│ ├── gpl-3.0.rtf
│ ├── plugins/
│ │ └── example.js
│ └── themes/
│ ├── black.ini
│ ├── dark.ini
│ ├── forest.ini
│ ├── items.css
│ ├── light.ini
│ ├── main_window.css
│ ├── main_window_simple.css
│ ├── menu.css
│ ├── nord.ini
│ ├── nord_light.ini
│ ├── notification.css
│ ├── paper.ini
│ ├── simple.ini
│ ├── solarized-dark.ini
│ ├── solarized-light.ini
│ ├── tooltip.css
│ └── wine.ini
├── src/
│ ├── CMakeLists.txt
│ ├── app/
│ │ ├── app.cpp
│ │ ├── app.h
│ │ ├── applicationexceptionhandler.cpp
│ │ ├── applicationexceptionhandler.h
│ │ ├── clipboardclient.cpp
│ │ ├── clipboardclient.h
│ │ ├── clipboardmonitor.cpp
│ │ ├── clipboardmonitor.h
│ │ ├── clipboardownermonitor.cpp
│ │ ├── clipboardownermonitor.h
│ │ ├── clipboardserver.cpp
│ │ └── clipboardserver.h
│ ├── audio.cmake
│ ├── common/
│ │ ├── action.cpp
│ │ ├── action.h
│ │ ├── actionhandlerenums.h
│ │ ├── actionoutput.cpp
│ │ ├── actionoutput.h
│ │ ├── actiontablemodel.cpp
│ │ ├── actiontablemodel.h
│ │ ├── appconfig.cpp
│ │ ├── appconfig.h
│ │ ├── audioplayer.cpp
│ │ ├── audioplayer.h
│ │ ├── client_server.cpp
│ │ ├── client_server.h
│ │ ├── clientsocket.cpp
│ │ ├── clientsocket.h
│ │ ├── clipboarddataguard.cpp
│ │ ├── clipboarddataguard.h
│ │ ├── clipboardmode.h
│ │ ├── command.cpp
│ │ ├── command.h
│ │ ├── commandstatus.h
│ │ ├── commandstore.cpp
│ │ ├── commandstore.h
│ │ ├── common.cpp
│ │ ├── common.h
│ │ ├── config.cpp
│ │ ├── config.h
│ │ ├── contenttype.h
│ │ ├── display.cpp
│ │ ├── display.h
│ │ ├── encryption.cpp
│ │ ├── encryption.h
│ │ ├── globalshortcutcommands.cpp
│ │ ├── globalshortcutcommands.h
│ │ ├── keychainaccess.cpp
│ │ ├── keychainaccess.h
│ │ ├── log.cpp
│ │ ├── log.h
│ │ ├── messagehandlerforqt.cpp
│ │ ├── messagehandlerforqt.h
│ │ ├── mimetypes.cpp
│ │ ├── mimetypes.h
│ │ ├── navigationstyle.h
│ │ ├── option.cpp
│ │ ├── option.h
│ │ ├── predefinedcommands.cpp
│ │ ├── predefinedcommands.h
│ │ ├── process.cpp
│ │ ├── process.h
│ │ ├── processsignals.h
│ │ ├── regexp.h
│ │ ├── server.cpp
│ │ ├── server.h
│ │ ├── settings.cpp
│ │ ├── settings.h
│ │ ├── shortcuts.cpp
│ │ ├── shortcuts.h
│ │ ├── sleeptimer.h
│ │ ├── tabs.cpp
│ │ ├── tabs.h
│ │ ├── temporaryfile.cpp
│ │ ├── temporaryfile.h
│ │ ├── temporarysettings.cpp
│ │ ├── temporarysettings.h
│ │ ├── textdata.cpp
│ │ ├── textdata.h
│ │ ├── timer.h
│ │ ├── version.cpp.in
│ │ └── version.h
│ ├── copyq.qrc
│ ├── copyq.rc
│ ├── gui/
│ │ ├── aboutdialog.cpp
│ │ ├── aboutdialog.h
│ │ ├── actiondialog.cpp
│ │ ├── actiondialog.h
│ │ ├── actionhandler.cpp
│ │ ├── actionhandler.h
│ │ ├── actionhandlerdialog.cpp
│ │ ├── actionhandlerdialog.h
│ │ ├── addcommanddialog.cpp
│ │ ├── addcommanddialog.h
│ │ ├── clipboardbrowser.cpp
│ │ ├── clipboardbrowser.h
│ │ ├── clipboardbrowserplaceholder.cpp
│ │ ├── clipboardbrowserplaceholder.h
│ │ ├── clipboardbrowsershared.h
│ │ ├── clipboarddialog.cpp
│ │ ├── clipboarddialog.h
│ │ ├── clipboardspy.cpp
│ │ ├── clipboardspy.h
│ │ ├── commandaction.cpp
│ │ ├── commandaction.h
│ │ ├── commandcompleter.cpp
│ │ ├── commandcompleter.h
│ │ ├── commandcompleterdocumentation.h
│ │ ├── commanddialog.cpp
│ │ ├── commanddialog.h
│ │ ├── commandedit.cpp
│ │ ├── commandedit.h
│ │ ├── commandhelpbutton.cpp
│ │ ├── commandhelpbutton.h
│ │ ├── commandsyntaxhighlighter.cpp
│ │ ├── commandsyntaxhighlighter.h
│ │ ├── commandwidget.cpp
│ │ ├── commandwidget.h
│ │ ├── configtabappearance.cpp
│ │ ├── configtabappearance.h
│ │ ├── configtabtabs.cpp
│ │ ├── configtabtabs.h
│ │ ├── configurationmanager.cpp
│ │ ├── configurationmanager.h
│ │ ├── encryptionpassword.cpp
│ │ ├── encryptionpassword.h
│ │ ├── execmenu.cpp
│ │ ├── execmenu.h
│ │ ├── fancylineedit.cpp
│ │ ├── fancylineedit.h
│ │ ├── filedialog.cpp
│ │ ├── filedialog.h
│ │ ├── filtercompleter.cpp
│ │ ├── filtercompleter.h
│ │ ├── filterlineedit.cpp
│ │ ├── filterlineedit.h
│ │ ├── fix_icon_id.h
│ │ ├── fromiconid.h
│ │ ├── geometry.cpp
│ │ ├── geometry.h
│ │ ├── icon_list.h
│ │ ├── iconfactory.cpp
│ │ ├── iconfactory.h
│ │ ├── iconfont.cpp
│ │ ├── iconfont.h
│ │ ├── icons.h
│ │ ├── iconselectbutton.cpp
│ │ ├── iconselectbutton.h
│ │ ├── iconselectdialog.cpp
│ │ ├── iconselectdialog.h
│ │ ├── iconwidget.cpp
│ │ ├── iconwidget.h
│ │ ├── importexportdialog.cpp
│ │ ├── importexportdialog.h
│ │ ├── itemorderlist.cpp
│ │ ├── itemorderlist.h
│ │ ├── logdialog.cpp
│ │ ├── logdialog.h
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── menuitems.cpp
│ │ ├── menuitems.h
│ │ ├── navigation.cpp
│ │ ├── navigation.h
│ │ ├── notification.h
│ │ ├── notificationbasic.cpp
│ │ ├── notificationbasic.h
│ │ ├── notificationbutton.h
│ │ ├── notificationdaemon.cpp
│ │ ├── notificationdaemon.h
│ │ ├── notificationnative/
│ │ │ ├── notificationnative.cpp
│ │ │ └── notificationnative.h
│ │ ├── passwordprompt.cpp
│ │ ├── passwordprompt.h
│ │ ├── pixelratio.h
│ │ ├── pluginwidget.cpp
│ │ ├── pluginwidget.h
│ │ ├── screen.cpp
│ │ ├── screen.h
│ │ ├── selectiondata.cpp
│ │ ├── selectiondata.h
│ │ ├── shortcutbutton.cpp
│ │ ├── shortcutbutton.h
│ │ ├── shortcutdialog.cpp
│ │ ├── shortcutdialog.h
│ │ ├── shortcutswidget.cpp
│ │ ├── shortcutswidget.h
│ │ ├── tabbar.cpp
│ │ ├── tabbar.h
│ │ ├── tabdialog.cpp
│ │ ├── tabdialog.h
│ │ ├── tabicons.cpp
│ │ ├── tabicons.h
│ │ ├── tabpropertieswidget.cpp
│ │ ├── tabpropertieswidget.h
│ │ ├── tabswidgetinterface.h
│ │ ├── tabtree.cpp
│ │ ├── tabtree.h
│ │ ├── tabwidget.cpp
│ │ ├── tabwidget.h
│ │ ├── theme.cpp
│ │ ├── theme.h
│ │ ├── traymenu.cpp
│ │ ├── traymenu.h
│ │ ├── windowgeometryguard.cpp
│ │ └── windowgeometryguard.h
│ ├── images/
│ │ └── icon.icns
│ ├── item/
│ │ ├── clipboarditem.cpp
│ │ ├── clipboarditem.h
│ │ ├── clipboardmodel.cpp
│ │ ├── clipboardmodel.h
│ │ ├── indexes.cpp
│ │ ├── indexes.h
│ │ ├── itemdelegate.cpp
│ │ ├── itemdelegate.h
│ │ ├── itemeditor.cpp
│ │ ├── itemeditor.h
│ │ ├── itemeditorwidget.cpp
│ │ ├── itemeditorwidget.h
│ │ ├── itemfactory.cpp
│ │ ├── itemfactory.h
│ │ ├── itemfilter.h
│ │ ├── itemsaverwrapper.cpp
│ │ ├── itemsaverwrapper.h
│ │ ├── itemstore.cpp
│ │ ├── itemstore.h
│ │ ├── itemwidget.cpp
│ │ ├── itemwidget.h
│ │ ├── itemwidgetwrapper.cpp
│ │ ├── itemwidgetwrapper.h
│ │ ├── persistentdisplayitem.cpp
│ │ ├── persistentdisplayitem.h
│ │ ├── serialize.cpp
│ │ └── serialize.h
│ ├── knotifications5/
│ │ └── copyq.notifyrc
│ ├── main.cpp
│ ├── miniaudio/
│ │ ├── CMakeLists.txt
│ │ └── miniaudio_impl.cpp
│ ├── notifications.cmake
│ ├── platform/
│ │ ├── dummy/
│ │ │ ├── dummyclipboard.cpp
│ │ │ ├── dummyclipboard.h
│ │ │ ├── dummyplatform.cpp
│ │ │ └── dummyplatform.h
│ │ ├── mac/
│ │ │ ├── cfref.h
│ │ │ ├── copyqpasteboardmime.h
│ │ │ ├── copyqpasteboardmime.mm
│ │ │ ├── deploy.cmake.in
│ │ │ ├── fixup_bundle.cmake.in
│ │ │ ├── foregroundbackgroundfilter.h
│ │ │ ├── foregroundbackgroundfilter.mm
│ │ │ ├── macactivity.h
│ │ │ ├── macactivity.mm
│ │ │ ├── macclipboard.h
│ │ │ ├── macclipboard.mm
│ │ │ ├── macplatform.cmake
│ │ │ ├── macplatform.h
│ │ │ ├── macplatform.mm
│ │ │ ├── macplatformwindow.h
│ │ │ ├── macplatformwindow.mm
│ │ │ ├── mactimer.h
│ │ │ ├── mactimer.mm
│ │ │ ├── objcstrong.h
│ │ │ ├── urlpasteboardmime.h
│ │ │ └── urlpasteboardmime.mm
│ │ ├── platform.cmake
│ │ ├── platformclipboard.cpp
│ │ ├── platformclipboard.h
│ │ ├── platformcommon.cpp
│ │ ├── platformcommon.h
│ │ ├── platformnativeinterface.h
│ │ ├── platformwindow.h
│ │ ├── unix/
│ │ │ ├── unixsignalhandler.cpp
│ │ │ └── unixsignalhandler.h
│ │ ├── win/
│ │ │ ├── winplatform.cmake
│ │ │ ├── winplatform.cpp
│ │ │ ├── winplatform.h
│ │ │ ├── winplatformclipboard.cpp
│ │ │ ├── winplatformclipboard.h
│ │ │ ├── winplatformwindow.cpp
│ │ │ └── winplatformwindow.h
│ │ └── x11/
│ │ ├── systemclipboard/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── keyboard-shortcuts-inhibit-unstable-v1.xml
│ │ │ ├── waylandclipboard.cpp
│ │ │ ├── waylandclipboard.h
│ │ │ └── wlr-data-control-unstable-v1.xml
│ │ ├── x11info.cpp
│ │ ├── x11info.h
│ │ ├── x11platform.cmake
│ │ ├── x11platform.cpp
│ │ ├── x11platform.h
│ │ ├── x11platformclipboard.cpp
│ │ ├── x11platformclipboard.h
│ │ ├── x11platformwindow.cpp
│ │ └── x11platformwindow.h
│ ├── scriptable/
│ │ ├── commandhelp.cpp
│ │ ├── commandhelp.h
│ │ ├── scriptable.cpp
│ │ ├── scriptable.h
│ │ ├── scriptablebytearray.cpp
│ │ ├── scriptablebytearray.h
│ │ ├── scriptabledir.cpp
│ │ ├── scriptabledir.h
│ │ ├── scriptablefile.cpp
│ │ ├── scriptablefile.h
│ │ ├── scriptableitemselection.cpp
│ │ ├── scriptableitemselection.h
│ │ ├── scriptablenetworkreply.cpp
│ │ ├── scriptablenetworkreply.h
│ │ ├── scriptablenetworkrequest.cpp
│ │ ├── scriptablenetworkrequest.h
│ │ ├── scriptableproxy.cpp
│ │ ├── scriptableproxy.h
│ │ ├── scriptablesettings.cpp
│ │ ├── scriptablesettings.h
│ │ ├── scriptabletemporaryfile.cpp
│ │ ├── scriptabletemporaryfile.h
│ │ ├── scriptoverrides.h
│ │ └── scriptvaluefactory.h
│ ├── tests/
│ │ ├── itemencryptedtests.cpp
│ │ ├── itemencryptedtests.h
│ │ ├── itemfakevimtests.cpp
│ │ ├── itemfakevimtests.h
│ │ ├── itemimagetests.cpp
│ │ ├── itemimagetests.h
│ │ ├── itempinnedtests.cpp
│ │ ├── itempinnedtests.h
│ │ ├── itemsynctests.cpp
│ │ ├── itemsynctests.h
│ │ ├── itemtagstests.cpp
│ │ ├── itemtagstests.h
│ │ ├── itemtests/
│ │ │ ├── itemtests.cpp
│ │ │ └── itemtests.h
│ │ ├── test_utils.h
│ │ ├── testinterface.h
│ │ ├── tests.cmake
│ │ ├── tests.cpp
│ │ ├── tests.h
│ │ ├── tests_classes.cpp
│ │ ├── tests_cli.cpp
│ │ ├── tests_commands.cpp
│ │ ├── tests_common.cpp
│ │ ├── tests_common.h
│ │ ├── tests_dialogs.cpp
│ │ ├── tests_drag_n_drop.cpp
│ │ ├── tests_encryption.cpp
│ │ ├── tests_encryption_expire.cpp
│ │ ├── tests_expire.cpp
│ │ ├── tests_import_export.cpp
│ │ ├── tests_items.cpp
│ │ ├── tests_navigation.cpp
│ │ ├── tests_other.cpp
│ │ ├── tests_playsound.cpp
│ │ ├── tests_script_commands.cpp
│ │ ├── tests_scripts.cpp
│ │ ├── tests_slow_clipboard.cpp
│ │ └── tests_tray.cpp
│ ├── ui/
│ │ ├── aboutdialog.ui
│ │ ├── actiondialog.ui
│ │ ├── actionhandlerdialog.ui
│ │ ├── addcommanddialog.ui
│ │ ├── clipboarddialog.ui
│ │ ├── commanddialog.ui
│ │ ├── commandedit.ui
│ │ ├── commandwidget.ui
│ │ ├── configtabappearance.ui
│ │ ├── configtabgeneral.ui
│ │ ├── configtabhistory.ui
│ │ ├── configtablayout.ui
│ │ ├── configtabnotifications.ui
│ │ ├── configtabtray.ui
│ │ ├── configurationmanager.ui
│ │ ├── importexportdialog.ui
│ │ ├── itemorderlist.ui
│ │ ├── logdialog.ui
│ │ ├── mainwindow.ui
│ │ ├── pluginwidget.ui
│ │ ├── shortcutdialog.ui
│ │ ├── shortcutswidget.ui
│ │ ├── tabdialog.ui
│ │ └── tabpropertieswidget.ui
│ ├── version.cmake
│ └── version_file.cmake
├── translations/
│ ├── copyq_ar.ts
│ ├── copyq_ca.ts
│ ├── copyq_cs.ts
│ ├── copyq_da.ts
│ ├── copyq_de.ts
│ ├── copyq_el.ts
│ ├── copyq_es.ts
│ ├── copyq_et.ts
│ ├── copyq_fa.ts
│ ├── copyq_fi.ts
│ ├── copyq_fr.ts
│ ├── copyq_ga.ts
│ ├── copyq_he.ts
│ ├── copyq_hr.ts
│ ├── copyq_hu.ts
│ ├── copyq_id.ts
│ ├── copyq_it.ts
│ ├── copyq_ja.ts
│ ├── copyq_kab.ts
│ ├── copyq_ko.ts
│ ├── copyq_lt.ts
│ ├── copyq_nb.ts
│ ├── copyq_nl.ts
│ ├── copyq_pl.ts
│ ├── copyq_pt_BR.ts
│ ├── copyq_pt_PT.ts
│ ├── copyq_ru.ts
│ ├── copyq_sk.ts
│ ├── copyq_sv.ts
│ ├── copyq_tr.ts
│ ├── copyq_uk.ts
│ ├── copyq_vi.ts
│ ├── copyq_zh_CN.ts
│ └── copyq_zh_TW.ts
└── utils/
├── bump_version.sh
├── copy_files.sh
├── create_source_package.sh
├── fix-translations.py
├── fosshub.py
├── generata-big-data-tab.sh
├── github/
│ ├── build-macos-deps.sh
│ ├── build-windows-deps.sh
│ ├── deploy-windows.sh
│ ├── test-linux-global-shortcuts.sh
│ ├── test-linux-gnome-extension.sh
│ ├── test-linux-wayland.sh
│ ├── test-linux.sh
│ ├── test-macos.sh
│ ├── test-signals.sh
│ └── test-start-server.sh
├── gitlab/
│ ├── build-before_script.sh
│ ├── build-script.sh
│ ├── test-before_script.sh
│ ├── test-script.sh
│ ├── test_gui-before_script.sh
│ └── test_gui-script.sh
├── linux_make_icons.sh
├── lupdate.sh
├── make_icns.sh
├── make_ico.sh
├── patches/
│ └── knotifications/
│ └── 0001-Support-updating-Snore-notifications.patch
├── sanitize.sh
├── script_docs_to_cpp.py
├── sign_released_files.sh
├── update_icon_font.py
└── windows_copyq_update.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .claude/settings.json
================================================
{
"permissions": {
"allow": [
"Bash(cmake -B build :*)",
"Bash(build/copyq-tests :*)",
"Bash(build/copyq :*)"
]
},
"env": {
"COPYQ_SESSION_NAME": "test",
"COPYQ_SETTINGS_PATH": "build/copyq-test-conf",
"COPYQ_ITEM_DATA_PATH": "build/copyq-test-data",
"COPYQ_PLUGINS": "",
"COPYQ_DEFAULT_ICON": "1",
"COPYQ_SESSION_COLOR": "#f90",
"COPYQ_THEME_PREFIX": "$PWD/shared/themes",
"COPYQ_PASSWORD": "TEST123",
"COPYQ_LOG_LEVEL": "DEBUG",
"QT_LOGGING_RULES": "*.debug=true;qt.*.debug=false",
"QT_QPA_PLATFORM": "minimal"
}
}
================================================
FILE: .github/CODEOWNERS
================================================
* @hluk
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us fix problems.
title: ''
labels: bug
assignees: ''
---
<!--
Before continuing, make sure a similar request or a known issue does not exists already:
- See the list of known issues: https://copyq.readthedocs.io/en/latest/known-issues.html
- Try to look up a similar problem: https://github.com/hluk/CopyQ/issues
-->
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
<!-- List of steps to reproduce the behavior. -->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Version, OS and Environment**
<!--
Get details from `copyq version` command, or copy from the CopyQ main window:
1. Open Action dialog (F5 shortcut).
2. Enter command: `copyq: copy(version())`
3. Click OK - the details should be copied to the system clipboard.
4. Paste the details in the report.
-->
- Application Version (for example 10.0.0)
- OS (for example Windows 11, Ubuntu 24.04, Fedora 42, macOS Sonoma 14.4)
- Desktop environment, window manager (if applicable)
- Installation method (for example Windows installer, portable zip, Flatpak, Homebrew, manual build)
**Additional context**
<!--
Provide any additional context about the problem if possible.
For example, the latest logs from `copyq logs` or from GUI (in menu bar Help - Show Log).
-->
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project.
title: ''
labels: feature
assignees: ''
---
<!--
Before continuing, make sure a similar request does not exists already:
https://github.com/hluk/CopyQ/issues
-->
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
================================================
FILE: .github/actions/download-miniaudio/action.yml
================================================
name: Download miniaudio
description: Downloads and verifies miniaudio.h from a pinned commit (cached)
runs:
using: composite
steps:
- name: Set miniaudio version
shell: bash
run: |
# 0.11.25
echo 'MINIAUDIO_COMMIT=9634bedb5b5a2ca38c1ee7108a9358a4e233f14d' >> "$GITHUB_ENV"
echo 'MINIAUDIO_SHA256=ac7af4de748b7e26b777f37e01cee313a308a7296a3eb080e2906b320cc55c89' >> "$GITHUB_ENV"
- name: Cache miniaudio header
id: cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: src/miniaudio.h
key: miniaudio-${{ env.MINIAUDIO_COMMIT }}
- name: Download and verify miniaudio
if: steps.cache.outputs.cache-hit != 'true'
shell: bash
run: |
curl -sSLo src/miniaudio.h --fail-with-body --retry 3 \
"https://raw.githubusercontent.com/mackron/miniaudio/$MINIAUDIO_COMMIT/miniaudio.h"
if command -v sha256sum >/dev/null 2>&1; then
sha256cmd='sha256sum -c'
elif command -v shasum >/dev/null 2>&1; then
sha256cmd='shasum -a 256 -c'
else
echo '::error::No SHA-256 utility found'; exit 1
fi
echo "$MINIAUDIO_SHA256 src/miniaudio.h" | $sha256cmd
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
================================================
FILE: .github/workflows/build-linux.yml
================================================
---
name: Linux
on:
push:
branches: [master]
pull_request:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
common_packages: >-
ninja-build
libxfixes-dev
libxtst-dev
extra-cmake-modules
libwayland-dev
gnupg2
xvfb
openbox
xdotool
qt6_packages: >-
libegl-dev
qt6-base-private-dev
qt6-base-dev
qt6-base-dev-tools
qt6-tools-dev
qt6-tools-dev-tools
qt6-l10n-tools
qt6-declarative-dev
libqt6svg6-dev
libqt6svg6
libkf6guiaddons-dev
libkf6guiaddons
libqt6waylandclient6
qt6-wayland
qt6-wayland-dev
qt6-wayland-dev-tools
libqca-qt6-dev
libqca-qt6-2
libqca-qt6-plugins
qtkeychain-qt6-dev
qt5_packages: >-
qtbase5-dev
qtbase5-dev-tools
qtbase5-private-dev
qtdeclarative5-dev
qttools5-dev
qttools5-dev-tools
libqt5x11extras5-dev
libqt5svg5-dev
libqt5svg5
libqt5waylandclient5-dev
qtwayland5
qtwayland5-dev-tools
libkf5notifications-dev
libqca-qt5-2-dev
libqca-qt5-2
libqca-qt5-2-plugins
qtkeychain-qt5-dev
# FIXME: Sending signal to client process does not cause the process
# to exit with non-zero code with GitHub Actions. Why?
COPYQ_TESTS_SKIP_SIGNAL: '1'
jobs:
build:
name: ${{matrix.buildname}}
runs-on: ${{matrix.os}}
strategy:
# Avoid canceling all jobs on transient failures.
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
buildname: Qt 5
compiler: g++
compiler_package: g++
with_qt6: false
with_native_notifications: true
cmake_preset: Debug
- os: ubuntu-latest
buildname: Qt 6
compiler: g++
compiler_package: g++
with_qt6: true
with_native_notifications: false
test_wayland: true
test_gnome: true
coverage: true
cmake_preset: Debug
compiler_flags: >-
--coverage
-fprofile-arcs
-ftest-coverage
-fprofile-abs-path
-fprofile-update=atomic
- os: ubuntu-latest
buildname: Qt 6 Clang
compiler: clang++
compiler_package: clang
with_qt6: true
with_native_notifications: false
cmake_preset: Debug
steps:
- name: Checkout source code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
with:
submodules: false
fetch-depth: 1
- name: Enable ccache
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2
with:
key: ${{ github.job }}-${{ matrix.os }}
- name: Set up ccache
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
- name: Install dependencies
uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1
with:
version: 1.0
packages: >-
${{ matrix.compiler_package }}
${{ env.common_packages }}
${{ matrix.with_qt6 && env.qt6_packages || env.qt5_packages }}
${{ matrix.coverage && 'lcov' || '' }}
${{ matrix.coverage && 'kwin-wayland kwin-wayland-backend-virtual libwayland-server0 procps' || '' }}
${{ matrix.test_gnome && 'gnome-shell gnome-shell-common glib2.0-bin' || '' }}
- name: Download miniaudio
uses: ./.github/actions/download-miniaudio
- name: Build with CMake
uses: lukka/run-cmake@af1be47fd7c933593f687731bc6fdbee024d3ff4 # v10
with:
configurePreset: '${{ matrix.cmake_preset }}'
buildPreset: '${{ matrix.cmake_preset }}'
configurePresetAdditionalArgs: >-
[
'-DCMAKE_CXX_COMPILER=${{matrix.compiler}}',
'-DCMAKE_CXX_FLAGS=${{matrix.compiler_flags}}',
'-DCMAKE_C_FLAGS=${{matrix.compiler_flags}}',
'-DWITH_QT6=${{matrix.with_qt6}}',
'-DWITH_NATIVE_NOTIFICATIONS=${{matrix.with_native_notifications}}'
]
- name: Create gnupg directory for tests
run: mkdir -p ~/.gnupg && chmod go-rwx ~/.gnupg
- name: Test on GNOME
working-directory: >-
${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}
if: matrix.test_gnome
run: '${{github.workspace}}/utils/github/test-linux-gnome-extension.sh'
env:
COPYQ_TESTS_EXECUTABLE: >-
${{runner.workspace}}/install/copyq/${{ matrix.cmake_preset }}/bin/copyq
- name: Test on Wayland
working-directory: >-
${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}
if: matrix.test_wayland
run: '${{github.workspace}}/utils/github/test-linux-wayland.sh'
env:
COPYQ_TESTS_EXECUTABLE: >-
${{runner.workspace}}/install/copyq/${{ matrix.cmake_preset }}/bin/copyq
- name: Test on X11
working-directory: >-
${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}
run: '${{github.workspace}}/utils/github/test-linux.sh'
env:
COPYQ_TESTS_EXECUTABLE: >-
${{runner.workspace}}/install/copyq/${{ matrix.cmake_preset }}/bin/copyq
COPYQ_TESTS_SKIP_DRAG_AND_DROP: >-
${{ matrix.with_qt6 && '0' || '1' }}
- name: Update coverage
if: matrix.coverage
working-directory: >-
${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}
run: |
lcov --capture --directory . \
--base-directory '${{github.workspace}}' \
--no-external \
--rc branch_coverage=1 \
--rc geninfo_no_exception_branch=1 \
--output-file coverage-full.info
# Remove 3rd party files in source tree
lcov --remove coverage-full.info \
'*/plugins/itemfakevim/fakevim/*' \
'*/src/gui/fix_icon_id.h' \
--output-file coverage.info
- name: Upload coverage to Codecov
if: matrix.coverage
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
with:
files: ${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}/coverage.info
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
================================================
FILE: .github/workflows/build-macos.yml
================================================
---
name: macOS
on:
push:
branches: [master]
tags: ['v*']
pull_request:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
QT_VERSION: '6.10.2'
KF_VERSION: '6.23'
KF_PATCH: '0'
KF_BRANCH: stable
QCA_VERSION: '2.3.10'
QTKEYCHAIN_VERSION: '0.15.0'
jobs:
build:
name: ${{matrix.buildname}}
runs-on: ${{matrix.os}}
strategy:
# Avoid canceling all jobs on transient failures.
fail-fast: false
matrix:
include:
- os: macos-15-intel
buildname: macOS 13
bundle_suffix: '-macos-13'
cmake_preset: macOS-13
- os: macos-14
buildname: macOS 12 M1
bundle_suffix: '-macos-12-m1'
cmake_preset: macOS-12-m1
steps:
- name: Checkout source code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
with:
submodules: false
fetch-depth: 0
- name: Enable ccache
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2
with:
key: ${{ github.job }}-${{ matrix.os }}
max-size: 1G
- name: Set up ccache
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
- name: Install Qt
uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005 # v4
with:
version: ${{ env.QT_VERSION }}
modules: qtimageformats qt5compat
cache: true
set-env: true
- name: Set up dependency paths
run: |
DEPS_PREFIX=$GITHUB_WORKSPACE/deps/install
# install-qt-action sets QT_ROOT_DIR but may not set CMAKE_PREFIX_PATH.
echo "DEPS_PREFIX=$DEPS_PREFIX" >> "$GITHUB_ENV"
echo "CMAKE_PREFIX_PATH=${DEPS_PREFIX};${QT_ROOT_DIR}" >> "$GITHUB_ENV"
- name: Cache dependencies
id: cache-deps
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ${{ github.workspace }}/deps/install
key: >-
macos-deps-kf${{ env.KF_VERSION }}.${{ env.KF_PATCH
}}-qca${{ env.QCA_VERSION
}}-qtkeychain${{ env.QTKEYCHAIN_VERSION
}}-${{ runner.arch
}}-${{ hashFiles('utils/patches/**') }}
- name: Build dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: '${{ github.workspace }}/utils/github/build-macos-deps.sh'
- name: Download miniaudio
uses: ./.github/actions/download-miniaudio
- name: Build with CMake
uses: lukka/run-cmake@af1be47fd7c933593f687731bc6fdbee024d3ff4 # v10
with:
configurePreset: '${{ matrix.cmake_preset }}'
buildPreset: '${{ matrix.cmake_preset }}'
- name: Create gnupg directory for tests
run: mkdir -p ~/.gnupg && chmod go-rwx ~/.gnupg
- name: Get version string
id: version
run: |
version=$(git describe --tags --always HEAD | sed -E \
-e 's/^v([0-9]+\.[0-9]+\.[0-9]+)/\1/' \
-e 's/-([0-9]+).*/\.\1/')
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "Version: $version"
- name: Create macOS bundle
working-directory: '${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}'
# Retry cpack due to frequent errors: "hdiutil: create failed - Resource busy"
run: (cpack || cpack || cpack) && mv -v copyq-*.dmg 'CopyQ-${{ steps.version.outputs.version }}${{ matrix.bundle_suffix }}.dmg'
- name: Upload macOS bundle
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v4
with:
name: 'CopyQ-${{ steps.version.outputs.version }}${{ matrix.bundle_suffix }}.dmg'
path: '${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}/CopyQ-${{ steps.version.outputs.version }}${{ matrix.bundle_suffix }}.dmg'
- name: Test
working-directory: '${{runner.workspace}}/build/copyq/${{ matrix.cmake_preset }}'
run: '${{github.workspace}}/utils/github/test-macos.sh'
- name: Upload crash reports
if: failure()
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v4
with:
name: 'crash-reports${{ matrix.bundle_suffix }}'
path: '~/Library/Logs/DiagnosticReports/*'
if-no-files-found: ignore
release:
if: startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
- name: Upload to release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
draft: true
files: 'CopyQ-*/*.dmg'
================================================
FILE: .github/workflows/build-windows.yml
================================================
---
name: Windows
on:
push:
branches: [master]
tags: ['v*']
pull_request:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
QT_VERSION: '6.10.2'
KF_VERSION: '6.23'
KF_PATCH: '0'
KF_BRANCH: stable
SNORETOAST_VERSION: '0.9.1'
QCA_VERSION: '2.3.10'
QTKEYCHAIN_VERSION: '0.15.0'
COPYQ_TESTS_SKIP_DRAG_AND_DROP: '1'
COPYQ_TESTS_SKIP_BASH: '1'
COPYQ_TESTS_NO_SYMLINKS: '1'
# There is no audio device on the CI system
COPYQ_TESTS_SKIP_AUDIO: '1'
jobs:
build:
name: Windows
runs-on: windows-2025
defaults:
run:
shell: bash
steps:
- name: Checkout source code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
with:
submodules: false
# Full history needed for git describe (version string).
fetch-depth: 0
- name: Set up MSVC
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1
with:
arch: x64
- name: Install Qt
uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005 # v4
with:
version: ${{ env.QT_VERSION }}
arch: win64_msvc2022_64
modules: qtimageformats qt5compat
cache: true
set-env: true
- name: Set OpenSSL path
run: echo "OPENSSL_ROOT_DIR=C:/Program Files/OpenSSL" >> "$GITHUB_ENV"
- name: Enable sccache
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2
with:
variant: sccache
key: windows-msvc
- name: Set up dependency paths
run: |
DEPS_PREFIX="${GITHUB_WORKSPACE}/deps/install"
echo "DEPS_PREFIX=$DEPS_PREFIX" >> "$GITHUB_ENV"
echo "$DEPS_PREFIX/bin" >> "$GITHUB_PATH"
# Extend CMAKE_PREFIX_PATH with Qt and KDE deps.
# install-qt-action sets QT_ROOT_DIR but may not set CMAKE_PREFIX_PATH.
echo "CMAKE_PREFIX_PATH=${DEPS_PREFIX}/lib/cmake;${DEPS_PREFIX}/share/ECM/cmake;${QT_ROOT_DIR}/lib/cmake" >> "$GITHUB_ENV"
- name: Cache KDE dependencies
id: cache-deps
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ${{ github.workspace }}/deps/install
key: >-
windows-deps
-kf${{ env.KF_VERSION }}.${{ env.KF_PATCH }}
-qca${{ env.QCA_VERSION }}
-qtkeychain${{ env.QTKEYCHAIN_VERSION }}
-snoretoast${{ env.SNORETOAST_VERSION }}
-${{ hashFiles('utils/patches/**') }}
- name: Build KDE dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: utils/github/build-windows-deps.sh
- name: Download miniaudio
uses: ./.github/actions/download-miniaudio
- name: Build with CMake
uses: lukka/run-cmake@af1be47fd7c933593f687731bc6fdbee024d3ff4 # v10
env:
VCPKG_ROOT: ''
with:
configurePreset: Windows
buildPreset: Windows
configurePresetAdditionalArgs: >-
[
'-DWITH_NATIVE_NOTIFICATIONS=TRUE',
'-DWITH_QCA_ENCRYPTION=TRUE',
'-DWITH_KEYCHAIN=TRUE'
]
- name: Get version string
id: version
run: |
version=$(git describe --tags --always HEAD | sed -E \
-e 's/^v([0-9]+\.[0-9]+\.[0-9]+)/\1/' \
-e 's/-([0-9]+).*/\.\1/')
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "Version: $version"
- name: Deploy application
run: utils/github/deploy-windows.sh
env:
APP_VERSION: ${{ steps.version.outputs.version }}
BUILD_DIR: ${{ runner.workspace }}/build/copyq/Windows
- name: Set up GPG for tests
shell: pwsh
run: |
$env:PATH = "C:\Program Files\Git\usr\bin;$env:PATH"
New-Item -ItemType Directory -Force "$HOME\.gnupg" | Out-Null
gpg --version
- name: Test
working-directory: ${{ github.workspace }}/copyq-${{ steps.version.outputs.version }}
shell: cmd
run: |
set "PATH=%CD%;C:\Program Files\Git\usr\bin"
.\copyq-tests.exe
env:
QT_FORCE_STDERR_LOGGING: 1
COPYQ_LOG_LEVEL: DEBUG
COPYQ_TESTS_RERUN_FAILED: 1
COPYQ_PLUGINS: ${{ github.workspace }}\copyq-${{ steps.version.outputs.version }}\itemtests.dll
- name: Create portable zip
run: 7z a "copyq-${{ steps.version.outputs.version }}.zip" "copyq-${{ steps.version.outputs.version }}"
- name: Build installer
shell: cmd
run: |
"%ProgramFiles(x86)%\Inno Setup 6\ISCC.exe" /O"%GITHUB_WORKSPACE%" ^
/DAppVersion="${{ steps.version.outputs.version }}" ^
/DRoot="%GITHUB_WORKSPACE%\copyq-${{ steps.version.outputs.version }}" ^
/DSource="%GITHUB_WORKSPACE%" ^
"%GITHUB_WORKSPACE%\shared\copyq.iss"
- name: Upload portable zip
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: copyq-${{ steps.version.outputs.version }}.zip
path: copyq-${{ steps.version.outputs.version }}.zip
- name: Upload installer
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: copyq-${{ steps.version.outputs.version }}-setup.exe
path: copyq-${{ steps.version.outputs.version }}-setup.exe
release:
if: startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
- name: Upload to release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
draft: true
files: |
copyq-*/*.zip
copyq-*/*.exe
================================================
FILE: .github/workflows/codespell.yml
================================================
# Codespell configuration is within .codespellrc
---
name: Codespell
on:
push:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
- name: Codespell
uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2
================================================
FILE: .gitignore
================================================
# Generated CMake files
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
# Generated Visual Studio files
/plugins/Debug/
/plugins/Release/
/plugins/Win*/
/Debug/
/Release/
/Win*/
*.sln
*.suo
*.*sdf
*.vc?proj*
# Generated Makefiles
/plugins/Makefile
/plugins/*/Makefile
/src/Makefile
/Makefile
# Generated Qt files
/plugins/**/*.dir/
/src/copyqcon.dir/
/src/copyq.dir/
/src/copyq_*.qm
/src/copyq_*.qm.rule
/src/qrc_copyq.cxx
/src/translations.qrc
/src/qrc_translations.cxx
moc_*
ui_*
*.depends
*.o
*.dylib
*.moc
**/qrc_*.cpp
/.qmake.cache
/copyq.app
copyq.pro.user*
CMakeLists.txt.user*
.DS_Store
.qmake.stash
*.pyc
*.dmg
/build*
*.qm
# Generated Sphinx files
/docs/_build
# Generated Flatpak files
/shared/flatpak/.flatpak-builder
/shared/flatpak/copyq
# Visual Studio Code
/.vscode
# Files for utils/launchpad/build.sh
.gitconfig
launchpad.key
================================================
FILE: .gitlab-ci.yml
================================================
---
image: ubuntu:24.04
variables:
BUILD_DIR: "build"
INSTALL_PREFIX: "copyq"
SCREENSHOT_DIR: "screenshots"
TESTS_LOG_DIR: "logs"
DEBIAN_FRONTEND: "noninteractive"
build:
stage: build
before_script:
- utils/gitlab/build-before_script.sh
script:
- utils/gitlab/build-script.sh
# Upload installed application.
artifacts:
paths:
- "$INSTALL_PREFIX"
cache:
paths:
- build
# Run simple tests (doesn't require GUI)
test:
stage: test
before_script:
- utils/gitlab/test-before_script.sh
script:
- utils/gitlab/test-script.sh
dependencies:
- build
# GUI tests (requires X11)
test_gui:
stage: test
before_script:
- utils/gitlab/test_gui-before_script.sh
script:
- utils/gitlab/test_gui-script.sh
# Upload screenshots on failure.
artifacts:
when: on_failure
paths:
- "$SCREENSHOT_DIR"
- "$TESTS_LOG_DIR"
dependencies:
- build
================================================
FILE: .pre-commit-config.yaml
================================================
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-executables-have-shebangs
- id: check-merge-conflict
- id: check-xml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
================================================
FILE: .readthedocs.yaml
================================================
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
---
version: 2
build:
os: ubuntu-22.04
tools:
python: "3.11"
sphinx:
configuration: docs/conf.py
python:
install:
- requirements: docs/requirements.txt
================================================
FILE: .weblate
================================================
[weblate]
url = https://hosted.weblate.org/api/
translation = copyq/master
================================================
FILE: AGENTS.md
================================================
## Commands
Always use the following environment variables for all `build/copyq` and
`build/copyq-tests` commands:
export COPYQ_SESSION_NAME="test"
export COPYQ_SETTINGS_PATH="build/copyq-test-conf"
export COPYQ_ITEM_DATA_PATH="build/copyq-test-data"
export COPYQ_PLUGINS=""
export COPYQ_DEFAULT_ICON="1"
export COPYQ_SESSION_COLOR="#f90"
export COPYQ_THEME_PREFIX="$PWD/shared/themes"
export COPYQ_PASSWORD="TEST123"
export COPYQ_LOG_LEVEL="DEBUG"
export QT_LOGGING_RULES="*.debug=true;qt.*.debug=false"
export QT_QPA_PLATFORM="xcb"
Run CMake to configure build:
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
-DCMAKE_INSTALL_PREFIX=$PWD/build/install \
-DCMAKE_CXX_FLAGS="-ggdb -fdiagnostics-color" \
-DWITH_TESTS=ON \
-DPEDANTIC=ON .
Build: `cmake -B build --build`
Install: `cmake -B build --target install`
Tests require X11 session (or Wayland) and a window manager. Use `Xvfb` and
`openbox` to initialize the testing environment.
Avoid running all tests, always specify a list tests functions to run.
Run tests after build: `build/copyq-tests $TEST_FUNCTIONS`
Run tests for specific plugin: `build/copyq-tests PLUGINS:sync $TEST_FUNCTIONS`
List tests function names: `build/copyq-tests -functions`
List tests function names for a plugin: `build/copyq-tests PLUGINS:image -functions`
Start the server process: `build/copyq`
In case any process exits with exit code 11 (SIGSEGV) use `coredumpctl` utility
to find the root cause.
Stop the server process: `build/copyq exit`
List server and client logs (server process does not need to run): `build/copyq logs`
Run a script - requires server to be running:
build/copyq source script.js
# the above command is equivalent to
build/copyq 'source("script.js")'
Scripting API documentation is in @docs/scripting-api.rst. After changing it,
run @utils/script_docs_to_cpp.py to update the completion popup in the GUI.
Useful scripts (omit the `tab(...)` call to use the default tab):
- `tab('TAB1'); add('ITEM')` - prepend ITEM text item to the TAB1 tab
- `tab('TAB1'); size()` - item count in the TAB1 tab
- `tab('TAB1'); read(0,1,2)` - read items at indexes 0, 1 and 2 in the TAB1 tab
- `config()` - list configuration options with current value and description
- `config('check_clipboard', 'false')` - set an option
## Project structure
- @plugins - code for various plugins build as dynamic modules loaded optionally by the app
- @src - main app code
- @src/app - wrappers for QCoreApplication object
- @src/common - common functionality, client/server local socket handling, logging
- @src/gui - GUI widgets and some helper modules
- @src/item - tab and item data handling, serialization code
- @src/platform - platform-specific code
- @src/scriptable - scripting capabilities
- @src/tests - tests for the main app
- @src/ui - Qt widget definition files (XML)
- @qxt - code to handle global system-wide shortcuts
================================================
FILE: AUTHORS
================================================
Adam Batkin <adam@batkin.net>
Giacomo Margarito <giacomomargarito@gmail.com>
Greg Carp <grcarpbe@gmail.com>
Ilya Plenne <libbkmz.dev@gmail.com>
Jörg Thalheim <joerg@higgsboson.tk>
Kim Jzhone <jzhone@gmail.com>
Kos Ivantsov <kos.ivantsov@gmail.com>
lightonflux <lightonflux@znn.info>
Lukas Holecek <hluk@email.cz>
Marjolein Hoekstra <http://twitter.com/cleverclogs>
Martin Lepadusch <mlepadusch@googlemail.com>
Matt d'Entremont <mattdentremont@gmail.com>
Michal Čihař <michal@cihar.com>
Patricio M. Ros <patricioros.dev@gmail.com>
Robert Orzanna <robert@orzanna.de>
Ryan Wooden <rygwdn@gmail.com>
Scott Kostyshak <skostysh@princeton.edu>
Sebastian Schuberth <sschuberth@gmail.com>
Tomas Nilzon <tomas.nilzon@telia.com>
Wilfried Caruel <wilfried.caruel@gmail.com>
x2357 <x2357handle@gmail.com>
================================================
FILE: CHANGES.md
================================================
# 13.0.0
## Added
- Windows: Preferences now include auto-start option, previously available only
in the installer.
## Changed
- Tabs synchronized with a directory on the disk will now include files from
sub-directories (#2638).
- Filtering/searching items in large tabs no longer blocks UI (#3111, #3261).
## Fixed
- Fixes saving edited HTML and setting style in internal editor (#3227).
- Fixes updating selected item colors (#3219).
- Wayland: Fixes clipboard access in KDE Plasma 6.5 (#3228). This requires
KGuiAddons library installed on the system.
# 12.0.1
## Fixed
- X11: Fixes registering global shortcuts with modifiers (#3212).
- macOS: Fixes providing builds for Intel architecture.
- Fixes maximum length for session name (it is 16 characters as the error
message says, not 15).
# 12.0.0
## Added
- Wayland: Global shortcuts are now registered using Portal if available.
- Black theme (#3142). Thanks to @FadeMind.
- Adds attributes for controlling the dialog window created via `dialog()`
(#2947): `.onTop` makes the dialog stay on top of other windows, `.modal`
makes the dialog modal (blocks interaction with other windows in the
application until closed).
- Adds support showing icon font symbol in notes using
`application/x-copyq-item-icon` format.
- Adds support for setting colors in theme files by name. For example:
`edit_bg=white`.
## Changed
- Temporary tabs that are not stored on disk will now not expire if
configuration changes (#3172).
- Pinned and locked items will not be dropped if tab size (maximum item count)
changes (#3008).
- The app now propagates exit code properly if it is aborted or receives a
Unix signal (SIGINT, SIGTERM).
- Support for Qt older than 5.15 has been dropped.
- The build now uses Qt 6 by default. Use `cmake -DWITH_QT6=OFF ...` to build
the app for Qt 5.
- Windows: The application will be now hidden from screenshots and screen
recordings by default (#3165). This can be disabled using option "Hide from
screenshots and recordings".
- Logs are now stored in multiple files based on the process and the log
records have a slightly different format (start with timestamp).
## Fixes
- Drops unsafe sanitizing QTextDocument fonts (#3156). Qt 6 should handle any
rich texts safely now.
- Logging now does not use lock files and avoids crashes if the application
loop was not yet started.
- Avoids resetting properties of a tab if it is renamed.
- Fixes setting color for item counter (#2717).
- Fixes editing and providing UTF-8 text by default (#3093).
- Fixes updating item preview if when window is shown.
- Fixes changing synchronization directory for a tab.
- Fixes possible crash if calling a function with unexpected function argument.
- Fixes background of the command line in some themes in FakeVim plugin.
- Fixes renaming tabs with item storing disabled.
- Avoids collapsing tab in the tab tree after it is moved.
- Fixes item counter value after moving the tab in the tab tree.
- Fixes moving tab group with items in the tab tree.
- Linux: Fixes storing the first clipboard change after starting the app and
modifying configuration.
- Linux: Avoids exiting on commit data request from the session manager (#3145).
# 11.0.0
## Added
- Adds support for dark/light window title scheme.
- New `frameless_window` option (#2570) toggles the main window frame and title
bar (if supported by the window manager):
copyq toggleConfig frameless_window
- Adds support for localizing command names in the command INI files (#3032):
[Command]
Name = ...
Name_cs = ...
Name_fr = ...
Name_pt_BR = ...
Name_pt = ...
- Adds support for showing preview for more image formats
(namely ico and webp).
- Adds support for more complex network requests in scripts. New
`NetworkRequest` class can be used to set custom headers, HTTP method, number
of allowed redirects and timeout.
## Changed
- Avoids hiding the main window on backspace (#3107).
- Enables Vi/Emacs navigation (#3012) in menus, and `Ctrl+[` in Vi and `Ctrl+G`
in Emacs to work in many other places as `Esc` key (for example, to hide menus,
dialogs). Users can override shortcuts, but not some reserved ones in
specific cases (mainly, if the item list or a menu has focus).
- Selections and current items/rows/data in scripts now only relate to the
tab selected with `tab(...)` in scripts (this is still by default the
selected tab when the command started). Affected script functions:
- `move()`
- `setData()`
- `removeData()`
- `selectedItems()`
- `selectedItemData()`
- `setSelectedItemData()`
- `setSelectedItemsData()`
- `currentItem()`
- `ItemSelection().current()`
- Drops unnecessary timeouts when executing commands and actions from scripts.
- Avoids fetching and passing clipboard to `action()`/`execute()` if the
commands do not contains `%1` placeholder. This can improve performance.
## Fixed
- Fixes `dialog()`: custom size, layout and resizing (#3003).
- Fixes overriding filter/search string with `filter()` (previously the new
value was appended to the current filter).
- Fixes refocusing the item after editing its notes.
- Synchronize plugin: Fixes missing data in the last item when tab is full.
- Windows: Fixes the icon for uninstaller (#2864).
- Fixes build for Qt 6.9 and above.
- Fixes potentially misconfigured log file path at app start (#3087).
- Linux: Avoids auto-hiding the main window when moved on some window managers
(#3119).
# 10.0.0
## Added
- Emacs navigation key-bindings support.
- Adds support for setting urgency and persistency to notifications. Script
function `notification()` takes new arguments: '.urgency' (low, normal, high,
critical), '.persistent' (toggle persistent notification)
## Changed
- Updates icon font from Font-Awesome 6.7.2.
- On Windows, the main window is shown when starting the application using
the program icon (#2965).
- Calling `exit()` script function prints "Terminating server" on stderr
instead of stdout.
## Fixed
- Fixes item selection with Ctrl+Space (#2850).
- Fixes confirming exit if any commands are running.
- Fixes selecting specific row on search (#2770).
- Clipboard data cloning will be now aborted if the data changes during the
process. This avoids using incomplete data in rare cases.
- Fixes contrast of the selected row number color (#2887). The row number text
color of selected item is set to the same color as item text by default. This
can be overridden via "Edit Theme" button using option `num_sel_fg`.
- Fixes internal editor syntax highlighting for numbers containing separators
(for example `100_000`, `0x1234_abcd`) and avoids incorrectly highlighting
multiple lines as regular expression in some cases.
- On GNOME (Wayland session), the clipboard monitor and provider processes run
in XWayland mode because GNOME does not support Wayland data control
protocol. This behavior can be skipped by settings `QT_QPA_PLATFORM`
environment variable to "wayland" (or other value).
- On Wayland compositors, fixes unnecessary application start delay if
clipboard access (the data control protocol) is not supported.
- On Linux, the "Ignore items with no or single character" predefined command
properly avoids synchronizing empty text or single character.
- On Linux, fixes waiting on keyboard modifiers release when synchronizing
selection.
- Avoids recursive item preview updates when using display commands.
- Avoids removing items if drag'n'drop action fails.
- Wayland: Fixes crash if getting owned clipboard data.
- Wayland: Fixes setting UTF-8 text on broken GNOME's XWayland.
# 9.1.0
## Added
- Allows processing all clipboard changes (#2787, #2746).
If clipboard contains secret (for example is copied from a password manager),
`onSecretClipboardChanged()` script function is called with data containing
`mimeSecret` format set to `1`. Also ensures that callbacks are called
consistently for all clipboard changes with properly set formats
`mimeClipboardMode`, `mimeOutputTab` and `mimeCurrentTab`.
## Fixed
- Fixes editing multiple items (#2810).
- Fixes synchronization plugin causing redundant UI updates and menu
misbehavior (#2649).
- Fixes showing sub-menus for custom commands in tray menu (#2730).
- Fixes switching tab if `onItemsLoaded()` is overridden (#2788).
- Fixes theme option `hover_item_css` (#2687).
- Avoids modifying data from display commands and causing redundant UI updates
(#2837).
- Avoids sharing execute() state in case it is launched recursively.
# 9.0.0
## Added
- Adds `editItem()` script function for editing any item format (#2672).
- Item color is now shown in tray menu as the default icon (#2700).
## Changed
- Removes large margins in the tab tree.
- Single action "Toggle Tag …" replaces the two separate actions "Tag as …" and
"Remove tag …" for each custom tag (this can make the item context menu a lot
more compact).
- Selected items can now be accessed even from commands started from outside
the app using global commands or from command line.
- The `dialog()` script function can now be used for asking Yes/No questions
without providing any fields. In such case, the function will return `true`
instead of `undefined` after accepting the dialog. For example:
const remove = dialog(
'.title', 'Remove Items',
'.label', 'Do you really want to remove all items?'
);
if (!remove)
abort();
// remove items ...
- The `execute()` script function now throws an exception when command cannot
be executed instead of returning `undefine`.
## Fixed
- Includes many performance improvements for working with large amount of items.
- Fixes triggering menu items by number (#2569).
- Fixes text color in the internal item editor (#2643).
- Fixes showing global shortcuts in tray menu (#2382).
- Fixes passing captured texts to automated commands (#2707).
- Fixes duplicate synchronized items after tagging or modifying data.
- Fixes situation when display commands stop updating items.
- The pre-defined "Move to tab" action will be shown only if the current tab is
not the same as target tab (#2669). Previously, in such case the item was
removed unexpectedly.
- Windows: Detect and ignore secrets from more apps (#2679).
- Linux: Fixes storing previously synchronized clipboard (#2630).
- Linux: Fixes storing selection when "Store text selected using mouse" option
is enabled but "Run automatic commands on selection" is disabled (#2651).
- Linux: Fixes clipboard synchronization with Qt 6 GUI framework.
- Linux: Fixes showing tab tree labels with Qt 6 GUI framework.
# 8.0.0
## Added
- Tab item limit has been increased to 100,000 (#1144).
- New macOS builds for M1/arm64 architectures are available (#1884).
- New Debian/Raspbian builds for arm/arm64 architectures are available.
- Allows overriding item activation using `paste()`.
- Allows overriding script functions to handle some events: items
added/removed/changed (`onItemsAdded()`, `onItemsRemoved()`,
`onItemsChanged()`), tab items loaded (`onItemsLoaded()`), tab selected
(`onTabSelected()`) (#59).
- Allows to cancel removing items by overriding `onItemsRemoved()` script
function. If the exit code is non-zero (for example `fail()` is called),
items will not be removed. But this can also cause a new items not to be
added if the tab is full.
- Allows overriding current clipboard owner (`currentClipboardOwner()`) used by
the clipboard monitor process. By default it uses `currentWindowTitle()`.
- Allows using Ctrl+C to copy items even if search entry box is focused unless
it has a selection (#2440).
- Linux: Adds build option to disable X11 support (`cmake -DWITH_X11=OFF ...`)
(#2532).
- Linux: Adds build option to disable autostart which is useful mainly for
Flatpak builds (#2517, #2518).
## Changed
- Windows binaries (which are 64 bit) are now by default installed to "Program
Files" instead of incorrect "Program Files (X86)". After installing the new
version, the **old path must be manually removed**.
- Windows and macOS builds are now based on newer Qt 6.
- Avoids accessing clipboard from password managers (#2282, #2495, #2500). This
disallows storing and processing such data. Specifically, the clipboard is
ignored if it contains following data: `Clipboard Viewer Ignore` on Windows,
`application/x-nspasteboard-concealed-type` on macOS,
`x-kde-passwordManagerHint` with `secret` value on Linux.
- Large data items in tabs are now stored in separate location unless
Synchronize or Encryption plugins are active for the tab. This allows storing
more items in tabs while using less memory. The data path can be printed via
`copyq info data` command and overridden using `COPYQ_ITEM_DATA_PATH`
environment variable. To disable this functionality use `copyq config
item_data_threshold -1` - the default value is 1024 and items larger than
this amount of bytes are stored in the separate location.
- Command dialog now shows advanced properties for built-in commands allowing
to copy the command line to set global shortcut in system.
- Global shortcuts are now also visible in menus (#2382).
- Avoids pasting all image formats as new item.
- Display commands are now applied to tray menu items too.
- Linux: Last stored text item is updated from any new mouse selection only if
the item content matches the start or the end of the selection (but not the
middle like previously). This may avoid some unexpected item updates.
- Updates icon font from Font-Awesome 6.5.1.
## Fixed
- Fixes drag'n'drop ordering for plugins and commands. This could have caused a
missing icon, app crash or various inconsistencies.
- Fixes managing keys with gpg 2.1 and above (#2463, #1208).
- Fixes creating duplicate item with Synchronize plugin when adding a tag for
example (#2355).
- Fixes conflicting notes and text with Synchronize plugin (#2355)
- Fixes deleted global object after running scripts (#2542).
- Wayland: Fixes copying images to another app instance.
# 7.1.0
## Changed
- Image editor (if set) will now open instead of built-in text editor when
selecting Edit action on image items containing no text.
- Encryption now uses larger/safer keys (#2385).
## Fixed
- Fixes saving and opening empty encrypted tabs.
- Fixes minimal size of dialogs (#2299).
- Fixes importing commands with regular expressions containing slash characters
in scripts.
- Fixes font weight with Qt 6.
- Fixes closing the app with Qt 6.
- Fixes the build and calling some script functions with Qt 6.5.
- X11: Fixes crash when entering search with some keyboard layouts (#2171).
# 7.0.0
## Added
- Windows installer has an option to install for current user or all users
(#1912).
## Changed
- The preferred format to edit is now "text/plain;charset=utf-8" with
"text/plain" as fallback. Additionally, if no such format is available,
"text/uri-list" is used.
- Toggle Clipboard Storing menu item uses static text and icon instead of
changing these dynamically after each use (#2255).
- Settings integrity is now handled solely by Qt. Previously, additional
`*.bak` files where created for configuration files.
- Commands are no longer migrated to the new format on start. The old command
configuration file has been last used in version 3.9.0 (released on
2019-06-27).
- Native notification text length is limited now to avoid slow downs when
showing notifications in some desktop environments. The limit is about
100,000 characters and 100 lines.
## Fixed
- Fixes Sort/Reverse Selected Items menu actions (#2267).
- Fixes moving items to a tab in tab bar using drag'n'drop (#1246).
- Fixes possibly buggy window manager frame geometry (#2247).
# 6.4.0
## Added
- Items in menu can be additionally filtered using the item notes (#2170).
- Items can be sorted with a custom order via scripting. For example:
var sel = ItemSelection().selectAll();
const texts = sel.itemsFormat(mimeText);
sel.sort(function(i,j){
return texts[i] < texts[j];
});
## Changed
- More shortcuts and even sequences of shortcuts can be now captured and
assigned. This uses new QKeySequenceEdit UI widget from Qt framework.
- UI uses the preferred sans-serif system font in the dark theme.
## Fixed
- Fixes copying items in order they were selected (#2124).
- Fixes re-selecting the edited item after external editor closes.
- Fixes menu theme (#2139).
- Avoids duplicating items from clipboard in synchronized tabs (#2236).
- macOS: Fixes compatibility with macOS 10.15 (#2103).
- Linux: Fixes synchronizing UTF-encoded text to/from primary selection (#2195)
- Wayland: Avoids showing window after a screen is turned on.
- Wayland: Avoids a rare crash while accessing clipboard data.
- Wayland: Fixes pasting to some XWayland apps (#2234)
- X11: Avoids app freeze when entering search mode (#2171).
- X11: Fixes capturing quickly changing clipboard text (ignores unchanged
TIMESTAMP).
# 6.3.2
## Fixed
- Fixes potential crash when rendering an empty item list.
# 6.3.1
## Fixed
- Fixes rendering issues (#1728, #2093).
- Fixes the space between row number and the item content. This is customizable
with `num_margin` theme option.
- Fixes Qt 6 build.
- Wayland: Fixes synchronizing selection with clipboard with UTF-8 text.
- X11: Fixes tray window popup position on multi-monitor (#2038).
# 6.3.0
## Changed
- UI margins are decreased leaving more space space for item content.
- Script function `config()` now lists current values for each option (#412).
Example of new `copyq config` output:
...
clipboard_notification_lines=3
Number of lines to show for new clipboard content.
Set to 0 to disable.
clipboard_tab=&clipboard
Name of tab that will automatically store new clipboard content.
Leave empty to disable automatic storing.
close_on_unfocus=false
Close main window when other application has focus
...
- FakeVim plugin improvements from upstream:
* Ignores only full-line comments in configuration file
* Support backslashes in substitute command patterns
* Partial support for multi-repeat command (:g, :v)
- Improves rendering item list speed.
- Updates icon font from Font-Awesome 6.2.0
## Fixed
- Fixes showing window under mouse cursor (#2088).
- In single-click-activate mode, multiple items can be selected while holding
Shift or Ctrl (#2056).
- The pre-defined command "Ignore items with no or single character" now also
avoids synchronizing selection and showing popup if less than two characters
where copied.
- Wayland: Fixes synchronizing selection with clipboard in various cases.
- Wayland: Fixes possible crash when managed clipboard data changes while it is
accessed.
# 6.2.0
## Added
- Tabs can now load at least some items from a partially corrupted data file
dropping the rest of the items.
- Simpler and safer data saving uses Qt framework (`QSaveFile`).
- New `Settings` class in scripts can be used to manage INI configuration
files (#1964).
## Changed
- Obscure untested Save button has been removed from Action dialog.
## Fixed
- Fixes restoring window geometry in a loop (#1946).
- Fixes converting internal byte array representation in scripts in some rare
cases.
- Fixes tray menu appearance to follow the configuration (#1896).
- The search history popup menu for will be closed if mouse wheel scrolls and
mouse pointer is outside the menu (#1980).
- macOS: Fixes pasting (#2012).
- Windows: Fixes exiting the app on logout (#1249).
- Windows: Workaround to treat native path separators properly and not as
special escape characters.
# 6.1.0
## Added
- Users can now customize shortcuts for the built-in editor (#708).
- Users can now set default style sheet for HTML items to override for example
color for hyperlinks with `a { color: lightblue }` (#1859). The new settings
can be found under Item configuration tab under Text sub-tab.
## Changed
- Window geometry (size and position) restoring is now simpler: The app sets
geometry only initially and when the current screen/monitor changes.
The mouse cursor position indicates the current screen. In case the app
cannot inspect the mouse pointer position (for example on some Wayland
compositors), it is left up to the window manager to decide to move the
window to another screen.
Users can still disable the automatic geometry by running the following
command (in Action dialog or terminal) and restarting the app:
copyq config restore_geometry false
## Fixed
- Fixes moving items in synchronized tabs after activating them from the
context menu (#1897).
- Windows: Fixes tray icon tooltip (#1864).
- Windows: External editor command now treats native path separators properly
(#1894, #1868).
- macOS: Fixes crash when pasting from the main window or menu (#1847).
- macOS: Older versions of macOS (down to 10.15) are now supported again
(#1866).
- Wayland: Fixes using correct window title icon (#1910).
- Wayland: Fixes retrieving UTF-8 encoded text from selection in environments
which supports it.
- Wayland: Fixes restoring window size without breaking window position (window
position cannot be set in most or all Wayland compositors).
# 6.0.1
## Fixed
- X11: Fixes global/system-wide shortcuts (#1860).
# 6.0.0
## Added
- Native notifications now have lower urgency if the display interval is less
than 10 seconds. This makes clipboard change notification less intrusive.
- Preview dock can be focused with Tab key (#1826). Escape, Tab or Shift+Tab
returns focus back to the item list.
- All options are now documented/described when using command `copyq config`.
- Command editor now supports highlighting multi-line strings enclosed by
backticks (#1845).
- New option to disable restoring window/dialog geometry (app needs to be
restarted after changing the option):
copyq config restore_geometry false
- macOS: New option to enable native tray menu (#1652):
copyq config native_tray_menu true
- Support for building the source code with Qt 6 framework.
## Changed
- While search bar is focused, pressing Down or PageDown key now selects next
item without focusing the item list (#1834).
- Internal commands (like ""Show/hide main window", Pin/Unpin, Encrypt/Decrypt)
will now be automatically updated in following application releases or
whenever the language changes. The side-effect is that only icon, shortcuts,
enabled state and list order can be changed for these commands. Old internal
commands added in previous versions (5.0.0 and lower) of the app need to be
removed manually.
- Increases the default delay for storing changed clipboard owner. This can
help save correct window title for new clipboard content when the window is
closed right after the copy operation. The delay can be changed using:
copyq config change_clipboard_owner_delay_ms 500
- The application version now excludes the "v" prefix in UI and CLI.
- Log Qt warnings by default (at Warning log level messages).
- Linux: Other data formats are now stored for primary selection so as to
support some automatic commands properly (for example, ignore selection when
it contains a special format). Images and non-plain text formats are still
ignored for performance reasons.
## Fixed
- Drag'n'drop operations are now properly ended (#1809).
- Main window will now open only inside the visible screen area (#1768).
- "Clear Current Tab" command will no longer show a message dialog if there are
pinned items (#1823).
- Improves initial size for native tray menu.
- Fixes removing backup file for old commands configuration.
- Fixes broken item selection state (#1828).
- Fixes hiding main window immediately when shown. This can be caused by long
animations in window manager.
- Further performance improvements for logging, application startup and file
synchronization.
- Linux: Native status icon (using D-Bus) is used by default instead of the
legacy tray icon. Application start delay/sleep hacks should no longer be
needed (#1526).
- Wayland: Improved clipboard access.
- Wayland: Fixes selection/clipboard synchronization.
- Windows: Any application instance is now closed automatically before
installation.
# v5.0.0
## Added
- Search matches similar accented characters (#1318). For example, searching
for "vacsina" would also show items containing "väčšina".
- If the clipboard tab is renamed, clipboard will be still stored in the
renamed tab. Similarly if a specific tab is set for tray menu. This basically
modifies `clipboard_tab`, `tray_tab` options when renaming tabs.
- New predefined command to clear the current tab.
- Tabs can be reordered in Preferences (in addition to tab bar/tree).
- Tabs can be reordered from command line or a script. For example:
copyq 'config("tabs", ["&clipboard", "work", "study"])'
- New buttons can move commands, tabs and plugins in configuration to top and
bottom with a single click. This previously required dragging item to the
top/bottom or multiple clicks on the move up/down buttons.
- Script function `dialog()` supports non-editable combo box. For example:
var choice = dialog('.combo:Select', ['a', 'b', 'c'])
- Script function `dialog()` restores last position and size of dialog
windows with matching title (set with `.title`).
- Syntax highlighting for more script keywords.
- New script class `ItemSelection` allows more powerful, consistent, safe and
fast handling of multiple items. Examples:
// move matching items to the top of the tab
ItemSelection().select(/^prefix/).move(0)
// remove all items from given tab but keep pinned items
ItemSelection(tabName).selectRemovable().removeAll();
## Changed
- Simpler lock file mechanism is used instead of a system semaphore and shared
memory lock (#1737). This allows to support more platforms.
- Editor font from Appearance settings is used for the edit widget in Command
and Action dialogs (#1757).
- Theme does not modify the scrollbar in item list by default (#1751).
## Removed
- Windows: Migrating old configuration from registry to file format is no
longer supported.
## Fixed
- Icons are rendered properly in About dialog. This uses correct icon font
from the app instead the one installed on the system.
- Correct UI layout direction is used depending on the selected language
(#1696).
- Automatic commands that use regular expressions for matching
window title or clipboard content are imported properly
(hluk/copyq-commands#45).
- Native notifications are updated correctly when using existing notification
ID.
- Bash completion script is installed to a correct path.
- macOS: Fixes pasting/copying when using different keyboard layouts (#1733).
- macOS: Avoids focusing own window before paste operation (#1601).
- macOS: Tries to paste directly to the process ID if the window ID is not
available (#1395) (#1686).
# v4.1.0
- Old notification system can now be used instead of native/system
notifications (#1620). This can be disabled in Notifications tab in
Preferences.
- Additional configuration file for notifications will not be created
automatically (#1638).
- In scripting, `console` object can be used for logging, measuring elapsed
time and asserting conditions.
- `plugins.itempinned.mimePinned` contains item data format for pinned items
(item is pinned if it contains the format).
- Command completion menu contains more complete list of script
objects/function and better description.
- Action dialog command, `action()` and commands (if "Content"/filter regular
expression is unset) now do not replace `%2` through `%9`. This allows
passing URLs without requiring to escape encoded characters like `%20` or
`%3A`.
- Syntax highlighting for hexadecimal and boolean values in the command editor.
- Fix moving the main window to different display/screen (#1624).
- Windows: Native notifications are disabled on Windows 7 (#1623). This fixes
crash because of unsupported features.
- Windows: Fixed crash when loading some themes (#1621).
- Wayland: Restores last stored geometry for a window (since getting current
screen does not work).
- MinGW Windows builds are available again (without native notification
support).
# v4.0.0
## Features
- Synchronization plugin newly keeps order of new items consistent between
multiple application instances (#1558). Newly added items in one instance
will appear at the top of other instances.
- Search now finds separate words if regular expressions are disabled (#1569).
Searching for "foo bar" will find items containing both "foo" and "bar" and
the relative position of words no longer matter.
- System notification popups are now used instead of own implementation.
- Item rows in main window and tray menu are now indexed from one instead of
zero by default (#1085). This can be reverted to the old behavior using
command `copyq config row_index_from_one false`.
- A tag can be marked as "locked" in configuration. Items with such tags cannot
be removed until the tag is removed or "unlocked".
- Command line completion for bash (#1460). Thanks, Jordan!
- History combo box is focused when Action dialog opens to easily recall recent
commands. Note: Focusing combo boxes is not supported on macOS.
- Web plugin has been completely dropped (unmaintained with performance and
possible security problems). Simple HTTP rendering is still supported by Text
plugin.
- Advanced option `window_paste_with_ctrl_v_regex` to change default paste
shortcut Shift+Insert to Ctrl+V for specific windows (only on Windows and
Linux/X11). This is regular expression matching window titles.
- New advanced options allow to set intervals and wait times for copying,
pasting and window focus:
* `script_paste_delay_ms` - delay after `paste()`, default is 250ms (#1577)
* `window_wait_before_raise_ms`
* `window_wait_raised_ms`
* `window_wait_after_raised_ms`
* `window_key_press_time_ms`
* `window_wait_for_modifiers_released_ms`
- Format "text/plain;charset=utf-8" is now preferred to "text/plain".
- FakeVim: Auto-indents when adding new lines.
## Scripting
- New scripting engine. This adds some new functionality, better ECMAScript
support, improved performance and would allow Qt 6 support in the future.
- Argument `--start-server` to both starts the app if not yet running and runs
a command (#1590). For example, `copyq --start-server show` would show main
window even if the app was not started yet.
- Accessing a missing plugin from script throws an human-readable error and
show an popup if uncaught (for example, "plugins.itemtags" could throw
"Plugin itemtags is not installed").
- Script function `setPointerPosition()` throws an error if it fails to set the
mouse pointer position.
- Fixes for `NetworkReply` objects to properly fetch data when needed (#1603).
Script functions `networkGet()` and `networkPost()` now wait for data to be
fetched. New script functions `networkGetAsync()` and `networkPostAsync()`
can be used to make asynchronous network request. Property
`NetworkReply.finished` can be used to retrieved completion status of a
request.
- New script function `styles()` to list possible application styles and option
`style` to override the default or current style.
## Platforms
- Wayland support, notably clipboard access and window size restoring.
- Windows: Builds are now 64bit (built by Visual Studio tools).
- Linux: Selecting the app icon in the desktop environment using the installed
entry in the application menu or launcher, shows main window immediately.
Previously, the app started silently in tray or minimized state.
- Linux/X11: Fixes copying from VirtualBox (#1565).
- macOS: Fix version information (#1552).
## User Interface
- The default theme is kept consistent with system theme (#1613). This also
allows to use new special placeholders like `default_bg` and `default_text`
in custom style sheet files.
- Command dialog always shows the command type at top.
- Updated icons (Font Awesome 5.15.3).
- FakeVim: Command line not supports better text interaction (select, copy,
cut, paste).
## Fixes
- Fix crashed with some custom system themes (#1521).
- Fix importing old saved tabs/configuration (#1501).
- Fix trailing spaces in copied commands.
- Fix filtering shortcuts in preferences.
- Fixes for window geometry restoring.
- Tray menu items are updated only just before the menu is shown.
- Avoid storing "text/richtext" by default since displaying of this format is
not supported.
- Better performance when updating synchronized items.
- Various appearance and theme fixes (#1559).
## Various
- Code base now follows C++17 standard.
- GitHub Actions now continuously build and test for Linux and macOS, and
provide development builds for macOS.
# v3.13.0
- Newly, if a global shortcut is triggered when the main window is active, the
command will be executed with item selection and item data available (#1435).
- New `focusPrevious()` script function to activate window that was focused
before the main window.
- Export now write data to a temporary file before saving.
- Display command are now also applied on item preview (e.g. to enable syntax
highlighting in the preview).
- New command line option "tray_menu_open_on_left_click" to check default mouse
button behavior for tray icon (`copyq config tray_menu_open_on_left_click
true`).
- New command line option "activate_item_with_single_click" to activate items
with single click (`copyq config activate_item_with_single_click true`).
- New command line options "filter_regular_expression" and
"filter_case_insensitive" to change the item search behavior.
- New command line option "native_menu_bar" to disable native/global menu bar
(`copyq config native_menu_bar false`).
- Updated icons (Font Awesome 5.15.1)
- Improved performance of loading the icon font.
- Fix crash when exporting large amount of data (#1462).
- Fix entering vi search mode (#1458).
- Fix size of scrollable text area in item preview (#1472).
- OSX: Broken native/global menu bar was replaced by default with application
menu bar (#1444). This can be changed with `copyq config native_menu_bar true`.
- OSX: Mouse click on tray icon is now handled similarly to other platforms.
This can be changed with `copyq config tray_menu_open_on_left_click true`.
# v3.12.0
- Unsaved data are now saved whenever application is unfocused, otherwise
immediately after an item is edited and saved or after ~5 minute intervals if
items change. These intervals can be configured - use `copyq config` to list
options with `save_delay_` prefix. For example, disable storing after an item
is added (only when app is unfocused, exits or tab is unloaded):
copyq config save_delay_ms_on_item_added -1
- Filter field in commands can now modify menu items. This is done by setting
properties to "menuItem" object. Example:
copyq:
menuItem['checkable'] = true
if (plugins.itempinned.isPinned.apply(this, selectedItems())) {
menuItem['checked'] = true
menuItem['text'] = 'Unpin'
menuItem['color'] = '#f00'
menuItem['tag'] = 'X'
} else {
menuItem['checked'] = false
menuItem['text'] = 'Pin'
menuItem['icon'] = ''
}
- Application icon will no longer automatically change when there is an ongoing
operation (i.e. the icon snip animation). This caused performance issues in
some environments and it was not tested automatically so it often broke. When
clipboard storing is disabled the icon only changes opacity slightly.
- New `preview()` script function shows/hides item preview.
- Avoid terminating application on SIGHUP (#1383)
- Use brighter bar for pinned items with a dark theme (#1398)
- Improved notification text line wrapping (#1409)
- Improved layout when showing many shortcut buttons (#1425)
- Fix indentation when importing commands with CRLF (#1426)
- Fix using the configured notification font (#1393)
- Fix initial item size (avoid scroll bars)
- Fix decrypting item with note
- Fix hiding windows after changing "Always on Top" option
- Fix tool bar flickering when browsing items
- Fix crash when destroying main window
- Fix rare crash when menu items change
- FakeVim: Improved completion menu control with Vim emulation
- FakeVim: Always start in normal mode
- FakeVim: Fix searching backwards
- Windows: Paste operation is now postponed until user releases shortcut
(#1412). This works better than releasing the shortcut keys automatically and
is consistent with behavior on Linux.
- Windows: Fix SSL/TLS errors; `networkGet()` should now work with `https`
protocol
- Windows: Fix native GUI style (#1427)
# v3.11.1
- Fix scrolling in selected text items (#1371)
- Fix using application icon font instead of a system-installed on (#1369)
- X11: Fix checking correct text before selection synchronization
# v3.11.0
- Tab character size can now be set (number of spaces) and maps more accurately
to space character width (#1341). The default value is 8 spaces which is
smaller than before. This can be changed on command line:
copyq config text_tab_width 4
- New `move()` script function moves selected items within tab.
- New `menuItems()` script function creates custom menus.
- CSS stylesheet files to fully customize appearance
- Allow keyboard navigation in item preview dock
- "Show Preview" is now available in File menu instead of Item menu
- Shortcuts Ctrl+P and Ctrl+N selects previous/next action in Action dialog.
- New synchronized item/files are now added to item list ordered alphabetically
by filename which is faster and more consistent on multiple platforms than
ordering by modification-time (#833).
- Improved performance when synchronizing items/files
- Non-owned synchronized files at the end of item list are now dropped (but not
deleted) if the list is full.
- Updated icons (Font Awesome 5.13.0)
- Simpler item scrollbar style
- Omit showing new notification under mouse pointer (#1310)
- Duplicate "CopyQ Error" notification are not shown
- Bind x to Delete in Vi style navigation mode
- Left/Right arrow keys now work in FakeVim editor mode by default
- FakeVim editor mode now supports cutting text to given register
- If FakeVim editor mode is active in a dialog, Esc key allows to close the
- Consistent window and dialog titles in application (" - CopyQ" suffix)
dialog.
- Fix opening tray menu with empty search
- Fix search in main window and tray with different keyboard layouts (#1316)
- Fix restoring search when closing internal editor
- Fix crash when synchronizing pinned items/files (#1311)
- Fix pasting synchronized file instead of its content (#1309)
- Fix enabling menu items with filters in commands (#1284)
- Fix commands for removing tags from items (#1332)
- Fix copying from item preview dock (#1326)
- Fix position of main window on current screen (#1216)
- Fix copying "text/plain;charset=utf-8" format as a text (#1324)
- Fix preview search highlight in Appearance configuration (#1354)
- Fix hover/mouse-over style for items (#1347)
- Fix wrapping long notification text
- Fix jitter when scrolling in item list
- Fix item width
- X11: Fix re-getting clipboard content after aborted (#1356)
- Windows: Use builds with Qt 5.13
# v3.10.0
- Use environment variable `COPYQ_DEFAULT_ICON=1` to show the original
application icon instead of the one from current icon theme.
- Avoid updating menu too unnecessarily
- Drop using deprecated Qt API and require at least Qt 5.5 (meaning Ubuntu
14.04 and Debian 8 are no longer supported)
- Use non-native color and font dialogs which fixes showing these in Gnome/Gtk
- Fix GUI with fractional scaling
- Fix updating tray menu (remove empty sections)
- Fix editing synchronized file content instead of its path
- OSX: Omit preventing system from entering the sleep mode
- X11: Improve clipboard/selection synchronization
- X11: Avoid reading clipboard in parallel in the monitor process
# v3.9.3
- New `loadTheme()` script function loads theme from INI file.
- Currently selected item stays on top on PageUp/Down (less jittery list view
scrolling)
- Performance improvements: Updates GUI only when necessary; dedicated
processes to run menu filters and display commands; reloads configuration
once when setting multiple options with `config()`
- Skips using a command from a disabled plugin
- Logs information on slow menu filters and display commands
- Fix hiding item preview when disabled (caused an empty window to be shown)
and when no items are selected
- Fix taking screenshots on multiple monitors
- Fix duplicate show/hide tray menu items
- Fix moving synchronized items to top when activated
- Fix calling `onExit()` second time when on shutdown
- Fix removing empty actions from history in Action dialog
- Fix updating version from Git when rebuilding
- OSX: Fix refocusing correct main window widget
- Windows: Use Qt 5.12.5 builds (MinGW 7.3.0 32-bit, msvc2017 64-bit)
# v3.9.2
- Fix unnecessary tab reloading after expired.
- Fix repeated menu updates.
- Fix loading tabs with an empty item
- Fix initializing expire timeout (it was always 0 or 1 minute)
# v3.9.1
- Commands are moved to a separate configuration file "copyq-commands.ini".
- Horizontal tabs in the configuration dialog were replaced with a list of
sections so it's possible to view all of the sections even in a smaller
window.
- New option `hide_main_window_in_task_bar` to hide window in task bar can be
set using `copyq config hide_main_window_in_task_bar true`.
- New `logs()` script function prints application logs.
- New `clipboardFormatsToSave()` script function allows to override clipboard
formats to save.
- Some hidden options can be modified using `config()` script function.
- Font sizes in items and editor are limited to prevent application freeze.
- Application icons are cached so as to avoid creating icons for the snip
animation again.
- Fix restoring tabs with some non-ASCII characters
- Fix opening window on different screen with different DPI
- Fix 100% CPU utilization on wide screens (5120x1440)
- Fix icon size and GUI margins in Tabs configuration tab
- X11: Fix stuck clipboard access
- X11: Faster selection synchronization
- OSX: Prevent showing font download dialog
- OSX: Fix clipboard owner window title
# v3.9.0
- Large images in clipboard are no longer automatically converted to other
formats - it caused slowdowns and was mostly unnecessary since some usable
image format was provided.
- The server/GUI process now provides the clipboard and no other process is
started (i.e. "copyq provideClipboard"). The other process helped to unblock
GUI in rare cases when an application requested large amount of clipboard
data, but it could cause some slowdowns to start the process.
- Closing external editor focuses the edited item again (if the editor was open
from main window).
- Only Global Shortcut commands are shown in tray menu.
- Separate Global and Application shortcuts into tabs in configuration dialog.
- New per-tab configuration allows disabling storing items on disk and limiting
number of items.
- New script function unload() and forceUnload() allow unloading tabs from main
memory.
- Tabs synchronized with a directory on disk are updated only when needed. An
update happens regularly when synced tab has focus or item data and are too
old. Update interval is 10s and can be changed by setting env variable
COPYQ_SYNC_UPDATE_INTERVAL_MS (in ms).
- X11: New option allows to disable running automatic commands on X11 selection
change.
- Fix rare crash on exit.
- Fix value returned by filter() after it's hidden
- Fix memory leak (tool bar and menu items were not properly cleaned up)
- Fix crash when opening content dialog with many formats
- OSX: Fix pixelated UI rendering on retina displays.
- Windows: Fix blocking Ctrl, Shift and other modifier keys after invoking
paste action. The downside is that it's no longer possible to invoke command
assigned to a global shortcut repeatedly without releasing these keys.
- X11: Fix high CPU usage when mouse selection cannot be accessed.
- X11: Fix assigning global shortcuts with keypad keys
# v3.8.0
- Custom settings from scripts (using settings() function) are now saved in
"copyq-scripts.ini" file in configuration directory. Existing configuration
needs to be moved manually from "[script]" section in the main configuration
file ("copyq info config" command prints the path) to "[General]" section to
the new file (in the same directory).
- Correct clipboard owner (window title) is now used when the window is hidden
after copy operation (e.g. password manager copies password and hides its
window immediately).
- New script functions onStart and onExit allow to defined commands run when
the application starts and exits.
- New script functions pointerPosition and setPointerPosition to get/set mouse
cursor position on screen.
- New script callback onClipboardUnchanged called when clipboard changes but
monitored content remains the same.
- Block default shortcut overridden by a command while its filter command needs
to run.
- Item selection is not cleared when main window hides in response to
activating an item or automatically when unfocused.
- Clipboard dialog opens much faster and retrieves clipboard data only when
needed.
- Clipboard dialog contains special clipboard formats and the whole list is
sorted - plain text first, HTML, other text, application, application
specific (`application/x-`), special (uppercase).
- Detect encoding for other text formats.
- Method text for ByteArray returns correctly formatted text from unicode
encoded data (e.g. UTF-8).
- Show pin and tag menu items even if shortcut is not assigned (can be disabled
completely in Command dialog).
- Hide encrypt/decrypt commands when keys for Encrypt plugin don't exist.
- Command list is focused when Command dialog opens; the less important "Find"
field is smaller and moved below the list.
- Process manager is completely redone and the dialog is no longer created at
application start (faster application start, smaller memory footprint).
- Process manager has filter field for searching for commands.
- Process manager has new column showing error message.
- Process manager has color status icons for running, starting and failed
processes.
- Next/Previous formats are no longer available (were rarely used and
untested).
- Updated donation link: https://liberapay.com/CopyQ/
- FakeVim, if enabled, is used for other multi-line text fields in the
application (e.g. item notes, command editor).
- FakeVim, if in a dialog, binds save and quit command to the dialog buttons -
`:w` for Apply, `:wq` for OK, `:q` for Cancel.
- FakeVim status bar shows an icon for errors and warnings.
- FakeVim now handles set commands correctly.
- FakeVim text cursor is gray if the editor is not focused.
- Fix opening image editor for encrypted items.
- Fix opening SVG image editor if the bitmap one is unset.
- Fix stopping client processes properly.
- Fix showing main window under mouse pointer (with showAt function).
- Fix client crash when calling a method without instance (e.g. command "copyq
ByteArray().size").
- OSX: Fix opening main window above full screen window.
- OSX: Fix selecting item with Up/Down keys when searching.
- X11: Fix setting wrong window title for own clipboard.
- X11: Fix synchronizing selection if the change is quick.
- X11: Fix tray icon on KDE.
# v3.7.3
- Search and item selection reset when main window is closed
- Updated icons (Font Awesome 5.6.3)
- Tray icon animation is not triggered if no automatic commands are run.
- Improved color themes on some systems
- Omit auto-hiding main window when it has a dialog open
- Fix transparency of some icons
- Fix size of menu when open on different screen
- Fix window geometry restore and rendering issues
- Fix auto-hide main window (e.g. on Gnome when using Activities)
- X11: Fix small tray icon on Gnome
- X11: Fix icon mask file name according to standard ("copyq_mask")
# v3.7.2
- Backspace deletes last character in tray menu search instead of clearing it
completely
- Window title shows "<ITEMS>" label when non-text items are copied
- Command dialog uses simpler layout for easier command editing
- Command dialog shows simple command description
- Remove empty lines at the end of copied and exported commands
- New script functions to calculate hash: md5sum, sha1sum, sha256sum, sha512sum
- Retrieving clipboard data is interrupted if it's slow
- Editing commands no longer causes high CPU usage
- Completion menu for command editor is resized once
- Items are rendered faster and are shown with incorrect size initially while
scrolling instead of showing empty items
- When Action dialog opens, the command editor is focused instead of the combo
box containing command history (this consistent with default focus behavior
on OS X)
- Clipboard monitor process loads configuration only at start
- Autostart option now works in the Flatpak package
- OSX: Application no longer crashes when using the main window close button
- X11: TIMESTAMP clipboard format is used to avoid retrieving unchanged content
unnecessarily
- X11: Data installation path can be overridden with CMake options
(CMAKE_INSTALL_DATAROOTDIR and DATA_INSTALL_PREFIX)
- X11: Store current window title with new clipboard data right after
clipboard-change signal is received
# v3.7.1
- Store formats specified in Format field in automatic commands
- Fix restoring geometry on screens with different scaling factors
- X11: Fix restoring geometry on i3 window manager
- X11: Fix the first clipboard/selection signal when unchanged
# v3.7.0
- New option to show notes beside item content
- Removed option to show icon instead of notes
- Only plain text is Copied/Pasted from menu if Shift key is pressed
- Customizable shortcut for Item context menu
- Remove unmaintained Data plugin (can be replaced with a script)
- Allow to set icon to tab groups in tree view
- Allow export even if a tab group or an unloaded tab is selected
- Automatic commands are no longer run in clipboard monitor context
- Omit aborting monitor by calling abort() from automatic commands
- Omit aborting automatic commands by changing configuration
- Updated icons (Font Awesome 5.4.2)
- Fix sizes of items with notes and when using Web plugin
- Fix icons alignment
- Fix setting different font weights in Appearance configuration
- Fix button sizes in Appearance configuration
- Fix position of the context menu for large items
- Fix server crash when a client disconnected while processing its request
- Fix crash when changing icon or renaming unloaded tab
- Fix handling of incorrect editor command
- X11: Faster and safer clipboard checking and synchronization
- X11: Prioritize checking clipboard before selection
# v3.6.1
- Omit displaying notes twice when "Show simple items" is enabled
- Fix broken tab decryption
# v3.6.0
- Invoking search with a shortcut reuses last search expression
- Exiting from search (ESC) doesn't unselect found item
- `COPYQ_SETTINGS_PATH` environment variable overrides default config path
- Merge top item with same new clipboard text
- Check clipboard after start
- Animate app icon when a clipboard changes or a client calls some functions
- Use gpg for encryption if gpg2 is unavailable
- Faster tray and context menu updates
- Close dialog() after client process exits
- Display system, arch and compiler info when using version()
- Tests are about 2x faster
- Updated icons (Font Awesome 5.3.1)
- Fix search field icon position
- Fix overriding `onClipboardChanged()` and similar script functions
- Fix closing client processes
- Fix deleting temporary timer object
- Fix handling return values and abort() in afterMilliseconds()
- Fix icon font sizes and omit using system-installed font
- Fix showing <EMPTY> label
- X11: Fix showing window after using close button on Qt 5.11
- X11: Fix crash when UI scaling is too large
- Windows: Fix removing old DLLs with installer
# v3.5.0
- Icon for global shortcuts in Shortcut configuration tab
- Simpler icons (smaller installation footprint)
- Faster copying and pasting from the application
- Faster and simpler invocation for commands run automatically
- More compact Process Manager dialog
- Scriptable function select() waits for clipboard to be set
- Image masks for colorizing icons ("icon-mask" and "icon-busy-mask")
- Improved logging
- Updated icons (Font Awesome 5.0.13)
- Fix showing icons when "System icons" is enabled (Windows and OS X)
- Fix initial setup for encryption
- Fix storing SVG images and other XML formats with text
- Fix stopping clipboard monitor and other processes at exit
- Fix restarting monitor whenever script commands change
- Fix updating status in Process Manager
- Fix using tab() multiple times from script
- Fix building for Qt 5.11
- Windows: Use Qt 5.6 LTS version for released binaries
- OSX: Fix URI list and UTF-16 text clipboard formats
- X11: Faster clipboard/selection synchronization
# v3.4.0
- Fix icon sizes in menu
- Fix showing dialog() above main window
- Fix closing clipboard monitor and provider on exit
- Safer data serialization and communication protocol
- Smoother colorized application icon
- Faster pasting to target window
- Run script commands in own context
- Omit showing same notification multiple times
- Omit handling text/uri-list by default
- OSX: Fix opening main window from tray menu
- OSX: Fix exporting configuration
- OSX: Fix focusing own windows for pasting
- Linux: Fix crashing on Wayland
- X11: Fix showing incorrect clipboard content
# v3.3.1
- Mark tray menu item in clipboard
- Scroll view when dragging items to top or bottom
- Always use current tab name in new tab dialog
- Update clipboard label in tray menu immediately
- Raise last window after menu is closed
- Paste commands correctly even if pasted into text edit widget
- Unload unneeded tabs after exported/imported
- Omit slow data compression on export
- Fix queryKeyboardModifiers() script function
- Fix settings autostart option from script
- Fix warnings when trying to load bitmap icons as SVG
- OSX: Fix settings global shortcuts with some keyboard layouts
- OSX: Fix tray menu icon size
- X11: Fix Autostart option
- X11: Fix crash when icon is too big
- X11: Omit resetting empty clipboard and selection
- X11: Omit overriding new clipboard with older selection content
# v3.3.0
- Add option for searching numbers in item list and tray menu
- Use exception instead of return code for exportData()/importData()
- Draw icon shadow (for internal icon font)
- Remove support for Qt 4, require Qt >= 5.1.0
- Fix storing only non-empty clipboard items
- Fix opening web browser from script with open()
- Fix exiting clipboard provider process when not needed
- Fix exportData()/importData() with relative file paths
- Fix SVG app icon resolution in some panels
- Fix closing window after a menu is closed and window is unfocused
- Fix icons for command error notifications
- Fix warnings when using system icons
- Linux: Fixes for AppData, desktop and flatpak files
- OSX: Fix pasting items
- OSX: Log errors when global shortcut registration fails
# v3.2.0
- Add option to close main window when unfocused
- Add script command type for enhancing scripting API and CLI
- Add display command type for overriding item display data
- Add documentation for plugins scripting API
- Add script function afterMilliseconds()
- Add isGlobalShortcut property to commands
- Allow to set global and menu command shortcuts in preferences
- New icon appearance (Font Awesome 5)
- Search in icon dialog (just start typing text)
- Improve scripting API for plugins
- Show command type with icon in command dialog
- Allow to set tray and window icon tag
- Allow to store MIME types with spaces
- Allow to set negative offsets for notifications
- Allow to override clipboard handling with script commands
- Script functions add() and insert() can add multiple items
- Hide vertical scroll bar in text items if not needed
- Hide main tool bar when internal editor is visible
- Run scripts safely in client process
- Omit closing internal editor if item changes
- Smoother scrolling and item browsing
- Fix accepting dialog() on Ctrl+Enter and Enter
- Fix sleep() timing out before interval
- Fix Dir().separator() return value type
- Fix item rendering
- Fix window title and tool tip for multi-line clipboard
- Fix tool bar rendering while editing an item
- Fix scaling pixel font sizes in HTML items
- Fix rendering item number in top left corner
- Fix rendering drag'n'drop preview on high-DPI screens
- Fix rendering notification icon on high-DPI screens
- Fix disabling antialiasing
- Fix opening menu/window on left screen (negative coordinates)
- Linux: Fix merging X11 selection if the first item is pinned
- Linux: Fix displaying tray menu on KDE/Plasma
- Windows: Fix negative item size warnings
# v3.1.2
- Don't show mouse cursor for selecting text after clicking on item
- Fix rendering background for item preview dock
- Fix showing main window under mouse pointer
- Fix loading tray icon
- Fix scrollbar interaction in items
- Fix performance for eliding huge text
- Fix correct mouse pointer in text items
- itemtext: Render plain text instead of empty HTML
- itemtext: Always limit text size in items
- itemweb: Use some sane settings for items
- itemencrypted: Copy to selection with copyEncryptedItems()
# v3.1.1
- Improve performance for items with long lines
- Linux: Fix tray icon
# v3.1.0
- Add "Paste current date and time" predefined command
- Add "Take screenshot" predefined command
- Add scriptable function queryKeyboardModifiers()
- Add scriptable function screenNames()
- Add scriptable function isClipboard()
- Add scriptable function toggleConfig()
- Add scriptable function iconColor()
- Allow to change icon color using COPYQ_SESSION_COLOR
- Expand text ellipsis if selected
- Avoid copying ellipsis if selected and copy rich text only if needed
- Improved command widget layout
- Copy encrypted items as hidden in UI
- Open external editor if internal fails
- Fix item rendering on high DPI screens
- Fix tray icon on high DPI screens
- Fix taking screenshots on multiple monitors and on high DPI screens
- Fix flicker when rendering items for the first time
- Fix icon layout for notes
- Fix showing icon if notes are empty
- Fix copying/drag'n'dropping files into a synchronized tab
- Fix long message alignment in notifications
- Fix activating simple items with double-click
- Fix styling of current and selected items
- Fix setting clipboard immediately after start
- Fix size of items with tags
- Fix moving multiple items to clipboard and to the top of the list
- Fix updating global shortcuts with setCommands()
- Fix clearing search after opening internal editor
- Fix aborting script execution
- Fix black scroll bar in items
- Fix completion popup resizing
- OSX: Fix some memory leaks
- Linux: Add manual pages
- Linux: Fix getting icon for non-default session from theme
- Linux: Fix settings tab name in KDE/Plasma
- Linux: Fix restoring with session manager
- Windows: Add pinned items to installer
- Windows: Fix saving tab with another plugin
- Windows: Fix pasting to a window
- Windows: Fix setting foreground window even if app is in background
# v3.0.3
- Added new documentation
- Added option to disable auto-completion for commands
- Improved image thumbnail rendering
- Fixed opening window on current screen
- Fixed item rendering when searching
- Fixed tab reloading and closing external editor
- Fixed image sizes
- Fixed loading plugins on OS X
- Fixed selecting area in screenshot
- Fixed rendering and showing tooltip for notes
- Fixed hang on exit when using QtCurve theme
# v3.0.2
- Added script functions for listing synchronized tabs and their paths
- Fixed showing window on current screen
- Fixed notification position with multiple screens
- Fixed rendering items when scrolling
- Fixed pasting from main window after switching tabs
- Fixed copy/paste to some apps on OS X
- Fixed focusing editor when closing completion popup on OS X
- Fixed setting temporary file template from script
# v3.0.1
- Install themes on OS X
- Improve pasting to current window
- Fix crash when the first tab is not loaded
- Fix crash when reloading tab after closing editor
- Fix item rendering and UI elements for high DPI displays
- Fix window focus after closing menu or main window on OS X
- Fix opening main window on current space on OS X
- Fix pasting to some windows on OS X
- Fix navigating item list
- Fix getting boolean from checkbox in dialog()
- Fix default move action for drag'n'drop
- Fix exiting on logout when tray is disabled
# v3.0.0
- Pinned and protected items
- Export/import tabs, configuration and commands in one file
- Create and modify commands from script
- Create temporary files from script
- Create notifications with buttons from script
- Take screenshots using script
- Allow to process lines on stdout from execute() scriptable using a function
- Safer and faster encrypt/decrypt commands (need to be re-added)
- Improved menu scriptable function
- Improved icon sharpness
- Improved plugin architecture
- Improved logging and displaying log
- Performance and memory consumption improvements
- Implemented copy() on OS X
- Fixed focusing menu and windows on OS X
- Fixed configuration folder path for portable version on Windows
- Fixed opening menu for a tab
- Fixed using correct GPG version for encryption
- Fixed tray menu position in KDE/Plasma
# v2.9.0
- Set text style in editor
- Search in editor
- Quick help in completion popup menu for commands
- Easier text selection in item preview
- Show whole text and unscaled image in item preview
- Improved pasting to windows on Linux/X11
- Fixed global shortcuts at application start on Linux/X11
- Fixed closing application from installer on Windows
- Fixed showing item preview at start
- Fixed saving position of new tabs and tab lists
# v2.8.3
- Search items from tray menu
- Added support for animated gifs (played when selected)
- Added special formats for automatic commands to sync and store clipboard
- Added auto-completion for command editor
- Added scriptable variables for MIME types
- Fix encryption with new OpenPGP
- Fix passing big data to commands on Windows
# v2.8.2
- Simplify appearance of items with notes and tags
- Support for drag'n'dropping images to more applications
- Added list widget for custom dialog
- Fixed opening windows on current screen
- Fixed tray icon appearance on Linux
- Fixed focusing tray menu from command
- Fixed dialog button translation on Windows
- Fixed passing big data to commands
# v2.8.1
- All Qt messages are logged
- Fixed and improved commands for Tags plugin
- Fixed removing last items when changing item limit
- Fixed library paths for OS X
- Fixed pasting items on Windows
- Fixed copying from script on Windows
# v2.8.0
- Insert images in editor
- Show simple items options
- Item preview window
- Move to Qt 5 on Windows and newer Linux distros
- Faster item content listing
- Simple filter for Log dialog
- Smooth icons on OS X
- Fixed system icons
- Fixed pasting animated images
- Fixed occasional crashes when finalizing commands with Qt 5
- Fixed opening log speed on Windows
- Lithuanian translation
# v2.7.1
- Colorize items with command
- Drag'n'drop items in selection order
- Fixed item selection with "next" and "previous" commands
- Fixed encrypting/decrypting items on Windows
- Fixed occasional client crashes at exit
- Fixed editor command on OS X
# v2.7.0
- Log accessible from GUI
- Performance and memory usage improvements
- Added scriptable function to set current tab (setCurrentTab())
- Added scriptable function to modify new items (setData())
- Appearance fixes
- Simplified window management
- Improved pasting to current window on Windows
- Window geometry fixes
- Command with Enter shortcut overrides item activate action
# v2.6.1
- Moved configuration from registry on Windows
- Fixed shortcuts on Windows
- Fixed window geometry restoring
# v2.6.0
- Show item notes in tray and window title
- Removed broken console executable on Windows
- Dutch translation
- Added env() and setEnv() to access and modify environment variables
- Access shortcut which activated command
- Fixed closing the application at shutdown on Windows
- Fixed some global shortcuts on Windows
- Fixed capturing some shortcuts
# v2.5.0
- Smarter tab name matching (ignore key hints '&')
- Fixed omit passing global shortcuts to widgets
- Fixed autostart option on Ubuntu
- Fixed window geometry saving and restoring
- Fixed reading binary input on Windows
- Fixed clearing configuration
# v2.4.9
- Added new light theme
- Added scriptable function focused() to test main window focus
- Customizable shortcuts for tab navigation
- Extended item selection
- Fixed tab expiration and updating context menu
- Fixed passing text to command from action dialog
# v2.4.8
- New command to show main window under mouse cursor or at a position with custom size
- Hide clipboard content when "application/x-copyq-hidden" is "1"
- "Copy next/previous item" command waits for clipboard to be set
- Fixed updating window title and tray tool tip on X11
- Fixed modifying multiple commands in Command dialog
- Fixed implicit date to string conversions
# v2.4.7
- Separate dialog for command help
- Added scriptable function visible() to check main window visibility
- Linux: Install bitmap icons for menus
- Linux: Install AppData file
- Allow to search for specific MIME types stored in items
- Menu items and customizable shortcut for cycling item format
- Fixed icon alignment
- Fixed moving tabs with Qt 5
- Fixed overriding socket file path (Linux and OS X)
- Fixed "Paste as Plain Text" command (Windows and OS X)
- Fixed tab tree layout and changing icons for tab groups
- Fixed URL encoding
# v2.4.6
- Fixed crash when removing command
- Fixed encryption/decryption selected items
- Fixed reading from standard input
- GUI fixes for high-DPI displays
# v2.4.5
- Option to save/restore history for filtering items
- Clipboard changes with unchanged content is ignored
- Notify about unsaved changes in command dialog
- Use application icons from current icon theme on Linux
- Simple error checking for user scripts
- Fix blocked system shutdown on Linux/X11
# v2.4.4
- Option to choose tab for storing clipboard
- Fixed overriding mouse selection (Linux/X11)
- Fixed window title updates from user commands
- Fixed toggling window visibility with Qt 5
- Minor GUI improvements and user command fixes
# v2.4.3
- Plugin for tagging items
- Plugins can provide script functions and commands
- Improved automatic commands execution
- Fixed gradients, transparency and other style improvements
- Fixed decryption with newer version of GnuPG
- Fixes for Qt 5 version
# v2.4.2
- Send input data to execute()
- Better clipboard encoding guessing
- Set tab icon from commands using tabicon()
- Fixed window title encoding on Windows
- Fixed restoring window geometry
- Performance fixes
- Various bug and usability fixes
- New logo
# v2.4.1
- Added scriptable classes File and Dir
- Added scriptable function settings() for saving custom user data
- Improved dialog() command
- Windows: Qt translated strings bundled with application
- Fixed %1 in command
- Fixed building with tests and Qt5
# v2.4.0
- Separate dialog for user commands and global shortcuts
- Search for item by row number
- Command highlighting
- More shortcuts can be mapped on Windows and X11
- New "copy" command to copy from current window to clipboard
- New "dialog" command to show dialog with custom input fields
- Fixed crash on log out on Windows
- Fixed clipboard monitoring on Windows
- Fixed argument encoding from client on Windows
- Fixed log output when printing messages from multiple processes
- GUI fixes
# v2.3.0
- Support for OS X
- Japanese translation
- Custom icons for tabs
- Show item count next to each tab name (optional)
- Added Process Manager for running and finished commands
- Scripting improvements
- Nicer format for copied user commands
- GUI fixes
# v2.2.0
- Custom system shortcuts for any user command
- Drag'n'drop items to tabs
- Options to set position and maximum size for notifications
- Option to open windows on same desktop
- Weblate service for translations (https://hosted.weblate.org/projects/copyq/master/)
- Commands input and output is UTF-8 only (this fixes encoding issues on Windows)
- Scripting engine improvements
- Various GUI improvements and fixes
- Fix main window position in various X11 window managers
- Fix crashing with Oxygen GUI style
- Fix storing images from clipboard on Windows
- Various GUI improvements and fixes
# v2.1.0
- French translation
- Save/load and copy/paste user commands
- Easier way to write longer commands and scripts
- Remove formats in clipboard and item content dialogs
- Command "toggle" focuses main window if unfocused (instead of closing)
- Choose log file and amount of information to log
- Lot of bugfixes and GUI improvements
# v2.0.1
- Initial OS X support
- Configuration moved into installed directory in Windows
- Change language in configuration
- New tool bar with item actions
- Option to apply color theme in tabs, tool bar and menus
- Allow to match items using a command
- Focus output item of the last executed command
- Allow to cancel exit if there are active commands
- Removed option to hide menu bar (inconsistent behavior)
- Fix showing lock icon in encrypted items
# v2.0.0
- Synchronize items with files on disk
- Faster tab loading and saving (data format was changed; only backward compatible)
- User can limit size of text items
- Opening external image editor fixed on Windows
- New logo and website
- Lot of other fixes
# v1.9.3
- Item and tab encryption (using GnuPG)
- FakeVim plugin for editing items (Vim editor emulation)
- Drag'n'drop items from and to list
- Improved appearance for notes
- Improved search bar
- New GUI for application and system-wide shortcuts
- Option to unload tabs after an interval
- Fixed item sizes and disabling font anti-aliasing
- Major bug fixes (mainly for Windows) and performance improvements
# v1.9.2
- Better performance
- GUI improvements and bugfixes
# v1.9.1
- Notifications -- customizable theme, timeout and position on screen
- Optional notification for new clipboard content
- Autostart option on Linux
- Reset empty clipboard to previous content
- More user-friendly item editor
- Optional font antialiasing
- Changed layout of configuration dialog
- Other fixes
# v1.9.0
- User notes
- Improved appearance settings with some example themes
- Tree view for tabs with groups
- Sessions, i.e. run multiple independent instances
- Lot of GUI improvements
- Compatibility with Qt5
- Bugfixes (crashing on Unity, icon colors etc.)
# v1.8.3
- Options to hide tab bar and main menu
- Automatic paste works with more applications under Linux/X11
- Multi-monitor support
- Lot of GUI fixes and improvements
# v1.8.2
- Added shortcut to paste current and copy next/previous item
- Bugfixes (paste to correct window, show tray menu on Unity, GUI and usability fixes)
# v1.8.1
- Spanish translation
- Option and system-wide shortcuts to temporarily disable clipboard storing
- Option for main window transparency
- Custom action on item activation
- Various GUI improvements and bugfixes
# v1.8.0
- New shortcuts: "Next/previous item to clipboard", "Paste as plain text"
- Show clipboard content in main window title and tray tooltip
- New options for commands (transform current item, close main window)
- GUI enhancements, faster application start with many tabs and items, lot of bugfixes
# v1.7.5
- User-settable editor for images
- Command-line fixes for Windows
- Commands for items of specified format (MIME type)
- Tray menu fixes
# v1.7.4
- Improved automatic paste from tray
# v1.7.3
- Paste immediately after choosing tray item
- German translation
- Support for system-wide shortcuts on Qt 5
# v1.7.2
- Clipboard content visible in tray tooltip
# v1.7.1
- Bugfixes for text encoding
# v1.7.0
- Plugins for saving and displaying clipboard content
- Bugfixes (lot of refactoring and tests happened)
# v1.6.3
- Some important bugfixes
# v1.6.2
- Dialog for viewing item content
- Improved tray menu
- Minor GUI updates
# v1.6.1
- Configurable tray menu
- Lot of fixes in GUI and bugfixes
# v1.6.0
- Highlight text and copy text in items
- Interactive web view
- Commands for any MIME type
- e.g. it's possible to create QR Code image from an URL and save it in list
- Pipe commands using '|' character
# v1.5.0
- Option to use WebKit to render HTML
- Wrap text with long lines
- Faster list rendering
- Icons from FontAwesome
- Desktop icon on Linux
# v1.4.1
- Support for other languages -- right now supports only English and Czech (any help is welcome)
- New "insert" command
- More safe item saving
# v1.4.0
- lot of GUI Improvements, faster interaction
- Automatic commands for matched windows (only on Linux and Windows)
# v1.3.3
- GUI Improvements
- New system-wide shortcuts
- Item editing improved
# v1.3.2
- Drag'n'Drop to clipboard
- "Always on Top" option
- Change tab bar position
- Fix parsing arguments
# v1.3.1
- GUI improvements
- Mode for Vi navigation (h, j, k, l keys for movement)
- Better performance
# v1.3.0
- Import/export items to/from a file (not compatible with older saved format)
- Use scripts to handle item history
- Improved performance
# v1.2.5
- Save/load items to/from a file
- Sort selected items
- Easier tab browsing (left/right arrow keys)
- GUI improvements
- More shortcut combinations work on Linux
# v1.2.4
- Improved commands
- Fixed and faster scrolling
- Better tab manipulation
# v1.2.3
- Bugfixes and major clean-up
# v1.2.2
- Performance improved
# v1.2.1
- Save items from commands in other tabs
- Missing icons in Windows version
# v1.2.0
- Appearance settings
- Tab manipulation from command line
- Copy/paste items from/to tabs
- Faster searching
# v1.1.0
- Better performance
- New configuration options
- Improved command line
# v1.0.2
- Improved Windows compatibility
- Global shortcuts
- Automatic commands
# v1.0.1
- Compatibility with different platforms
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.16)
project(copyq)
if (APPLE)
set(COPYQ_EXECUTABLE_NAME "CopyQ")
else()
set(COPYQ_EXECUTABLE_NAME copyq)
endif()
# C++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
if(CMAKE_BUILD_TYPE MATCHES Debug)
set(COPYQ_DEBUG ON)
add_definitions( -DCOPYQ_DEBUG )
endif()
OPTION(PEDANTIC "Enable all compiler warnings" OFF)
# Options (cmake -LH)
OPTION(WITH_PLUGINS "Compile plugins" ON)
OPTION(WITH_QCA_ENCRYPTION "Enable QCA-based tab encryption" ON)
OPTION(WITH_KEYCHAIN "Enable system keyring integration using QtKeychain" ON)
OPTION(WITH_GNOME_CLIPBOARD_EXTENSION "Install GNOME extension, required for clipboard monitoring" ON)
OPTION(WITH_AUDIO "Build with audio playback support (miniaudio)" ON)
add_definitions( -DQT_USE_STRINGBUILDER )
if (WIN32)
# Prevent windows.h from defining min/max macros that conflict with std::min/std::max.
add_definitions( -DNOMINMAX )
endif()
# Unix-specific options
if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
set(DATA_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}" CACHE PATH "Install path for data")
set(PLUGIN_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_SHARED_MODULE_PREFIX}/copyq/plugins" CACHE PATH "Install path for plugins")
set(ICON_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/icons/hicolor/scalable/apps" CACHE PATH "Install path for icons")
set(ICON_INSTALL_PREFIX_TEMPLATE "${DATA_INSTALL_PREFIX}/icons/hicolor/%SIZE%/apps" CACHE PATH "Install path for icons (%SIZE% is icon size)")
set(THEME_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/copyq/themes" CACHE PATH "Install path for themes")
set(DESKTOP_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/applications" CACHE PATH "Install path for desktop file")
set(APPDATA_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/metainfo" CACHE PATH "Install path for AppData file")
set(MANPAGE_INSTALL_PREFIX "${CMAKE_INSTALL_MANDIR}/man1" CACHE PATH "Install path for manual pages")
set(TRANSLATION_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/copyq/translations" CACHE PATH "Install path for translations")
set(BASH_COMPLETION_INSTALL_PREFIX "${DATA_INSTALL_PREFIX}/bash-completion/completions/" CACHE PATH "Install path for bash completions")
set(ICON_NAME "copyq" CACHE STRING "Name for icon files")
set(COPYQ_AUTOSTART_COMMAND "" CACHE STRING "Autostart command")
OPTION(COPYQ_AUTOSTART "Enable autostart option" ON)
endif()
set(CMAKE_AUTOMOC ON)
OPTION(WITH_QT6 "Enable Qt 6" ON)
if (WITH_QT6)
set(QT_DEFAULT_MAJOR_VERSION 6)
find_package(Qt6Widgets 6.1.0 REQUIRED)
set(copyq_qt Qt6)
add_definitions( -DQT_DEPRECATED_WARNINGS_SINCE=0x051500 )
else()
set(QT_DEFAULT_MAJOR_VERSION 5)
find_package(Qt5Widgets 5.15.0 REQUIRED)
set(copyq_qt Qt5)
endif()
list(APPEND copyq_LIBRARIES ${copyq_qt}::Widgets)
# QCA encryption support
if (WITH_QCA_ENCRYPTION)
find_package(Qca-qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED)
list(APPEND copyq_LIBRARIES qca-qt${QT_DEFAULT_MAJOR_VERSION})
add_definitions(-DWITH_QCA_ENCRYPTION)
message(STATUS "QCA encryption support enabled")
else()
message(STATUS "QCA encryption support DISABLED")
set(WITH_KEYCHAIN OFF)
endif()
# QtKeychain support for system keyring integration
if (WITH_KEYCHAIN)
find_package(Qt${QT_DEFAULT_MAJOR_VERSION}Keychain REQUIRED)
list(APPEND copyq_LIBRARIES qt${QT_DEFAULT_MAJOR_VERSION}keychain)
add_definitions(-DWITH_KEYCHAIN)
message(STATUS "Keychain support enabled")
else()
message(STATUS "Keychain support disabled")
endif()
set(copyq_APP_ID com.github.hluk.copyq)
set(copyq_ICON_PREFIX src/images/icon)
set(copyq_ICON_NORMAL src/images/icon.svg)
set(copyq_ICON_MASK src/images/icon_mask.svg)
set(copyq_DESKTOP shared/${copyq_APP_ID}.desktop)
set(copyq_APPDATA shared/${copyq_APP_ID}.metainfo.xml)
set(copyq_BASH_COMPLETION shared/copyq-completion)
set(copyq_MANPAGE shared/copyq.1)
# Be more strict while compiling debugging version
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-long-long")
set(CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG} -Wextra -Wall -pedantic -Wfloat-equal -Woverloaded-virtual -Wundef -Wno-inconsistent-missing-destructor-override -Wno-variadic-macro-arguments-omitted")
endif()
if (PEDANTIC)
if (CMAKE_COMPILER_IS_GNUCXX)
list(APPEND copyq_pedantic_flags
-Wextra -Wall
-Wsuggest-override
-Wlogical-op
-Wnoexcept
-Wstrict-null-sentinel
)
else()
list(APPEND copyq_pedantic_flags
-Weverything
-Winconsistent-missing-override
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
-Wno-disabled-macro-expansion
-Wno-double-promotion
-Wno-exit-time-destructors
-Wno-extra-semi-stmt
-Wno-inconsistent-missing-destructor-override
-Wno-redundant-parens
-Wno-shadow-field
-Wno-shadow-field-in-constructor
-Wno-shorten-64-to-32
-Wno-sign-conversion
-Wno-suggest-destructor-override
-Wno-unknown-warning-option
-Wno-used-but-marked-unused
-Wno-weak-vtables
-Wno-switch-default
-fcomment-block-commands=retval
)
endif()
list(APPEND copyq_pedantic_flags
-pedantic
-Wcast-align
-Wctor-dtor-privacy
-Wdisabled-optimization
-Wformat=2
-Winit-self
-Wmissing-declarations
-Wmissing-include-dirs
-Wold-style-cast
-Woverloaded-virtual
-Wredundant-decls
-Wstrict-overflow=4
-Wundef
)
list(APPEND copyq_pedantic_flags
-Wno-padded
-Wno-switch-enum
)
endif()
include(src/version.cmake)
message(STATUS "Building CopyQ version ${copyq_version}.")
if (UNIX AND NOT APPLE)
install(FILES ${copyq_ICON_NORMAL} DESTINATION ${ICON_INSTALL_PREFIX} RENAME ${ICON_NAME}.svg)
install(FILES ${copyq_ICON_MASK} DESTINATION ${ICON_INSTALL_PREFIX} RENAME ${ICON_NAME}_mask.svg)
install(FILES ${copyq_APPDATA} DESTINATION ${APPDATA_INSTALL_PREFIX})
install(FILES ${copyq_MANPAGE} DESTINATION ${MANPAGE_INSTALL_PREFIX})
install(FILES ${copyq_BASH_COMPLETION} DESTINATION ${BASH_COMPLETION_INSTALL_PREFIX} RENAME copyq)
if (WITH_GNOME_CLIPBOARD_EXTENSION)
set(copyq_GNOME_EXTENSION_DESTINATION "${DATA_INSTALL_PREFIX}/gnome-shell/extensions/copyq-clipboard@hluk.github.com")
install(FILES
shared/gnome-extension/extension.js
shared/gnome-extension/metadata.json
DESTINATION "${copyq_GNOME_EXTENSION_DESTINATION}")
endif()
configure_file(${copyq_DESKTOP}.in ${copyq_DESKTOP})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${copyq_DESKTOP} DESTINATION ${DESKTOP_INSTALL_PREFIX})
foreach (copyq_ICON_EXTENT 16 22 24 32 48 64 128)
set(copyq_ICON_SIZE "${copyq_ICON_EXTENT}x${copyq_ICON_EXTENT}")
string(REPLACE "%SIZE%" "${copyq_ICON_SIZE}" copyq_ICON_TARGET_PREFIX "${ICON_INSTALL_PREFIX_TEMPLATE}")
foreach (copyq_ICON_TYPE "")
install(FILES "${copyq_ICON_PREFIX}${copyq_ICON_TYPE}_${copyq_ICON_SIZE}.png" DESTINATION "${copyq_ICON_TARGET_PREFIX}" RENAME "${ICON_NAME}${copyq_ICON_TYPE}.png")
endforeach()
endforeach()
set(copyq_THEME_INSTALL_PREFIX ${THEME_INSTALL_PREFIX})
file(GLOB copyq_THEMES shared/themes/*.css shared/themes/*.ini)
install(FILES ${copyq_THEMES} DESTINATION ${THEME_INSTALL_PREFIX})
add_definitions( -DCOPYQ_ICON_PREFIX="${ICON_INSTALL_PREFIX}/${ICON_NAME}" )
add_definitions( -DCOPYQ_THEME_PREFIX="${THEME_INSTALL_PREFIX}" )
add_definitions( -DCOPYQ_PLUGIN_PREFIX="${PLUGIN_INSTALL_PREFIX}" )
add_definitions( -DCOPYQ_DESKTOP_FILE="${DESKTOP_INSTALL_PREFIX}/${copyq_APP_ID}.desktop" )
add_definitions( -DCOPYQ_TRANSLATION_PREFIX="${TRANSLATION_INSTALL_PREFIX}" )
add_definitions( -DCOPYQ_BASH_COMPLETION_PREFIX="${BASH_COMPLETION_INSTALL_PREFIX}" )
add_definitions( -DCOPYQ_ICON_NAME="${ICON_NAME}" )
if (COPYQ_AUTOSTART)
add_definitions( -DCOPYQ_AUTOSTART )
endif()
if (COPYQ_AUTOSTART_COMMAND)
add_definitions( -DCOPYQ_AUTOSTART_COMMAND="${COPYQ_AUTOSTART_COMMAND}" )
endif()
elseif (APPLE)
set(copyq_themes_dest_dir "${COPYQ_EXECUTABLE_NAME}.app/Contents/Resources/themes")
file(GLOB copyq_THEMES shared/themes/*.css shared/themes/*.ini)
install(FILES ${copyq_THEMES} DESTINATION "${copyq_themes_dest_dir}" COMPONENT Runtime)
endif()
if (MSVC)
include(InstallRequiredSystemLibraries)
endif()
add_definitions( -DQT_NO_CAST_TO_ASCII )
set_property(GLOBAL PROPERTY COPYQ_INSTALLED_PLUGINS)
if (WITH_PLUGINS)
add_subdirectory(plugins)
endif()
add_subdirectory(src)
================================================
FILE: CMakePresets.json
================================================
{
"version": 6,
"configurePresets": [
{
"name": "Debug",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/copyq/${presetName}",
"installDir": "${sourceParentDir}/install/copyq/${presetName}",
"cacheVariables": {
"WITH_TESTS": "TRUE",
"WITH_QCA_ENCRYPTION": "TRUE",
"PEDANTIC": "TRUE",
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache"
}
},
{
"name": "macOS-10",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/copyq/${presetName}",
"installDir": "${sourceParentDir}/build/copyq/${presetName}",
"cacheVariables": {
"WITH_QT6": "TRUE",
"WITH_TESTS": "TRUE",
"CMAKE_PREFIX_PATH": "$penv{CMAKE_PREFIX_PATH}",
"CMAKE_OSX_DEPLOYMENT_TARGET": "10.15",
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_FLAGS": "-Wno-deprecated-declarations"
}
},
{
"name": "macOS-13",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/copyq/${presetName}",
"installDir": "${sourceParentDir}/build/copyq/${presetName}",
"cacheVariables": {
"WITH_QT6": "TRUE",
"WITH_TESTS": "TRUE",
"CMAKE_PREFIX_PATH": "$penv{CMAKE_PREFIX_PATH}",
"CMAKE_OSX_DEPLOYMENT_TARGET": "13.0",
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_FLAGS": "-Wno-deprecated-declarations"
}
},
{
"name": "macOS-12-m1",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/copyq/${presetName}",
"installDir": "${sourceParentDir}/build/copyq/${presetName}",
"cacheVariables": {
"WITH_QT6": "TRUE",
"WITH_TESTS": "TRUE",
"CMAKE_PREFIX_PATH": "$penv{CMAKE_PREFIX_PATH}",
"CMAKE_OSX_DEPLOYMENT_TARGET": "12",
"CMAKE_OSX_ARCHITECTURES": "arm64",
"CMAKE_C_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "ccache",
"CMAKE_CXX_FLAGS": "-Wno-deprecated-declarations"
}
},
{
"name": "Windows",
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build/copyq/${presetName}",
"installDir": "${sourceParentDir}/install/copyq/${presetName}",
"cacheVariables": {
"WITH_QT6": "TRUE",
"WITH_TESTS": "TRUE",
"CMAKE_PREFIX_PATH": "$penv{CMAKE_PREFIX_PATH}",
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_C_COMPILER_LAUNCHER": "sccache",
"CMAKE_CXX_COMPILER_LAUNCHER": "sccache",
"CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION": "."
}
}
],
"buildPresets": [
{
"name": "Debug",
"configurePreset": "Debug",
"configuration": "Debug",
"targets": "install"
},
{
"name": "macOS-10",
"configurePreset": "macOS-10",
"configuration": "Release",
"targets": "install"
},
{
"name": "macOS-13",
"configurePreset": "macOS-13",
"configuration": "Release",
"targets": "install"
},
{
"name": "macOS-12-m1",
"configurePreset": "macOS-12-m1",
"configuration": "Release",
"targets": "install"
},
{
"name": "Windows",
"configurePreset": "Windows",
"configuration": "Release",
"targets": "install"
}
],
"packagePresets": [
{
"name": "macOS-10",
"configurePreset": "macOS-10"
},
{
"name": "macOS-13",
"configurePreset": "macOS-13"
},
{
"name": "macOS-12-m1",
"configurePreset": "macOS-12-m1"
}
]
}
================================================
FILE: Doxyfile
================================================
# Doxyfile 1.7.4
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
#
# All text after a hash (#) is considered a comment and will be ignored.
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ").
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
# http://www.gnu.org/software/libiconv for the list of possible encodings.
DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME =
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
# a quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF =
# With the PROJECT_LOGO tag one can specify an logo or icon that is
# included in the documentation. The maximum height of the logo should not
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.
PROJECT_LOGO =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY =
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
# format and will distribute the generated files over these directories.
# Enabling this option can be useful when feeding doxygen a huge amount of
# source files, where putting all generated files in the same directory would
# otherwise cause performance problems for the file system.
CREATE_SUBDIRS = NO
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
OUTPUT_LANGUAGE = English
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# This tag implements a quasi-intelligent brief description abbreviator
# that is used to form the text in various listings. Each string
# in this list, if found as the leading text of the brief description, will be
# stripped from the text and the result after processing the whole list, is
# used as the annotated text. Otherwise, the brief description is used as-is.
# If left blank, the following values are used ("$name" is automatically
# replaced with the name of the entity): "The $name class" "The $name widget"
# "The $name file" "is" "provides" "specifies" "contains"
# "represents" "a" "an" "the"
ABBREVIATE_BRIEF =
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
INLINE_INHERITED_MEMB = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = YES
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the
# path to strip.
STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
# the reader which header file to include in order to use a class.
# If left blank only the name of the header file containing the class
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.
STRIP_FROM_INC_PATH =
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful if your file system
# doesn't support long names like on DOS, Mac, or CD-ROM.
SHORT_NAMES = NO
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like regular Qt-style comments
# (thus requiring an explicit @brief command for a brief description.)
JAVADOC_AUTOBRIEF = YES
# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
# interpret the first line (until the first dot) of a Qt-style
# comment as the brief description. If set to NO, the comments
# will behave just like regular Qt-style comments (thus requiring
# an explicit \brief command for a brief description.)
QT_AUTOBRIEF = NO
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
# The new default is to treat a multi-line C++ comment block as a detailed
# description. Set this tag to YES if you prefer the old behaviour instead.
MULTILINE_CPP_IS_BRIEF = NO
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
INHERIT_DOCS = YES
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.
SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user-defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
# sources only. Doxygen will then generate output that is more tailored for C.
# For instance, some of the names that are used will be different. The list
# of all members will be omitted, etc.
OPTIMIZE_OUTPUT_FOR_C = NO
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
# sources only. Doxygen will then generate output that is more tailored for
# Java. For instance, namespaces will be presented as packages, qualified
# scopes will look different, etc.
OPTIMIZE_OUTPUT_JAVA = NO
# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
# sources only. Doxygen will then generate output that is more tailored for
# Fortran.
OPTIMIZE_FOR_FORTRAN = NO
# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
# sources. Doxygen will then generate output that is tailored for
# VHDL.
OPTIMIZE_OUTPUT_VHDL = NO
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given extension.
# Doxygen has a built-in mapping, but you can override or extend it using this
# tag. The format is ext=language, where ext is a file extension, and language
# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
EXTENSION_MAPPING =
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
# func(std::string) {}). This also makes the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
# Doxygen will parse them like normal C++ but will assume all classes use public
# instead of private inheritance when no explicit protection keyword is present.
SIP_SUPPORT = NO
# For Microsoft's IDL there are propget and propput attributes to indicate getter
# and setter methods for a property. Setting this option to YES (the default)
# will make doxygen replace the get and set methods by a property in the
# documentation. This will only work if the methods are indeed getting or
# setting a simple type. If this is not the case, or you want to show the
# methods anyway, you should set this option to NO.
IDL_PROPERTY_SUPPORT = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a
# subgroup of that type (e.g. under the Public Functions section). Set it to
# NO to prevent subgrouping. Alternatively, this can be done per class using
# the \nosubgrouping command.
SUBGROUPING = YES
# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
# unions are shown inside the group in which they are included (e.g. using
# @ingroup) instead of on a separate page (for HTML and Man pages) or
# section (for LaTeX and RTF).
INLINE_GROUPED_CLASSES = NO
# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
# is documented as struct, union, or enum with the name of the typedef. So
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
# with name TypeT. When disabled the typedef will appear as a member of a file,
# namespace, or class. And the struct will be named TypeS. This can typically
# be useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.
TYPEDEF_HIDES_STRUCT = NO
# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
# determine which symbols to keep in memory and which to flush to disk.
# When the cache is full, less often used symbols will be written to disk.
# For small to medium size projects (<1000 input files) the default value is
# probably good enough. For larger projects a too small cache size can cause
# doxygen to be busy swapping symbols to and from disk most of the time
# causing a significant performance penalty.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will roughly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols
SYMBOL_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = NO
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = YES
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.
EXTRACT_LOCAL_CLASSES = YES
# This flag is only useful for Objective-C code. When set to YES local
# methods, which are defined in the implementation section but not in
# the interface are included in the documentation.
# If set to NO (the default) only methods in the interface are included.
EXTRACT_LOCAL_METHODS = NO
# If this flag is set to YES, the members of anonymous namespaces will be
# extracted and appear in the documentation as a namespace called
# 'anonymous_namespace{file}', where file will be replaced with the base
# name of the file that contains the anonymous namespace. By default
# anonymous namespaces are hidden.
EXTRACT_ANON_NSPACES = NO
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these classes will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
# friend (class|struct|union) declarations.
# If set to NO (the default) these declarations will be included in the
# documentation.
HIDE_FRIEND_COMPOUNDS = NO
# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
# documentation blocks found inside the body of a function.
# If set to NO (the default) these blocks will be appended to the
# function's detailed documentation block.
HIDE_IN_BODY_DOCS = NO
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower-case letters. If set to YES upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put a list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = YES
# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
# will list include files with double quotes in the documentation
# rather than with sharp brackets.
FORCE_LOCAL_INCLUDES = NO
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
# brief documentation of file, namespace and class members alphabetically
# by member name. If set to NO (the default) the members will appear in
# declaration order.
SORT_BRIEF_DOCS = NO
# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
# will sort the (brief and detailed) documentation of class members so that
# constructors and destructors are listed first. If set to NO (the default)
# the constructors will appear in the respective orders defined by
# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
SORT_MEMBERS_CTORS_1ST = NO
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
# hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order.
SORT_GROUP_NAMES = NO
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
# NO (the default), the class list will be sorted only by class name,
# not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the
# alphabetical list.
SORT_BY_SCOPE_NAME = NO
# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
# do proper type resolution of all parameters of a function it will reject a
# match between the prototype and the implementation of a member function even
# if there is only one candidate or it is obvious which candidate to choose
# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
# will still accept a match between prototype and implementation in such cases.
STRICT_PROTO_MATCHING = NO
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# The GENERATE_BUGLIST tag can be used to enable (YES) or
# disable (NO) the bug list. This list is created by putting \bug
# commands in the documentation.
GENERATE_BUGLIST = YES
# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
# disable (NO) the deprecated list. This list is created by putting
# \deprecated commands in the documentation.
GENERATE_DEPRECATEDLIST= YES
# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
# the initial value of a variable or macro consists of for it to appear in
# the documentation. If the initializer consists of more lines than specified
# here it will be hidden. Use a value of 0 to hide initializers completely.
# The appearance of the initializer of individual variables and macros in the
# documentation can be controlled using \showinitializer or \hideinitializer
# command in the documentation regardless of this setting.
MAX_INITIALIZER_LINES = 30
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
# at the bottom of the documentation of classes and structs. If set to YES the
# list will mention the files that were used to generate the documentation.
SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
SHOW_DIRECTORIES = NO
# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES.
SHOW_FILES = YES
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
# Namespaces page.
# This will remove the Namespaces entry from the Quick Index
# and from the Folder Tree View (if specified). The default is YES.
SHOW_NAMESPACES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command <command> <input-file>, where <command> is the value of
# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
# provided by doxygen. Whatever the program writes to standard output
# is used as the file version. See the manual for examples.
FILE_VERSION_FILTER =
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated
# output files in an output format independent way. The create the layout file
# that represents doxygen's defaults, run doxygen with the -l option.
# You can optionally specify a file name after the option, if omitted
# DoxygenLayout.xml will be used as the name of the layout file.
LAYOUT_FILE =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = NO
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = YES
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = YES
# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some
# parameters in a documented function, or documenting parameters that
# don't exist or using markup commands wrongly.
WARN_IF_DOC_ERROR = YES
# The WARN_NO_PARAMDOC option can be enabled to get warnings for
# functions that are documented, but have no documentation for their parameters
# or return value. If set to NO (the default) doxygen will only warn about
# wrong or incomplete parameter documentation, but not about the absence of
# documentation.
WARN_NO_PARAMDOC = NO
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text. Optionally the format may contain
# $version, which will be replaced by the version of the file (if it could
# be obtained via FILE_VERSION_FILTER)
WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = src/include src
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# also the default input encoding. Doxygen uses libiconv (or the iconv built
# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
# the list of possible encodings.
INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
# *.f90 *.f *.for *.vhd *.vhdl
FILE_PATTERNS = *.cpp *.h
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = NO
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
EXCLUDE_SYMLINKS = NO
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories. Note that the wildcards are matched
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
EXCLUDE_PATTERNS =
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
EXCLUDE_SYMBOLS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
# commands irrespective of the value of the RECURSIVE tag.
# Possible values are YES and NO. If left blank NO is used.
EXAMPLE_RECURSIVE = NO
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
# If FILTER_PATTERNS is specified, this tag will be
# ignored.
INPUT_FILTER =
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis.
# Doxygen will compare the file name with each pattern and apply the
# filter if there is a match.
# The filters are a list of the form:
# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
# info on how filters are used. If FILTER_PATTERNS is empty or if
# non of the patterns match the file name, INPUT_FILTER is applied.
FILTER_PATTERNS =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse (i.e. when SOURCE_BROWSER is set to YES).
FILTER_SOURCE_FILES = NO
# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
# and it is also possible to disable source filtering for a specific pattern
# using *.ext= (so without naming a filter). This option only has effect when
# FILTER_SOURCE_FILES is enabled.
FILTER_SOURCE_PATTERNS =
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
# Note: To get rid of all source code in the generated output, make sure also
# VERBATIM_HEADERS is set to NO.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES
# then for each documented function all documented
# functions referencing it will be listed.
REFERENCED_BY_RELATION = NO
# If the REFERENCES_RELATION tag is set to YES
# then for each documented function all documented entities
# called/used by that function will be listed.
REFERENCES_RELATION = NO
# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
# link to the source code.
# Otherwise they will link to the documentation.
REFERENCES_LINK_SOURCE = YES
# If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source
# tagging system (see http://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher.
USE_HTAGS = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
# doxygen will generate files with .html extension.
HTML_FILE_EXTENSION = .html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header. Note that when using a custom header you are responsible
# for the proper inclusion of any scripts and style sheets that doxygen
# needs, which is dependent on the configuration options used.
# It is advised to generate a default header using "doxygen -w html
# header.html footer.html stylesheet.css YourConfigFile" and then modify
# that header. Note that the header is subject to change so you typically
# have to redo this when upgrading to a newer version of doxygen or when changing the value of configuration settings such as GENERATE_TREEVIEW!
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet. Note that doxygen will try to copy
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
HTML_STYLESHEET =
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
# that these files will be copied to the base HTML output directory. Use the
# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
# files. In the HTML_STYLESHEET file, use the file name only. Also note that
# the files will be copied as-is; there are no commands or markers available.
HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the stylesheet and background images
# according to this color. Hue is specified as an angle on a colorwheel,
# see http://en.wikipedia.org/wiki/Hue for more information.
# For instance the value 0 represents red, 60 is yellow, 120 is green,
# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
# The allowed range is 0 to 359.
HTML_COLORSTYLE_HUE = 220
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
# the colors in the HTML output. For a value of 0 the output will use
# grayscales only. A value of 255 will produce the most vivid colors.
HTML_COLORSTYLE_SAT = 100
# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
# the luminance component of the colors in the HTML output. Values below
# 100 gradually make the output lighter, whereas values above 100 make
# the output darker. The value divided by 100 is the actual gamma applied,
# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
# and 100 does not change the gamma.
HTML_COLORSTYLE_GAMMA = 80
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting
# this to NO can help when comparing the output of multiple runs.
HTML_TIMESTAMP = YES
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports
# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
HTML_DYNAMIC_SECTIONS = NO
# If the GENERATE_DOCSET tag is set to YES, additional index files
# will be generated that can be used as input for Apple's Xcode 3
# integrated development environment, introduced with OSX 10.5 (Leopard).
# To create a documentation set, doxygen will generate a Makefile in the
# HTML output directory. Running make will produce the docset in that
# directory and running "make install" will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
# it at startup.
# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
GENERATE_DOCSET = NO
# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
# feed. A documentation feed provides an umbrella under which multiple
# documentation sets from a single provider (such as a company or product suite)
# can be grouped.
DOCSET_FEEDNAME = "Doxygen generated docs"
# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
# should uniquely identify the documentation set bundle. This should be a
# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
# will append .docset to the name.
DOCSET_BUNDLE_ID = org.doxygen.Project
# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
# the documentation publisher. This should be a reverse domain-name style
# string, e.g. com.mycompany.MyDocSet.documentation.
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
# can add a path in front of the file if the result should not be
# written to the html output directory.
CHM_FILE =
# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
# be used to specify the location (absolute path including file name) of
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
# the HTML help compiler on the generated index.hhp.
HHC_LOCATION =
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
# it should be included in the master .chm file (NO).
GENERATE_CHI = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
# is used to encode HtmlHelp index (hhk), content (hhc) and project file
# content.
CHM_INDEX_ENCODING =
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.
BINARY_TOC = NO
# The TOC_EXPAND flag can be set to YES to add extra items for group members
# to the contents of the HTML help documentation and to the tree view.
TOC_EXPAND = NO
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
# that can be used as input for Qt's qhelpgenerator to generate a
# Qt Compressed Help (.qch) of the generated HTML documentation.
GENERATE_QHP = NO
# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
# be used to specify the file name of the resulting .qch file.
# The path specified is relative to the HTML output folder.
QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
# http://doc.trolltech.com/qthelpproject.html#namespace
QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
# http://doc.trolltech.com/qthelpproject.html#virtual-folders
QHP_VIRTUAL_FOLDER = doc
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
# add. For more information please see
# http://doc.trolltech.com/qthelpproject.html#custom-filters
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see
# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
# Qt Help Project / Custom Filters</a>.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's
# filter section matches.
# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
# Qt Help Project / Filter Attributes</a>.
QHP_SECT_FILTER_ATTRS =
# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
# be used to specify the location of Qt's qhelpgenerator.
# If non-empty doxygen will try to run qhelpgenerator on the generated
# .qhp file.
QHG_LOCATION =
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
# will be generated, which together with the HTML files, form an Eclipse help
# plugin. To install this plugin and make it available under the help contents
# menu in Eclipse, the contents of the directory containing the HTML and XML
# files needs to be copied into the plugins directory of eclipse. The name of
# the directory within the plugins directory should be the same as
# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
# the help appears.
GENERATE_ECLIPSEHELP = NO
# A unique identifier for the eclipse help plugin. When installing the plugin
# the directory name containing the HTML and XML files should also have
# this name.
ECLIPSE_DOC_ID = org.doxygen.Project
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
# (range [0,1..20]) that doxygen will group on one line in the generated HTML
# documentation. Note that a value of 0 will completely suppress the enum
# values from appearing in the overview section.
ENUM_VALUES_PER_LINE = 4
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
# Windows users are probably better off using the HTML help feature.
GENERATE_TREEVIEW = NO
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.
USE_INLINE_TREES = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
TREEVIEW_WIDTH = 250
# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
# links to external symbols imported via tag files in a separate window.
EXT_LINKS_IN_WINDOW = NO
# Use this tag to change the font size of Latex formulas included
# as images in the HTML documentation. The default is 10. Note that
# when you change the font size after a successful doxygen run you need
# to manually remove any form_*.png images from the HTML output directory
# to force them to be regenerated.
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are
# not supported properly for IE 6.0, but are supported on all modern browsers.
# Note that when changing this option you need to delete any form_*.png files
# in the HTML output before the changes have effect.
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
# (see http://www.mathjax.org) which uses client side Javascript for the
# rendering instead of using prerendered bitmaps. Use this if you do not
# have LaTeX installed or if you want to formulas look prettier in the HTML
# output. When enabled you also need to install MathJax separately and
# configure the path to it using the MATHJAX_RELPATH option.
USE_MATHJAX = NO
# When MathJax is enabled you need to specify the location relative to the
# HTML output directory using the MATHJAX_RELPATH option. The destination
# directory should contain the MathJax.js script. For instance, if the mathjax
# directory is located at the same level as the HTML output directory, then
# MATHJAX_RELPATH should be ../mathjax. The default value points to the
# mathjax.org site, so you can quickly see the result without installing
# MathJax, but it is strongly recommended to install a local copy of MathJax
# before deployment.
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
# When the SEARCHENGINE tag is enabled doxygen will generate a search box
# for the HTML output. The underlying search engine uses javascript
# and DHTML and should work on any modern browser. Note that when using
# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
# (GENERATE_DOCSET) there is already a search function so this one should
# typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a PHP enabled web server instead of at the web client
# using Javascript. Doxygen will generate the search PHP script and index
# file to put on the web server. The advantage of the server
# based approach is that it scales better to large projects and allows
# full text search. The disadvantages are that it is more difficult to setup
# and does not have live searching capabilities.
SERVER_BASED_SEARCH = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked. If left blank `latex' will be used as the default command name.
# Note that when enabling USE_PDFLATEX this option is only used for
# generating bitmaps for formulas in the HTML output, but not in the
# Makefile that is written to the output directory.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
# generate index for LaTeX. If left blank `makeindex' will be used as the
# default command name.
MAKEINDEX_CMD_NAME = makeindex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
LATEX_HEADER =
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
# the generated latex document. The footer should contain everything after
# the last chapter. If it is left blank doxygen will generate a
# standard footer. Notice: only use this tag if you know what you are doing!
LATEX_FOOTER =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = YES
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = YES
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
LATEX_BATCHMODE = NO
# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
# in the output.
LATEX_HIDE_INDICES = NO
# If LATEX_SOURCE_CODE is set to YES then doxygen will include
# source code with syntax highlighting in the LaTeX output.
# Note that which sources are shown also depends on other settings
# such as SOURCE_BROWSER.
LATEX_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimized for Word 97 and may not look very pretty with
# other RTF readers or editors.
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using WORD or other
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an rtf document.
# Syntax is similar to doxygen's config file.
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
MAN_EXTENSION = .3
# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
# then it will generate one additional man file for each entity
# documented in the real man page(s). These additional files
# only source the real man page, but without them the man command
# would be unable to find the correct page. The default is NO.
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation.
GENERATE_XML = NO
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
XML_OUTPUT = xml
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
# and cross-referencing information) to the XML output. Note that
# enabling this will significantly increase the size of the XML output.
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
# generate an AutoGen Definitions (see autogen.sf.net) file
# that captures the structure of the code including all
# documentation. Note that this feature is still experimental
# and incomplete at the moment.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
# If the GENERATE_PERLMOD tag is set to YES Doxygen will
# generate a Perl module file that captures the structure of
# the code including all documentation. Note that this
# feature is still experimental and incomplete at the
# moment.
GENERATE_PERLMOD = NO
# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
# the necessary Makefile rules, Perl scripts and LaTeX code to be able
# to generate PDF and DVI output from the Perl module output.
PERLMOD_LATEX = NO
# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
# nicely formatted so it can be parsed by a human reader.
# This is useful
# if you want to understand what is going on.
# On the other hand, if this
# tag is set to NO the size of the Perl module output will be much smaller
# and Perl will parse it just the same.
PERLMOD_PRETTY = YES
# The names of the make variables in the generated doxyrules.make file
# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
# This is useful so different doxyrules.make files included by the same
# Makefile don't overwrite each other's variables.
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_DEFINED tags.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# pointed to by INCLUDE_PATH will be searched when a #include is found.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed. To prevent a macro definition from being
# undefined via #undef or recursively expanded use the := operator
# instead of the = operator.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition that
# overrules the definition found in the source code.
EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all references to function-like macros
# that are alone on a line, have an all uppercase name, and do not end with a
# semicolon, because these will confuse the parser if not removed.
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
# The TAGFILES option can be used to specify one or more tagfiles.
# Optionally an initial location of the external documentation
# can be added for each tagfile. The format of a tag file without
# this location is as follows:
#
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
#
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where "loc1" and "loc2" can be relative or absolute paths or
# URLs. If a location is present for each tag, the installdox tool
# does not have to be run to correct the links.
# Note that each tag file must have a unique name
# (where the name does NOT include the path)
# If a tag file is not located in the directory in which doxygen
# is run, you must also specify the path to the tagfile here.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
ALLEXTERNALS = NO
# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will
# be listed.
EXTERNAL_GROUPS = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
# or super classes. Setting the tag to NO turns the diagrams off. Note that
# this option also works with HAVE_DOT disabled, but it is recommended to
# install and use dot, since it yields more powerful graphs.
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see
# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
# If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented
# or is not a class.
HIDE_UNDOC_RELATIONS = YES
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
HAVE_DOT = YES
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
# allowed to run in parallel. When set to 0 (the default) doxygen will
# base this on the number of processors available in the system. You can set it
# explicitly to a value larger than 0 to get control over the balance
# between CPU load and processing speed.
DOT_NUM_THREADS = 0
# By default doxygen will write a font called Helvetica to the output
# directory and reference it in all dot files that doxygen generates.
# When you want a differently looking font you can specify the font name
# using DOT_FONTNAME. You need to make sure dot is able to find the font,
# which can be done by putting it in a standard location or by setting the
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
# containing the font.
DOT_FONTNAME = Ubuntu
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.
DOT_FONTSIZE = 10
# By default doxygen will tell dot to use the output directory to look for the
# FreeSans.ttf font (which doxygen will put there itself). If you specify a
# different font using DOT_FONTNAME you can set the path where dot
# can find it using this tag.
DOT_FONTPATH =
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
COLLABORATION_GRAPH = YES
# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for groups, showing the direct groups dependencies
GROUP_GRAPHS = YES
# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
UML_LOOK = YES
# If set to YES, the inheritance and collaboration graphs will show the
# relations between templates and their instances.
TEMPLATE_RELATIONS = NO
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
# tags are set to YES then doxygen will generate a graph for each documented
# file showing the direct and indirect include dependencies of the file with
# other documented files.
INCLUDE_GRAPH = YES
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
# documented header file showing the documented files that directly or
# indirectly include this file.
INCLUDED_BY_GRAPH = YES
# If the CALL_GRAPH and HAVE_DOT options are set to YES then
# doxygen will generate a call dependency graph for every global function
# or class method. Note that enabling this option will significantly increase
# the time of a run. So in most cases it will be better to enable call graphs
# for selected functions only using the \callgraph command.
CALL_GRAPH = YES
# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
# doxygen will generate a caller dependency graph for every global function
# or class method. Note that enabling this option will significantly increase
# the time of a run. So in most cases it will be better to enable caller
# graphs for selected functions only using the \callergraph command.
CALLER_GRAPH = YES
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will generate a graphical hierarchy of all classes instead of a textual one.
GRAPHICAL_HIERARCHY = YES
# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
# then doxygen will show the dependencies a directory has on other directories
# in a graphical way. The dependency relations are determined by the #include
# relations between the files in the directories.
DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. Possible values are svg, png, jpg, or gif.
# If left blank png will be used.
DOT_IMAGE_FORMAT = svg
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
DOT_PATH =
# The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the
# \dotfile command).
DOTFILE_DIRS =
# The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the
# \mscfile command).
MSCFILE_DIRS =
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
# nodes that will be shown in the graph. If the number of nodes in a graph
# becomes larger than this value, doxygen will truncate the graph, which is
# visualized by representing a node as a red box. Note that doxygen if the
# number of direct children of the root node in a graph is already larger than
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
DOT_GRAPH_MAX_NODES = 50
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
# code bases. Also note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not
# seem to support this out of the box. Warning: Depending on the platform used,
# enabling this option may lead to badly anti-aliased labels on the edges of
# a graph (i.e. they become hard to read).
DOT_TRANSPARENT = NO
# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10)
# support this, this feature is disabled by default.
DOT_MULTI_TARGETS = NO
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
# arrows in the dot generated graphs.
GENERATE_LEGEND = YES
# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
# remove the intermediate dot files that are used to generate
# the various graphs.
DOT_CLEANUP = YES
================================================
FILE: HACKING
================================================
https://copyq.readthedocs.io/en/latest/build-source-code.html
================================================
FILE: INSTALL
================================================
https://copyq.readthedocs.io/en/latest/build-source-code.html
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with
gitextract_5_z0o7o6/
├── .claude/
│ └── settings.json
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── actions/
│ │ └── download-miniaudio/
│ │ └── action.yml
│ ├── dependabot.yml
│ └── workflows/
│ ├── build-linux.yml
│ ├── build-macos.yml
│ ├── build-windows.yml
│ └── codespell.yml
├── .gitignore
├── .gitlab-ci.yml
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .weblate
├── AGENTS.md
├── AUTHORS
├── CHANGES.md
├── CMakeLists.txt
├── CMakePresets.json
├── Doxyfile
├── HACKING
├── INSTALL
├── LICENSE
├── README.md
├── RELEASE.md
├── docs/
│ ├── Makefile
│ ├── autobuild.sh
│ ├── backup.rst
│ ├── basic-usage.rst
│ ├── build-source-code.rst
│ ├── command-examples.rst
│ ├── command-line.rst
│ ├── commands-display.rst
│ ├── commands-script.rst
│ ├── conf.py
│ ├── customize-and-build-the-windows-installer.rst
│ ├── faq.rst
│ ├── fixing-bugs.rst
│ ├── glossary.rst
│ ├── images.rst
│ ├── index.rst
│ ├── installation.rst
│ ├── keyboard.rst
│ ├── known-issues.rst
│ ├── make.bat
│ ├── password-protection.rst
│ ├── pin-items.rst
│ ├── requirements.txt
│ ├── scripting-api.rst
│ ├── scripting.rst
│ ├── security.rst
│ ├── sessions.rst
│ ├── source-code-overview.rst
│ ├── synchronize.rst
│ ├── tabs-and-items.rst
│ ├── tags.rst
│ ├── text-encoding.rst
│ ├── theme.rst
│ ├── translations.rst
│ ├── writing-commands-and-adding-functionality.rst
│ └── writing-raw-data.rst
├── gpl.txt
├── plugins/
│ ├── CMakeLists.txt
│ ├── itemencrypted/
│ │ ├── CMakeLists.txt
│ │ ├── itemencrypted.cpp
│ │ ├── itemencrypted.h
│ │ └── itemencryptedsettings.ui
│ ├── itemfakevim/
│ │ ├── CMakeLists.txt
│ │ ├── fakevim/
│ │ │ ├── LGPL_EXCEPTION.TXT
│ │ │ ├── LICENSE.LGPL
│ │ │ ├── fakevimactions.cpp
│ │ │ ├── fakevimactions.h
│ │ │ ├── fakevimhandler.cpp
│ │ │ ├── fakevimhandler.h
│ │ │ ├── fakevimtr.h
│ │ │ └── private/
│ │ │ └── fakevim_export.h
│ │ ├── itemfakevim.cpp
│ │ ├── itemfakevim.h
│ │ ├── itemfakevim.qrc
│ │ └── itemfakevimsettings.ui
│ ├── itemimage/
│ │ ├── CMakeLists.txt
│ │ ├── itemimage.cpp
│ │ ├── itemimage.h
│ │ └── itemimagesettings.ui
│ ├── itemnotes/
│ │ ├── CMakeLists.txt
│ │ ├── itemnotes.cpp
│ │ ├── itemnotes.h
│ │ └── itemnotessettings.ui
│ ├── itempinned/
│ │ ├── CMakeLists.txt
│ │ ├── itempinned.cpp
│ │ └── itempinned.h
│ ├── itemsync/
│ │ ├── CMakeLists.txt
│ │ ├── filewatcher.cpp
│ │ ├── filewatcher.h
│ │ ├── itemsync.cpp
│ │ ├── itemsync.h
│ │ └── itemsyncsettings.ui
│ ├── itemtags/
│ │ ├── CMakeLists.txt
│ │ ├── itemtags.cpp
│ │ ├── itemtags.h
│ │ └── itemtagssettings.ui
│ └── itemtext/
│ ├── CMakeLists.txt
│ ├── itemtext.cpp
│ ├── itemtext.h
│ └── itemtextsettings.ui
├── pyproject.toml
├── qxt/
│ ├── AUTHORS
│ ├── COPYING
│ ├── qxtglobalshortcut.cpp
│ ├── qxtglobalshortcut.h
│ ├── qxtglobalshortcut_mac.cpp
│ ├── qxtglobalshortcut_p.h
│ ├── qxtglobalshortcut_win.cpp
│ ├── qxtglobalshortcut_x11.cpp
│ └── xcbkeyboard.h
├── shared/
│ ├── Info.plist
│ ├── com.github.hluk.copyq.desktop.in
│ ├── com.github.hluk.copyq.metainfo.xml
│ ├── copyq-completion
│ ├── copyq.1
│ ├── copyq.iss
│ ├── flatpak/
│ │ ├── README.md
│ │ └── com.github.hluk.copyq.json
│ ├── gnome-extension/
│ │ ├── extension.js
│ │ └── metadata.json
│ ├── gpl-3.0.rtf
│ ├── plugins/
│ │ └── example.js
│ └── themes/
│ ├── black.ini
│ ├── dark.ini
│ ├── forest.ini
│ ├── items.css
│ ├── light.ini
│ ├── main_window.css
│ ├── main_window_simple.css
│ ├── menu.css
│ ├── nord.ini
│ ├── nord_light.ini
│ ├── notification.css
│ ├── paper.ini
│ ├── simple.ini
│ ├── solarized-dark.ini
│ ├── solarized-light.ini
│ ├── tooltip.css
│ └── wine.ini
├── src/
│ ├── CMakeLists.txt
│ ├── app/
│ │ ├── app.cpp
│ │ ├── app.h
│ │ ├── applicationexceptionhandler.cpp
│ │ ├── applicationexceptionhandler.h
│ │ ├── clipboardclient.cpp
│ │ ├── clipboardclient.h
│ │ ├── clipboardmonitor.cpp
│ │ ├── clipboardmonitor.h
│ │ ├── clipboardownermonitor.cpp
│ │ ├── clipboardownermonitor.h
│ │ ├── clipboardserver.cpp
│ │ └── clipboardserver.h
│ ├── audio.cmake
│ ├── common/
│ │ ├── action.cpp
│ │ ├── action.h
│ │ ├── actionhandlerenums.h
│ │ ├── actionoutput.cpp
│ │ ├── actionoutput.h
│ │ ├── actiontablemodel.cpp
│ │ ├── actiontablemodel.h
│ │ ├── appconfig.cpp
│ │ ├── appconfig.h
│ │ ├── audioplayer.cpp
│ │ ├── audioplayer.h
│ │ ├── client_server.cpp
│ │ ├── client_server.h
│ │ ├── clientsocket.cpp
│ │ ├── clientsocket.h
│ │ ├── clipboarddataguard.cpp
│ │ ├── clipboarddataguard.h
│ │ ├── clipboardmode.h
│ │ ├── command.cpp
│ │ ├── command.h
│ │ ├── commandstatus.h
│ │ ├── commandstore.cpp
│ │ ├── commandstore.h
│ │ ├── common.cpp
│ │ ├── common.h
│ │ ├── config.cpp
│ │ ├── config.h
│ │ ├── contenttype.h
│ │ ├── display.cpp
│ │ ├── display.h
│ │ ├── encryption.cpp
│ │ ├── encryption.h
│ │ ├── globalshortcutcommands.cpp
│ │ ├── globalshortcutcommands.h
│ │ ├── keychainaccess.cpp
│ │ ├── keychainaccess.h
│ │ ├── log.cpp
│ │ ├── log.h
│ │ ├── messagehandlerforqt.cpp
│ │ ├── messagehandlerforqt.h
│ │ ├── mimetypes.cpp
│ │ ├── mimetypes.h
│ │ ├── navigationstyle.h
│ │ ├── option.cpp
│ │ ├── option.h
│ │ ├── predefinedcommands.cpp
│ │ ├── predefinedcommands.h
│ │ ├── process.cpp
│ │ ├── process.h
│ │ ├── processsignals.h
│ │ ├── regexp.h
│ │ ├── server.cpp
│ │ ├── server.h
│ │ ├── settings.cpp
│ │ ├── settings.h
│ │ ├── shortcuts.cpp
│ │ ├── shortcuts.h
│ │ ├── sleeptimer.h
│ │ ├── tabs.cpp
│ │ ├── tabs.h
│ │ ├── temporaryfile.cpp
│ │ ├── temporaryfile.h
│ │ ├── temporarysettings.cpp
│ │ ├── temporarysettings.h
│ │ ├── textdata.cpp
│ │ ├── textdata.h
│ │ ├── timer.h
│ │ ├── version.cpp.in
│ │ └── version.h
│ ├── copyq.qrc
│ ├── copyq.rc
│ ├── gui/
│ │ ├── aboutdialog.cpp
│ │ ├── aboutdialog.h
│ │ ├── actiondialog.cpp
│ │ ├── actiondialog.h
│ │ ├── actionhandler.cpp
│ │ ├── actionhandler.h
│ │ ├── actionhandlerdialog.cpp
│ │ ├── actionhandlerdialog.h
│ │ ├── addcommanddialog.cpp
│ │ ├── addcommanddialog.h
│ │ ├── clipboardbrowser.cpp
│ │ ├── clipboardbrowser.h
│ │ ├── clipboardbrowserplaceholder.cpp
│ │ ├── clipboardbrowserplaceholder.h
│ │ ├── clipboardbrowsershared.h
│ │ ├── clipboarddialog.cpp
│ │ ├── clipboarddialog.h
│ │ ├── clipboardspy.cpp
│ │ ├── clipboardspy.h
│ │ ├── commandaction.cpp
│ │ ├── commandaction.h
│ │ ├── commandcompleter.cpp
│ │ ├── commandcompleter.h
│ │ ├── commandcompleterdocumentation.h
│ │ ├── commanddialog.cpp
│ │ ├── commanddialog.h
│ │ ├── commandedit.cpp
│ │ ├── commandedit.h
│ │ ├── commandhelpbutton.cpp
│ │ ├── commandhelpbutton.h
│ │ ├── commandsyntaxhighlighter.cpp
│ │ ├── commandsyntaxhighlighter.h
│ │ ├── commandwidget.cpp
│ │ ├── commandwidget.h
│ │ ├── configtabappearance.cpp
│ │ ├── configtabappearance.h
│ │ ├── configtabtabs.cpp
│ │ ├── configtabtabs.h
│ │ ├── configurationmanager.cpp
│ │ ├── configurationmanager.h
│ │ ├── encryptionpassword.cpp
│ │ ├── encryptionpassword.h
│ │ ├── execmenu.cpp
│ │ ├── execmenu.h
│ │ ├── fancylineedit.cpp
│ │ ├── fancylineedit.h
│ │ ├── filedialog.cpp
│ │ ├── filedialog.h
│ │ ├── filtercompleter.cpp
│ │ ├── filtercompleter.h
│ │ ├── filterlineedit.cpp
│ │ ├── filterlineedit.h
│ │ ├── fix_icon_id.h
│ │ ├── fromiconid.h
│ │ ├── geometry.cpp
│ │ ├── geometry.h
│ │ ├── icon_list.h
│ │ ├── iconfactory.cpp
│ │ ├── iconfactory.h
│ │ ├── iconfont.cpp
│ │ ├── iconfont.h
│ │ ├── icons.h
│ │ ├── iconselectbutton.cpp
│ │ ├── iconselectbutton.h
│ │ ├── iconselectdialog.cpp
│ │ ├── iconselectdialog.h
│ │ ├── iconwidget.cpp
│ │ ├── iconwidget.h
│ │ ├── importexportdialog.cpp
│ │ ├── importexportdialog.h
│ │ ├── itemorderlist.cpp
│ │ ├── itemorderlist.h
│ │ ├── logdialog.cpp
│ │ ├── logdialog.h
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── menuitems.cpp
│ │ ├── menuitems.h
│ │ ├── navigation.cpp
│ │ ├── navigation.h
│ │ ├── notification.h
│ │ ├── notificationbasic.cpp
│ │ ├── notificationbasic.h
│ │ ├── notificationbutton.h
│ │ ├── notificationdaemon.cpp
│ │ ├── notificationdaemon.h
│ │ ├── notificationnative/
│ │ │ ├── notificationnative.cpp
│ │ │ └── notificationnative.h
│ │ ├── passwordprompt.cpp
│ │ ├── passwordprompt.h
│ │ ├── pixelratio.h
│ │ ├── pluginwidget.cpp
│ │ ├── pluginwidget.h
│ │ ├── screen.cpp
│ │ ├── screen.h
│ │ ├── selectiondata.cpp
│ │ ├── selectiondata.h
│ │ ├── shortcutbutton.cpp
│ │ ├── shortcutbutton.h
│ │ ├── shortcutdialog.cpp
│ │ ├── shortcutdialog.h
│ │ ├── shortcutswidget.cpp
│ │ ├── shortcutswidget.h
│ │ ├── tabbar.cpp
│ │ ├── tabbar.h
│ │ ├── tabdialog.cpp
│ │ ├── tabdialog.h
│ │ ├── tabicons.cpp
│ │ ├── tabicons.h
│ │ ├── tabpropertieswidget.cpp
│ │ ├── tabpropertieswidget.h
│ │ ├── tabswidgetinterface.h
│ │ ├── tabtree.cpp
│ │ ├── tabtree.h
│ │ ├── tabwidget.cpp
│ │ ├── tabwidget.h
│ │ ├── theme.cpp
│ │ ├── theme.h
│ │ ├── traymenu.cpp
│ │ ├── traymenu.h
│ │ ├── windowgeometryguard.cpp
│ │ └── windowgeometryguard.h
│ ├── images/
│ │ └── icon.icns
│ ├── item/
│ │ ├── clipboarditem.cpp
│ │ ├── clipboarditem.h
│ │ ├── clipboardmodel.cpp
│ │ ├── clipboardmodel.h
│ │ ├── indexes.cpp
│ │ ├── indexes.h
│ │ ├── itemdelegate.cpp
│ │ ├── itemdelegate.h
│ │ ├── itemeditor.cpp
│ │ ├── itemeditor.h
│ │ ├── itemeditorwidget.cpp
│ │ ├── itemeditorwidget.h
│ │ ├── itemfactory.cpp
│ │ ├── itemfactory.h
│ │ ├── itemfilter.h
│ │ ├── itemsaverwrapper.cpp
│ │ ├── itemsaverwrapper.h
│ │ ├── itemstore.cpp
│ │ ├── itemstore.h
│ │ ├── itemwidget.cpp
│ │ ├── itemwidget.h
│ │ ├── itemwidgetwrapper.cpp
│ │ ├── itemwidgetwrapper.h
│ │ ├── persistentdisplayitem.cpp
│ │ ├── persistentdisplayitem.h
│ │ ├── serialize.cpp
│ │ └── serialize.h
│ ├── knotifications5/
│ │ └── copyq.notifyrc
│ ├── main.cpp
│ ├── miniaudio/
│ │ ├── CMakeLists.txt
│ │ └── miniaudio_impl.cpp
│ ├── notifications.cmake
│ ├── platform/
│ │ ├── dummy/
│ │ │ ├── dummyclipboard.cpp
│ │ │ ├── dummyclipboard.h
│ │ │ ├── dummyplatform.cpp
│ │ │ └── dummyplatform.h
│ │ ├── mac/
│ │ │ ├── cfref.h
│ │ │ ├── copyqpasteboardmime.h
│ │ │ ├── copyqpasteboardmime.mm
│ │ │ ├── deploy.cmake.in
│ │ │ ├── fixup_bundle.cmake.in
│ │ │ ├── foregroundbackgroundfilter.h
│ │ │ ├── foregroundbackgroundfilter.mm
│ │ │ ├── macactivity.h
│ │ │ ├── macactivity.mm
│ │ │ ├── macclipboard.h
│ │ │ ├── macclipboard.mm
│ │ │ ├── macplatform.cmake
│ │ │ ├── macplatform.h
│ │ │ ├── macplatform.mm
│ │ │ ├── macplatformwindow.h
│ │ │ ├── macplatformwindow.mm
│ │ │ ├── mactimer.h
│ │ │ ├── mactimer.mm
│ │ │ ├── objcstrong.h
│ │ │ ├── urlpasteboardmime.h
│ │ │ └── urlpasteboardmime.mm
│ │ ├── platform.cmake
│ │ ├── platformclipboard.cpp
│ │ ├── platformclipboard.h
│ │ ├── platformcommon.cpp
│ │ ├── platformcommon.h
│ │ ├── platformnativeinterface.h
│ │ ├── platformwindow.h
│ │ ├── unix/
│ │ │ ├── unixsignalhandler.cpp
│ │ │ └── unixsignalhandler.h
│ │ ├── win/
│ │ │ ├── winplatform.cmake
│ │ │ ├── winplatform.cpp
│ │ │ ├── winplatform.h
│ │ │ ├── winplatformclipboard.cpp
│ │ │ ├── winplatformclipboard.h
│ │ │ ├── winplatformwindow.cpp
│ │ │ └── winplatformwindow.h
│ │ └── x11/
│ │ ├── systemclipboard/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── keyboard-shortcuts-inhibit-unstable-v1.xml
│ │ │ ├── waylandclipboard.cpp
│ │ │ ├── waylandclipboard.h
│ │ │ └── wlr-data-control-unstable-v1.xml
│ │ ├── x11info.cpp
│ │ ├── x11info.h
│ │ ├── x11platform.cmake
│ │ ├── x11platform.cpp
│ │ ├── x11platform.h
│ │ ├── x11platformclipboard.cpp
│ │ ├── x11platformclipboard.h
│ │ ├── x11platformwindow.cpp
│ │ └── x11platformwindow.h
│ ├── scriptable/
│ │ ├── commandhelp.cpp
│ │ ├── commandhelp.h
│ │ ├── scriptable.cpp
│ │ ├── scriptable.h
│ │ ├── scriptablebytearray.cpp
│ │ ├── scriptablebytearray.h
│ │ ├── scriptabledir.cpp
│ │ ├── scriptabledir.h
│ │ ├── scriptablefile.cpp
│ │ ├── scriptablefile.h
│ │ ├── scriptableitemselection.cpp
│ │ ├── scriptableitemselection.h
│ │ ├── scriptablenetworkreply.cpp
│ │ ├── scriptablenetworkreply.h
│ │ ├── scriptablenetworkrequest.cpp
│ │ ├── scriptablenetworkrequest.h
│ │ ├── scriptableproxy.cpp
│ │ ├── scriptableproxy.h
│ │ ├── scriptablesettings.cpp
│ │ ├── scriptablesettings.h
│ │ ├── scriptabletemporaryfile.cpp
│ │ ├── scriptabletemporaryfile.h
│ │ ├── scriptoverrides.h
│ │ └── scriptvaluefactory.h
│ ├── tests/
│ │ ├── itemencryptedtests.cpp
│ │ ├── itemencryptedtests.h
│ │ ├── itemfakevimtests.cpp
│ │ ├── itemfakevimtests.h
│ │ ├── itemimagetests.cpp
│ │ ├── itemimagetests.h
│ │ ├── itempinnedtests.cpp
│ │ ├── itempinnedtests.h
│ │ ├── itemsynctests.cpp
│ │ ├── itemsynctests.h
│ │ ├── itemtagstests.cpp
│ │ ├── itemtagstests.h
│ │ ├── itemtests/
│ │ │ ├── itemtests.cpp
│ │ │ └── itemtests.h
│ │ ├── test_utils.h
│ │ ├── testinterface.h
│ │ ├── tests.cmake
│ │ ├── tests.cpp
│ │ ├── tests.h
│ │ ├── tests_classes.cpp
│ │ ├── tests_cli.cpp
│ │ ├── tests_commands.cpp
│ │ ├── tests_common.cpp
│ │ ├── tests_common.h
│ │ ├── tests_dialogs.cpp
│ │ ├── tests_drag_n_drop.cpp
│ │ ├── tests_encryption.cpp
│ │ ├── tests_encryption_expire.cpp
│ │ ├── tests_expire.cpp
│ │ ├── tests_import_export.cpp
│ │ ├── tests_items.cpp
│ │ ├── tests_navigation.cpp
│ │ ├── tests_other.cpp
│ │ ├── tests_playsound.cpp
│ │ ├── tests_script_commands.cpp
│ │ ├── tests_scripts.cpp
│ │ ├── tests_slow_clipboard.cpp
│ │ └── tests_tray.cpp
│ ├── ui/
│ │ ├── aboutdialog.ui
│ │ ├── actiondialog.ui
│ │ ├── actionhandlerdialog.ui
│ │ ├── addcommanddialog.ui
│ │ ├── clipboarddialog.ui
│ │ ├── commanddialog.ui
│ │ ├── commandedit.ui
│ │ ├── commandwidget.ui
│ │ ├── configtabappearance.ui
│ │ ├── configtabgeneral.ui
│ │ ├── configtabhistory.ui
│ │ ├── configtablayout.ui
│ │ ├── configtabnotifications.ui
│ │ ├── configtabtray.ui
│ │ ├── configurationmanager.ui
│ │ ├── importexportdialog.ui
│ │ ├── itemorderlist.ui
│ │ ├── logdialog.ui
│ │ ├── mainwindow.ui
│ │ ├── pluginwidget.ui
│ │ ├── shortcutdialog.ui
│ │ ├── shortcutswidget.ui
│ │ ├── tabdialog.ui
│ │ └── tabpropertieswidget.ui
│ ├── version.cmake
│ └── version_file.cmake
├── translations/
│ ├── copyq_ar.ts
│ ├── copyq_ca.ts
│ ├── copyq_cs.ts
│ ├── copyq_da.ts
│ ├── copyq_de.ts
│ ├── copyq_el.ts
│ ├── copyq_es.ts
│ ├── copyq_et.ts
│ ├── copyq_fa.ts
│ ├── copyq_fi.ts
│ ├── copyq_fr.ts
│ ├── copyq_ga.ts
│ ├── copyq_he.ts
│ ├── copyq_hr.ts
│ ├── copyq_hu.ts
│ ├── copyq_id.ts
│ ├── copyq_it.ts
│ ├── copyq_ja.ts
│ ├── copyq_kab.ts
│ ├── copyq_ko.ts
│ ├── copyq_lt.ts
│ ├── copyq_nb.ts
│ ├── copyq_nl.ts
│ ├── copyq_pl.ts
│ ├── copyq_pt_BR.ts
│ ├── copyq_pt_PT.ts
│ ├── copyq_ru.ts
│ ├── copyq_sk.ts
│ ├── copyq_sv.ts
│ ├── copyq_tr.ts
│ ├── copyq_uk.ts
│ ├── copyq_vi.ts
│ ├── copyq_zh_CN.ts
│ └── copyq_zh_TW.ts
└── utils/
├── bump_version.sh
├── copy_files.sh
├── create_source_package.sh
├── fix-translations.py
├── fosshub.py
├── generata-big-data-tab.sh
├── github/
│ ├── build-macos-deps.sh
│ ├── build-windows-deps.sh
│ ├── deploy-windows.sh
│ ├── test-linux-global-shortcuts.sh
│ ├── test-linux-gnome-extension.sh
│ ├── test-linux-wayland.sh
│ ├── test-linux.sh
│ ├── test-macos.sh
│ ├── test-signals.sh
│ └── test-start-server.sh
├── gitlab/
│ ├── build-before_script.sh
│ ├── build-script.sh
│ ├── test-before_script.sh
│ ├── test-script.sh
│ ├── test_gui-before_script.sh
│ └── test_gui-script.sh
├── linux_make_icons.sh
├── lupdate.sh
├── make_icns.sh
├── make_ico.sh
├── patches/
│ └── knotifications/
│ └── 0001-Support-updating-Snore-notifications.patch
├── sanitize.sh
├── script_docs_to_cpp.py
├── sign_released_files.sh
├── update_icon_font.py
└── windows_copyq_update.sh
Showing preview only (219K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2409 symbols across 270 files)
FILE: plugins/itemencrypted/itemencrypted.cpp
function waitOrTerminate (line 45) | bool waitOrTerminate(QProcess *p, int timeoutMs)
function verifyProcess (line 59) | bool verifyProcess(QProcess *p, int timeoutMs = 30000)
function QString (line 82) | QString getGpgVersionOutput(const QString &executable) {
type GpgVersion (line 93) | struct GpgVersion {
function GpgVersion (line 98) | GpgVersion parseVersion(const QString &versionOutput)
class GpgExecutable (line 114) | class GpgExecutable {
method GpgExecutable (line 116) | GpgExecutable() = default;
method GpgExecutable (line 118) | explicit GpgExecutable(const QString &executable)
method QString (line 153) | const QString &executable() const { return m_executable; }
method isSupported (line 154) | bool isSupported() const { return m_isSupported; }
method needsSecring (line 155) | bool needsSecring() const { return !m_secring.isEmpty(); }
method QString (line 156) | const QString &pubring() const { return m_pubring; }
method QString (line 157) | const QString &secring() const { return m_secring; }
method QString (line 158) | const QString &pubringNative() const { return m_pubringNative; }
method QString (line 159) | const QString &secringNative() const { return m_secringNative; }
function GpgExecutable (line 170) | GpgExecutable findGpgExecutable()
method GpgExecutable (line 116) | GpgExecutable() = default;
method GpgExecutable (line 118) | explicit GpgExecutable(const QString &executable)
method QString (line 153) | const QString &executable() const { return m_executable; }
method isSupported (line 154) | bool isSupported() const { return m_isSupported; }
method needsSecring (line 155) | bool needsSecring() const { return !m_secring.isEmpty(); }
method QString (line 156) | const QString &pubring() const { return m_pubring; }
method QString (line 157) | const QString &secring() const { return m_secring; }
method QString (line 158) | const QString &pubringNative() const { return m_pubringNative; }
method QString (line 159) | const QString &secringNative() const { return m_secringNative; }
function GpgExecutable (line 181) | const GpgExecutable &gpgExecutable()
method GpgExecutable (line 116) | GpgExecutable() = default;
method GpgExecutable (line 118) | explicit GpgExecutable(const QString &executable)
method QString (line 153) | const QString &executable() const { return m_executable; }
method isSupported (line 154) | bool isSupported() const { return m_isSupported; }
method needsSecring (line 155) | bool needsSecring() const { return !m_secring.isEmpty(); }
method QString (line 156) | const QString &pubring() const { return m_pubring; }
method QString (line 157) | const QString &secring() const { return m_secring; }
method QString (line 158) | const QString &pubringNative() const { return m_pubringNative; }
method QString (line 159) | const QString &secringNative() const { return m_secringNative; }
function QStringList (line 187) | QStringList getDefaultEncryptCommandArguments(const QString &publicKeyPath)
function startGpgProcess (line 194) | void startGpgProcess(QProcess *p, const QStringList &args, QIODevice::Op...
function QString (line 200) | QString importGpgKey()
function QString (line 214) | QString exportGpgKey()
function QByteArray (line 243) | QByteArray readGpgOutput(const QStringList &args, const QByteArray &inpu...
function keysExist (line 254) | bool keysExist()
function decryptMimeData (line 259) | bool decryptMimeData(QVariantMap *data)
function encryptMimeData (line 269) | bool encryptMimeData(const QVariantMap &data, const QModelIndex &index, ...
function startGenerateKeysProcess (line 292) | void startGenerateKeysProcess(QProcess *process, bool useTransientPasswo...
function QString (line 323) | QString exportImportGpgKeys()
function isGpgInstalled (line 331) | bool isGpgInstalled()
function QByteArray (line 414) | QByteArray ItemEncryptedScriptable::encrypt()
function QByteArray (line 421) | QByteArray ItemEncryptedScriptable::decrypt()
function QString (line 567) | QString ItemEncryptedScriptable::generateTestKeys()
function QByteArray (line 605) | QByteArray ItemEncryptedScriptable::encrypt(const QByteArray &bytes)
function QByteArray (line 613) | QByteArray ItemEncryptedScriptable::decrypt(const QByteArray &bytes)
function ItemWidget (line 635) | ItemWidget *ItemEncryptedLoader::create(const QVariantMap &data, QWidget...
function QStringList (line 643) | QStringList ItemEncryptedLoader::formatsToSave() const
function QWidget (line 659) | QWidget *ItemEncryptedLoader::createSettingsWidget(QWidget *parent)
function ItemSaverPtr (line 739) | ItemSaverPtr ItemEncryptedLoader::loadItems(const QString &, QAbstractIt...
function ItemSaverPtr (line 818) | ItemSaverPtr ItemEncryptedLoader::initializeTab(const QString &, QAbstra...
function ItemScriptable (line 826) | ItemScriptable *ItemEncryptedLoader::scriptableObject()
function ItemSaverPtr (line 987) | ItemSaverPtr ItemEncryptedLoader::createSaver()
FILE: plugins/itemencrypted/itemencrypted.h
function namespace (line 15) | namespace Ui {
function QString (line 83) | QString author() const override { return QString(); }
function QVariant (line 85) | QVariant icon() const override { return QVariant(IconLock); }
type GpgProcessStatus (line 121) | enum GpgProcessStatus {
FILE: plugins/itemfakevim/fakevim/fakevimactions.cpp
type FakeVim (line 12) | namespace FakeVim {
type Internal (line 13) | namespace Internal {
function QVariant (line 25) | QVariant FvBaseAspect::value() const
function QVariant (line 36) | QVariant FvBaseAspect::defaultValue() const
function QString (line 47) | QString FvBaseAspect::settingsKey() const
function setAutoApply (line 53) | void setAutoApply(bool ) {}
function FvBaseAspect (line 139) | FvBaseAspect *FakeVimSettings::item(const QString &name)
function QString (line 144) | QString FakeVimSettings::trySetValue(const QString &name, const QStr...
function FakeVimSettings (line 186) | FakeVimSettings *fakeVimSettings()
FILE: plugins/itemfakevim/fakevim/fakevimactions.h
function namespace (line 20) | namespace FakeVim {
FILE: plugins/itemfakevim/fakevim/fakevimhandler.cpp
type FakeVim (line 84) | namespace FakeVim {
type Internal (line 85) | namespace Internal {
type Mode (line 125) | enum Mode
type BlockInsertMode (line 133) | enum BlockInsertMode
type SubMode (line 145) | enum SubMode
type SubSubMode (line 178) | enum SubSubMode
type VisualMode (line 195) | enum VisualMode
type MoveType (line 203) | enum MoveType
type EventResult (line 232) | enum EventResult
type CursorPosition (line 240) | struct CursorPosition
method CursorPosition (line 242) | CursorPosition() = default;
method CursorPosition (line 243) | CursorPosition(int block, int column) : line(block), column(column...
method CursorPosition (line 244) | explicit CursorPosition(const QTextCursor &tc)
method CursorPosition (line 246) | CursorPosition(const QTextDocument *document, int position)
method isValid (line 252) | bool isValid() const { return line >= 0 && column >= 0; }
function QDebug (line 263) | QDebug operator<<(QDebug ts, const CursorPosition &pos)
class Mark (line 270) | class Mark
method Mark (line 273) | Mark(const CursorPosition &pos = CursorPosition(), const QString &...
method isValid (line 276) | bool isValid() const { return m_position.isValid(); }
method isLocal (line 278) | bool isLocal(const QString &localFileName) const
method CursorPosition (line 287) | CursorPosition position(const QTextDocument *document) const
method QString (line 304) | const QString &fileName() const { return m_fileName; }
method setFileName (line 306) | void setFileName(const QString &fileName) { m_fileName = fileName; }
type State (line 314) | struct State
method State (line 316) | State() = default;
method State (line 317) | State(int revision, const CursorPosition &position, const Marks &m...
method isValid (line 322) | bool isValid() const { return position.isValid(); }
type Column (line 331) | struct Column
method Column (line 333) | Column(int p, int l) : physical(p), logical(l) {}
function QDebug (line 338) | QDebug operator<<(QDebug ts, const Column &col)
type Register (line 343) | struct Register
method Register (line 345) | Register() = default;
method Register (line 346) | Register(const QString &c) : contents(c) {}
method Register (line 347) | Register(const QString &c, RangeMode m) : contents(c), rangemode(m...
function QDebug (line 352) | QDebug operator<<(QDebug ts, const Register ®)
type SearchData (line 357) | struct SearchData
function QString (line 364) | static QString replaceTildeWithHome(QString str)
function eatString (line 371) | static bool eatString(const QString &prefix, QString *str)
function QRegularExpression (line 379) | static QRegularExpression vimPatternToQtPattern(const QString &needle)
function afterEndOfLine (line 532) | static bool afterEndOfLine(const QTextDocument *doc, int position)
function searchForward (line 538) | static void searchForward(QTextCursor *tc, const QRegularExpression ...
function searchBackward (line 580) | static void searchBackward(QTextCursor *tc, const QRegularExpression...
function bracketSearchBackward (line 630) | static void bracketSearchBackward(QTextCursor *tc, const QString &ne...
function bracketSearchForward (line 642) | static void bracketSearchForward(QTextCursor *tc, const QString &nee...
function backslashed (line 663) | static char backslashed(char t)
type Modifier (line 675) | enum class Modifier {NONE,UPPERCASE,LOWERCASE}
function QString (line 677) | static QString applyReplacementLetterCases(QString repl,
function QChar (line 696) | static QChar applyReplacementLetterCases(QChar repl,
function substituteText (line 716) | static bool substituteText(QString *text,
function findUnescaped (line 794) | static int findUnescaped(QChar c, const QString &line, int from)
function setClipboardData (line 812) | static void setClipboardData(const QString &content, RangeMode mode,
function QByteArray (line 835) | static QByteArray toLocalEncoding(const QString &text)
function QString (line 844) | static QString fromLocalEncoding(const QByteArray &data)
function QString (line 853) | static QString getProcessOutput(const QString &command, const QStrin...
function isOnlyControlModifier (line 964) | static bool isOnlyControlModifier(const Qt::KeyboardModifiers &mods)
function isAcceptableModifier (line 969) | static bool isAcceptableModifier(const Qt::KeyboardModifiers &mods)
function QString (line 984) | QString Range::toString() const
function QDebug (line 994) | QDebug operator<<(QDebug ts, const Range &range)
function QDebug (line 1009) | QDebug operator<<(QDebug ts, const ExCommand &cmd)
function QDebug (line 1014) | QDebug operator<<(QDebug ts, const QList<QTextEdit::ExtraSelection> ...
function QString (line 1021) | QString quoteUnprintable(const QString &ba)
function startsWithWhitespace (line 1037) | static bool startsWithWhitespace(const QString &str, int col)
function QString (line 1051) | inline QString msgMarkNotSet(const QString &text)
class Input (line 1056) | class Input
method cleanModifier (line 1060) | static Qt::KeyboardModifiers cleanModifier(Qt::KeyboardModifiers m)
method Input (line 1065) | Input() = default;
method Input (line 1066) | explicit Input(QChar x)
method Input (line 1075) | Input(int k, Qt::KeyboardModifiers m, const QString &t = QString())
method isValid (line 1110) | bool isValid() const
method isDigit (line 1115) | bool isDigit() const
method isKey (line 1120) | bool isKey(int c) const
method isBackspace (line 1125) | bool isBackspace() const
method isReturn (line 1130) | bool isReturn() const
method isEscape (line 1135) | bool isEscape() const
method is (line 1141) | bool is(int c) const
method isControl (line 1146) | bool isControl() const
method isControl (line 1151) | bool isControl(int c) const
method isShift (line 1157) | bool isShift() const
method isShift (line 1162) | bool isShift(int c) const
method QString (line 1185) | QString text() const { return m_text; }
method QChar (line 1187) | QChar asChar() const
method toInt (line 1192) | int toInt(bool *ok, int base) const
method key (line 1208) | int key() const { return m_key; }
method modifiers (line 1210) | Qt::KeyboardModifiers modifiers() const { return m_modifiers; }
method QChar (line 1213) | QChar raw() const
method QString (line 1224) | QString toString() const
method QDebug (line 1256) | QDebug dump(QDebug ts) const
method qHash (line 1262) | auto qHash(const Input &i)
function SubMode (line 1277) | static SubMode letterCaseModeFromInput(const Input &input)
function SubMode (line 1289) | static SubMode indentModeFromInput(const Input &input)
function SubMode (line 1301) | static SubMode changeDeleteYankModeFromInput(const Input &input)
function QString (line 1313) | QString dotCommandFromSubMode(SubMode submode)
function QDebug (line 1347) | QDebug operator<<(QDebug ts, const Input &input) { return input.dump...
class Inputs (line 1349) | class Inputs : public QVector<Input>
method Inputs (line 1352) | Inputs() = default;
method Inputs (line 1354) | explicit Inputs(const QString &str, bool noremap = true, bool sile...
method noremap (line 1361) | bool noremap() const { return m_noremap; }
method silent (line 1363) | bool silent() const { return m_silent; }
function Input (line 1372) | static Input parseVimKeyName(const QString &keyName)
method cleanModifier (line 1060) | static Qt::KeyboardModifiers cleanModifier(Qt::KeyboardModifiers m)
method Input (line 1065) | Input() = default;
method Input (line 1066) | explicit Input(QChar x)
method Input (line 1075) | Input(int k, Qt::KeyboardModifiers m, const QString &t = QString())
method isValid (line 1110) | bool isValid() const
method isDigit (line 1115) | bool isDigit() const
method isKey (line 1120) | bool isKey(int c) const
method isBackspace (line 1125) | bool isBackspace() const
method isReturn (line 1130) | bool isReturn() const
method isEscape (line 1135) | bool isEscape() const
method is (line 1141) | bool is(int c) const
method isControl (line 1146) | bool isControl() const
method isControl (line 1151) | bool isControl(int c) const
method isShift (line 1157) | bool isShift() const
method isShift (line 1162) | bool isShift(int c) const
method QString (line 1185) | QString text() const { return m_text; }
method QChar (line 1187) | QChar asChar() const
method toInt (line 1192) | int toInt(bool *ok, int base) const
method key (line 1208) | int key() const { return m_key; }
method modifiers (line 1210) | Qt::KeyboardModifiers modifiers() const { return m_modifiers; }
method QChar (line 1213) | QChar raw() const
method QString (line 1224) | QString toString() const
method QDebug (line 1256) | QDebug dump(QDebug ts) const
method qHash (line 1262) | auto qHash(const Input &i)
class History (line 1436) | class History
method History (line 1439) | History() : m_items(QString()) {}
method QString (line 1442) | const QString ¤t() const { return m_items[m_index]; }
method QStringList (line 1443) | const QStringList &items() const { return m_items; }
method restart (line 1444) | void restart() { m_index = m_items.size() - 1; }
function QString (line 1462) | const QString &History::move(QStringView prefix, int skip)
class CommandBuffer (line 1481) | class CommandBuffer
method setPrompt (line 1484) | void setPrompt(const QChar &prompt) { m_prompt = prompt; }
method setContents (line 1485) | void setContents(const QString &s) { m_buffer = s; m_anchor = m_po...
method setContents (line 1487) | void setContents(const QString &s, int pos, int anchor = -1)
method QStringView (line 1492) | QStringView userContents() const { return QStringView{m_buffer}.le...
method QChar (line 1493) | const QChar &prompt() const { return m_prompt; }
method QString (line 1494) | const QString &contents() const { return m_buffer; }
method isEmpty (line 1495) | bool isEmpty() const { return m_buffer.isEmpty(); }
method cursorPos (line 1496) | int cursorPos() const { return m_pos; }
method anchorPos (line 1497) | int anchorPos() const { return m_anchor; }
method hasSelection (line 1498) | bool hasSelection() const { return m_pos != m_anchor; }
method insertChar (line 1500) | void insertChar(QChar c) { m_buffer.insert(m_pos++, c); m_anchor =...
method insertText (line 1501) | void insertText(const QString &s)
method deleteChar (line 1505) | void deleteChar() { if (m_pos) m_buffer.remove(--m_pos, 1); m_anch...
method moveLeft (line 1507) | void moveLeft() { if (m_pos) m_userPos = --m_pos; }
method moveRight (line 1508) | void moveRight() { if (m_pos < m_buffer.size()) m_userPos = ++m_po...
method moveStart (line 1509) | void moveStart() { m_userPos = m_pos = 0; }
method moveEnd (line 1510) | void moveEnd() { m_userPos = m_pos = m_buffer.size(); }
method setHistoryAutoSave (line 1512) | void setHistoryAutoSave(bool autoSave) { m_historyAutoSave = autoS...
method userContentsValid (line 1513) | bool userContentsValid() const { return m_userPos >= 0 && m_userPo...
method historyDown (line 1514) | void historyDown() { if (userContentsValid()) setContents(m_histor...
method historyUp (line 1515) | void historyUp() { if (userContentsValid()) setContents(m_history....
method QStringList (line 1516) | const QStringList &historyItems() const { return m_history.items(); }
method historyPush (line 1517) | void historyPush(const QString &item = QString())
method clear (line 1522) | void clear()
method QString (line 1530) | QString display() const
method deleteSelected (line 1545) | void deleteSelected()
method handleInput (line 1556) | bool handleInput(const Input &input)
class ModeMapping (line 1612) | class ModeMapping : public QHash<Input, ModeMapping>
method Inputs (line 1615) | const Inputs &value() const { return m_value; }
method setValue (line 1616) | void setValue(const Inputs &value) { m_value = value; }
class MappingsIterator (line 1625) | class MappingsIterator : public QVector<ModeMapping::Iterator>
method MappingsIterator (line 1628) | MappingsIterator(Mappings *mappings, char mode = -1, const Inputs ...
method reset (line 1636) | void reset(char mode = 0)
method isValid (line 1648) | bool isValid() const { return !empty(); }
method canExtend (line 1651) | bool canExtend() const { return isValid() && !last()->empty(); }
method isComplete (line 1654) | bool isComplete() const { return m_lastValid != -1; }
method mapLength (line 1657) | int mapLength() const { return m_lastValid + 1; }
method walk (line 1659) | bool walk(const Input &input)
method walk (line 1684) | bool walk(const Inputs &inputs)
method Inputs (line 1694) | const Inputs &inputs() const
method remove (line 1699) | void remove()
method setInputs (line 1721) | void setInputs(const Inputs &key, const Inputs &inputs, bool uniqu...
method Inputs (line 1730) | const Inputs ¤tInputs() const { return m_currentInputs; }
type MappingState (line 1741) | struct MappingState {
method MappingState (line 1742) | MappingState() = default;
method MappingState (line 1743) | MappingState(bool noremap, bool silent, bool editBlock)
class FakeVimHandler::Private (line 1750) | class FakeVimHandler::Private : public QObject
method mvCount (line 1854) | int mvCount() const { return qMax(1, g.mvcount); }
method opCount (line 1855) | int opCount() const { return qMax(1, g.opcount); }
method count (line 1856) | int count() const { return mvCount() * opCount(); }
method QTextBlock (line 1857) | QTextBlock block() const { return m_cursor.block(); }
method leftDist (line 1858) | int leftDist() const { return position() - block().position(); }
method rightDist (line 1859) | int rightDist() const { return block().length() - leftDist() - (is...
method atBlockStart (line 1860) | bool atBlockStart() const { return m_cursor.atBlockStart(); }
method atBlockEnd (line 1861) | bool atBlockEnd() const { return m_cursor.atBlockEnd(); }
method atEndOfLine (line 1862) | bool atEndOfLine() const { return atBlockEnd() && block().length()...
method atDocumentEnd (line 1863) | bool atDocumentEnd() const { return position() >= lastPositionInDo...
method atDocumentStart (line 1864) | bool atDocumentStart() const { return m_cursor.atStart(); }
method scrollDown (line 1913) | void scrollDown(int count) { scrollUp(-count); }
method moveUp (line 1956) | void moveUp(int n = 1) { moveDown(-n); }
method moveUpVisually (line 1958) | void moveUpVisually(int n = 1) { moveDownVisually(-n); }
method moveVertically (line 1960) | void moveVertically(int n = 1) {
method movePageUp (line 1970) | void movePageUp(int count = 1) { movePageDown(-count); }
method dump (line 1971) | void dump(const char *msg) const {
method moveRight (line 1975) | void moveRight(int n = 1) {
method moveLeft (line 1988) | void moveLeft(int n = 1) {
method moveToNextCharacter (line 1992) | void moveToNextCharacter() {
method moveToPreviousCharacter (line 1997) | void moveToPreviousCharacter() {
method setAnchor (line 2002) | void setAnchor() {
method setAnchor (line 2005) | void setAnchor(int position) {
method setPosition (line 2008) | void setPosition(int position) {
method setAnchorAndPosition (line 2011) | void setAnchorAndPosition(int anchor, int position) {
method moveToPreviousParagraph (line 2031) | bool moveToPreviousParagraph(int count = 1) { return moveToNextPar...
method clearMessage (line 2044) | void clearMessage() { showMessage(MessageInfo, QString()); }
method QTextDocument (line 2053) | QTextDocument *document() const { return EDITOR(document()); }
method QChar (line 2054) | QChar characterAt(int pos) const { return document()->characterAt(...
method QChar (line 2055) | QChar characterAtCursor() const { return characterAt(position()); }
method beginLargeEditBlock (line 2059) | void beginLargeEditBlock() { beginEditBlock(true); }
method breakEditBlock (line 2061) | void breakEditBlock() { m_buffer->breakEditBlock = true; }
method canModifyBufferData (line 2063) | bool canModifyBufferData() const { return m_buffer->currentHandler...
method isCommandLineMode (line 2072) | bool isCommandLineMode() const { return g.mode == ExMode || g.subs...
method isInsertMode (line 2073) | bool isInsertMode() const { return g.mode == InsertMode || g.mode ...
method isOperatorPending (line 2075) | bool isOperatorPending() const {
method isVisualMode (line 2091) | bool isVisualMode() const { return g.visualMode != NoVisualMode; }
method isNoVisualMode (line 2092) | bool isNoVisualMode() const { return g.visualMode == NoVisualMode; }
method isVisualCharMode (line 2093) | bool isVisualCharMode() const { return g.visualMode == VisualCharM...
method isVisualLineMode (line 2094) | bool isVisualLineMode() const { return g.visualMode == VisualLineM...
method isVisualBlockMode (line 2095) | bool isVisualBlockMode() const { return g.visualMode == VisualBloc...
method anchor (line 2144) | int anchor() const { return m_cursor.anchor(); }
method position (line 2145) | int position() const { return m_cursor.position(); }
method Range (line 2174) | Range currentRange() const { return Range(position(), anchor(), g....
method revision (line 2190) | int revision() const { return document()->availableUndoSteps(); }
method setDotCommand (line 2198) | void setDotCommand(const QString &cmd) { g.dotCommand = cmd; }
method setDotCommand (line 2199) | void setDotCommand(const QString &cmd, int n) { g.dotCommand = cmd...
method CursorPosition (line 2214) | CursorPosition markLessPosition() const { return mark('<').positio...
method CursorPosition (line 2215) | CursorPosition markGreaterPosition() const { return mark('>').posi...
type BufferData (line 2284) | struct BufferData
type InsertState (line 2303) | struct InsertState {
type GlobalData (line 2327) | struct GlobalData
method GlobalData (line 2329) | GlobalData()
function initSingleShotTimer (line 2415) | static void initSingleShotTimer(QTimer *timer,
function EventResult (line 2633) | EventResult FakeVimHandler::Private::handleEvent(QKeyEvent *ev)
function EventResult (line 2855) | EventResult FakeVimHandler::Private::handleKey(const Input &input)
function EventResult (line 2934) | EventResult FakeVimHandler::Private::handleDefaultKey(const Input &i...
function EventResult (line 2957) | EventResult FakeVimHandler::Private::handleCurrentMapAsDefault()
function EventResult (line 3072) | EventResult FakeVimHandler::Private::stopWaitForMapping(bool hasInput)
function QTextCursor (line 3397) | QTextCursor FakeVimHandler::Private::editorCursor() const
function EventResult (line 4334) | EventResult FakeVimHandler::Private::handleCommandMode(const Input &...
function EventResult (line 5169) | EventResult FakeVimHandler::Private::handleInsertOrReplaceMode(const...
function EventResult (line 5607) | EventResult FakeVimHandler::Private::handleExMode(const Input &input)
function EventResult (line 5648) | EventResult FakeVimHandler::Private::handleSearchSubSubMode(const In...
type Type (line 6010) | enum Type { Map, Noremap, Unmap }
function foreach (line 6110) | foreach (const QString &item, g.commandBuffer.historyItems()) {
function QTextCursor (line 6804) | QTextCursor FakeVimHandler::Private::search(const SearchData &sd, int st...
function someInt (line 7135) | static int someInt(const QString &str)
function Column (line 7384) | Column FakeVimHandler::Private::cursorColumn() const
function QString (line 7524) | QString FakeVimHandler::Private::selectText(const Range &range) const
function QString (line 8046) | QString FakeVimHandler::Private::lineContents(int line) const
function QString (line 8051) | QString FakeVimHandler::Private::textAt(int from, int to) const
function QTextBlock (line 8161) | QTextBlock FakeVimHandler::Private::blockAt(int pos) const
function QTextBlock (line 8166) | QTextBlock FakeVimHandler::Private::nextLine(const QTextBlock &block) const
function QTextBlock (line 8171) | QTextBlock FakeVimHandler::Private::previousLine(const QTextBlock &block...
function QWidget (line 8259) | QWidget *FakeVimHandler::Private::editor() const
function Column (line 8720) | Column FakeVimHandler::Private::indentation(const QString &line) const
function QString (line 8739) | QString FakeVimHandler::Private::tabExpand(int n) const
function QString (line 8792) | QString FakeVimHandler::Private::visualDotCommand() const
function Mark (line 9229) | Mark FakeVimHandler::Private::mark(QChar code) const
function RangeMode (line 9283) | RangeMode FakeVimHandler::Private::registerRangeMode(int reg) const
function QString (line 9339) | QString FakeVimHandler::Private::registerContents(int reg) const
function QString (line 9518) | QString FakeVimHandler::currentFileName() const
function QWidget (line 9528) | QWidget *FakeVimHandler::widget()
function QString (line 9546) | QString FakeVimHandler::tabExpand(int n) const
function QTextCursor (line 9569) | QTextCursor FakeVimHandler::textCursor() const
FILE: plugins/itemfakevim/fakevim/fakevimhandler.h
type RangeMode (line 21) | enum RangeMode
type FAKEVIM_EXPORT (line 32) | struct FAKEVIM_EXPORT
function QString (line 36) | QString toString() const;
type MessageLevel (line 60) | enum MessageLevel
function connect (line 76) | void connect(const Callable &callable) { m_callables.push_back(callable); }
FILE: plugins/itemfakevim/fakevim/fakevimtr.h
function namespace (line 8) | namespace FakeVim {
FILE: plugins/itemfakevim/itemfakevim.cpp
function drawPlainTextDocument (line 44) | void drawPlainTextDocument(
class TextEditWrapper (line 112) | class TextEditWrapper final : public QObject
method TextEditWrapper (line 115) | explicit TextEditWrapper(QAbstractScrollArea *editor)
method install (line 159) | void install()
method eventFilter (line 166) | bool eventFilter(QObject *obj, QEvent *ev) override
method FakeVimHandler (line 285) | FakeVimHandler &fakeVimHandler() { return *m_handler; }
method highlightMatches (line 287) | void highlightMatches(const QString &pattern)
method setBlockSelection (line 324) | void setBlockSelection(bool on)
method hasBlockSelection (line 331) | bool hasBlockSelection() const
method setTextCursor (line 336) | void setTextCursor(const QTextCursor &tc)
method QTextCursor (line 341) | QTextCursor textCursor() const
method QTextDocument (line 346) | QTextDocument *document() const
method QAbstractScrollArea (line 351) | QAbstractScrollArea *editor() const { return m_textEditWidget; }
method setLineWrappingEnabled (line 353) | void setLineWrappingEnabled(bool enable)
method onSelectionChanged (line 362) | void onSelectionChanged() {
method horizontalOffset (line 378) | int horizontalOffset() const
method verticalOffset (line 384) | int verticalOffset() const
method paintDocument (line 389) | void paintDocument(QPainter *painter)
method updateSelections (line 399) | void updateSelections()
class Proxy (line 424) | class Proxy final : public QObject
method Proxy (line 427) | Proxy(TextEditWrapper *editorWidget, QStatusBar *statusBar, QObject *p...
method changeStatusData (line 453) | void changeStatusData(const QString &info)
method highlightMatches (line 458) | void highlightMatches(const QString &pattern)
method setStatusIcon (line 463) | void setStatusIcon(QStyle::StandardPixmap standardPixmap)
method changeStatusMessage (line 484) | void changeStatusMessage(
method changeExtraInformation (line 514) | void changeExtraInformation(const QString &info)
method handleExCommand (line 519) | void handleExCommand(bool *handled, const ExCommand &cmd)
method requestSetBlockSelection (line 548) | void requestSetBlockSelection(const QTextCursor &cursor)
method requestDisableBlockSelection (line 554) | void requestDisableBlockSelection()
method requestBlockSelection (line 559) | void requestBlockSelection(QTextCursor *cursor)
method cmdLineChanged (line 566) | void cmdLineChanged()
method edited (line 575) | void edited(const QString &text, int cursorPos, int anchorPos)
method emitEditorSignal (line 580) | bool emitEditorSignal(const char *signal)
method clickDialogButton (line 591) | void clickDialogButton(QDialogButtonBox::StandardButton standardButton)
method save (line 600) | void save()
method saveAndClose (line 606) | void saveAndClose()
method cancel (line 612) | void cancel()
method invalidate (line 618) | void invalidate()
method wantSaveAndQuit (line 624) | bool wantSaveAndQuit(const ExCommand &cmd)
method wantSave (line 629) | bool wantSave(const ExCommand &cmd)
method wantQuit (line 634) | bool wantQuit(const ExCommand &cmd)
method setOption (line 639) | bool setOption(const QString &option, bool enable)
function connectSignals (line 656) | void connectSignals(FakeVimHandler *handler, Proxy *proxy)
function installEditor (line 700) | bool installEditor(QAbstractScrollArea *textEdit, const QString &sourceF...
function installEditor (line 734) | bool installEditor(QObject *obj, const QString &sourceFileName, ItemFake...
function QVariant (line 748) | QVariant ItemFakeVimLoader::icon() const
function QWidget (line 772) | QWidget *ItemFakeVimLoader::createSettingsWidget(QWidget *parent)
FILE: plugins/itemfakevim/itemfakevim.h
function namespace (line 8) | namespace Ui {
FILE: plugins/itemimage/itemimage.cpp
function getImageData (line 28) | bool getImageData(
function getPrefferedImageData (line 48) | bool getPrefferedImageData(
function getFallbackImageData (line 57) | bool getFallbackImageData(
function getSvgData (line 73) | bool getSvgData(
function getAnimatedImageData (line 79) | bool getAnimatedImageData(const QVariantMap &dataMap, QByteArray *data, ...
function getPixmapFromData (line 93) | bool getPixmapFromData(const QVariantMap &dataMap, QPixmap *pix)
function ItemWidget (line 194) | ItemWidget *ItemImageLoader::create(const QVariantMap &data, QWidget *pa...
function QStringList (line 221) | QStringList ItemImageLoader::formatsToSave() const
function QWidget (line 246) | QWidget *ItemImageLoader::createSettingsWidget(QWidget *parent)
function QObject (line 258) | QObject *ItemImageLoader::createExternalEditor(const QModelIndex &, cons...
FILE: plugins/itemimage/itemimage.h
function namespace (line 17) | namespace Ui {
function QString (line 66) | QString author() const override { return QString(); }
FILE: plugins/itemnotes/itemnotes.cpp
function QWidget (line 39) | QWidget *createIconWidget(const QByteArray &icon, QWidget *parent)
function QStringList (line 210) | QStringList ItemNotesLoader::formatsToSave() const
function QWidget (line 229) | QWidget *ItemNotesLoader::createSettingsWidget(QWidget *parent)
function ItemWidget (line 247) | ItemWidget *ItemNotesLoader::transform(ItemWidget *itemWidget, const QVa...
FILE: plugins/itemnotes/itemnotes.h
function namespace (line 12) | namespace Ui {
type NotesPosition (line 19) | enum NotesPosition {
function QString (line 64) | QString author() const override { return QString(); }
FILE: plugins/itempinned/itempinned.cpp
function isPinned (line 23) | bool isPinned(const QModelIndex &index)
function Command (line 29) | Command dummyPinCommand()
function containsPinnedItems (line 37) | bool containsPinnedItems(const QModelIndexList &indexList)
function QString (line 146) | QString ItemPinnedScriptable::getMimePinned() const
function QStringList (line 305) | QStringList ItemPinnedLoader::formatsToSave() const
function ItemWidget (line 310) | ItemWidget *ItemPinnedLoader::transform(ItemWidget *itemWidget, const QV...
function ItemSaverPtr (line 315) | ItemSaverPtr ItemPinnedLoader::transformSaver(const ItemSaverPtr &saver,...
function ItemScriptable (line 320) | ItemScriptable *ItemPinnedLoader::scriptableObject()
FILE: plugins/itempinned/itempinned.h
function QString (line 84) | QString author() const override { return QString(); }
function QObject (line 99) | const QObject *signaler() const override { return this; }
FILE: plugins/itemsync/filewatcher.cpp
class FileWatcherLock (line 40) | class FileWatcherLock final {
method FileWatcherLock (line 42) | explicit FileWatcherLock(FileWatcher *fileWatcher)
method lock (line 51) | bool lock() {
class SyncDataFile (line 62) | class SyncDataFile {
method SyncDataFile (line 64) | SyncDataFile() = default;
method SyncDataFile (line 66) | explicit SyncDataFile(const QString &path, const QString &format = QSt...
method QString (line 71) | const QString &path() const { return m_path; }
method setPath (line 72) | void setPath(const QString &path) { m_path = path; }
method QString (line 74) | const QString &format() const { return m_format; }
method setFormat (line 75) | void setFormat(const QString &format) { m_format = format; }
method qint64 (line 77) | qint64 size() const {
method QString (line 82) | QString toString() const {
method QByteArray (line 89) | QByteArray readAll() const
function QDataStream (line 120) | QDataStream &operator<<(QDataStream &out, SyncDataFile value)
function QDataStream (line 125) | QDataStream &operator>>(QDataStream &in, SyncDataFile &value)
function registerSyncDataFileConverter (line 135) | void registerSyncDataFileConverter()
type Ext (line 146) | struct Ext {
method Ext (line 147) | Ext() : extension(), format() {}
method Ext (line 149) | Ext(const QString &extension, const QString &format)
type BaseNameExtensions (line 160) | struct BaseNameExtensions {
method BaseNameExtensions (line 161) | explicit BaseNameExtensions(const QString &baseName = QString(),
function FileFormat (line 180) | FileFormat getFormatSettingsFromFileName(const QString &fileName,
function getBaseNameAndExtension (line 197) | void getBaseNameAndExtension(const QString &fileName, QString *baseName,...
function ExtensionsAndFormats (line 219) | const ExtensionsAndFormats &fileExtensionsAndFormats()
function QString (line 241) | QString findByFormat(const QString &format, const QList<FileFormat> &for...
function Ext (line 261) | Ext findByExtension(const QString &fileName, const QList<FileFormat> &fo...
method Ext (line 147) | Ext() : extension(), format() {}
method Ext (line 149) | Ext(const QString &extension, const QString &format)
function saveItemFile (line 293) | bool saveItemFile(const QString &filePath, const QByteArray &bytes,
function canUseFile (line 308) | bool canUseFile(const QFileInfo &info)
function getBaseNameExtension (line 313) | bool getBaseNameExtension(const QString &filePath, const QList<FileForma...
function BaseNameExtensionsList (line 330) | BaseNameExtensionsList listFiles(
function isBaseNameLessThan (line 361) | bool isBaseNameLessThan(const QString &lhsBaseName, const QString &rhsBa...
function QStringList (line 379) | QStringList listFiles(const QDir &dir)
function isUniqueBaseName (line 415) | bool isUniqueBaseName(const QString &baseName, const QDir &dir,
function moveFormatFiles (line 428) | void moveFormatFiles(const QString &oldPath, const QString &newPath,
function copyFormatFiles (line 437) | void copyFormatFiles(const QString &oldPath, const QString &newPath,
function removeFormatFiles (line 446) | void removeFormatFiles(const QString &path, const QVariantMap &mimeToExt...
function variantTypeId (line 452) | int variantTypeId(const QVariant &value)
function rebaseSyncDataFilePaths (line 461) | void rebaseSyncDataFilePaths(QVariantMap *itemData, const QVariantMap &m...
function renameToUnique (line 488) | bool renameToUnique(
function QString (line 536) | QString findLastOwnBaseName(QAbstractItemModel *model, int fromRow) {
function QString (line 548) | QString FileWatcher::getBaseName(const QModelIndex &index)
function QString (line 553) | QString FileWatcher::getBaseName(const QVariantMap &data)
function Hash (line 593) | Hash FileWatcher::calculateHash(const QByteArray &bytes)
function QVariantMap (line 674) | QVariantMap FileWatcher::itemDataFromFiles(const QDir &dir, const BaseNa...
function QString (line 947) | QString FileWatcher::oldBaseName(const QModelIndex &index) const
FILE: plugins/itemsync/filewatcher.h
type Ext (line 19) | struct Ext
type BaseNameExtensions (line 20) | struct BaseNameExtensions
function UpdateType (line 35) | enum class UpdateType {
FILE: plugins/itemsync/itemsync.cpp
type syncTabsTableColumns (line 43) | namespace syncTabsTableColumns {
type formatSettingsTableColumns (line 51) | namespace formatSettingsTableColumns {
function readConfigHeader (line 68) | bool readConfigHeader(QDataStream *stream)
function readConfig (line 75) | bool readConfig(QIODevice *file, QVariantMap *config)
function writeConfiguration (line 89) | void writeConfiguration(QIODevice *file, const QStringList &savedFiles)
function QString (line 101) | QString iconFromId(int id)
function QPushButton (line 106) | QPushButton *createBrowseButton()
function hasVideoExtension (line 116) | bool hasVideoExtension(const QString &ext)
function hasAudioExtension (line 127) | bool hasAudioExtension(const QString &ext)
function hasImageExtension (line 135) | bool hasImageExtension(const QString &ext)
function hasArchiveExtension (line 155) | bool hasArchiveExtension(const QString &ext)
function hasTextExtension (line 166) | bool hasTextExtension(const QString &ext)
function iconFromBaseNameExtensionHelper (line 183) | int iconFromBaseNameExtensionHelper(const QString &baseName)
function iconFromMimeHelper (line 203) | int iconFromMimeHelper(const QString &format)
function QString (line 216) | QString iconFromUserExtension(const QStringList &fileNames, const QList<...
function QString (line 233) | QString iconFromMime(const QString &format)
function QString (line 238) | QString iconForItem(const QVariantMap &dataMap, const QString &baseName,...
function isOwnFile (line 277) | bool isOwnFile(const QString &baseName)
function isOwnItem (line 282) | bool isOwnItem(const QModelIndex &index)
function containsItemsWithNotOwnedFiles (line 288) | bool containsItemsWithNotOwnedFiles(const QList<QModelIndex> &indexList)
function fixUserExtensions (line 293) | void fixUserExtensions(QStringList *exts)
function fixUserMimeType (line 309) | void fixUserMimeType(QString *mimeType)
function setNormalStretchFixedColumns (line 316) | void setNormalStretchFixedColumns(QTableWidget *table, int normalColumn,...
function hasOnlyInternalData (line 325) | bool hasOnlyInternalData(const QVariantMap &data)
function QVariantMap (line 477) | QVariantMap ItemSyncSaver::copyItem(const QAbstractItemModel &, const QV...
function QString (line 521) | QString ItemSyncScriptable::getMimeBaseName() const
function QString (line 526) | QString ItemSyncScriptable::selectedTabPath()
function QWidget (line 616) | QWidget *ItemSyncLoader::createSettingsWidget(QWidget *parent)
function ItemSaverPtr (line 669) | ItemSaverPtr ItemSyncLoader::loadItems(const QString &tabName, QAbstract...
function ItemSaverPtr (line 679) | ItemSaverPtr ItemSyncLoader::initializeTab(const QString &tabName, QAbst...
function ItemWidget (line 684) | ItemWidget *ItemSyncLoader::transform(ItemWidget *itemWidget, const QVar...
function ItemScriptable (line 702) | ItemScriptable *ItemSyncLoader::scriptableObject()
function ItemSaverPtr (line 731) | ItemSaverPtr ItemSyncLoader::loadItems(const QString &tabName, QAbstract...
FILE: plugins/itemsync/itemsync.h
function namespace (line 14) | namespace Ui {
type FileFormat (line 21) | struct FileFormat
function Q_OBJECT (line 68) | Q_OBJECT
function QString (line 121) | QString author() const override { return QString(); }
function QVariant (line 123) | QVariant icon() const override { return QVariant(IconUpload); }
FILE: plugins/itemtags/itemtags.cpp
type tagsTableColumns (line 40) | namespace tagsTableColumns {
class ElidedLabel (line 51) | class ElidedLabel final : public QLabel
method ElidedLabel (line 54) | explicit ElidedLabel(const QString &text, QWidget *parent = nullptr)
method paintEvent (line 60) | void paintEvent(QPaintEvent *) override
function isTagValid (line 69) | bool isTagValid(const ItemTags::Tag &tag)
function QString (line 77) | QString serializeColor(const QColor &color)
function QColor (line 89) | QColor deserializeColor(const QString &colorName)
function setColorIcon (line 104) | void setColorIcon(QPushButton *button, const QColor &color)
function setFixedColumnSize (line 112) | void setFixedColumnSize(QTableWidget *table, int logicalIndex)
function QVariant (line 118) | QVariant cellWidgetProperty(QTableWidget *table, int row, int column, co...
function QStringList (line 123) | QStringList tags(const QVariant &tags)
function QStringList (line 128) | QStringList tags(const QVariantMap &itemData)
function QString (line 133) | QString toScriptString(const QString &text)
function QString (line 138) | QString addTagText()
function QString (line 143) | QString removeTagText()
function Command (line 148) | Command dummyTagCommand()
function addTagCommands (line 156) | void addTagCommands(const QString &tagName, const QString &match, QVecto...
function QString (line 173) | QString escapeTagField(const QString &field)
function QString (line 178) | QString unescapeTagField(const QString &field)
function initTagWidget (line 183) | void initTagWidget(QWidget *tagWidget, const ItemTags::Tag &tag, const Q...
function QFont (line 222) | QFont smallerFont(QFont font)
function addTagButtons (line 232) | void addTagButtons(QBoxLayout *layout, const ItemTags::Tags &tags)
function findMatchingTag (line 250) | ItemTags::Tag findMatchingTag(const QString &tagText, const ItemTags::Ta...
function isLocked (line 266) | bool isLocked(const QModelIndex &index, const ItemTags::Tags &tags)
function containsLockedItems (line 278) | bool containsLockedItems(const QModelIndexList &indexList, const ItemTag...
class TagTableWidgetItem (line 287) | class TagTableWidgetItem final : public QTableWidgetItem
method TagTableWidgetItem (line 294) | explicit TagTableWidgetItem(const QString &text)
method QVariant (line 299) | QVariant data(int role) const override
method setData (line 307) | void setData(int role, const QVariant &value) override
method setTag (line 316) | void setTag(const ItemTags::Tag &tag)
function QStringList (line 367) | QStringList ItemTagsScriptable::getUserTags() const
function QString (line 372) | QString ItemTagsScriptable::getMimeTags() const
function QStringList (line 377) | QStringList ItemTagsScriptable::tags()
function QString (line 517) | QString ItemTagsScriptable::askTagName(const QString &dialogTitle, const...
function QString (line 523) | QString ItemTagsScriptable::askRemoveTagName(const QStringList &tags)
function QStringList (line 548) | QStringList ItemTagsScriptable::tags(int row)
function QStringList (line 620) | QStringList ItemTagsLoader::formatsToSave() const
function QWidget (line 648) | QWidget *ItemTagsLoader::createSettingsWidget(QWidget *parent)
function ItemWidget (line 674) | ItemWidget *ItemTagsLoader::transform(ItemWidget *itemWidget, const QVar...
function ItemSaverPtr (line 684) | ItemSaverPtr ItemTagsLoader::transformSaver(const ItemSaverPtr &saver, Q...
function ItemScriptable (line 701) | ItemScriptable *ItemTagsLoader::scriptableObject()
function QStringList (line 748) | QStringList ItemTagsLoader::userTags() const
function QString (line 797) | QString ItemTagsLoader::serializeTag(const ItemTagsLoader::Tag &tag)
FILE: plugins/itemtags/itemtags.h
function namespace (line 14) | namespace Ui {
function Q_OBJECT (line 22) | Q_OBJECT
function Q_OBJECT (line 52) | Q_OBJECT
function QStringList (line 62) | QStringList getUserTags() const;
function QString (line 112) | QString author() const override { return QString(); }
function QVariant (line 114) | QVariant icon() const override { return QVariant(IconTag); }
FILE: plugins/itemtext/itemtext.cpp
function removeTrailingNull (line 42) | void removeTrailingNull(QString *text)
function getRichText (line 48) | bool getRichText(const QVariantMap &dataMap, QString *text)
function QString (line 58) | QString normalizeText(QString text)
function insertEllipsis (line 64) | void insertEllipsis(QTextCursor *tc)
function QMimeData (line 184) | QMimeData *ItemText::createMimeDataFromSelection() const
function ItemWidget (line 224) | ItemWidget *ItemTextLoader::create(const QVariantMap &data, QWidget *par...
function QStringList (line 263) | QStringList ItemTextLoader::formatsToSave() const
function QWidget (line 286) | QWidget *ItemTextLoader::createSettingsWidget(QWidget *parent)
FILE: plugins/itemtext/itemtext.h
function namespace (line 15) | namespace Ui {
function QString (line 64) | QString author() const override { return QString(); }
FILE: qxt/qxtglobalshortcut.cpp
function QKeySequence (line 200) | QKeySequence QxtGlobalShortcut::shortcut() const
function QString (line 216) | QString QxtGlobalShortcut::name() const
FILE: qxt/qxtglobalshortcut_mac.cpp
function OSStatus (line 44) | OSStatus qxt_mac_handle_hot_key(EventHandlerCallRef nextHandler, EventRe...
function quint32 (line 76) | quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers ...
function quint32 (line 103) | quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key, Qt::Keyboar...
FILE: qxt/qxtglobalshortcut_p.h
function class (line 46) | class QxtGlobalShortcutPrivate
FILE: qxt/qxtglobalshortcut_win.cpp
function quint32 (line 69) | quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers ...
function quint32 (line 87) | quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key, Qt::Keyboar...
FILE: qxt/qxtglobalshortcut_x11.cpp
function usePortal (line 59) | bool usePortal()
class GlobalShortcutsPortal (line 67) | class GlobalShortcutsPortal : public QObject
method GlobalShortcutsPortal (line 79) | static GlobalShortcutsPortal *instance()
method isValid (line 85) | bool isValid() const
method addShortcut (line 90) | void addShortcut(QxtGlobalShortcut *shortcut)
method removeShortcut (line 99) | void removeShortcut(QxtGlobalShortcut *shortcut)
method QString (line 109) | static QString normalizeShortcutString(const QString &shortcut)
method QString (line 114) | QString handleToken()
method QDBusObjectPath (line 121) | QDBusObjectPath initPortalGlobalShortcuts()
method connectPortal (line 144) | void connectPortal()
method disconnectPortal (line 159) | void disconnectPortal()
method bindPortalGlobalShortcuts (line 195) | void bindPortalGlobalShortcuts()
method GlobalShortcutsPortal (line 276) | GlobalShortcutsPortal()
method listShortcuts (line 293) | void listShortcuts()
method onListShortcuts (line 322) | void onListShortcuts(uint responseCode, const QVariantMap& results)
method onPortalSessionCreated (line 362) | void onPortalSessionCreated(uint responseCode, const QVariantMap& resu...
method onPortalGlobalShortcutActivated (line 385) | void onPortalGlobalShortcutActivated(
function createFirstWindow (line 423) | void createFirstWindow()
function maskModifiers (line 444) | QVector<quint32> maskModifiers()
class QxtX11ErrorHandler (line 451) | class QxtX11ErrorHandler final {
method qxtX11ErrorHandler (line 455) | static int qxtX11ErrorHandler(Display* display, XErrorEvent *event)
method QxtX11ErrorHandler (line 475) | QxtX11ErrorHandler()
class QxtX11Data (line 493) | class QxtX11Data final {
method QxtX11Data (line 495) | QxtX11Data()
method isValid (line 504) | bool isValid()
method Display (line 509) | Display *display()
method Window (line 515) | Window rootWindow()
method grabKey (line 520) | bool grabKey(quint32 keycode, quint32 modifiers, Window window)
method ungrabKey (line 539) | bool ungrabKey(quint32 keycode, quint32 modifiers, Window window)
function KeySym (line 554) | KeySym qtKeyToXKeySym(Qt::Key key, Qt::KeyboardModifiers mods)
function quint32 (line 661) | quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers ...
function quint32 (line 684) | quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key, Qt::Keyboar...
FILE: shared/gnome-extension/extension.js
constant SERVICE_NAME (line 7) | const SERVICE_NAME = 'com.github.hluk.copyq.GnomeClipboard';
constant OBJECT_PATH (line 8) | const OBJECT_PATH = '/com/github/hluk/copyq/GnomeClipboard';
constant INTERFACE_NAME (line 9) | const INTERFACE_NAME = 'com.github.hluk.CopyQ.GnomeClipboard1';
constant CLIENT_OBJECT_PATH (line 10) | const CLIENT_OBJECT_PATH = '/com/github/hluk/copyq/GnomeClipboardClient';
constant CLIENT_INTERFACE_NAME (line 11) | const CLIENT_INTERFACE_NAME = 'com.github.hluk.CopyQ.GnomeClipboardClien...
constant CLIPBOARD_TYPE_CLIPBOARD (line 12) | const CLIPBOARD_TYPE_CLIPBOARD = 0;
constant CLIPBOARD_TYPE_PRIMARY (line 13) | const CLIPBOARD_TYPE_PRIMARY = 1;
constant CLIPBOARD_TYPE_BOTH (line 14) | const CLIPBOARD_TYPE_BOTH = 2;
constant DEBUG (line 15) | const DEBUG = GLib.getenv('COPYQ_GNOME_EXTENSION_DEBUG') === '1';
constant INTERFACE_XML (line 17) | const INTERFACE_XML = `<node>
function debug (line 40) | function debug(message) {
function stringToBytes (line 45) | function stringToBytes(text) {
function toBytes (line 49) | function toBytes(value) {
function toDataVariant (line 66) | function toDataVariant(value) {
function metaSelectionTypeFromClipboardType (line 71) | function metaSelectionTypeFromClipboardType(clipboardType) {
function supportsClipboardType (line 78) | function supportsClipboardType(clipboardTypes, clipboardType) {
class CopyqClipboardExtension (line 84) | class CopyqClipboardExtension extends Extension {
method enable (line 85) | enable() {
method disable (line 112) | disable() {
method _setupListener (line 135) | _setupListener() {
method _setupSelectionTracking (line 150) | _setupSelectionTracking(selection) {
method _clipboardTypeFromSelectionType (line 158) | _clipboardTypeFromSelectionType(selectionType) {
method _onSelectionChange (line 171) | _onSelectionChange(selectionType) {
method _handleMethodCall (line 177) | _handleMethodCall(_connection, sender, _objectPath, _interfaceName, me...
method _notifyClients (line 226) | _notifyClients(clipboardType) {
method _readClipboardData (line 256) | _readClipboardData(clipboardType, requestedFormats, onDone) {
method _getClipboardFormats (line 312) | _getClipboardFormats(clipboardType) {
method _setClipboardData (line 323) | _setClipboardData(clipboardType, format, value) {
FILE: shared/plugins/example.js
function copyq_script (line 15) | function copyq_script() {
FILE: src/app/app.cpp
function installTranslator (line 26) | void installTranslator(const QString &filename, const QString &directory)
function installTranslator (line 33) | void installTranslator()
function setSessionName (line 81) | void setSessionName(const QString &sessionName)
function initSession (line 91) | void initSession(QCoreApplication *app, const QString &sessionName)
FILE: src/app/app.h
function class (line 14) | class App
FILE: src/app/applicationexceptionhandler.cpp
function logException (line 11) | void logException(const char *what)
FILE: src/app/applicationexceptionhandler.h
function namespace (line 15) | namespace detail {
function public (line 32) | public QtApplication
FILE: src/app/clipboardclient.cpp
function QString (line 25) | QString messageCodeToString(int code)
function QCoreApplication (line 41) | QCoreApplication *createClientApplication(int &argc, char **argv, const ...
FILE: src/app/clipboardmonitor.cpp
function hasSameData (line 18) | bool hasSameData(const QVariantMap &data, const QVariantMap &lastData)
function isClipboardDataHidden (line 38) | bool isClipboardDataHidden(const QVariantMap &data)
function isClipboardDataSecret (line 43) | bool isClipboardDataSecret(const QVariantMap &data)
function QString (line 94) | QString ClipboardMonitor::currentClipboardOwner()
FILE: src/app/clipboardownermonitor.h
function setUpdateInterval (line 27) | void setUpdateInterval(int ms) { m_timerSetOwner.setInterval(ms); }
FILE: src/app/clipboardserver.cpp
class QxtGlobalShortcut (line 50) | class QxtGlobalShortcut final {}
function uint (line 57) | uint monitorCommandStateHash(const QVector<Command> &commands)
function setTabWidth (line 76) | void setTabWidth(QTextEdit *editor, int spaces)
function cleanUpLogFilesTimer (line 84) | void cleanUpLogFilesTimer()
function setPreventScreenCapture (line 108) | void setPreventScreenCapture(QWindow *window, bool prevent)
function QStringList (line 254) | QStringList ClipboardServer::copyqStats() const
function ClientSocketPtr (line 505) | ClientSocketPtr ClipboardServer::findClient(int actionId)
FILE: src/app/clipboardserver.h
type NotificationButton (line 29) | struct NotificationButton
type ClientMessage (line 173) | struct ClientMessage {
FILE: src/common/action.cpp
function startProcess (line 24) | void startProcess(QProcess *process, const QStringList &args, QIODevice:...
function appendAndClearNonEmpty (line 36) | void appendAndClearNonEmpty(Entry &entry, Container &container)
function getScriptFromLabel (line 44) | bool getScriptFromLabel(const char *labelStr, const QString &cmd, int i,...
function parseCommands (line 56) | QList< QList<QStringList> > parseCommands(const QString &cmd, const QStr...
function pipeThroughProcesses (line 161) | void pipeThroughProcesses(Iterator begin, Iterator end)
function QString (line 185) | QString Action::commandLine() const
function QVariantMap (line 325) | const QVariantMap &Action::data() const
FILE: src/common/action.h
function QString (line 32) | QString commandLine() const;
function setWorkingDirectory (line 54) | void setWorkingDirectory(const QString &path) { m_workingDirectoryPath =...
function isRunning (line 61) | bool isRunning() const;
function setExitCode (line 69) | void setExitCode(int exitCode) { m_exitCode = exitCode; }
function QVariantMap (line 74) | const QVariantMap &data() const;
function setReadOutput (line 79) | void setReadOutput(bool read) { m_readOutput = read; }
FILE: src/common/actionhandlerenums.h
function ActionState (line 6) | enum class ActionState {
FILE: src/common/actionoutput.cpp
function connectActionOutput (line 19) | void connectActionOutput(Action *action, ActionOutput *actionOutput)
class ActionOutputItems (line 29) | class ActionOutputItems final : public QObject
method ActionOutputItems (line 32) | ActionOutputItems(
method onActionOutput (line 47) | void onActionOutput(const QByteArray &output)
method onActionFinished (line 56) | void onActionFinished(Action *)
method addItems (line 63) | void addItems(const QStringList &items)
class ActionOutputItem (line 77) | class ActionOutputItem final : public QObject
method ActionOutputItem (line 80) | ActionOutputItem(
method onActionOutput (line 93) | void onActionOutput(const QByteArray &output)
method onActionFinished (line 98) | void onActionFinished(Action *)
class ActionOutputIndex (line 114) | class ActionOutputIndex final : public QObject
method ActionOutputIndex (line 117) | ActionOutputIndex(
method onActionOutput (line 130) | void onActionOutput(const QByteArray &output)
method onActionFinished (line 136) | void onActionFinished(Action *action)
method changeItem (line 152) | void changeItem()
function actionOutput (line 175) | void actionOutput(
function actionOutput (line 186) | void actionOutput(
function actionOutput (line 196) | void actionOutput(
FILE: src/common/actiontablemodel.cpp
function QString (line 16) | QString actionStateToString(ActionState state)
function actionStateOrder (line 27) | int actionStateOrder(ActionState state)
function QVariant (line 118) | QVariant ActionTableModel::headerData(int section, Qt::Orientation orien...
function QVariant (line 156) | QVariant ActionTableModel::data(const QModelIndex &index, int role) const
function ActionState (line 232) | ActionState ActionTableModel::actionState(const ActionTableModel::Action...
FILE: src/common/actiontablemodel.h
type class (line 11) | enum class
type ActionData (line 34) | struct ActionData {
function ActionData (line 45) | const ActionData &actionData(int row) const { return m_actions[row]; }
FILE: src/common/appconfig.cpp
function QString (line 20) | QString defaultClipboardTabName()
function QVariant (line 26) | QVariant AppConfig::option(const QString &name) const
FILE: src/common/appconfig.h
function namespace (line 14) | namespace Config {
function class (line 577) | class AppConfig final
FILE: src/common/audioplayer.cpp
function initTimeoutMs (line 27) | int initTimeoutMs()
class SoundEntry (line 37) | class SoundEntry {
method SoundEntry (line 39) | SoundEntry() : m_sound(std::make_unique<ma_sound>()) {}
method ma_result (line 42) | ma_result initFromFile(
method ma_sound (line 51) | ma_sound *get() { return m_initialized ? m_sound.get() : nullptr; }
method atEnd (line 53) | bool atEnd() const { return m_initialized && ma_sound_at_end(m_sound.g...
method SoundEntry (line 61) | SoundEntry(SoundEntry &&) noexcept = default;
method SoundEntry (line 62) | SoundEntry &operator=(SoundEntry &&) noexcept = default;
method SoundEntry (line 63) | SoundEntry(const SoundEntry &) = delete;
method SoundEntry (line 64) | SoundEntry &operator=(const SoundEntry &) = delete;
type AudioPlayer::Private (line 73) | struct AudioPlayer::Private {
method collectFinished (line 79) | void collectFinished()
function QString (line 91) | QString audioBackendVersion()
function AudioPlayer (line 96) | AudioPlayer &AudioPlayer::instance()
function QString (line 161) | QString AudioPlayer::play(const QString &filePath, float volume)
function QString (line 194) | QString audioBackendVersion()
function AudioPlayer (line 199) | AudioPlayer &AudioPlayer::instance()
type AudioPlayer::Private (line 205) | struct AudioPlayer::Private {}
method collectFinished (line 79) | void collectFinished()
function QString (line 210) | QString AudioPlayer::play(const QString &, float)
FILE: src/common/audioplayer.h
function class (line 10) | class AudioPlayer {
FILE: src/common/client_server.cpp
function QString (line 18) | QString clipboardServerName(const QString &sessionName)
FILE: src/common/clientsocket.cpp
function doStreamDataSize (line 22) | int doStreamDataSize(T value)
function streamDataSize (line 34) | int streamDataSize(T value)
function headerDataSize (line 40) | int headerDataSize()
function readValue (line 52) | bool readValue(T *value, QByteArray *message)
function writeMessage (line 61) | bool writeMessage(QLocalSocket *socket, const QByteArray &msg)
FILE: src/common/clientsocket.h
function class (line 12) | class LocalSocketGuard final
FILE: src/common/clipboarddataguard.cpp
function clipboardCopyTimeoutMs (line 17) | int clipboardCopyTimeoutMs()
function QMimeData (line 24) | const QMimeData *dummyMimeData()
class ElapsedGuard (line 30) | class ElapsedGuard {
method ElapsedGuard (line 32) | explicit ElapsedGuard(const QString &type, const QString &format)
function QStringList (line 75) | QStringList ClipboardDataGuard::formats()
function QByteArray (line 87) | QByteArray ClipboardDataGuard::data(const QString &mime)
function QString (line 99) | QString ClipboardDataGuard::text()
function QImage (line 111) | QImage ClipboardDataGuard::getImageData()
function QByteArray (line 130) | QByteArray ClipboardDataGuard::getUtf8Data(const QString &format)
function QMimeData (line 172) | const QMimeData *ClipboardDataGuard::mimeData()
FILE: src/common/clipboarddataguard.h
function class (line 13) | class ClipboardDataGuard final {
FILE: src/common/clipboardmode.h
function ClipboardMode (line 6) | enum class ClipboardMode {
FILE: src/common/command.cpp
function QString (line 62) | QString Command::localizedName() const
function QDataStream (line 79) | QDataStream &operator<<(QDataStream &out, const Command &command)
function QDataStream (line 110) | QDataStream &operator>>(QDataStream &in, Command &command)
FILE: src/common/command.h
function namespace (line 11) | namespace CommandType {
type Command (line 33) | struct Command {
function namespace (line 131) | namespace Private {
FILE: src/common/commandstatus.h
type CommandStatus (line 7) | enum CommandStatus {
FILE: src/common/commandstore.cpp
function normalizeLineBreaks (line 22) | void normalizeLineBreaks(QString &cmd)
function loadCommand (line 33) | void loadCommand(const QSettings &settings, Commands *commands)
function saveValue (line 104) | void saveValue(const QString &key, const QRegularExpression &re, QSettin...
function saveValue (line 109) | void saveValue(const QString &key, const QVariant &value, QSettings *set...
function saveNewValue (line 116) | void saveNewValue(const QString &key, const Command &command, const Memb...
function saveCommand (line 122) | void saveCommand(const Command &c, QSettings *settings)
function Commands (line 160) | Commands importCommands(QSettings *settings)
function Commands (line 174) | Commands loadAllCommands()
function saveCommands (line 180) | void saveCommands(const Commands &commands)
function Commands (line 186) | Commands loadCommands(QSettings *settings)
function saveCommands (line 219) | void saveCommands(const Commands &commands, QSettings *settings)
function Commands (line 239) | Commands importCommandsFromFile(const QString &filePath)
function Commands (line 245) | Commands importCommandsFromText(const QString &commands)
function QString (line 251) | QString exportCommands(const Commands &commands)
FILE: src/common/commandstore.h
type Command (line 9) | struct Command
FILE: src/common/common.cpp
class MimeData (line 43) | class MimeData final : public QMimeData {
method QVariant (line 48) | QVariant retrieveData(const QString &mimeType, QVariant::Type preferre...
method QString (line 56) | QString getImageFormatFromMime(const QString &mime)
method cloneImageData (line 66) | void cloneImageData(
method canCloneImageData (line 91) | bool canCloneImageData(const QImage &image)
method setImageData (line 98) | bool setImageData(
method setImageData (line 115) | bool setImageData(
method Encoding (line 123) | Encoding encodingForName(const char *name)
method Encoding (line 132) | Encoding encodingForText(const QByteArray &bytes)
method findFormatsWithPrefix (line 153) | bool findFormatsWithPrefix(bool hasPrefix, const QString &prefix, cons...
method isBinaryImageFormat (line 163) | bool isBinaryImageFormat(const QString &format)
function QVariantMap (line 223) | QVariantMap cloneData(const QMimeData *rawData, const QStringList &forma...
function QVariantMap (line 229) | QVariantMap cloneData(const QMimeData *rawData)
function QMimeData (line 286) | QMimeData* createMimeData(const QVariantMap &data)
function anySessionOwnsClipboardData (line 323) | bool anySessionOwnsClipboardData(const QVariantMap &data)
function QString (line 328) | QString elideText(const QString &text, const QFont &font, const QString ...
function QString (line 406) | QString textLabelForData(const QVariantMap &data, const QFont &font, con...
function QString (line 450) | QString textLabelForData(const QVariantMap &data)
function renameToUnique (line 455) | void renameToUnique(QString *name, const QStringList &names)
function QString (line 463) | QString dataToText(const QByteArray &bytes, const QString &mime)
function isClipboardData (line 486) | bool isClipboardData(const QVariantMap &data)
function canDropToTab (line 491) | bool canDropToTab(const QDropEvent &event)
function acceptDrag (line 497) | void acceptDrag(QDropEvent *event)
function QByteArray (line 512) | QByteArray makeClipboardOwnerData()
function QString (line 522) | QString cloneText(const QMimeData &data)
FILE: src/common/config.cpp
function QString (line 17) | QString getConfigurationFilePathHelper()
function ensureSettingsDirectoryExists (line 28) | bool ensureSettingsDirectoryExists()
function QString (line 41) | const QString &getConfigurationFilePath()
function QString (line 47) | QString getConfigurationFilePath(const char *suffix)
function QString (line 57) | const QString &settingsDirectoryPath()
FILE: src/common/contenttype.h
function namespace (line 12) | namespace contentType {
FILE: src/common/display.cpp
function QScreen (line 16) | QScreen *screenForWidget(QWidget *w)
function smallIconSize (line 33) | int smallIconSize()
function QPoint (line 38) | QPoint toScreen(QPoint pos, QWidget *w)
function pointsToPixels (line 54) | int pointsToPixels(int points, QWidget *w)
FILE: src/common/encryption.cpp
function QString (line 44) | QString dekFilePath() { return getConfigurationFilePath("wrapped_dek.dat...
function QString (line 45) | QString saltFilePath() { return getConfigurationFilePath("kek_salt.dat"); }
function logFeatures (line 47) | void logFeatures()
function initializeQCA (line 57) | bool initializeQCA()
function backupFile (line 129) | bool backupFile(const QString &fileName)
function restoreBackupFile (line 153) | bool restoreBackupFile(const QString &fileName)
function removeBackup (line 188) | bool removeBackup(const QString &fileName)
function backupEncryptionFiles (line 204) | bool backupEncryptionFiles()
function restoreEncryptionFiles (line 210) | bool restoreEncryptionFiles()
function removeEncryptionBackups (line 216) | void removeEncryptionBackups()
function saveFile (line 222) | bool saveFile(const QString &fileName, const Encryption::SecureArray &data)
function canUseEncryptionKey (line 262) | bool canUseEncryptionKey(const char *operation, const QCA::SymmetricKey ...
function loadNonEmptySecureFile (line 277) | Encryption::SecureArray loadNonEmptySecureFile(const QString &path, cons...
function deriveFromPasswordAndSalt (line 303) | QCA::SymmetricKey deriveFromPasswordAndSalt(
function encrypt (line 325) | std::optional<QCA::SecureArray> encrypt(
function constantTimeEquals (line 362) | bool constantTimeEquals(const QByteArray &left, const QByteArray &right)
function QByteArray (line 374) | QByteArray hkdfExpandSha256SingleBlock(const QByteArray &prk, const QByt...
function QByteArray (line 394) | QByteArray hmacKeyFor(const QCA::SymmetricKey &key)
function QByteArray (line 412) | QByteArray hkdfSha256(const QByteArray &ikm,
function derivePerMessageKey (line 461) | QCA::SymmetricKey derivePerMessageKey(const QCA::SymmetricKey &key, cons...
function QByteArray (line 472) | QByteArray hmacTagFor(const QByteArray &payload, const QCA::SymmetricKey...
function encryptAuthenticated (line 481) | std::optional<Encryption::SecureArray> encryptAuthenticated(
function decryptAuthenticated (line 503) | std::optional<Encryption::SecureArray> decryptAuthenticated(
type Encryption (line 543) | namespace Encryption {
function SecureArray (line 604) | SecureArray EncryptionKey::wrapDEK(const SecureArray &password, const ...
function initialize (line 636) | bool initialize()
function QByteArray (line 642) | QByteArray encrypt(const SecureArray &data, const EncryptionKey &key)
function QByteArray (line 653) | QByteArray decrypt(const QByteArray &encryptedData, const EncryptionKe...
function removeEncryptionKeys (line 664) | void removeEncryptionKeys()
function EncryptionKey (line 685) | EncryptionKey saveKey(const EncryptionKey &key, const SecureArray &new...
function SecureArray (line 747) | SecureArray loadWrappedDEK()
function Salt (line 752) | Salt loadKEKSalt()
function QByteArray (line 782) | QByteArray EncryptionKey::wrapDEK(const QByteArray &, const QByteArray...
function initialize (line 796) | bool initialize()
function QByteArray (line 801) | QByteArray encrypt(const QByteArray &, const EncryptionKey &)
function QByteArray (line 806) | QByteArray decrypt(const QByteArray &, const EncryptionKey &)
function EncryptionKey (line 811) | EncryptionKey saveKey(const EncryptionKey &, const SecureArray &)
function SecureArray (line 816) | SecureArray loadWrappedDEK()
function QByteArray (line 821) | QByteArray loadKEKSalt()
function removeEncryptionKeys (line 826) | void removeEncryptionKeys()
type Encryption (line 763) | namespace Encryption {
function SecureArray (line 604) | SecureArray EncryptionKey::wrapDEK(const SecureArray &password, const ...
function initialize (line 636) | bool initialize()
function QByteArray (line 642) | QByteArray encrypt(const SecureArray &data, const EncryptionKey &key)
function QByteArray (line 653) | QByteArray decrypt(const QByteArray &encryptedData, const EncryptionKe...
function removeEncryptionKeys (line 664) | void removeEncryptionKeys()
function EncryptionKey (line 685) | EncryptionKey saveKey(const EncryptionKey &key, const SecureArray &new...
function SecureArray (line 747) | SecureArray loadWrappedDEK()
function Salt (line 752) | Salt loadKEKSalt()
function QByteArray (line 782) | QByteArray EncryptionKey::wrapDEK(const QByteArray &, const QByteArray...
function initialize (line 796) | bool initialize()
function QByteArray (line 801) | QByteArray encrypt(const QByteArray &, const EncryptionKey &)
function QByteArray (line 806) | QByteArray decrypt(const QByteArray &, const EncryptionKey &)
function EncryptionKey (line 811) | EncryptionKey saveKey(const EncryptionKey &, const SecureArray &)
function SecureArray (line 816) | SecureArray loadWrappedDEK()
function QByteArray (line 821) | QByteArray loadKEKSalt()
function removeEncryptionKeys (line 826) | void removeEncryptionKeys()
FILE: src/common/encryption.h
function namespace (line 14) | namespace QCA {
function namespace (line 18) | namespace Encryption {
FILE: src/common/globalshortcutcommands.cpp
class AddCommandDialog (line 33) | class AddCommandDialog final
method QString (line 38) | QString commandPasteDateTime()
method Command (line 48) | Command createGlobalShortcut(const QString &name, const QString &scrip...
function globalShortcutCommands (line 84) | QVector<Command> globalShortcutCommands()
function QString (line 90) | QString pasteAsPlainTextScript(const QString &what)
FILE: src/common/globalshortcutcommands.h
type Command (line 9) | struct Command
FILE: src/common/keychainaccess.cpp
function waitOrTimeout (line 23) | bool waitOrTimeout(QKeychain::Job &job)
type KeychainAccess (line 46) | namespace KeychainAccess {
function QByteArray (line 48) | QByteArray readPassword(const QString &service, const QString &key)
function writePassword (line 67) | bool writePassword(const QString &service, const QString &key, const Q...
function deletePassword (line 87) | void deletePassword(const QString &service, const QString &key)
function QByteArray (line 107) | QByteArray readPassword(const QString &, const QString &)
function writePassword (line 112) | bool writePassword(const QString &, const QString &, const QByteArray &)
function deletePassword (line 117) | void deletePassword(const QString &, const QString &)
type KeychainAccess (line 105) | namespace KeychainAccess {
function QByteArray (line 48) | QByteArray readPassword(const QString &service, const QString &key)
function writePassword (line 67) | bool writePassword(const QString &service, const QString &key, const Q...
function deletePassword (line 87) | void deletePassword(const QString &service, const QString &key)
function QByteArray (line 107) | QByteArray readPassword(const QString &, const QString &)
function writePassword (line 112) | bool writePassword(const QString &, const QString &, const QByteArray &)
function deletePassword (line 117) | void deletePassword(const QString &, const QString &)
FILE: src/common/keychainaccess.h
function namespace (line 8) | namespace KeychainAccess {
FILE: src/common/log.cpp
function QString (line 17) | QString logFileName(int i)
function rotateLogFiles (line 24) | void rotateLogFiles()
function writeLogFile (line 34) | bool writeLogFile(const QByteArray &message)
function QByteArray (line 50) | QByteArray createLogMessage(const QByteArray &label, const QByteArray &t...
function QByteArray (line 60) | QByteArray createSimpleLogMessage(const QByteArray &text, const LogLevel...
function QByteArray (line 66) | QByteArray createLogMessage(const QByteArray &text, const LogLevel level)
function QString (line 74) | QString getLogFileName()
function logAlways (line 93) | void logAlways(const QByteArray &msgText, const LogLevel level)
function removeLogFile (line 109) | bool removeLogFile(const QFileInfo &logFileInfo)
function QFileInfoList (line 122) | QFileInfoList logFileNames()
function QString (line 131) | QString getDefaultLogFilePath()
function QString (line 140) | const QString &logFileName()
function QByteArray (line 153) | QByteArray readLogFile(int maxReadSize)
function dropLogsToFileCountAndSize (line 205) | bool dropLogsToFileCountAndSize(int maxFileCount, int keepMaxSize)
function getLogLevel (line 245) | int getLogLevel()
function hasLogLevel (line 267) | bool hasLogLevel(LogLevel level)
function QByteArray (line 273) | QByteArray logLevelLabel(LogLevel level)
function log (line 293) | void log(const char *text, LogLevel level)
function log (line 299) | void log(const QByteArray &text, LogLevel level)
function log (line 305) | void log(const QString &text, const LogLevel level)
function setLogLabel (line 311) | void setLogLabel(const QByteArray &name)
function QByteArray (line 317) | QByteArray &logLabel()
FILE: src/common/messagehandlerforqt.cpp
class ExceptionQtFatal (line 15) | class ExceptionQtFatal final : public std::exception {
method ExceptionQtFatal (line 17) | explicit ExceptionQtFatal(const QByteArray &message)
function messageHandlerForQt (line 31) | void messageHandlerForQt(QtMsgType type, const QMessageLogContext &conte...
function installMessageHandlerForQt (line 63) | void installMessageHandlerForQt()
FILE: src/common/navigationstyle.h
function NavigationStyle (line 9) | enum class NavigationStyle {
FILE: src/common/option.cpp
function QString (line 9) | QString getToolTip(const QObject &object)
function QString (line 14) | QString toolTip(const QObject &object)
function QVariant (line 51) | QVariant Option::value() const
function QString (line 72) | QString Option::tooltip() const
FILE: src/common/option.h
function class (line 13) | class Option final {
FILE: src/common/predefinedcommands.cpp
function Command (line 18) | Command *newCommand(QVector<Command> *commands)
class AddCommandDialog (line 24) | class AddCommandDialog final
function predefinedCommands (line 31) | QVector<Command> predefinedCommands()
FILE: src/common/predefinedcommands.h
type Command (line 8) | struct Command
FILE: src/common/process.cpp
function terminateProcess (line 7) | void terminateProcess(QProcess *p)
FILE: src/common/regexp.h
function QRegularExpression (line 6) | static QRegularExpression anchoredRegExp(const QString &pattern)
FILE: src/common/server.cpp
function serverIsRunning (line 19) | bool serverIsRunning(const QString &serverName)
function QString (line 26) | QString lockFilePath()
type Server::PrivateData (line 40) | struct Server::PrivateData {
FILE: src/common/server.h
function Server (line 18) | Server final : public QObject
FILE: src/common/shortcuts.cpp
function indexOfKeyHint (line 11) | int indexOfKeyHint(const QString &name)
function QString (line 29) | QString shortcutToRemove()
function QString (line 38) | QString portableShortcutText(const QKeySequence &shortcut)
function QString (line 45) | QString toPortableShortcutText(const QString &shortcutNativeText)
function hasKeyHint (line 51) | bool hasKeyHint(const QString &name)
function QString (line 56) | QString &removeKeyHint(QString *name)
FILE: src/common/sleeptimer.h
function class (line 9) | class SleepTimer final
function sleep (line 19) | bool sleep()
function waitFor (line 35) | inline void waitFor(int ms)
FILE: src/common/tabs.cpp
type Tabs::PrivateData (line 15) | struct Tabs::PrivateData {
function Tabs (line 52) | Tabs &Tabs::operator=(const Tabs &other)
function TabProperties (line 94) | TabProperties Tabs::tabProperties(const QString &name) const
FILE: src/common/tabs.h
type TabProperties (line 13) | struct TabProperties {
function class (line 21) | class Tabs
FILE: src/common/temporaryfile.cpp
function openTemporaryFile (line 16) | bool openTemporaryFile(QTemporaryFile *file, const QString &suffix)
FILE: src/common/temporarysettings.cpp
function QString (line 13) | QString temporaryFileName(const QByteArray &content)
function QSettings (line 44) | QSettings *TemporarySettings::settings()
function QByteArray (line 49) | QByteArray TemporarySettings::content()
FILE: src/common/temporarysettings.h
function class (line 14) | class TemporarySettings final
FILE: src/common/textdata.cpp
function QString (line 18) | QString escapeHtmlSpaces(const QString &str)
function isPluginFormat (line 25) | bool isPluginFormat(const QString &mime)
function uint (line 35) | uint hash(const QVariantMap &data)
function QString (line 66) | QString quoteString(const QString &str)
function QString (line 71) | QString escapeHtml(const QString &str)
function QString (line 76) | QString getTextData(const QByteArray &bytes)
function QString (line 82) | QString getTextData(const QVariantMap &data, const QString &mime)
function QString (line 94) | QString getTextData(const QVariantMap &data)
function setTextData (line 105) | void setTextData(QVariantMap *data, const QString &text, const QString &...
function setTextData (line 110) | void setTextData(QVariantMap *data, const QString &text)
function QVariantMap (line 116) | QVariantMap createDataMap(const QString &format, const QVariant &value)
function QVariantMap (line 123) | QVariantMap createDataMap(const QString &format, const QByteArray &value)
function QVariantMap (line 128) | QVariantMap createDataMap(const QString &format, const QString &value)
function QString (line 133) | QString accentsRemoved(const QString &text)
FILE: src/gui/aboutdialog.cpp
function QString (line 14) | QString helpUrl(const char *url)
function QString (line 19) | QString helpMail(const char *url)
function QString (line 24) | QString helpLink(const QString &name, const QString &link, ushort icon)
function QString (line 34) | QString helpLib(const char *name, const QString ©right, const char *...
function QString (line 58) | QString AboutDialog::aboutPage(const Theme &theme)
FILE: src/gui/aboutdialog.h
function namespace (line 10) | namespace Ui {
FILE: src/gui/actiondialog.cpp
function initFormatComboBox (line 24) | void initFormatComboBox(QComboBox *combo, const QStringList &additionalF...
function wasChangedByUser (line 32) | bool wasChangedByUser(QObject *object)
function setChangedByUser (line 37) | void setChangedByUser(QWidget *object)
function QString (line 42) | QString commandToLabel(const QString &command)
function QString (line 130) | const QString ActionDialog::dataFilename() const
function Command (line 188) | Command ActionDialog::command() const
function QVariant (line 325) | QVariant ActionDialog::createCurrentItemData()
FILE: src/gui/actiondialog.h
type Command (line 13) | struct Command
function namespace (line 15) | namespace Ui {
FILE: src/gui/actionhandler.cpp
function QString (line 28) | QString actionDescription(const Action &action)
function QStringList (line 39) | QStringList ActionHandler::copyqStats() const
function QVariantMap (line 76) | QVariantMap ActionHandler::actionData(int id) const
function Action (line 130) | Action *ActionHandler::findAction(int id) const
FILE: src/gui/actionhandlerdialog.cpp
function terminateSelectedActions (line 14) | void terminateSelectedActions(QItemSelectionModel *selectionModel, Actio...
function updateTerminateButton (line 25) | void updateTerminateButton(QItemSelectionModel *selectionModel, QAbstrac...
FILE: src/gui/actionhandlerdialog.h
function namespace (line 11) | namespace Ui {
FILE: src/gui/addcommanddialog.cpp
class CommandModel (line 23) | class CommandModel final : public QAbstractListModel {
method CommandModel (line 25) | explicit CommandModel(const QVector<Command> &commands, QObject *paren...
method rowCount (line 31) | int rowCount(const QModelIndex &) const override
method QVariant (line 36) | QVariant data(const QModelIndex &index, int role) const override
FILE: src/gui/addcommanddialog.h
function namespace (line 11) | namespace Ui {
FILE: src/gui/clipboardbrowser.cpp
type MoveType (line 42) | enum class MoveType {
class TemporaryDragAndDropImage (line 48) | class TemporaryDragAndDropImage final : public QObject {
method TemporaryDragAndDropImage (line 51) | static TemporaryDragAndDropImage *create(QMimeData *mimeData, QObject ...
method drop (line 60) | void drop()
method TemporaryDragAndDropImage (line 72) | TemporaryDragAndDropImage(QMimeData *mimeData, QObject *parent)
function alphaSort (line 101) | bool alphaSort(const QModelIndex &lhs, const QModelIndex &rhs)
function reverseSort (line 108) | bool reverseSort(const QModelIndex &lhs, const QModelIndex &rhs)
function QModelIndex (line 113) | QModelIndex indexNear(const QListView *view, int offset)
function appendTextData (line 123) | void appendTextData(const QVariantMap &data, const QString &mime, QByteA...
function moveIndexes (line 135) | void moveIndexes(QList<QPersistentModelIndex> &indexesToMove, int target...
function moveIndexes (line 185) | void moveIndexes(const QModelIndexList &indexesToMove, int targetRow, Cl...
function QModelIndex (line 420) | QModelIndex ClipboardBrowser::indexNear(int offset) const
function QModelIndex (line 594) | QModelIndex ClipboardBrowser::firstUnpinnedIndex() const
function QVariantMap (line 637) | QVariantMap ClipboardBrowser::copyIndex(const QModelIndex &index) const
function QVariantMap (line 643) | QVariantMap ClipboardBrowser::copyIndexes(const QModelIndexList &indexes...
function QPixmap (line 731) | QPixmap ClipboardBrowser::renderItemPreview(const QModelIndexList &index...
function QString (line 1796) | const QString ClipboardBrowser::selectedText() const
function QWidget (line 1854) | QWidget *ClipboardBrowser::currentItemPreview(QWidget *parent)
FILE: src/gui/clipboardbrowser.h
function QModelIndex (line 55) | QModelIndex index(int i) const { return m.index(i,0); }
function QString (line 58) | const QString selectedText() const;
function keyEvent (line 140) | void keyEvent(QKeyEvent *event) { keyPressEvent(event); }
FILE: src/gui/clipboardbrowserplaceholder.cpp
function ClipboardBrowser (line 48) | ClipboardBrowser *ClipboardBrowserPlaceholder::createBrowser(AskPassword...
function ClipboardBrowser (line 180) | ClipboardBrowser *ClipboardBrowserPlaceholder::createBrowserAgain()
FILE: src/gui/clipboardbrowserplaceholder.h
function AskPassword (line 22) | enum class AskPassword {
FILE: src/gui/clipboardbrowsershared.h
type ClipboardBrowserShared (line 19) | struct ClipboardBrowserShared {
FILE: src/gui/clipboarddialog.cpp
function formatSortPriority (line 33) | int formatSortPriority(const QString &format)
FILE: src/gui/clipboarddialog.h
function namespace (line 18) | namespace Ui {
FILE: src/gui/clipboardspy.cpp
function QByteArray (line 70) | QByteArray ClipboardSpy::currentOwnerData() const
FILE: src/gui/commandaction.cpp
function Command (line 32) | const Command &CommandAction::command() const
FILE: src/gui/commandcompleter.cpp
class CommandCompleterModel (line 31) | class CommandCompleterModel final : public QStringListModel {
method CommandCompleterModel (line 33) | explicit CommandCompleterModel(QObject *parent)
method columnCount (line 59) | int columnCount(const QModelIndex &) const override
method QVariant (line 64) | QVariant data(const QModelIndex &index, int role) const override
type ScriptableDocumentation (line 92) | struct ScriptableDocumentation {
method addDocumentation (line 97) | void addDocumentation()
method ScriptableDocumentation (line 108) | ScriptableDocumentation documentationForRow(int row) const
method QString (line 115) | QString typeForRow(int row) const
function setUpHeader (line 134) | void setUpHeader(QHeaderView *header)
class CommandCompleterPopup (line 140) | class CommandCompleterPopup final : public QTableView {
method CommandCompleterPopup (line 142) | explicit CommandCompleterPopup(QWidget *parent)
method showEvent (line 156) | void showEvent(QShowEvent *event) override
method updateSize (line 163) | void updateSize()
method columnsWidth (line 178) | int columnsWidth() const
method rowsHeight (line 186) | int rowsHeight(int maxRows) const
function QWidget (line 253) | QWidget *CommandCompleter::popup() const
function QString (line 301) | QString CommandCompleter::textUnderCursor() const
FILE: src/gui/commanddialog.cpp
function QIcon (line 29) | const QIcon iconLoadCommands() { return getIcon("document-open", IconFol...
function QIcon (line 30) | const QIcon iconSaveCommands() { return getIcon("document-save", IconFlo...
function QIcon (line 31) | const QIcon iconCopyCommands() { return getIcon("edit-copy", IconCopy); }
function QIcon (line 32) | const QIcon iconPasteCommands() { return getIcon("edit-paste", IconPaste...
function QIcon (line 34) | QIcon getCommandIcon(const QString &iconString, int commandType)
function hasCommandsToPaste (line 55) | bool hasCommandsToPaste(const QString &text)
class CommandItem (line 62) | class CommandItem final : public ItemOrderList::Item {
method CommandItem (line 64) | CommandItem(const Command &command, const QStringList &formats, Comman...
method QVariant (line 71) | QVariant data() const override { return QVariant::fromValue(m_command); }
method QWidget (line 74) | QWidget *createWidget(QWidget *parent) override
function Command (line 346) | Command CommandDialog::currentCommand(int row) const
function Commands (line 364) | Commands CommandDialog::currentCommands() const
function Commands (line 398) | Commands CommandDialog::selectedCommands() const
function QString (line 411) | QString CommandDialog::serializeSelectedCommands()
function QString (line 432) | QString CommandDialog::commandsToPaste()
FILE: src/gui/commanddialog.h
function namespace (line 11) | namespace Ui {
FILE: src/gui/commandedit.cpp
function QString (line 51) | QString CommandEdit::command() const
FILE: src/gui/commandedit.h
function namespace (line 8) | namespace Ui {
FILE: src/gui/commandhelpbutton.cpp
function QString (line 46) | QString example(const QString &content)
function QString (line 52) | QString help()
function QVBoxLayout (line 100) | QVBoxLayout *createLayout(QWidget *parent)
FILE: src/gui/commandsyntaxhighlighter.cpp
function QString (line 22) | QString methodName(const QMetaMethod &method)
function QRegularExpression (line 33) | QRegularExpression commandLabelRegExp()
function QRegularExpression (line 46) | QRegularExpression createRegExp(const QStringList &list)
function mixColorComponent (line 53) | int mixColorComponent(int a, int b)
function QColor (line 58) | QColor mixColor(const QColor &color, int r, int g, int b)
class CommandSyntaxHighlighter (line 68) | class CommandSyntaxHighlighter final : public QSyntaxHighlighter
method CommandSyntaxHighlighter (line 71) | explicit CommandSyntaxHighlighter(QWidget *editor, QTextDocument *parent)
method highlightBlock (line 84) | void highlightBlock(const QString &text) override
type State (line 118) | enum State {
method highlight (line 127) | void highlight(const QString &text, QRegularExpression &re, const QTex...
method format (line 136) | void format(int a, int b)
method peek (line 154) | bool peek(const QString &text, int i, const QString &what)
method highlightBlocks (line 159) | void highlightBlocks(const QString &text)
function isPublicName (line 250) | bool isPublicName(const QString &name)
function getScriptableObjects (line 255) | QList<QString> getScriptableObjects()
function scriptableKeywords (line 275) | QList<QString> scriptableKeywords()
function scriptableProperties (line 311) | QList<QString> scriptableProperties()
function scriptableFunctions (line 327) | QList<QString> scriptableFunctions()
function scriptableObjects (line 347) | QList<QString> scriptableObjects()
function installCommandSyntaxHighlighter (line 353) | void installCommandSyntaxHighlighter(QTextEdit *editor)
function installCommandSyntaxHighlighter (line 358) | void installCommandSyntaxHighlighter(QPlainTextEdit *editor)
FILE: src/gui/commandwidget.cpp
function QIcon (line 23) | const QIcon iconClipboard() { return getIcon("", IconClipboard); }
function QIcon (line 24) | const QIcon iconMenu() { return getIcon("", IconBars); }
function QIcon (line 25) | const QIcon iconScript() { return getIcon("", IconGear); }
function QIcon (line 26) | const QIcon iconDisplay() { return getIcon("", IconEye); }
function QIcon (line 28) | const QIcon iconShortcut() { return getIcon("", IconKeyboard); }
function QStringList (line 31) | QStringList serializeShortcuts(const QList<QKeySequence> &shortcuts)
function deserializeShortcuts (line 45) | void deserializeShortcuts(
function Command (line 121) | Command CommandWidget::command() const
function QString (line 288) | QString CommandWidget::description() const
FILE: src/gui/commandwidget.h
function namespace (line 9) | namespace Ui {
type Command (line 14) | struct Command
FILE: src/gui/configtabappearance.cpp
class ItemFilterSimple (line 41) | class ItemFilterSimple final : public ItemFilter {
method ItemFilterSimple (line 43) | explicit ItemFilterSimple(const QString &text) noexcept
method QString (line 48) | QString searchString() const override { return m_text; }
method matchesAll (line 49) | bool matchesAll() const override { return false; }
method matchesNone (line 50) | bool matchesNone() const override { return false; }
method matches (line 51) | bool matches(const QString &) const override { return true; }
method matchesIndex (line 52) | bool matchesIndex(const QModelIndex &) const override { return true; }
method highlight (line 54) | void highlight(QTextEdit *edit, const QTextCharFormat &format) const o...
method search (line 65) | void search(QTextEdit *, bool) const override {}
function QIcon (line 397) | QIcon ConfigTabAppearance::createThemeIcon(const QString &fileName)
FILE: src/gui/configtabappearance.h
function namespace (line 11) | namespace Ui {
function setEditor (line 33) | void setEditor(const QString &editor) { m_editor = editor; }
FILE: src/gui/configtabtabs.cpp
class TabItem (line 19) | class TabItem final : public ItemOrderList::Item {
method TabItem (line 21) | TabItem(const TabProperties &tab, ItemOrderList *parentList)
method QVariant (line 27) | QVariant data() const override
method QWidget (line 33) | QWidget *createWidget(QWidget *parent) override
FILE: src/gui/configurationmanager.cpp
class TabItem (line 46) | class TabItem final : public ItemOrderList::Item {
method TabItem (line 48) | explicit TabItem(QWidget *widget) noexcept
method QVariant (line 54) | QVariant data() const override { return QVariant(); }
method QWidget (line 57) | QWidget *createWidget(QWidget *) override
function makeTab (line 66) | ItemOrderList::ItemPtr makeTab(std::shared_ptr<Ui> &ui, QWidget *parent)
function makeTab (line 76) | ItemOrderList::ItemPtr makeTab(Widget **widget, QWidget *parent)
class PluginItem (line 83) | class PluginItem final : public ItemOrderList::Item {
method PluginItem (line 85) | explicit PluginItem(const ItemLoaderPtr &loader)
method QVariant (line 90) | QVariant data() const override { return m_loader->id(); }
method QWidget (line 93) | QWidget *createWidget(QWidget *parent) override
function QString (line 101) | QString nativeLanguageName(const QString &localeName)
function QStringList (line 423) | QStringList ConfigurationManager::options() const
function QVariant (line 437) | QVariant ConfigurationManager::optionValue(const QString &name) const
function QString (line 458) | QString ConfigurationManager::optionToolTip(const QString &name) const
FILE: src/gui/configurationmanager.h
function namespace (line 13) | namespace Ui {
function namespace (line 22) | namespace Encryption {
type class (line 39) | enum class
type ClipboardBrowserShared (line 41) | struct ClipboardBrowserShared
FILE: src/gui/encryptionpassword.cpp
function QString (line 35) | QString keychainServiceName()
function QString (line 40) | QString keychainPasswordKey()
function savePasswordToKeychain (line 48) | bool savePasswordToKeychain(const Encryption::SecureArray &password)
function QByteArray (line 62) | QByteArray loadPasswordFromKeychain()
function activateWindow (line 75) | void activateWindow(QWidget *parent)
function setUpPassword (line 82) | Encryption::EncryptionKey setUpPassword(const Encryption::SecureArray &p...
function getStoredPassword (line 97) | Encryption::SecureArray getStoredPassword(PasswordSource prompt)
function getPassword (line 118) | Encryption::SecureArray getPassword(
function getPasswordAsync (line 127) | void getPasswordAsync(
function promptForNewDefaultPasswordAttemptAsync (line 148) | void promptForNewDefaultPasswordAttemptAsync(
function promptForEncryptionPasswordAttemptAsync (line 216) | void promptForEncryptionPasswordAttemptAsync(
function promptForNewDefaultPassword (line 262) | Encryption::SecureArray promptForNewDefaultPassword(QWidget *parent)
function promptForNewDefaultPasswordAsync (line 271) | void promptForNewDefaultPasswordAsync(
function firstPasswordSetupAsync (line 279) | void firstPasswordSetupAsync(
function promptForNewPassword (line 303) | Encryption::SecureArray promptForNewPassword(
function promptForEncryptionPasswordAsync (line 375) | void promptForEncryptionPasswordAsync(
function promptForEncryptionPasswordChange (line 422) | Encryption::EncryptionKey promptForEncryptionPasswordChange(
function reencryptTabs (line 452) | bool reencryptTabs(
function removePasswordFromKeychain (line 551) | void removePasswordFromKeychain()
function promptForNewPassword (line 558) | Encryption::SecureArray promptForNewPassword(
function promptForEncryptionPasswordAsync (line 564) | void promptForEncryptionPasswordAsync(
function promptForEncryptionPasswordChange (line 572) | Encryption::EncryptionKey promptForEncryptionPasswordChange(
function reencryptTabs (line 578) | bool reencryptTabs(
function removePasswordFromKeychain (line 589) | void removePasswordFromKeychain()
FILE: src/gui/encryptionpassword.h
type ClipboardBrowserShared (line 9) | struct ClipboardBrowserShared
type class (line 18) | enum class
type class (line 24) | enum class
FILE: src/gui/execmenu.cpp
type Utils (line 42) | namespace Utils {
function QAction (line 49) | QAction *execMenuAtWidget(QMenu *menu, QWidget *widget)
FILE: src/gui/execmenu.h
function namespace (line 36) | namespace Utils {
FILE: src/gui/fancylineedit.cpp
type Utils (line 53) | namespace Utils {
class FancyLineEditPrivate (line 56) | class FancyLineEditPrivate final : public QObject
function QAbstractButton (line 140) | QAbstractButton *FancyLineEdit::button(FancyLineEdit::Side side) const
function QMenu (line 223) | QMenu *FancyLineEdit::buttonMenu(Side side) const
FILE: src/gui/fancylineedit.h
function namespace (line 37) | namespace Utils {
function class (line 60) | class FancyLineEdit : public QLineEdit
FILE: src/gui/filtercompleter.cpp
class CompletionModel (line 16) | class CompletionModel final : public QAbstractListModel
method CompletionModel (line 19) | explicit CompletionModel(QObject *parent)
method rowCount (line 24) | int rowCount(const QModelIndex &parent = QModelIndex()) const override
method QVariant (line 29) | QVariant data(const QModelIndex &index, int role) const override
method setData (line 37) | bool setData(const QModelIndex &index, const QVariant &value, int role...
method removeRows (line 49) | bool removeRows(int row, int count, const QModelIndex &parent = QModel...
method prepend (line 63) | void prepend(const QString &text)
method removeAll (line 70) | void removeAll(const QString &text)
method crop (line 80) | void crop(int maxItems)
function QStringList (line 103) | QStringList FilterCompleter::history() const
FILE: src/gui/filterlineedit.cpp
class BaseItemFilter (line 59) | class BaseItemFilter : public ItemFilter {
method BaseItemFilter (line 61) | explicit BaseItemFilter(const QString &searchString)
method QString (line 66) | QString searchString() const override
method highlight (line 71) | void highlight(QTextEdit *edit, const QTextCharFormat &format) const o...
method matchesAll (line 97) | bool matchesAll() const override
method matchesIndex (line 102) | bool matchesIndex(const QModelIndex &index) const override
class ItemFilterRegExp (line 121) | class ItemFilterRegExp final : public BaseItemFilter {
method ItemFilterRegExp (line 123) | ItemFilterRegExp(const QRegularExpression &re, const QString &searchSt...
method matchesNone (line 129) | bool matchesNone() const override
method matches (line 134) | bool matches(const QString &text) const override
method search (line 139) | void search(QTextEdit *edit, bool backwards) const override
method selections (line 167) | QList<QTextEdit::ExtraSelection> selections(QTextDocument *doc, const ...
class ItemFilterFixedStrings (line 198) | class ItemFilterFixedStrings final : public BaseItemFilter {
method ItemFilterFixedStrings (line 200) | ItemFilterFixedStrings(const QString &searchString, Qt::CaseSensitivit...
method matchesNone (line 207) | bool matchesNone() const override
method matches (line 212) | bool matches(const QString &text) const override
method search (line 220) | void search(QTextEdit *edit, bool backwards) const override
method selections (line 275) | QList<QTextEdit::ExtraSelection> selections(QTextDocument *doc, const ...
class FilterHistory (line 311) | class FilterHistory final {
method FilterHistory (line 313) | FilterHistory()
method QStringList (line 318) | QStringList history() const
method setHistory (line 323) | void setHistory(const QStringList &history)
function restoreOldFilterHistory (line 333) | void restoreOldFilterHistory()
type Utils (line 355) | namespace Utils {
function ItemFilterPtr (line 387) | ItemFilterPtr FilterLineEdit::filter() const
FILE: src/gui/filterlineedit.h
function namespace (line 37) | namespace Utils {
FILE: src/gui/fix_icon_id.h
function fixIconId (line 10) | inline unsigned short fixIconId(unsigned short id)
FILE: src/gui/fromiconid.h
function QString (line 7) | inline QString fromIconId(int id) {
FILE: src/gui/geometry.cpp
function QSize (line 35) | QSize frameSize(QWidget *widget) {
function QString (line 43) | QString toString(const QRect &geometry)
function screenNumber (line 52) | int screenNumber(const QWidget &widget)
function QString (line 64) | QString geometryOptionName(const QWidget &widget)
function QString (line 69) | QString geometryOptionName(const QWidget &widget, bool openOnCurrentScreen)
function QString (line 83) | QString getGeometryConfigurationFilePath()
function QString (line 88) | QString resolutionTagForScreen(int i)
function QString (line 96) | QString resolutionTag(const QWidget &widget, bool openOnCurrentScreen)
function ensureWindowOnScreen (line 112) | void ensureWindowOnScreen(QWidget *widget)
function QVariant (line 153) | QVariant geometryOptionValue(const QString &optionName)
function setGeometryOptionValue (line 159) | void setGeometryOptionValue(const QString &optionName, const QVariant &v...
function restoreWindowGeometry (line 165) | void restoreWindowGeometry(QWidget *w, bool openOnCurrentScreen)
function saveWindowGeometry (line 198) | void saveWindowGeometry(QWidget *w, bool openOnCurrentScreen)
function QByteArray (line 211) | QByteArray mainWindowState(const QString &mainWindowObjectName)
function saveMainWindowState (line 217) | void saveMainWindowState(const QString &mainWindowObjectName, const QByt...
function getCardinalProperty (line 225) | static long getCardinalProperty(Display *display, Window window, Atom pr...
function moveToCurrentWorkspace (line 246) | void moveToCurrentWorkspace(QWidget *w)
function moveWindowOnScreen (line 304) | void moveWindowOnScreen(QWidget *w, QPoint pos)
function setGeometryGuardBlockedUntilHidden (line 311) | void setGeometryGuardBlockedUntilHidden(QWidget *w, bool blocked)
function isGeometryGuardBlockedUntilHidden (line 317) | bool isGeometryGuardBlockedUntilHidden(const QWidget *w)
FILE: src/gui/icon_list.h
type Icon (line 4) | struct Icon {
FILE: src/gui/iconfactory.cpp
function QIcon (line 45) | QIcon fromTheme(const QString &name)
function hasNormalIconHelper (line 53) | bool hasNormalIconHelper()
function hasNormalIcon (line 65) | bool hasNormalIcon()
function QString (line 71) | QString sessionName()
function QColor (line 76) | QColor colorFromEnv(const char *envVaribleName)
function QColor (line 81) | QColor sessionNameToColor(const QString &name)
function QColor (line 108) | QColor sessionIconColorHelper()
function QColor (line 114) | QColor &sessionIconColorVariable()
function QString (line 120) | QString &sessionIconTagVariable()
function QColor (line 126) | QColor &sessionIconTagColorVariable()
function QPixmap (line 132) | QPixmap pixmapFromBitmapFile(const QString &path, QSize size)
function QPixmap (line 138) | QPixmap pixmapFromFile(const QString &path, QSize size)
function QString (line 172) | QString iconPath(const QString &iconSuffix)
function QPixmap (line 185) | QPixmap appPixmap(const QString &iconSuffix, QSize size)
function replaceColor (line 207) | void replaceColor(QPixmap *pix, const QColor &targetColor)
function disableIcon (line 222) | void disableIcon(QPixmap *pix)
function QPixmap (line 234) | QPixmap drawFontIcon(ushort id, int w, int h, const QColor &color)
function QColor (line 283) | QColor getDefaultIconColor(const QColor &color)
function tagIcon (line 294) | void tagIcon(QPixmap *pix, const QString &tag, QColor color)
function QColor (line 332) | QColor colorForMode(QPainter *painter, QIcon::Mode mode)
class BaseIconEngine (line 347) | class BaseIconEngine : public QIconEngine
method paint (line 350) | void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIc...
method QPixmap (line 355) | QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state...
method QPixmap (line 360) | QPixmap createPixmap(QSize size, QIcon::Mode mode, QIcon::State state,...
method override (line 383) | override
method BaseIconEngine (line 395) | BaseIconEngine(const QString &tag, QColor tagColor)
method QPixmap (line 404) | QPixmap taggedIcon(QPixmap *pix)
class FontIconEngine (line 414) | class FontIconEngine : public BaseIconEngine
method FontIconEngine (line 417) | FontIconEngine(ushort iconId, const QString &tag, QColor tagColor)
method QIconEngine (line 423) | QIconEngine *clone() const override
method QPixmap (line 428) | QPixmap doCreatePixmap(QSize size, QIcon::Mode mode, QIcon::State, QPa...
class ImageIconEngine (line 443) | class ImageIconEngine final : public FontIconEngine
method ImageIconEngine (line 446) | ImageIconEngine(const QString &iconName, ushort fallbackIconId, const ...
method QIconEngine (line 452) | QIconEngine *clone() const override
method QPixmap (line 457) | QPixmap doCreatePixmap(QSize size, QIcon::Mode mode, QIcon::State stat...
class AppIconEngine (line 514) | class AppIconEngine final : public BaseIconEngine
method AppIconEngine (line 517) | AppIconEngine()
method QIconEngine (line 522) | QIconEngine *clone() const override
method QPixmap (line 527) | QPixmap doCreatePixmap(QSize size, QIcon::Mode, QIcon::State, QPainter...
class IconEngine (line 559) | class IconEngine final
method QIcon (line 564) | static QIcon createIcon(ushort iconId, const QString &iconName, const ...
method QIcon (line 571) | static QIcon createIcon()
method canUseFontIcon (line 577) | static bool canUseFontIcon(ushort iconId, const QString &iconName)
function QIcon (line 593) | QIcon getIcon(const QString &themeName, unsigned short id)
function QIcon (line 600) | QIcon getIcon(const QVariant &iconOrIconId)
function QIcon (line 611) | QIcon getIconFromResources(const QString &iconName)
function QIcon (line 616) | QIcon iconFromFile(const QString &fileName, const QString &tag, const QC...
function QIcon (line 628) | QIcon iconFromFile(const QString &fileName, const QString &tag)
function QIcon (line 633) | QIcon iconFromFile(const QString &fileName)
function QPixmap (line 638) | QPixmap createPixmap(unsigned short id, const QColor &color, int size)
function QIcon (line 648) | QIcon appIcon()
function setActivePaintDevice (line 653) | void setActivePaintDevice(QObject *device)
function QColor (line 658) | QColor getDefaultIconColor(const QWidget &widget, bool selected)
function toIconId (line 672) | unsigned short toIconId(const QString &fileNameOrId)
function setSessionIconColor (line 680) | void setSessionIconColor(QColor color)
function setSessionIconTag (line 685) | void setSessionIconTag(const QString &tag)
function setSessionIconTagColor (line 690) | void setSessionIconTagColor(QColor color)
function setSessionIconEnabled (line 695) | void setSessionIconEnabled(bool enabled)
function QColor (line 700) | QColor sessionIconColor()
function QString (line 705) | QString sessionIconTag()
function QColor (line 710) | QColor sessionIconTagColor()
function setUseSystemIcons (line 715) | void setUseSystemIcons(bool useSystemIcons)
FILE: src/gui/iconfont.cpp
function iconFontId (line 19) | int iconFontId()
function smoothSizes (line 26) | std::vector<int> smoothSizes()
function iconFontSmoothPixelSize (line 32) | int iconFontSmoothPixelSize(int pixelSize)
function QString (line 45) | QString createIconFontFamily()
function QString (line 55) | const QString &iconFontFamily()
function loadIconFont (line 61) | bool loadIconFont()
function QFont (line 66) | QFont iconFont()
function iconFontSizePixels (line 73) | int iconFontSizePixels()
function QFont (line 78) | QFont iconFontFitSize(int w, int h)
FILE: src/gui/icons.h
type IconId (line 6) | enum IconId {
FILE: src/gui/iconselectbutton.cpp
function QSize (line 62) | QSize IconSelectButton::sizeHint() const
FILE: src/gui/iconselectdialog.cpp
class IconListWidget (line 17) | class IconListWidget final : public QListWidget {
method IconListWidget (line 19) | explicit IconListWidget(QWidget *parent)
method QString (line 37) | QString addIcon(ushort unicode, bool isBrand, const QStringList &searc...
method QString (line 48) | QString icon(const QModelIndex &index) const
method isIconSelected (line 53) | bool isIconSelected() const
method keyboardSearch (line 59) | void keyboardSearch(const QString &search) override
method keyPressEvent (line 73) | void keyPressEvent(QKeyEvent *event) override
method resizeEvent (line 94) | void resizeEvent(QResizeEvent *event) override
method onSearchTextChanged (line 102) | void onSearchTextChanged(const QString &text)
method updateSearchPosition (line 110) | void updateSearchPosition()
method search (line 119) | void search(const QString &text)
method stopSearch (line 131) | void stopSearch()
FILE: src/gui/iconwidget.cpp
function QSize (line 31) | QSize IconWidget::sizeHint() const
FILE: src/gui/importexportdialog.cpp
function QStringList (line 73) | QStringList ImportExportDialog::selectedTabs() const
FILE: src/gui/importexportdialog.h
function namespace (line 8) | namespace Ui {
FILE: src/gui/itemorderlist.cpp
function deleteWidget (line 17) | void deleteWidget(const QPointer<QWidget> &object)
function setItemId (line 23) | void setItemId(QListWidgetItem *item, int id)
function itemId (line 28) | int itemId(QListWidgetItem *item)
function QWidget (line 136) | QWidget *ItemOrderList::widget(int row) const
function QVariant (line 143) | QVariant ItemOrderList::data(int row) const
function QString (line 194) | QString ItemOrderList::itemLabel(int row) const
function QListWidgetItem (line 399) | QListWidgetItem *ItemOrderList::listItem(int row) const
function QWidget (line 419) | QWidget *ItemOrderList::createWidget(QListWidgetItem *item)
FILE: src/gui/itemorderlist.h
function namespace (line 13) | namespace Ui {
type CheckState (line 26) | enum CheckState {
function class (line 32) | class Item {
FILE: src/gui/logdialog.cpp
function removeLogLines (line 24) | void removeLogLines(QByteArray *content, LogLevel level)
class Decorator (line 55) | class Decorator : public QObject
method Decorator (line 58) | Decorator(const QRegularExpression &re, QObject *parent)
method decorate (line 66) | void decorate(QTextDocument *document)
method decorateBatch (line 74) | void decorateBatch()
class LogDecorator (line 102) | class LogDecorator final : public Decorator
method LogDecorator (line 105) | LogDecorator(const QFont &font, QObject *parent)
method decorate (line 137) | void decorate(QTextCursor *tc) override
class StringDecorator (line 165) | class StringDecorator final : public Decorator
method StringDecorator (line 168) | explicit StringDecorator(QObject *parent)
method decorate (line 175) | void decorate(QTextCursor *tc) override
class ThreadNameDecorator (line 183) | class ThreadNameDecorator final : public Decorator
method ThreadNameDecorator (line 186) | explicit ThreadNameDecorator(const QFont &font, QObject *parent)
method decorate (line 195) | void decorate(QTextCursor *tc) override
FILE: src/gui/logdialog.h
function namespace (line 9) | namespace Ui {
FILE: src/gui/mainwindow.cpp
function QIcon (line 106) | const QIcon iconClipboard() { return getIcon("clipboard", IconPaste); }
function QIcon (line 107) | const QIcon iconTabIcon() { return getIconFromResources("tab_icon"); }
function QIcon (line 108) | const QIcon iconTabNew() { return getIconFromResources("tab_new"); }
function QIcon (line 109) | const QIcon iconTabRemove() { return getIconFromResources("tab_remove"); }
function QIcon (line 110) | const QIcon iconTabRename() { return getIconFromResources("tab_rename"); }
class WidgetSizeGuard (line 117) | class WidgetSizeGuard final : public QObject {
method WidgetSizeGuard (line 119) | explicit WidgetSizeGuard(QWidget *guardedObject)
function canPaste (line 144) | bool canPaste()
function matchData (line 149) | bool matchData(const QRegularExpression &re, const QVariantMap &data, co...
function canExecuteCommand (line 158) | bool canExecuteCommand(const Command &command, const QVariantMap &data, ...
function disableActionWhenTabGroupSelected (line 190) | void disableActionWhenTabGroupSelected(WidgetOrAction *action, MainWindo...
function QMenu (line 196) | QMenu *findSubMenu(const QString &name, const QMenu &menu)
function createSubMenus (line 207) | std::pair<QMenu*, QMenu*> createSubMenus(QString *name, QMenu *menu)
class WindowFlags (line 234) | class WindowFlags
method WindowFlags (line 237) | explicit WindowFlags(QWidget *window)
method apply (line 243) | void apply()
method set (line 270) | void set(Qt::WindowType flag, bool enable)
function Dialog (line 282) | Dialog *openDialog(Ts... arguments)
function isItemActivationShortcut (line 293) | bool isItemActivationShortcut(const QKeySequence &shortcut)
function QString (line 301) | QString importExportFileDialogFilter()
function QVariant (line 311) | QVariant serializableValue(const QSettings &settings, const QString &key)
function QByteArray (line 320) | QByteArray serializeToByteArray(const QVariant &value)
function QVariant (line 331) | QVariant deserializeFromByteArray(const QByteArray &bytes)
function isAnyApplicationWindowActive (line 342) | bool isAnyApplicationWindowActive()
function hasDialogOpen (line 365) | bool hasDialogOpen(QWidget *parent)
function deleteSubMenus (line 375) | void deleteSubMenus(QObject *parent)
function clearActions (line 383) | void clearActions(QMenu *menu)
function clearActions (line 397) | void clearActions(QToolBar *toolBar)
function hasCommandFuzzy (line 413) | bool hasCommandFuzzy(const QVector<Command> &commands, const Command &co...
function syncInternalCommandChanges (line 420) | bool syncInternalCommandChanges(const Command &command, QVector<Command>...
function menuItemMatches (line 454) | bool menuItemMatches(const QModelIndex &index, const QString &searchText)
function getUniqueShortcuts (line 464) | QList<QKeySequence> getUniqueShortcuts(const QStringList &shortcuts, QLi...
function hadleKeyOverride (line 479) | bool hadleKeyOverride(QObject *object, QEvent *ev, KeyMods keyMods)
function ImportSelection (line 498) | ImportSelection getImportSelection(
function showEncryptionUnavailableMessage (line 526) | void showEncryptionUnavailableMessage(QWidget *parent)
function QVariantMap (line 535) | QVariantMap exportSettings(const QStringList &tabs, bool exportConfigura...
function promptForImportPassword (line 585) | Encryption::EncryptionKey promptForImportPassword(QWidget *parent)
function promptForExportPassword (line 607) | Encryption::EncryptionKey promptForExportPassword(QWidget *parent, bool ...
function checkFileAndStreamErrors (line 635) | bool checkFileAndStreamErrors(const QFileDevice &file, const QDataStream...
function setIcon (line 655) | class SystemTrayIcon final : public KStatusNotifierItem {
function setToolTip (line 674) | void setToolTip(const QString &text)
function isVisible (line 684) | bool isVisible() const
function show (line 688) | void show() { setStatus(KStatusNotifierItem::Active); }
function hide (line 689) | void hide() { setStatus(KStatusNotifierItem::Passive); }
function activate (line 691) | void activate(const QPoint &) override
class SystemTrayIcon (line 700) | class SystemTrayIcon final : public QSystemTrayIcon {
method SystemTrayIcon (line 702) | explicit SystemTrayIcon(QWidget *parent = nullptr)
class ToolBar (line 710) | class ToolBar final : public QToolBar {
method ToolBar (line 712) | explicit ToolBar(QWidget *parent)
method setFrozen (line 720) | void setFrozen(bool frozen) {
method paintEvent (line 732) | void paintEvent(QPaintEvent *ev) override
method unfreeze (line 741) | void unfreeze()
function QStringList (line 878) | QStringList MainWindow::copyqStats() const
function QVariant (line 1292) | QVariant MainWindow::callPlugin(const QVariantList &arguments)
function QString (line 1658) | QString MainWindow::filter() const
function ClipboardBrowserPlaceholder (line 1669) | ClipboardBrowserPlaceholder *MainWindow::getPlaceholder(int index) const
function ClipboardBrowserPlaceholder (line 1674) | ClipboardBrowserPlaceholder *MainWindow::getPlaceholder(const QString &t...
function ClipboardBrowserPlaceholder (line 1683) | ClipboardBrowserPlaceholder *MainWindow::getPlaceholder() const
function ClipboardBrowserPlaceholder (line 1707) | ClipboardBrowserPlaceholder *MainWindow::createTab(const QString &name, ...
function QAction (line 1750) | QAction *MainWindow::createAction(Actions::Id id, MainWindowActionSlot<S...
function QAction (line 1761) | QAction *MainWindow::addTrayAction(Actions::Id id)
function QAction (line 1769) | QAction *MainWindow::addItemAction(Actions::Id id, Receiver *receiver, R...
function QAction (line 2105) | QAction *MainWindow::actionForMenuItem(Actions::Id id, QWidget *parent, ...
function QVariantMap (line 2316) | QVariantMap MainWindow::exportTabData(const QString &tab, bool *ok)
function Theme (line 2724) | const Theme &MainWindow::theme() const
function Action (line 2729) | Action *MainWindow::runScript(const QString &script, const QVariantMap &...
function ClipboardBrowser (line 2793) | ClipboardBrowser *MainWindow::tab(const QString &name)
function Notification (line 2814) | Notification *MainWindow::createNotification(const QString &id)
type RenamedTab (line 3452) | struct RenamedTab { int index; QString oldName; }
function QVariant (line 3507) | QVariant MainWindow::config(const QVariantList &nameValue)
function QString (line 3550) | QString MainWindow::configDescription()
function QVariantMap (line 3566) | QVariantMap MainWindow::actionData(int id) const
function QColor (line 3602) | QColor MainWindow::sessionIconColor() const
function QString (line 3607) | QString MainWindow::sessionIconTag() const
function QColor (line 3612) | QColor MainWindow::sessionIconTagColor() const
function QVariantMap (line 3678) | QVariantMap MainWindow::setDisplayData(int actionId, const QVariantMap &...
function QMimeData (line 3753) | const QMimeData *MainWindow::getClipboardData(ClipboardMode mode)
function QStringList (line 3971) | QStringList MainWindow::tabs() const
function ClipboardBrowserPlaceholder (line 3976) | ClipboardBrowserPlaceholder *MainWindow::getPlaceholderForMenu()
function ClipboardBrowserPlaceholder (line 3982) | ClipboardBrowserPlaceholder *MainWindow::getPlaceholderForTrayMenu()
function ActionDialog (line 4172) | ActionDialog *MainWindow::openActionDialog(const QVariantMap &data)
function ClipboardBrowser (line 4263) | ClipboardBrowser *MainWindow::browser(int index)
function ClipboardBrowser (line 4269) | ClipboardBrowser *MainWindow::browser()
function ClipboardBrowser (line 4274) | ClipboardBrowser *MainWindow::browserOrNull()
function ClipboardBrowser (line 4280) | ClipboardBrowser *MainWindow::browserForItem(const QModelIndex &index)
function Action (line 4552) | Action *MainWindow::action(const QVariantMap &data, const Command &cmd, ...
FILE: src/gui/mainwindow.h
type class (line 21) | enum class
type NotificationButton (line 39) | struct NotificationButton
function namespace (line 50) | namespace Ui
function namespace (line 55) | namespace Encryption {
type ItemActivationCommand (line 59) | enum ItemActivationCommand {
function ImportOptions (line 66) | enum class ImportOptions {
function browseMode (line 136) | bool browseMode() const;
type TabNameMatching (line 554) | enum TabNameMatching {
type MenuMatchCommands (line 559) | struct MenuMatchCommands {
FILE: src/gui/menuitems.cpp
function addMenuItem (line 13) | void addMenuItem(
function addMenuItem (line 29) | void addMenuItem(
function MenuItems (line 39) | MenuItems menuItems()
function loadShortcuts (line 160) | void loadShortcuts(MenuItems *items, const QSettings &settings)
FILE: src/gui/menuitems.h
function namespace (line 12) | namespace Actions {
type MenuItem (line 77) | struct MenuItem {
FILE: src/gui/navigation.cpp
function isViEscape (line 4) | bool isViEscape(KeyMods keyMods)
function isEmacsEscape (line 9) | bool isEmacsEscape(KeyMods keyMods)
function KeyMods (line 14) | KeyMods translateToVi(KeyMods keyMods)
function KeyMods (line 54) | KeyMods translateToEmacs(KeyMods keyMods)
FILE: src/gui/notification.h
type class (line 18) | enum class
function Persistency (line 26) | enum class Persistency {
FILE: src/gui/notificationbasic.cpp
class NotificationButtonWidget (line 31) | class NotificationButtonWidget final : public QPushButton
class NotificationBasic (line 56) | class NotificationBasic
class NotificationBasicWidget (line 109) | class NotificationBasicWidget
method NotificationBasic (line 112) | NotificationBasic(QObject *parent)
method setTitle (line 119) | void setTitle(const QString &title) override {
method setMessage (line 122) | void setMessage(const QString &msg, Qt::TextFormat format = Qt::AutoTe...
method setPixmap (line 125) | void setPixmap(const QPixmap &pixmap) override {
method setIcon (line 128) | void setIcon(const QString &icon) override {
method setIcon (line 131) | void setIcon(ushort icon) override {
method setInterval (line 134) | void setInterval(int msec) override {
method setOpacity (line 137) | void setOpacity(qreal opacity) override {
method setButtons (line 140) | void setButtons(const NotificationButtons &buttons) override {
method setUrgency (line 144) | void setUrgency(Urgency) override {}
method setPersistency (line 145) | void setPersistency(Persistency) override {}
method adjust (line 147) | void adjust() override {
method QWidget (line 152) | QWidget *widget() override {
method show (line 158) | void show() override {
method close (line 162) | void close() override {
class NotificationBasicWidget (line 58) | class NotificationBasicWidget final : public QWidget
class NotificationBasic (line 105) | class NotificationBasic final : public Notification
class NotificationBasicWidget (line 109) | class NotificationBasicWidget
method NotificationBasic (line 112) | NotificationBasic(QObject *parent)
method setTitle (line 119) | void setTitle(const QString &title) override {
method setMessage (line 122) | void setMessage(const QString &msg, Qt::TextFormat format = Qt::AutoTe...
method setPixmap (line 125) | void setPixmap(const QPixmap &pixmap) override {
method setIcon (line 128) | void setIcon(const QString &icon) override {
method setIcon (line 131) | void setIcon(ushort icon) override {
method setInterval (line 134) | void setInterval(int msec) override {
method setOpacity (line 137) | void setOpacity(qreal opacity) override {
method setButtons (line 140) | void setButtons(const NotificationButtons &buttons) override {
method setUrgency (line 144) | void setUrgency(Urgency) override {}
method setPersistency (line 145) | void setPersistency(Persistency) override {}
method adjust (line 147) | void adjust() override {
method QWidget (line 152) | QWidget *widget() override {
method show (line 158) | void show() override {
method close (line 162) | void close() override {
function Notification (line 373) | Notification *createNotificationBasic(QObject *parent)
FILE: src/gui/notificationbutton.h
type NotificationButton (line 11) | struct NotificationButton
FILE: src/gui/notificationdaemon.cpp
function notificationMargin (line 27) | int notificationMargin()
function hasNativeNotifications (line 33) | bool hasNativeNotifications()
function Notification (line 178) | Notification *NotificationDaemon::findNotification(const QString &id)
function Notification (line 188) | Notification *NotificationDaemon::createNotification(const QString &id)
FILE: src/gui/notificationdaemon.h
type Position (line 23) | enum Position {
function setNativeNotificationsEnabled (line 55) | void setNativeNotificationsEnabled(bool enable) { m_nativeNotificationsE...
type NotificationData (line 66) | struct NotificationData {
FILE: src/gui/notificationnative/notificationnative.cpp
function QString (line 38) | QString limitLength(const QString &text, int maxLength)
function QPixmap (line 46) | QPixmap defaultIcon()
class NotificationNative (line 52) | class NotificationNative final : public Notification
method setOpacity (line 67) | void setOpacity(qreal) override {}
method adjust (line 71) | void adjust() override {}
method QWidget (line 72) | QWidget *widget() override { return nullptr; }
function KNotification (line 366) | KNotification *NotificationNative::dropNotification()
function Notification (line 378) | Notification *createNotificationNative(const QColor &iconColor, QObject ...
FILE: src/gui/passwordprompt.h
type PendingPrompt (line 30) | struct PendingPrompt {
FILE: src/gui/pixelratio.h
function qreal (line 6) | static qreal pixelRatio(QPaintDevice *pd)
FILE: src/gui/pluginwidget.h
function namespace (line 12) | namespace Ui {
FILE: src/gui/screen.cpp
function QScreen (line 10) | QScreen *screenFromNumber(int i)
function screenCount (line 20) | int screenCount()
function screenNumberAt (line 25) | int screenNumberAt(const QPoint &pos)
function QRect (line 33) | QRect screenGeometry(int i)
function QRect (line 39) | QRect screenAvailableGeometry(const QWidget &w)
FILE: src/gui/selectiondata.cpp
function addSelectionData (line 7) | void addSelectionData(
function addSelectionData (line 14) | void addSelectionData(
function QVariantMap (line 26) | QVariantMap selectionData(
function QVariantMap (line 47) | QVariantMap selectionData(const ClipboardBrowser &c)
FILE: src/gui/shortcutbutton.cpp
function QKeySequence (line 220) | QKeySequence ShortcutButton::shortcutForButton(const QAction &w) const
FILE: src/gui/shortcutdialog.cpp
function QKeySequence (line 42) | QKeySequence ShortcutDialog::shortcut() const
FILE: src/gui/shortcutdialog.h
function namespace (line 8) | namespace Ui {
FILE: src/gui/shortcutswidget.cpp
type Columns (line 26) | namespace Columns {
type Columns (line 27) | enum Columns {
function QString (line 36) | QString uiText(QString text)
function Command (line 41) | Command *findShortcutCommand(const QString &name, QVector<Command> &comm...
function hasShortcutCommand (line 51) | bool hasShortcutCommand(const QString &name, const QVector<MenuAction> &...
function canAddCommandAction (line 61) | bool canAddCommandAction(const Command &command, const QVector<MenuActio...
function QStringList (line 67) | const QStringList &shortcuts(const Command &command)
function setShortcuts (line 74) | void setShortcuts(Command *command, const QStringList &shortcutNames)
FILE: src/gui/shortcutswidget.h
function namespace (line 13) | namespace Ui {
type MenuAction (line 21) | struct MenuAction {
function ShortcutButton (line 30) | ShortcutButton *shortcutButton{}
FILE: src/gui/tabbar.cpp
function dropItemsTabIndex (line 18) | int dropItemsTabIndex(const QDropEvent &event, const QTabBar &parent)
function tabIndex (line 23) | int tabIndex(const QString &tabName, const TabBar &parent)
function QString (line 48) | QString TabBar::getCurrentTabPath() const
function QString (line 53) | QString TabBar::tabName(int tabIndex) const
FILE: src/gui/tabbar.h
function QString (line 22) | QString getCurrentTabPath() const override;
function updateCollapsedTabs (line 38) | void updateCollapsedTabs(QList<QString> *) const override {}
function setCollapsedTabs (line 39) | void setCollapsedTabs(const QList<QString> &) override {}
FILE: src/gui/tabdialog.h
function namespace (line 9) | namespace Ui {
type TabDialogType (line 22) | enum TabDialogType {
FILE: src/gui/tabicons.cpp
function QByteArray (line 20) | QByteArray tabNameFromFileSuffix(QByteArray base64Suffix)
function savedTabs (line 27) | QList<QString> savedTabs()
function QString (line 55) | QString getIconNameForTabName(const QString &tabName)
function setIconNameForTabName (line 68) | void setIconNameForTabName(const QString &tabName, const QString &icon)
function QIcon (line 88) | QIcon getIconForTabName(const QString &tabName)
function initTabComboBox (line 94) | void initTabComboBox(QComboBox *comboBox)
function setDefaultTabItemCounterStyle (line 105) | void setDefaultTabItemCounterStyle(QWidget *widget)
function setComboBoxItems (line 116) | void setComboBoxItems(QComboBox *comboBox, const QList<QString> &items)
FILE: src/gui/tabpropertieswidget.h
function namespace (line 8) | namespace Ui {
function class (line 12) | class TabPropertiesWidget : public QWidget
FILE: src/gui/tabswidgetinterface.h
function class (line 10) | class TabsWidgetInterface {
FILE: src/gui/tabtree.cpp
function updateItemSize (line 28) | void updateItemSize(QTreeWidgetItem *item)
function setItemWidgetSelected (line 49) | void setItemWidgetSelected(QTreeWidgetItem *item)
function QTreeWidgetItem (line 77) | QTreeWidgetItem *findLastTreeItem(const QTreeWidget &tree, QStringList *...
function QTreeWidgetItem (line 117) | QTreeWidgetItem *dropItemsTarget(const QDropEvent &event, const QTreeWid...
function itemLabelPadding (line 122) | int itemLabelPadding()
function QLabel (line 127) | QLabel *createLabel(const QString &objectName, QWidget *parent)
class ItemLabel (line 137) | class ItemLabel final : public QWidget {
method ItemLabel (line 139) | explicit ItemLabel(QTreeWidgetItem *item)
method updateFromItem (line 157) | void updateFromItem(QTreeWidgetItem *item)
method setText (line 165) | void setText(const QString &text)
method setItemCountLabel (line 170) | void setItemCountLabel(const QString &itemCount)
method eventFilter (line 188) | bool eventFilter(QObject *, QEvent *event) override
function ItemLabel (line 210) | ItemLabel *itemLabel(QTreeWidgetItem *item)
method ItemLabel (line 139) | explicit ItemLabel(QTreeWidgetItem *item)
method updateFromItem (line 157) | void updateFromItem(QTreeWidgetItem *item)
method setText (line 165) | void setText(const QString &text)
method setItemCountLabel (line 170) | void setItemCountLabel(const QString &itemCount)
method eventFilter (line 188) | bool eventFilter(QObject *, QEvent *event) override
function labelItem (line 215) | void labelItem(QTreeWidgetItem *item)
function isInside (line 232) | bool isInside(QWidget *child, QWidget *parent)
function QString (line 271) | QString TabTree::getCurrentTabPath() const
function QString (line 281) | QString TabTree::tabName(int tabIndex) const
function QTreeWidgetItem (line 491) | QTreeWidgetItem *TabTree::findTreeItem(int index) const
function QTreeWidgetItem (line 496) | QTreeWidgetItem *TabTree::findTreeItem(const QString &path) const
function QString (line 508) | QString TabTree::getTabPath(const QTreeWidgetItem *item) const
function QSize (line 535) | QSize TabTree::sizeHint() const
FILE: src/gui/tabwidget.cpp
function QString (line 21) | QString getTabWidgetConfigurationFilePath()
function addTabAction (line 27) | void addTabAction(QWidget *widget, const QKeySequence &shortcut,
function QString (line 73) | QString TabWidget::getCurrentTabPath() const
function QWidget (line 94) | QWidget *TabWidget::widget(int tabIndex) const
function QString (line 104) | QString TabWidget::tabName(int tabIndex) const
function QStringList (line 168) | QStringList TabWidget::tabs() const
function QString (line 484) | QString TabWidget::itemCountLabel(const QString &name)
FILE: src/gui/tabwidget.h
function QString (line 26) | QString getCurrentTabPath() const;
function count (line 42) | int count() const;
function QStringList (line 62) | QStringList tabs() const;
FILE: src/gui/theme.cpp
function defaultColorVarToRole (line 52) | QPalette::ColorRole defaultColorVarToRole(const QString &varName)
function normalizeFactor (line 80) | double normalizeFactor(double value)
function normalizeColorValue (line 85) | int normalizeColorValue(int value)
function addColor (line 91) | int addColor(int c1, float multiply, int c2)
function addColor (line 100) | void addColor(
function fitFontWeight (line 141) | int fitFontWeight(int weight, int low, int high, int highCss)
function getFontWeightForStyleSheet (line 152) | int getFontWeightForStyleSheet(int weight)
function QString (line 174) | QString getFontStyleSheet(const QString &fontString, double scale = 1.0)
function QString (line 211) | QString themePrefix()
function getFactor (line 220) | double getFactor(const QString &name, const QHash<QString, QVariant> &va...
function QVariant (line 261) | QVariant Theme::value(const QString &name) const
function QColor (line 266) | QColor Theme::color(const QString &name) const
function QFont (line 271) | QFont Theme::font(const QString &name) const
function QColor (line 276) | QColor Theme::evalColorExpression(const QString &expr) const
function QString (line 346) | QString Theme::getMenuStyleSheet() const
function QString (line 352) | QString Theme::getNotificationStyleSheet() const
function QFont (line 370) | QFont Theme::themeFontFromString(const QString &fontString) const
function QSize (line 559) | QSize Theme::rowNumberSize(int n) const
function QString (line 581) | QString Theme::themeColorString(const QString &name) const
function QString (line 586) | QString Theme::getStyleSheet(const QString &name, Values values, int max...
function QString (line 604) | QString Theme::parseStyleSheet(const QString &css, Values values, int ma...
function QString (line 635) | QString Theme::parsePlaceholder(const QString &name, Values *values, int...
function QString (line 692) | QString serializeColor(const QColor &color)
function QColor (line 704) | QColor deserializeColor(const QString &colorName)
function QColor (line 729) | QColor evalColor(const QString &expression, const Theme &theme, const Va...
function QString (line 749) | QString defaultUserThemePath()
function QStringList (line 754) | QStringList themePaths()
function QString (line 774) | QString findThemeFile(const QString &fileName)
FILE: src/gui/theme.h
function namespace (line 14) | namespace Ui {
type ClipboardBrowserShared (line 24) | struct ClipboardBrowserShared
function QString (line 64) | QString getMenuStyleSheet() const;
function setRowIndexFromOne (line 93) | void setRowIndexFromOne(bool enabled) { m_rowIndexFromOne = enabled; }
FILE: src/gui/traymenu.cpp
function QIcon (line 25) | const QIcon iconClipboard() { return getIcon("clipboard", IconPaste); }
function canActivate (line 27) | bool canActivate(const QAction &action)
function QAction (line 32) | QAction *firstEnabledAction(QMenu *menu)
function QAction (line 43) | QAction *lastEnabledAction(QMenu *menu)
function QAction (line 104) | QAction *TrayMenu::addClipboardItemAction(const QVariantMap &data, bool ...
FILE: src/gui/traymenu.h
function setRowIndexFromOne (line 52) | void setRowIndexFromOne(bool rowIndexFromOne) { m_rowIndexFromOne = rowI...
FILE: src/gui/windowgeometryguard.cpp
function openOnCurrentScreen (line 27) | bool openOnCurrentScreen()
function isRestoreGeometryEnabled (line 32) | bool isRestoreGeometryEnabled()
function isMousePositionSupported (line 37) | bool isMousePositionSupported()
function QScreen (line 45) | QScreen *currentScreen()
function raiseWindow (line 60) | void raiseWindow(QWidget *window)
FILE: src/item/clipboarditem.cpp
function clearDataExceptInternal (line 18) | void clearDataExceptInternal(QVariantMap *data)
function QVariant (line 137) | QVariant ClipboardItem::data(int role) const
FILE: src/item/clipboarditem.h
function class (line 17) | class ClipboardItem final
FILE: src/item/clipboardmodel.cpp
function validIndeces (line 14) | QList<QPersistentModelIndex> validIndeces(const QModelIndexList &indexList)
function topMostRow (line 27) | int topMostRow(const QList<QPersistentModelIndex> &indexList)
function QVariant (line 63) | QVariant ClipboardModel::data(const QModelIndex &index, int role) const
FILE: src/item/clipboardmodel.h
function class (line 16) | class ClipboardItemList final {
FILE: src/item/indexes.cpp
function toPersistentModelIndexList (line 7) | QList<QPersistentModelIndex> toPersistentModelIndexList(const QList<QMod...
function dropIndexes (line 20) | int dropIndexes(const QModelIndexList &indexes, QAbstractItemModel *model)
function dropIndexes (line 26) | int dropIndexes(QList<QPersistentModelIndex> &indexes, QAbstractItemMode...
FILE: src/item/indexes.h
type QList (line 8) | typedef QList<QModelIndex> QModelIndexList;
FILE: src/item/itemdelegate.cpp
function QSize (line 45) | QSize ItemDelegate::sizeHint(const QModelIndex &index) const
function QSize (line 50) | QSize ItemDelegate::sizeHint(const QStyleOptionViewItem &,
function QWidget (line 118) | QWidget *ItemDelegate::createPreview(const QVariantMap &data, QWidget *p...
function QWidget (line 125) | QWidget *ItemDelegate::createPreviewNoEmit(const QVariantMap &data, QWid...
function ItemEditorWidget (line 244) | ItemEditorWidget *ItemDelegate::createCustomEditor(
function QPoint (line 453) | QPoint ItemDelegate::findPositionForWidget(const QModelIndex &index) const
function ItemWidget (line 513) | ItemWidget *ItemDelegate::updateWidget(const QModelIndex &index, const Q...
FILE: src/item/itemdelegate.h
type Item (line 120) | struct Item {
FILE: src/item/itemeditor.cpp
function QString (line 21) | QString getFileSuffixFromMime(const QString &mime)
FILE: src/item/itemeditorwidget.cpp
function containsRichText (line 28) | bool containsRichText(const QTextDocument &document)
function QString (line 33) | QString findImageFormat(const QMimeData &data)
function QAction (line 44) | QAction *addMenuItem(const MenuItem &menuItem, QToolBar *toolBar, ItemEd...
function QVariantMap (line 84) | QVariantMap ItemEditorWidget::data() const
function QWidget (line 259) | QWidget *ItemEditorWidget::createToolbar(QWidget *parent, const MenuItem...
FILE: src/item/itemfactory.cpp
function findPluginDir (line 38) | bool findPluginDir(QDir *pluginsDir)
function priorityLessThan (line 50) | bool priorityLessThan(const ItemLoaderPtr &lhs, const ItemLoaderPtr &rhs)
function trySetPixmap (line 55) | void trySetPixmap(QLabel *label, const QVariantMap &data, int height)
function askToKeepCorruptedTab (line 76) | bool askToKeepCorruptedTab(const QString &tabName)
class PluginSorter (line 91) | class PluginSorter final {
method PluginSorter (line 93) | explicit PluginSorter(const QStringList &pluginNames) : m_order(plugin...
method value (line 95) | int value(const ItemLoaderPtr &item) const
class DummyItem (line 119) | class DummyItem final : public QLabel, public ItemWidget {
method DummyItem (line 121) | DummyItem(const QVariantMap &data, QWidget *parent, bool preview)
method updateSize (line 162) | void updateSize(QSize, int idealWidth) override
method setTagged (line 174) | void setTagged(bool tagged) override
method hasPixmap (line 180) | bool hasPixmap() const
class DummySaver (line 191) | class DummySaver final : public ItemSaverInterface
method DummySaver (line 194) | explicit DummySaver(int itemDataThreshold, const ClipboardBrowserShare...
method saveItems (line 199) | bool saveItems(const QString & /* tabName */, const QAbstractItemModel...
class DummyLoader (line 210) | class DummyLoader final : public ItemLoaderInterface
method DummyLoader (line 213) | DummyLoader(const ClipboardBrowserSharedPtr &sharedData)
method priority (line 217) | int priority() const override { return std::numeric_limits<int>::min(); }
method QString (line 219) | QString id() const override { return {}; }
method QString (line 220) | QString name() const override { return {}; }
method QString (line 221) | QString author() const override { return {}; }
method QString (line 222) | QString description() const override { return {}; }
method QVariant (line 223) | QVariant icon() const override { return {}; }
method setEnabled (line 225) | void setEnabled(bool) override {}
method loadSettings (line 226) | void loadSettings(const QSettings &) override
method ItemWidget (line 231) | ItemWidget *create(const QVariantMap &data, QWidget *parent, bool prev...
method canLoadItems (line 236) | bool canLoadItems(QIODevice *) const override { return true; }
method canSaveItems (line 238) | bool canSaveItems(const QString &) const override { return true; }
method ItemSaverPtr (line 240) | ItemSaverPtr loadItems(const QString &tabName, QAbstractItemModel *mod...
method ItemSaverPtr (line 262) | ItemSaverPtr initializeTab(const QString &, QAbstractItemModel *, int)...
method matches (line 267) | bool matches(const QModelIndex &index, const ItemFilter &filter) const...
method supportsEncryption (line 273) | bool supportsEncryption() const override { return true; }
function ItemSaverPtr (line 280) | ItemSaverPtr transformSaver(
function saveWithOther (line 295) | std::pair<ItemSaverPtr, ItemLoaderPtr> saveWithOther(
function cropToSize (line 328) | void cropToSize(const ItemSaverPtr &saver, QAbstractItemModel *model, in...
function ItemWidget (line 354) | ItemWidget *ItemFactory::createItem(
function ItemWidget (line 384) | ItemWidget *ItemFactory::createItem(
function ItemWidget (line 399) | ItemWidget *ItemFactory::createSimpleItem(
function QStringList (line 405) | QStringList ItemFactory::formatsToSave() const
function ItemSaverPtr (line 439) | ItemSaverPtr ItemFactory::loadItems(const QString &tabName, QAbstractIte...
function ItemSaverPtr (line 470) | ItemSaverPtr ItemFactory::initializeTab(const QString &tabName, QAbstrac...
function ItemScriptable (line 495) | ItemScriptable *ItemFactory::scriptableObject(const QString &name) const
function QObject (line 583) | QObject *ItemFactory::createExternalEditor(const QModelIndex &index, con...
function QVariantMap (line 597) | QVariantMap ItemFactory::data(const QModelIndex &index) const
function ItemWidget (line 617) | ItemWidget *ItemFactory::transformItem(ItemWidget *item, const QVariantM...
function ItemLoaderPtr (line 646) | ItemLoaderPtr ItemFactory::loadPlugin(const QString &path, const QString...
function QStringList (line 687) | QStringList ItemFactory::copyqStats() const
FILE: src/item/itemfactory.h
type Command (line 21) | struct Command
type CommandMenu (line 22) | struct CommandMenu
function namespace (line 24) | namespace Encryption {
type ClipboardBrowserShared (line 28) | struct ClipboardBrowserShared
function QStringList (line 67) | QStringList formatsToSave() const;
FILE: src/item/itemsaverwrapper.cpp
function QVariantMap (line 35) | QVariantMap ItemSaverWrapper::copyItem(const QAbstractItemModel &model, ...
FILE: src/item/itemsaverwrapper.h
function class (line 5) | class ItemSaverWrapper : public ItemSaverInterface
FILE: src/item/itemstore.cpp
function QString (line 20) | QString itemFileName(const QString &id)
function printItemFileError (line 27) | void printItemFileError(
function ItemSaverPtr (line 38) | ItemSaverPtr loadItems(
function ItemSaverPtr (line 53) | ItemSaverPtr createTab(
function itemDataFiles (line 70) | bool itemDataFiles(const QString &tabName, QStringList *files, const Enc...
function cleanDataDir (line 85) | void cleanDataDir(QDir *dir)
function ItemSaverPtr (line 93) | ItemSaverPtr loadItems(const QString &tabName, QAbstractItemModel &model...
function saveItems (line 112) | bool saveItems(const QString &tabName, const QAbstractItemModel &model, ...
function removeItems (line 152) | void removeItems(const QString &tabName)
function moveItems (line 158) | bool moveItems(const QString &oldId, const QString &newId)
function cleanDataFiles (line 185) | void cleanDataFiles(const QStringList &tabNames, const Encryption::Encry...
FILE: src/item/itemstore.h
function namespace (line 13) | namespace Encryption {
FILE: src/item/itemwidget.cpp
function canMouseInteract (line 21) | bool canMouseInteract(const QMouseEvent &event)
function QVariant (line 146) | QVariant ItemScriptable::call(const QString &method, const QVariantList ...
function QVariant (line 157) | QVariant ItemScriptable::eval(const QString &script)
function QVariantList (line 162) | QVariantList ItemScriptable::currentArguments()
function QVariantMap (line 202) | QVariantMap ItemSaverInterface::copyItem(const QAbstractItemModel &, con...
function ItemWidget (line 211) | ItemWidget *ItemLoaderInterface::create(const QVariantMap &, QWidget *, ...
function QStringList (line 216) | QStringList ItemLoaderInterface::formatsToSave() const
function ItemSaverPtr (line 231) | ItemSaverPtr ItemLoaderInterface::loadItems(const QString &, QAbstractIt...
function ItemSaverPtr (line 236) | ItemSaverPtr ItemLoaderInterface::initializeTab(const QString &, QAbstra...
function ItemWidget (line 241) | ItemWidget *ItemLoaderInterface::transform(ItemWidget *, const QVariantM...
function ItemSaverPtr (line 246) | ItemSaverPtr ItemLoaderInterface::transformSaver(const ItemSaverPtr &sav...
function QObject (line 256) | const QObject *ItemLoaderInterface::signaler() const
function ItemScriptable (line 261) | ItemScriptable *ItemLoaderInterface::scriptableObject()
function QVariant (line 266) | QVariant ItemLoaderInterface::scriptCallback(const QVariantList &)
function QObject (line 286) | QObject *ItemLoaderInterface::createExternalEditor(const QModelIndex &, ...
FILE: src/item/itemwidget.h
type Command (line 11) | struct Command
function class (line 36) | class ItemWidget
function class (line 98) | class ItemScriptable : public QObject
function class (line 141) | class ItemScriptableFactoryInterface
function class (line 169) | class ItemSaverInterface
function class (line 227) | class ItemLoaderInterface
FILE: src/item/itemwidgetwrapper.h
function class (line 8) | class ItemWidgetWrapper : public ItemWidget
FILE: src/item/persistentdisplayitem.cpp
function dataEquals (line 13) | bool dataEquals(const QVariantMap &lhs, const QVariantMap &rhs)
FILE: src/item/serialize.cpp
class DataFile (line 38) | class DataFile {
method DataFile (line 40) | DataFile() {}
method DataFile (line 42) | explicit DataFile(const QString &path, const Encryption::EncryptionKey...
method QString (line 53) | const QString &path() const { return m_path; }
method setPath (line 54) | void setPath(const QString &path) { m_path = path; }
method setEncryptionKey (line 57) | void setEncryptionKey(const Encryption::EncryptionKey &key)
method qint64 (line 65) | qint64 size() const
method QString (line 70) | QString toString() const { return m_path; }
method QByteArray (line 72) | QByteArray readAll() const
function QDataStream (line 108) | QDataStream &operator<<(QDataStream &out, DataFile value)
function QDataStream (line 123) | QDataStream &operator>>(QDataStream &in, DataFile &value)
function readOrError (line 163) | bool readOrError(QDataStream *out, T *value, const char *error)
function QString (line 194) | QString decompressMime(QDataStream *out)
function QString (line 224) | QString compressMime(const QString &mime)
function deserializeDataV2 (line 236) | bool deserializeDataV2(QDataStream *out, QVariantMap *data, const Encryp...
function deserializeDataV3 (line 303) | bool deserializeDataV3(QDataStream *out, QVariantMap *data, const Encryp...
function QString (line 356) | QString dataFilePath(const QByteArray &bytes, bool create = false)
function serializeDataItems (line 377) | void serializeDataItems(QDataStream *stream, const QVariantMap &data, in...
function registerDataFileConverter (line 476) | void registerDataFileConverter()
function serializeData (line 487) | void serializeData(QDataStream *stream, const QVariantMap &data, int ite...
function deserializeData (line 534) | bool deserializeData(QDataStream *stream, QVariantMap *data, const Encry...
function QByteArray (line 583) | QByteArray serializeData(const QVariantMap &data)
function deserializeData (line 591) | bool deserializeData(QVariantMap *data, const QByteArray &bytes, const E...
function serializeData (line 597) | bool serializeData(const QAbstractItemModel &model, QDataStream *stream,...
function deserializeData (line 610) | bool deserializeData(QAbstractItemModel *model, QDataStream *stream, con...
function serializeData (line 645) | bool serializeData(const QAbstractItemModel &model, QIODevice *file, int...
function deserializeData (line 652) | bool deserializeData(QAbstractItemModel *model, QIODevice *file, const E...
function itemDataFiles (line 659) | bool itemDataFiles(QIODevice *file, QStringList *files, const Encryption...
function QString (line 783) | QString itemDataPath()
function qint64 (line 788) | qint64 estimateDataSize(const QVariantMap &data)
FILE: src/item/serialize.h
function namespace (line 15) | namespace Encryption {
FILE: src/main.cpp
function Q_DECLARE_METATYPE (line 25) | Q_DECLARE_METATYPE(QByteArray*)
function main (line 334) | int main(int argc, char **argv)
FILE: src/platform/dummy/dummyclipboard.cpp
function modeToQClipboardMode (line 13) | QClipboard::Mode modeToQClipboardMode(ClipboardMode mode)
function QVariantMap (line 38) | QVariantMap DummyClipboard::data(ClipboardMode mode, const QStringList &...
function QMimeData (line 62) | const QMimeData *DummyClipboard::rawMimeData(ClipboardMode mode) const
function QMimeData (line 67) | const QMimeData *DummyClipboard::mimeData(ClipboardMode mode) const
FILE: src/platform/dummy/dummyclipboard.h
function class (line 13) | class DummyClipboard : public PlatformClipboard
FILE: src/platform/dummy/dummyplatform.cpp
function PlatformNativeInterface (line 14) | PlatformNativeInterface *platformNativeInterface()
function QCoreApplication (line 20) | QCoreApplication *DummyPlatform::createConsoleApplication(int &argc, cha...
function QApplication (line 25) | QApplication *DummyPlatform::createServerApplication(int &argc, char **a...
function QGuiApplication (line 30) | QGuiApplication *DummyPlatform::createClipboardProviderApplication(int &...
function QCoreApplication (line 35) | QCoreApplication *DummyPlatform::createClientApplication(int &argc, char...
function QGuiApplication (line 40) | QGuiApplication *DummyPlatform::createTestApplication(int &argc, char **...
function PlatformClipboardPtr (line 45) | PlatformClipboardPtr DummyPlatform::clipboard()
function QString (line 56) | QString DummyPlatform::defaultEditorCommand()
function QString (line 61) | QString DummyPlatform::translationPrefix()
function QStringList (line 66) | QStringList DummyPlatform::getCommandLineArguments(int argc, char **argv)
FILE: src/platform/dummy/dummyplatform.h
function class (line 11) | class DummyPlatform : public PlatformNativeInterface
FILE: src/platform/mac/cfref.h
function m_ref (line 36) | CFRef(T ref) : m_ref(ref) {}
function m_ref (line 44) | CFRef(const CFRef &other) : m_ref(other.m_ref)
FILE: src/platform/mac/copyqpasteboardmime.h
function CopyqPasteboardMimeBase (line 36) | CopyqPasteboardMimeBase(MIME_ALL) {}
FILE: src/platform/mac/macactivity.h
function class (line 11) | class MacActivity
FILE: src/platform/mac/macclipboard.h
function stopMonitoringBackend (line 18) | void stopMonitoringBackend() override;
FILE: src/platform/mac/macplatform.h
function PlatformWindowPtr (line 17) | PlatformWindowPtr getCurrentWindow() override;
function canAutostart (line 20) | bool canAutostart() override { return true; }
function isAutostartEnabled (line 21) | bool isAutostartEnabled() override;
function canPreventScreenCapture (line 24) | bool canPreventScreenCapture() override { return false; }
FILE: src/platform/mac/objcstrong.h
function T (line 57) | T *get() const { return m_ptr; }
function operator (line 58) | operator T *() const { return m_ptr; }
FILE: src/platform/platformclipboard.cpp
function ClipboardModeFlag (line 7) | ClipboardModeFlag clipboardModeFlag(ClipboardMode mode)
function ClipboardConnectionPtr (line 34) | ClipboardConnectionPtr PlatformClipboard::createConnection(
FILE: src/platform/platformclipboard.h
function ClipboardModeFlag (line 16) | enum class ClipboardModeFlag {
FILE: src/platform/platformcommon.cpp
function pasteWithCtrlV (line 20) | bool pasteWithCtrlV(PlatformWindow &window, const AppConfig &config)
function waitMs (line 47) | void waitMs(int msec)
FILE: src/platform/platformnativeinterface.h
function class (line 27) | class PlatformNativeInterface
FILE: src/platform/platformwindow.h
function class (line 13) | class PlatformWindow
FILE: src/platform/unix/unixsignalhandler.cpp
type SignalAction (line 16) | namespace SignalAction {
type SignalAction (line 17) | enum SignalAction { Write, Read, Count }
type SignalData (line 23) | struct SignalData {
function exitSignalHandler (line 36) | void exitSignalHandler(int code)
function handleSignal (line 44) | void handleSignal()
function initUnixSignalHandler (line 64) | bool initUnixSignalHandler()
function startUnixSignalHandler (line 89) | void startUnixSignalHandler()
FILE: src/platform/win/winplatform.cpp
function setBinaryFor (line 35) | void setBinaryFor(int fd)
function QString (line 40) | QString portableFolder()
function QString (line 65) | QString getStartupFolderPath()
function QString (line 74) | QString getAutostartShortcutPath()
function createShortcut (line 84) | bool createShortcut(const QString &shortcutPath, const QString &targetPa...
function BOOL (line 117) | BOOL appQuit()
function BOOL (line 130) | BOOL ctrlHandler(DWORD fdwCtrlType)
function installControlHandler (line 158) | void installControlHandler()
function uninstallControlHandler (line 164) | void uninstallControlHandler()
function initApplication (line 169) | void initApplication(QCoreApplication *app)
function Application (line 190) | Application *createApplication(int &argc, char **argv)
function QApplication (line 197) | QApplication *createGuiApplication(int &argc, char **argv)
function QString (line 210) | QString windowClass(HWND window)
function HWND (line 217) | HWND getLastVisibleActivePopUpOfWindow(HWND window)
function isAltTabWindow (line 236) | bool isAltTabWindow(HWND window)
function BOOL (line 260) | BOOL CALLBACK getCurrentWindowProc(HWND window, LPARAM)
function PlatformNativeInterface (line 271) | PlatformNativeInterface *platformNativeInterface()
function PlatformWindowPtr (line 277) | PlatformWindowPtr WinPlatform::getWindow(WId winId)
function PlatformWindowPtr (line 283) | PlatformWindowPtr WinPlatform::getCurrentWindow()
function QCoreApplication (line 298) | QCoreApplication *WinPlatform::createConsoleApplication(int &argc, char ...
function QApplication (line 303) | QApplication *WinPlatform::createServerApplication(int &argc, char **argv)
function QGuiApplication (line 308) | QGuiApplication *WinPlatform::createClipboardProviderApplication(int &ar...
function QCoreApplication (line 313) | QCoreApplication *WinPlatform::createClientApplication(int &argc, char *...
function QGuiApplication (line 318) | QGuiApplication *WinPlatform::createTestApplication(int &argc, char **argv)
function PlatformClipboardPtr (line 323) | PlatformClipboardPtr WinPlatform::clipboard()
function QStringList (line 328) | QStringList WinPlatform::getCommandLineArguments(int, char**)
function QString (line 347) | QString WinPlatform::defaultEditorCommand()
function QString (line 352) | QString WinPlatform::translationPrefix()
function QString (line 357) | QString WinPlatform::themePrefix()
function qint64 (line 387) | qint64 WinPlatform::processResidentMemoryBytes()
FILE: src/platform/win/winplatform.h
function PlatformWindowPtr (line 15) | PlatformWindowPtr getCurrentWindow() override;
function canAutostart (line 19) | bool canAutostart() override { return true; }
function isAutostartEnabled (line 21) | bool isAutostartEnabled() override;
FILE: src/platform/win/winplatformclipboard.cpp
function contains (line 11) | bool contains(const QStringList &formats, const QMimeData &data, const Q...
FILE: src/platform/win/winplatformclipboard.h
function stopMonitoringBackend (line 19) | void stopMonitoringBackend() override;
FILE: src/platform/win/winplatformwindow.cpp
function QString (line 17) | QString windowTitle(HWND window)
function INPUT (line 24) | INPUT createInput(WORD key, DWORD flags = 0)
function QString (line 38) | QString windowLogText(QString text, HWND window)
function logWindowWarning (line 53) | void logWindowWarning(const char *text, HWND window)
function logWindowDebug (line 58) | void logWindowDebug(const char *text, HWND window)
function raiseWindowHelper (line 63) | bool raiseWindowHelper(HWND window)
function raiseWindow (line 78) | bool raiseWindow(HWND window)
function isKeyPressed (line 102) | bool isKeyPressed(int key)
function isModifierPressed (line 107) | bool isModifierPressed()
function waitForModifiersReleased (line 120) | bool waitForModifiersReleased(const AppConfig &config)
function sendInputs (line 134) | bool sendInputs(QVector<INPUT> input, HWND wnd)
function QString (line 151) | QString WinPlatformWindow::getTitle()
FILE: src/platform/x11/systemclipboard/waylandclipboard.cpp
function QString (line 33) | static inline QString applicationQtXImageLiteral()
function QString (line 39) | static QString utf8Text()
function QStringList (line 44) | static QStringList imageMimeFormats(const QList<QByteArray> &imageFormats)
function QStringList (line 57) | static inline QStringList imageReadMimeFormats()
function QStringList (line 62) | static inline QStringList imageWriteMimeFormats()
class SendThread (line 70) | class SendThread : public QThread {
method SendThread (line 72) | SendThread(int fd, const QByteArray &data)
method run (line 78) | void run() override {
class Keyboard (line 108) | class Keyboard
method Keyboard (line 160) | Keyboard(::wl_keyboard *keyboard, KeyboardFocusWatcher &seat)
method keyboard_enter (line 171) | void keyboard_enter([[maybe_unused]] uint32_t serial, [[maybe_unused]]...
method keyboard_leave (line 176) | void keyboard_leave([[maybe_unused]] uint32_t serial, [[maybe_unused]]...
class KeyboardFocusWatcher (line 110) | class KeyboardFocusWatcher : public QWaylandClientExtensionTemplate<Keyb...
method Q_OBJECT (line 112) | Q_OBJECT
method seat_capabilities (line 135) | void seat_capabilities(uint32_t capabilities) override
method hasFocus (line 144) | bool hasFocus() const
class Keyboard (line 157) | class Keyboard : public QtWayland::wl_keyboard
method Keyboard (line 160) | Keyboard(::wl_keyboard *keyboard, KeyboardFocusWatcher &seat)
method keyboard_enter (line 171) | void keyboard_enter([[maybe_unused]] uint32_t serial, [[maybe_unused]]...
method keyboard_leave (line 176) | void keyboard_leave([[maybe_unused]] uint32_t serial, [[maybe_unused]]...
class DataControlDeviceManager (line 183) | class DataControlDeviceManager : public QWaylandClientExtensionTemplate<...
method Q_OBJECT (line 186) | Q_OBJECT
method instantiate (line 193) | void instantiate()
class DataControlOffer (line 212) | class DataControlOffer : public QMimeData, public QtWayland::zwlr_data_c...
method DataControlOffer (line 218) | DataControlOffer(struct ::zwlr_data_control_offer_v1 *id, const std::s...
method QStringList (line 230) | QStringList formats() const override
method containsImageData (line 235) | bool containsImageData() const
method hasFormat (line 249) | bool hasFormat(const QString &mimeType) const override
method zwlr_data_control_offer_v1_offer (line 276) | void zwlr_data_control_offer_v1_offer(const QString &mime_type) override
function QVariant (line 302) | QVariant DataControlOffer::retrieveData(const QString &mimeType, QVarian...
class DataControlSource (line 435) | class DataControlSource : public QObject, public QtWayland::zwlr_data_co...
method QMimeData (line 447) | QMimeData *mimeData()
method releaseMimeData (line 451) | std::unique_ptr<QMimeData> releaseMimeData()
method isCancelled (line 456) | bool isCancelled() const { return m_cancelled; }
type ::zwlr_data_control_source_v1 (line 470) | struct ::zwlr_data_control_source_v1
class DataControlDevice (line 535) | class DataControlDevice : public QObject, public QtWayland::zwlr_data_co...
method QMimeData (line 552) | QMimeData *receivedSelection()
method QMimeData (line 556) | QMimeData *selection()
method QMimeData (line 562) | QMimeData *receivedPrimarySelection()
method QMimeData (line 566) | QMimeData *primarySelection()
method zwlr_data_control_device_v1_data_offer (line 579) | void zwlr_data_control_device_v1_data_offer(struct ::zwlr_data_control...
method zwlr_data_control_device_v1_selection (line 586) | void zwlr_data_control_device_v1_selection(struct ::zwlr_data_control_...
method zwlr_data_control_device_v1_primary_selection (line 600) | void zwlr_data_control_device_v1_primary_selection(struct ::zwlr_data_...
type ::wl_seat (line 661) | struct ::wl_seat
function WaylandClipboard (line 697) | WaylandClipboard *WaylandClipboard::createInstance()
type ::wl_display (line 710) | struct ::wl_display
function QMimeData (line 748) | const QMimeData *WaylandClipboard::mimeData(QClipboard::Mode mode) const
function WaylandClipboard (line 796) | WaylandClipboard *WaylandClipboard::instance()
FILE: src/platform/x11/x11info.cpp
type _XDisplay (line 15) | struct _XDisplay {}
function Display (line 23) | Display *X11Info::display()
FILE: src/platform/x11/x11info.h
type Display (line 10) | typedef struct _XDisplay Display;
function class (line 16) | class X11Info {
FILE: src/platform/x11/x11platform.cpp
function copyq_xio_errhandler (line 50) | int copyq_xio_errhandler(Display *display)
function QString (line 72) | QString getDesktopFilename()
function printFileError (line 85) | void printFileError(const QFile &file, const char *message, LogLevel log...
function maybePrintFileError (line 92) | void maybePrintFileError(const QFile &file, const char *message)
function PlatformNativeInterface (line 100) | PlatformNativeInterface *platformNativeInterface()
function PlatformWindowPtr (line 108) | PlatformWindowPtr X11Platform::getWindow(WId winId)
function PlatformWindowPtr (line 122) | PlatformWindowPtr X11Platform::getCurrentWindow()
function QCoreApplication (line 243) | QCoreApplication *X11Platform::createConsoleApplication(int &argc, char ...
function QApplication (line 248) | QApplication *X11Platform::createServerApplication(int &argc, char **argv)
function QGuiApplication (line 257) | QGuiApplication *X11Platform::createClipboardProviderApplication(int &ar...
function QCoreApplication (line 271) | QCoreApplication *X11Platform::createClientApplication(int &argc, char *...
function QGuiApplication (line 276) | QGuiApplication *X11Platform::createTestApplication(int &argc, char **argv)
function PlatformClipboardPtr (line 281) | PlatformClipboardPtr X11Platform::clipboard()
function QStringList (line 286) | QStringList X11Platform::getCommandLineArguments(int argc, char **argv)
function QString (line 324) | QString X11Platform::defaultEditorCommand()
function QString (line 329) | QString X11Platform::translationPrefix()
function qint64 (line 334) | qint64 X11Platform::processResidentMemoryBytes()
FILE: src/platform/x11/x11platform.h
function PlatformWindowPtr (line 20) | PlatformWindowPtr getCurrentWindow() override;
function canAutostart (line 24) | bool canAutostart() override;
function canPreventScreenCapture (line 41) | bool canPreventScreenCapture() override { return false; }
function PlatformClipboardPtr (line 53) | PlatformClipboardPtr clipboard() override;
FILE: src/platform/x11/x11platformclipboard.cpp
function gnomeClipboardType (line 60) | int gnomeClipboardType(ClipboardMode mode)
function isSelectionIncomplete (line 66) | bool isSelectionIncomplete()
function QVariant (line 90) | QVariant unwrapDbusValue(QVariant value)
function QVariantMap (line 127) | QVariantMap variantToMap(const QVariant &value)
function QVariantMap (line 153) | QVariantMap normalizeClipboardDataMap(const QVariantMap &dataMap)
function preferredClipboardFormatValue (line 167) | std::optional<QPair<QString, QVariant>> preferredClipboardFormatValue(co...
function QVariantMap (line 199) | QVariantMap dataMapFromMimeData(const QMimeData *mimeData)
function GnomeClipboardExtensionClient (line 223) | explicit GnomeClipboardExtensionClient(QObject *parent)
function isConnected (line 255) | bool isConnected() const
function isRegisteredWithExtension (line 260) | bool isRegisteredWithExtension() const { return m_registeredWithExtensio...
function registerClipboardTypes (line 269) | void registerClipboardTypes(int clipboardTypes)
function unregisterClipboardTypes (line 276) | void unregisterClipboardTypes()
function QStringList (line 281) | QStringList fetchClipboardFormats(ClipboardMode mode) const
function QVariantMap (line 307) | QVariantMap fetchClipboardData(ClipboardMode mode, const QStringList &fo...
function setClipboardData (line 338) | void setClipboardData(ClipboardMode mode, const QString &format, const Q...
function public (line 358) | public slots:
function unregisterClient (line 385) | void unregisterClient()
function onServiceRegistered (line 403) | void onServiceRegistered(const QString &name)
function onServiceUnregistered (line 411) | void onServiceUnregistered(const QString &name)
class GnomeExtensionMimeData (line 427) | class GnomeExtensionMimeData final : public QMimeData
method GnomeExtensionMimeData (line 430) | explicit GnomeExtensionMimeData(const GnomeClipboardExtensionClient *c...
method QStringList (line 435) | QStringList formats() const override
method hasFormat (line 440) | bool hasFormat(const QString &mimeType) const override
method QVariant (line 455) | QVariant retrieveData(const QString &mimeType, QVariant::Type preferre...
function QVariantMap (line 589) | QVariantMap X11PlatformClipboard::data(ClipboardMode mode, const QString...
function QMimeData (line 606) | const QMimeData *X11PlatformClipboard::mimeData(ClipboardMode mode) const
function QMimeData (line 662) | const QMimeData *X11PlatformClipboard::rawMimeData(ClipboardMode mode) c...
FILE: src/platform/x11/x11platformclipboard.h
function setClipboardOwner (line 29) | void setClipboardOwner(const QString &owner) override { m_clipboardOwner...
function stopMonitoringBackend (line 33) | void stopMonitoringBackend() override;
type ClipboardData (line 45) | struct ClipboardData {
FILE: src/platform/x11/x11platformwindow.cpp
class KeyPressTester (line 24) | class KeyPressTester final {
method KeyPressTester (line 26) | explicit KeyPressTester(Display *display)
method isPressed (line 32) | bool isPressed(KeySym key) const
function fakeKeyEvent (line 44) | bool fakeKeyEvent(Display* display, unsigned int keyCode, Bool isPress, ...
function simulateModifierKeyPress (line 57) | bool simulateModifierKeyPress(Display *display, const QList<int> &modCod...
function isModifierPressed (line 75) | bool isModifierPressed(Display *display)
function waitForModifiersReleased (line 92) | bool waitForModifiersReleased(Display *display, const AppConfig &config)
function simulateKeyPress (line 106) | bool simulateKeyPress(Display *display, const QList<int> &modCodes, unsi...
function simulateKeyPress (line 145) | bool simulateKeyPress(Display *display, Window window, unsigned int modi...
class X11WindowProperty (line 186) | class X11WindowProperty final {
method X11WindowProperty (line 188) | X11WindowProperty(Display *display, Window w, Atom property, long long...
method isValid (line 204) | bool isValid() const { return data != nullptr; }
method X11WindowProperty (line 206) | X11WindowProperty(const X11WindowProperty &) = delete;
method X11WindowProperty (line 207) | X11WindowProperty &operator=(const X11WindowProperty &) = delete;
function Window (line 216) | Window getCurrentWindow()
function QString (line 248) | QString X11PlatformWindow::getTitle()
FILE: src/scriptable/commandhelp.cpp
function CommandHelp (line 24) | CommandHelp &CommandHelp::addArg(const QString &arg)
function QString (line 31) | QString CommandHelp::toString() const
function commandHelp (line 50) | QList<CommandHelp> commandHelp()
FILE: src/scriptable/commandhelp.h
type CommandHelp (line 9) | struct CommandHelp {
FILE: src/scriptable/scriptable.cpp
class PerformanceLogger (line 77) | class PerformanceLogger {
method PerformanceLogger (line 79) | explicit PerformanceLogger(const QString &label)
method log (line 99) | void log(qint64 ms, LogLevel level) const
function QString (line 113) | QString helpHead()
function QString (line 120) | QString helpTail()
function QString (line 129) | QString argumentError()
function QString (line 134) | QString exceptionBacktrace(const QJSValue &exception, const QStringList ...
function QJSValue (line 153) | QJSValue evaluateStrict(QJSEngine *engine, const QString &script)
function QJSValue (line 164) | QJSValue addScriptableClass(const QMetaObject *metaObject, const QString...
function QByteArray (line 173) | QByteArray serializeScriptValue(const QJSValue &value, Scriptable *scrip...
function QString (line 192) | QString parseCommandLineArgument(const QString &arg)
function isInternalDataFormat (line 219) | bool isInternalDataFormat(const QString &format)
function QVariantMap (line 233) | QVariantMap copyWithoutInternalData(const QVariantMap &data) {
function QJSValue (line 244) | QJSValue checksumForArgument(Scriptable *scriptable, QCryptographicHash:...
function QString (line 251) | QString scriptToLabel(const QString &script)
function QTextCodec (line 260) | QTextCodec *codecFromNameOrThrow(const QJSValue &codecName, Scriptable *...
function QJSValue (line 272) | QJSValue toUnicode(const QByteArray &bytes, const QJSValue &codecName, S...
function QJSValue (line 281) | QJSValue toUnicode(const QByteArray &bytes, Scriptable *scriptable)
function QJSValue (line 289) | QJSValue fromUnicode(const QString &text, const QJSValue &codecName, Scr...
function encodingFromNameOrThrow (line 298) | std::optional<QStringConverter::Encoding> encodingFromNameOrThrow(const ...
function QJSValue (line 306) | QJSValue toUnicode(const QByteArray &bytes, const QJSValue &codecName, S...
function QJSValue (line 315) | QJSValue toUnicode(const QByteArray &bytes, Scriptable *scriptable)
function QJSValue (line 324) | QJSValue fromUnicode(const QString &text, const QJSValue &codecName, Scr...
function isGuiApplication (line 337) | bool isGuiApplication()
function isOverridden (line 342) | bool isOverridden(const QJSValue &globalObject, const QString &property)
function QJSValue (line 439) | QJSValue Scriptable::argumentsArray() const
function QJSValue (line 449) | QJSValue Scriptable::argument(int index) const
function QJSValue (line 454) | QJSValue Scriptable::newByteArray(const QByteArray &bytes) const
function QJSValue (line 459) | QJSValue Scriptable::newByteArray(ScriptableByteArray *ba) const
function QByteArray (line 464) | QByteArray Scriptable::fromString(const QString &value) const
function QVariant (line 473) | QVariant Scriptable::toVariant(const QJSValue &value)
function QVariantMap (line 485) | QVariantMap Scriptable::toDataMap(const QJSValue &value) const
function QJSValue (line 501) | QJSValue Scriptable::fromDataMap(const QVariantMap &dataMap) const
function QByteArray (line 506) | QByteArray Scriptable::makeByteArray(const QJSValue &value) const
function QJSValue (line 534) | QJSValue Scriptable::getInputSeparator() const
function QString (line 544) | QString Scriptable::getCurrentPath() const
function QString (line 554) | QString Scriptable::getAbsoluteFilePath(const QString &fileName) const
function QString (line 560) | QString Scriptable::arg(int i, const QString &defaultValue)
function QJSValue (line 565) | QJSValue Scriptable::throwError(const QString &errorMessage)
function QJSValue (line 576) | QJSValue Scriptable::throwExportError(const QString &filePath)
function QJSValue (line 581) | QJSValue Scriptable::throwImportError(const QString &filePath)
function QJSValue (line 614) | QJSValue Scriptable::getPlugins()
function QJSValue (line 628) | QJSValue Scriptable::call(const QString &label, QJSValue *fn, const QVar...
function QJSValue (line 638) | QJSValue Scriptable::call(const QString &label, QJSValue *fn, const QJSV...
function QJSValue (line 648) | QJSValue Scriptable::ByteArray() const
function QJSValue (line 667) | QJSValue Scriptable::File() const
function QJSValue (line 674) | QJSValue Scriptable::TemporaryFile() const
function QJSValue (line 681) | QJSValue Scriptable::Dir() const
function QJSValue (line 688) | QJSValue Scriptable::ItemSelection() const
function QJSValue (line 698) | QJSValue Scriptable::Settings() const
function QJSValue (line 707) | QJSValue Scriptable::NetworkReply() const
function QJSValue (line 712) | QJSValue Scriptable::NetworkRequest() const
function QJSValue (line 717) | QJSValue Scriptable::version()
function QJSValue (line 744) | QJSValue Scriptable::help()
function QJSValue (line 825) | QJSValue Scriptable::toggle()
function QJSValue (line 831) | QJSValue Scriptable::menu()
function QJSValue (line 885) | QJSValue Scriptable::monitoring()
function QJSValue (line 891) | QJSValue Scriptable::visible()
function QJSValue (line 897) | QJSValue Scriptable::focused()
function QJSValue (line 903) | QJSValue Scriptable::focusPrevious()
function QJSValue (line 913) | QJSValue Scriptable::preview()
function QJSValue (line 919) | QJSValue Scriptable::filter()
function QJSValue (line 935) | QJSValue Scriptable::clipboard()
function QJSValue (line 942) | QJSValue Scriptable::selection()
function QJSValue (line 953) | QJSValue Scriptable::hasClipboardFormat()
function QJSValue (line 960) | QJSValue Scriptable::hasSelectionFormat()
function QJSValue (line 971) | QJSValue Scriptable::isClipboard()
function QJSValue (line 976) | QJSValue Scriptable::copy()
function QJSValue (line 982) | QJSValue Scriptable::copySelection()
function QJSValue (line 992) | QJSValue Scriptable::paste()
function QJSValue (line 1008) | QJSValue Scriptable::tab()
function QJSValue (line 1020) | QJSValue Scriptable::removeTab()
function QJSValue (line 1030) | QJSValue Scriptable::renameTab()
function QJSValue (line 1040) | QJSValue Scriptable::tabIcon()
function QJSValue (line 1054) | QJSValue Scriptable::unload()
function QJSValue (line 1067) | QJSValue Scriptable::length()
function QJSValue (line 1073) | QJSValue Scriptable::select()
function QJSValue (line 1107) | QJSValue Scriptable::remove()
function QJSValue (line 1120) | QJSValue Scriptable::move()
function QJSValue (line 1166) | QJSValue Scriptable::editItem()
function QJSValue (line 1189) | QJSValue Scriptable::read()
function QJSValue (line 1218) | QJSValue Scriptable::write()
function QJSValue (line 1224) | QJSValue Scriptable::change()
function QJSValue (line 1295) | QJSValue Scriptable::playSound()
function QJSValue (line 1327) | QJSValue Scriptable::notification()
function QJSValue (line 1397) | QJSValue Scriptable::exportTab()
function QJSValue (line 1411) | QJSValue Scriptable::importTab()
function QJSValue (line 1425) | QJSValue Scriptable::importData()
function QJSValue (line 1439) | QJSValue Scriptable::exportData()
function QJSValue (line 1453) | QJSValue Scriptable::config()
function QJSValue (line 1499) | QJSValue Scriptable::toggleConfig()
function QJSValue (line 1639) | QJSValue Scriptable::eval()
function QJSValue (line 1649) | QJSValue Scriptable::source()
function QJSValue (line 1671) | QJSValue Scriptable::currentPath()
function QJSValue (line 1681) | QJSValue Scriptable::str()
function QJSValue (line 1687) | QJSValue Scriptable::input()
function QJSValue (line 1697) | QJSValue Scriptable::toUnicode()
function QJSValue (line 1712) | QJSValue Scriptable::fromUnicode()
function QJSValue (line 1724) | QJSValue Scriptable::dataFormats()
function QJSValue (line 1730) | QJSValue Scriptable::data()
function QJSValue (line 1736) | QJSValue Scriptable::setData()
function QJSValue (line 1750) | QJSValue Scriptable::removeData()
function QJSValue (line 1782) | QJSValue Scriptable::testSelected()
function QJSValue (line 1794) | QJSValue Scriptable::logs()
function QJSValue (line 1807) | QJSValue Scriptable::selectItems()
function QJSValue (line 1814) | QJSValue Scriptable::selectedTab()
function QJSValue (line 1820) | QJSValue Scriptable::selectedItems()
function QJSValue (line 1826) | QJSValue Scriptable::currentItem()
function QJSValue (line 1832) | QJSValue Scriptable::selectedItemData()
function QJSValue (line 1841) | QJSValue Scriptable::setSelectedItemData()
function QJSValue (line 1851) | QJSValue Scriptable::selectedItemsData()
function QJSValue (line 1863) | QJSValue Scriptable::escapeHtml()
function QJSValue (line 1869) | QJSValue Scriptable::unpack()
function QJSValue (line 1881) | QJSValue Scriptable::pack()
function QJSValue (line 1888) | QJSValue Scriptable::getItem()
function QJSValue (line 1904) | QJSValue Scriptable::toBase64()
function QJSValue (line 1910) | QJSValue Scriptable::fromBase64()
function QJSValue (line 1916) | QJSValue Scriptable::md5sum()
function QJSValue (line 1922) | QJSValue Scriptable::sha1sum()
function QJSValue (line 1928) | QJSValue Scriptable::sha256sum()
function QJSValue (line 1934) | QJSValue Scriptable::sha512sum()
function QJSValue (line 1940) | QJSValue Scriptable::open()
function QJSValue (line 1946) | QJSValue Scriptable::execute()
function QJSValue (line 2014) | QJSValue Scriptable::currentWindowTitle()
function QJSValue (line 2024) | QJSValue Scriptable::currentClipboardOwner()
function QJSValue (line 2029) | QJSValue Scriptable::dialog()
function QJSValue (line 2071) | QJSValue Scriptable::menuItems()
function QJSValue (line 2092) | QJSValue Scriptable::settings()
function QJSValue (line 2118) | QJSValue Scriptable::dateString()
function QJSValue (line 2125) | QJSValue Scriptable::commands()
function QJSValue (line 2142) | QJSValue Scriptable::importCommands()
function QJSValue (line 2149) | QJSValue Scriptable::exportCommands()
function QJSValue (line 2161) | QJSValue Scriptable::networkGet()
function QJSValue (line 2168) | QJSValue Scriptable::networkPost()
function QJSValue (line 2175) | QJSValue Scriptable::networkGetAsync()
function QJSValue (line 2183) | QJSValue Scriptable::networkPostAsync()
function QJSValue (line 2191) | QJSValue Scriptable::env()
function QJSValue (line 2199) | QJSValue Scriptable::setEnv()
function QJSValue (line 2207) | QJSValue Scriptable::sleep()
function QJSValue (line 2220) | QJSValue Scriptable::afterMilliseconds()
function QVariant (line 2265) | QVariant Scriptable::call(const QString &method, const QVariantList &arg...
function QVariantList (line 2279) | QVariantList Scriptable::currentArguments()
function QJSValue (line 2294) | QJSValue Scriptable::screenshot()
function QJSValue (line 2299) | QJSValue Scriptable::screenshotSelect()
function QJSValue (line 2304) | QJSValue Scriptable::screenNames()
function QJSValue (line 2309) | QJSValue Scriptable::queryKeyboardModifiers()
function QJSValue (line 2324) | QJSValue Scriptable::pointerPosition()
function QJSValue (line 2330) | QJSValue Scriptable::setPointerPosition()
function QJSValue (line 2350) | QJSValue Scriptable::iconColor()
function QJSValue (line 2364) | QJSValue Scriptable::iconTag()
function QJSValue (line 2377) | QJSValue Scriptable::iconTagColor()
function QJSValue (line 2391) | QJSValue Scriptable::loadTheme()
function QJSValue (line 2479) | QJSValue Scriptable::hasData()
function QJSValue (line 2528) | QJSValue Scriptable::runAutomaticCommands()
function QJSValue (line 2691) | QJSValue Scriptable::isClipboardMonitorRunning()
function QJSValue (line 2696) | QJSValue Scriptable::clipboardFormatsToSave()
function QJSValue (line 2715) | QJSValue Scriptable::styles()
function QJSValue (line 2720) | QJSValue Scriptable::stats()
function QByteArray (line 2750) | QByteArray Scriptable::serializeScriptValue(const QJSValue &value)
function QJSValue (line 2755) | QJSValue Scriptable::callPlugin()
function QJSValue (line 3047) | QJSValue Scriptable::copy(ClipboardMode mode)
function QJSValue (line 3101) | QJSValue Scriptable::changeItem(bool create)
function QJSValue (line 3159) | QJSValue Scriptable::screenshot(bool select)
function QJSValue (line 3180) | QJSValue Scriptable::eval(const QString &script, const QString &label)
function QJSValue (line 3201) | QJSValue Scriptable::eval(const QString &script)
function QStringList (line 3441) | QStringList Scriptable::arguments()
function QVariantList (line 3452) | QVariantList Scriptable::argumentsAsVariants()
function QByteArray (line 3507) | QByteArray Scriptable::getClipboardData(const QString &mime, ClipboardMo...
function QJSValue (line 3610) | QJSValue Scriptable::readInput()
function PlatformClipboard (line 3647) | PlatformClipboard *Scriptable::clipboardInstance()
function QJSValue (line 3671) | QJSValue Scriptable::newQObject(QObject *obj, const QJSValue &prototype)...
function QJSValue (line 3727) | QJSValue ScriptablePlugins::load(const QString &name)
FILE: src/scriptable/scriptable.h
type class (line 28) | enum class
function Abort (line 66) | enum class Abort {
FILE: src/scriptable/scriptablebytearray.cpp
function QJSValue (line 48) | QJSValue ScriptableByteArray::left(int len)
function QJSValue (line 53) | QJSValue ScriptableByteArray::mid(int pos, int len)
function QJSValue (line 58) | QJSValue ScriptableByteArray::remove(int pos, int len)
function QJSValue (line 63) | QJSValue ScriptableByteArray::right(int len)
function QJSValue (line 68) | QJSValue ScriptableByteArray::simplified()
function QJSValue (line 73) | QJSValue ScriptableByteArray::toBase64()
function QJSValue (line 78) | QJSValue ScriptableByteArray::toLower()
function QJSValue (line 83) | QJSValue ScriptableByteArray::toUpper()
function QJSValue (line 88) | QJSValue ScriptableByteArray::trimmed()
function QJSValue (line 98) | QJSValue ScriptableByteArray::valueOf()
function QString (line 108) | QString ScriptableByteArray::toString()
function QString (line 113) | QString ScriptableByteArray::toLatin1String()
function QJSValue (line 118) | QJSValue ScriptableByteArray::length()
function QJSEngine (line 128) | QJSEngine *ScriptableByteArray::engine() const
function QJSValue (line 133) | QJSValue ScriptableByteArray::newByteArray(const QByteArray &bytes) const
function QByteArray (line 138) | QByteArray &ScriptableByteArray::self()
function QByteArray (line 150) | const QByteArray *getByteArray(const QJSValue &value)
function QByteArray (line 157) | QByteArray toByteArray(const QJSValue &value)
function QString (line 170) | QString toString(const QJSValue &value)
FILE: src/scriptable/scriptablebytearray.h
function Q_OBJECT (line 13) | Q_OBJECT
function QByteArray (line 26) | const QByteArray *data() { return &self(); }
FILE: src/scriptable/scriptabledir.cpp
function QJSValue (line 17) | QJSValue ScriptableDir::absoluteFilePath(const QJSValue &fileName)
function QJSValue (line 22) | QJSValue ScriptableDir::absolutePath()
function QJSValue (line 27) | QJSValue ScriptableDir::canonicalPath()
function uint (line 42) | uint ScriptableDir::count()
function QJSValue (line 47) | QJSValue ScriptableDir::dirName()
function QStringList (line 52) | QStringList ScriptableDir::entryList(const QStringList &nameFilters)
function QJSValue (line 67) | QJSValue ScriptableDir::filePath(const QJSValue &fileName)
function QStringList (line 107) | QStringList ScriptableDir::nameFilters()
function QJSValue (line 112) | QJSValue ScriptableDir::path()
function QJSValue (line 122) | QJSValue ScriptableDir::relativeFilePath(const QJSValue &fileName)
function QJSValue (line 162) | QJSValue ScriptableDir::cleanPath(const QJSValue &path)
function QJSValue (line 167) | QJSValue ScriptableDir::currentPath()
function QJSValue (line 172) | QJSValue ScriptableDir::fromNativeSeparators(const QJSValue &pathName)
function QJSValue (line 177) | QJSValue ScriptableDir::home()
function QJSValue (line 182) | QJSValue ScriptableDir::homePath()
function QJSValue (line 207) | QJSValue ScriptableDir::root()
function QJSValue (line 212) | QJSValue ScriptableDir::rootPath()
function QStringList (line 217) | QStringList ScriptableDir::searchPaths(const QJSValue &prefix)
function QJSValue (line 222) | QJSValue ScriptableDir::separator()
function QJSValue (line 237) | QJSValue ScriptableDir::temp()
function QJSValue (line 242) | QJSValue ScriptableDir::tempPath()
function QJSValue (line 247) | QJSValue ScriptableDir::toNativeSeparators(const QJSValue &pathName)
function QDir (line 252) | QDir *ScriptableDir::self()
function QJSEngine (line 259) | QJSEngine *ScriptableDir::engine() const
function QJSValue (line 264) | QJSValue ScriptableDir::newDir(const QDir &dir) const
FILE: src/scriptable/scriptablefile.cpp
function QJSValue (line 45) | QJSValue ScriptableFile::read(qint64 maxSize)
function QJSValue (line 50) | QJSValue ScriptableFile::readLine(qint64 maxSize)
function QJSValue (line 55) | QJSValue ScriptableFile::readAll()
function qint64 (line 60) | qint64 ScriptableFile::write(const QJSValue &value)
function qint64 (line 70) | qint64 ScriptableFile::bytesAvailable()
function qint64 (line 75) | qint64 ScriptableFile::bytesToWrite()
function QJSValue (line 85) | QJSValue ScriptableFile::errorString()
function QJSValue (line 105) | QJSValue ScriptableFile::peek(qint64 maxSize)
function qint64 (line 110) | qint64 ScriptableFile::pos()
function qint64 (line 130) | qint64 ScriptableFile::size()
function QJSValue (line 135) | QJSValue ScriptableFile::fileName()
function QFile (line 155) | QFile *ScriptableFile::self()
function QJSEngine (line 174) | QJSEngine *ScriptableFile::engine() const
function QJSValue (line 179) | QJSValue ScriptableFile::newByteArray(const QByteArray &bytes)
FILE: src/scriptable/scriptablefile.h
function class (line 12) | class ScriptableFile : public QObject
FILE: src/scriptable/scriptableitemselection.cpp
function QJSValue (line 22) | QJSValue ScriptableItemSelection::length()
function QJSValue (line 27) | QJSValue ScriptableItemSelection::tab()
function QJSValue (line 32) | QJSValue ScriptableItemSelection::valueOf()
function QJSValue (line 37) | QJSValue ScriptableItemSelection::str()
function QString (line 42) | QString ScriptableItemSelection::toString()
function QJSValue (line 69) | QJSValue ScriptableItemSelection::selectAll()
function QJSValue (line 75) | QJSValue ScriptableItemSelection::select(const QJSValue &re, const QStri...
function QJSValue (line 84) | QJSValue ScriptableItemSelection::selectRemovable()
function QJSValue (line 90) | QJSValue ScriptableItemSelection::invert()
function QJSValue (line 96) | QJSValue ScriptableItemSelection::deselectIndexes(const QJSValue &indexes)
function QJSValue (line 103) | QJSValue ScriptableItemSelection::deselectSelection(const QJSValue &sele...
function QJSValue (line 110) | QJSValue ScriptableItemSelection::current()
function QJSValue (line 116) | QJSValue ScriptableItemSelection::removeAll()
function QJSValue (line 122) | QJSValue ScriptableItemSelection::copy()
function QJSValue (line 133) | QJSValue ScriptableItemSelection::rows()
function QJSValue (line 142) | QJSValue ScriptableItemSelection::itemAtIndex(int index)
function QJSValue (line 148) | QJSValue ScriptableItemSelection::setItemAtIndex(int index, const QJSVal...
function QJSValue (line 155) | QJSValue ScriptableItemSelection::items()
function QJSValue (line 161) | QJSValue ScriptableItemSelection::setItems(const QJSValue &items)
function QJSValue (line 168) | QJSValue ScriptableItemSelection::itemsFormat(const QJSValue &format)
function QJSValue (line 174) | QJSValue ScriptableItemSelection::setItemsFormat(const QJSValue &format,...
function QJSValue (line 181) | QJSValue ScriptableItemSelection::move(int row)
function QJSValue (line 187) | QJSValue ScriptableItemSelection::sort(QJSValue compareFn)
FILE: src/scriptable/scriptablenetworkreply.cpp
function QJSValue (line 17) | QJSValue ScriptableNetworkReply::data()
function QJSValue (line 39) | QJSValue ScriptableNetworkReply::error()
function QJSValue (line 52) | QJSValue ScriptableNetworkReply::status()
function QJSValue (line 65) | QJSValue ScriptableNetworkReply::redirect()
function QJSValue (line 78) | QJSValue ScriptableNetworkReply::headers()
function QJSValue (line 98) | QJSValue ScriptableNetworkReply::finished()
function QJSValue (line 103) | QJSValue ScriptableNetworkReply::url()
function QJSEngine (line 125) | QJSEngine *ScriptableNetworkReply::engine() const
function QJSValue (line 130) | QJSValue ScriptableNetworkReply::newByteArray(const QByteArray &bytes) c...
FILE: src/scriptable/scriptablenetworkrequest.cpp
function ScriptableNetworkReply (line 17) | ScriptableNetworkReply *ScriptableNetworkRequest::requestRaw(const QByte...
function QJSValue (line 50) | QJSValue ScriptableNetworkRequest::headers()
function QJSValue (line 61) | QJSValue ScriptableNetworkRequest::request(const QJSValue &method, const...
function QJSEngine (line 70) | QJSEngine *ScriptableNetworkRequest::engine() const
function QJSValue (line 75) | QJSValue ScriptableNetworkRequest::newByteArray(const QByteArray &bytes)...
FILE: src/scriptable/scriptablenetworkrequest.h
function setHeaders (line 19) | void setHeaders(const QJSValue &headers) { m_headers = headers; }
function setMaxRedirects (line 22) | void setMaxRedirects(const QJSValue &redirect) { m_maxRedirects = redire...
FILE: src/scriptable/scriptableproxy.cpp
function QString (line 83) | QString formatDataSize(qint64 bytes)
function registerMetaTypes (line 94) | void registerMetaTypes() {
function selectionRemoveIf (line 127) | void selectionRemoveIf(QList<QPersistentModelIndex> *indexes, Predicate ...
function selectionRemoveInvalid (line 134) | void selectionRemoveInvalid(QList<QPersistentModelIndex> *indexes)
function QDataStream (line 201) | QDataStream &operator<<(QDataStream &out, const NotificationButtonList &...
function QDataStream (line 210) | QDataStream &operator>>(QDataStream &in, NotificationButtonList &list)
function QDataStream (line 224) | QDataStream &operator<<(QDataStream &out, const NamedValueList &list)
function QDataStream (line 233) | QDataStream &operator>>(QDataStream &in, NamedValueList &list)
function QDataStream (line 247) | QDataStream &operator<<(QDataStream &out, const VariantMapList &items)
function QDataStream (line 254) | QDataStream &operator>>(QDataStream &in, VariantMapList &items)
function QDataStream (line 261) | QDataStream &operator<<(QDataStream &out, ClipboardMode mode)
function QDataStream (line 269) | QDataStream &operator>>(QDataStream &in, ClipboardMode &mode)
function QDataStream (line 278) | QDataStream &operator<<(QDataStream &out, KeyboardModifierList value)
function QDataStream (line 283) | QDataStream &operator>>(QDataStream &in, KeyboardModifierList &value)
function QDataStream (line 292) | QDataStream &operator<<(QDataStream &out, const MessageData &value)
function QDataStream (line 305) | QDataStream &operator>>(QDataStream &in, MessageData &value)
type InputDialog (line 323) | struct InputDialog {
class FunctionCallSerializer (line 329) | class FunctionCallSerializer final {
method FunctionCallSerializer (line 331) | explicit FunctionCallSerializer(QByteArray functionName)
method FunctionCallSerializer (line 337) | FunctionCallSerializer &withSlotArguments(Ts... arguments)
method QByteArray (line 349) | QByteArray serialize(int functionCallId, const QVector<QVariant> args)...
method argumentList (line 364) | static QVector<QVariant> argumentList(Ts... arguments)
method setSlotArgumentTypes (line 379) | void setSlotArgumentTypes(const QByteArray &args)
class ScreenshotRectWidget (line 392) | class ScreenshotRectWidget final : public QLabel {
method ScreenshotRectWidget (line 394) | explicit ScreenshotRectWidget(const QPixmap &pixmap)
method paintEvent (line 401) | void paintEvent(QPaintEvent *ev) override
method keyPressEvent (line 416) | void keyPressEvent(QKeyEvent *ev) override
method mousePressEvent (line 422) | void mousePressEvent(QMouseEvent *ev) override
method mouseReleaseEvent (line 433) | void mouseReleaseEvent(QMouseEvent *) override
method mouseMoveEvent (line 438) | void mouseMoveEvent(QMouseEvent *ev) override
function QIcon (line 458) | QIcon loadIcon(const QString &idPathOrName)
function QWidget (line 469) | QWidget *label(Qt::Orientation orientation, const QString &name, QWidget...
function QWidget (line 493) | QWidget *label(const QString &name, QWidget *w)
function Widget (line 501) | Widget *createAndSetWidget(const char *propertyName, const QVariant &val...
function QWidget (line 510) | QWidget *createDateTimeEdit(
function installShortcutToCloseDialog (line 518) | void installShortcutToCloseDialog(QDialog *dialog, QWidget *shortcutPare...
function QWidget (line 525) | QWidget *createListWidget(const QString &name, const QStringList &items,...
function QWidget (line 562) | QWidget *createSpinBox(const QString &name, const QVariant &value, QWidg...
function QLineEdit (line 569) | QLineEdit *createLineEdit(const QVariant &value, QWidget *parent)
function QWidget (line 576) | QWidget *createFileNameEdit(const QString &name, const QString &path, QW...
function QWidget (line 603) | QWidget *createTextEdit(const QString &name, const QVariant &value, QWid...
function QWidget (line 610) | QWidget *createWidget(const QString &name, const QVariant &value, InputD...
function setGeometryWithoutSave (line 642) | void setGeometryWithoutSave(QWidget *window, QRect geometry)
function QString (line 660) | QString tabNotFoundError()
function QString (line 665) | QString tabNameEmptyError()
function QByteArray (line 703) | QByteArray ScriptableProxy::callFunctionHelper(const QByteArray &seriali...
function QVariantMap (line 871) | QVariantMap ScriptableProxy::getActionData(int id)
function QString (line 1006) | QString ScriptableProxy::renameTab(const QString &arg1, const QString &a...
function QString (line 1025) | QString ScriptableProxy::removeTab(const QString &arg1)
function QString (line 1040) | QString ScriptableProxy::tabIcon(const QString &tabName)
function QStringList (line 1052) | QStringList ScriptableProxy::unloadTabs(const QStringList &tabs)
function QString (line 1115) | QString ScriptableProxy::playSound(const QString &filePath, float volume)
function QVariantMap (line 1121) | QVariantMap ScriptableProxy::nextItem(const QString &tabName, int where)
function QString (line 1151) | QString ScriptableProxy::browserRemoveRows(const QString &tab
Condensed preview — 594 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,890K chars).
[
{
"path": ".claude/settings.json",
"chars": 595,
"preview": "{\n \"permissions\": {\n \"allow\": [\n \"Bash(cmake -B build :*)\",\n \"Bash(build/copyq-tests :*)\",\n \"Bash(bui"
},
{
"path": ".github/CODEOWNERS",
"chars": 8,
"preview": "* @hluk\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 1467,
"preview": "---\nname: Bug report\nabout: Create a report to help us fix problems.\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!--\nBefo"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 719,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project.\ntitle: ''\nlabels: feature\nassignees: ''\n\n---\n\n<!--\nBe"
},
{
"path": ".github/actions/download-miniaudio/action.yml",
"chars": 1253,
"preview": "name: Download miniaudio\ndescription: Downloads and verifies miniaudio.h from a pinned commit (cached)\n\nruns:\n using: c"
},
{
"path": ".github/dependabot.yml",
"chars": 119,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"github-actions\"\n directory: \"/\"\n schedule:\n interval: \"monthly\"\n"
},
{
"path": ".github/workflows/build-linux.yml",
"chars": 6602,
"preview": "---\nname: Linux\n\non:\n push:\n branches: [master]\n pull_request:\n branches: [master]\n\nconcurrency:\n group: ${{ gi"
},
{
"path": ".github/workflows/build-macos.yml",
"chars": 4972,
"preview": "---\nname: macOS\n\non:\n push:\n branches: [master]\n tags: ['v*']\n pull_request:\n branches: [master]\n\n\nconcurrenc"
},
{
"path": ".github/workflows/build-windows.yml",
"chars": 6101,
"preview": "---\nname: Windows\n\non:\n push:\n branches: [master]\n tags: ['v*']\n pull_request:\n branches: [master]\n\n\nconcurre"
},
{
"path": ".github/workflows/codespell.yml",
"chars": 490,
"preview": "# Codespell configuration is within .codespellrc\n---\nname: Codespell\n\non:\n push:\n branches: [master]\n pull_request:"
},
{
"path": ".gitignore",
"chars": 851,
"preview": "# Generated CMake files\nCMakeFiles/\nCMakeCache.txt\ncmake_install.cmake\n\n# Generated Visual Studio files\n/plugins/Debug/\n"
},
{
"path": ".gitlab-ci.yml",
"chars": 944,
"preview": "---\nimage: ubuntu:24.04\n\nvariables:\n BUILD_DIR: \"build\"\n INSTALL_PREFIX: \"copyq\"\n SCREENSHOT_DIR: \"screenshots\"\n TES"
},
{
"path": ".pre-commit-config.yaml",
"chars": 279,
"preview": "---\nrepos:\n - repo: https://github.com/pre-commit/pre-commit-hooks\n rev: v6.0.0\n hooks:\n - id: check-executa"
},
{
"path": ".readthedocs.yaml",
"chars": 302,
"preview": "# Read the Docs configuration file for Sphinx projects\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html f"
},
{
"path": ".weblate",
"chars": 75,
"preview": "[weblate]\nurl = https://hosted.weblate.org/api/\ntranslation = copyq/master\n"
},
{
"path": "AGENTS.md",
"chars": 3026,
"preview": "## Commands\n\nAlways use the following environment variables for all `build/copyq` and\n`build/copyq-tests` commands:\n\n "
},
{
"path": "AUTHORS",
"chars": 792,
"preview": "Adam Batkin <adam@batkin.net>\nGiacomo Margarito <giacomomargarito@gmail.com>\nGreg Carp <grcarpbe@gmail.com>\nIlya Plenne "
},
{
"path": "CHANGES.md",
"chars": 75173,
"preview": "# 13.0.0\n\n## Added\n\n- Windows: Preferences now include auto-start option, previously available only\n in the installer.\n"
},
{
"path": "CMakeLists.txt",
"chars": 9106,
"preview": "cmake_minimum_required(VERSION 3.16)\nproject(copyq)\n\nif (APPLE)\n set(COPYQ_EXECUTABLE_NAME \"CopyQ\")\nelse()\n set(CO"
},
{
"path": "CMakePresets.json",
"chars": 4454,
"preview": "{\n \"version\": 6,\n \"configurePresets\": [\n {\n \"name\": \"Debug\",\n \"generator\": \"Ninja\",\n "
},
{
"path": "Doxyfile",
"chars": 72304,
"preview": "# Doxyfile 1.7.4\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "HACKING",
"chars": 62,
"preview": "https://copyq.readthedocs.io/en/latest/build-source-code.html\n"
},
{
"path": "INSTALL",
"chars": 62,
"preview": "https://copyq.readthedocs.io/en/latest/build-source-code.html\n"
},
{
"path": "LICENSE",
"chars": 35147,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "README.md",
"chars": 8510,
"preview": "# CopyQ\n\n[](https://copyq.readthedo"
},
{
"path": "RELEASE.md",
"chars": 1911,
"preview": "This is step-by-step description on how to release new version of CopyQ.\n\n# Update Version and Changelog\n\nUpdate `CHANGE"
},
{
"path": "docs/Makefile",
"chars": 606,
"preview": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line.\nSPHINXOPTS =\nSPHI"
},
{
"path": "docs/autobuild.sh",
"chars": 308,
"preview": "#!/bin/bash\n# Automatically re-build the documentation whenever it changes.\n#\n# Requires sphinx-autobuild script:\n#\n# "
},
{
"path": "docs/backup.rst",
"chars": 2442,
"preview": ".. _backup:\n\nBackup\n======\n\nThis page describes how to back up tabs, configuration and commands in\nCopyQ.\n\nBack Up All D"
},
{
"path": "docs/basic-usage.rst",
"chars": 2110,
"preview": "Basic Usage\n===========\n\nThis page describes the basic functionality of CopyQ clipboard manager.\n\nFirst Start\n----------"
},
{
"path": "docs/build-source-code.rst",
"chars": 6067,
"preview": "Build from Source Code\n======================\n\nThis page describes how to build the application from source code.\n\nGet t"
},
{
"path": "docs/command-examples.rst",
"chars": 14781,
"preview": ".. _command-examples:\n\nCommand Examples\n================\n\nHere are some useful commands for creating custom menu items, "
},
{
"path": "docs/command-line.rst",
"chars": 1190,
"preview": "Command Line\n============\n\nTabs, items, clipboard and configuration can be changed through command\nline interface. Run c"
},
{
"path": "docs/commands-display.rst",
"chars": 1182,
"preview": ".. _commands-display:\n\nDisplay Commands\n================\n\nDisplay command is type of command that modifies item data bef"
},
{
"path": "docs/commands-script.rst",
"chars": 3244,
"preview": ".. _commands-script:\n\nScript Commands\n===============\n\nScript command is type of command which allows overriding existin"
},
{
"path": "docs/conf.py",
"chars": 4814,
"preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# CopyQ documentation build configuration file, created by\n# sphinx-qui"
},
{
"path": "docs/customize-and-build-the-windows-installer.rst",
"chars": 1240,
"preview": "Customize and Build the Windows Installer\n=========================================\n\nTranslations\n------------\n\nMost of "
},
{
"path": "docs/faq.rst",
"chars": 16867,
"preview": "FAQ - Frequently Asked Questions\n================================\n\n.. _faq-show-app:\n\nHow to open CopyQ window or tray m"
},
{
"path": "docs/fixing-bugs.rst",
"chars": 1895,
"preview": "Fixing Bugs and Adding Features\n===============================\n\nThis page describes how to build, fix and improve the s"
},
{
"path": "docs/glossary.rst",
"chars": 879,
"preview": ".. _glossary:\n\nGlossary\n========\n\nHere is a list of frequent terms from CopyQ.\n\n- Action - a command run from Action dia"
},
{
"path": "docs/images.rst",
"chars": 1559,
"preview": "Images\n======\n\nThis page describes how to display and work with images in CopyQ.\n\nDisplay Image Items\n------------------"
},
{
"path": "docs/index.rst",
"chars": 1175,
"preview": "Welcome to CopyQ's documentation!\n=================================\n\nCopyQ is clipboard manager -- a desktop application"
},
{
"path": "docs/installation.rst",
"chars": 1876,
"preview": "Installation\n============\n\nPackages and installation files are available at `Releases page <https://github.com/hluk/Copy"
},
{
"path": "docs/keyboard.rst",
"chars": 1612,
"preview": "Keyboard\n========\n\nThis page lists useful default shortcuts and key mappings for CopyQ and\ndescribes how to change them."
},
{
"path": "docs/known-issues.rst",
"chars": 4974,
"preview": "Known Issues\n============\n\nThis document lists known commonly occurring issues and possible solutions.\n\n.. _known-issue-"
},
{
"path": "docs/make.bat",
"chars": 767,
"preview": "@ECHO OFF\n\npushd %~dp0\n\nREM Command file for Sphinx documentation\n\nif \"%SPHINXBUILD%\" == \"\" (\n\tset SPHINXBUILD=python -m"
},
{
"path": "docs/password-protection.rst",
"chars": 2689,
"preview": ".. _encrypt:\n\nPassword Protection\n===================\n\nThis page describes how to encrypt and protect selected tabs and "
},
{
"path": "docs/pin-items.rst",
"chars": 1771,
"preview": "Pin Items\n=========\n\nThis page describes how to pin selected items in a tab so they cannot be\naccidentally removed or mo"
},
{
"path": "docs/requirements.txt",
"chars": 38,
"preview": "sphinx==7.2.6\nsphinx-rtd-theme==1.3.0\n"
},
{
"path": "docs/scripting-api.rst",
"chars": 68157,
"preview": ".. _scripting-api:\n\nScripting API\n=============\n\nCopyQ provides scripting capabilities to automatically handle clipboard"
},
{
"path": "docs/scripting.rst",
"chars": 2282,
"preview": "Scripting\n=========\n\nIf you need to process items in some non-trivial way you can take\nadvantage of the scripting interf"
},
{
"path": "docs/security.rst",
"chars": 1537,
"preview": "Security\n========\n\nThis page describes how CopyQ handles the clipboard data and how to make the\nclipboard safer.\n\nData S"
},
{
"path": "docs/sessions.rst",
"chars": 2920,
"preview": ".. _sessions:\n\nSessions\n========\n\nYou can run multiple instances of the application given that they have\ndifferent sessi"
},
{
"path": "docs/source-code-overview.rst",
"chars": 7124,
"preview": "Source Code Overview\n====================\n\nThis page describes application processes and source code.\n\nApplications, Fra"
},
{
"path": "docs/synchronize.rst",
"chars": 1819,
"preview": "Synchronize with Documents\n==========================\n\nThis page describes how to keep items in a tab synchronized with "
},
{
"path": "docs/tabs-and-items.rst",
"chars": 1781,
"preview": "Tabs and Items\n==============\n\n.. _tabs:\n\nTabs\n----\n\nTabs are means to organize texts, images and other data.\n\nInitially"
},
{
"path": "docs/tags.rst",
"chars": 1725,
"preview": "Tags\n====\n\nTags are small icons or short texts in upper right corner of an item\nused to mark important or special items."
},
{
"path": "docs/text-encoding.rst",
"chars": 1131,
"preview": "Text Encoding\n=============\n\nThis page serves as concept for adding additional CopyQ command line\nswitch to print and re"
},
{
"path": "docs/theme.rst",
"chars": 3735,
"preview": ".. _theme:\n\nTheme\n=====\n\nApplication style can be configured in the Appearance configuration tab and\nusing Cascading Sty"
},
{
"path": "docs/translations.rst",
"chars": 2254,
"preview": "Translations\n============\n\nTranslations can be done either via\n`Weblate <https://hosted.weblate.org/projects/copyq/>`__ "
},
{
"path": "docs/writing-commands-and-adding-functionality.rst",
"chars": 8242,
"preview": ".. _writing-commands:\n\nWriting Commands and Adding Functionality\n=========================================\n\nCopyQ allows"
},
{
"path": "docs/writing-raw-data.rst",
"chars": 333,
"preview": "Writing Raw Data\n================\n\nApplication allows you to save any kind of data using *drag and drop* or\nscripting in"
},
{
"path": "gpl.txt",
"chars": 35147,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "plugins/CMakeLists.txt",
"chars": 3197,
"preview": "macro (copyq_add_plugin copyq_pkg)\n file(GLOB copyq_plugin_SOURCES\n ${copyq_plugin_${copyq_pkg}_external_SOURC"
},
{
"path": "plugins/itemencrypted/CMakeLists.txt",
"chars": 376,
"preview": "set(copyq_plugin_itemencrypted_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-config>\n $<TARGET_OBJECTS:copyq-plugin-iconf"
},
{
"path": "plugins/itemencrypted/itemencrypted.cpp",
"chars": 30899,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemencrypted.h\"\n#include \"ui_itemencryptedsettings.h\"\n\n#include"
},
{
"path": "plugins/itemencrypted/itemencrypted.h",
"chars": 3405,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"item/itemwidget.h\"\n#include \"gui/icons.h\"\n\n#inclu"
},
{
"path": "plugins/itemencrypted/itemencryptedsettings.ui",
"chars": 3799,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemEncryptedSettings</class>\n <widget class=\"QWidget\""
},
{
"path": "plugins/itemfakevim/CMakeLists.txt",
"chars": 458,
"preview": "file(GLOB copyq_plugin_itemfakevim_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-wrapper>\n )\nfile(GLOB copyq_plugin_itemf"
},
{
"path": "plugins/itemfakevim/fakevim/LGPL_EXCEPTION.TXT",
"chars": 1186,
"preview": "Digia Qt LGPL Exception version 1.1\n\nAs an additional permission to the GNU Lesser General Public License version\n2.1, t"
},
{
"path": "plugins/itemfakevim/fakevim/LICENSE.LGPL",
"chars": 26423,
"preview": "\t\t GNU LESSER GENERAL PUBLIC LICENSE\n\t\t Version 2.1, February 1999\n\n Copyright (C) 1991, 1999 Free Software Found"
},
{
"path": "plugins/itemfakevim/fakevim/fakevimactions.cpp",
"chars": 7241,
"preview": "// Copyright (C) 2016 The Qt Company Ltd.\n// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WI"
},
{
"path": "plugins/itemfakevim/fakevim/fakevimactions.h",
"chars": 3790,
"preview": "// Copyright (C) 2016 The Qt Company Ltd.\n// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WI"
},
{
"path": "plugins/itemfakevim/fakevim/fakevimhandler.cpp",
"chars": 307936,
"preview": "// Copyright (C) 2016 The Qt Company Ltd.\n// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WI"
},
{
"path": "plugins/itemfakevim/fakevim/fakevimhandler.h",
"chars": 5288,
"preview": "// Copyright (C) 2016 The Qt Company Ltd.\n// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WI"
},
{
"path": "plugins/itemfakevim/fakevim/fakevimtr.h",
"chars": 284,
"preview": "// Copyright (C) 2016 The Qt Company Ltd.\n// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WI"
},
{
"path": "plugins/itemfakevim/fakevim/private/fakevim_export.h",
"chars": 36,
"preview": "#pragma once\n#define FAKEVIM_EXPORT\n"
},
{
"path": "plugins/itemfakevim/itemfakevim.cpp",
"chars": 26443,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemfakevim.h\"\n#include \"ui_itemfakevimsettings.h\"\n\n#include \"fa"
},
{
"path": "plugins/itemfakevim/itemfakevim.h",
"chars": 1419,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"item/itemwidgetwrapper.h\"\n\nnamespace Ui {\nclass I"
},
{
"path": "plugins/itemfakevim/itemfakevim.qrc",
"chars": 98,
"preview": "<RCC>\n <qresource prefix=\"/\">\n <file>fakevim/fakevim.png</file>\n </qresource>\n</RCC>\n"
},
{
"path": "plugins/itemfakevim/itemfakevimsettings.ui",
"chars": 1134,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemFakeVimSettings</class>\n <widget class=\"QWidget\" n"
},
{
"path": "plugins/itemimage/CMakeLists.txt",
"chars": 295,
"preview": "set(copyq_plugin_itemimage_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-config>\n $<TARGET_OBJECTS:copyq-plugin-serialize"
},
{
"path": "plugins/itemimage/itemimage.cpp",
"chars": 7612,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemimage.h\"\n#include \"ui_itemimagesettings.h\"\n\n#include \"common"
},
{
"path": "plugins/itemimage/itemimage.h",
"chars": 2157,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidget.h\"\n\n#inclu"
},
{
"path": "plugins/itemimage/itemimagesettings.ui",
"chars": 4838,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemImageSettings</class>\n <widget class=\"QWidget\" nam"
},
{
"path": "plugins/itemnotes/CMakeLists.txt",
"chars": 247,
"preview": "set(copyq_plugin_itemnotes_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-iconfont>\n $<TARGET_OBJECTS:copyq-plugin-iconwid"
},
{
"path": "plugins/itemnotes/itemnotes.cpp",
"chars": 7581,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemnotes.h\"\n#include \"ui_itemnotessettings.h\"\n\n#include \"common"
},
{
"path": "plugins/itemnotes/itemnotes.h",
"chars": 2070,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidgetwrapper.h\"\n"
},
{
"path": "plugins/itemnotes/itemnotessettings.ui",
"chars": 1700,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemNotesSettings</class>\n <widget class=\"QWidget\" nam"
},
{
"path": "plugins/itempinned/CMakeLists.txt",
"chars": 230,
"preview": "set(copyq_plugin_itempinned_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-wrapper>\n ../../src/item/itemsaverwrapper.cpp\n "
},
{
"path": "plugins/itempinned/itempinned.cpp",
"chars": 9648,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itempinned.h\"\n\n#include \"common/command.h\"\n#include \"common/cont"
},
{
"path": "plugins/itempinned/itempinned.h",
"chars": 2912,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidgetwrapper.h\"\n"
},
{
"path": "plugins/itemsync/CMakeLists.txt",
"chars": 452,
"preview": "set(copyq_plugin_itemsync_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-config>\n $<TARGET_OBJECTS:copyq-plugin-geometry>\n"
},
{
"path": "plugins/itemsync/filewatcher.cpp",
"chars": 39702,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"filewatcher.h\"\n\n#include \"common/contenttype.h\"\n#include \"item/s"
},
{
"path": "plugins/itemsync/filewatcher.h",
"chars": 4208,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"common/mimetypes.h\"\n\n#include <QDir>\n#include <QL"
},
{
"path": "plugins/itemsync/itemsync.cpp",
"chars": 23323,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemsync.h\"\n#include \"ui_itemsyncsettings.h\"\n\n#include \"filewatc"
},
{
"path": "plugins/itemsync/itemsync.h",
"chars": 4653,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidgetwrapper.h\"\n"
},
{
"path": "plugins/itemsync/itemsyncsettings.ui",
"chars": 4804,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemSyncSettings</class>\n <widget class=\"QWidget\" name"
},
{
"path": "plugins/itemtags/CMakeLists.txt",
"chars": 491,
"preview": "set(copyq_plugin_itemtags_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-config>\n $<TARGET_OBJECTS:copyq-plugin-geometry>\n"
},
{
"path": "plugins/itemtags/itemtags.cpp",
"chars": 25303,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemtags.h\"\n#include \"ui_itemtagssettings.h\"\n\n#include \"common/c"
},
{
"path": "plugins/itemtags/itemtags.h",
"chars": 3940,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidgetwrapper.h\"\n"
},
{
"path": "plugins/itemtags/itemtagssettings.ui",
"chars": 1878,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemTagsSettings</class>\n <widget class=\"QWidget\" name"
},
{
"path": "plugins/itemtext/CMakeLists.txt",
"chars": 112,
"preview": "set(copyq_plugin_itemtext_SOURCES\n $<TARGET_OBJECTS:copyq-plugin-textdata>\n )\n\ncopyq_add_plugin(itemtext)\n"
},
{
"path": "plugins/itemtext/itemtext.cpp",
"chars": 9178,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"itemtext.h\"\n#include \"ui_itemtextsettings.h\"\n\n#include \"common/m"
},
{
"path": "plugins/itemtext/itemtext.h",
"chars": 2031,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"gui/icons.h\"\n#include \"item/itemwidget.h\"\n\n#inclu"
},
{
"path": "plugins/itemtext/itemtextsettings.ui",
"chars": 3337,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ItemTextSettings</class>\n <widget class=\"QWidget\" name"
},
{
"path": "pyproject.toml",
"chars": 478,
"preview": "[tool.codespell]\nskip = [\n '*.css',\n '*.svg',\n './build/',\n './plugins/itemfakevim/fakevim',\n './shared/c"
},
{
"path": "qxt/AUTHORS",
"chars": 533,
"preview": "== main developers ==\n\nArvid Picciani\t<aep@libqxt.org>\nAdam Higerd <ahigerd@libqxt.org>\nJ-P Nurmi <jpnurmi@lib"
},
{
"path": "qxt/COPYING",
"chars": 1864,
"preview": "/****************************************************************************\n** Copyright (c) 2006 - 2011, the LibQxt p"
},
{
"path": "qxt/qxtglobalshortcut.cpp",
"chars": 8709,
"preview": "#include \"qxtglobalshortcut.h\"\n/****************************************************************************\n** Copyrigh"
},
{
"path": "qxt/qxtglobalshortcut.h",
"chars": 2984,
"preview": "/****************************************************************************\n** Copyright (c) 2006 - 2011, the LibQxt p"
},
{
"path": "qxt/qxtglobalshortcut_mac.cpp",
"chars": 12586,
"preview": "#include <Carbon/Carbon.h>\n/****************************************************************************\n** Copyright (c"
},
{
"path": "qxt/qxtglobalshortcut_p.h",
"chars": 3406,
"preview": "/****************************************************************************\r\n** Copyright (c) 2006 - 2011, the LibQxt "
},
{
"path": "qxt/qxtglobalshortcut_win.cpp",
"chars": 6941,
"preview": "#include \"qxtglobalshortcut_p.h\"\n/****************************************************************************\n** Copyri"
},
{
"path": "qxt/qxtglobalshortcut_x11.cpp",
"chars": 22854,
"preview": "#include \"qxtglobalshortcut_p.h\"\n/****************************************************************************\n** Copyri"
},
{
"path": "qxt/xcbkeyboard.h",
"chars": 24931,
"preview": "/****************************************************************************\n**\n** Copyright (C) 2016 The Qt Company Lt"
},
{
"path": "shared/Info.plist",
"chars": 1300,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.c"
},
{
"path": "shared/com.github.hluk.copyq.desktop.in",
"chars": 7646,
"preview": "[Desktop Entry]\nName=CopyQ\nExec=copyq --start-server show\nIcon=${ICON_NAME}\nGenericName=Clipboard Manager\n# Workaround /"
},
{
"path": "shared/com.github.hluk.copyq.metainfo.xml",
"chars": 4561,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Copyright 2024 Lukáš Holeček <hluk@email.cz> -->\n<component type=\"desktop-ap"
},
{
"path": "shared/copyq-completion",
"chars": 3523,
"preview": "# shellcheck shell=bash\n\n_copyq_commands=(\n show hide toggle menu exit disable enable clipboard selection paste copy\n"
},
{
"path": "shared/copyq.1",
"chars": 4354,
"preview": ".TH CopyQ 1\n.SH NAME\nCopyQ \\- Clipboard Manager with Advanced Features\n\n\n.SH SYNOPSIS\n.B copyq\n[\\fBCOMMAND\\fR]\n\n\n.SH DES"
},
{
"path": "shared/copyq.iss",
"chars": 7969,
"preview": "; 1. Open this file with Inno Setup with Unicode support and preprocessor.\n; 2. Change \"#defines\" below (or see below h"
},
{
"path": "shared/flatpak/README.md",
"chars": 785,
"preview": "This directory contains source files for building CopyQ Flatpak package.\n\n# Build\n\nInstall `flatpak-builder`.\n\nOption `-"
},
{
"path": "shared/flatpak/com.github.hluk.copyq.json",
"chars": 879,
"preview": "{\n \"app-id\": \"com.github.hluk.copyq\",\n \"runtime\": \"org.kde.Platform\",\n \"runtime-version\": \"5.9\",\n \"sdk\": \"or"
},
{
"path": "shared/gnome-extension/extension.js",
"chars": 12804,
"preview": "import Gio from 'gi://Gio';\nimport GLib from 'gi://GLib';\nimport Meta from 'gi://Meta';\nimport Shell from 'gi://Shell';\n"
},
{
"path": "shared/gnome-extension/metadata.json",
"chars": 215,
"preview": "{\n \"name\": \"CopyQ Clipboard Monitor\",\n \"description\": \"Forwards GNOME clipboard changes to active CopyQ sessions.\",\n "
},
{
"path": "shared/gpl-3.0.rtf",
"chars": 40358,
"preview": "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0 \\fswiss Helvetica;}{\\f1 Courier;}}\n{\\colortbl;\\red255\\green0\\blue0;\\red0\\green0\\blue255;}"
},
{
"path": "shared/plugins/example.js",
"chars": 868,
"preview": "// This is example plugin script for CopyQ.\n// Plugin scripts should be copied to plugins directory\n// (usually ~/.confi"
},
{
"path": "shared/themes/black.ini",
"chars": 466,
"preview": "[General]\nnotes_css=\nfind_bg=#222222\nedit_font=\"Sans,11,-1,5,50,0,0,0,0,0\"\nbg=#000000\nfind_font=\"Sans,10,-1,5,50,0,0,0,0"
},
{
"path": "shared/themes/dark.ini",
"chars": 466,
"preview": "[General]\nnotes_css=\nfind_bg=#00689c\nedit_font=\"Sans,11,-1,5,50,0,0,0,0,0\"\nbg=#4b4b4b\nfind_font=\"Sans,10,-1,5,50,0,0,0,0"
},
{
"path": "shared/themes/forest.ini",
"chars": 951,
"preview": "[General]\nalt_bg=#f1edcb\nalt_item_css=\"\n ;background: qlineargradient(\n x1: 0, y1: 0,\n x2: 0, y2: 1,\n "
},
{
"path": "shared/themes/items.css",
"chars": 1350,
"preview": "#ClipboardBrowser,#item,#item_child{\n ;${font}\n ;color: ${fg}\n ;background: ${bg}\n}\n\n#ClipboardBrowser::item:al"
},
{
"path": "shared/themes/light.ini",
"chars": 2215,
"preview": "[General]\nalt_bg=#e0e0e0\nbg=#eeeeee\ncss=\nedit_bg=#cccccc\nedit_fg=fg - #111\nedit_font=\"monospace,11,-1,5,50,0,0,0,0,0\"\nfg"
},
{
"path": "shared/themes/main_window.css",
"chars": 1143,
"preview": "#searchBar{${search_bar}}\n\n#searchBar:focus{${search_bar_focused}}\n\n#tab_bar{${tab_bar_css}}\n#tab_bar::tab:selected{${ta"
},
{
"path": "shared/themes/main_window_simple.css",
"chars": 84,
"preview": "#plainTextEditCommand {\n ;${edit_font}\n}\n#comboBoxCommands {\n ;${edit_font}\n}\n"
},
{
"path": "shared/themes/menu.css",
"chars": 974,
"preview": "/* Remove icon border in menus. */\n#TrayMenu::item:selected,\n#MainWindow>QMenu::item:selected,\n#menu_bar>QMenu::item:sel"
},
{
"path": "shared/themes/nord.ini",
"chars": 2615,
"preview": "[General]\ncss_template_items=items\ncss_template_main_window=main_window\ncss_template_menu=menu\ncss_template_notification"
},
{
"path": "shared/themes/nord_light.ini",
"chars": 2615,
"preview": "[General]\ncss_template_items=items\ncss_template_main_window=main_window\ncss_template_menu=menu\ncss_template_notification"
},
{
"path": "shared/themes/notification.css",
"chars": 411,
"preview": "#Notification, #Notification QWidget\n{\n /* Resets notification opacity. It will be set in NotificationDaemon::setNoti"
},
{
"path": "shared/themes/paper.ini",
"chars": 785,
"preview": "[General]\nalt_bg=bg\nalt_item_css=\"\\n \"\nbg=#f7f7f7\ncss=\"\\n ClipboardBrowser::selected:item{outline:0px}\\n Clipbo"
},
{
"path": "shared/themes/simple.ini",
"chars": 908,
"preview": "[General]\nalt_bg=bg\nalt_item_css=\"\n ;border-radius: 2px\n ;background: qlineargradient(\n x1: 0, y1: 0,\n "
},
{
"path": "shared/themes/solarized-dark.ini",
"chars": 477,
"preview": "[General]\nalt_bg=#073642\nalt_item_css=\nbg=#002b36\ncss=\nedit_bg=alt_bg\nedit_fg=#2aa198\nedit_font=\"Monospace,9,-1,5,50,0,0"
},
{
"path": "shared/themes/solarized-light.ini",
"chars": 473,
"preview": "[General]\nalt_bg=#eee8d5\nalt_item_css=\nbg=#fdf6e3\ncss=\nedit_bg=bg\nedit_fg=#268bd2\nedit_font=\"Monospace,9,-1,5,50,0,0,0,0"
},
{
"path": "shared/themes/tooltip.css",
"chars": 240,
"preview": "#item QToolTip, QMenu QToolTip {\n ;${notes_font}\n ;background: ${notes_bg}\n ;color: ${notes_fg}\n /* Resettin"
},
{
"path": "shared/themes/wine.ini",
"chars": 780,
"preview": "[General]\nalt_bg=bg-#101a1a\nalt_item_css=\"\n ;border: 0px solid transparent\n ;border-radius: 5px\n \"\nbg=#ffffff\nc"
},
{
"path": "src/CMakeLists.txt",
"chars": 7933,
"preview": "# Project files\nfile(GLOB copyq_SOURCES\n app/*.cpp\n common/*.cpp\n gui/*.cpp\n gui/notification.h\n item/*.c"
},
{
"path": "src/app/app.cpp",
"chars": 4905,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"app.h\"\n\n#include \"common/commandstore.h\"\n#include \"common/settin"
},
{
"path": "src/app/app.h",
"chars": 948,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nclass QCoreApplication;\nclass QString;\n\nvoid setSessionName"
},
{
"path": "src/app/applicationexceptionhandler.cpp",
"chars": 679,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"applicationexceptionhandler.h\"\n\n#include \"common/log.h\"\n\n#includ"
},
{
"path": "src/app/applicationexceptionhandler.h",
"chars": 1060,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QObject>\n\n#include <exception>\n\nclass QCoreApplic"
},
{
"path": "src/app/clipboardclient.cpp",
"chars": 5090,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"clipboardclient.h\"\n\n#include \"common/client_server.h\"\n#include \""
},
{
"path": "src/app/clipboardclient.h",
"chars": 1023,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"app.h\"\n\n#include <QObject>\n#include <QStringList>"
},
{
"path": "src/app/clipboardmonitor.cpp",
"chars": 6080,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"clipboardmonitor.h\"\n\n#include \"common/appconfig.h\"\n#include \"com"
},
{
"path": "src/app/clipboardmonitor.h",
"chars": 1550,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"app/clipboardownermonitor.h\"\n#include \"common/cli"
},
{
"path": "src/app/clipboardownermonitor.cpp",
"chars": 2149,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"clipboardownermonitor.h\"\n\n#include \"app/clipboardmonitor.h\"\n#inc"
},
{
"path": "src/app/clipboardownermonitor.h",
"chars": 846,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QAbstractNativeEventFilter>\n#include <QByteArray>"
},
{
"path": "src/app/clipboardserver.cpp",
"chars": 30419,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"clipboardserver.h\"\n\n#include \"common/action.h\"\n#include \"common/"
},
{
"path": "src/app/clipboardserver.h",
"chars": 4804,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"app.h\"\n#include \"common/clipboardmode.h\"\n#include"
},
{
"path": "src/audio.cmake",
"chars": 1619,
"preview": "find_path(MINIAUDIO_INCLUDE_DIR miniaudio.h\n HINTS \"${MINIAUDIO_INCLUDE_DIR}\"\n \"$ENV{MINIAUDIO_INCLUDE_DIR}\"\n \""
},
{
"path": "src/common/action.cpp",
"chars": 12966,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"action.h\"\n\n#include \"common/mimetypes.h\"\n#include \"common/proces"
},
{
"path": "src/common/action.h",
"chars": 3617,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QStringList>\n#include <QVariantMap>\n\nclass QActio"
},
{
"path": "src/common/actionhandlerenums.h",
"chars": 326,
"preview": "#pragma once\n\n\n#include <QtGlobal>\n\nenum class ActionState {\n Starting,\n Running,\n Finished,\n Error,\n};\n\nnam"
},
{
"path": "src/common/actionoutput.cpp",
"chars": 5146,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"actionoutput.h\"\n\n#include \"common/action.h\"\n#include \"common/con"
},
{
"path": "src/common/actionoutput.h",
"chars": 672,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nclass Action;\nclass MainWindow;\nclass QString;\nclass QRegul"
},
{
"path": "src/common/actiontablemodel.cpp",
"chars": 8457,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"actiontablemodel.h\"\n\n#include \"common/action.h\"\n#include \"common"
},
{
"path": "src/common/actiontablemodel.h",
"chars": 1458,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QAbstractTableModel>\n#include <QDateTime>\n\nclass "
},
{
"path": "src/common/appconfig.cpp",
"chars": 995,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"appconfig.h\"\n\n#include \"platform/platformnativeinterface.h\"\n\n#in"
},
{
"path": "src/common/appconfig.h",
"chars": 20403,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include \"common/navigationstyle.h\"\n#include \"common/settin"
},
{
"path": "src/common/audioplayer.cpp",
"chars": 6581,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n#include \"audioplayer.h\"\n\n#ifdef WITH_AUDIO\n\n#include <miniaudio.h>\n\n#inclu"
},
{
"path": "src/common/audioplayer.h",
"chars": 771,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n#pragma once\n\n#include <QString>\n#include <memory>\n\n/// Returns the audio b"
},
{
"path": "src/common/client_server.cpp",
"chars": 1218,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"common/client_server.h\"\n#include \"common/config.h\"\n\n#include <QD"
},
{
"path": "src/common/client_server.h",
"chars": 134,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nclass QString;\n\nQString clipboardServerName(const QString &"
},
{
"path": "src/common/clientsocket.cpp",
"chars": 7905,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"clientsocket.h\"\n\n#include \"common/client_server.h\"\n#include \"com"
},
{
"path": "src/common/clientsocket.h",
"chars": 1901,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QLocalSocket>\n#include <QObject>\n#include <QPoint"
},
{
"path": "src/common/clipboarddataguard.cpp",
"chars": 4991,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n#include \"common/clipboarddataguard.h\"\n#include \"common/common.h\"\n#include "
},
{
"path": "src/common/clipboarddataguard.h",
"chars": 943,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n#pragma once\n\n#include <QElapsedTimer>\n#include <QtContainerFwd>\n#include <"
},
{
"path": "src/common/clipboardmode.h",
"chars": 121,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nenum class ClipboardMode {\n Clipboard,\n Selection,\n};"
},
{
"path": "src/common/command.cpp",
"chars": 3752,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"command.h\"\n\n#include <QDataStream>\n#include <QLocale>\n\nbool Comm"
},
{
"path": "src/common/command.h",
"chars": 3520,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QMap>\n#include <QString>\n#include <QStringList>\n#"
},
{
"path": "src/common/commandstatus.h",
"chars": 629,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n/** Command status. */\nenum CommandStatus {\n /** Script "
},
{
"path": "src/common/commandstore.cpp",
"chars": 11284,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"commandstore.h\"\n\n#include \"common/command.h\"\n#include \"common/co"
},
{
"path": "src/common/commandstore.h",
"chars": 509,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QtContainerFwd>\n\nclass QSettings;\nstruct Command;"
},
{
"path": "src/common/common.cpp",
"chars": 15860,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"common/common.h\"\n\n#include \"common/clipboarddataguard.h\"\n#includ"
},
{
"path": "src/common/common.h",
"chars": 2738,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QtContainerFwd>\n#if QT_VERSION < QT_VERSION_CHECK"
},
{
"path": "src/common/config.cpp",
"chars": 1521,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"config.h\"\n\n#include <QApplication>\n#include <QByteArray>\n#includ"
},
{
"path": "src/common/config.h",
"chars": 254,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\nclass QString;\n\nbool ensureSettingsDirectoryExists();\n\nconst"
},
{
"path": "src/common/contenttype.h",
"chars": 786,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <Qt>\n\n/**\n * Enum values are used in ClipboardMode"
},
{
"path": "src/common/display.cpp",
"chars": 1388,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"display.h\"\n\n#include \"gui/screen.h\"\n\n#include <QApplication>\n#in"
},
{
"path": "src/common/display.h",
"chars": 209,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nclass QPoint;\nclass QWidget;\n\nint smallIconSize();\n\nQPoint "
},
{
"path": "src/common/encryption.cpp",
"chars": 23783,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"encryption.h\"\n#include \"common/config.h\"\n\n#ifdef WITH_QCA_ENCRYP"
},
{
"path": "src/common/encryption.h",
"chars": 5559,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n#include <QByteArray>\n#include <QString>\n\nclass QDataStream;"
},
{
"path": "src/common/globalshortcutcommands.cpp",
"chars": 4015,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"globalshortcutcommands.h\"\n\n#include \"common/command.h\"\n#include "
},
{
"path": "src/common/globalshortcutcommands.h",
"chars": 217,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\n#include <QtContainerFwd>\n\nclass QString;\nstruct Command;\n\n"
},
{
"path": "src/common/keychainaccess.cpp",
"chars": 2896,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"keychainaccess.h\"\n\n#ifdef WITH_KEYCHAIN\n# if QT_VERSION >= QT_"
},
{
"path": "src/common/keychainaccess.h",
"chars": 389,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n#include <QByteArray>\n#include <QString>\n\nnamespace Keychain"
},
{
"path": "src/common/log.cpp",
"chars": 8671,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"log.h\"\n\n#include <QCoreApplication>\n#include <QDateTime>\n#includ"
},
{
"path": "src/common/log.h",
"chars": 1127,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n#pragma once\n\n\nclass QByteArray;\nclass QFileInfo;\nclass QString;\ntemplate <"
},
{
"path": "src/common/messagehandlerforqt.cpp",
"chars": 2131,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"messagehandlerforqt.h\"\n\n#include \"common/log.h\"\n\n#include <QLogg"
},
{
"path": "src/common/messagehandlerforqt.h",
"chars": 96,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#pragma once\n\n\nvoid installMessageHandlerForQt();\n"
},
{
"path": "src/common/mimetypes.cpp",
"chars": 1365,
"preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n\n#include \"mimetypes.h\"\n\n#include <QLatin1String>\n\nconst QLatin1String mime"
}
]
// ... and 394 more files (download for full content)
About this extraction
This page contains the full source code of the hluk/CopyQ GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 594 files (9.0 MB), approximately 2.4M tokens, and a symbol index with 2409 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.