peony-4.0.0.1/0000755000175000017500000000000014605456050011431 5ustar fengfengpeony-4.0.0.1/COPYING.LIB0000644000175000017500000001674414551627337013115 0ustar fengfeng GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. peony-4.0.0.1/plugin-iface/0000755000175000017500000000000014551637202013774 5ustar fengfengpeony-4.0.0.1/plugin-iface/plugin-iface.pri0000644000175000017500000000077014551637202017057 0ustar fengfengINCLUDEPATH += $$PWD \ HEADERS += \ $$PWD/emblem-plugin-iface.h \ $$PWD/menu-plugin-iface.h \ $$PWD/plugin-iface.h \ $$PWD/preview-page-plugin-iface.h \ $$PWD/directory-view-plugin-iface.h \ $$PWD/side-bar-plugin-iface.h \ $$PWD/tool-bar-action-plugin-iface.h \ $$PWD/properties-window-tab-iface.h \ $$PWD/properties-window-tab-page-plugin-iface.h \ $$PWD/style-plugin-iface.h \ $$PWD/directory-view-plugin-iface2.h \ $$PWD/vfs-plugin-iface.h SOURCES += peony-4.0.0.1/plugin-iface/side-bar-plugin-iface.h0000644000175000017500000000305214551627337020204 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2021, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef SIDEBARPLUGINIFACE_H #define SIDEBARPLUGINIFACE_H #include "side-bar.h" #include "plugin-iface.h" #include #include #include #define SideBarPluginInterface_iid "org.ukui.peony-qt.plugin-iface.SideBarPluginInterface" namespace Peony { class SideBarPluginInterface : public PluginInterface { public: virtual ~SideBarPluginInterface() {} /*! * \brief keys * usually a special string for recognizing. */ virtual const QStringList keys() = 0; /*! * \brief create * \return * a SideBar instance with its own implement. */ virtual SideBar *create(QWidget *parent) = 0; }; } Q_DECLARE_INTERFACE (Peony::SideBarPluginInterface, SideBarPluginInterface_iid) #endif // SIDEBARPLUGINIFACE_H peony-4.0.0.1/plugin-iface/menu-plugin-iface.h0000644000175000017500000000612114551627337017462 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef MENUPLUGINIFACE_H #define MENUPLUGINIFACE_H #include #include #include #include #include "plugin-iface.h" #define MenuPluginInterface_iid "org.ukui.peony-qt.plugin-iface.MenuPluginInterface" namespace Peony { /** * @brief The MenuPluginInterface class * @details MenuPluginInterface is a Qt Plugin Interface, the methods of this class must all be * pure VIRTUAL and has ZERO as return value. * Otherwise, the plugin will not be loaded correctly. * For example, if we define a virtual QString method, we must do as this: *
 *  virtual QString xxx() = 0;
 * 
* DO NOT FORGET to initial virtual method in class definition. */ class MenuPluginInterface : public PluginInterface { public: /*! * \brief The Type enum * \details * Type is a enum filter which could help you return different actions * by different menu iface type. * For example, if you write a desktop background wrapper plugin, * you should only return your actions when the passing type is * DesktopBackground. */ enum Type { Invalid, DirectoryView, SideBar, DesktopWindow, Other }; Q_DECLARE_FLAGS(Types, Type) virtual ~MenuPluginInterface() {} virtual QString testPlugin() = 0; /*! * \brief menuActions * \param types * \param uri * \param selectionUris * \return * In peony-qt, user can install the menu extensions. This is because * peony-qt's view/menu frameworks is desgined to be extensible. * When a peony view context menu was request it will call the plugin's * menuActions method get the extension actions. * \note * A menu can be more than one type, a desktop background menu is also * could be a directory background menu. This is decied by peony-qt's * view/menu framework itself. * You can only implement one type of a menu, but you should never directly * return the actions without a type check, this might cause actions in menu * duplicated. */ virtual QList menuActions(Types types, const QString &uri, const QStringList &selectionUris) = 0; }; } Q_DECLARE_OPERATORS_FOR_FLAGS(Peony::MenuPluginInterface::Types) Q_DECLARE_INTERFACE (Peony::MenuPluginInterface, MenuPluginInterface_iid) #endif peony-4.0.0.1/plugin-iface/emblem-plugin-iface.h0000644000175000017500000000245314551627337017763 0ustar fengfeng/* * Peony-Qt * * Copyright (C) 2023, KylinSoft Information Technology Co., Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authors: Yue Lan * */ #ifndef EMBLEMPLUGINIFACE_H #define EMBLEMPLUGINIFACE_H #include "plugin-iface.h" #include "peony-core_global.h" #include "emblem-provider.h" #define EmblemPluginInterface_iid "org.ukui.peony-qt.plugin-iface.EmblemPluginInterface" namespace Peony { class PEONYCORESHARED_EXPORT EmblemPluginInterface : public PluginInterface { public: virtual ~EmblemPluginInterface() {} virtual EmblemProvider *create() = 0; }; } Q_DECLARE_INTERFACE (Peony::EmblemPluginInterface, EmblemPluginInterface_iid) #endif // EMBLEMPLUGINIFACE_H peony-4.0.0.1/plugin-iface/vfs-plugin-iface.h0000644000175000017500000000526114551627337017320 0ustar fengfeng/* * Peony-Qt * * Copyright (C) 2023, KylinSoft Information Technology Co., Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authors: Yue Lan * */ #ifndef VFSPLUGINIFACE_H #define VFSPLUGINIFACE_H #include "plugin-iface.h" #include "peony-core_global.h" #include "custom-error-handler.h" #define VFSPluginInterface_iid "org.ukui.peony-qt.plugin-iface.VFSPluginInterface" namespace Peony { class PEONYCORESHARED_EXPORT VFSPluginIface : public PluginInterface { public: virtual ~VFSPluginIface() {} /*! * \brief uriScheme * \return * \details * indicate the uri scheme you want to register. */ virtual QString uriScheme() = 0; /*! * \brief holdInSideBar * \return * \details * indicate if it should display as an parent item in sidebar. */ virtual bool holdInSideBar() = 0; /*! * \brief initVFS * \details * peony will init your custom app vfs with this interface at early stage. * you should call g_vfs_register_uri_scheme() in your own implement to register * your vfs into peony. * \note * you should implement your vfs registion with your uri scheme. */ virtual void initVFS() = 0; /*! * \brief parseUriToVFSFile * \param uri * \return a GFile Handler represent crosponding uri. * \details * backup function for while register costom uri scheme is not supported. * \note * in old glib version, there is no g_vfs_register_uri_scheme(), and in new * glib, register a vfs into system is asynchronous, those means it might not be * registered and can not use GVfsFileLookupFunc to get file handler. */ virtual void* parseUriToVFSFile(const QString &uri) = 0; /*! * \brief customErrorHandler * \return * custom error handler for this vfs. normally it using with FileEnumerator::prepare(), * and FileEnumerator::handleError(). */ virtual CustomErrorHandler *customErrorHandler() = 0; }; } Q_DECLARE_INTERFACE(Peony::VFSPluginIface, VFSPluginInterface_iid) #endif // VFSPLUGINIFACE_H peony-4.0.0.1/plugin-iface/properties-window-tab-iface.h0000644000175000017500000000344114551627337021471 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Wenfei He * */ #ifndef PROPERTIESWINDOWTABIFACE_H #define PROPERTIESWINDOWTABIFACE_H #include #include "peony-core_global.h" #define PropertiesWindowTabIface_iid "org.ukui.peony-qt.plugin-iface.PropertiesWindowTabInterface" namespace Peony { class PEONYCORESHARED_EXPORT PropertiesWindowTabIface : public QWidget { Q_OBJECT public: PropertiesWindowTabIface(QWidget *parent = nullptr) : QWidget(parent){} virtual ~PropertiesWindowTabIface() {} PropertiesWindowTabIface(); bool m_thisPageChanged = false; /*! * 作为当前页面是否改变的依据 * \brief */ virtual void thisPageChanged() { this->m_thisPageChanged = true; } /*! * \brief 响应确认按钮保存全部数据 */ virtual void saveAllChange() {}; Q_SIGNALS: /*! * 当前tab页面请求关闭窗口 * \brief */ void requestCloseMainWindow(); }; } Q_DECLARE_INTERFACE(Peony::PropertiesWindowTabIface, PropertiesWindowTabIface_iid) #endif // PROPERTIESWINDOWTABIFACE_H peony-4.0.0.1/plugin-iface/preview-page-plugin-iface.h0000644000175000017500000000340214551627337021110 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PREVIEWPAGEPLUGINIFACE_H #define PREVIEWPAGEPLUGINIFACE_H #include #include #include #include "plugin-iface.h" #define PreviewPagePluginIface_iid "org.ukui.peony-qt.plugin-iface.PreviewPagePluginInterface" namespace Peony { class PreviewPageIface; class PreviewPagePluginIface : public PluginInterface { public: virtual ~PreviewPagePluginIface() {} virtual PreviewPageIface *createPreviewPage() = 0; }; class PreviewPageIface { public: enum PreviewType { Attribute, Text, Pictrue, PDF, OfficeDoc, Other }; virtual ~PreviewPageIface() {} virtual void prepare(const QString &uri, PreviewType type) = 0; virtual void prepare(const QString &uri) = 0; virtual void startPreview() = 0; virtual void cancel() = 0; virtual void closePreviewPage() = 0; }; } Q_DECLARE_INTERFACE(Peony::PreviewPagePluginIface, PreviewPagePluginIface_iid) #endif // PREVIEWPAGEPLUGINIFACE_H peony-4.0.0.1/plugin-iface/tool-bar-action-plugin-iface.h0000644000175000017500000000303114551627337021505 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef TOOLBARACTIONPLUGINIFACE_H #define TOOLBARACTIONPLUGINIFACE_H #include "plugin-iface.h" #include #define ToolBarActionPluginIface_iid "org.ukui.peony-qt.plugin-iface.ToolBarActionPluginInterface" namespace Peony { class ToolBarExtensionActionIface : public QAction { Q_OBJECT ~ToolBarExtensionActionIface() {} public Q_SLOTS: virtual void excuteAction(const QString &directoryUri, const QStringList &selectedUris) = 0; }; class ToolBarActionPluginIface : public PluginInterface { public: ~ToolBarActionPluginIface() {} virtual ToolBarExtensionActionIface *create() = 0; }; } Q_DECLARE_INTERFACE(Peony::ToolBarActionPluginIface, ToolBarActionPluginIface_iid) #endif // TOOLBARACTIONPLUGINIFACE_H peony-4.0.0.1/plugin-iface/directory-view-plugin-iface.h0000644000175000017500000002133614551637202021467 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef DIRECTORYVIEWPLUGINIFACE_H #define DIRECTORYVIEWPLUGINIFACE_H #include "plugin-iface.h" #include #define DirectoryViewPluginIface_iid "org.ukui.peony-qt.plugin-iface.DirectoryViewPluginInterface" namespace Peony { class DirectoryViewIface; class DirectoryViewProxyIface; class FileItemModel; class FileItemProxyFilterSortModel; /*! * \brief The DirectoryViewPluginIface class * \details * It is a few complex to implement a peony-qt's directory view's plugin. * There are 3 interface class must to be implemented. * 1. DirectoryViewPluginIface: * This is the entry of a plugin, peony-qt's application will dynamicly * load external view modules when it started. After a plugin loaded * it will be registered in peony-qt's application globally, then we can * create such a view by create(); * \see DirectoryViewFactoryManager * * 2. DirectoryViewIface: * This class define a set of methods a dervied class of directory view * must implement. a dervied view could most be a dervied QAbstractItemView, * such as QListView or QTreeView, but not certain. * the directory view must implement these virtual method and make them * seem worked in there own implement. * \see DirectoryViewIface * * 3. DirectoryViewProxyIface * \see DirectoryViewProxyIface * * \deprecated * This interface is deprecated, and it should be removed from codes. * * To make a directory view extension, * you have to implement DirectoryViewPluginIface2, not this. * * \see * DirectoryViewPluginIface2 */ class DirectoryViewPluginIface : public PluginInterface { public: virtual ~DirectoryViewPluginIface() {} virtual QString viewIdentity() = 0; virtual QIcon viewIcon() = 0; virtual bool supportUri(const QString &uri) = 0; /*! * \brief zoom_level_hint * \return the description value of this type of view's zoom level. * \details * Peony-Qt doesn't deal the zoom level in a kind of view. Insteadly, * there is a value for a view for describing its zoom level. Through * this zoom level, Peony-Qt can realize "zoom in/out" by switch the view's * type. * * We usually use the Peony-Qt's default icon view. Its zoom level hint is 100. * If you want to implement a larger directory view extension you should set the * zoom level hint bigger than the default one, vice versa. */ virtual int zoom_level_hint() = 0; /*! * \brief priority * \return the priority of view that should be show when went to a location. * \details * In Peony-Qt, there are some special view should be shown when we went to some * special directory, such as computer, it should be shown as a computer view. * Peony-Qt first judge if it should switch the view if there is a higher-priority * view than current view when the location change begin. * * The default icon view and details view's priority value is 0. If you want to * implement an extension view replace the current view in some location, you should * set the priority value larger than the default one. */ virtual int priority(const QString &directoryUri) = 0; virtual DirectoryViewIface *create() = 0; }; /*! * \brief The DirectoryViewIface class * \details * This class define a set of interface for view operation. * In peony-qt the directory view is desgin to be extensive, * and every kind of view will have a global factory to create * the view's instance. the factories will be managed by peony-qt * in global, too. * A peony-qt's file item view will implement this interface. * \note * Every DirectoryViewIface instance should have a DirectoryViewProxyIface * instance, we usually use this proxy control the view. * \see DirectoryViewProxyIface * * \note * This interface is useless for implement of new directory view extensions, but * it will be keeped for fitting translations about old view (IconView & ListView) and view's factory to * new view (IconView2 & ListView2) and factory. * * To make a directory view extension, * you have to implement DirectoryViewPluginIface2, not this. * * \see * DirectoryViewPluginIface2 */ class DirectoryViewIface { public: virtual ~DirectoryViewIface() {} virtual void bindModel(FileItemModel *sourceModel, FileItemProxyFilterSortModel *proxyModel) = 0; virtual void setProxy(DirectoryViewProxyIface *proxy) = 0; const virtual QString viewId() = 0; //location const virtual QString getDirectoryUri() = 0; //selections const virtual QStringList getSelections() = 0; //children const virtual QStringList getAllFileUris() = 0; /* //loaction void openRequest(const QStringList &uri, bool newWindow); void viewDirectoryChanged(); void viewSelectionChanged(); //menu void menuRequest(const QPoint &pos); //clipboard void cutSelectionsRequest(); void copySelectionsRequest(); void pasteSelectionsRequest(); //zoom void zoomedIn(); void zoomedOut(); */ //location virtual void open(const QStringList &uris, bool newWindow) = 0; virtual void setDirectoryUri(const QString &uri) = 0; virtual void beginLocationChange() = 0; virtual void stopLocationChange() = 0; virtual void closeView() = 0; //selections virtual void setSelections(const QStringList &uris) = 0; virtual void invertSelections() = 0; virtual void scrollToSelection(const QString &uri) = 0; //clipboard virtual void setCutFiles(const QStringList &uris) = 0; virtual DirectoryViewProxyIface *getProxy() = 0; virtual int getSortType() = 0; virtual void setSortType(int sortType) = 0; virtual int getSortOrder() = 0; virtual void setSortOrder(int sortOrder) = 0; //edit virtual void editUri(const QString &uri) = 0; /*! * \brief editUris * \param uris * \todo * implement batch rename */ virtual void editUris(const QStringList uris) = 0; }; /*! * \brief The DirectoryViewProxyIface class * \deprecated * This interface is deprecated, and it should be removed from codes. * To make a directory view extension, * you have to implement DirectoryViewPluginIface2, not this. * * \see * DirectoryViewPluginIface2 */ class DirectoryViewProxyIface: public QObject { Q_OBJECT public: explicit DirectoryViewProxyIface(QObject *parent = nullptr) : QObject(parent) {} ~DirectoryViewProxyIface() {} virtual void switchView(DirectoryViewIface *view) = 0; virtual DirectoryViewIface *getView() = 0; //location const virtual QString getDirectoryUri() = 0; //selections const virtual QStringList getSelections() = 0; //children const virtual QStringList getAllFileUris() = 0; Q_SIGNALS: //loaction //FIXME: support open in new TAB? void openRequest(const QStringList &uri, bool newWindow); void viewDoubleClicked(const QString &uri); void viewDirectoryChanged(); void viewSelectionChanged(); //menu void menuRequest(const QPoint &pos); //window void updateWindowLocationRequest(const QString &uri); virtual int getSortType() = 0; virtual int getSortOrder() = 0; public Q_SLOTS: //location virtual void open(const QStringList &uris, bool newWindow) = 0; virtual void setDirectoryUri(const QString &uri) = 0; virtual void beginLocationChange() = 0; virtual void stopLocationChange() = 0; virtual void closeProxy() = 0; //selections virtual void setSelections(const QStringList &uris) = 0; virtual void invertSelections() = 0; virtual void scrollToSelection(const QString &uri) = 0; //clipboard //cut items should be drawn differently. virtual void setCutFiles(const QStringList &uris) = 0; virtual void setSortType(int sortType) = 0; virtual void setSortOrder(int sortOrder) = 0; virtual void editUri(const QString &uri) = 0; virtual void editUris(const QStringList uris) = 0; }; } Q_DECLARE_INTERFACE(Peony::DirectoryViewPluginIface, DirectoryViewPluginIface_iid) #endif // DIRECTORYVIEWPLUGINIFACE_H peony-4.0.0.1/plugin-iface/style-plugin-iface.h0000644000175000017500000000245714551627337017666 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef STYLEPLUGINIFACE_H #define STYLEPLUGINIFACE_H #include #include #include #include "plugin-iface.h" #define StylePluginIface_iid "org.ukui.peony-qt.plugin-iface.StylePluginInterface" class QProxyStyle; namespace Peony { class StylePluginIface : public PluginInterface { public: ~StylePluginIface() {} virtual int defaultPriority() = 0; virtual QProxyStyle *getStyle() = 0; }; } Q_DECLARE_INTERFACE(Peony::StylePluginIface, StylePluginIface_iid) #endif // STYLEPLUGINIFACE_H peony-4.0.0.1/plugin-iface/directory-view-plugin-iface2.h0000644000175000017500000000563014551627337021560 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef DIRECTORYVIEWPLUGINIFACE2_H #define DIRECTORYVIEWPLUGINIFACE2_H #include "plugin-iface.h" #include #define DirectoryViewPluginIface2_iid "org.ukui.peony-qt.plugin-iface.DirectoryViewPluginInterface2" namespace Peony { class DirectoryViewWidget; /*! * \brief The DirectoryViewPluginIface2 class * \details * This class is a pure virtual interface class. It defines an extensionalbe * interface for making newly type item view for peony. * * There are 2 kinds of internal implement at peony, icon view and list view. * * \verbatim * * Directory View's Zoom In/Out: * * It is not cool that every view zoom in/out in itself at all. * The zoom of the view should be linked with the view type, * and the transition should be as smooth as possible. * * I defined some rules to indicate how peony zoom its view. * there are 3 mainly parts: * * 1. the default zoom level hint of a view. * 2. the range for a view can be zoomed. * 3. wether a view supports zoomed. * * Zoom level has a range at 0 to 100. The hint should both contained * in the range and between view's min zoom level and max zoom level. * * Due to all view rebase the rules, there could be a common interface controling * the zoom of a window. * * For some special view, it might could not zoom, it better to indicate * with a clearly state for that case. * * \endverbatim * * \see IconView2, ListView2 */ class DirectoryViewPluginIface2 : public PluginInterface { public: virtual ~DirectoryViewPluginIface2() {} virtual QString viewIdentity() = 0; virtual QString viewName() = 0; virtual QIcon viewIcon() = 0; virtual bool supportUri(const QString &uri) = 0; virtual int zoom_level_hint() = 0; virtual int minimumSupportedZoomLevel() = 0; virtual int maximumSupportedZoomLevel() = 0; virtual int priority(const QString &directoryUri) = 0; virtual bool supportZoom() = 0; //virtual void fillDirectoryView(DirectoryViewWidget *view) = 0; virtual DirectoryViewWidget *create() = 0; }; } Q_DECLARE_INTERFACE (Peony::DirectoryViewPluginIface2, DirectoryViewPluginIface2_iid) #endif // DIRECTORYVIEWPLUGINIFACE2_H peony-4.0.0.1/plugin-iface/plugin-iface.h0000644000175000017500000000314014551637202016506 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PLUGINIFACE_H #define PLUGINIFACE_H #include #include //#define PluginInterface_iid "org.ukui.peony-qt.PluginInterface" namespace Peony { class PluginInterface { public: enum PluginType { Invalid, MenuPlugin, PreviewPagePlugin, DirectoryViewPlugin, DirectoryViewPlugin2, ToolBarPlugin, PropertiesWindowPlugin, ColumnProviderPlugin, StylePlugin, VFSPlugin, EmblemPlugin, SideBarPlugin, Other }; virtual ~PluginInterface() {} virtual PluginType pluginType() = 0; virtual const QString name() = 0; virtual const QString description() = 0; virtual const QIcon icon() = 0; virtual void setEnable(bool enable) = 0; virtual bool isEnable() = 0; }; } #endif // PLUGINIFACE_H peony-4.0.0.1/plugin-iface/properties-window-tab-page-plugin-iface.h0000644000175000017500000000330714551627337023700 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2020, KylinSoft Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PROPERTIESWINDOWTABPAGEPLUGINIFACE_H #define PROPERTIESWINDOWTABPAGEPLUGINIFACE_H #include #include #include #include "plugin-iface.h" #include "properties-window-tab-iface.h" class QWidget; #define PropertiesWindowTabPagePluginIface_iid "org.ukui.peony-qt.plugin-iface.PropertiesWindowTabPagePluginInterface" namespace Peony { class PropertiesWindowTabPagePluginIface : public PluginInterface { public: virtual ~PropertiesWindowTabPagePluginIface() {} virtual int tabOrder() = 0; virtual bool supportUris(const QStringList &uris) = 0; // virtual QWidget *createTabPage(const QStringList &uris) = 0; virtual PropertiesWindowTabIface *createTabPage(const QStringList &uris) = 0; virtual void closeFactory() = 0; }; } Q_DECLARE_INTERFACE(Peony::PropertiesWindowTabPagePluginIface, PropertiesWindowTabPagePluginIface_iid) #endif // PROPERTIESWINDOWTABPAGEPLUGINIFACE_H peony-4.0.0.1/3rd-parties/0000755000175000017500000000000014551627337013576 5ustar fengfengpeony-4.0.0.1/3rd-parties/qtsingleapplication/0000755000175000017500000000000014551627337017650 5ustar fengfengpeony-4.0.0.1/3rd-parties/qtsingleapplication/qtlocalpeer.h0000644000175000017500000000520514551627337022336 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCALPEER_H #define QTLOCALPEER_H #include #include #include #include "qtlockedfile.h" class QtLocalPeer : public QObject { Q_OBJECT public: QtLocalPeer(QObject *parent = 0, const QString &appId = QString()); bool isClient(); bool sendMessage(const QString &message, int timeout); QString applicationId() const { return id; } Q_SIGNALS: void messageReceived(const QString &message); protected Q_SLOTS: void receiveConnection(); protected: QString id; QString socketName; QLocalServer* server; QtLP_Private::QtLockedFile lockFile; private: static const char* ack; }; #endif // QTLOCALPEER_H peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsingleapplication.pri0000644000175000017500000000106114551627337024434 0ustar fengfengINCLUDEPATH += $$PWD DEPENDPATH += $$PWD QT *= network greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets qtsingleapplication-uselib:!qtsingleapplication-buildlib { LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME } else { SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h } win32 { contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTSINGLEAPPLICATION_EXPORT else:qtsingleapplication-uselib:DEFINES += QT_QTSINGLEAPPLICATION_IMPORT } peony-4.0.0.1/3rd-parties/qtsingleapplication/qtlockedfile_win.cpp0000644000175000017500000001466114551627337023707 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" #include #include #define MUTEX_PREFIX "QtLockedFile mutex " // Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS #define MAX_READERS MAXIMUM_WAIT_OBJECTS #if QT_VERSION >= 0x050000 #define QT_WA(unicode, ansi) unicode #endif Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) { if (mutexname.isEmpty()) { QFileInfo fi(*this); mutexname = QString::fromLatin1(MUTEX_PREFIX) + fi.absoluteFilePath().toLower(); } QString mname(mutexname); if (idx >= 0) mname += QString::number(idx); Qt::HANDLE mutex; if (doCreate) { QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); return 0; } } else { QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { if (GetLastError() != ERROR_FILE_NOT_FOUND) qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); return 0; } } return mutex; } bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock) { Q_ASSERT(mutex); DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0); switch (res) { case WAIT_OBJECT_0: case WAIT_ABANDONED: return true; break; case WAIT_TIMEOUT: break; default: qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed"); } return false; } bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); if (!wmutex && !(wmutex = getMutexHandle(-1, true))) return false; if (!waitMutex(wmutex, block)) return false; if (mode == ReadLock) { int idx = 0; for (; idx < MAX_READERS; idx++) { rmutex = getMutexHandle(idx, false); if (!rmutex || waitMutex(rmutex, false)) break; CloseHandle(rmutex); } bool ok = true; if (idx >= MAX_READERS) { qWarning("QtLockedFile::lock(): too many readers"); rmutex = 0; ok = false; } else if (!rmutex) { rmutex = getMutexHandle(idx, true); if (!rmutex || !waitMutex(rmutex, false)) ok = false; } if (!ok && rmutex) { CloseHandle(rmutex); rmutex = 0; } ReleaseMutex(wmutex); if (!ok) return false; } else { Q_ASSERT(rmutexes.isEmpty()); for (int i = 0; i < MAX_READERS; i++) { Qt::HANDLE mutex = getMutexHandle(i, false); if (mutex) rmutexes.append(mutex); } if (rmutexes.size()) { DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(), TRUE, block ? INFINITE : 0); if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) { if (res != WAIT_TIMEOUT) qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed"); m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky unlock(); return false; } } } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; if (m_lock_mode == ReadLock) { ReleaseMutex(rmutex); CloseHandle(rmutex); rmutex = 0; } else { foreach(Qt::HANDLE mutex, rmutexes) { ReleaseMutex(mutex); CloseHandle(mutex); } rmutexes.clear(); ReleaseMutex(wmutex); } m_lock_mode = QtLockedFile::NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); if (wmutex) CloseHandle(wmutex); } peony-4.0.0.1/3rd-parties/qtsingleapplication/qtlockedfile_unix.cpp0000644000175000017500000000661414551627337024074 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include #include "qtlockedfile.h" bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK; int cmd = block ? F_SETLKW : F_SETLK; int ret = fcntl(handle(), cmd, &fl); if (ret == -1) { if (errno != EINTR && errno != EAGAIN) qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = F_UNLCK; int ret = fcntl(handle(), F_SETLKW, &fl); if (ret == -1) { qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); } peony-4.0.0.1/3rd-parties/qtsingleapplication/qtlockedfile.h0000644000175000017500000000630714551627337022475 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCKEDFILE_H #define QTLOCKEDFILE_H #include #ifdef Q_OS_WIN #include #endif #if defined(Q_OS_WIN) # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) # define QT_QTLOCKEDFILE_EXPORT # elif defined(QT_QTLOCKEDFILE_IMPORT) # if defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # endif # define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport) # elif defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport) # endif #else # define QT_QTLOCKEDFILE_EXPORT #endif namespace QtLP_Private { class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile { public: enum LockMode { NoLock = 0, ReadLock, WriteLock }; QtLockedFile(); QtLockedFile(const QString &name); ~QtLockedFile(); bool open(OpenMode mode); bool lock(LockMode mode, bool block = true); bool unlock(); bool isLocked() const; LockMode lockMode() const; private: #ifdef Q_OS_WIN Qt::HANDLE wmutex; Qt::HANDLE rmutex; QVector rmutexes; QString mutexname; Qt::HANDLE getMutexHandle(int idx, bool doCreate); bool waitMutex(Qt::HANDLE mutex, bool doBlock); #endif LockMode m_lock_mode; }; } #endif peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsinglecoreapplication.pri0000644000175000017500000000050414551627337025306 0ustar fengfengINCLUDEPATH += $$PWD DEPENDPATH += $$PWD HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp QT *= network win32:contains(TEMPLATE, lib):contains(CONFIG, shared) { DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport) } peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsingleapplication.cpp0000644000175000017500000002701214551627337024430 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsingleapplication.h" #include "qtlocalpeer.h" #include /*! \class QtSingleApplication qtsingleapplication.h \brief The QtSingleApplication class provides an API to detect and communicate with running instances of an application. This class allows you to create applications where only one instance should be running at a time. I.e., if the user tries to launch another instance, the already running instance will be activated instead. Another usecase is a client-server system, where the first started instance will assume the role of server, and the later instances will act as clients of that server. By default, the full path of the executable file is used to determine whether two processes are instances of the same application. You can also provide an explicit identifier string that will be compared instead. The application should create the QtSingleApplication object early in the startup phase, and call isRunning() to find out if another instance of this application is already running. If isRunning() returns false, it means that no other instance is running, and this instance has assumed the role as the running instance. In this case, the application should continue with the initialization of the application user interface before entering the event loop with exec(), as normal. The messageReceived() signal will be emitted when the running application receives messages from another instance of the same application. When a message is received it might be helpful to the user to raise the application so that it becomes visible. To facilitate this, QtSingleApplication provides the setActivationWindow() function and the activateWindow() slot. If isRunning() returns true, another instance is already running. It may be alerted to the fact that another instance has started by using the sendMessage() function. Also data such as startup parameters (e.g. the name of the file the user wanted this new instance to open) can be passed to the running instance with this function. Then, the application should terminate (or enter client mode). If isRunning() returns true, but sendMessage() fails, that is an indication that the running instance is frozen. Here's an example that shows how to convert an existing application to use QtSingleApplication. It is very simple and does not make use of all QtSingleApplication's functionality (see the examples for that). \code // Original int main(int argc, char **argv) { QApplication app(argc, argv); MyMainWidget mmw; mmw.show(); return app.exec(); } // Single instance int main(int argc, char **argv) { QtSingleApplication app(argc, argv); if (app.isRunning()) return !app.sendMessage(someDataString); MyMainWidget mmw; app.setActivationWindow(&mmw); mmw.show(); return app.exec(); } \endcode Once this QtSingleApplication instance is destroyed (normally when the process exits or crashes), when the user next attempts to run the application this instance will not, of course, be encountered. The next instance to call isRunning() or sendMessage() will assume the role as the new running instance. For console (non-GUI) applications, QtSingleCoreApplication may be used instead of this class, to avoid the dependency on the QtGui library. \sa QtSingleCoreApplication */ void QtSingleApplication::sysInit(const QString &appId) { actWin = 0; peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a GUIenabled are passed on to the QAppliation constructor. If you are creating a console application (i.e. setting \a GUIenabled to false), you may consider using QtSingleCoreApplication instead. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled) : QApplication(argc, argv, GUIenabled) { sysInit(); } /*! Creates a QtSingleApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv) : QApplication(argc, argv) { sysInit(appId); } #if QT_VERSION < 0x050000 /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a type are passed on to the QAppliation constructor. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type) : QApplication(argc, argv, type) { sysInit(); } # if defined(Q_WS_X11) /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be \a appId. \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(appId); } # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleApplication::id() const { return peer->applicationId(); } /*! Sets the activation window of this application to \a aw. The activation window is the widget that will be activated by activateWindow(). This is typically the application's main window. If \a activateOnMessage is true (the default), the window will be activated automatically every time a message is received, just prior to the messageReceived() signal being emitted. \sa activateWindow(), messageReceived() */ void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) { actWin = aw; if (activateOnMessage) connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); else disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); } /*! Returns the applications activation window if one has been set by calling setActivationWindow(), otherwise returns 0. \sa setActivationWindow() */ QWidget* QtSingleApplication::activationWindow() const { return actWin; } /*! De-minimizes, raises, and activates this application's activation window. This function does nothing if no activation window has been set. This is a convenience function to show the user that this application instance has been activated when he has tried to start another instance. This function should typically be called in response to the messageReceived() signal. By default, that will happen automatically, if an activation window has been set. \sa setActivationWindow(), messageReceived(), initialize() */ void QtSingleApplication::activateWindow() { if (actWin) { //actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); actWin->raise(); actWin->activateWindow(); } } /*! \fn void QtSingleApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage(), setActivationWindow(), activateWindow() */ /*! \fn void QtSingleApplication::initialize(bool dummy = true) \obsolete */ peony-4.0.0.1/3rd-parties/qtsingleapplication/qtlockedfile.cpp0000644000175000017500000001374214551627337023031 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" /*! \class QtLockedFile \brief The QtLockedFile class extends QFile with advisory locking functions. A file may be locked in read or write mode. Multiple instances of \e QtLockedFile, created in multiple processes running on the same machine, may have a file locked in read mode. Exactly one instance may have it locked in write mode. A read and a write lock cannot exist simultaneously on the same file. The file locks are advisory. This means that nothing prevents another process from manipulating a locked file using QFile or file system functions offered by the OS. Serialization is only guaranteed if all processes that access the file use QLockedFile. Also, while holding a lock on a file, a process must not open the same file again (through any API), or locks can be unexpectedly lost. The lock provided by an instance of \e QtLockedFile is released whenever the program terminates. This is true even when the program crashes and no destructors are called. */ /*! \enum QtLockedFile::LockMode This enum describes the available lock modes. \value ReadLock A read lock. \value WriteLock A write lock. \value NoLock Neither a read lock nor a write lock. */ /*! Constructs an unlocked \e QtLockedFile object. This constructor behaves in the same way as \e QFile::QFile(). \sa QFile::QFile() */ QtLockedFile::QtLockedFile() : QFile() { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Constructs an unlocked QtLockedFile object with file \a name. This constructor behaves in the same way as \e QFile::QFile(const QString&). \sa QFile::QFile() */ QtLockedFile::QtLockedFile(const QString &name) : QFile(name) { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Opens the file in OpenMode \a mode. This is identical to QFile::open(), with the one exception that the Truncate mode flag is disallowed. Truncation would conflict with the advisory file locking, since the file would be modified before the write lock is obtained. If truncation is required, use resize(0) after obtaining the write lock. Returns true if successful; otherwise false. \sa QFile::open(), QFile::resize() */ bool QtLockedFile::open(OpenMode mode) { if (mode & QIODevice::Truncate) { qWarning("QtLockedFile::open(): Truncate mode not allowed."); return false; } return QFile::open(mode); } /*! Returns \e true if this object has a in read or write lock; otherwise returns \e false. \sa lockMode() */ bool QtLockedFile::isLocked() const { return m_lock_mode != NoLock; } /*! Returns the type of lock currently held by this object, or \e QtLockedFile::NoLock. \sa isLocked() */ QtLockedFile::LockMode QtLockedFile::lockMode() const { return m_lock_mode; } /*! \fn bool QtLockedFile::lock(LockMode mode, bool block = true) Obtains a lock of type \a mode. The file must be opened before it can be locked. If \a block is true, this function will block until the lock is aquired. If \a block is false, this function returns \e false immediately if the lock cannot be aquired. If this object already has a lock of type \a mode, this function returns \e true immediately. If this object has a lock of a different type than \a mode, the lock is first released and then a new lock is obtained. This function returns \e true if, after it executes, the file is locked by this object, and \e false otherwise. \sa unlock(), isLocked(), lockMode() */ /*! \fn bool QtLockedFile::unlock() Releases a lock. If the object has no lock, this function returns immediately. This function returns \e true if, after it executes, the file is not locked by this object, and \e false otherwise. \sa lock(), isLocked(), lockMode() */ /*! \fn QtLockedFile::~QtLockedFile() Destroys the \e QtLockedFile object. If any locks were held, they are released. */ peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsingleapplication.h0000644000175000017500000000761714551627337024106 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLEAPPLICATION_H #define QTSINGLEAPPLICATION_H #include class QtLocalPeer; #if defined(Q_OS_WIN) # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) # define QT_QTSINGLEAPPLICATION_EXPORT # elif defined(QT_QTSINGLEAPPLICATION_IMPORT) # if defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # endif # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport) # elif defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport) # endif #else # define QT_QTSINGLEAPPLICATION_EXPORT #endif class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication { Q_OBJECT public: QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); QtSingleApplication(const QString &id, int &argc, char **argv); #if QT_VERSION < 0x050000 QtSingleApplication(int &argc, char **argv, Type type); # if defined(Q_WS_X11) QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 bool isRunning(); QString id() const; void setActivationWindow(QWidget* aw, bool activateOnMessage = true); QWidget* activationWindow() const; // Obsolete: void initialize(bool dummy = true) { isRunning(); Q_UNUSED(dummy) } public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); void activateWindow(); Q_SIGNALS: void messageReceived(const QString &message); private: void sysInit(const QString &appId = QString()); QtLocalPeer *peer; QWidget *actWin; }; #endif // QTSINGLEAPPLICATION_H peony-4.0.0.1/3rd-parties/qtsingleapplication/QtLockedFile0000644000175000017500000000003214551627337022074 0ustar fengfeng#include "qtlockedfile.h" peony-4.0.0.1/3rd-parties/qtsingleapplication/qtlocalpeer.cpp0000644000175000017500000001555414551627337022701 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlocalpeer.h" #include #include #include #if defined(Q_OS_WIN) #include #include typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); static PProcessIdToSessionId pProcessIdToSessionId = 0; #endif #if defined(Q_OS_UNIX) #include #include #include #endif namespace QtLP_Private { #include "qtlockedfile.cpp" #if defined(Q_OS_WIN) #include "qtlockedfile_win.cpp" #else #include "qtlockedfile_unix.cpp" #endif } const char* QtLocalPeer::ack = "ack"; QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) : QObject(parent), id(appId) { QString prefix = id; if (id.isEmpty()) { id = QCoreApplication::applicationFilePath(); #if defined(Q_OS_WIN) id = id.toLower(); #endif prefix = id.section(QLatin1Char('/'), -1); } prefix.remove(QRegExp("[^a-zA-Z]")); prefix.truncate(6); QByteArray idc = id.toUtf8(); quint16 idNum = qChecksum(idc.constData(), idc.size()); socketName = QLatin1String("qtsingleapp-") + prefix + QLatin1Char('-') + QString::number(idNum, 16); #if defined(Q_OS_WIN) if (!pProcessIdToSessionId) { QLibrary lib("kernel32"); pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId"); } if (pProcessIdToSessionId) { DWORD sessionId = 0; pProcessIdToSessionId(GetCurrentProcessId(), &sessionId); socketName += QLatin1Char('-') + QString::number(sessionId, 16); } #else socketName += QLatin1Char('-') + QString::number(::getuid(), 16); #endif server = new QLocalServer(this); QString lockName = QDir(QDir::tempPath()).absolutePath() + QLatin1Char('/') + socketName + QLatin1String("-lockfile"); lockFile.setFileName(lockName); lockFile.open(QIODevice::ReadWrite); } bool QtLocalPeer::isClient() { if (lockFile.isLocked()) return false; if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) return true; bool res = server->listen(socketName); #if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) // ### Workaround if (!res && server->serverError() == QAbstractSocket::AddressInUseError) { QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName); res = server->listen(socketName); } #endif if (!res) qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString())); QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection())); return false; } bool QtLocalPeer::sendMessage(const QString &message, int timeout) { if (!isClient()) return false; QLocalSocket socket; bool connOk = false; for(int i = 0; i < 2; i++) { // Try twice, in case the other instance is just starting up socket.connectToServer(socketName); connOk = socket.waitForConnected(timeout/2); if (connOk || i) break; int ms = 250; #if defined(Q_OS_WIN) Sleep(DWORD(ms)); #else struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 }; nanosleep(&ts, NULL); #endif } if (!connOk) return false; QByteArray uMsg(message.toUtf8()); QDataStream ds(&socket); ds.writeBytes(uMsg.constData(), uMsg.size()); bool res = socket.waitForBytesWritten(timeout); if (res) { res &= socket.waitForReadyRead(timeout); // wait for ack if (res) res &= (socket.read(qstrlen(ack)) == ack); } return res; } void QtLocalPeer::receiveConnection() { QLocalSocket* socket = server->nextPendingConnection(); if (!socket) return; while (true) { if (socket->state() == QLocalSocket::UnconnectedState) { qWarning("QtLocalPeer: Peer disconnected"); delete socket; socket = nullptr; return; } if (socket->bytesAvailable() >= qint64(sizeof(quint32))) break; socket->waitForReadyRead(); } QDataStream ds(socket); QByteArray uMsg; quint32 remaining; ds >> remaining; uMsg.resize(remaining); int got = 0; char* uMsgBuf = uMsg.data(); do { got = ds.readRawData(uMsgBuf, remaining); remaining -= got; uMsgBuf += got; } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); if (got < 0) { qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); delete socket; socket = nullptr; return; } QString message(QString::fromUtf8(uMsg)); socket->write(ack, qstrlen(ack)); socket->waitForBytesWritten(1000); socket->waitForDisconnected(1000); // make sure client reads ack delete socket; socket = nullptr; Q_EMIT messageReceived(message); //### (might take a long time to return) } peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsinglecoreapplication.h0000644000175000017500000000502514551627337024746 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLECOREAPPLICATION_H #define QTSINGLECOREAPPLICATION_H #include class QtLocalPeer; class QtSingleCoreApplication : public QCoreApplication { Q_OBJECT public: QtSingleCoreApplication(int &argc, char **argv); QtSingleCoreApplication(const QString &id, int &argc, char **argv); bool isRunning(); QString id() const; public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); Q_SIGNALS: void messageReceived(const QString &message); private: QtLocalPeer* peer; }; #endif // QTSINGLECOREAPPLICATION_H peony-4.0.0.1/3rd-parties/qtsingleapplication/qtsinglecoreapplication.cpp0000644000175000017500000001235514551627337025305 0ustar fengfeng/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsinglecoreapplication.h" #include "qtlocalpeer.h" /*! \class QtSingleCoreApplication qtsinglecoreapplication.h \brief A variant of the QtSingleApplication class for non-GUI applications. This class is a variant of QtSingleApplication suited for use in console (non-GUI) applications. It is an extension of QCoreApplication (instead of QApplication). It does not require the QtGui library. The API and usage is identical to QtSingleApplication, except that functions relating to the "activation window" are not present, for obvious reasons. Please refer to the QtSingleApplication documentation for explanation of the usage. A QtSingleCoreApplication instance can communicate to a QtSingleApplication instance if they share the same application id. Hence, this class can be used to create a light-weight command-line tool that sends commands to a GUI application. \sa QtSingleApplication */ /*! Creates a QtSingleCoreApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleCoreApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QCoreAppliation constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleCoreApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleCoreApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleCoreApplication::id() const { return peer->applicationId(); } /*! \fn void QtSingleCoreApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage() */ peony-4.0.0.1/3rd-parties/qtsingleapplication/QtSingleApplication0000644000175000017500000000004114551627337023500 0ustar fengfeng#include "qtsingleapplication.h" peony-4.0.0.1/3rd-parties/SingleApplication/0000755000175000017500000000000014551637202017173 5ustar fengfengpeony-4.0.0.1/3rd-parties/SingleApplication/CMakeLists.txt0000644000175000017500000000253114551627337021744 0ustar fengfengcmake_minimum_required(VERSION 3.1.0) project(SingleApplication) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) # SingleApplication base class set(QAPPLICATION_CLASS QCoreApplication CACHE STRING "Inheritance class for SingleApplication") set_property(CACHE QAPPLICATION_CLASS PROPERTY STRINGS QApplication QGuiApplication QCoreApplication) # Libary target add_library(${PROJECT_NAME} STATIC singleapplication.cpp singleapplication_p.cpp ) # Find dependencies find_package(Qt5Network) if(QAPPLICATION_CLASS STREQUAL QApplication) find_package(Qt5 COMPONENTS Widgets REQUIRED) elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) find_package(Qt5 COMPONENTS Gui REQUIRED) else() find_package(Qt5 COMPONENTS Core REQUIRED) endif() add_compile_definitions(QAPPLICATION_CLASS=${QAPPLICATION_CLASS}) # Link dependencies target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Network) if(QAPPLICATION_CLASS STREQUAL QApplication) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui) else() target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core) endif() if(WIN32) target_link_libraries(${PROJECT_NAME} PRIVATE advapi32) endif() target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) peony-4.0.0.1/3rd-parties/SingleApplication/singleapplication_p.h0000644000175000017500000000615614551627337023410 0ustar fengfeng// The MIT License (MIT) // // Copyright (c) Itay Grudev 2015 - 2016 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // W A R N I N G !!! // ----------------- // // This file is not part of the SingleApplication API. It is used purely as an // implementation detail. This header file may change from version to // version without notice, or may even be removed. // #ifndef SINGLEAPPLICATION_P_H #define SINGLEAPPLICATION_P_H #include #include #include #include "singleapplication.h" struct InstancesInfo { bool primary; quint32 secondary; qint64 primaryPid; quint16 checksum; }; struct ConnectionInfo { explicit ConnectionInfo() : msgLen(0), instanceId(0), stage(0) {} qint64 msgLen; quint32 instanceId; quint8 stage; }; class SingleApplicationPrivate : public QObject { Q_OBJECT public: enum ConnectionType : quint8 { InvalidConnection = 0, NewInstance = 1, SecondaryInstance = 2, Reconnect = 3 }; enum ConnectionStage : quint8 { StageHeader = 0, StageBody = 1, StageConnected = 2, }; Q_DECLARE_PUBLIC(SingleApplication) SingleApplicationPrivate( SingleApplication *q_ptr ); ~SingleApplicationPrivate(); void genBlockServerName(const char *appName); void initializeMemoryBlock(); void startPrimary(); void startSecondary(); void connectToPrimary(int msecs, ConnectionType connectionType ); quint16 blockChecksum(); qint64 primaryPid(); void readInitMessageHeader(QLocalSocket *socket); void readInitMessageBody(QLocalSocket *socket); SingleApplication *q_ptr; QSharedMemory *memory; QLocalSocket *socket; QLocalServer *server; quint32 instanceNumber; QString blockServerName; SingleApplication::Options options; QMap connectionMap; public Q_SLOTS: void slotConnectionEstablished(); void slotDataAvailable( QLocalSocket*, quint32 ); void slotClientConnectionClosed( QLocalSocket*, quint32 ); }; #endif // SINGLEAPPLICATION_P_H peony-4.0.0.1/3rd-parties/SingleApplication/singleapplication.h0000644000175000017500000001134214551637202023052 0ustar fengfeng// The MIT License (MIT) // // Copyright (c) Itay Grudev 2015 - 2018 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. #ifndef SINGLE_APPLICATION_H #define SINGLE_APPLICATION_H #include #include #ifndef QAPPLICATION_CLASS #define QAPPLICATION_CLASS QCoreApplication #endif #include QT_STRINGIFY(QAPPLICATION_CLASS) class SingleApplicationPrivate; /** * @brief The SingleApplication class handles multiple instances of the same * Application * @see QCoreApplication */ class SingleApplication : public QAPPLICATION_CLASS { Q_OBJECT typedef QAPPLICATION_CLASS app_t; public: /** * @brief Mode of operation of SingleApplication. * Whether the block should be user-wide or system-wide and whether the * primary instance should be notified when a secondary instance had been * started. * @note Operating system can restrict the shared memory blocks to the same * user, in which case the User/System modes will have no effect and the * block will be user wide. * @enum */ enum Mode { User = 1 << 0, System = 1 << 1, SecondaryNotification = 1 << 2, ExcludeAppVersion = 1 << 3, ExcludeAppPath = 1 << 4 }; Q_DECLARE_FLAGS(Options, Mode) /** * @brief Intitializes a SingleApplication instance with argc command line * arguments in argv * @arg {int &} argc - Number of arguments in argv * @arg {const char *[]} argv - Supplied command line arguments * @arg {bool} allowSecondary - Whether to start the instance as secondary * if there is already a primary instance. * @arg {Mode} mode - Whether for the SingleApplication block to be applied * User wide or System wide. * @arg {int} timeout - Timeout to wait in milliseconds. * @note argc and argv may be changed as Qt removes arguments that it * recognizes * @note Mode::SecondaryNotification only works if set on both the primary * instance and the secondary instance. * @note The timeout is just a hint for the maximum time of blocking * operations. It does not guarantee that the SingleApplication * initialisation will be completed in given time, though is a good hint. * Usually 4*timeout would be the worst case (fail) scenario. * @see See the corresponding QAPPLICATION_CLASS constructor for reference */ explicit SingleApplication(int &argc, char *argv[], const char *appName = "SingleApplication", bool allowSecondary = false, Options options = Mode::User, int timeout = 1000 ); ~SingleApplication(); /** * @brief Returns if the instance is the primary instance * @returns {bool} */ bool isPrimary(); /** * @brief Returns if the instance is a secondary instance * @returns {bool} */ bool isSecondary(); /** * @brief Returns a unique identifier for the current instance * @returns {qint32} */ quint32 instanceId(); /** * @brief Returns the process ID (PID) of the primary instance * @returns {qint64} */ qint64 primaryPid(); /** * @brief Sends a message to the primary instance. Returns true on success. * @param {int} timeout - Timeout for connecting * @returns {bool} * @note sendMessage() will return false if invoked from the primary * instance. */ bool sendMessage( QByteArray message, int timeout = 100 ); Q_SIGNALS: void instanceStarted(); void receivedMessage( quint32 instanceId, QByteArray message ); private: SingleApplicationPrivate *d_ptr; Q_DECLARE_PRIVATE(SingleApplication) }; Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options) #endif // SINGLE_APPLICATION_H peony-4.0.0.1/3rd-parties/SingleApplication/Windows.md0000644000175000017500000000263614551627337021166 0ustar fengfengWindows Specific Implementations ================================ Setting the foreground window ----------------------------- In the `instanceStarted()` example in the `README` we demonstrated how an application can bring it's primary instance window whenever a second copy of the application is started. On Windows the ability to bring the application windows to the foreground is restricted, see [`AllowSetForegroundWindow()`][AllowSetForegroundWindow] for more details. The background process (the primary instance) can bring its windows to the foreground if it is allowed by the current foreground process (the secondary instance). To bypass this `SingleApplication` must be initialized with the `allowSecondary` parameter set to `true` and the `options` parameter must include `Mode::SecondaryNotification`, See `SingleApplication::Mode` for more details. Here is an example: ```cpp if( app.isSecondary() ) { // This API requires LIBS += User32.lib to be added to the project AllowSetForegroundWindow( DWORD( app.primaryPid() ) ); } if( app.isPrimary() ) { QObject::connect( &app, &SingleApplication::instanceStarted, this, &App::instanceStarted ); } ``` ```cpp void App::instanceStarted() { QApplication::setActiveWindow( [window/widget to set to the foreground] ); } ``` [AllowSetForegroundWindow]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668.aspx peony-4.0.0.1/3rd-parties/SingleApplication/README.md0000644000175000017500000002024214551627337020462 0ustar fengfengSingleApplication ================= This is a replacement of the QtSingleApplication for `Qt5`. Keeps the Primary Instance of your Application and kills each subsequent instances. It can (if enabled) spawn secondary (non-related to the primary) instances and can send data to the primary instance from secondary instances. Usage ----- The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application` class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the default). Further usage is similar to the use of the `Q[Core|Gui]Application` classes. The library sets up a `QLocalServer` and a `QSharedMemory` block. The first instance of your Application is your Primary Instance. It would check if the shared memory block exists and if not it will start a `QLocalServer` and listen for connections. Each subsequent instance of your application would check if the shared memory block exists and if it does, it will connect to the QLocalServer to notify the primary instance that a new instance had been started, after which it would terminate with status code `0`. In the Primary Instance `SingleApplication` would emit the `instanceStarted()` signal upon detecting that a new instance had been started. The library uses `stdlib` to terminate the program with the `exit()` function. You can use the library as if you use any other `QCoreApplication` derived class: ```cpp #include #include int main( int argc, char* argv[] ) { SingleApplication app( argc, argv ); return app.exec(); } ``` To include the library files I would recommend that you add it as a git submodule to your project and include it's contents with a `.pri` file. Here is how: ```bash git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication ``` **Qmake:** Then include the `singleapplication.pri` file in your `.pro` project file. ```qmake include(singleapplication/singleapplication.pri) DEFINES += QAPPLICATION_CLASS=QApplication ``` **CMake:** Then include the subdirectory in your `CMakeLists.txt` project file. ```cmake set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication") add_subdirectory(src/third-party/singleapplication) ``` Also don't forget to specify which `QCoreApplication` class your app is using if it is not `QCoreApplication` as in examples above. The `Instance Started` signal ------------------------ The SingleApplication class implements a `instanceStarted()` signal. You can bind to that signal to raise your application's window when a new instance had been started, for example. ```cpp // window is a QWindow instance QObject::connect( &app, &SingleApplication::instanceStarted, &window, &QWindow::raise ); ``` Using `SingleApplication::instance()` is a neat way to get the `SingleApplication` instance for binding to it's signals anywhere in your program. __Note:__ On Windows the ability to bring the application windows to the foreground is restricted. See [Windows specific implementations](Windows.md) for a workaround and an example implementation. Secondary Instances ------------------- If you want to be able to launch additional Secondary Instances (not related to your Primary Instance) you have to enable that with the third parameter of the `SingleApplication` constructor. The default is `false` meaning no Secondary Instances. Here is an example of how you would start a Secondary Instance send a message with the command line arguments to the primary instance and then shut down. ```cpp int main(int argc, char *argv[]) { SingleApplication app( argc, argv, true ); if( app.isSecondary() ) { app.sendMessage( app.arguments().join(' ')).toUtf8() ); app.exit( 0 ); } return app.exec(); } ``` *__Note:__ A secondary instance won't cause the emission of the `instanceStarted()` signal by default. See `SingleApplication::Mode` for more details.* You can check whether your instance is a primary or secondary with the following methods: ```cpp app.isPrimary(); // or app.isSecondary(); ``` *__Note:__ If your Primary Instance is terminated a newly launched instance will replace the Primary one even if the Secondary flag has been set.* API --- ### Members ```cpp SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100 ) ``` Depending on whether `allowSecondary` is set, this constructor may terminate your app if there is already a primary instance running. Additional `Options` can be specified to set whether the SingleApplication block should work user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be used to notify the primary instance whenever a secondary instance had been started (disabled by default). `timeout` specifies the maximum time in milliseconds to wait for blocking operations. *__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it recognizes.* *__Note:__ `Mode::SecondaryNotification` only works if set on both the primary and the secondary instance.* *__Note:__ Operating system can restrict the shared memory blocks to the same user, in which case the User/System modes will have no effect and the block will be user wide.* --- ```cpp bool SingleApplication::sendMessage( QByteArray message, int timeout = 100 ) ``` Sends `message` to the Primary Instance. Uses `timeout` as a the maximum timeout in milliseconds for blocking functions --- ```cpp bool SingleApplication::isPrimary() ``` Returns if the instance is the primary instance. --- ```cpp bool SingleApplication::isSecondary() ``` Returns if the instance is a secondary instance. --- ```cpp quint32 SingleApplication::instanceId() ``` Returns a unique identifier for the current instance. --- ```cpp qint64 SingleApplication::primaryPid() ``` Returns the process ID (PID) of the primary instance. ### Signals ```cpp void SingleApplication::instanceStarted() ``` Triggered whenever a new instance had been started, except for secondary instances if the `Mode::SecondaryNotification` flag is not specified. --- ```cpp void SingleApplication::receivedMessage( quint32 instanceId, QByteArray message ) ``` Triggered whenever there is a message received from a secondary instance. --- ### Flags ```cpp enum SingleApplication::Mode ``` * `Mode::User` - The SingleApplication block should apply user wide. This adds user specific data to the key used for the shared memory and server name. This is the default functionality. * `Mode::System` – The SingleApplication block applies system-wide. * `Mode::SecondaryNotification` – Whether to trigger `instanceStarted()` even whenever secondary instances are started. * `Mode::ExcludeAppPath` – Excludes the application path from the server name (and memory block) hash. * `Mode::ExcludeAppVersion` – Excludes the application version from the server name (and memory block) hash. *__Note:__ `Mode::SecondaryNotification` only works if set on both the primary and the secondary instance.* *__Note:__ Operating system can restrict the shared memory blocks to the same user, in which case the User/System modes will have no effect and the block will be user wide.* --- Versioning ---------- Each major version introduces either very significant changes or is not backwards compatible with the previous version. Minor versions only add additional features, bug fixes or performance improvements and are backwards compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for more details. Implementation -------------- The library is implemented with a QSharedMemory block which is thread safe and guarantees a race condition will not occur. It also uses a QLocalSocket to notify the main process that a new instance had been spawned and thus invoke the `instanceStarted()` signal and for messaging the primary instance. Additionally the library can recover from being forcefully killed on *nix systems and will reset the memory block given that there are no other instances running. License ------- This library and it's supporting documentation are released under `The MIT License (MIT)` with the exception of the Qt calculator examples which is distributed under the BSD license. peony-4.0.0.1/3rd-parties/SingleApplication/singleapplication.pri0000644000175000017500000000054414551627337023427 0ustar fengfengQT += core network CONFIG += c++11 HEADERS += $$PWD/singleapplication.h \ $$PWD/singleapplication_p.h SOURCES += $$PWD/singleapplication.cpp \ $$PWD/singleapplication_p.cpp INCLUDEPATH += $$PWD win32 { msvc:LIBS += Advapi32.lib gcc:LIBS += -ladvapi32 } DISTFILES += \ $$PWD/README.md \ $$PWD/CHANGELOG.md \ $$PWD/Windows.md peony-4.0.0.1/3rd-parties/SingleApplication/singleapplication_p.cpp0000644000175000017500000002771214551627337023744 0ustar fengfeng// The MIT License (MIT) // // Copyright (c) Itay Grudev 2015 - 2018 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // W A R N I N G !!! // ----------------- // // This file is not part of the SingleApplication API. It is used purely as an // implementation detail. This header file may change from version to // version without notice, or may even be removed. // #include #include #include #include #include #include #include #include #include "singleapplication.h" #include "singleapplication_p.h" #ifdef Q_OS_UNIX #include #include #include #endif #ifdef Q_OS_WIN #include #include #endif SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr ) : q_ptr( q_ptr ) { server = nullptr; socket = nullptr; memory = nullptr; instanceNumber = -1; } SingleApplicationPrivate::~SingleApplicationPrivate() { if( socket != nullptr ) { socket->close(); delete socket; } memory->lock(); InstancesInfo* inst = static_cast(memory->data()); if( server != nullptr ) { server->close(); delete server; inst->primary = false; inst->primaryPid = -1; inst->checksum = blockChecksum(); } memory->unlock(); delete memory; } void SingleApplicationPrivate::genBlockServerName(const char* appName) { QCryptographicHash appData( QCryptographicHash::Sha256 ); appData.addData( appName, 17 ); appData.addData( SingleApplication::app_t::applicationName().toUtf8() ); appData.addData( SingleApplication::app_t::organizationName().toUtf8() ); appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() ); if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) { appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() ); } if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) { #ifdef Q_OS_WIN appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() ); #else appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() ); #endif } // User level block requires a user specific data in the hash if( options & SingleApplication::Mode::User ) { #ifdef Q_OS_WIN wchar_t username [ UNLEN + 1 ]; // Specifies size of the buffer on input DWORD usernameLength = UNLEN + 1; if( GetUserNameW( username, &usernameLength ) ) { appData.addData( QString::fromWCharArray(username).toUtf8() ); } else { appData.addData( qgetenv("USERNAME") ); } #endif #ifdef Q_OS_UNIX QByteArray username; uid_t uid = geteuid(); struct passwd *pw = getpwuid(uid); if( pw ) { username = pw->pw_name; } if( username.isEmpty() ) { username = qgetenv("USER"); } appData.addData(username); #endif } appData.addData(qgetenv("DISPLAY")); // Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with // server naming requirements. blockServerName = appData.result().toBase64().replace("/", "_"); } void SingleApplicationPrivate::initializeMemoryBlock() { InstancesInfo* inst = static_cast( memory->data() ); inst->primary = false; inst->secondary = 0; inst->primaryPid = -1; inst->checksum = blockChecksum(); } void SingleApplicationPrivate::startPrimary() { Q_Q(SingleApplication); // Successful creation means that no main process exists // So we start a QLocalServer to listen for connections QLocalServer::removeServer( blockServerName ); server = new QLocalServer(); // Restrict access to the socket according to the // SingleApplication::Mode::User flag on User level or no restrictions if( options & SingleApplication::Mode::User ) { server->setSocketOptions( QLocalServer::UserAccessOption ); } else { server->setSocketOptions( QLocalServer::WorldAccessOption ); } server->listen( blockServerName ); QObject::connect( server, &QLocalServer::newConnection, this, &SingleApplicationPrivate::slotConnectionEstablished ); // Reset the number of connections InstancesInfo* inst = static_cast ( memory->data() ); inst->primary = true; inst->primaryPid = q->applicationPid(); inst->checksum = blockChecksum(); instanceNumber = 0; } void SingleApplicationPrivate::startSecondary() { } void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType ) { // Connect to the Local Server of the Primary Instance if not already // connected. if( socket == nullptr ) { socket = new QLocalSocket(); } // If already connected - we are done; if( socket->state() == QLocalSocket::ConnectedState ) return; // If not connect if( socket->state() == QLocalSocket::UnconnectedState || socket->state() == QLocalSocket::ClosingState ) { socket->connectToServer( blockServerName ); } // Wait for being connected if( socket->state() == QLocalSocket::ConnectingState ) { socket->waitForConnected( msecs ); } // Initialisation message according to the SingleApplication protocol if( socket->state() == QLocalSocket::ConnectedState ) { // Notify the parent that a new instance had been started; QByteArray initMsg; QDataStream writeStream(&initMsg, QIODevice::WriteOnly); #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) writeStream.setVersion(QDataStream::Qt_5_6); #endif writeStream << blockServerName.toLatin1(); writeStream << static_cast(connectionType); writeStream << instanceNumber; quint16 checksum = qChecksum(initMsg.constData(), static_cast(initMsg.length())); writeStream << checksum; // The header indicates the message length that follows QByteArray header; QDataStream headerStream(&header, QIODevice::WriteOnly); #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) headerStream.setVersion(QDataStream::Qt_5_6); #endif headerStream << static_cast ( initMsg.length() ); socket->write( header ); socket->write( initMsg ); socket->flush(); socket->waitForBytesWritten( msecs ); } } quint16 SingleApplicationPrivate::blockChecksum() { return qChecksum( static_cast ( memory->data() ), offsetof( InstancesInfo, checksum ) ); } qint64 SingleApplicationPrivate::primaryPid() { qint64 pid; memory->lock(); InstancesInfo* inst = static_cast( memory->data() ); pid = inst->primaryPid; memory->unlock(); return pid; } /** * @brief Executed when a connection has been made to the LocalServer */ void SingleApplicationPrivate::slotConnectionEstablished() { QLocalSocket *nextConnSocket = server->nextPendingConnection(); connectionMap.insert(nextConnSocket, ConnectionInfo()); QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose, [nextConnSocket, this]() { auto &info = connectionMap[nextConnSocket]; Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId ); } ); QObject::connect(nextConnSocket, &QLocalSocket::disconnected, [nextConnSocket, this]() { connectionMap.remove(nextConnSocket); nextConnSocket->deleteLater(); } ); QObject::connect(nextConnSocket, &QLocalSocket::readyRead, [nextConnSocket, this]() { auto &info = connectionMap[nextConnSocket]; switch(info.stage) { case StageHeader: readInitMessageHeader(nextConnSocket); break; case StageBody: readInitMessageBody(nextConnSocket); break; case StageConnected: Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId ); break; default: break; }; } ); } void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock ) { if (!connectionMap.contains( sock )) { return; } if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) { return; } QDataStream headerStream( sock ); #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) headerStream.setVersion( QDataStream::Qt_5_6 ); #endif // Read the header to know the message length quint64 msgLen = 0; headerStream >> msgLen; ConnectionInfo &info = connectionMap[sock]; info.stage = StageBody; info.msgLen = msgLen; if ( sock->bytesAvailable() >= (qint64) msgLen ) { readInitMessageBody( sock ); } } void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock ) { Q_Q(SingleApplication); if (!connectionMap.contains( sock )) { return; } ConnectionInfo &info = connectionMap[sock]; if( sock->bytesAvailable() < ( qint64 )info.msgLen ) { return; } // Read the message body QByteArray msgBytes = sock->read(info.msgLen); QDataStream readStream(msgBytes); #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) readStream.setVersion( QDataStream::Qt_5_6 ); #endif // server name QByteArray latin1Name; readStream >> latin1Name; // connection type ConnectionType connectionType = InvalidConnection; quint8 connTypeVal = InvalidConnection; readStream >> connTypeVal; connectionType = static_cast ( connTypeVal ); // instance id quint32 instanceId = 0; readStream >> instanceId; // checksum quint16 msgChecksum = 0; readStream >> msgChecksum; const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast( msgBytes.length() - sizeof( quint16 ) ) ); bool isValid = readStream.status() == QDataStream::Ok && QLatin1String(latin1Name) == blockServerName && msgChecksum == actualChecksum; if( !isValid ) { sock->close(); return; } info.instanceId = instanceId; info.stage = StageConnected; if( connectionType == NewInstance || ( connectionType == SecondaryInstance && options & SingleApplication::Mode::SecondaryNotification ) ) { Q_EMIT q->instanceStarted(); } if (sock->bytesAvailable() > 0) { Q_EMIT this->slotDataAvailable( sock, instanceId ); } } void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId ) { Q_Q(SingleApplication); Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() ); } void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId ) { if( closedSocket->bytesAvailable() > 0 ) Q_EMIT slotDataAvailable( closedSocket, instanceId ); } peony-4.0.0.1/3rd-parties/SingleApplication/LICENSE0000644000175000017500000000223214551627337020207 0ustar fengfengThe MIT License (MIT) Copyright (c) Itay Grudev 2015 - 2016 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Note: Some of the examples include code not distributed under the terms of the MIT License. peony-4.0.0.1/3rd-parties/SingleApplication/CHANGELOG.md0000644000175000017500000001423014551627337021014 0ustar fengfengChangelog ========= __3.0.18__ ---------- * Fallback to standard QApplication class on iOS and Android systems where the library is not supported. __3.0.17__ ---------- * Fixed compilation warning/error caused by `geteuid()` on unix based systems. _Iakov Kirilenko_ * Added CMake support _Hennadii Chernyshchyk_ __3.0.16__ ---------- * Use geteuid and getpwuid to get username on Unix, fallback to environment variable. _Jonas Kvinge_ __3.0.15__ ---------- * Bug Fix: sendMessage() might return false even though data was actually written. _Jonas Kvinge_ __3.0.14__ ---------- * Fixed uninitialised variables in the `SingleApplicationPrivate` constructor. __3.0.13a__ ---------- * Process socket events asynchronously * Fix undefined variable error on Windows _Francis Giraldeau_ __3.0.12a__ ---------- * Removed signal handling. __3.0.11a__ ---------- * Fixed bug where the message sent by the second process was not received correctly when the message is sent immediately following a connection. _Francis Giraldeau_ * Refactored code and implemented shared memory block consistency checks via `qChecksum()` (CRC-16). * Explicit `qWarning` and `qCritical` when the library is unable to initialise correctly. __3.0.10__ ---------- * Removed C style casts and eliminated all clang warnings. Fixed `instanceId` reading from only one byte in the message deserialization. Cleaned up serialization code using `QDataStream`. Changed connection type to use `quint8 enum` rather than `char`. * Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization values to all `ConnectionType` enum cases. _Jedidiah Buck McCready_ __3.0.9__ --------- * Added SingleApplicationPrivate::primaryPid() as a solution to allow bringing the primary window of an application to the foreground on Windows. _Eelco van Dam from Peacs BV_ __3.0.8__ --------- * Bug fix - changed QApplication::instance() to QCoreApplication::instance() _Evgeniy Bazhenov_ __3.0.7a__ ---------- * Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev. * Removed QMutex used for thread safe behaviour. The implementation now uses QCoreApplication::instance() to get an instance to SingleApplication for memory deallocation. __3.0.6a__ ---------- * Reverted GetUserName API usage on Windows. Fixed bug with missing library. * Fixed bug in the Calculator example, preventing it's window to be raised on Windows. Special thanks to Charles Gunawan. __3.0.5a__ ---------- * Fixed a memory leak in the SingleApplicationPrivate destructor. _Sergei Moiseev_ __3.0.4a__ ---------- * Fixed shadow and uninitialised variable warnings. _Paul Walmsley_ __3.0.3a__ ---------- * Removed Microsoft Windows specific code for getting username due to multiple problems and compiler differences on Windows platforms. On Windows the shared memory block in User mode now includes the user's home path (which contains the user's username). * Explicitly getting absolute path of the user's home directory as on Unix a relative path (`~`) may be returned. __3.0.2a__ ---------- * Fixed bug on Windows when username containing wide characters causes the library to crash. _Le Liu_ __3.0.1a__ ---------- * Allows the application path and version to be excluded from the server name hash. The following flags were added for this purpose: * `SingleApplication::Mode::ExcludeAppVersion` * `SingleApplication::Mode::ExcludeAppPath` * Allow a non elevated process to connect to a local server created by an elevated process run by the same user on Windows * Fixes a problem with upper case letters in paths on Windows _Le Liu_ __v3.0a__ --------- * Deprecated secondary instances count. * Added a sendMessage() method to send a message to the primary instance. * Added a receivedMessage() signal, emitted when a message is received from a secondary instance. * The SingleApplication constructor's third parameter is now a bool specifying if the current instance should be allowed to run as a secondary instance if there is already a primary instance. * The SingleApplication constructor accept a fourth parameter specifying if the SingleApplication block should be User-wide or System-wide. * SingleApplication no longer relies on `applicationName` and `organizationName` to be set. It instead concatenates all of the following data and computes a `SHA256` hash which is used as the key of the `QSharedMemory` block and the `QLocalServer`. Since at least `applicationFilePath` is always present there is no need to explicitly set any of the following prior to initialising `SingleApplication`. * `QCoreApplication::applicationName` * `QCoreApplication::applicationVersion` * `QCoreApplication::applicationFilePath` * `QCoreApplication::organizationName` * `QCoreApplication::organizationDomain` * User name or home directory path if in User mode * The primary instance is no longer notified when a secondary instance had been started by default. A `Mode` flag for this feature exists. * Added `instanceNumber()` which represents a unique identifier for each secondary instance started. When called from the primary instance will return `0`. __v2.4__ -------- * Stability improvements * Support for secondary instances. * The library now recovers safely after the primary process has crashed and the shared memory had not been deleted. __v2.3__ -------- * Improved pimpl design and inheritance safety. _Vladislav Pyatnichenko_ __v2.2__ -------- * The `QAPPLICATION_CLASS` macro can now be defined in the file including the Single Application header or with a `DEFINES+=` statement in the project file. __v2.1__ -------- * A race condition can no longer occur when starting two processes nearly simultaneously. Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3) __v2.0__ -------- * SingleApplication is now being passed a reference to `argc` instead of a copy. Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1) * Improved documentation. peony-4.0.0.1/3rd-parties/SingleApplication/singleapplication.cpp0000644000175000017500000001320514551637202023405 0ustar fengfeng// The MIT License (MIT) // // Copyright (c) Itay Grudev 2015 - 2018 // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. #include #include #include #include #include #include "singleapplication.h" #include "singleapplication_p.h" /** * @brief Constructor. Checks and fires up LocalServer or closes the program * if another instance already exists * @param argc * @param argv * @param {bool} allowSecondaryInstances */ SingleApplication::SingleApplication(int &argc, char *argv[], const char* appName, bool allowSecondary, Options options, int timeout ) : app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) ) { Q_D(SingleApplication); #if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) // On Android and iOS since the library is not supported fallback to // standard QApplication behaviour by simply returning at this point. qWarning() << "SingleApplication is not supported on Android and iOS systems."; return; #endif // Store the current mode of the program d->options = options; // Generating an application ID used for identifying the shared memory // block and QLocalServer d->genBlockServerName(appName); #ifdef Q_OS_UNIX // By explicitly attaching it and then deleting it we make sure that the // memory is deleted even after the process has crashed on Unix. d->memory = new QSharedMemory( d->blockServerName ); d->memory->attach(); delete d->memory; #endif // Guarantee thread safe behaviour with a shared memory block. d->memory = new QSharedMemory( d->blockServerName ); // Create a shared memory block if( d->memory->create( sizeof( InstancesInfo ) ) ) { // Initialize the shared memory block d->memory->lock(); d->initializeMemoryBlock(); d->memory->unlock(); } else { // Attempt to attach to the memory segment if( ! d->memory->attach() ) { qCritical() << "SingleApplication: Unable to attach to shared memory block."; qCritical() << d->memory->errorString(); delete d; ::exit( EXIT_FAILURE ); } } InstancesInfo* inst = static_cast( d->memory->data() ); QTime time; time.start(); // Make sure the shared memory block is initialised and in consistent state while( true ) { d->memory->lock(); if( d->blockChecksum() == inst->checksum ) break; if( time.elapsed() > 5000 ) { qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure."; d->initializeMemoryBlock(); } d->memory->unlock(); // Random sleep here limits the probability of a collision between two racing apps qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits::max() ); QThread::sleep( 8 + static_cast ( static_cast ( qrand() ) / RAND_MAX * 10 ) ); } if( inst->primary == false) { d->startPrimary(); d->memory->unlock(); return; } // Check if another instance can be started if( allowSecondary ) { inst->secondary += 1; inst->checksum = d->blockChecksum(); d->instanceNumber = inst->secondary; d->startSecondary(); if( d->options & Mode::SecondaryNotification ) { d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance ); } d->memory->unlock(); return; } d->memory->unlock(); d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance ); delete d; ::exit( EXIT_SUCCESS ); } /** * @brief Destructor */ SingleApplication::~SingleApplication() { Q_D(SingleApplication); delete d; } bool SingleApplication::isPrimary() { Q_D(SingleApplication); return d->server != nullptr; } bool SingleApplication::isSecondary() { Q_D(SingleApplication); return d->server == nullptr; } quint32 SingleApplication::instanceId() { Q_D(SingleApplication); return d->instanceNumber; } qint64 SingleApplication::primaryPid() { Q_D(SingleApplication); return d->primaryPid(); } bool SingleApplication::sendMessage( QByteArray message, int timeout ) { Q_D(SingleApplication); // Nobody to connect to if( isPrimary() ) return false; // Make sure the socket is connected d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect ); d->socket->write( message ); bool dataWritten = d->socket->waitForBytesWritten( timeout ); d->socket->flush(); return dataWritten; } peony-4.0.0.1/peony-qt-plugin-test/0000755000175000017500000000000014551627337015466 5ustar fengfengpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/0000755000175000017500000000000014551627337025110 5ustar fengfeng././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-test-plugin.cpppeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-t0000644000175000017500000000312014551627337032441 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "directory-view-extensions-test-plugin.h" #include "directory-view-widget.h" #include #include #include using namespace Peony; DirectoryViewExtensionsTestPlugin::DirectoryViewExtensionsTestPlugin(QObject *parent) : QObject(parent) { } //void DirectoryViewExtensionsTestPlugin::fillDirectoryView(DirectoryViewWidget *view) //{ // auto layout = new QVBoxLayout(view); // layout->addWidget(new QLabel("test icon view", nullptr)); // view->setLayout(layout); //} DirectoryViewWidget *DirectoryViewExtensionsTestPlugin::create() { qDebug()<<"create directory view"; auto w = new DirectoryViewWidget; auto layout = new QVBoxLayout(w); layout->addWidget(new QLabel("test directory view", w)); w->setLayout(layout); return w; } ././@LongLink0000644000000000000000000000016100000000000011601 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-test-plugin.hpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-t0000644000175000017500000000471714551627337032456 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef DIRECTORYVIEWEXTENSIONSTESTPLUGIN_H #define DIRECTORYVIEWEXTENSIONSTESTPLUGIN_H #include "directory-view-extensions-plugin-test_global.h" #include "directory-view-plugin-iface2.h" namespace Peony { class DIRECTORYVIEWEXTENSIONSPLUGINTESTSHARED_EXPORT DirectoryViewExtensionsTestPlugin : public QObject, public DirectoryViewPluginIface2 { Q_OBJECT Q_PLUGIN_METADATA(IID DirectoryViewPluginIface2_iid) Q_INTERFACES(Peony::DirectoryViewPluginIface2) public: explicit DirectoryViewExtensionsTestPlugin(QObject *parent = nullptr); //plugin implement const QString name() override { return QObject::tr("Directory View Plugin"); } PluginType pluginType() override { return PluginType::DirectoryViewPlugin2; } const QString description() override { return QObject::tr("Show the folder children as icons."); } const QIcon icon() override { return QIcon::fromTheme("folder"); } void setEnable(bool enable) override { Q_UNUSED(enable) } bool isEnable() override { return true; } //directory view plugin implemeny QString viewIdentity() override { return QObject::tr("Directory View Plugin"); } QIcon viewIcon() override { return QIcon::fromTheme("folder"); } bool supportUri(const QString &uri) override { return !uri.isEmpty(); } //void fillDirectoryView(DirectoryViewWidget *view) override; DirectoryViewWidget *create() override; int zoom_level_hint() override { return 0; } int priority(const QString &) override { return -1; } }; } #endif // DIRECTORYVIEWEXTENSIONSTESTPLUGIN_H ././@LongLink0000644000000000000000000000017000000000000011601 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-plugin-test_global.hpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-p0000644000175000017500000000227114551627337032443 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef DIRECTORYVIEWEXTENSIONSPLUGINTEST_GLOBAL_H #define DIRECTORYVIEWEXTENSIONSPLUGINTEST_GLOBAL_H #include #if defined(DIRECTORYVIEWEXTENSIONSPLUGINTEST_LIBRARY) # define DIRECTORYVIEWEXTENSIONSPLUGINTESTSHARED_EXPORT Q_DECL_EXPORT #else # define DIRECTORYVIEWEXTENSIONSPLUGINTESTSHARED_EXPORT Q_DECL_IMPORT #endif #endif // DIRECTORYVIEWEXTENSIONSPLUGINTEST_GLOBAL_H ././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-plugin-test.propeony-4.0.0.1/peony-qt-plugin-test/directory-view-extensions-plugin-test/directory-view-extensions-p0000644000175000017500000000262214551627337032443 0ustar fengfeng#------------------------------------------------- # # Project created by QtCreator 2019-11-18T09:07:42 # #------------------------------------------------- QT += widgets TARGET = directory-view-extensions-plugin-test TEMPLATE = lib DEFINES += DIRECTORYVIEWEXTENSIONSPLUGINTEST_LIBRARY # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 include(../../plugin-iface/plugin-iface.pri) include(../../libpeony-qt/libpeony-qt-header.pri) PKGCONFIG +=gio-2.0 glib-2.0 gio-unix-2.0 CONFIG += c++11 link_pkgconfig no_keywords LIBS += -L$$PWD/../../libpeony-qt/ -lpeony-qt SOURCES += \ directory-view-extensions-test-plugin.cpp HEADERS += \ directory-view-extensions-test-plugin.h \ directory-view-extensions-plugin-test_global.h unix { target.path = $$[QT_INSTALL_LIBS]/peony-extensions INSTALLS += target } peony-4.0.0.1/peony-qt-plugin-test/gtk2-style-enhanced-plugin/0000755000175000017500000000000014551627337022532 5ustar fengfengpeony-4.0.0.1/peony-qt-plugin-test/gtk2-style-enhanced-plugin/gtk2-style-enhanced-plugin_global.h0000644000175000017500000000217514551627337031274 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef GTK2STYLEENHANCEDPLUGIN_GLOBAL_H #define GTK2STYLEENHANCEDPLUGIN_GLOBAL_H #include #if defined(GTK2STYLEENHANCEDPLUGIN_LIBRARY) # define GTK2STYLEENHANCEDPLUGINSHARED_EXPORT Q_DECL_EXPORT #else # define GTK2STYLEENHANCEDPLUGINSHARED_EXPORT Q_DECL_IMPORT #endif #endif // GTK2STYLEENHANCEDPLUGIN_GLOBAL_H peony-4.0.0.1/peony-qt-plugin-test/gtk2-style-enhanced-plugin/gtk2-style-enhanced-plugin.pro0000644000175000017500000000256514551627337030330 0ustar fengfeng#------------------------------------------------- # # Project created by QtCreator 2019-11-13T10:58:32 # #------------------------------------------------- QT += widgets TARGET = gtk2-style-enhanced-plugin TEMPLATE = lib DEFINES += GTK2STYLEENHANCEDPLUGIN_LIBRARY # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 include(../../plugin-iface/plugin-iface.pri) include(../../libpeony-qt/libpeony-qt-header.pri) PKGCONFIG +=gio-2.0 glib-2.0 gio-unix-2.0 CONFIG += c++11 link_pkgconfig no_keywords LIBS += -L$$PWD/../../libpeony-qt/ -lpeony-qt SOURCES += \ gtk2-style-enhanced-plugin.cpp HEADERS += \ gtk2-style-enhanced-plugin.h \ gtk2-style-enhanced-plugin_global.h DESTDIR += ../../testdir unix { target.path = $$[QT_INSTALL_LIBS]/peony-extensions INSTALLS += target } peony-4.0.0.1/peony-qt-plugin-test/gtk2-style-enhanced-plugin/gtk2-style-enhanced-plugin.cpp0000644000175000017500000000211014551627337030274 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "gtk2-style-enhanced-plugin.h" #include "complementary-style.h" using namespace Peony; Gtk2StyleEnhancedPlugin::Gtk2StyleEnhancedPlugin(QObject *parent) : QObject(parent) { } QProxyStyle *Gtk2StyleEnhancedPlugin::getStyle() { return ComplementaryStyle::getStyle(); } peony-4.0.0.1/peony-qt-plugin-test/gtk2-style-enhanced-plugin/gtk2-style-enhanced-plugin.h0000644000175000017500000000367014551627337027755 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef GTK2STYLEENHANCEDPLUGIN_H #define GTK2STYLEENHANCEDPLUGIN_H #include "gtk2-style-enhanced-plugin_global.h" #include #include #include "style-plugin-iface.h" namespace Peony { class GTK2STYLEENHANCEDPLUGINSHARED_EXPORT Gtk2StyleEnhancedPlugin : public QObject, public StylePluginIface { Q_OBJECT Q_PLUGIN_METADATA(IID StylePluginIface_iid) Q_INTERFACES(Peony::StylePluginIface) public: explicit Gtk2StyleEnhancedPlugin(QObject *parent = nullptr); PluginInterface::PluginType pluginType() { return PluginInterface::StylePlugin; } const QString name() { return tr("Gtk theme enhanced extension"); } const QString description() { return tr("Improve the gtk-themed controls' style and painting"); } const QIcon icon() { return QIcon::fromTheme("utilities-terminal-symbolic"); } void setEnable(bool enable) { m_enable = enable; } bool isEnable() { return m_enable; } int defaultPriority() { return 0; } QProxyStyle *getStyle(); private: bool m_enable; }; } #endif // GTK2STYLEENHANCEDPLUGIN_H peony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-example/0000755000175000017500000000000014551627337023131 5ustar fengfengpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-example/menu-plugin-example.h0000644000175000017500000000373214551627337027200 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef MENUPLUGINEXAMPLE_H #define MENUPLUGINEXAMPLE_H #include "peony-qt-menu-plugin-example_global.h" #include #include #include "menu-plugin-iface.h" namespace Peony { class PEONYQTMENUPLUGINEXAMPLESHARED_EXPORT MenuPluginExample : public QObject, public MenuPluginInterface { Q_OBJECT Q_PLUGIN_METADATA(IID MenuPluginInterface_iid) Q_INTERFACES(Peony::MenuPluginInterface) public: explicit MenuPluginExample(QObject *parent = nullptr); PluginInterface::PluginType pluginType() override { return PluginInterface::MenuPlugin; } const QString name() override { return "testMenuPlugin1"; } const QString description() override { return "This is a menu type test plugin"; } const QIcon icon() override { return QIcon::fromTheme("search"); } void setEnable(bool enable) override { m_enable = enable; } bool isEnable() override { return m_enable; } QString testPlugin() override; QList menuActions(Types types, const QString &uri, const QStringList &selectionUris) override; private: bool m_enable; }; } #endif // MENUPLUGINEXAMPLE_H peony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-example/peony-qt-menu-plugin-example.pro0000644000175000017500000000227014551627337031317 0ustar fengfeng#------------------------------------------------- # # Project created by QtCreator 2019-10-29T09:29:17 # #------------------------------------------------- QT += widgets TARGET = peony-qt-menu-plugin-example TEMPLATE = lib DEFINES += PEONYQTMENUPLUGINEXAMPLE_LIBRARY # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 include(../../plugin-iface/plugin-iface.pri) SOURCES += \ menu-plugin-example.cpp HEADERS += \ menu-plugin-example.h \ peony-qt-menu-plugin-example_global.h DESTDIR += ../../testdir unix { target.path = $$[QT_INSTALL_LIBS]/peony-extensions INSTALLS += target } peony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-example/menu-plugin-example.cpp0000644000175000017500000000374414551627337027536 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "menu-plugin-example.h" #include #include #include using namespace Peony; MenuPluginExample::MenuPluginExample(QObject *parent) : QObject(parent) { } QString MenuPluginExample::testPlugin() { qDebug()<<"menu test plugin1"; return QString("MenuPluginExample"); } QList MenuPluginExample::menuActions(Types types, const QString &uri, const QStringList &selectionUris) { //return QList(); Q_UNUSED(types); Q_UNUSED(uri); Q_UNUSED(selectionUris); QList actions; QAction *action = new QAction(QIcon::fromTheme("search"), tr("plugin-sub-menu test")); actions<parentWidget()); connect(action, &QAction::destroyed, [=]() { qDebug()<<"delete sub menu"; menu->deleteLater(); }); menu->addAction("sub test1"); menu->addSeparator(); menu->addAction("sub test2"); action->setMenu(menu); QAction *action2 = new QAction(QIcon::fromTheme("media-eject"), tr("plugin-action test")); connect(action2, &QAction::triggered, [=]() { qDebug()<<"action triggered"; }); actions<. * * Authors: Yue Lan * */ #ifndef PEONYQTMENUPLUGINEXAMPLE_GLOBAL_H #define PEONYQTMENUPLUGINEXAMPLE_GLOBAL_H #include #if defined(PEONYQTMENUPLUGINEXAMPLE_LIBRARY) # define PEONYQTMENUPLUGINEXAMPLESHARED_EXPORT Q_DECL_EXPORT #else # define PEONYQTMENUPLUGINEXAMPLESHARED_EXPORT Q_DECL_IMPORT #endif #endif // PEONYQTMENUPLUGINEXAMPLE_GLOBAL_H peony-4.0.0.1/peony-qt-plugin-test/peony-qt-plugin-test.pro0000644000175000017500000000042514551627337022236 0ustar fengfengTEMPLATE = subdirs SUBDIRS += \ peony-qt-preview-file-content-plugin \ properties-window-tab-page-plugin-example \ peony-qt-menu-plugin-example \ #peony-qt-menu-plugin-mate-terminal \ #gtk2-style-enhanced-plugin \ directory-view-extensions-plugin-test peony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/0000755000175000017500000000000014551627337024235 5ustar fengfengpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/translations/0000755000175000017500000000000014551637202026746 5ustar fengfeng././@LongLink0000644000000000000000000000017500000000000011606 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/translations/peony-qt-mate-terminal-extension_zh_CN.qmpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/translations/peony-qt-mate-ter0000644000175000017500000000052714551637202032165 0ustar fengfeng Peony::MateTerminalMenuPlugin Open Directory in Terminal Dizini Terminalde Aç Peony-Qt Mate Terminal Menu Extension Peony-Qt Mate Terminal Menü Eklentisi Open Terminal with menu. Terminali menü ile aç ././@LongLink0000644000000000000000000000017500000000000011606 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/translations/peony-qt-mate-terminal-extension_zh_CN.tspeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/translations/peony-qt-mate-ter0000644000175000017500000000157314551627337032177 0ustar fengfeng Peony::MateTerminalMenuPlugin Open Directory in Terminal 打开终端 Peony-Qt Mate Terminal Menu Extension UKUI文件管理器终端扩展 Open Terminal with menu. 使用右键菜单打开终端。 ././@LongLink0000644000000000000000000000015500000000000011604 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/peony-qt-menu-plugin-mate-terminal.qrcpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/peony-qt-menu-plugin-mate-term0000644000175000017500000000032114551627337032057 0ustar fengfeng translations/peony-qt-mate-terminal-extension_zh_CN.ts translations/peony-qt-mate-terminal-extension_zh_CN.qm ././@LongLink0000644000000000000000000000016200000000000011602 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/peony-qt-menu-plugin-mate-terminal_global.hpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/peony-qt-menu-plugin-mate-term0000644000175000017500000000224114551627337032062 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PEONYQTMENUPLUGINMATETERMINAL_GLOBAL_H #define PEONYQTMENUPLUGINMATETERMINAL_GLOBAL_H #include #if defined(PEONYQTMENUPLUGINMATETERMINAL_LIBRARY) # define PEONYQTMENUPLUGINMATETERMINALSHARED_EXPORT Q_DECL_EXPORT #else # define PEONYQTMENUPLUGINMATETERMINALSHARED_EXPORT Q_DECL_IMPORT #endif #endif // PEONYQTMENUPLUGINMATETERMINAL_GLOBAL_H peony-4.0.0.1/peony-qt-plugin-test/peony-qt-menu-plugin-mate-terminal/mate-terminal-menu-plugin.cpp0000644000175000017500000000601014551627337031733 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "mate-terminal-menu-plugin.h" #include "file-info.h" #include #include #include #include #include #include #include using namespace Peony; MateTerminalMenuPlugin::MateTerminalMenuPlugin(QObject *parent) : QObject (parent) { QTranslator *t = new QTranslator(this); qDebug()<<"\n\n\n\n\n\n\ntranslate:"<load(":/translations/peony-qt-mate-terminal-extension_"+QLocale::system().name()); QApplication::installTranslator(t); } void openTerminal(const QString &uri) { qDebug()<<"triggered"<message; g_error_free(err); err = nullptr; } g_strfreev (argv); } QList MateTerminalMenuPlugin::menuActions(Types types, const QString &uri, const QStringList &selectionUris) { QList actions; if (types == MenuPluginInterface::DirectoryView || types == MenuPluginInterface::DesktopWindow) { if (selectionUris.isEmpty()) { QAction *dirAction = new QAction(QIcon::fromTheme("utilities-terminal-symbolic"), tr("Open Directory in Terminal")); dirAction->connect(dirAction, &QAction::triggered, [=]() { openTerminal(uri); }); actions<isDir()) { QAction *dirAction = new QAction(QIcon::fromTheme("utilities-terminal-symbolic"), tr("Open Directory in Terminal")); dirAction->connect(dirAction, &QAction::triggered, [=]() { openTerminal(selectionUris.first()); }); actions<. * * Authors: Yue Lan * */ #ifndef MATETERMINALMENUPLUGIN_H #define MATETERMINALMENUPLUGIN_H #include "peony-qt-menu-plugin-mate-terminal_global.h" #include #include #include "menu-plugin-iface.h" namespace Peony { class PEONYQTMENUPLUGINMATETERMINALSHARED_EXPORT MateTerminalMenuPlugin : public QObject, public MenuPluginInterface { Q_OBJECT Q_PLUGIN_METADATA(IID MenuPluginInterface_iid) Q_INTERFACES(Peony::MenuPluginInterface) public: explicit MateTerminalMenuPlugin(QObject *parent = nullptr); PluginInterface::PluginType pluginType() override { return PluginInterface::MenuPlugin; } const QString name() override { return tr("Peony-Qt Mate Terminal Menu Extension"); } const QString description() override { return tr("Open Terminal with menu."); } const QIcon icon() override { return QIcon::fromTheme("utilities-terminal-symbolic"); } void setEnable(bool enable) override { m_enable = enable; } bool isEnable() override { return m_enable; } QString testPlugin() override { return "test"; } QList menuActions(Types types, const QString &uri, const QStringList &selectionUris) override; private: bool m_enable; }; } #endif // MATETERMINALMENUPLUGIN_H peony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/0000755000175000017500000000000014551627337025572 5ustar fengfeng././@LongLink0000644000000000000000000000017300000000000011604 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-page-plugin-example.propeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-p0000644000175000017500000000241114551627337032215 0ustar fengfeng#------------------------------------------------- # # Project created by QtCreator 2019-10-24T13:53:42 # #------------------------------------------------- QT += widgets TARGET = properties-window-tab-page-plugin-example TEMPLATE = lib DEFINES += PROPERTIESWINDOWTABPAGEPLUGINEXAMPLE_LIBRARY # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 include(../../plugin-iface/plugin-iface.pri) SOURCES += \ properties-window-tab-page-examplefactory.cpp HEADERS += \ properties-window-tab-page-examplefactory.h \ properties-window-tab-page-plugin-example_global.h DESTDIR = ../../testdir unix { target.path = $$[QT_INSTALL_LIBS]/peony-extensions INSTALLS += target } ././@LongLink0000644000000000000000000000017300000000000011604 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-page-examplefactory.cpppeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-p0000644000175000017500000000262414551627337032223 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "properties-window-tab-page-examplefactory.h" #include PropertiesWindowTabPageExampleFactory::PropertiesWindowTabPageExampleFactory(QObject *parent) : QObject (parent) { } PropertiesWindowTabPageExampleFactory::~PropertiesWindowTabPageExampleFactory() { } QWidget *PropertiesWindowTabPageExampleFactory::createTabPage(const QStringList &uris) { QStringList l = uris; auto label = new QLabel(tr("This page is an external plugin page.\n" "uris:\n" "%1").arg(l.join(",\n"))); label->setWordWrap(true); return label; } ././@LongLink0000644000000000000000000000020000000000000011573 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-page-plugin-example_global.hpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-p0000644000175000017500000000231314551627337032216 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PROPERTIESWINDOWTABPAGEPLUGINEXAMPLE_GLOBAL_H #define PROPERTIESWINDOWTABPAGEPLUGINEXAMPLE_GLOBAL_H #include #if defined(PROPERTIESWINDOWTABPAGEPLUGINEXAMPLE_LIBRARY) # define PROPERTIESWINDOWTABPAGEPLUGINEXAMPLESHARED_EXPORT Q_DECL_EXPORT #else # define PROPERTIESWINDOWTABPAGEPLUGINEXAMPLESHARED_EXPORT Q_DECL_IMPORT #endif #endif // PROPERTIESWINDOWTABPAGEPLUGINEXAMPLE_GLOBAL_H ././@LongLink0000644000000000000000000000017100000000000011602 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-page-examplefactory.hpeony-4.0.0.1/peony-qt-plugin-test/properties-window-tab-page-plugin-example/properties-window-tab-p0000644000175000017500000000463714551627337032231 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PROPERTIESWINDOWTABPAGEEXAMPLEFACTORY_H #define PROPERTIESWINDOWTABPAGEEXAMPLEFACTORY_H #include "properties-window-tab-page-plugin-example_global.h" #include "properties-window-tab-page-plugin-iface.h" #include class PROPERTIESWINDOWTABPAGEPLUGINEXAMPLESHARED_EXPORT PropertiesWindowTabPageExampleFactory : public QObject, public Peony::PropertiesWindowTabPagePluginIface { Q_OBJECT Q_PLUGIN_METADATA(IID PropertiesWindowTabPagePluginIface_iid) Q_INTERFACES(Peony::PropertiesWindowTabPagePluginIface) public: explicit PropertiesWindowTabPageExampleFactory(QObject *parent = nullptr); ~PropertiesWindowTabPageExampleFactory() override; PluginInterface::PluginType pluginType() override { return PluginInterface::PropertiesWindowPlugin; } const QString name() override { return "Properties Page Plugin Example"; } const QString description() override { return "This plugin is a factory plugin providing the add-on properties page for peony-qt's properties window"; } const QIcon icon() override { return QIcon::fromTheme("view-paged-symbolic"); } void setEnable(bool enable) override { m_enable = enable; } bool isEnable() override { return m_enable; } int tabOrder() override { return 0; } bool supportUris(const QStringList &uris) override { return true; } QWidget *createTabPage(const QStringList &uris) override; void closeFactory() override { deleteLater(); } private: bool m_enable = true; }; #endif // PROPERTIESWINDOWTABPAGEEXAMPLEFACTORY_H peony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/0000755000175000017500000000000014551627337024602 5ustar fengfengpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page.cpp0000644000175000017500000000256214551627337031356 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "content-preview-page.h" #include #include ContentPreviewPage::ContentPreviewPage(QWidget *parent) : QWidget(parent) { QVBoxLayout *layout = new QVBoxLayout(this); setLayout(layout); m_label = new QLabel(tr("This page is a part of peony-qt extension"), this); layout->addWidget(m_label); } ContentPreviewPage::~ContentPreviewPage() { } void ContentPreviewPage::startPreview() { m_label->setText(m_current_uri); } void ContentPreviewPage::cancel() { m_label->setText(tr("This page is a part of peony-qt extension")); } ././@LongLink0000644000000000000000000000015100000000000011600 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page-factory.cpppeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page-factory0000644000175000017500000000220614551627337032235 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #include "content-preview-page-factory.h" #include "content-preview-page.h" ContentPreviewPageFactory::ContentPreviewPageFactory(QObject *parent) : QObject (parent) { } ContentPreviewPageFactory::~ContentPreviewPageFactory() { } Peony::PreviewPageIface *ContentPreviewPageFactory::createPreviewPage() { return new ContentPreviewPage; } ././@LongLink0000644000000000000000000000016100000000000011601 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/peony-qt-preview-file-content-plugin.propeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/peony-qt-preview-file-conten0000644000175000017500000000252614551627337032166 0ustar fengfeng#------------------------------------------------- # # Project created by QtCreator 2019-10-24T09:25:02 # #------------------------------------------------- QT += widgets #network webengine webenginewidgets webkit webkitwidgets TARGET = peony-qt-preview-file-content-plugin TEMPLATE = lib DEFINES += PEONYQTPREVIEWFILECONTENTPLUGIN_LIBRARY # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 include(../../plugin-iface/plugin-iface.pri) SOURCES += \ content-preview-page-factory.cpp \ content-preview-page.cpp HEADERS += \ content-preview-page-factory.h \ peony-qt-preview-file-content-plugin_global.h \ content-preview-page.h DESTDIR += ../../testdir unix { target.path = $$[QT_INSTALL_LIBS]/peony-extensions INSTALLS += target } peony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page.h0000644000175000017500000000326214551627337031021 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef CONTENTPREVIEWPAGE_H #define CONTENTPREVIEWPAGE_H #include #include "preview-page-plugin-iface.h" class QLabel; class ContentPreviewPage : public QWidget, public Peony::PreviewPageIface { Q_OBJECT public: explicit ContentPreviewPage(QWidget *parent = nullptr); ~ContentPreviewPage() override; void prepare(const QString &uri, PreviewType type) override { m_current_uri = uri; m_current_type = type; } void prepare(const QString &uri) override { m_current_uri = uri; } void startPreview() override; void cancel() override; void closePreviewPage() override { deleteLater(); } signals: public slots: private: QLabel *m_label = nullptr; QString m_current_uri = nullptr; Peony::PreviewPageIface::PreviewType m_current_type = Peony::PreviewPageIface::Other; }; #endif // CONTENTPREVIEWPAGE_H ././@LongLink0000644000000000000000000000014700000000000011605 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page-factory.hpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/content-preview-page-factory0000644000175000017500000000526314551627337032243 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef CONTENTPREVIEWPAGEFACTORY_H #define CONTENTPREVIEWPAGEFACTORY_H #include "peony-qt-preview-file-content-plugin_global.h" #include "preview-page-plugin-iface.h" /*! * \brief The ContentPreviewPageFactory class * * \details This example is showing you how to * implement a preview page plugin for peony-qt. * We should start at implement the PreviewPagePluginIface * with your own factory. * * You have to declare your factory * as PreviewPagePluginIface derived class * and override all virtual method both * Peony::PreviewPagePluginIface and Peony::PluginIface provided. * * \note * You don't need declare the PreviewPageIface as a plugin interface, * But you should aslo implement your own PreviewPage * by deriving Peony::PreviewPageIface for the return value * as this class's createPreviewPage() method. */ class PEONYQTPREVIEWFILECONTENTPLUGINSHARED_EXPORT ContentPreviewPageFactory : public QObject, public Peony::PreviewPagePluginIface { Q_OBJECT Q_PLUGIN_METADATA(IID PreviewPagePluginIface_iid) Q_INTERFACES(Peony::PreviewPagePluginIface) public: explicit ContentPreviewPageFactory(QObject *parent = nullptr); ~ContentPreviewPageFactory() override; PluginInterface::PluginType pluginType() override { return PluginInterface::PreviewPagePlugin; } const QString name() override { return "Preview Page Plugin"; } const QString description() override { return "This plugin is a factory plugin providing the content preview page for FMWindow"; } const QIcon icon() override { return QIcon::fromTheme("ukui-preview-file-details"); } void setEnable(bool enable) override { m_enable = enable; } bool isEnable() override { return m_enable; } Peony::PreviewPageIface *createPreviewPage() override; private: bool m_enable = true; }; #endif // CONTENTPREVIEWPAGEFACTORY_H ././@LongLink0000644000000000000000000000016600000000000011606 Lustar rootrootpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/peony-qt-preview-file-content-plugin_global.hpeony-4.0.0.1/peony-qt-plugin-test/peony-qt-preview-file-content-plugin/peony-qt-preview-file-conten0000644000175000017500000000225514551627337032165 0ustar fengfeng/* * Peony-Qt's Library * * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this library. If not, see . * * Authors: Yue Lan * */ #ifndef PEONYQTPREVIEWFILECONTENTPLUGIN_GLOBAL_H #define PEONYQTPREVIEWFILECONTENTPLUGIN_GLOBAL_H #include #if defined(PEONYQTPREVIEWFILECONTENTPLUGIN_LIBRARY) # define PEONYQTPREVIEWFILECONTENTPLUGINSHARED_EXPORT Q_DECL_EXPORT #else # define PEONYQTPREVIEWFILECONTENTPLUGINSHARED_EXPORT Q_DECL_IMPORT #endif #endif // PEONYQTPREVIEWFILECONTENTPLUGIN_GLOBAL_H peony-4.0.0.1/translations/0000755000175000017500000000000014551627337014162 5ustar fengfengpeony-4.0.0.1/translations/clean-translated-resources.sh0000755000175000017500000000016214551627337021751 0ustar fengfengecho "clean qm files..." for file in $(dirname $0)/*/*.qm do echo "delete $file" rm -f ${file} done echo "done" peony-4.0.0.1/translations/libpeony-qt/0000755000175000017500000000000014605456067016425 5ustar fengfengpeony-4.0.0.1/translations/libpeony-qt/libpeony-qt_cs.ts0000664000175000017500000055055114605456067021742 0ustar fengfeng ConnectServerDialog Connect to Sever Domain Password Save Password User Anonymous Ok Cancel DiscControl is busy! is busy! not support udf at present. unmount disc failed before udf format. DVD+RW udf format fail. preparation failed before DVD-RW udf format. FileLabelModel Red Orange Yellow Green Blue Purple Gray Error Label or color is duplicated. Format_Dialog Dialog rom_size system vfat/fat32 exfat ntfs ext4 device_name clean it total ok close TextLabel Format Rom size: Filesystem: Disk name: Completely erase(Time is longer, please confirm!) Set password Set password for volume based on LUKS (only ext4) Cancel OK Data Warning Device name cannot start with a decimal point, Please re-enter! Enter Password: Password too short, please retype a password more than 6 characters %1/sec, %2 remaining. over one day getting progress... Error Block not existed! Formatting. Do not close this window KyFileDialogRename Renaming "%1" Renaming failed, the reason is: %1 Filename too long Copying "%1" To "%1" Copying failed, the reason is: %1 Moving "%1" Moving failed, the reason is: %1 File operation error: The reason is: %1 Cancel Skip Skip All Rename Please enter a new name OK MainProgressBar File operation starting ... cancel all file operations Are you sure want to cancel all file operations canceling ... sync ... OK Cancel MessageDialog Forcibly pulling out the device may cause data loss or device exceptions! OtherButton Other queue Peony::AdvanceSearchBar Key Words input key words... Search Location choose search path... browse File Type Choose File Type Modify Time Choose Modify Time File Size Choose file size show hidden file go back hidden advance search page file name content search start search Select path Operate Tips Have no key words or search location! Search file name or content at least choose one! Search content or file name at least choose one! İçeriği veya dosya adını en az birini seçin! Peony::AdvancedLocationBar Search Content... Peony::AllFileLaunchDialog Choose new application Choose an Application to open this file apply now OK Cancel Peony::BasicPropertiesPage Choose a custom icon Type: Name Location symbolLink Folder Include: Open with: Description: Select multiple files Size: Space Usage: Time Create: Time Modified: Time Access: Readonly Hidden Property: usershare %1 (%2 Bytes) %1 Bytes %1 files, %2 folders Can't get remote file information Peony::ComputerPropertiesPage CPU Name: CPU Core: Memory Size: User Name: Desktop: You should mount this volume first Name: File System Data Total Space: Used Space: Free Space: Type: Kylin Burner Open with: Unknown Peony::ConnectServerDialog connect to server ip port type Personal Collection server: add delete connect Warning ip input error, please re-enter! port input error, please re-enter! Peony::ConnectServerLogin The login user Please enter the %1's user name and password of the server. User's identity guest Registered users name password Remember the password cancel ok Peony::CreateLinkInternalPlugin Create Link to Desktop Create Link to... Choose a Directory to Create Link Peony::CreateSharedFileLinkMenuPlugin Create Link to Desktop Peony::CreateTemplateOperation NewFile Create file Dosya oluştur NewFolder Create file error Peony::CustomErrorHandler Is Error Handled? Error not be handled correctly Peony::DefaultAcitonWidget No default app Peony::DefaultOpenWithWidget No default app Peony::DefaultPreviewPage Select the file you want to preview... Can not preview this file. Can not preivew this file. Bu dosya önizlemesi görüntülenemiyor. Peony::DefaultPreviewPageFactory Default Preview This is the Default Preview of peony-qt Peony::DetailsPropertiesPage Name: File type: Location: yyyy-MM-dd, HH:mm:ss Create time: Modify time: yyyy-MM-dd, hh:mm:ss AP File size: Width: Height: Owner Owner: Computer Computer: %1 (this computer) Unknown Can't get remote file information %1 px Peony::DirectoryView::IconView Icon View Simge Görünümü warn This operation is not supported. Peony::DirectoryView::IconView2 Icon View Simge Görünümü Peony::DirectoryView::ListView List View Liste Görünümü warn This operation is not supported. Peony::DirectoryView::ListView2 List View Liste Görünümü Peony::DirectoryViewFactoryManager Icon View Simge Görünümü Peony::DirectoryViewMenu Add to bookmark &New... &Yeni New Folder Icon View Simge Görünümü List View Liste Görünümü Name File Type File Size Open in New Window Open in New Tab Open Open with... More applications... Open %1 selected files New Empty File Folder View Type Sort By Modified Date Ascending Order Descending Order Orignal Path Folder First Chinese First Show Hidden Copy Cut Delete to trash Paste Refresh Select All Properties format Restore File:"%1" is not exist, did you moved or deleted it? Peony-Qt filesafe menu Extension Peony File Labels Menu Extension MultiSelect Delete Sort Order Sort Preferences Error Cu&t &Kes Delete forever Kalıcı Olarak Sil Rename Reverse Select P&roperties &Özellikler &Rename &Yeniden Adlandır &Properties Özellikler &Clean the Trash Delete Permanently Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Clean All Open Parent Folder in New Window Peony::DirectoryViewWidget Directory View Dizin Görünümü Peony::FMWindow File Manager advanced search clear record Loaing... Press Esc to stop a loading. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Ctrl+H Show|Hidden Ctrl+H Undo Redo Peony Qt Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. New Folder Peony::FileCopy Error in source or destination file path! The dest file "%1" has existed! Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! Please check whether the device has been removed! Write file error: There is no avaliable disk space for device! File opening failure operation cancel Peony::FileCopyOperation File copy Dosya kopyalama Create folder %1 failed: %2 File copy error Cannot opening file, permission denied! File:%1 was not found. Burn failed Peony::FileDeleteOperation File delete Dosya silme File delete error Delete file error Invalid Operation! Can not delete "%1". Peony::FileEnumerator The password dialog box is canceled Error Peony::FileInfo data folder file text file Peony::FileInfoJob Trash Computer Network Recent Peony::FileItem Error Open Link failed File not exist, do you want to delete the link file? Can not open path "%1",permission denied. Can not find path "%1",are you moved or renamed it? Peony::FileItemModel child(ren) Symbol Link, File Name Delete Date File Size Original Path File Type Modified Date Peony::FileLauchDialog The opening mode of the %1 %2 unknown No application is set to open file "%1 %2" Still using the last opened application: known Open application is used by default: You can search in the Software Center for an application that can open this file, or select an existing application on your computer. Other application: Select application: Always open the %1%2 file with this application Choose other application Go to application center Ok Cancel Desktop files(*.desktop) Select Open Action Select Peony::FileLaunchAction Execute Directly Execute in Terminal Detected launching an executable file %1, you want? Open Failed Can not open %1, file not exist, is it deleted? File not exist, is it deleted or moved to other path? Dosya mevcut değil, silinmiş veya başka bir yere taşınmış olabilir Can not open %1 %1 açılamadı No Permission File is not readable. Please check if file has read permisson. By Default App Launch Options Open Link failed File not exist, do you want to delete the link file? Can not open %1, Please confirm you have the right authority. Open App failed The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? Error File original path not exist, are you deleted or moved it? Can not get a default application for opening %1, do you want open it with text format? Warning Can not open the file, application is disabled Peony::FileLinkOperation Symbolic Link Link file error Link file Dosyayı bağla Peony::FileMoveOperation Invalid move operation, cannot move a file itself. Geçersiz taşıma işlemi, bir dosyanın kendisini taşıyamaz. Move file Dosyayı taşı Create file Dosya oluştur Move file error Create file error Cannot opening file, permission denied! File:%1 was not found. Invalid Operation. File delete error Burn failed File delete Dosya silme Invalid Operation Peony::FileOperationAfterProgressPage &More Details Peony::FileOperationErrorDialog File Operation Error unkwon null Error message: Source File: Dest File: Ignore Ignore All Overwrite Overwrite All Backup Backup All &Retry &Cancel Peony::FileOperationErrorDialogConflict Replace Ignore Do the same <p>This location already contains the file '%1', Do you want to override it?</p> Unexpected error from %1 to %2 Backup Peony::FileOperationErrorDialogNotSupported Yes No Make sure the disk is not full or write protected and that the file is not protected Peony::FileOperationErrorDialogWarning OK Cancel Make sure the disk is not full or write protected and that the file is not protected Please make sure the disk is not full or not is write protected, or file is not being used. Lütfen diskin dolu olmadığından veya yazmaya karşı korumalı olmadığından veya dosyanın kullanılmadığından emin olun. Peony::FileOperationInfo Symbolic Link - Symbolic Link - Symbolik Link Peony::FileOperationManager Warn '%1' is occupied,you cannot operate! OK Cancel Do you want to put selected %1 item(s) into trash? Do not show again Can't delete. You can't delete a file whenthe file is doing another operation File Operation is Busy There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. Daha önce bir veya daha fazla dosya işlemi yürütüldü. Operasyonunuz tamamlanana kadar yürütmeyi bekleyecektir. Peony::FileOperationPreparePage counting: state: Peony::FileOperationProgressPage &More Details From: To: Peony::FileOperationProgressWizard File Manager &Cancel Preparing... Handling... Clearing... Rollbacking... File Operation A file operation is running backend... %1 files, %2 %1 done, %2 total, %3 of %4. clearing: %1, %2 of %3 copying... Syncing... Peony::FilePreviewPage File Type: Time Access: Time Modified: Children Count: Size: Time Created: Image resolution: color model: usershare %1x%2 %1 total, %2 hidden Peony::FileRenameOperation Rename file Dosyayı yeniden isimlendir File Rename error Invalid file name %1%2%3 . File Rename warning The file %1%2%3 will be hidden when you refresh or change directory! Rename file error Peony::FileTrashOperation trash:/// Trash file error Invalid Operation! Can not trash "%1". Can not trash Can not trash files more than 10GB, would you like to delete it permanently? Can not trash this file, would you like to delete it permanently? Trash file Çöp dosyası Peony::FileUntrashOperation Untrash file Dosyayı geri al Untrash file error Peony::GlobalSettings yyyy/MM/dd HH:mm:ss AP hh:mm:ss yyyy-MM-dd Peony::HeaderBar Spread Minimize Close Kapat Peony::LocationBar Search "%1" in "%2" File System Open In New Tab Open In New Window Copy Directory ">Dizini Kopyala Peony::MountOperation Operation Cancelled Login failed, unknown username or password error, please re-enter! Peony::NavigationToolBar Go Back Go Forward History Clear History Cd Up Refresh Peony::NewFileLaunchDialog Choose new application Choose an Application to open this file apply now OK Cancel Peony::OpenWithPropertiesPage How do you want to open %1%2 files ? Default open with: Other: Choose other application Go to application center Peony::PathEdit Go To Peony::PermissionsPropertiesPage Target: %1 Group or User Read and Write Readonly (Current User) Current User Can not get the permission info. Others You can not change the access of this file. Peony::PropertiesWindow Trash Recent Selected %1 Files usershare Data Properties Ok Cancel Restore Close Kapat Peony::RecentAndTrashPropertiesPage Show confirm dialog while trashing. Origin Path: Deletion Date: Size: Original Location: Peony::SearchBar Input the search key of files you would like to find. Input search key... advance search clear record Peony::SearchBarContainer Clear all file folder image video text file audio others wps file Peony::SharedFileLinkOperation Symbolic Link Peony::SideBarCloudItem CloudStorage CloudFile Peony::SideBarFavoriteItem Trash Recent Favorite KmreData Peony::SideBarFileSystemItem Data Peony::SideBarMenu &Properties Özellikler P&roperties Özellikler Properties Delete Symbolic Unmount Eject format burndata Peony::SideBarModel Network Peony::SideBarPersonalItem Personal Peony::SideBarSeparatorItem (No Sub Directory) Peony::StatusBar ; %1 folders ; %1 files, %2 total ; %1 folder ; %1 file, %2 %1 selected Peony::SyncThread notify Peony::ToolBar Open in new &Window Yeni Pencerede Aç Sort Type File Name File Type File Size Modified Date Open in New window Open in new Tab Ascending Descending Copy Paste Cut Trash Clean Trash Restore Options Forbid Thumbnail Show Hidden Resident in Backend Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. &Help &About... Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Peony::UserShareInfoManager Warning Peony::VolumeManager Error ProgressBar starting ... canceling ... sync ... QObject Icon View Simge Görünümü Show the folder children as icons. List View Liste Görünümü Show the folder children as rows in a list. Basic Show the basic file properties, and allow you to modify the access and name. Permissions Show and modify file's permission, owner and group. Can not trash Can not trash these files. You can delete them permanently. Are you sure doing that? Can not trash files more than 10GB, would you like to delete it permanently? OK Cancel Do you want to empty the recycle bin and delete the files permanently? Once it has begun there is no way to restore them. Delete Permanently Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Computer Properties Show the computer properties or items in computer. Trash and Recent Show the file properties or items in trash or recent. eject device failed Aygıtı çıkarma başarısız oldu Please check whether the device is occupied and then eject the device again Lütfen cihazın dolu olup olmadığını kontrol edin ve ardından cihazı tekrar çıkarın Format failed YES Formatting successful! But failed to set the device name. qmesg_notify Format operation has been finished successfully. Sorry, the format operation is failed! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? format begin format close File Manager Force unmount failed Error: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Not authorized to perform operation. Unable to unmount it, you may need to close some programs, such as: GParted etc. The device has been mount successfully! Eject failed Failed to activate device: Incorrect passphrase Data synchronization is complete and the device can be safely unplugged! Error: %1 Do you want to unmount forcely? favorite Favorites File is not existed. Share Data Trash Recent Operation not supported The virtual file system does not support folder creation Can not create a symbolic file for vfs location Symbolic Link Can not create symbolic file here, %1 Can not add a file to favorite directory. The virtual file system cannot be opened Virtual file directories do not support move and copy operations Default favorite vfs of peony Mark mark this file. Open With open with. Details It need to synchronize before operating the device,place wait! permission denied file not found duplicate data Computer File System Data Failed to open file "%1": insufficient permissions. File “%1” does not exist. Please check whether the file has been deleted. burn operation has been cancelled is busy! UdfBurn::UdfAppendBurnDataDialog AppendBurnData Disc Type: Device Name: OK Cancel Unknow Warning No burn data, please add! The disc name cannot be set to empty, please re-enter it! AppendBurnData operation has been finished successfully. Sorry, the appendBurnData operation is failed! Failed Burning. Do not close this window Burning this disc will append datas on it. Do you want to continue ? Burn Begin Burning Close Kapat UdfBurn::UdfFormatDialog Format Disc Type: Device Name: OK Cancel Unknow Warning The disc name cannot be set to empty, please re-enter it! Format operation has been finished successfully. Sorry, the format operation is failed! Failed Formatting. Do not close this window Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Begin Format Close Kapat UdfFormatDialog Format Disc Type: Device Name: OK Cancel Unknow Warning The disc name cannot be set to empty, please re-enter it! Format operation has been finished successfully. Sorry, the format operation is failed! Failed Formatting. Do not close this window Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Begin Format Close Kapat peony-4.0.0.1/translations/libpeony-qt/libpeony-qt_tr.ts0000664000175000017500000063120614605456067021757 0ustar fengfeng ConnectServerDialog Connect to Sever Sunucuya Bağlan Domain Alan Adı Password Parola Save Password Parolayı Kaydet User Kullanıcı Anonymous Misafir Ok Tamam Cancel İptal DiscControl is busy! is busy! not support udf at present. unmount disc failed before udf format. DVD+RW udf format fail. preparation failed before DVD-RW udf format. FileLabelModel Red Kırmızı Orange Turuncu Yellow Sarı Green Yeşil Blue Mavi Purple Mor Gray Gri Transparent Şeffaf Delete file Warning Dosya Silme Uyarısı Error Hata Label or color is duplicated. Etiket veya renk yinelendi. Format_Dialog Dialog Diyalog rom_size Rom boyutu system Sistem vfat/fat32 exfat ntfs Ntfs vfat Vfat ext4 Ext4 device_name Aygıt Adı clean it total Toplamı Temizle ok Tamam close Kapat TextLabel qmesg_notify Qmesg bildir Format operation has been finished successfully. Biçimlendirme işlemi başarıyla tamamlandı. Sorry, the format operation is failed! Üzgünüz, formatlama işlemi başarısız oldu! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Bu birimi biçimlendirmek, içindeki tüm verileri silecektir. Biçimlendirmeden önce lütfen saklanan tüm verileri yedekleyin. Devam etmek istiyor musun? format Biçim begin format biçimlendirmeye başla format_success Biçimlentirme başarılı format_err Biçimlendirme hatalı Format Rom size: Filesystem: Disk name: Completely erase(Time is longer, please confirm!) Set password Set password for volume based on LUKS (only ext4) Cancel İptal OK Tamam Data Warning Device name cannot start with a decimal point, Please re-enter! Enter Password: Password too short, please retype a password more than 6 characters %1/sec, %2 remaining. over one day getting progress... Error Hata Block not existed! Formatting. Do not close this window KyFileDialogRename Renaming "%1" Renaming failed, the reason is: %1 Filename too long Copying "%1" To "%1" Copying failed, the reason is: %1 Moving "%1" Moving failed, the reason is: %1 File operation error: The reason is: %1 Cancel İptal Skip Skip All Rename Yeniden Adlandır Please enter a new name OK Tamam MainProgressBar File operation Dosya işlemi starting ... Başlatılıyor... cancel all file operations Tüm dosya işlemlerini iptal et Are you sure want to cancel all file operations Tüm dosya işlemlerini iptal etmek istediğinizden emin misiniz canceling ... İptal ediliyor... sync ... OK Tamam Cancel İptal MessageDialog Forcibly pulling out the device may cause data loss or device exceptions! OtherButton Other queue Diğer sıra Peony::AdvanceSearchBar Key Words Anahtar Kelimeleri input key words... Anahtar kelimeler gir... Search Location Arama Konumu choose search path... Arama yolu seç... browse Araştır File Type Dosya Türü Choose File Type Dosya Türü Seç Modify Time Değiştirme Zamanı Choose Modify Time Değiştirme Zamanı Seç File Size Dosya Boyutu Choose file size Dosya boyutu seç show hidden file Gizli dosyaları göster go back Geri git hidden advance search page Gizli gelişmiş arama sayfası file name Dosya adı content İçerik search Ara start search Aramayı başlat Select path Yol seçin Operate Tips İşlem İpuçları Have no key words or search location! Anahtar kelimeler veya arama konumu yok! Search file name or content at least choose one! Dosya adını veya içeriğini arayın en azından birini seçin! Search content or file name at least choose one! İçeriği veya dosya adını en az birini seçin! all Tümü file folder Dosya klasör image Resim video Video text file Metin dosyası audio Ses others Diğerleri wps file Wps Dosyası today Bugün this week Bu hafta this month Bu ay this year Bu yıl year ago Önceki yıl tiny(0-16K) Çok küçük(0-16K) small(16k-1M) Küçük(16k-1M) medium(1M-100M) Orta(1M-100M) big(100M-1G) Büyük(100M-1G) large(>1G) Çok büyük(>1G) Peony::AdvancedLocationBar Search Content... İçerik Ara... Peony::AllFileLaunchDialog Choose new application Yeni uygulama seçin Choose an Application to open this file Bu dosyayı açmak için bir Uygulama seçin apply now Şimdi uygula OK Tamam Cancel İptal Peony::AudioPlayManager Operation file Warning İşlem dosyası Uyarısı Peony::BasicPropertiesPage Choose a custom icon Özel bir simge seçin Type: Tür: Display Name: Ekran Adı: Location: Konum: Overview: Genel Bakış: Change Değiştir Name İsim Location Konum move taşı symbolLink Include: Dahil et: Open with: İle aç: Description: Açıklama: Select multiple files Birden çok dosya seçin Size: Boyut: Total size: Toplam boyut: Time Created: Oluşturma Zamanı: Time Modified: Değiştirme Zamanı: Folder Time Access: Erişim Zamanı: Space Usage: Time Create: Readonly Salt okunur Hidden Gizli Property: Özellik: usershare %1 (%2 Bytes) Choose a new folder: Yeni bir klasör seçin: Error Hata cannot move a folder to itself ! Bir klasör kendisine taşınamaz! %1 Bytes %1 files, %2 folders %1 dosya, %2 klasör Can't get remote file information Uzak dosya bilgisi alınamıyor %1 files (include root files), %2 hidden %1 dosya (kök dosyaları dahil),%2 gizli %1 total Toplam %1 Peony::ComputerPropertiesPage CPU Name: CPU Adı: CPU Core: CPU Çekirdeği: Memory Size: Hafıza Boyutu: User Name: Kullanıcı Adı: Desktop: Masaüstü: You should mount this volume first Önce bu birimi bağlamalısınız Name: İsim: File System Dosya Sistemi Data Total Space: Toplam Alan: Used Space: Kullanılan Alan: Free Space: Boş Alan: Type: Tür: Kylin Burner Open with: Unknown Bilinmeyen Peony::ConnectServerDialog connect to server sunucuya bağlan ip port type Personal Collection server: Kişisel Koleksiyon sunucusu: add ekle delete sil connect bağlan Warning ip input error, please re-enter! port input error, please re-enter! Peony::ConnectServerLogin The login user Oturum açan kullanıcı Please enter the %1's user name and password of the server. Lütfen %1'in sunucunun kullanıcı adını ve şifresini girin. User's identity Kullanıcının kimliği guest misafir Registered users Kayıtlı kullanıcılar name isim password parola Remember the password Parolayı hatırla cancel İptal ok Tamam Peony::CreateLinkInternalPlugin Create Link to Desktop Masaüstünde Link Oluştur Create Link to... Linki Oluştur... Choose a Directory to Create Link Bağlantı Oluşturmak İçin Bir Dizin Seçin Peony-Qt Create Link Extension Dosya Yöneticisi Bağlantı Uzantısı Oluştur Create Link Menu Extension. Bağlantı Menüsü Uzantısı Oluştur. Peony::CreateSharedFileLinkMenuPlugin Create Link to Desktop Masaüstünde Link Oluştur Peony::CreateTemplateOperation NewFile Yeni Dosya Create file Dosya oluştur NewFolder Yeni Klasör Create file error Dosya oluşturma hatası Peony::CustomErrorHandler Is Error Handled? Error not be handled correctly Peony::DefaultAcitonWidget No default app Peony::DefaultOpenWithWidget No default app Peony::DefaultPreviewPage Select the file you want to preview... Önizlemek istediğiniz dosyayı seçin ... Can not preview this file. Bu dosya önizlemesi görüntülenemiyor. Can not preivew this file. Bu dosya önizlemesi görüntülenemiyor. Peony::DefaultPreviewPageFactory Default Preview Varsayılan Önizleme This is the Default Preview of peony-qt Bu peony-qt Varsayılan Önizlemesi Peony::DetailsPropertiesPage Name: İsim: File type: Dosya türü: Location: Konum: yyyy-MM-dd, HH:mm:ss Create time: Oluşturma zamanı: Modify time: Değiştirme zamanı: yyyy-MM-dd, hh:mm:ss AP File size: Dosya boyutu: Width: Genişlik: Height: Yükseklik: Owner Sahibi Owner: Sahibi: Computer Bilgisayar Computer: Bilgisayar: %1 (this computer) %1 (bu bilgisayar) Unknown Bilinmeyen Can't get remote file information Uzak dosya bilgisi alınamıyor %1 px Peony::DirectoryView::IconView Icon View Simge Görünümü warn This operation is not supported. Peony::DirectoryView::IconView2 Icon View Simge Görünümü Peony::DirectoryView::ListView List View Liste Görünümü warn This operation is not supported. Peony::DirectoryView::ListView2 List View Liste Görünümü Peony::DirectoryViewFactoryManager Icon View Simge Görünümü Peony::DirectoryViewMenu Open in &New Window Yeni Pen&cerede Aç Open in New &Tab &Yeni Sekmede Aç Add to bookmark Yer işaretlerine ekle &Open "%1" “%1” Aç Open "%1" in &New Window “%1” Yeni Pencerede Aç Open "%1" in New &Tab “%1” Yeni Sekmede Aç Open "%1" with... “%1” ile aç... &More applications... &Daha Fazla Uygulama... &Open &Aç Open &with... &İle aç... &Open %1 selected files %1 dosy&a seçildi &New... &Yeni Empty &File &Boş Dosya &Folder &Klasör New Folder Yeni Klasör Icon View Simge Görünümü List View Liste Görünümü View Type... Görünüm Türü... Sort By... Sırala... Name İsim File Type Dosya Türü File Size Dosya Boyutu New... Yeni... Open in New Window Open in New Tab Open Open with... More applications... Open %1 selected files New Empty File Folder View Type Sort By Modified Date Değiştirme Saati Orignal Path Sort Order... Sıralama Düzeni... Ascending Order Artan Düzen MultiSelect Descending Order Azalan Düzen Sort Preferences... Tercihleri Sırala... Folder First Önce Klasör Chinese First Önce Çince Show Hidden Gizlileri Göster Copy Kopyala File:"%1" is not exist, did you moved or deleted it? Peony-Qt filesafe menu Extension Peony File Labels Menu Extension Peony Dosya Etiketleri Menü Uzantısı &Copy &Kopyala Cut Kes Delete to trash Paste Yapıştır Refresh Yenile Select All Properties Özellikler format Biçim Restore Onar Delete Sort Order Sort Preferences Error Hata File:"%1 is not exist, did you moved or deleted it? Dosya: "%1 mevcut değil, onu taşıdınız yada sildiniz mi? Cu&t &Kes &Delete to trash Çöp Kutus&una Gönder Delete forever Kalıcı Olarak Sil Rename Yeniden Adlandır Select &All &Tümünü Seç Reverse Select Seçimi Ters Çevir P&roperties &Özellikler &Delete &Sil &Rename &Yeniden Adlandır &Paste &Yapıştır &Refresh Yeni&le &Properties Özellikler &Clean the Trash Çö&pü Temizle Delete file Warning Dosyayı Sil Uyarısı Delete Permanently Kalıcı Olarak Sil Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. &Restore O&nar Clean All Tümünü Temizle Open Parent Folder in New Window Üst Klasörü Yeni Pencerede Aç Peony::DirectoryViewWidget Directory View Dizin Görünümü Peony::FMWindow File Manager Dosya Yöneticisi advanced search Gelişmiş arama clear record Kaydı temizle Loaing... Press Esc to stop a loading. Yükleniyor ... Yüklemeyi durdurmak için Esc tuşuna basın. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Ctrl+H Show|Hidden Ctrl+H Undo Geri Redo İleri Peony Qt Dosya Yöneticisi Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. New Folder Yeni Klasör Peony::FileCopy Error in source or destination file path! The dest file "%1" has existed! Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! Please check whether the device has been removed! Write file error: There is no avaliable disk space for device! File opening failure operation cancel Peony::FileCopyOperation File copy Dosya kopyalama Create folder %1 failed: %2 File copy error Dosya kopyalama hatası Cannot opening file, permission denied! File:%1 was not found. Burn failed Peony::FileDeleteOperation File delete Dosya silme File delete error Dosya silme hatası Delete file error Invalid Operation! Can not delete "%1". Peony::FileEnumerator Delete file Warning Dosyayı Sil Uyarısı The password dialog box is canceled Error Hata Did not find target path, do you move or deleted it? Hedef yolu bulunamadı, taşıdınız yada sildiniz mi? Peony::FileInfo data folder file text file Metin dosyası Peony::FileInfoJob Trash Çöp Computer Bilgisayar Network Recent En son Peony::FileInformationLabel File location: Dosya konumu: File size: Dosya boyutu: Modify time: Değiştirme zamanı: Peony::FileItem Delete file Warning Dosyayı Sil Uyarısı Error Hata Open Link failed Açık Bağlantı başarısız File not exist, do you want to delete the link file? Dosya mevcut değil, bağlantı dosyasını silmek istiyor musunuz? Can not open path "%1",permission denied. %1 yolu açılamıyor izni reddedildi. Can not find path "%1",are you moved or renamed it? %1 yolu bulunamıyor taşındınız mı yoksa yeniden adlandırdınız mı? Peony::FileItemModel child(ren) Çocuklar Symbol Link, Sembolik Bağlantı, File Name Dosya Adı Delete Date File Size Dosya Boyutu Original Path File Type Dosya Türü Modified Date Değiştirme Tarihi Peony::FileLabelInternalMenuPlugin Add File Label... Dosya Etiketi Ekle... Delete All Label Tüm Etiketleri Sil Peony File Labels Menu Extension Peony Dosya Etiketleri Menü Uzantısı Tag a File with Menu. Dosyayı Menü ile etiketleyin. Peony::FileLauchDialog Applications Uygulamalar Choose an Application to open this file Bu dosyayı açmak için bir Uygulama seçin Set as Default Varsayılan Olarak Ayarla OK Tamam The opening mode of the %1 %2 unknown No application is set to open file "%1 %2" Still using the last opened application: known Open application is used by default: You can search in the Software Center for an application that can open this file, or select an existing application on your computer. Other application: Select application: Always open the %1%2 file with this application Choose other application Başka bir uygulama seçin Go to application center Uygulama merkezine git Ok Tamam Cancel İptal Desktop files(*.desktop) Select Open Action Select Peony::FileLaunchAction Execute Directly Doğrudan Çalıştır Execute in Terminal Terminalde Çalıştır Detected launching an executable file %1, you want? %1 çalıştırılabilir bir dosyayı başlatmayı mı istediniz? Delete file Warning Dosyayı Sil Uyarısı Open Failed Açma Hatası Can not open %1, file not exist, is it deleted? %1 açılamıyor, dosya mevcut değil, silinmiş olabilir mi? File not exist, is it deleted or moved to other path? Dosya mevcut değil, silinmiş veya başka bir yere taşınmış olabilir Can not open %1 %1 açılamadı No Permission File is not readable. Please check if file has read permisson. By Default App Varsayılan Uygulamaya Göre Launch Options Başlatma Ayarları Open Link failed Açık Bağlantı başarısız File not exist, do you want to delete the link file? Dosya mevcut değil, bağlantı dosyasını silmek istiyor musunuz? Can not open %1, Please confirm you have the right authority. %1 açılamıyor, lütfen yetkilerinizi kontrol edin. Open App failed Uygulama Açılamadı The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? Bağlı uygulama değiştirilir veya kaldırılır, bu nedenle düzgün çalışamaz. Bağlantı dosyasını silmek istiyor musunuz? Error Hata File original path not exist, are you deleted or moved it? Can not get a default application for opening %1, do you want open it with text format? %1 dosyasını açmak için varsayılan bir uygulama alınamıyor, metin biçiminde açmak istiyor musunuz? Warning Can not open the file, application is disabled Peony::FileLinkOperation Symbolic Link Sembolik Bağ Link file error Link dosya hatası Link file Dosyayı bağla Peony::FileMoveOperation Invalid move operation, cannot move a file itself. Geçersiz taşıma işlemi, bir dosyanın kendisini taşıyamaz. Move file Dosyayı taşı Create file Dosya oluştur Move file error Dosya oynatma hatası Create file error Dosya oluşturma hatası Cannot opening file, permission denied! File:%1 was not found. Invalid Operation. Geçersiz İşlem. File delete error Dosya silme hatası Burn failed File delete Dosya silme Invalid Operation Geçersiz İşlem Peony::FileOperationAfterProgressPage &More Details &Daha Fazla Ayrıntı Peony::FileOperationErrorDialog File Operation Error Dosya İşlem Hatası unkwon Bilinmeyen null Boş Error message: Hata Mesajı: Source File: Kaynak Dosya: Dest File: Hedef Dosya: Ignore Görmezden Gel Ignore All Tümünü Görmezden Gel Overwrite Üzerine Yaz Overwrite All Tümünün Üzerine Yaz Backup Yedekle Backup All Tümünü Yedekle &Retry &Yeniden Dene &Cancel &İptal Peony::FileOperationErrorDialogConflict This location already contains a file with the same name. Bu konum zaten aynı ada sahip bir dosya içeriyor. Please select the file to keep Lütfen saklanacak dosyayı seçin This location already contains the file, Bu konum zaten dosyayı içeriyor, Do you want to override it? Geçersiz kılmak istiyor musunuz? Replace Değiştir Ignore Görmezden Gel Do the same Aynısını yap <p>This location already contains the file '%1', Do you want to override it?</p> <p>Bu konum zaten '%1' dosyasını içeriyor, onu geçersiz kılmak ister misiniz?</p> Unexpected error from %1 to %2 Then do the same thing in a similar situation Sonra benzer bir durumda aynı şeyi yapın Backup Yedekle Cancel İptal OK Tamam Peony::FileOperationErrorDialogNotSupported Yes Evet No Cancel İptal Do the same Aynısını yap Make sure the disk is not full or write protected and that the file is not protected Diskin dolu olmadığından veya yazma korumalı olmadığından ve dosyanın korumalı olmadığından emin olun Peony::FileOperationErrorDialogWarning OK Tamam Cancel İptal Make sure the disk is not full or write protected and that the file is not protected Diskin dolu olmadığından veya yazma korumalı olmadığından ve dosyanın korumalı olmadığından emin olun Please make sure the disk is not full or not is write protected, or file is not being used. Lütfen diskin dolu olmadığından veya yazmaya karşı korumalı olmadığından veya dosyanın kullanılmadığından emin olun. Peony::FileOperationInfo Symbolic Link Sembolik Bağ - Symbolic Link - Symbolik Link Peony::FileOperationManager Delete file Warning Dosyayı Sil Uyarısı Warn '%1' is occupied,you cannot operate! OK Tamam Cancel İptal Do you want to put selected %1 item(s) into trash? Do not show again Can't delete. Silinmedi. You can't delete a file whenthe file is doing another operation Dosya başka bir işlem yaparken dosyayı silemezsiniz File Operation is Busy Dosya İşlemi Meşgul There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. Daha önce bir veya daha fazla dosya işlemi yürütülüyor. İşleminiz gerçekleşene kadar yürütülmesini bekleyecektir. Gerçekten de dosya işlemlerini paralel olarak yürütmek istiyorsanız, seçenek menüsünde varsayılan "Paralele İzin Ver" seçeneğini değiştirebilirsiniz. There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. Daha önce bir veya daha fazla dosya işlemi yürütüldü. Operasyonunuz tamamlanana kadar yürütmeyi bekleyecektir. Peony::FileOperationPreparePage counting: Hesaplama: state: Durum: Peony::FileOperationProgressPage &More Details &Daha Fazla Detay From: den: To: -e: Peony::FileOperationProgressWizard File Manager Dosya Yöneticisi &Cancel &İptal Preparing... Hazırlanıyor... Handling... Taşınıyor... Clearing... Temizleniyor... Rollbacking... Geri sarılıyor... File Operation Dosya İşlemi A file operation is running backend... Bir dosya işlemi arka uçta çalışıyor... %1 files, %2 %1 dosya, %2 %1 done, %2 total, %3 of %4. %1 bitti,toplam %2, %4 de %3. clearing: %1, %2 of %3 Temizlenen:%1, %3 de %2 copying... Kopyalanıyor... Syncing... Senkronize ediliyor... Peony::FilePreviewPage File Name: Dosya Adı: File Type: Dosya Türü: Time Access: Erişim Zamanı: Time Modified: Değiştirme Zamanı: Children Count: Çocuk Sayısı: Size: Boyut: Time Created: Oluşturma Zamanı: Image resolution: color model: usershare Image size: Resim Boyutu: Image format: Resim Formatı: %1x%2 %1x%2 %1 total, %2 hidden toplam %1, %2 gizli Peony::FileRenameDialog Names automatically add serial Numbers (e.g., 1,2,3...) İsimler otomatik olarak seri Numaralar ekler (ör. 1,2,3 ...) Cancel İptal New file name Yeni dosya adı Please enter the file name Lütfen dosya adını girin OK Tamam Peony::FileRenameOperation Rename file Dosyayı yeniden isimlendir File Rename error Invalid file name %1%2%3 . File Rename warning The file %1%2%3 will be hidden when you refresh or change directory! Rename file error Dosya yeniden adlandırma hatası Peony::FileTrashOperation trash:/// Çöp:/// Trash file error Çöp dosyası hatası Invalid Operation! Can not trash "%1". Can not trash Çöp Silinemez Can not trash files more than 10GB, would you like to delete it permanently? The user does not have read and write rights to the file '%1' and cannot delete it to the Recycle Bin. Kullanıcının '%1' dosyası için okuma ve yazma hakları yok ve onu Geri Dönüşüm Kutusu'na silemiyor. Can not trash this file, would you like to delete it permanently? Can not trash %1, would you like to delete this file permanently? %1 çöp kutusuna atılamıyor, bu dosyayı kalıcı olarak silmek ister misiniz? . Are you sure you want to permanently delete the file . Dosyayı kalıcı olarak silmek istediğinizden emin misiniz Trash file Çöp dosyası Peony::FileUntrashOperation Untrash file Dosyayı geri al Untrash file error Dosya geri alma hatası Peony::GlobalSettings yyyy/MM/dd HH:mm:ss AP hh:mm:ss yyyy-MM-dd Peony::HeaderBar Spread Minimize Close Kapat Peony::LocationBar click the blank area for edit Düzenlemek için boş alanı tıklayın Computer Bilgisayar Search "%1" in "%2" %2 de %1 ara File System Dosya Sistemi &Copy Directory &Dizini Kopyala Open In New Tab Open In New Window Open In New &Tab Yeni &Sekmede Aç Open In &New Window Yeni Penc&erede Aç Copy Directory Dizini Kopyala Peony::MountOperation Operation Cancelled İşlem İptal Edildi Login failed, unknown username or password error, please re-enter! Peony::NavigationToolBar Go Back Geri Git Go Forward İleri Git History Geçmiş Clear History Geçmişi Temizle Cd Up Yukarı Refresh Yenile Peony::NewFileLaunchDialog Choose new application Yeni uygulama seçin Choose an Application to open this file Bu dosyayı açmak için bir Uygulama seçin apply now Şimdi uygula OK Tamam Cancel İptal Peony::OpenWithPropertiesPage How do you want to open %1%2 files ? %1%2 dosyalarını nasıl açmak istersiniz? Default open with: Varsayılan şununla aç: Other: Diğer: Choose other application Başka bir uygulama seçin Go to application center Uygulama merkezine git Peony::PathEdit Go To Git Peony::PermissionsPropertiesPage User or Group Kullanıcı veya Grup Type Tür Readable Okunabilir Writeable Yazılabilir Excuteable Çalıştırılabilir File: %1 Dosya:%1 Target: %1 Read and Write Okuma ve Yazma Readonly Salt Okunur Group or User (Current User) Current User Can not get the permission info. İzin bilgileri alınamıyor. (Me) (Ben) Others Diğerleri Owner Sahibi Group Grup Other Diğer Other Users Diğer Kullanıcılar You can not change the access of this file. Bu dosyanın erişimini değiştiremezsiniz. Me Ben User Kullanıcı Peony::PropertiesWindow Trash Çöp Recent En son Selected Seçilen %1 Files %1 Dosyalar usershare Data Properties Özellikler Ok Tamam Cancel İptal Restore Onar Close Kapat Peony::RecentAndTrashPropertiesPage Show confirm dialog while trashing. Origin Path: Kaynak Yolu: Deletion Date: Size: Boyut: Original Location: Orjinal Konum: Peony::SearchBar Input the search key of files you would like to find. Bulmak istediğiniz dosyaların arama anahtarını girin. Input search key... Arama anahtarını girin... advance search Gelişmiş arama clear record Kaydı temizle Peony::SearchBarContainer Choose File Type Dosya Türü Seç Clear Temizle all Tümü file folder Dosya klasörü image Resim video Video text file Metin dosyası audio Ses others Diğerleri wps file Wps Dosyası Peony::SharedFileLinkOperation Symbolic Link Sembolik Bağ Peony::SideBarCloudItem CloudStorage CloudFile Peony::SideBarFavoriteItem Trash Çöp Recent En son Favorite Sık Kullanılan KmreData Peony::SideBarFileSystemItem Computer Bilgisayar File System Dosya Sistemi Data Peony::SideBarMenu &Properties Özellikler P&roperties Özellikler Properties Özellikler Delete Symbolic Unmount Eject burndata &Delete Symbolic Sembolik B&ağı Sil &Unmount Ba&ğı Kaldır &Eject &Çıkar format Biçim Peony::SideBarModel Network Peony::SideBarPersonalItem Personal Kişisel Peony::SideBarSeparatorItem (No Sub Directory) (Alt Dizin Yok) Peony::StatusBar ; %1 folders ; %1 klasör ; %1 files, %2 total ; %1 dosya, toplam %2 ; %1 folder ; %1 klasör ; %1 file, %2 ; %1 dosya, %2 %1 selected %1 seçildi Peony::SyncThread notify Peony::ToolBar Open in new &Window Yeni Pencerede Aç Open in &New window Yeni Pen&cerede Aç Open in new &Tab Yeni S&ekmede Aç Sort Type Sıralama Türü File Name Dosya Adı File Type Dosya Türü File Size Dosya Boyutu Modified Date Değiştirme Tarihi Open in New window Open in new Tab Ascending Artıyor Descending Azalıyor Copy Kopyala Paste Yapıştır Cut Kes Trash Çöp Clean Trash Çöpü Temizle Delete file Warning Dosyayı Sil Uyarısı Delete Permanently Kalıcı Olarak Sil Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Restore Onar Options Seçenekler Forbid Thumbnail Küçük Resmi Yasakla Show Hidden Gizli Dosyaları Göster Resident in Backend Arka Uçta Yerleşik Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. Son pencereyi kapattıktan sonra programın çalışmaya devam etmesine izin verin. Bu, bir sonraki lansman süresini azaltır, ancak arka uçtaki kaynakları da tüketir. &Help &Yardım &About... &Hakkında... Peony Qt Dosya Yönetici Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Peony::UserShareInfoManager Warning Peony::VolumeManager Error Hata ProgressBar starting ... Başlatılıyor... canceling ... İptal ediliyor... sync ... cancel file operation Dosya işlemini iptal et Are you sure want to cancel the current selected file operation Mevcut seçili dosya işlemini iptal etmek istediğinizden emin misiniz OK Tamam Cancel İptal QObject Icon View Simge Görünümü Show the folder children as icons. Klasörleri simgeler olarak göster. List View Liste Görünümü Show the folder children as rows in a list. Alt klasörü bir listede satır olarak göster. Basic Preview Page Temel Önizleme Sayfası Basic Temel Show the basic file properties, and allow you to modify the access and name. Temel dosya özelliklerini gösterin ve erişimi ve adı değiştirmenize izin verin. Permissions Page İzinler Sayfası Permissions İzinler Show and modify file's permission, owner and group. Dosya iznini, sahibini ve grubunu göster ve değiştir. Can not trash Çöp Silinemez Can not trash these files. You can delete them permanently. Are you sure doing that? Bu dosyalar çöp kutusuna gönderilemiyor. Bunları kalıcı olarak silebilirsiniz. Bunu yaptığınızdan emin misiniz? Can not trash files more than 10GB, would you like to delete it permanently? OK Tamam Do you want to empty the recycle bin and delete the files permanently? Once it has begun there is no way to restore them. Delete Permanently Kalıcı Olarak Sil Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Are you sure that you want to delete %1? Once you start a deletion, the files deleting will never be restored again. %1'i silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Are you sure that you want to delete these %1 files? Once you start a deletion, the files deleting will never be restored again. Bu %1 dosyayı silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Computer Properties Page Bilgisayar Özellikleri Sayfası Computer Properties Bilgisayar özellikleri Show the computer properties or items in computer. Bilgisayar özelliklerini veya bilgisayardaki öğeleri gösterir. Trash and Recent Properties Page Çöp Kutusu ve Son Özellikler Sayfası Trash and Recent Çöp Kutusu ve En Son Show the file properties or items in trash or recent. Dosya özelliklerini veya öğelerini çöp kutusunda veya son zamanlarda gösterin. eject device failed Aygıtı çıkarma başarısız oldu Please check whether the device is occupied and then eject the device again Lütfen cihazın dolu olup olmadığını kontrol edin ve ardından cihazı tekrar çıkarın Format failed Biçim hatalı YES EVET Formatting successful! But failed to set the device name. qmesg_notify Qmesg bildir Format operation has been finished successfully. Biçimlendirme işlemi başarıyla tamamlandı. Sorry, the format operation is failed! Üzgünüz, formatlama işlemi başarısız oldu! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Bu birimi biçimlendirmek, içindeki tüm verileri silecektir. Biçimlendirmeden önce lütfen saklanan tüm verileri yedekleyin. Devam etmek istiyor musun? format Biçim begin format biçimlendirmeye başla close Kapat File Manager Dosya Yöneticisi Default search vfs of peony Peony için varsayılan arama vfs'si Force unmount failed Zorla ayrılma başarısız oldu Error: %1 Hata: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Ayrılma Hatası Not authorized to perform operation. Unable to unmount it, you may need to close some programs, such as: GParted etc. Bağlantısını kesemiyorsanız, bazı programları kapatmanız gerekebilir, örneğin: GParted vb. Error: %1 Do you want to unmount forcely? Hata: %1 Zorla ayrılmak ister misin? Eject failed Çıkarma hatalı Cancel İptal Eject Anyway Yine de Çıkar Failed to activate device: Incorrect passphrase The device has been mount successfully! Data synchronization is complete and the device can be safely unplugged! Unable to eject %1 %1 çıkarılamıyor favorite favori Favorites File is not existed. Share Data Trash Çöp Recent En son Operation not supported İşlem desteklenmedi The virtual file system does not support folder creation Sanal dosya sistemi klasör oluşturmayı desteklemiyor Can not create a symbolic file for vfs location Symbolic Link Sembolik Bağ Can not create symbolic file here, %1 Can not add a file to favorite directory. The virtual file system cannot be opened Sanal dosya sistemi açılamaz Virtual file directories do not support move and copy operations Sanal dosya dizinleri taşıma ve kopyalama işlemlerini desteklemez Default favorite vfs of peony Peony varsayılan favori vfs Mark İşaretle mark this file. bu dosyayı işaretle. Open With İle aç open with. ile aç. Details Detaylar It need to synchronize before operating the device,place wait! permission denied file not found duplicate data Computer Bilgisayar File System Dosya Sistemi Data Failed to open file "%1": insufficient permissions. File “%1” does not exist. Please check whether the file has been deleted. burn operation has been cancelled is busy! UdfBurn::UdfAppendBurnDataDialog AppendBurnData Disc Type: Device Name: OK Tamam Cancel İptal Unknow Warning No burn data, please add! The disc name cannot be set to empty, please re-enter it! AppendBurnData operation has been finished successfully. Sorry, the appendBurnData operation is failed! Failed Burning. Do not close this window Burning this disc will append datas on it. Do you want to continue ? Burn Begin Burning Close Kapat UdfBurn::UdfFormatDialog Format Disc Type: Device Name: OK Tamam Cancel İptal Unknow Warning The disc name cannot be set to empty, please re-enter it! Format operation has been finished successfully. Biçimlendirme işlemi başarıyla tamamlandı. Sorry, the format operation is failed! Üzgünüz, formatlama işlemi başarısız oldu! Failed Formatting. Do not close this window Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Begin Format Close Kapat UdfFormatDialog Format Disc Type: Device Name: OK Tamam Cancel İptal Unknow Warning The disc name cannot be set to empty, please re-enter it! Format operation has been finished successfully. Biçimlendirme işlemi başarıyla tamamlandı. Sorry, the format operation is failed! Üzgünüz, formatlama işlemi başarısız oldu! Failed Formatting. Do not close this window Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Begin Format Close Kapat peony-4.0.0.1/translations/libpeony-qt/libpeony-qt_bo_CN.ts0000664000175000017500000041136414605456067022313 0ustar fengfeng ConnectServerDialog Ok གཏན་འཁེལ་བྱེད་པ། User སྤྱོད་མཁན། Save Password གསང་ཨང་ཉར་བ། Cancel མེད་པར་བཟོ་བ Domain ཁོངས། Connect to Sever ཞབས་ཞུའི་འཕྲུལ་ཆས་ལ་སྦྲེལ་བ། Anonymous རང་མིང་མི་འགོད་པ། Password གསང་ཨང་། DiscControl is busy! བྲེལ་བ་ཆེ། is busy! བྲེལ་བ་ཆེ། not support udf at present. མིག་སྔར་UDFརྣམ་པ་ལ་རྒྱབ་སྐྱོར་མི་བྱེད་པ་། unmount disc failed before udf format. བཏོན་པའི་UDFསྡེར་ཕམ་དང་།ཚད་གཞི་ཅན་གྱི་UDFསྡེར་གོང་། is not properly formatted. ཡོངས་སུ་མ་པའི་རྣམ་གཞག་ preparation failed before DVD-RW udf format. DVD-RWསྡེར་UDFརྣམ་གཞག་གྲ་སྒྲིག་ཕམ་པ། Can not found newfs_udf tool. newfs_udfལག་ཆ་རྙེད་མ་ཐུབ་། DVD+RW udf format fail. DVD+RW udfརྣམ་གཞག་ཕམ་ཁ FileLabelModel Red དམར་པོ། Blue སྔོན་པོ། Gray སྐྱ་ཚད། Error ནོར་འཁྲུལ། Green ལྗང་མདོག Orange ཚ་ལུ་མའི་མདོག Purple སྨུག་པོ། Yellow སེར་པོ། Label or color is duplicated. མཚོན་རྟགས་སམ་ཁ་དོག་བསྐྱར་ཟློས། Format_Dialog ok གཏན་འཁེལ། ext4 Ext4 ntfs NTFS vfat VFAT close ཁ་རྒྱག Dialog གླེང་སྒྲོམ། clean it total ཡོངས་སུ་སུབ་པ། (དུས་ཡུན་ཅུང་རིང་། གཏན་འཁེལ་གནང་རོགས།) rom_size ཤོང་ཚད་ཆེ་ཆུང་། system རྒྱུད་ཁོངས། device_name སྒྲིག་ཆས་མིང་། TextLabel ཡིག་རྐྱང་ཕྲེང་བ། vfat/fat32 exfat Formatting. Do not close this window རྣམ་པ་ཅན་དུ་འགྱུར་བཞིན་ཡོད་།སྒེའུ་ཁུང་དེ་སྒོ་རྒྱག་མ་བྱེད་། Format རྣམ་གཞག་ཅན། Rom size: ཤོང་ཚད་ཆེ་ཆུང་ Filesystem: ཡིག་ཆའི་རྒྱུད་ཁོངས། Disk name: ཁུལ་ལག་མིང་། Completely erase(Time is longer, please confirm!) ཡོངས་སུ་ཕྱིས་དང་།དུས་ཚོད་ཅུང་རིང་བ་དང་།གཏན་འཁེལ་བྱེད་རོགས་། Cancel མེད་པར་བཟོ་བ OK གཏན་འཁེལ་བྱེད་པ། Data གཞི་གྲངས་སྡེར་མ། Error ནོར་འཁྲུལ། Block not existed! སྒྲིག་ཆས་མི་འདུག Set password གསང་ཨང་འགོད་པ་ Set password for volume based on LUKS (only ext4) ནི་ext4ཁུལ་ཁག་གི་སྒྲིག་འགོད་ལ་གཞིགས་ནས་LUKSགསང་ཨང་། Enter Password: གསང་ཨང་ནང་འཇུག་ Password too short, please retype a password more than 6 characters གསང་གྲངས་ཐུང་དྲག་པ་དང་།རོགས་།ཡང་བསྐྱར་ནང་འཇུག་6ལས་བརྒལ་གྱི་གསང་ཨང་། Warning ཐ་ཚིག་ Device name cannot start with a decimal point, Please re-enter! ཁུལ་དབྱེའི་མིང་ལ་བརྟེན་ནས་གྲངས་ཆུང་ཚེག་རྟགས་མགོ་བརྩམས་།ཡང་བསྐྱར་ནང་འཇུག་རོགས་། %1/sec, %2 remaining. over one day getting progress... KyFileDialogRename Renaming "%1" "%1"བསྐྱར་དུ་བཏགས་བཞིན་ཡོད་། Renaming failed, the reason is: %1 བསྐྱར་དུ་མིང་བཏགས་པ་ཕམ་དང་།རྒྱུ་རྐྱེན་%1། Filename too long ཡིག་ཆའི་མིང་རིང་དྲགས་པ་ Copying "%1" "%1"འདྲ་བཟོ་བྱེད་བཞིན་ཡོད་། To "%1" ནས་"%1"། Copying failed, the reason is: %1 འདྲ་བཟོ་ཕམ་དང་།རྒྱུ་མཚན་ནི་%1། Moving "%1" "%1"སྤོ་བཞིན་ཡོད་། Moving failed, the reason is: %1 སྒུལ་བདེའི་ཕམ་ཁ་དང་།རྒྱུ་རྐྱེན་ནི་%1། File operation error: ཡིག་ཆ་བཀོལ་སྤྱོད་བྱེད་སྟངས་ནོར་བ། The reason is: %1 དེའི་རྒྱུ་མཚན་ནི། Cancel མེད་པར་བཟོ་བ Skip མཆོང་། Skip All ཚང་མ་མཆོང་། Rename མིང་བསྐྱར་འདོགས། Please enter a new name ཡིག་ཆ་གསར་པའི་མིང་འབྲི་རོགས། OK གཏན་འཁེལ་བྱེད་པ། MainProgressBar OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Are you sure want to cancel all file operations ཁྱོས་ཡིག་ཆའི་བཀོལ་སྤྱོད་ཐམས་ཅད་རྩིས་མེད་གཏང་རྒྱུ་ཡིན་ཡིན་ནམ། canceling ... འདོར་བ།... starting ... ད་ལྟ་འགོ་ཚུགས་བཞིན་འདུག་་་ cancel all file operations ཡིག་ཆ་བཀོལ་སྤྱོད་ཡོད་ཚད་རྩིས་མེད། File operation ཡིག་ཆ་བཀོལ་སྤྱོད། sync ... གོམ་པ་མཉམ་སྤོ་བྱེད་བཞིན་པ། MessageDialog Forcibly pulling out the device may cause data loss or device exceptions! OtherButton Other queue རིམ་བསྟར་གཞན། Peony::AdvanceSearchBar all ཚང་མ། start search འཚོལ་བཤེར་འགོ་བརྩམ། this year ད་ལོ། this week གཟའ་འདི། audio སྒྲ་ཟློས། image པར་རིས།། today དེ་རིང་། video བརྙན་ལམ། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། file name ཡིག་ཆ་མིང་།: show hidden file སྦས་པའི་ཡིག་ཆ་མངོན་པ། input key words... གནད་ཚིག་ནང་འཇུག Have no key words or search location! གནད་ཡིག་དང་རྒྱུ་ལམ་མི་འདུག Choose file size ཡིག་ཆ་འདེམ་པ། Choose File Type ཡིག་ཆ་འདེམ་པ། medium(1M-100M) འབྲིང(1M-100M) this month ཟླ་འདི། big(100M-1G) ཅུང་ཆེ(100M-1G) browse རགས་ལྟ། file folder ཡིག་ཁུག hidden advance search page མཐོ་རིམ་འཚོལ་བཤེར་ངོས་གབ་པ། wps file WPSཡིག་ཆ། others གཞན་དག search བཤེར་འཚོལ། Select path རྒྱུ་ལམ་གདམ་གསེས། content ནང་དོན། Key Words གནད་ཚིག choose search path... འཚོལ་གནས་གདམ་པ། tiny(0-16K) ཆེས་ཆུང(0-16K) year ago ལོ་གཅིག་གི་སྔོན། Search Location རྒྱུ་ལམ་འཚོལ་བཤེར། large(>1G) ཆེས་ཆེ(>1G) Modify Time 修改时间 go back ཕྱིར་ལོག Choose Modify Time དུས་ཚོད་བཅོས་བསྒྱུར་གདམ་པ། small(16k-1M) ཆུང་ཆུང་(16k-1M Operate Tips གསལ་བརྡ། Search file name or content at least choose one! ཡིག་ཆའི་མིང་དང་ནང་དོན་འཚོལ་བཤེར་མ་མཐའ་ཡང་གཅིག་གཏན་འཁེལ་དགོས། text file ཡིག་རྐྱང་ཡིག་ཆ། Peony::AdvancedLocationBar Search Content... འཚོལ་བཤེར་ནང་དོན། Peony::AllFileLaunchDialog OK གཏན་འཁེལ་བྱེད་པ། Choose new application ཉེར་སྤྱོད་གསར་བ་ཞིག་འདེམ་པ། Cancel མེད་པར་བཟོ་བ apply now མྱུར་དུ་ཉེར་སྤྱོད། Choose an Application to open this file ཉེར་སྤྱོད་ཞིག་གདམ་པ་དང་ཡིག་ཆ་འདི་ཁ་ཕྱེ་བ། Peony::BasicPropertiesPage Name མིང་། move སྤོ་བ། Error ནོར་འཁྲུལ། Size: ཆེ་ཆུང་།: Type: རིགས་གྲས།: Open with: ཁ་འབྱེད་སྟངས། Choose a new folder: ཡིག་ཁུག་གསར་པ་ཞིག་འདེམ། Time Access: ཆུ་ཚོད་འདྲི་བ། %1 Bytes %1 ཡིག་ཚིགས། Change བཟོ་བཅོས། Include: ཚུད་དེ། Can't get remote file information རྒྱང་སྦྲེལ་ཡིག་ཆའི་ཆ་འཕྲིན་ལེན་མ་ཐུབ། Description: གསལ་བཤད།: cannot move a folder to itself ! ཡིག་ཁུག་གཅིག་ནས་ནང་ཁུལ་དུ་སྤོ་འགུལ་མི་ཐུབ། Hidden གབ་པ། Location ས་གནས། Property: གཏོགས་གཤིས། Space Useage: བར་སྟོངས་ཆ་ཆུང་། symbolLink མྱུར་ལམ་རི་མོ། Choose a custom icon རང་སྒྲུབ་རྟགས་རིས་འདེམ་པ། yyyy-MM-dd, HH:mm:ss yyyyལོMMཟླddཉིན, HH:mm:ss Time Modified: བཅོས་བསྒྱུར་དུས་ཚོད། Readonly ཀློག་ཙམ། %1 files, %2 folders %1ཡིག་ཆ། %2 ཡིག་ཁུག %1 (%2 Bytes) %1 (%2 ཡིག་ཚིགས) yyyy-MM-dd, hh:mm:ss AP yyyyལོMMཟླddཉིན, hh:mm:ss AP Select multiple files ཡིག་ཆ་མང་པོ་འདེམ་པ། Folder ཡིག་ཁུག usershare རང་སའི་རྩིས་འཁོར་མཉམ་སྤྱོད་ Space Usage: Time Create: Peony::ComputerPropertiesPage Total Space: ཤོང་ཚད་ཡོངས། Kylin Burner ཕབ་སྐྲུན། You should mount this volume first ཤོག་དྲིལ་འདི་བཀལ་ན་གཞི་ནས་ཆ་འཕྲིན་ལྟ་ཐུབ། User Name: སྤྱོད་མཁན་གྱི་མིང་། : Name: མིང་། (&N) Type: རིགས་གྲས།: File System ཡིག་ཆའི་རྒྱུད་ཁོངས། CPU Core: སྲོག་སྙིང་གྲངས། CPU Name: སྒྲིག་་གཅོད་ཆས། Open with: ཁ་འབྱེད་སྟངས། Desktop: ཅོག་ངོས། Unknown མི་ཤེས། Memory Size: ནང་ཁོག Free Space: བར་སྟོང་ལྷག་མ།: Used Space: བཀོལ་གསྤྱོད་བར་སྟོངས། Data གཞི་གྲངས་སྡེར་མ། Peony::ConnectServerDialog ip ཞབས་ཞུ་ཆས། add ཁ་སྣོན། port མཐུད་ཁ། type རིགས་རྣམ། delete འདོར་བ། connect འབྲེལ་མཐུད། connect to server ཞབས་ཞུའི་འཕྲུལ་ཆས་ལ་སྦྲེལ་བ། Personal Collection server: སྒེར་གྱི་གསོག་ཉར་ཞབས་ཞུ་ཆས། Warning ཐ་ཚིག་ ip input error, please re-enter! port input error, please re-enter! Peony::ConnectServerLogin ok གཏན་འཁེལ། name མིང་། guest ཡུལ་སྐོར་བ (མིང་མེད་ཐོ་འཇུག) The login user ཐོ་འཇུག་ཐོབ་ཐང་། cancel ལེན་པ། Registered users སྤྱོད་མཁན་ཐོ་འགོད། Please enter the %1's user name and password of the server. ཞབས་ཞུ་ཆས་ %1ཡི་སྤྱོད་མཁན་མིང་དང་གསང་ཨང་ནང་འཇུག་བྱེད་རོགས། User's identity འབྲེལ་མཐུད་ཐོབ་ཐང་། password གསང་ཨང་། Remember the password གསང་ཨང་དེ་སེམས་ལ་ཟུངས། Peony::CreateLinkInternalPlugin Choose a Directory to Create Link སྦྲེལ་མཐུད་གསར་སྐྲུན་གྱི་དཀར་ཆག་འདེམ་པ། Create Link to Desktop སྒྲོག་ངོས་ཀྱི་མྱུར་ལམ་རི་མོར་བསྐུར་བ། Create Link to... མྱུར་ལམ་རི་མོ་བསྐུར་ནས Create Link Menu Extension. སྦྲེལ་མཐུད་གསར་སྐྲུན ། Peony-Qt Create Link Extension སྦྲེལ་མཐུད་གསར་སྐྲུན ། Peony::CreateSharedFileLinkMenuPlugin Create Link to Desktop སྒྲོག་ངོས་ཀྱི་མྱུར་ལམ་རི་མོར་བསྐུར་བ། Peony::CreateTemplateOperation NewFile ཡིག་ཆ་གསར་བཟོ། Create file ཡིག་ཆ་བཟོ་བ། NewFolder དཀར་ཆག་གསར་བ། Create file error ཡིག་ཆ་གསར་སྐྲུན་ནོར་བ། Peony::CustomErrorHandler Is Error Handled? Error not be handled correctly Peony::DefaultAcitonWidget No default app 没有设置默认打开方式 Peony::DefaultOpenWithWidget No default app 没有设置默认打开方式 Peony::DefaultPreviewPage Can not preview this file. ཡིག་ཆ་འདི་སྔོན་ལྟ་བྱ་མི་ཐུབ། Select the file you want to preview... ཁྱོད་ཀྱིས་སྔོན་ལྟ་བསམ་པའི་ཡིག་ཆ་འདེམ་པ། Peony::DefaultPreviewPageFactory This is the Default Preview of peony-qt ཡིག་ཆའི་ཞིབ་ཆའི་ཆ་འཕྲིན་མངོན་པ། Default Preview ཞིབ་ཕྲའི་ཆ་འཕྲིན། Peony::DetailsPropertiesPage %1 px %1བརྙན་རྒྱུ། Name: བྱ་རིམ་གྱི་མིང་། Owner བདག་པོ། Create time: གསར་བཟོའི་དུས་ཚོད། Computer: རྩིས་ཆས། Can't get remote file information རྒྱང་སྦྲེལ་ཡིག་ཆའི་ཆ་འཕྲིན་ལེན་མ་ཐུབ། Owner: བདག་པོ། Width: ཞེང་ཚད། Computer རྩིས་ཆས། File size: ཡིག་ཆའི་ཆེ་ཆུང་། File type: ཡིག་ཆའི་རིགས་གྲས། Location: གནས་ས།: %1 (this computer) %1 (གློག་ཀླད་འདི) yyyy-MM-dd, HH:mm:ss yyyyལོMMཟླddཉིན, HH:mm:ss Unknown མི་ཤེས། yyyy-MM-dd, hh:mm:ss AP yyyyལོMMཟླddཉིན, hh:mm:ss AP Modify time: བཅོས་བསྒྱུར་དུས་ཚོད། Height: མཐོ་ཚད། Peony::DirectoryView::IconView Icon View རིས་རྟགས་མཐོང་རིས། warn ཐ་ཚིག་ This operation is not supported. བཀོལ་སྤྱོད་འདི་ལ་རྒྱབ་སྐྱོར་མི་བྱེད་པ་། Peony::DirectoryView::ListView List View རེའུ་མིག་གི་མཐོང་རིས། warn ཐ་ཚིག་ This operation is not supported. བཀོལ་སྤྱོད་འདི་ལ་རྒྱབ་སྐྱོར་མི་བྱེད་པ་། Peony::DirectoryViewMenu Cut དྲས་གཏུབ། Copy འདྲ་ཕབ། Name མིང་། Open ཁ་འབྱེད། More applications... ཉེར་སྤྱོད་སྔར་ལས་མང་བ། Error ནོར་འཁྲུལ། Paste སྦྱར་བ། Ascending Order འཕར་རིམ། Descending Order འགྲིབ་རིམ། Folder First ཡིག་ཁུག་སྔོན་དུ། File:"%1" is not exist, did you moved or deleted it? ཡིག་ཆ ”%s“མི་འདུག ཁྱེད་ཀྱིས་གསུབས་པའམ་གཞན་དུ་སྤོ་རྒྱུ་ཡིན་ནམ། Delete forever གཏན་དུ་སུབ་པ། Open Parent Folder in New Window སྒེའུ་ཁུང་གསར་པའི་ཁྲོད་དཀར་ཆག་ཐམས་ཅད་ཁ་ཕྱེ་བ། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། Sort Order... གོ་རིམ་སྒྲིག་པ། Delete to trash སྙིགས་སྣོད་དུ་དོར་བ། Add to bookmark ཉར་ཚགས་ཁུག་ཏུ་བླུགས་པ། Delete བསུབ་པ། Show Hidden སྦས་པའི་ཡིག་ཆ་མངོན་པ། New Folder ཡིག་ཁུག་གསར་འཛུགས། Folder ཡིག་ཁུག New... གསར་འཛུགས།... Rename མིང་བསྐྱར་འདོགས། Delete Permanently བརྟན་འདོར། Sort Preferences... རིམ་སྒྲིག་ལེགས། Sort By... རིམ་སྒྲིག་བྱེད་སྟངས། Properties ངོ་བོ། format རྣམ་གཞག Refresh /གསར་སྒྱུར། Restore ཕྱིར་ལོག Open in New Tab དོང་འཛར་གསར་པའི་ཁ་འབྱེད་པ། Reverse Select ཕྱིར་འདེམ། Open with... 'ཁ་འབྱེད་སྟངས་...' Open %1 selected files གདམ་ཟིནཡིག་ཆ%1ཁ་ཕྱེ་བ། Clean All ཐམས་ཅད་གཙང་སེལ། Select All ཡོད་ཚད་འདེམ་པ། Empty File ཡིག་རྐྱང་ཡིག་ཚགས།། &Clean the Trash སྙིགས་སྣོད་གཙང་སེལ། (&C) Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། Chinese First རྒྱ་ཡིག་སྔོན་དུ། Open in New Window སྒེའུ་ཁུང་གསར་པ་ནས་ཁ་ཕྱེ་བ། Modified Date ཟླ་ཚེས་བཅོས་བསྒྱུར། View Type... མཐོང་རིས་རིགས་རྣམ། Peony-Qt filesafe menu Extension Peony File Labels Menu Extension ཡིག་ཆའི་མཚོན་རྟགས། Orignal Path གདོད་མའི་འགྲོ་ལམ་ MultiSelect New View Type Sort By Sort Order Sort Preferences Peony::FMWindow Redo བསྐྱར་བཟོ། Undo འདོར་བ། Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. རྩོམ་པ་པོ། Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> པར་དབང་ཡོད་ཚད (C): 2019-2020ཆི་ལིན་ཆ་འཕྲིན་ལག་རྩལ་ཚད་ཡོད་ཀུང་ཟི། clear record ལོ་རྒྱུས་གཙང་སེལ། New Folder ཡིག་ཁུག་གསར་འཛུགས། File Manager ཡིག་ཆ་དོ་དམ་ཆས། Loaing... Press Esc to stop a loading. གསར་སྣོན་བྱེད་སྒང་ཡིན། Escམནན་ནས་རྩིས་མེད་གཏོང་། advanced search མཐོ་རིམ་འཚོལ་བཤེར། Peony Qt ཡིག་ཆ་དོ་དམ་ཆས། Peony::FileCopy The dest file "%1" has existed! དམིགས་བཟུང་ཡིག་ཆ་%1ཡོད། Error in source or destination file path! ཁུངས་གནས་ཡུལ་ལམ་ཡང་ན་དམིགས་བཟུང་ཡིག་ཆ་རྒྱུ་ལམ་ནོར་བ། Error opening source or destination file! ཁུངས་ཡིག་ཆའམ་དམིགས་བཟུང་ཡིག་ཆ་ཁ་ཕྱེ་བ་ནོར་བ། Reading and Writing files are inconsistent! ཡིག་ཆ་ཀློག་པ་དང་འབྲི་བ་མི་གཅིག operation cancel བཀོལ་སྤྱོད་རྩིས་མེད། Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! vfat/fat32ཡིག་ཆའི་མ་ལག་གིས་ཡིག་ཆ་རེ་རེའི་ཆེ་ཆུང་4 GBལ་རྒྱབ་སྐྱོར་མི་བྱེད། Please check whether the device has been removed! སྒྲིག་ཆས་གཞན་གྱིས་སྤོས་ཡོད་མེད་ལ་ཞིབ་བཤེར་བྱེད་རོགས་། File opening failure ཡིག་ཆ་ཁ་འབྱེད་ཕམ་ Write file error: There is no avaliable disk space for device! ཡིག་ཆ་འབྲི་ནོར་ཤོར་བ་དང་།སྒྲིག་ཆས་ཐོག་བར་སྟོང་འདང་ངེས་ཤིག་མེད་། Peony::FileCopyOperation Cannot opening file, permission denied! ཡིག་ཆ་ཁ་ཕྱེ་ཐབས་བྲལ། དབང་ཚད་མི་འདང་། File copy error ཡིག་ཆ་པར་སློག་ནིར་འཁྲུལ། Create folder %1 failed: %2 ཡིག་ཁུག་%1ནོར་འཁྲུལ།%2 File:%1 was not found. ཡིག་ཆ་%1རྙེད་མ་བྱུང་། Burn failed Peony::FileDeleteOperation File delete error ཡིག་ཆ་གསུབས་པ་ནོར་བ། Delete file error ཡིག་ཆའི་ནོར་འཁྲུལ་སུབ་པ་ Invalid Operation! Can not delete "%1". ཁྲིམས་འགལ་གྱི་བཀོལ་སྤྱོད། "%1"བསུབ་མི་རུང་། Peony::FileEnumerator Error ནོར་འཁྲུལ། The password dialog box is canceled Peony::FileInfo data གཞི་གྲངས་སྡེར་མ། folder file text file ཡིག་རྐྱང་ཡིག་ཆ། Peony::FileInfoJob Trash སྙིགས་སྒམ། Computer རྩིས་ཆས། Network དྲ་བ། Recent ཉེ་ཆར། Peony::FileItem Error ནོར་འཁྲུལ། Can not find path "%1",are you moved or renamed it? རྒྱུ་ལམ་མ་རྙེད། :"%1"ཁྱེད་རང་སྤོ་འགུལ་དང་མིང་བསྐྱར་འདོགས་བྱ་འམ། Open Link failed མྱུར་ལམ་རི་མོ་ཁ་ཕྱེ་བ་ཕམ་ཉེས་བྱུང་། File not exist, do you want to delete the link file? དམིགས་བཟུང་ཡིག་ཁུག་བསྡད་མི་འདུག ཕན་མེད་མྱུར་ལམ་རི་མོ་འདི་གསུབ་རྒྱུ་ཡིན་ནམ། Can not open path "%1",permission denied. རྒྱུ་ལམ"%1"ཁ་ཕྱེ་བ་ཕམ་ཉེས་བྱུང་། དབང་ཚད་ཁས་ལེན་མ་བྱས། Peony::FileItemModel Symbol Link, མྱུར་ལམ་རི་མོ། child(ren) སྒེར་གྱི་བུ་གྲངས། File Name ཡིག་ཆའི་མིང་། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། Delete Date ཟླ་ཚེས་གསུབས་པ། Modified Date ཟླ་ཚེས་བཅོས་བསྒྱུར། Original Path གདོད་མའི་འགྲོ་ལམ་ Peony::FileLabelInternalMenuPlugin Tag a File with Menu. འདེམ་བྱང་ཁྲོད་ནུས་པའི་མཚོན་རྟགས་སྣོན་པ། Delete All Label མཚོན་རྟགས་ཆ་ཚང་གསུབས་པ། Add File Label... མཚོན་རྟགས་སྣོན་པ། Peony File Labels Menu Extension ཡིག་ཆའི་མཚོན་རྟགས། Peony::FileLauchDialog OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Set as Default སོར་བཞག་རྩིས་ཐོ་ལ་བཀོད། Applications ཉེར་སྤྱོད་བྱ་རིམ། Choose an Application to open this file ཉེར་སྤྱོད་ཞིག་གདམ་པ་དང་ཡིག་ཆ་འདི་ཁ་ཕྱེ་བ། Open application is used by default: You can search in the Software Center for an application that can open this file, or select an existing application on your computer. Other application: Select application: Always open the %1%2 file with this application Choose other application ཉེར་སྤྱོད་གཞན་འདེམ་པ། Go to application center མཉེན་ཆས་ལྟེ་བར་འགྲོ་བ། Ok གཏན་འཁེལ་བྱེད་པ། Select Open Action Select Desktop files(*.desktop) Still using the last opened application: The opening mode of the %1 %2 unknown No application is set to open file "%1 %2" known Peony::FileLaunchAction Error ནོར་འཁྲུལ། The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? སྦྲེལ་མཐུད་འདིས་བསྟན་པའི་ཉེར་སྤྱོད་བསྱུར་བཅོས་སམ་བཤིག་འདོན་བྱས་ཚར། དེའི་རྐྱེན་གྱིས་མྱུར་ལམ་རི་མོ་རྒྱུན་ལྡན་ལས་ཀ་བྱེད་ཐབས་བྲལ། མྱུར་ལམ་རི་མོ་འདི་སུབ་རྒྱུ་ཡིན་ནམ། By Default App སོར་བཞག་ཁ་ཕྱེ་ཐབས་བེད་སྤྱོད་གཏོང་། Can not open %1, file not exist, is it deleted? %1ཁ་ཕྱེ་མ་ཐུབ། ཡིག་ཆ་མི་འདུག ཁྱེད་ཀྱིས་གསུབས་ཚར་མིན་གཏན་འཁེལ་བྱོས། Open Failed ཁ་ཕྱེ་བ་ཕམ་པ། Detected launching an executable file %1, you want? ལག་བསྟར་རུང་བའི་ཡིག་ཆ་ཞིག་ཁ་ཕྱེ་བཞིནའདུག%1 ཁྱེད་ཀྱི་རེ་བར། Open Link failed མྱུར་ལམ་རི་མོ་ཁ་ཕྱེ་བ་ཕམ་ཉེས་བྱུང་། Execute in Terminal མཐའ་སྣེ་ནས་འཁོར་སྐྱོད་བྱེད། Can not get a default application for opening %1, do you want open it with text format? སོར་བཞག་་ཁ་ཕྱེ་བའི་%1ཉེར་སྤྱོད་རྙེད་སོན་མ་བྱུང་། ཡིག་ཆ་རྩོམ་སྒྲིག་ཆས་བཀོལ་ནས་ཁ་ཕྱེ་རྒྱུ་ཡིན་ནམ། Can not open %1, Please confirm you have the right authority. %1ཁ་ཕྱེ་མ་ཐུབ། ཁྱེད་ཀྱིས་ཡང་དག་པའི་དབང་ཚད་གཏན་འཁེལ་བྱོས། Execute Directly ཐད་ཀར་འཁོར་སྐྱོད། Open App failed མྱུར་ལམ་རི་མོའི་གནད་དོན། File not exist, do you want to delete the link file? དམིགས་བཟུང་ཡིག་ཁུག་བསྡད་མི་འདུག ཕན་མེད་མྱུར་ལམ་རི་མོ་འདི་གསུབ་རྒྱུ་ཡིན་ནམ། Launch Options གདམ་བྱ་ལག་བསྟར། No Permission File is not readable. Please check if file has read permisson. File original path not exist, are you deleted or moved it? Warning ཐ་ཚིག་ Can not open the file, application is disabled Peony::FileLinkOperation Link file error ཡིག་ཆའི་སྦྲེལ་མཐུད་བཟོ་བ་ཕམ་ཉེས་བྱུང་། Symbolic Link མྱུར་ལམ་རི་མོ། Peony::FileMoveOperation File delete error ཡིག་ཆ་གསུབས་པ་ནོར་བ། Invalid Operation. ནུས་མེད་ཀྱི་བཀོལ་སྤྱོད། Move file error ཡིག་ཆ་སྤོ་སྒུལ་ནོར་བ། Create file error ཡིག་ཆ་གསར་སྐྲུན་ནོར་བ། Invalid Operation ནུས་མེད་ཀྱི་བཀོལ་སྤྱོད། Cannot opening file, permission denied! ཡིག་ཆ་ཁ་ཕྱེ་ཐབས་བྲལ། དབང་ཚད་མི་འདང་། File:%1 was not found. ཡིག་ཆ་%1རྙེད་མ་བྱུང་། Burn failed Peony::FileOperationAfterProgressPage &More Details ཞིབ་ཕྲའི་ཆ་འཕྲིན། (&M) Peony::FileOperationErrorDialog null སྟོང་པ། &Retry ཡང་བསྐྱར་ཚོད་ལེན། Backup All ཆ་ཚང་གྲབས་ཉར། Source File: ཁུངས་ཡིག་ཆ།: Backup གྲབས་ཉར། Ignore སྣང་མེད་དུ་བཞག Error message: ནོར་འཁྲུལ་བརྡ་འཕྲིན། Dest File: དམིགས་བཟུང་ཡིག་ཆ། Overwrite All འགེབས་པ། Ignore All ཚང་མ་སྣང་མེད་དུ་བཞག unkwon མ་རྟོགས་པའི་རྒྱུ་རྐྱེན། &Cancel ལེན་པ།(&C) Overwrite འགེབས་པ། File Operation Error ཡིག་ཆ་བཀོལ་སྤྱོད་ནོར་འཁྲུལ། Peony::FileOperationErrorDialogConflict This location already contains the file, འདི་ན་ཡིག་ཆ་འདི་ཚུད་ཡོད། Backup གྲབས་ཉར། Ignore སྣང་མེད་དུ་བཞག Do you want to override it? ཁྱེད་ཀྱིས་འགེབས་སུབ་བྱ་ཐག་ཆོད་ཡིན་ནམ། Replace བརྗེ་བ། <p>This location already contains the file '%1', Do you want to override it?</p> <p>གནས་འདིར་མིང་ལ་“%1”ཡི་ཡིག་ཆ་ཚུད་ཟིན། ཁྱེད་ཀྱིས་བརྗེ་སྤོར་བྱ་ཐག་ཆོད་ཡིན་ནམ།</p> Do the same ཉེར་སྤྱོད་ཆ་ཚང་། Unexpected error from %1 to %2 "%1"ནས་"%2"བར་རྒྱུན་མིན་ནོར་འཁྲུལ་བྱུང་། Peony::FileOperationErrorDialogNotSupported Yes རེད། Cancel མེད་པར་བཟོ་བ Do the same ཉེར་སྤྱོད་ཆ་ཚང་། Make sure the disk is not full or write protected and that the file is not protected སྡུད་སྡེར་ཁ་མ་གང་བའམ་སྲུང་སྐྱོབ་མ་བྱས་པར་ཡིག་ཆ་བེད་སྤྱོད་མ་བཏང་བ་ཨེ་ཡིན་ལྟོས། No ཡོད་མེད་ Peony::FileOperationErrorDialogWarning OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Make sure the disk is not full or write protected and that the file is not protected སྡུད་སྡེར་ཁ་མ་གང་བའམ་སྲུང་སྐྱོབ་མ་བྱས་པར་ཡིག་ཆ་བེད་སྤྱོད་མ་བཏང་བ་ཨེ་ཡིན་ལྟོས། Peony::FileOperationInfo Symbolic Link མྱུར་ལམ་རི་མོ། Peony::FileOperationManager Do you want to put selected %1 item(s) into trash? ཁྱེད་ཀྱིས་འདེམ་ཟིན་པའི %1སྙིགས་སྣོད་དུ་འདོར་རྒྱུ་ཡིན་ནམ། Can't delete. གསུབ་མི་རུང་། No, go to settings མིན། ཇུས་བཀོད་དུ་འཕར་མཆོང་བྱེད། You can't delete a file whenthe file is doing another operation གཞན་ནས་སྤྱོད་བཞིན་པའི་ཡིག་ཆ་ཞིག་གསུབས་མི་ཐུབ། There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. བཀོལ་སྤྱོད་འདི་ལག་བསྟར་མ་བྱས་སྔོན་ལ་བཀོལ་སྤྱོད་མ་ཚར་བ་ཡོད། བཀོལ་སྤྱོད་སྔོན་མ་ཚར་རྗེས་གཞི་ནས་ལག་བསྟར་བྱེད་ཐུབ། གལ་ཏར་ཁྱོད་ཀྱིས་ཡིག་ཆ་བཀོལ་སྤྱོད་མཉམ་པོར་བྱ་བསམ་ན།ཁྱོད་ཀྱིས་འདེམ་ཐོའི་ཁྲོད་"བཀོལ་སྤྱོད་མཉམ་པོར་བྱ"འདེམ་དགོས། File Operation is Busy བཀོལ་སྤྱོད་བྲེལ་འཚུབ་ཆེ། Warn ཐ་ཚིག་ '%1' is occupied,you cannot operate! "%1"བསྐྱར་ཟློས།བཀོལ་སྤྱོད་བྱེད་ཐབས་མེད། OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Do not show again མི་འཆར་བ་ Peony::FileOperationPreparePage state: རྣམ་པ། counting: སྡོམ་རྩིས། Peony::FileOperationProgressPage To: འབྱོར་མཁན། From: གཏོང་མཁན། &More Details ཞིབ་ཕྲའི་ཆ་འཕྲིན། (&M) Peony::FileOperationProgressWizard copying... པར་སློག་བྱེད་སྒང་ཡིན། %1 files, %2 %1ཡིག་ཆ། སྡོམ%2 A file operation is running backend... ཡིག་ཆ་ཞིག་གི་བཀོལ་སྤྱོད་རྒྱབ་སྟེགས་ནས་འཁོར་སྐྱོད་བྱེད་བཞིན་ཡོད། Handling... ཐག་གཅོད་སྒང་ཡིན། %1 done, %2 total, %3 of %4. ལེགས་གྲུབ%1 སྡོམ%2 %4ཁྲོད་ཀྱི་ཨང%3པ། File Manager ཡིག་ཆ་དོ་དམ་ཆས། Rollbacking... ཕྱིར་འགྲིལ་སྒང་། Clearing... གཙང་སེལ་བྱེད་སྒང་ཡིན། Syncing... མཉམ་སྤོ་བྱེད་སྒང་ཡིན། &Cancel ལེན་པ།(&C) File Operation ཡིག་ཆ་བཀོལ་སྤྱོད། Preparing... སྟ་གོན་བྱེད་བཞིན་པ།... clearing: %1, %2 of %3 གཙང་སེལ་བྱེད་སྒང་ཡིན། :%1,%3ཁྲོད་ཀྱི་%2པ། Peony::FilePreviewPage %1x%2 %1x%2 Size: ཆེ་ཆུང་།: color model: ཚོན་མདོག་དཔེ་རྣམ། Time Access: ཆུ་ཚོད་འདྲི་བ། Children Count: ཁོངས་འདུ་ཡིག་ཆ། Image resolution: འབྱེད་ཕྱོད། File Name: ཡིག་ཆ་མིང་།: File Type: ཡིག་ཆའི་རིགས་གྲས། %1 total, %2 hidden སྡོམ་རིགས%1དང་དེའི་ཁྲོད་%2ཡི་གབ་སྦས་ཡིག་ཆ། Time Modified: བཅོས་བསྒྱུར་དུས་ཚོད། usershare རང་སའི་རྩིས་འཁོར་མཉམ་སྤྱོད་ Time Created: Peony::FileRenameOperation File Rename error སྦྲེལ་མཐུད་གསར་སྐྲུན ། Rename file error མིང་བསྐྱར་འདོགས་ནོར་བ། Invalid file name "%1" ནུས་མེད་ཀྱི་ཡིག་ཆའི་མིང་། The file "%1" will be hidden! ཡིག་ཆ "%1"ཡུན་ཙམ་ནས་གབ་རྒྱུ་རེད། File Rename warning ཡིག་ཆའི་མིང་བསྐྱར་འདོགས་ཉེན་བརྡ། Invalid file name %1%2%3 . ཁྲིམས་འགལ་གྱི་ཡིག་ཆའི་མིང་ལ་"%1" "%2" "%3"། The file %1%2%3 will be hidden when you refresh or change directory! ཡིག་ཆ"%1" "%2" "%3"ནི་དཀར་ཆག་གསར་བཀོད་བྱས་རྗེས་སྦས་ཡོད། Peony::FileTrashOperation trash:/// trash:/// Can not trash this file, would you like to delete it permanently? ཡིག་ཆ་འདི་ཕྱིར་ལེན་མི་ཐུབ། གཏན་དུ་གསུབས་རྒྱུ་ཡིན་ནམ། The user does not have read and write rights to the file '%1' and cannot delete it to the Recycle Bin. སྤྱོད་མཁན་གྱིས་མིག་སྔའི་ཡིག་ཆ་%1 ཀློག་འབྲིའི་དབང་ཆ་མི་འདུག སྙིགས་སྣོད་འདུ་འདོར་མི་ཐུབ། Trash file error ཡིག་ཆ་སྙིགས་སྣོད་དུ་གཡུགས་པ་ནོར་འཁྲུལ། Invalid Operation! Can not trash "%1". ཁྲིམས་འགལ་གྱི་བཀོལ་སྤྱོད་བྱེད་སྟངས་ལ།"%1"ཕྱིར་བསྡུ་བྱེད་ཐབས་མེད། Can not trash སླར་བསྡུ་མི་ཐུབ། Can not trash files more than 10GB, would you like to delete it permanently? 10GBལས་ཆེ་བའི་ཡིག་ཆ་ཕྱིར་བསྡུ་མི་ཐུབ་པས།ཇི་སྲིད་བར་དུ་བསུབ་སྲིད་དམ། Peony::FileUntrashOperation Untrash file error སྙིགས་སྣོད་ནས་ཡིག་ཆ་སླར་གསོ་ཕམ་ཉེས་བྱུང་། Peony::GlobalSettings HH:mm:ss yyyy-MM-dd yyyy/MM/dd AP hh:mm:ss Peony::HeaderBar Spread Minimize Close སྒོ་རྒྱག་པ་ Peony::LocationBar Search "%1" in "%2" %2ཁྲོད་%1འཚོལ་ཞིབ། File System ཡིག་ཆའི་རྒྱུད་ཁོངས། Open In New Tab དོང་འཛར་གསར་པའི་ཁ་འབྱེད་པ། Open In New Window སྒེའུ་ཁུང་གསར་བའི་ཁྲོད་ཁ་ཕྱེ་བ། Copy Directory པར་སློག་རྒྱུ་ལམ། Computer རྩིས་ཆས། Peony::MountOperation Operation Cancelled བཀོལ་སྤྱོད་དོར་བ། Login failed, unknown username or password error, please re-enter! Peony::NavigationToolBar Cd Up གྱེན་ཕྱོགས། Clear History ལོ་རྒྱུས་ཟིན་ཐོ་གཙང་སེལ། Refresh /གསར་སྒྱུར། Go Forward མདུན་སྐྱོད། Go Back ཕྱིར་ལོག History ལོ་རྒྱུས། Peony::NewFileLaunchDialog OK གཏན་འཁེལ་བྱེད་པ། Choose new application ཉེར་སྤྱོད་གསར་བ་ཞིག་འདེམ་པ། Cancel མེད་པར་བཟོ་བ apply now མྱུར་དུ་ཉེར་སྤྱོད། Choose an Application to open this file ཉེར་སྤྱོད་ཞིག་གདམ་པ་དང་ཡིག་ཆ་འདི་ཁ་ཕྱེ་བ། Peony::OpenWithPropertiesPage Other: གཞན། How do you want to open %1%2 files ? ཁྱོད་ཀྱི་རེ་བར་ཡིག་ཆ%1%2ཁ་འབྱེད་ཐབས་གང་ཡིན Default open with: ཁ་འབྱེད་རྣམ་པ་སོར་བཞག Go to application center མཉེན་ཆས་ལྟེ་བར་འགྲོ་བ། Choose other application ཉེར་སྤྱོད་གཞན་འདེམ་པ། Peony::PathEdit Go To བསྒྱུར་བ། Peony::PermissionsPropertiesPage Me (Me) (ང) Read ཚགས་ཚུད། Type རིགས་གྲས་ User སྤྱོད་མཁན། Group ཚོགས་པ། Other གཞན་དག Owner བདག་པོ། Write འབྲི་བ། Can not get the permission info. ཡིག་ཆའི་སབྲེལ་ཡོད་དབང་ཚད་ལོན་མི་ཐུབ། Others གཞན་དག You can not change the access of this file. ཁྱོས་ཡིག་ཆའི་དབང་ཚད་བཅོས་བསྒྱུར་བྱེད་ཐབས་བྲལ། User or Group སྤྱོད་མཁན་ནམ་ཚོ། Executable ལག་བསྟར་ཐུབ་པའི་ཡིག་ཆ། Target: %1 དམིགས་འབེན།: Group or User Read and Write Readonly ཀློག་ཙམ། (Current User) Current User Peony::PropertiesWindow Ok གཏན་འཁེལ་བྱེད་པ། Trash སྙིགས་སྒམ། %1 Files %1ཡིག་ཆ། Cancel མེད་པར་བཟོ་བ Recent ཉེ་ཆར། Properties ངོ་བོ། Selected འདེམ་པ། usershare རང་སའི་རྩིས་འཁོར་མཉམ་སྤྱོད་ Data གཞི་གྲངས་སྡེར་མ། Restore ཕྱིར་ལོག Peony::RecentAndTrashPropertiesPage Origin Path: མ་རྒྱུ་ལམ། Size: ཆེ་ཆུང་།: Deletion Date: སུབ་པའི་ཟླ་ཚེས། Original Location: ཐོག་མའི་གནས་ས། Show confirm dialog while trashing. སྙིགས་སྣོད་དུ་འདོར་སྐབས་གཏན་འཁེལ་བྱང་ཐོན་པ། Peony::SearchBar Input search key... གནད་ཚིག་ནང་འཇུག clear record ལོ་རྒྱུས་གཙང་སེལ། Input the search key of files you would like to find. གནད་ཚིག་ནང་འཇུག་གིས་རང་ལ་དགོས་པའི་ཡིག་ཆ་འཚོལ་བ། advance search མཐོ་རིམ་འཚོལ་བཤེར། Peony::SearchBarContainer all ཚང་མ། Clear གཙང་སེལ། audio སྒྲ་ཟློས། image པར་རིས།། video བརྙན་ལམ། file folder ཡིག་ཁུག wps file WPSཡིག་ཆ། others གཞན་དག text file ཡིག་རྐྱང་ཡིག་ཆ། Peony::SharedFileLinkOperation Symbolic Link མྱུར་ལམ་རི་མོ། Peony::SideBarCloudItem CloudStorage CloudFile Peony::SideBarFavoriteItem Favorite མཉེན་ཆས། KmreData Trash སྙིགས་སྒམ། Recent ཉེ་ཆར། Peony::SideBarFileSystemItem File System ཡིག་ཆའི་རྒྱུད་ཁོངས། Computer རྩིས་ཆས། Data གཞི་གྲངས་སྡེར་མ། Peony::SideBarMenu Eject སྒོར་བུད། Properties ངོ་བོ། format རྣམ་གཞག Unmount བཤིག་དོར། Delete Symbolic སུབ་པ། burndata Peony::SideBarModel Network དྲ་བ། Peony::SideBarPersonalItem Personal མི་སྒེར། Peony::SideBarSeparatorItem (No Sub Directory) སྟོང་བ། Peony::StatusBar ; %1 folders ;%1ཡིག་ཁུག ; %1 file, %2 ;%1ཡིག་ཁུག %2 ; %1 files, %2 total ;%1 ཡིག་ཁུག སྡོམ %2 ; %1 folder ;%1 ཡིག་ཁུག %1 selected %1གདམ་ཐོན་བྱུང་། Peony::SyncThread notify བརྡ་ཐོ་ Peony::ToolBar Cut དྲས་གཏུབ། Copy འདྲ་ཕབ། Clean Trash སྙིགས་སྣོད་གཙང་སེལ། &Help རོགས་རམ། (&H) Paste སྦྱར་བ། Trash སྙིགས་སྒམ། File Name ཡིག་ཆའི་མིང་། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. སྒེའུ་ཁུང་ཐམས་ཅད་སྒོ་བརྒྱབ་རྗེས་ཡིག་ཆ་དོ་དམ་ཆས་མུ་མཐུད་འཁོར་སྐྱོད་བྱེད་དུ་བཙུག་ན། ཐེངས་རྗེས་མར་སྒོ་འབྱེད་དུས་ཚོད་ཐུང་དུ་གཏོང་ཐུབ། ཡིན་ཡང་ཐོན་ཁུངས་དུས་ཀུན་ཏུ་སྤྱོད་བཞིན་ཡོད། Show Hidden སྦས་པའི་ཡིག་ཆ་མངོན་པ། Forbid Thumbnail བསྡུས་རིས་བཀོལ་མི་ཆོག Delete Permanently བརྟན་འདོར། Resident in Backend རྒྱུན་སྡོད་རྒྱབ་སྟེགས། Options འདེམས་ཚན། Restore ཕྱིར་ལོག Open in new Tab རྟགས་གསར་བའི་ངོས་ཁྲོད་ཁ་ཕྱེ་བ། Sort Type རིམ་སྒྲིག་རིགས་གྲས། &About... སྐོར། (&A) Descending རིམ་འབེབས། Ascending འཕེལ་རིམ། Peony Qt ཡིག་ཆ་དོ་དམ་ཆས། Open in New window སྒེའུ་ཁུང་གསར་བའི་ཁྲོད་ཁ་ཕྱེ་བ། Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. རྩོམ་པ་པོ། Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> པར་དབང་ཡོད་ཚད (C): 2019-2020ཆི་ལིན་ཆ་འཕྲིན་ལག་རྩལ་ཚད་ཡོད་ཀུང་ཟི། Modified Date ཟླ་ཚེས་བཅོས་བསྒྱུར། Peony::UserShareInfoManager Warning ཐ་ཚིག་ Peony::VolumeManager Error ནོར་འཁྲུལ། ProgressBar canceling ... འདོར་བ།... starting ... ད་ལྟ་འགོ་ཚུགས་བཞིན་འདུག་་་ sync ... གོམ་པ་མཉམ་སྤོ་བྱེད་བཞིན་པ། QObject YES ཡིན། Mark མཚོན་རྟགས། Basic གཞི་རྩ། begin format འགོ་རྩོམ་པ། close ཁ་རྒྱག Show the computer properties or items in computer. རྩིས་འཁོར་རང་བཞིན་མངོན་འཆར་རམ་རྩིས་འཁོར་ཁྲོད་ཀྱི་རྣམ་གྲངས། open with. ཁ་འབྱེད་སྟངས། The virtual file system cannot be opened རྟོག་བཟོ་ཡིག་ཆའི་རྒྱུད་ཁོངས་ཁ་ཕྱེ་མི་ཐུབ། Computer Properties རྩིས་འཁོར་རང་བཞིན། Permissions དབང་ཚད། Unable to eject %1 %1འཕར་མཆོང་མི་ཐུབ། Eject failed འཕར་མཆོང་ཕམ་ཉེས་བྱུང་། Show and modify file's permission, owner and group. ཡིག་ཆའི་དབང་ཚད་ལྟ་ཞིབ་དང་བཅོས་བསྒྱུར། Show the basic file properties, and allow you to modify the access and name. ཡིག་ཆའི་ཁྲོད་ཀྱི་གཞི་རྩའི་རང་བཞིན་མངོན་པ་དང་། ཡིག་ཆའི་མིང་བརྗེ་ཆོག་པ། Format operation has been finished successfully. རྣམ་བཞག་ཅན་་གྱི་བཀོལ་སྤྱོད་ལེགས་གྲུབ་བྱུང་། Unmount failed བཤིག་འདོན་ཕམ་ཉེས་བྱུང་། qmesg_notify བརྡ་ཐོ། Data synchronization is complete and the device can be safely unplugged! གཞི་གྲངས་མཉམ་སྤོ་ལེགས་གྲུབ། སྒྲིག་ཆས་བདེ་འཇགས་ངང་ལེན་ཆོག Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? ཤོག་དྲིལ་འདི་རྣམ་བཞག་ཅན་བྱས་ན་སྟེང་གི་གཞི་གྲངས་ཐམས་ཅད་མེད་པར་འགྱུར། ཁྱོད་ཀྱིས་རྣམ་བཞག་ཅན་དུ་བསྒྱུར་བའི་སྔོན་ལ་གཞི་གྲངས་གྲབས་གསོག་བྱོས། མུ་མཐུད་ཡིན་ནམ། Symbolic Link མྱུར་ལམ་རི་མོ། Force unmount failed བཙན་གྱིས་བཤིག་འདོན་ཕམ་ཉེས་བྱུང་། Unable to unmount it, you may need to close some programs, such as: GParted etc. བཤིག་འདོན་ཕམ་ཉེས་བྱུང་། ཁྱེད་ཀྱིས་སྔོན་ལ་བྱ་རིམ་འགའ་སྒོ་རྒྱག་དགོས་འདུག དཔེར་ན་དབྱེ་ཁུལ་རྩོམ་སྒྲིག་ཆས་ལྟ་བུ། Delete Permanently བརྟན་འདོར། Icon View རིས་རྟགས་མཐོང་རིས། file not found ཡིག་ཆ་མ་རྙེད། Error: %1 ནོར་འཁྲུལ།: permission denied དབང་ཚད་འགོག་པ། Can not trash these files. You can delete them permanently. Are you sure doing that? ཡིག་ཆ་འདི་དག་སྙིགས་སྣོད་དུ་འཇོག་མི་ཐུབ་པས། ཡིག་འདི་དག་གཏན་དུ་སུབ་རྒྱུ་ཡིན་ནམ། format རྣམ་གཞག duplicate འདྲ་ཕབ། File Manager ཡིག་ཆ་དོ་དམ་ཆས། Virtual file directories do not support move and copy operations རྟོག་བཟོ་ཡིག་ཆ་རྒྱུ་ལམ་སྤོ་འགུལ་དང་པར་སློག་བྱེད་མི་ཐུབ། Share Data རང་གནས་མཉམ་སྤྱོད། favorite མཉེན་ཆས། Show the folder children as rows in a list. རེའུ་མིག་རྣམ་པས་དཀརར་ཆག་སྟོན་པ། List View རེའུ་མིག་གི་མཐོང་རིས། Default search vfs of peony སོར་བཞག་ཡིག་ཆ་འཚོལ་བཤེར། Details ཆ་འཕྲིན་ཞིབ་ཕྲ། Operation not supported བཀོལ་སྤྱོད་འདིར་རྒྱབ་སྐྱོར་མི་བྱེད། Format failed རྣམ་གཞག་ཅན་དུ་སྒྱུར་བ་ཕམ་པ། Can not create a symbolic file for vfs location རྟོག་བཟོ་དཀར་ཆག་ལ་མྱུར་ལམ་རི་མོ་བཟོ་མི་ཐུབ། Sorry, the format operation is failed! རྣམ་བཞག་བཟོ་བ་ཕམ་ཉེས་བྱུང་། ཡང་བསྐྱར་ཚོད་ལྟ་བྱེད་རོགས། Open With ཁ་འབྱེད་སྟངས། Trash and Recent སྙིགས་སྣོད ཉེ་ཆར Show the file properties or items in trash or recent. སྙིགས་སྣོད་དང་ཉེ་ཆར་ཁྲོད་ཀྱི་ཡིག་ཆའི་རང་བཞིན་དང་རྣམ་གྲངས་མངོན་པ། Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། mark this file. ཡིག་ཆ་འདིར་རྟགས་རྒྱག་་པ། PeonyNotify ཡིག་ཆ་དོ་དམ་ཆས་ཀྱི་བརྡ་ཐོ། The virtual file system does not support folder creation རྟོག་བཟོ་ཡིག་ཆའི་རྒྱུད་ཁོངས་ནང་ཡིག་ཁུག་གསར་བཟོ་བྱེད་མི་ཐུབ། It need to synchronize before operating the device,place wait! ་སྒྲིག་ཆས་བཀོལ་སྤྱོད་སྔོན་ལ་་གཞི་གྲངས་མཉམ་སྤོ་བྱ་དགོས། ཁྱུག་ཙམ་སྒུག་དང་། Default favorite vfs of peony ཡིག་ཆ་དོ་དམ་ཆས་ཀྱི་རྟོག་བཟོ་ཡིག་ཆའི་རྒྱུད་ཁོངས་ཉར་གསོག་ཁུག་ཏུ་བཞག་ཡོད། Can not create symbolic file here, %1 འདི་ནས་མྱུར་ལམ་རི་མོ་བཟོ་མི་ཐུབ། %1 Show the folder children as icons. རིས་དབྱིབས་རྣམ་པས་དཀར་ཆག་འགོད་པ། Data synchronization is complete,the device has been unmount successfully! གཞི་གྲངས་མཉམ་སྤོ་ལེགས་གྲུབ། སྒྲིག་ཆས་བདེ་ལེགས་ངང་བཤིག་འདོན་ཐུབ་སོང་། Can not trash སླར་བསྡུ་མི་ཐུབ། Can not trash files more than 10GB, would you like to delete it permanently? 10GBལས་ཆེ་བའི་ཡིག་ཆ་ཕྱིར་བསྡུ་མི་ཐུབ་པས།ཇི་སྲིད་བར་དུ་བསུབ་སྲིད་དམ། Failed to open file "%1": insufficient permissions. ཡིག་ཆ་ཁ་ཕྱེ་མི་ཐུབ་།"%1"སྟེ་།དབང་ཚད་མི་འདང་བ་། File “%1” does not exist. Please check whether the file has been deleted. ཡིག་ཆ་"%1"མི་གནས་པ་དང་།བསུབ་ཡོད་མེད་གཏན་འཁེལ་བྱེད་རོགས་། data གཞི་གྲངས་སྡེར་མ། Computer རྩིས་ཆས། File System ཡིག་ཆའི་རྒྱུད་ཁོངས། The device has been mount successfully! སྒྲིག་ཆས་བཀལ་ནས་གྲུབ་འབྲས་ཐོབ་པའི་ངང་། Not authorized to perform operation. ལག་བསྟར་བཀོལ་སྤྱོད་ར་སྤྲོད་མེད་པ་ Error: %1 Do you want to unmount forcely? ནོར་འཁྲུལ་ནི།%1 བཙན་ཤེད་ཀྱིས་ཕབ་འཇུག་བྱ་དགོས་སམ། Formatting successful! But failed to set the device name. རྣམ་གཞག་བཅའ་ཐུབ་མིན་དང་།སྒྲིག་ཆས་བསྐྱར་དུ་མིང་བཏགས་པ་ཕམ་། Data གཞི་གྲངས་སྡེར་མ། File is not existed. ཡིག་ཆ་མི་གནས་པ་ Can not add a file to favorite directory. ཡིག་ཆ་ཁ་སྣོན་བྱེད་མི་ཐུབ་ནས་མགྱོགས་མྱུར་འཚམས་འདྲི་། burn operation has been cancelled རྐོ་ཕབ་བཀོལ་སྤྱོད་མེད་པར་བཟོས་། is busy! བྲེལ་བ་ཆེ། OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Do you want to empty the recycle bin and delete the files permanently? Once it has begun there is no way to restore them. གཙང་གཙང་གཙང་ཕྱིར་བསྡུའི་ས་ཚིགས་དང་ཕྱིར་བསྡུའི་ས་ཚིགས་ཚང་མའི་ནང་གི་ཡིག་ཆ་བསུབ་དགོས་སམ། གལ་ཏེ་མགོ་བརྩམས་།སླར་གསོ་བྱེད་ཐབས་བྲལ་། Failed to activate device: Incorrect passphrase སྒྲིག་ཆས་ཁ་ཕྱེ་ནས་ཕམ་སྟེ་།ནོར་འཁྲུལ་གྱི་གསང་ཨང་། Trash སྙིགས་སྒམ། Recent ཉེ་ཆར། Favorites UdfBurn::UdfAppendBurnDataDialog AppendBurnData Disc Type: འོད་སྡེར་རིགས་ Device Name: སྒྲིག་ཆས་ཀྱི་མིང་། OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Unknow མ་རྟོགས་པའི་རྒྱུ་རྐྱེན། Warning ཐ་ཚིག་ No burn data, please add! The disc name cannot be set to empty, please re-enter it! འོད་སྡེར་གྱི་མིང་སྟོང་བ་ཡིན་མི་རུང་།ཡང་བསྐྱར་ནང་འཇུག་བྱོས། AppendBurnData operation has been finished successfully. Sorry, the appendBurnData operation is failed! Failed ཕམ་པ། Burning. Do not close this window Burning this disc will append datas on it. Do you want to continue ? Burn Begin Burning Close སྒོ་རྒྱག་པ་ UdfBurn::UdfFormatDialog Format རྣམ་གཞག་ཅན། Disc Type: འོད་སྡེར་རིགས་ Device Name: སྒྲིག་ཆས་ཀྱི་མིང་། OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Unknow མ་རྟོགས་པའི་རྒྱུ་རྐྱེན། Warning ཐ་ཚིག་ The disc name cannot be set to empty, please re-enter it! འོད་སྡེར་གྱི་མིང་སྟོང་བ་ཡིན་མི་རུང་།ཡང་བསྐྱར་ནང་འཇུག་བྱོས། Format operation has been finished successfully. རྣམ་བཞག་ཅན་་གྱི་བཀོལ་སྤྱོད་ལེགས་གྲུབ་བྱུང་། Sorry, the format operation is failed! རྣམ་བཞག་བཟོ་བ་ཕམ་ཉེས་བྱུང་། ཡང་བསྐྱར་ཚོད་ལྟ་བྱེད་རོགས། Failed ཕམ་པ། Formatting. Do not close this window རྣམ་པ་ཅན་དུ་འགྱུར་བཞིན་ཡོད་།སྒེའུ་ཁུང་དེ་སྒོ་རྒྱག་མ་བྱེད་། Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? ཚད་གཞི་ཅན་གྱི་འོད་སྡེར་འདིས་གཞི་གྲངས་ཚང་མ་མེད་པར་བཟོ་ངེས།ཁྱོད་ཀྱིས་ཚད་གཞི་ཅན་གྱི་སྔོན་ལ་གཞི་གྲངས་གལ་ཆེན་ཡོད་ཚད་གྲ་སྒྲིག་བྱེད་དགོས། མུ་མཐུད་ཡིན་ནམ། Begin Format མགོ་བརྩམས་།རྣམ་གཞག་ Close སྒོ་རྒྱག་པ་ UdfFormatDialog Format རྣམ་གཞག་ཅན། Disc Type: འོད་སྡེར་རིགས་ Device Name: སྒྲིག་ཆས་ཀྱི་མིང་། OK གཏན་འཁེལ་བྱེད་པ། Cancel མེད་པར་བཟོ་བ Unknow མ་རྟོགས་པའི་རྒྱུ་རྐྱེན། Warning ཐ་ཚིག་ The disc name cannot be set to empty, please re-enter it! འོད་སྡེར་གྱི་མིང་སྟོང་བ་ཡིན་མི་རུང་།ཡང་བསྐྱར་ནང་འཇུག་བྱོས། Format operation has been finished successfully. རྣམ་བཞག་ཅན་་གྱི་བཀོལ་སྤྱོད་ལེགས་གྲུབ་བྱུང་། Sorry, the format operation is failed! རྣམ་བཞག་བཟོ་བ་ཕམ་ཉེས་བྱུང་། ཡང་བསྐྱར་ཚོད་ལྟ་བྱེད་རོགས། Failed ཕམ་པ། Formatting. Do not close this window རྣམ་པ་ཅན་དུ་འགྱུར་བཞིན་ཡོད་།སྒེའུ་ཁུང་དེ་སྒོ་རྒྱག་མ་བྱེད་། Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? ཚད་གཞི་ཅན་གྱི་འོད་སྡེར་འདིས་གཞི་གྲངས་ཚང་མ་མེད་པར་བཟོ་ངེས།ཁྱོད་ཀྱིས་ཚད་གཞི་ཅན་གྱི་སྔོན་ལ་གཞི་གྲངས་གལ་ཆེན་ཡོད་ཚད་གྲ་སྒྲིག་བྱེད་དགོས། མུ་མཐུད་ཡིན་ནམ། Begin Format མགོ་བརྩམས་།རྣམ་གཞག་ Close སྒོ་རྒྱག་པ་ peony-4.0.0.1/translations/libpeony-qt/libpeony-qt_fr.ts0000644000175000017500000051734414551637202021735 0ustar fengfeng ConnectServerDialog Connect to Sever Connectez-vous au serveur Domain Domaine Password Mot de passe Save Password Sauvegarder le mot de passe User Utilisateur Anonymous Anonyme Ok Ok Cancel Annuler FileLabelModel Red Rouge Orange Orange Yellow Jaune Green Vert Blue Bleu Purple Violet Gray Gris Transparent Transparent Delete file Warning Dosya Silme Uyarısı Error Erreur Label or color is duplicated. L'étiquette ou la couleur est dupliquée. Format_Dialog Dialog Dialogue rom_size rom_size system système vfat/fat32 exfat ntfs ntfs vfat vfat ext4 ext4 device_name device_name clean it total effacer le total ok ok close Fermer TextLabel qmesg_notify qmesg_notify Format operation has been finished successfully. L'opération de formatage s'est terminée avec succès. Sorry, the format operation is failed! Désolé, l'opération de formatage a échoué ! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Le formatage de ce volume effacera toutes les données qu'il contient. Veuillez sauvegarder toutes les données conservées avant le formatage. Voulez-vous continuer ? format formatage begin format commencer le formatage format_success Biçimlentirme başarılı format_err Biçimlendirme hatalı Format Rom size: Filesystem: Disk name: Completely erase(Time is longer, please confirm!) Cancel Annuler OK OK Formatting. Do not close this window MainProgressBar File operation Opération du fichier starting ... démarrage... cancel all file operations annuler toutes les opérations sur les fichiers Are you sure want to cancel all file operations Voulez-vous vraiment annuler toutes les opérations sur les fichiers canceling ... annulation ... sync ... OK OK Cancel Annuler OtherButton Other queue Autre fichier en attente Peony::AdvanceSearchBar Key Words Mots clés input key words... saisir les mots clés... Search Location Rechercher un emplacement choose search path... choisir le chemin de recherche... browse naviguer File Type Type de fichier Choose File Type Choisir le type de fichier Modify Time Modifier l'heure Choose Modify Time Choisir la modification de l'heure File Size Taille du fichier Choose file size Choisir la taille du fichier show hidden file afficher les fichiers cachés go back retourner hidden advance search page page de recherche avancée masquée file name nom de fichier content contenu search chercher start search lancer la recherche Select path Sélectionner le chemin Operate Tips Conseils d'utilisation Have no key words or search location! N'ayez pas de mots clés ni de lieu de recherche ! Search file name or content at least choose one! Rechercher le nom du fichier ou le contenu en choisir au moins un ! Search content or file name at least choose one! İçeriği veya dosya adını en az birini seçin! all tout file folder dossier de fichiers image image video vidéo text file fichier texte audio audio others autres wps file fichier wps today aujourd'hui this week cette semaine this month ce mois-ci this year cette année year ago il y'a un an tiny(0-16K) minuscule (0-16K) small(16k-1M) petit (16k-1M) medium(1M-100M) moyen (1M-100M) big(100M-1G) grand (100M-1G) large(>1G) large (> 1G) Peony::AdvancedLocationBar Search Content... Rechercher dans le contenu... Peony::AllFileLaunchDialog Choose new application Choose an Application to open this file Choisir une application pour ouvrir ce fichier apply now OK OK Cancel Annuler Peony::AudioPlayManager Operation file Warning Avertissement de fichier d'opération Peony::BasicPropertiesPage Type: Type : Display Name: Afficher un nom : Location: Emplacement : Overview: Aperçu : Time Created: Heure de création : Time Modified: Heure modifiée : Change Name Nom Location move symbolLink Folder Include: Open with: Description: Select multiple files Size: Taille : Space Useage: Time Access: Heure d'accès : Readonly Hidden Property: usershare %1 (%2 Bytes) Choose a new folder: Error Erreur cannot move a folder to itself ! Choose a custom icon %1 Bytes %1 files, %2 folders Can't get remote file information %1 files (include root files), %2 hidden %1 fichiers (y compris les fichiers racine), %2 masqués %1 total %1 au total Peony::ComputerPropertiesPage CPU Name: Nom du processeur : CPU Core: Noyau CPU : Memory Size: Taille mémoire : User Name: Nom d'utilisateur : Desktop: Bureau : You should mount this volume first Vous devez d'abord monter ce volume Name: Nom : File System Système de fichiers Data Total Space: Espace total : Used Space: Espace utilisé : Free Space: Espace libre : Type: Type : Kylin Burner Open with: Unknown Inconnu Peony::ConnectServerDialog connect to server connecter au serveur ip ip port Port type type Personal Collection server: Serveur de collection personnelle : add ajouter delete supprimer connect connecter Peony::ConnectServerLogin The login user L'utilisateur connecté Please enter the %1's user name and password of the server. Veuillez entrer le nom d'utilisateur et le mot de passe du serveur %1. User's identity Identité de l'utilisateur guest client Registered users Utilisateurs enregistrés name Nom password mot de passe Remember the password Se souvenir du mot de passe cancel Annuler ok ok Peony::CreateLinkInternalPlugin Create Link to Desktop Créer un lien vers le bureau Create Link to... Créer un lien vers... Choose a Directory to Create Link Choisir un répertoire pour créer un lien Peony-Qt Create Link Extension Extension de lien de création de Peony-Qt Create Link Menu Extension. Créer une extension de menu de lien. Peony::CreateTemplateOperation NewFile Nouveau fichier Create file Créer un fichier NewFolder Nouveau dossier Create file error Créer une erreur de fichier Peony::CustomErrorHandler Is Error Handled? Error not be handled correctly Peony::DefaultOpenWithWidget No default app Peony::DefaultPreviewPage Select the file you want to preview... Sélectionner le fichier que vous souhaitez prévisualiser... Can not preview this file. Impossible de prévisualiser ce fichier. Can not preivew this file. Bu dosya önizlemesi görüntülenemiyor. Peony::DefaultPreviewPageFactory Default Preview Aperçu par défaut This is the Default Preview of peony-qt Ceci est l'aperçu par défaut de peony-qt Peony::DetailsPropertiesPage Name: File type: Location: Emplacement : Create time: Modify time: Heure de modification : yyyy-MM-dd, HH:mm:ss yyyy-MM-dd, hh:mm:ss AP File size: Taille du fichier : Width: Height: Owner Propriétaire Owner: Computer Ordinateur Computer: %1 (this computer) Unknown Inconnu Can't get remote file information %1 px Peony::DirectoryView::IconView Icon View Affichage des icônes Peony::DirectoryView::IconView2 Icon View Simge Görünümü Peony::DirectoryView::ListView List View Vue en liste Peony::DirectoryView::ListView2 List View Liste Görünümü Peony::DirectoryViewFactoryManager Icon View Simge Görünümü Peony::DirectoryViewMenu Open in &New Window Ouvrir dans une &nouvelle fenêtre Open in New &Tab Ouvrir dans un nouvel onglet Add to bookmark Ajouter au signet &Open "%1" &Ouvrir "%1" Open "%1" in &New Window Ouvrir "%1" dans une &nouvelle fenêtre Open "%1" in New &Tab Ouvrir "%1" dans un nouveau &onglet Open "%1" with... Ouvrir "%1" avec... &More applications... &Plus d'applications... &Open &Ouvert &Open %1 selected files &Ouvrir %1 fichiers sélectionnés &New... &Yeni Empty &File &Fichier vide &Folder &Dossier New Folder Nouveau dossier Icon View Simge Görünümü List View Liste Görünümü View Type... Type de vue... Sort By... Trier par... Name Nom File Type Type de fichier File Size Taille du fichier New... Nouveau... Open in New Window Open in New Tab Open Open with... More applications... Open %1 selected files Empty File Folder Modified Date Date modifiée Sort Order... Ordre de tri... Ascending Order Ordre croissant Descending Order Ordre décroissant Sort Preferences... Préférences de tri... Folder First Dossier d'abord Chinese First Chinois d'abord Show Hidden Afficher les éléments masqués Copy Copier File:"%1" is not exist, did you moved or deleted it? Peony-Qt filesafe menu Extension &Copy &Copier Cut Couper Delete to trash Paste Coller Delete Refresh Rafraîchir Select All Properties Propriétés format Restore Restaurer Error Erreur File:"%1 is not exist, did you moved or deleted it? Fichier : "%1 n'existe pas, l'avez-vous déplacé ou supprimé ? Cu&t &Kes &Delete to trash &Supprimer dans la corbeille Delete forever Kalıcı Olarak Sil Rename Renommer Select &All Tout sélectionner Reverse Select Sélection inverse P&roperties &Özellikler &Delete &Supprimer &Rename &Yeniden Adlandır &Paste &Coller &Refresh &Rafraîchir &Properties Özellikler &Clean the Trash &Vider la corbeille Delete file Warning Dosyayı Sil Uyarısı Delete Permanently Supprimer définitivement Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Êtes-vous sûr de vouloir supprimer ces fichiers ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. &Restore &Restaurer Clean All Tout effacer Open Parent Folder in New Window Ouvrir le dossier parent dans une nouvelle fenêtre Peony::DirectoryViewWidget Directory View Dizin Görünümü Peony::FMWindow File Manager Gestionnaire de fichiers advanced search Recherche avancée clear record effacer l'enregistrement Loaing... Press Esc to stop a loading. Chargement... Appuyer sur Echap pour arrêter un chargement. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Auteurs : Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C) : 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Ctrl+H Show|Hidden Ctrl+H Undo Annuler Redo Rétablir Peony Qt Peony Qt Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. New Folder Nouveau dossier Peony::FileCopy Error in source or destination file path! The dest file "%1" has existed! Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! Error opening source or destination file! Please check whether the device has been removed! File opening failure operation cancel Peony::FileCopyOperation File copy Dosya kopyalama File copy error Erreur de copie du fichier Cannot opening file, permission denied! Peony::FileDeleteOperation File delete Dosya silme File delete error Erreur de suppression du fichier Delete file error Invalid Operation! Can not delete "%1". Peony::FileEnumerator Delete file Warning Dosyayı Sil Uyarısı Error Erreur Did not find target path, do you move or deleted it? Vous n'avez pas trouvé le chemin cible, l'avez-vous déplacé ou supprimé ? Peony::FileInfo data Peony::FileInfoJob Trash Corbeille Computer Ordinateur Network Recent Peony::FileInformationLabel File location: Emplacement du fichier : File size: Taille du fichier : Modify time: Heure de modification : Peony::FileItem Delete file Warning Dosyayı Sil Uyarısı Error Erreur Open Link failed L'ouverture du lien a échoué File not exist, do you want to delete the link file? Le fichier n'existe pas, voulez-vous supprimer le fichier de lien ? Can not open path "%1",permission denied. Impossible d'ouvrir le chemin d'accès "%1",permission refusée. Can not find path "%1",are you moved or renamed it? Impossible de trouver le chemin "%1". Avez-vous déplacé ou renommé le chemin ? Peony::FileItemModel child(ren) enfant(s) Symbol Link, Lien symbolique, File Name Nom de fichier Delete Date File Size Taille du fichier File Type Type de fichier Modified Date Date modifiée Peony::FileLabelInternalMenuPlugin Add File Label... Ajouter une étiquette de fichier... Delete All Label Supprimer toutes les étiquettes Peony File Labels Menu Extension Extension du menu des étiquettes de fichier de Peony Tag a File with Menu. Marquer un fichier avec Menu. Peony::FileLauchDialog Applications Applications Choose an Application to open this file Choisir une application pour ouvrir ce fichier Set as Default Définir par défaut OK OK Cancel Annuler Peony::FileLaunchAction Execute Directly Exécuter directement Execute in Terminal Exécuter dans le terminal Detected launching an executable file %1, you want? Détection du lancement d'un fichier exécutable %1, voulez-vous ? Delete file Warning Dosyayı Sil Uyarısı Open Failed Échec de l'ouverture Can not open %1, file not exist, is it deleted? Impossible d'ouvrir %1, le fichier n'existe pas, est-il supprimé ? File not exist, is it deleted or moved to other path? Dosya mevcut değil, silinmiş veya başka bir yere taşınmış olabilir Can not open %1 %1 açılamadı By Default App Application par défaut Launch Options Options de lancement Open Link failed L'ouverture du lien a échoué File not exist, do you want to delete the link file? Le fichier n'existe pas, voulez-vous supprimer le fichier de lien ? Can not open %1, Please confirm you have the right authority. Impossible d'ouvrir %1. Veuillez confirmer que vous disposez des droits appropriés. Open App failed L'ouverture de l'application a échoué The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? L'application liée est modifiée ou désinstallée, elle ne peut donc pas fonctionner correctement. Voulez-vous supprimer le fichier de lien ? Error Erreur Can not get a default application for opening %1, do you want open it with text format? Impossible d'obtenir une application par défaut pour ouvrir %1, voulez-vous l'ouvrir au format texte ? Peony::FileLinkOperation Symbolic Link Lien symbolique Link file error Erreur de fichier de lien Link file Dosyayı bağla Peony::FileMoveOperation Invalid move operation, cannot move a file itself. Geçersiz taşıma işlemi, bir dosyanın kendisini taşıyamaz. Move file Dosyayı taşı Create file Dosya oluştur Move file error Erreur de déplacement du fichier Create file error Créer une erreur du fichier Invalid Operation. Opération invalide. File delete error Erreur de suppression du fichier File delete Dosya silme Invalid Operation Opération invalide Peony::FileOperationAfterProgressPage &More Details &Plus de détails Peony::FileOperationErrorDialog File Operation Error Erreur d'opération de fichier unkwon inconnu null nul Error message: Message d'erreur : Source File: Fichier source : Dest File: Fichier de destination : Ignore Ignorer Ignore All Tout ignorer Overwrite Écraser Overwrite All Tout remplacer Backup Sauvegarde Backup All Tout sauvegarder &Retry &Réessayer &Cancel &Annuler Peony::FileOperationErrorDialogConflict This location already contains a file with the same name. Cet emplacement contient déjà un fichier du même nom. Please select the file to keep Veuillez sélectionner le fichier à conserver Replace Remplacer Ignore Ignorer Do the same <p>This location already contains the file '%1', Do you want to override it?</p> Then do the same thing in a similar situation Ensuite, faites la même chose dans une situation similaire Backup Sauvegarde Cancel Annuler OK OK Peony::FileOperationErrorDialogNotSupported Yes Cancel Annuler Do the same Make sure the disk is not full or write protected and that the file is not protected Assurez-vous que le disque n'est pas plein ou protégé en écriture et que le fichier n'est pas protégé Peony::FileOperationErrorDialogWarning OK OK Cancel Annuler Make sure the disk is not full or write protected and that the file is not protected Assurez-vous que le disque n'est pas plein ou protégé en écriture et que le fichier n'est pas protégé Please make sure the disk is not full or not is write protected, or file is not being used. Lütfen diskin dolu olmadığından veya yazmaya karşı korumalı olmadığından veya dosyanın kullanılmadığından emin olun. Peony::FileOperationInfo Symbolic Link Lien symbolique - Symbolic Link - Symbolik Link Peony::FileOperationManager Delete file Warning Dosyayı Sil Uyarısı No, go to settings Do you want to put selected %1 item(s) into trash? Can't delete. Impossible de supprimer. You can't delete a file whenthe file is doing another operation Vous ne pouvez pas supprimer un fichier lorsque le fichier effectue une autre opération File Operation is Busy L'opération de fichier est occupée There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. Une ou plusieurs opération(s) de fichier ont déjà été exécutées. Votre opération attendra son exécution jusqu'à ce qu'elle soit terminée. Si vous voulez vraiment exécuter des opérations sur les fichiers parallèlement de toute façon, vous pouvez changer l'option par défaut "Autoriser le parallèle" dans le menu d'options. There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. Daha önce bir veya daha fazla dosya işlemi yürütüldü. Operasyonunuz tamamlanana kadar yürütmeyi bekleyecektir. Peony::FileOperationPreparePage counting: compteur : state: État : Peony::FileOperationProgressPage &More Details &Plus de détails From: De : To: À : Peony::FileOperationProgressWizard File Manager Gestionnaire de fichiers &Cancel &Annuler Preparing... Préparation... Handling... Manipulation... Clearing... Effacement... Rollbacking... Restauration en cours... File Operation Opération de fichier A file operation is running backend... Une opération de fichier s'exécute en arrière-plan... %1 files, %2 %1 fichiers, %2 %1 done, %2 total, %3 of %4. %1 terminé, %2 total, %3 sur %4. clearing: %1, %2 of %3 effacement : %1, %2 sur %3 copying... copie en cours... Syncing... Synchronisation... Peony::FilePreviewPage File Name: Nom de fichier : File Type: Type de fichier : Time Access: Heure d'accès : Time Modified: Heure de modification : Children Count: Nombre d'enfants : Size: Taille : Image resolution: color model: usershare Image size: Taille de l'image : Image format: Format de l'image : %1x%2 %1x%2 %1 total, %2 hidden %1 total, %2 masqué Peony::FileRenameDialog Names automatically add serial Numbers (e.g., 1,2,3...) Les noms ajoutent automatiquement des numéros de série (par exemple, 1,2,3...) Cancel Annuler New file name Nouveau nom de fichier Please enter the file name Veuillez saisir le nom du fichier OK OK Peony::FileRenameOperation Rename file Dosyayı yeniden isimlendir File Rename error Invalid file name %1%2%3 . File Rename warning The file %1%2%3 will be hidden when you refresh or change directory! Rename file error Renommer l'erreur du fichier Peony::FileTrashOperation trash:/// trash:/// Trash file error Erreur de fichier de la corbeille Invalid Operation! Can not trash "%1". Can not trash Impossible de jeter Can not trash files more than 10GB, would you like to delete it permanently? Can not trash this file, would you like to delete it permanently? Trash file Çöp dosyası Peony::FileUntrashOperation Untrash file Dosyayı geri al Untrash file error Erreur de suppression du fichier de la corbeille Peony::GlobalSettings yyyy/MM/dd HH:mm:ss AP hh:mm:ss yyyy-MM-dd Peony::LocationBar click the blank area for edit cliquer sur la zone vide pour modifier Search "%1" in "%2" Rechercher "%1" dans "%2" File System Système de fichiers &Copy Directory &Copier le répertoire Open In New Tab Open In New Window Open In New &Tab Ouvrir dans un nouvel onglet Open In &New Window Ouvrir dans une nouvelle fenêtre Copy Directory ">Dizini Kopyala Peony::MountOperation Operation Cancelled Opération annulée Peony::NavigationToolBar Go Back Revenir en arrière Go Forward Aller en avant History Histoire Clear History Effacer l'historique Cd Up Cd Up Refresh Rafraîchir Peony::NewFileLaunchDialog Choose new application Choose an Application to open this file Choisir une application pour ouvrir ce fichier apply now OK OK Cancel Annuler Peony::OpenWithPropertiesPage How do you want to open %1%2 files ? Default open with: Other: Choose other application Go to application center Peony::PathEdit Go To Aller à Peony::PermissionsPropertiesPage User or Group Utilisateur ou groupe Type Type Readable Lisible Writeable Inscriptible Excuteable Excutable File: %1 Fichier : %1 Target: %1 Read Write Executable Can not get the permission info. Impossible d'obtenir les informations d'autorisation. (Me) (Moi) Others Autres Owner Propriétaire Group Groupe Other Other Users Autres utilisateurs You can not change the access of this file. Vous ne pouvez pas modifier l'accès à ce fichier. Me Moi User Utilisateur Peony::PropertiesWindow Trash Corbeille Recent Selected %1 Files usershare Properties Propriétés Ok Ok Cancel Annuler Close Kapat Peony::RecentAndTrashPropertiesPage Show confirm dialog while trashing. Origin Path: Chemin d'origine : Deletion Date: Size: Taille : Original Location: Emplacement d'origine : Peony::SearchBar Input the search key of files you would like to find. Entrer la clé de recherche des fichiers que vous souhaitez trouver. Input search key... Clé de recherche en entrée... advance search recherche avancée clear record Effacer l'enregistrement Peony::SearchBarContainer Choose File Type Choisir le type de fichier Clear Effacer all tout file folder dossier de fichiers image image video vidéo text file fichier texte audio audio others autres wps file fichier wps Peony::SideBarFavoriteItem Favorite Favori Peony::SideBarFileSystemItem Computer Ordinateur File System Système de fichiers Data Peony::SideBarMenu &Properties Özellikler P&roperties Özellikler Properties Propriétés Delete Symbolic Unmount Eject &Delete Symbolic &Supprimer symbolique &Unmount &Démonter &Eject &Éjecter format formater Peony::SideBarModel Network Peony::SideBarPersonalItem Personal Personnel Peony::SideBarSeparatorItem (No Sub Directory) (Pas de sous-répertoire) Peony::StatusBar ; %1 folders ; %1 dossiers ; %1 files, %2 total ; %1 fichiers, %2 total ; %1 folder ; %1 dossier ; %1 file, %2 ; %1 fichier, %2 %1 selected %1 sélectionné Peony::SyncThread notify Peony::ToolBar Open in new &Window Yeni Pencerede Aç Open in &New window Ouvrir dans une &nouvelle fenêtre Open in new &Tab Ouvrir dans un nouvel onglet Sort Type Type de tri File Name Nom de fichier File Type Type de fichier File Size Taille du fichier Modified Date Date modifiée Open in New window Open in new Tab Ascending Ascendant Descending Descendant Copy Copier Paste Coller Cut Couper Trash Corbeille Clean Trash Vider la corbeille Delete file Warning Dosyayı Sil Uyarısı Delete Permanently Supprimer définitivement Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Êtes-vous sûr de vouloir supprimer ces fichiers ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. Restore Restaurer Options Options Forbid Thumbnail Interdire la miniature Show Hidden Afficher masqué Resident in Backend Résident en arrière-plan Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. Laisser le programme s'exécuter encore après la fermeture de la dernière fenêtre. Cela réduira le temps pour le prochain lancement, mais cela consommera également des ressources en arrière-plan. &Help &Aide &About... &À propos... Peony Qt Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Auteurs : Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C) : 2019, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Peony::VolumeManager Error Erreur ProgressBar starting ... démarrage... canceling ... annulation... sync ... cancel file operation annuler l'opération de fichier Are you sure want to cancel the current selected file operation Voulez-vous vraiment annuler l'opération de fichier actuellement sélectionnée OK OK Cancel Annuler QObject Icon View Affichage des icônes Show the folder children as icons. Afficher les enfants du dossier sous forme d'icônes. List View Vue en liste Show the folder children as rows in a list. Afficher les enfants du dossier sous forme de lignes dans une liste. Basic Preview Page Page d'aperçu de base Basic Show the basic file properties, and allow you to modify the access and name. Afficher les propriétés de base du fichier et vous permettre de modifier l'accès et le nom. Permissions Page Page des autorisations Permissions Show and modify file's permission, owner and group. Afficher et modifier l'autorisation, le propriétaire et le groupe du fichier. Can not trash Impossible de jeter Can not trash these files. You can delete them permanently. Are you sure doing that? Impossible de supprimer ces fichiers. Vous pouvez les supprimer définitivement. Êtes-vous sûr de le faire ? Can not trash files more than 10GB, would you like to delete it permanently? Delete Permanently supprimer définitivement Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Êtes-vous sûr de vouloir supprimer ces fichiers ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. Are you sure that you want to delete %1? Once you start a deletion, the files deleting will never be restored again. Voulez-vous vraiment supprimer %1 ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. Are you sure that you want to delete these %1 files? Once you start a deletion, the files deleting will never be restored again. Voulez-vous vraiment supprimer ces fichiers %1 ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. Computer Properties Page Page des propriétés de l'ordinateur Computer Properties Show the computer properties or items in computer. Afficher les propriétés de l'ordinateur ou les éléments de l'ordinateur. Trash and Recent Properties Page Page de la corbeille et des propriétés récentes Trash and Recent Show the file properties or items in trash or recent. Afficher les propriétés du fichier ou les éléments dans la corbeille ou récents. eject device failed Aygıtı çıkarma başarısız oldu Please check whether the device is occupied and then eject the device again Lütfen cihazın dolu olup olmadığını kontrol edin ve ardından cihazı tekrar çıkarın Format failed Échec du formatage YES OUI Formatting successful! But failed to set the device name. qmesg_notify qmesg_notify Format operation has been finished successfully. L'opération de formatage s'est terminée avec succès. Sorry, the format operation is failed! Désolé, l'opération de formatage a échoué ! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? Le formatage de ce volume effacera toutes les données qu'il contient. Veuillez sauvegarder toutes les données conservées avant le formatage. Voulez-vous continuer ? format begin format commencer le formatage close Fermer File Manager Gestionnaire de fichiers Default search vfs of peony Recherche par défaut vfs de peony Force unmount failed Échec du démontage forcé Error: %1 Erreur : %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Échec du démontage Not authorized to perform operation. Unable to unmount it, you may need to close some programs, such as: GParted etc. Error: %1 Do you want to unmount forcely? Erreur : %1 Voulez-vous démonter de force ? Eject failed Échec de l'éjection Cancel Annuler Eject Anyway Éjecter quand même The device has been mount successfully! Data synchronization is complete and the device can be safely unplugged! Unable to eject %1 Impossible d'éjecter %1 Details Mark mark this file. Open With open with. permission denied file not found It need to synchronize before operating the device,place wait! favorite Share Data Operation not supported Virtual file directories do not support move and copy operations The virtual file system does not support folder creation Can not create a symbolic file for vfs location Symbolic Link Lien symbolique Can not create symbolic file here, %1 The virtual file system cannot be opened Default favorite vfs of peony duplicate data Failed to open file "%1": insufficient permissions. File “%1” does not exist. Please check whether the file has been deleted. Computer Ordinateur File System Système de fichiers peony-4.0.0.1/translations/libpeony-qt/libpeony-qt_zh_CN.ts0000664000175000017500000063650514605456067022342 0ustar fengfeng ConnectServerDialog Connect to Sever 连接到服务器 Domain 域名 Password 密码 Save Password 记住密码 User 用户名 Anonymous 匿名登录 Ok 确定 Cancel 取消 DiscControl is busy! 被占用! is busy! 被占用! not support udf at present. 目前不支持udf格式化 unmount disc failed before udf format. 在 udf 格式之前卸载磁盘失败。 is not properly formatted. 格式不正确。 Can not found newfs_udf tool. 未找到newfs_udf工具。 DVD+RW udf format fail. DVD+RW udf格式化失败 preparation failed before DVD-RW udf format. DVD-RW udf 格式之前的准备失败。 FileLabelModel Red 红色 Orange 橙色 Yellow 黄色 Green 绿色 Blue 蓝色 Purple 紫色 Gray 灰色 Transparent 无颜色 Delete file Warning 删除文件警告 Error 错误 Label or color is duplicated. 标签或者颜色重复 Format_Dialog Dialog 格式化 rom_size 容量大小 system 文件系统 vfat/fat32 vfat/fat32 exfat exfat ntfs NTFS vfat VFAT ext4 Ext4 device_name 设备名称 clean it total 完全擦除(时间较长,请确认!) ok 确定 close 关闭 TextLabel 容量 qmesg_notify 通知 Format operation has been finished successfully. 格式化操作已成功完成。 Sorry, the format operation is failed! 很遗憾,格式化操作失败了,您可以重新试下! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? 格式化此卷将清除其上的所有数据。请在格式化之前备份所有保留的数据。您想继续吗? format 格式化 begin format 开始 format_success 格式化成功! format_err 格式化失败! Format 格式化 Rom size: 容量大小 Filesystem: 文件系统 Disk name: 设备名称 Completely erase(Time is longer, please confirm!) 完全擦除(时间较长,请确认!) Set password 设置密码 Set password for volume based on LUKS (only ext4) 为ext4分区设置基于LUKS的密码 Cancel 关闭 OK 确定 Data 数据盘 Warning 警告 Device name cannot start with a decimal point, Please re-enter! 设备名称不能以小数点开始,请重新输入! Enter Password: 输入密码: Password too short, please retype a password more than 6 characters 密码过短, 请重新输入大于6位的密码 %1/sec, %2 remaining. %1/秒, 剩余%2. over one day 超过一天 getting progress... 正在获取进度... Error 错误 Block not existed! 设备不存在! Formatting. Do not close this window 正在格式化, 请勿关闭 KyFileDialogRename Renaming "%1" 正在重命名 "%1" Renaming failed, the reason is: %1 重命名失败, 原因: %1 Filename too long 文件名过长 Copying "%1" 正在复制 "%1" To "%1" 到 "%1" Copying failed, the reason is: %1 复制失败, 原因: %1 Moving "%1" 正在移动 "%1" Moving failed, the reason is: %1 移动失败, 原因: %1 File operation error: 文件操作错误: The reason is: %1 原因: %1 Cancel 取消 Skip 跳过 Skip All 全部跳过 Rename 重命名 Please enter a new name 请输入文件名 OK 确定 MainProgressBar File operation 文件操作 starting ... 正在开始 ... cancel all file operations 取消所有文件操作 Are you sure want to cancel all file operations 你确定要取消所有文件操作? OK 确定 Cancel 取消 canceling ... 取消中 ... sync ... 正在同步... MessageDialog Forcibly pulling out the device may cause data loss or device exceptions! 强制拔出设备可能会导致数据丢失 或数据异常! OtherButton Other queue 其它队列 Peony::AdvanceSearchBar Key Words 关键词 input key words... 输入关键词... Search Location 搜索路径 choose search path... 选择要搜索的位置... browse 浏览 File Type 文件类型 Choose File Type 选择文件类型 Modify Time 修改时间 Choose Modify Time 选择修改时间 File Size 文件大小 Choose file size 选择文件大小 show hidden file 显示隐藏文件 go back 后退 hidden advance search page 隐藏高级搜索界面 file name 文件名 content 内容 search 搜索 start search 开始搜索 Select path 选择路径 Operate Tips 提示 Have no key words or search location! 没有关键字或路径! Search file name or content at least choose one! 搜索文件名或者内容请至少指定一个! Search content or file name at least choose one! 搜索文件名或者内容请至少指定一个! all 全部 file folder 文件夹 image 图片 video 视频 text file 文本 audio 音频 others 其它 wps file WPS文件 today 今天 this week 本周 this month 本月 this year 今年 year ago 去年 tiny(0-16K) 极小(0-16K) small(16k-1M) 较小(16k-1M) medium(1M-100M) 中等(1M-100M) big(100M-1G) 较大(100M-1G) large(>1G) 极大(>1G) Peony::AdvancedLocationBar Search Content... 搜索内容 Peony::AllFileLaunchDialog Choose new application 选择一个新的应用 Choose an Application to open this file 选择一个应用打开这个文件 apply now 立即应用 OK 确定 Cancel 取消 Peony::AudioPlayManager Operation file Warning 文件操作警告 Peony::BasicPropertiesPage Choose a custom icon 选择自定义图标 Type: 类型: Display Name: 名称: Location: 路径: Overview: 概览: Change 更改 Name 名称 Location 位置 move 移动 symbolLink 快捷方式 Folder 文件夹 Include: 包含: Open with: 打开方式: Description: 描述: Select multiple files 选中多个文件 Size: 文件大小: Total size: 实际大小: Space Useage: 占用空间: yyyy-MM-dd, HH:mm:ss yyyy年MM月dd日, HH:mm:ss yyyy-MM-dd, hh:mm:ss AP yyyy年MM月dd日, hh:mm:ss AP Time Created: 创建时间: Space Usage: 占用空间: Time Create: 创建时间: Time Modified: 修改时间: Time Access: 访问时间: Readonly 只读 Hidden 隐藏 Property: 属性: usershare 本机共享 %1 (%2 Bytes) %1 (%2 字节) Choose a new folder: 选择一个新的文件夹: Error 错误 cannot move a folder to itself ! 不能移动一个文件夹到它内部! %1 Bytes %1 字节 %1 KB (%2 Bytes) %1 KB (%2 字节) %1 MB (%2 Bytes) %1 MB (%2 字节) %1 GB (%2 Bytes) %1 GB (%2 字节) %1 files, %2 folders %1 个文件, %2 个文件夹 Can't get remote file information 未能获取远程文件信息 %1 files (include root files), %2 hidden 共%1个文件(包括顶层目录),有%2个隐藏文件 %1 total 共%1 Peony::ComputerPropertiesPage CPU Name: 处理器: CPU Core: 核心数: Memory Size: 内存: User Name: 用户名: Desktop: 桌面环境: You should mount this volume first 你需要挂载该卷才能查看信息 Name: 分区名: File System 文件系统 Data 数据盘 Total Space: 总容量: Used Space: 使用空间: Free Space: 剩余空间: Type: 文件系统: Kylin Burner 刻录 Open with: 打开: Unknown 未知的分区 Peony::ConnectServerDialog connect to server 连接服务器 ip 服务器 port 端口 type 类型 Personal Collection server: 个人收藏服务器 add 添加 delete 连接 删除 connect 连接 Warning 警告 ip input error, please re-enter! IP输入错误, 请重新输入! port input error, please re-enter! 端口号输入错误, 请重新输入! Peony::ConnectServerLogin The login user 登录身份 Please enter the %1's user name and password of the server. 请输入服务器 %1 的用户名和密码。 User's identity 连接身份 guest 游客(匿名登录) Registered users 注册用户 name 用户名 password 密码 Remember the password 记住密码 cancel 取消 ok 连接 Peony::CreateLinkInternalPlugin Create Link to Desktop 发送到桌面快捷方式 Create Link to... 发送快捷方式到... Choose a Directory to Create Link 选择创建链接的目录 Peony-Qt Create Link Extension 创建链接 Create Link Menu Extension. 创建链接. Peony::CreateSharedFileLinkMenuPlugin Create Link to Desktop 发送到桌面快捷方式 Peony::CreateTemplateOperation NewFile 新建文件 Create file 文件创建 NewFolder 新建文件夹 Create file error 创建文件错误 Peony::CustomErrorHandler Is Error Handled? 错误是否已处理? Error not be handled correctly 错误未被正确处理 Peony::DefaultAcitonWidget No default app 没有设置默认打开方式 Peony::DefaultOpenWithWidget No default app 没有设置默认打开方式 Peony::DefaultPreviewPage Select the file you want to preview... 选择你想要预览的文件... Can not preview this file. 不能预览该文件. Can not preivew this file. 不能预览该文件 Peony::DefaultPreviewPageFactory Default Preview 详细信息 This is the Default Preview of peony-qt 显示文件的详细信息 Peony::DetailsPropertiesPage Name: 名称: File type: 文件类型: Location: 路径: yyyy-MM-dd, HH:mm:ss yyyy年MM月dd日, HH:mm:ss Create time: 创建时间: Modify time: 修改时间: yyyy-MM-dd, hh:mm:ss AP yyyy年MM月dd日, hh:mm:ss AP File size: 文件大小: Width: 宽度: Height: 高度: Owner 拥有者 Owner: 拥有者: Computer 计算机 Computer: 计算机: %1 (this computer) %1 (这台电脑) Unknown 未知的分区 Can't get remote file information 不能获取远程文件信息 %1 px %1 像素 Peony::DirectoryView::IconView Icon View 图标视图 warn 警告 This operation is not supported. 不支持此操作。 Peony::DirectoryView::IconView2 Icon View 图标视图 Peony::DirectoryView::ListView List View 列表视图 warn 警告 This operation is not supported. 不支持此操作。 Peony::DirectoryView::ListView2 List View 列表视图 Peony::DirectoryViewFactoryManager Icon View 图标视图 Peony::DirectoryViewMenu Open in &New Window 在新窗口中打开(&N) Open in New &Tab 在新标签页中打开(&T) Add to bookmark 添加到快速访问 &Open "%1" 打开“%1”(&O) Open "%1" in &New Window 在新窗口中打开“%1”(&N) Open "%1" in New &Tab 在新标签页中打开“%1”(&T) Open "%1" with... 选用其它应用打开“%1”... &More applications... 更多应用...(&M) &Open 打开(&O) Open &with... 打开方式(&W)... &Open %1 selected files 打开%1个选中文件(&O) &New... 新建...(&N) Empty &File 空文件(&E) &Folder 文件夹(&F) New Folder 新建文件夹 Icon View 图标视图 List View 列表视图 View Type... 视图类型... Sort By... 排序类型... Name 文件名称 File Type 文件类型 File Size 文件大小 New... 新建... Open in New Window 在新窗口中打开 Open in New Tab 在新标签页中打开 Open 打开 Open with... 打开方式 More applications... 更多应用 Open %1 selected files 打开%1个选中文件 New 新建 Empty File 空文本 Folder 文件夹 View Type 视图类型 Sort By 排序类型 Modified Date 修改日期 Orignal Path 原始路径 Sort Order... 排序顺序... Ascending Order 升序 MultiSelect 多选 Descending Order 降序 Sort Preferences... 排序偏好... Folder First 文件夹优先 Chinese First 中文优先 Show Hidden 显示隐藏文件 Copy 复制 File:"%1" is not exist, did you moved or deleted it? 文件 ”%s“ 不存在,你是否已经删除或移动到别处? Peony-Qt filesafe menu Extension 文件保护箱扩展 Peony File Labels Menu Extension 文件标记 &Copy 复制(&C) Cut 剪切 Delete to trash 删除到回收站 Paste 粘贴 Refresh 刷新 Select All 全选 Properties 属性 format 格式化 Restore 还原 Delete 删除 Sort Order 排序顺序 Sort Preferences 排序偏好 Error 错误 File:"%1 is not exist, did you moved or deleted it? 文件:"%1" 不存在,您是否已经移动或者删除了它? File original path not exist, are you deleted or moved it? 文件原始路径未找到,您是否已经移动或删除了它? Cu&t 剪切(&T) &Delete to trash 删除到回收站(&D) Delete forever 永久删除 Rename 重命名 Select &All 全选(&A) Reverse Select 反选 P&roperties 属性(&R) &Delete 删除(&D) &Rename 重命名(&R) &Paste 粘贴(&P) &Refresh 刷新(&R) &Properties 属性(&P) &Clean the Trash 清空回收站(&C) Delete file Warning 删除文件警告 Delete Permanently 永久删除 Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 &Restore 还原(&R) Clean All 清空全部 Open Parent Folder in New Window 在新窗口中打开文件所在目录 Peony::DirectoryViewWidget Directory View 文件视图 Peony::FMWindow File Manager 文件管理器 advanced search 高级搜索 clear record 清空历史 Loaing... Press Esc to stop a loading. 正在加载...按下Esc键取消. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,天津麒麟信息技术有限公司. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,天津麒麟信息技术有限公司. Ctrl+H Show|Hidden Ctrl+H Undo 撤销 Redo 重做 Peony Qt 文件管理器 Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,天津麒麟信息技术有限公司. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019,天津麒麟信息技术有限公司. New Folder 新建文件夹 Peony::FileCopy Error in source or destination file path! 源地址或者目标文件路径出错! The dest file "%1" has existed! 目标文件 %1 已经存在! Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! vfat/fat32文件系统不支持单文件所占空间大于4g Error opening source or destination file! 打开源文件或者目标文件出错! Please check whether the device has been removed! 请确认设备是否被移除! Write file error: There is no avaliable disk space for device! 写入文件错误: 设备上没有足够可用空间! Please confirm that the device controls are insufficient! 请确认设备空间是否足够! File opening failure 打开文件失败 Reading and Writing files are inconsistent! 读和写文件不一致! operation cancel 操作取消 Peony::FileCopyOperation File copy 文件复制 Create folder %1 failed: %2 创建目录%1失败: %2 File copy error 文件复制错误 Cannot opening file, permission denied! 无法打开文件,权限不够! File:%1 was not found. 未找到文件:%1. Burn failed 刻录失败 Peony::FileDeleteOperation File delete 文件删除 File delete error 文件删除错误 Delete file error 删除错误 Invalid Operation! Can not delete "%1". 非法的操作! 不能删除 "%1". Peony::FileEnumerator Delete file Warning 删除文件警告 The password dialog box is canceled 密码对话框被取消 Error 错误 Did not find target path, do you move or deleted it? 未找到目标路径,您是否已经移动或删除了它? Peony::FileInfo data 数据盘 folder 文件夹 file 文件 text file 文本文件 Peony::FileInfoJob Trash 回收站 Computer 计算机 Network 网络 Recent 最近 Peony::FileInformationLabel File location: 文件位置: File size: 文件大小: Modify time: 修改时间: Peony::FileItem Delete file Warning 删除文件警告 Error 错误 Open Link failed 打开链接失败 File not exist, do you want to delete the link file? 目标文件夹不存在,是否删除该无效快捷方式? Can not open path "%1",permission denied. 打开路径 "%1" 失败,权限被拒绝。 Can not find path "%1",are you moved or renamed it? 未找到路径:"%1",您是否已经移动或者重命名? Can not find path "%1" . 找不到路径: "%1" 。 Peony::FileItemModel child(ren) 个子项 Symbol Link, 快捷方式, File Name 文件名称 Delete Date 删除日期 File Size 文件大小 Original Path 原始路径 File Type 文件类型 Modified Date 修改日期 Peony::FileLabelInternalMenuPlugin Add File Label... 添加标记... Delete All Label 删除所有标记 Peony File Labels Menu Extension 文件标记 Tag a File with Menu. 菜单中增加标记功能. Peony::FileLauchDialog Applications 应用程序 Choose an Application to open this file 选择一个应用打开这个文件 Set as Default 设为默认 OK 确定 No application is set to open file %1 未设定用来打开文件“%1”的应用程序。 The opening mode of the %1 %2 %1%2 打开方式 unknown 未知 No application is set to open file "%1 %2" 未设定用来打开文件“%1%2”的应用程序。 Still using the last opened application: 仍使用最后打开的应用: known 已知 Open application is used by default: 默认使用打开的应用程序: You can search in the Software Center for an application that can open this file, or select an existing application on your computer. 您可以在软件中心搜索能够打开此文件的应用程序,或者选取电脑上的现有应用程序。 Other application: 其他应用程序: Select application: 选取应用程序: Always open the %1%2 file with this application 始终用该应用打开%1%2文件 Choose other application 选择其他应用 Go to application center 去软件中心安装应用 Ok 确定 Cancel 取消 Desktop files(*.desktop) 桌面文件(*.desktop) Select Open Action 选择打开方式 Select 选择 Peony::FileLaunchAction Execute Directly 直接运行 Execute in Terminal 在终端运行 Detected launching an executable file %1, you want? 正在打开一个可执行文件%1, 你希望? Delete file Warning 删除文件警告 Open Failed 无法打开 Can not open %1, file not exist, is it deleted? 无法打开%1,文件不存在,请确认是否已被删除? File not exist, is it deleted or moved to other path? 文件不存在,您是否已将其删除或挪动位置? Can not open %1 不能打开%1 No Permission 没有权限 File is not readable. Please check if file has read permisson. 文件不可读,请确认当前用户拥有文件的读权限。 By Default App 使用默认打开方式 Launch Options 执行选项 Open Link failed 打开链接失败 File not exist, do you want to delete the link file? 目标文件不存在,您需要删除该链接吗? Can not open %1, Please confirm you have the right authority. 无法打开%1,请确认您有正确的打开权限。 Open App failed 快捷方式存在问题 The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? 该链接指向的应用已经被修改或者卸载,因此该快捷方式无法正常工作。 是否删除该快捷方式? Error 错误 File original path not exist, are you deleted or moved it? 文件原始路径未找到,您是否已经移动或删除了它? Can not get a default application for opening %1, do you want open it with text format? 没有找到默认打开%1的应用, 是否用文本编辑器打开? Warning 警告 Can not open the file, application is disabled 无法打开文件,应用被禁用。 Peony::FileLinkOperation Symbolic Link 快捷方式 Link file error 创建文件链接失败 Link file 创建文件链接 Peony::FileMoveOperation Invalid move operation, cannot move a file itself. 非法的移动操作,不能自移动到自身。 Move file 文件移动 Create file 文件创建 Move file error 移动文件错误 Create file error 创建文件错误 Cannot opening file, permission denied! 无法打开文件,权限不够! File:%1 was not found. 未找到文件:%1. Invalid Operation. 非法的操作. File delete error 文件删除错误 Burn failed 刻录失败 File delete 文件删除 Invalid Operation 非法的操作 Peony::FileOperationAfterProgressPage &More Details 详细信息(&M) Peony::FileOperationErrorDialog File Operation Error 文件操作错误 unkwon 未知原因 null Error message: 错误信息: Source File: 源文件: Dest File: 目标文件: Ignore 忽略 Ignore All 全部忽略 Overwrite 覆盖 Overwrite All 全部覆盖 Backup 备份 Backup All 全部备份 &Retry 重试(&R) &Cancel 取消(&C) Peony::FileOperationErrorDialogConflict This location already contains a file with the same name. 目标文件夹里已经包含有同名文件 Please select the file to keep 请选择要保留的文件 This location already contains the file, 这里已包含此文件 Do you want to override it? 你确定要覆盖它吗 Replace 替换 Ignore 忽略 Do the same 全部应用 <p>This location already contains the file '%1', Do you want to override it?</p> <p>此位置已包含名称为“%1”的文件,您确定要替换它吗?</p> Unexpected error from %1 to %2 从 %1 至 %2 操作发生异常错误 Then do the same thing in a similar situation 之后类似情况执行相同操作 Backup 备份 Cancel 取消 OK 确定 Peony::FileOperationErrorDialogNotSupported Yes No Cancel 取消 Do the same 全部应用 Make sure the disk is not full or write protected and that the file is not protected 请确认磁盘未满或未被写保护而且文件未被使用 Peony::FileOperationErrorDialogWarning OK 确定 Cancel 取消 Make sure the disk is not full or write protected and that the file is not protected 请确认磁盘未满或未被写保护而且文件未被使用 Please make sure the disk is not full or not is write protected, or file is not being used. 请确保磁盘未满或未被写保护或未被使用。 Peony::FileOperationInfo Symbolic Link 快捷方式 - Symbolic Link -快捷方式 Peony::FileOperationManager Delete file Warning 删除文件警告 Warn 警告 '%1' is occupied,you cannot operate! “%1”已被占用,您无法进行操作! No, go to settings 否,跳转到设置 OK 确定 Cancel 取消 Do you want to put selected %1 item(s) into trash? 确认要将选中的 %1项放入回收站吗? Do not show again 不再显示 Can't delete. 不能删除 You can't delete a file whenthe file is doing another operation 不能删除一个正在进行其它操作的文件 File Operation is Busy 操作正忙 There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. 在执行该操作之前有操作未完成, 它需要等待上一个操作完成后再执行. 如果你希望文件操作并行, 你可以更改选项菜单中的"允许操作并行"配置. The system cannot hibernate or sleep 无法进入休眠或睡眠模式 The file operation is in progress. Ensure that the file operation is complete or canceled before hibernating or sleeping 文件操作进行中,\ 进入休眠或者睡眠之前,请先确保文件操作已完成或者取消 There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. 在执行该操作之前有操作未完成,它需要等待上一个操作完成后再执行。 Peony::FileOperationPreparePage counting: 总计: state: 状态: Peony::FileOperationProgressPage &More Details 详细信息(&M) From: 从: To: 到: Peony::FileOperationProgressWizard File Manager 文件管理器 &Cancel 取消(&C) Preparing... 准备中... Handling... 正在处理... Clearing... 正在清理... Rollbacking... 回滚中... File Operation 文件操作 A file operation is running backend... 一个文件操作正在后台运行中... %1 files, %2 %1个文件,共%2 %1 done, %2 total, %3 of %4. 完成%1,共%2,%4中的第%3个。 clearing: %1, %2 of %3 正在清理:%1,%3中的第%2个 copying... 复制中... Syncing... 正在同步... Peony::FilePreviewPage File Name: 文件名称: File Type: 类型 Time Access: 上次打开时间 Time Modified: 修改时间 Children Count: 包含文件 Size: 大小 Time Created: 创建时间 Image resolution: 分辨率 color model: 色彩模式 usershare 本机共享 Image size: 图片尺寸: Image format: 图片格式: %1x%2 %1x%2 %1 total, %2 hidden 共%1项,其中%2个隐藏文件 Peony::FileRenameDialog Names automatically add serial Numbers (e.g., 1,2,3...) 名称后自动添加序号(如:1,2,3...) Cancel 取消 New file name 文件名 Please enter the file name 请输入文件名 OK 确定 Peony::FileRenameOperation Rename file 文件重命名 File Rename error 文件重命名错误 Invalid file name %1%2%3 . 非法的文件名%1%2%3. The file %1%2%3 will be hidden when you refresh or change directory! 文件 %1%2%3 在刷新或者切换路径后将会被隐藏! The file %1%2%3 will be hidden when you refresh or rsort! 文件 %1%2%3 在刷新或者排序后将会被隐藏! The file %1%2%3 will be hidden! 文件%1%2%3将被隐藏! Invalid file name "%1" 文件名 "%1" 不合法 File Rename warning 文件重命名警告 The file "%1" will be hidden! 文件 "%1" 将会被隐藏! Rename file error 重命名文件错误 Peony::FileTrashOperation trash:/// trash:/// Trash file error 刪除文件到回收站错误 Invalid Operation! Can not trash "%1". 非法的操作! 不能回收 "%1". Can not trash 不能回收 Can not trash files more than 10GB, would you like to delete it permanently? 无法回收大于10G的文件,是否需要永久删除? The user does not have read and write rights to the file '%1' and cannot delete it to the Recycle Bin. 用户对当前文件 %1 没有读写权限,无法删除到回收站。 Can not trash this file, would you like to delete it permanently? 不能回收该文件, 是否要永久删除? Can not trash %1, would you like to delete this file permanently? 不能回收%1, 是否永久删除? . Are you sure you want to permanently delete the file ,你确定要永久删除文件吗? The user does not have read and write rights to the file '%s' and cannot delete it to the Recycle Bin. 用户对当前文件 %s 没有读写权限,无法删除到回收站。 Trash file 删除文件到回收站 Peony::FileUntrashOperation Untrash file 撤销删除的文件 Untrash file error 从回收站恢复文件错误 Peony::GlobalSettings yyyy/MM/dd HH:mm:ss AP hh:mm:ss yyyy-MM-dd Peony::HeaderBar Spread 最大化 Minimize 最小化 Close 关闭 Peony::LocationBar click the blank area for edit 点击空白区域编辑路径 Computer 计算机 Search "%1" in "%2" 在%2中搜索%1 File System 文件系统 &Copy Directory 拷贝路径(&C) Open In New Tab 在新标签页中打开 Open In New Window 在新窗口中打开 Open In New &Tab 在新标签页中打开(&T) Open In &New Window 在新窗口中打开(&N) Copy Directory 拷贝路径 Peony::MountOperation Operation Cancelled 操作被取消 Login failed, unknown username or password error, please re-enter! 验证失败,未知的用户名或者密码错误,请重新输入! Peony::NavigationToolBar Go Back 后退 Go Forward 前进 History 历史 Clear History 清空历史 Cd Up 向上 Refresh 刷新 Peony::NewFileLaunchDialog Choose new application 选择一个新的应用 Choose an Application to open this file 选择一个应用打开这个文件 apply now 立即应用 OK 确定 Cancel 取消 Peony::OpenWithPropertiesPage How do you want to open %1%2 files ? 您希望以什么方式打开 %1%2 文件? Default open with: 默认打开方式: Other: 其他: Choose other application 选择其他应用 Go to application center 去软件中心 Peony::PathEdit Go To 跳转 Peony::PermissionsPropertiesPage User or Group 用户或组 Type 类型 Readable 可读 Writeable 可写 Excuteable 可执行 File: %1 文件:%1 Target: %1 对象名称: %1 Read and Write 读写 Readonly 只读 Group or User 用户或组 (Current User) (当前用户) Current User 当前用户 Read 可读 Write 可写 Executable 可执行 Can not get the permission info. 无法获取文件权限相关信息。 (Me) (我) Others 其他 Owner 拥有者 Group 用户组 Other 其他 Other Users 其它用户 You can not change the access of this file. 你无法修改该文件的权限。 Me User 用户 Peony::PropertiesWindow Trash 回收站 Recent 最近 Selected 选中 %1 Files %1 个文件 usershare 本机共享 Data 数据盘 Properties 属性 Ok 确定 Cancel 取消 Restore 还原 Close 关闭 Peony::RecentAndTrashPropertiesPage Show confirm dialog while trashing: 删除到回收站时弹出确认框: Show confirm dialog while trashing. 删除到回收站时弹出确认框。 Origin Path: 原路径: Deletion Date: 删除日期: Size: 文件大小: Original Location: 原路径: Peony::SearchBar Input the search key of files you would like to find. 输入关键词以搜索你想搜索的文件. Input search key... 输入关键词... advance search 高级搜索 clear record 清空历史 Peony::SearchBarContainer Choose File Type 选择文件类型 Clear 清空 all 全部 file folder 文件夹 image 图片 video 视频 text file 文本 audio 音频 others 其它 wps file WPS文件 Peony::SharedFileLinkOperation Symbolic Link 快捷方式 Peony::SideBarCloudItem CloudStorage 云存储 CloudFile 云文件 Peony::SideBarFavoriteItem Trash 回收站 Recent 最近 Favorite 快速访问 KmreData 移动应用 Peony::SideBarFileSystemItem Computer 计算机 File System 文件系统 data 数据盘 Data 数据盘 Peony::SideBarMenu &Properties 属性(&P) P&roperties 属性(&R) Properties 属性 Delete Symbolic 删除 Unmount 卸载 Eject 弹出 burndata &Delete Symbolic 删除(&D) &Unmount 卸载(&U) &Eject 弹出(&E) format 格式化 Peony::SideBarModel Shared Data 共享数据 Network 网络 Peony::SideBarPersonalItem Personal 个人 Peony::SideBarSeparatorItem (No Sub Directory) (空) Peony::StatusBar ; %1 folders ;%1个文件夹 ; %1 files, %2 total ;%1个文件,总共%2 ; %1 folder ;%1个文件夹 ; %1 file, %2 ;%1个文件,%2 %1 selected 选中%1项 Peony::SyncThread notify 温馨提示 温馨提示 Peony::ToolBar Open in new &Window 在新窗口中打开(&W) Open in &New window 在新窗口中打开(&N) Open in new &Tab 在新标签页中打开(&T) Sort Type 排序类型 File Name 文件名称 File Type 文件类型 File Size 文件大小 Modified Date 修改日期 Open in New window 在新窗口中打开 Open in new Tab 在新标签页中打开 Ascending 升序 Descending 降序 Copy 复制 Paste 粘贴 Cut 剪切 Trash 删除 Clean Trash 清空回收站 Delete file Warning 删除文件警告 Delete Permanently 永久删除 Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 Restore 还原 Options 选项 Forbid Thumbnail 禁用缩略图 Show Hidden 显示隐藏文件 Resident in Backend 常驻后台 Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. 让文件管理器在关闭所有窗口后仍然运行,这将缩短下次启动所需要的时间,但是也会一直占用资源。 &Help 帮助(&H) &About... 关于...(&A) Peony Qt 文件管理器 Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019,天津麒麟信息技术有限公司. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019,天津麒麟信息技术有限公司. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019,天津麒麟信息技术有限公司. Peony::UserShareInfoManager Warning 警告 Peony::VolumeManager Error 错误 ProgressBar starting ... 正在开始 ... canceling ... 取消中 ... sync ... 正在同步... cancel file operation 取消文件操作 Are you sure want to cancel the current selected file operation 你确定要取消当前选中的文件操作 OK 确定 Cancel 取消 QObject Icon View 图标视图 Show the folder children as icons. 以图标形式显示目录. List View 列表视图 Show the folder children as rows in a list. 以列表形式显示目录. Basic Preview Page 基本 Basic 基本 Show the basic file properties, and allow you to modify the access and name. 显示文件的基本属性,允许修改文件名称。 Permissions Page 权限 Permissions 权限 Show and modify file's permission, owner and group. 查看和修改文件的权限。 Can not trash 不能回收 Can not trash these files. You can delete them permanently. Are you sure doing that? 这些文件不能完全放入回收站,可以选择永久删除这些文件,确定这样做吗? Can not trash files more than 10GB, would you like to delete it permanently? 无法回收大于10G的文件,是否需要永久删除? OK 确定 Do you want to empty the recycle bin and delete the files permanently? Once it has begun there is no way to restore them. 是否永久清空回收站内的文件?删除后将无法恢复。 Delete Permanently 永久删除 Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 Computer Properties Page 计算机 Computer Properties 计算机属性 Show the computer properties or items in computer. 显示计算机属性或计算机中的项。 Trash and Recent Properties Page 最近/回收 Trash and Recent 回收站/最近 Show the file properties or items in trash or recent. 显示“回收站”或“最近”中的文件属性或项目。 eject device failed 弹出设备失败 Please check whether the device is occupied and then eject the device again 请检查设备是否正在使用,确认没有使用后再次弹出 Format failed 格式化失败 YES 确认 Formatting successful! But failed to set the device name. 格式化成功!设备名设置失败。 qmesg_notify 通知 Format operation has been finished successfully. 格式化操作已成功完成。 Formatting successful! Description Failed to set the device name. 格式化成功!设备名设置失败。 Sorry, the format operation is failed! 很遗憾,格式化操作失败了,您可以重新试下! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? 格式化此卷将清除其上的所有数据。请在格式化之前备份所有保留的数据。您想继续吗? format 格式化 begin format 开始 close 关闭 File Manager 文件管理器 Default search vfs of peony 默认文件搜索 Force unmount failed 强制卸载失败 Error: %1 错误: %1 Data synchronization is complete,the device has been unmount successfully! 数据同步完成,设备已经成功卸载! Unmount failed 卸载失败 Not authorized to perform operation. 操作未获得授权。 Unable to unmount it, you may need to close some programs, such as: GParted etc. 无法卸载,您可能需要先关闭一些程序,如分区编辑器等。 Error: %1 Do you want to unmount forcely? 错误: %1 是否强制卸载? Cancel 取消 Eject Anyway 无论如何弹出 Failed to activate device: Incorrect passphrase 无法激活设备: 错误的口令 The device has been mount successfully! 设备挂载成功! Data synchronization is complete and the device can be safely unplugged! 数据同步完成,设备可以安全拔出! Unable to eject %1 无法弹出 %1 PeonyNotify 文件管理器通知 Eject failed 弹出失败 favorite 快速访问 Favorites 快速访问 File is not existed. 文件不存在. Share Data 本机共享 Trash 回收站 Recent 最近 Operation not supported 操作不支持 The virtual file system does not support folder creation 虚拟文件系统下不支持创建新文件夹 Can not create a symbolic file for vfs location 无法为虚拟目录创建快捷方式 Symbolic Link 快捷方式 Can not create symbolic file here, %1 无法在此创建快捷方式, %1 Can not add a file to favorite directory. 文件不能被添加到收藏夹. The virtual file system cannot be opened 虚拟文件系统无法打开 Virtual file directories do not support move and copy operations 虚拟文件路径不支持移动和复制操作 Default favorite vfs of peony 文件管理器虚拟文件系统默认快速访问 Details 详细信息 Mark 标记 mark this file. 标记这个文件。 Open With 打开方式 open with. 打开方式。 It need to synchronize before operating the device,place wait! 操作设备前需要同步数据,请稍等! permission denied 没有权限 file not found 没有发现该文件 duplicate 副本 Error when getting information for file : No target file found 获取文件信息时出现错误:没有目标文件。 data 数据盘 Computer 计算机 File System 文件系统 Data 数据盘 Failed to open file "%1": insufficient permissions. 打开文件"%1"失败:权限不足。 File “%1” does not exist. Please check whether the file has been deleted. 文件“%1”不存在,请检查文件是否被删除。 burn operation has been cancelled 刻录操作已取消 is busy! 被占用! UdfBurn::UdfAppendBurnDataDialog AppendBurnData 追加刻录 Disc Type: 光盘类型: Device Name: 设备名称: OK 确定 Cancel 取消 Unknow 未知 Warning 警告 No burn data, please add! 没有刻录数据, 请添加! The disc name cannot be set to empty, please re-enter it! 设备名称不能设置为空,请重新输入! AppendBurnData operation has been finished successfully. 追加刻录操作已完成. Sorry, the appendBurnData operation is failed! 抱歉, 追加刻录操作出错! Failed 失败 Burning. Do not close this window 刻录中, 请勿关闭此窗口 Burning this disc will append datas on it. Do you want to continue ? 刻录此光盘将在其后追加数据, 是否继续? Burn 刻录 Begin Burning 开始刻录 Close 关闭 UdfBurn::UdfFormatDialog Format 格式化 Disc Type: 光盘类型: Device Name: 设备名称: OK 确定 Cancel 取消 Unknow 未知 Warning 警告 The disc name cannot be set to empty, please re-enter it! 设备名称不能设置为空,请重新输入! Format operation has been finished successfully. 格式化操作已成功完成。 Sorry, the format operation is failed! 很遗憾,格式化操作失败了,您可以重新试下! Failed 失败 Formatting. Do not close this window 正在格式化, 请勿关闭 Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? 格式化此光盘将擦除其上的所有数据。 请在格式化前备份所有保留的数据。 你想继续吗 ? Begin Format 开始 Close 关闭 UdfFormatDialog Format 格式化 Disc Type: 光盘类型: Device Name: 设备名称: OK 确定 Cancel 取消 Unknow 未知 Warning 警告 The disc name cannot be set to empty, please re-enter it! 设备名称不能设置为空,请重新输入! Format operation has been finished successfully. 格式化操作已成功完成。 Sorry, the format operation is failed! 很遗憾,格式化操作失败了,您可以重新试下! Failed 失败 Formatting. Do not close this window 正在格式化, 请勿关闭 Formatting this disc will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? 格式化此光盘将擦除其上的所有数据。 请在格式化前备份所有保留的数据。 你想继续吗 ? Begin Format 开始 Close 关闭 peony-4.0.0.1/translations/libpeony-qt/libpeony-qt_fa.ts0000644000175000017500000046210514551627337021716 0ustar fengfeng ConnectServerDialog Connect to Sever اتصال به سرور Domain دامنه Password گذرواژه Save Password ذخیرۀ گذرواژه User کاربر Anonymous ناشناس Ok تأیید Cancel لغو FileLabelModel Red قرمز Orange نارنجی Yellow زرد Green سبز Blue آبی Purple بنفش Gray خاکستری Transparent شفاف Delete file Warning Dosya Silme Uyarısı Error خطا Label or color is duplicated. برچسب یا رنگ، تکراری است. Format_Dialog Dialog rom_size system سیستم vfat/fat32 exfat ntfs NTFS vfat VFAT ext4 Ext4 device_name clean it total ok تأیید close لغو TextLabel Format operation has been finished successfully. عملیات فرمت‌کردن با موفقیت به پایان رسید. Sorry, the format operation is failed! متأسفانه عملیات فرمت‌کردن انجام نشد! format فرمت begin format آغاز فرمت‌کردن format_success Biçimlentirme başarılı format_err Biçimlendirme hatalı Format Rom size: Filesystem: Disk name: Completely erase(Time is longer, please confirm!) Cancel لغو OK Formatting. Do not close this window MainProgressBar File operation starting ... cancel all file operations Are you sure want to cancel all file operations canceling ... sync ... OK Cancel لغو OtherButton Other queue Peony::AdvanceSearchBar Key Words کلمات کلیدی input key words... کلمات کلیدی را وارد کنید... Search Location محل جستجو choose search path... محل جستجو را انتخاب کنید... browse File Type Choose File Type Modify Time Choose Modify Time File Size Choose file size show hidden file go back hidden advance search page file name content search start search Select path Operate Tips Have no key words or search location! Search file name or content at least choose one! Search content or file name at least choose one! İçeriği veya dosya adını en az birini seçin! all file folder image video text file audio others wps file today this week this month this year year ago tiny(0-16K) small(16k-1M) medium(1M-100M) big(100M-1G) large(>1G) Peony::AdvancedLocationBar Search Content... Peony::AllFileLaunchDialog Choose new application Choose an Application to open this file apply now OK Cancel لغو Peony::BasicPropertiesPage Type: Time Modified: Change Name Location move symbolLink Folder Include: Open with: Description: Select multiple files Size: Space Useage: Time Access: Readonly Hidden Property: usershare %1 (%2 Bytes) Choose a new folder: Error خطا cannot move a folder to itself ! Choose a custom icon %1 Bytes %1 files, %2 folders Can't get remote file information Peony::ComputerPropertiesPage CPU Name: CPU Core: Memory Size: User Name: Desktop: You should mount this volume first Name: File System Data Total Space: Used Space: Free Space: Type: Kylin Burner Open with: Unknown Peony::ConnectServerDialog connect to server ip port type Personal Collection server: add delete connect Peony::ConnectServerLogin The login user Please enter the %1's user name and password of the server. User's identity guest Registered users name password Remember the password cancel ok تأیید Peony::CreateLinkInternalPlugin Create Link to Desktop Create Link to... Choose a Directory to Create Link Peony-Qt Create Link Extension Create Link Menu Extension. Peony::CreateTemplateOperation NewFile Create file Dosya oluştur NewFolder Create file error Peony::CustomErrorHandler Is Error Handled? Error not be handled correctly Peony::DefaultOpenWithWidget No default app Peony::DefaultPreviewPage Select the file you want to preview... Can not preview this file. Can not preivew this file. Bu dosya önizlemesi görüntülenemiyor. Peony::DefaultPreviewPageFactory Default Preview This is the Default Preview of peony-qt Peony::DetailsPropertiesPage Name: File type: Location: Create time: Modify time: yyyy-MM-dd, HH:mm:ss yyyy-MM-dd, hh:mm:ss AP File size: Width: Height: Owner Owner: Computer Computer: %1 (this computer) Unknown Can't get remote file information %1 px Peony::DirectoryView::IconView Icon View Simge Görünümü Peony::DirectoryView::IconView2 Icon View Simge Görünümü Peony::DirectoryView::ListView List View Liste Görünümü Peony::DirectoryView::ListView2 List View Liste Görünümü Peony::DirectoryViewFactoryManager Icon View Simge Görünümü Peony::DirectoryViewMenu Add to bookmark &New... &Yeni New Folder Icon View Simge Görünümü List View Liste Görünümü View Type... Sort By... Name File Type File Size New... Open in New Window Open in New Tab Open Open with... More applications... Open %1 selected files Empty File Folder Modified Date Sort Order... Ascending Order Descending Order Sort Preferences... Folder First Chinese First Show Hidden Copy File:"%1" is not exist, did you moved or deleted it? Peony-Qt filesafe menu Extension Cut Delete to trash Paste Delete Refresh Select All Properties format فرمت Restore Error خطا Cu&t &Kes Delete forever Kalıcı Olarak Sil Rename Reverse Select P&roperties &Özellikler &Rename &Yeniden Adlandır &Properties Özellikler &Clean the Trash Delete file Warning Dosyayı Sil Uyarısı Delete Permanently حذف همیشگی Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Clean All Open Parent Folder in New Window Peony::DirectoryViewWidget Directory View Dizin Görünümü Peony::FMWindow File Manager advanced search clear record Loaing... Press Esc to stop a loading. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Ctrl+H Show|Hidden Ctrl+H Undo Redo Peony Qt Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. New Folder Peony::FileCopy Error in source or destination file path! The dest file "%1" has existed! Vfat/FAT32 file systems do not support a single file that occupies more than 4 GB space! Error opening source or destination file! Please check whether the device has been removed! File opening failure operation cancel Peony::FileCopyOperation File copy Dosya kopyalama File copy error Cannot opening file, permission denied! Peony::FileDeleteOperation File delete Dosya silme File delete error Delete file error Invalid Operation! Can not delete "%1". Peony::FileEnumerator Delete file Warning Dosyayı Sil Uyarısı Error خطا Peony::FileInfo data Peony::FileInfoJob Trash Computer Network Recent Peony::FileItem Delete file Warning Dosyayı Sil Uyarısı Error خطا Open Link failed File not exist, do you want to delete the link file? Can not open path "%1",permission denied. Can not find path "%1",are you moved or renamed it? Peony::FileItemModel child(ren) Symbol Link, File Name Delete Date File Size File Type Modified Date Peony::FileLabelInternalMenuPlugin Add File Label... Delete All Label Peony File Labels Menu Extension Tag a File with Menu. Peony::FileLauchDialog Applications Choose an Application to open this file Set as Default OK Cancel لغو Peony::FileLaunchAction Execute Directly Execute in Terminal Detected launching an executable file %1, you want? Delete file Warning Dosyayı Sil Uyarısı Open Failed Can not open %1, file not exist, is it deleted? File not exist, is it deleted or moved to other path? Dosya mevcut değil, silinmiş veya başka bir yere taşınmış olabilir Can not open %1 %1 açılamadı By Default App Launch Options Open Link failed File not exist, do you want to delete the link file? Can not open %1, Please confirm you have the right authority. Open App failed The linked app is changed or uninstalled, so it can not work correctly. Do you want to delete the link file? Error خطا Can not get a default application for opening %1, do you want open it with text format? Peony::FileLinkOperation Symbolic Link Link file error Link file Dosyayı bağla Peony::FileMoveOperation Invalid move operation, cannot move a file itself. Geçersiz taşıma işlemi, bir dosyanın kendisini taşıyamaz. Move file Dosyayı taşı Create file Dosya oluştur Move file error Create file error Invalid Operation. File delete error File delete Dosya silme Invalid Operation Peony::FileOperationAfterProgressPage &More Details Peony::FileOperationErrorDialog File Operation Error unkwon null Error message: Source File: Dest File: Ignore Ignore All Overwrite Overwrite All Backup Backup All &Retry &Cancel Peony::FileOperationErrorDialogConflict Replace Ignore Do the same <p>This location already contains the file '%1', Do you want to override it?</p> Backup Peony::FileOperationErrorDialogNotSupported Yes Cancel لغو Do the same Make sure the disk is not full or write protected and that the file is not protected Peony::FileOperationErrorDialogWarning OK Cancel لغو Make sure the disk is not full or write protected and that the file is not protected Please make sure the disk is not full or not is write protected, or file is not being used. Lütfen diskin dolu olmadığından veya yazmaya karşı korumalı olmadığından veya dosyanın kullanılmadığından emin olun. Peony::FileOperationInfo Symbolic Link - Symbolic Link - Symbolik Link Peony::FileOperationManager Delete file Warning Dosyayı Sil Uyarısı No, go to settings Do you want to put selected %1 item(s) into trash? Can't delete. You can't delete a file whenthe file is doing another operation File Operation is Busy There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. If you really want to execute file operations parallelly anyway, you can change the default option "Allow Parallel" in option menu. There have been one or more fileoperation(s) executing before. Youroperation will wait for executinguntil it/them done. Daha önce bir veya daha fazla dosya işlemi yürütüldü. Operasyonunuz tamamlanana kadar yürütmeyi bekleyecektir. Peony::FileOperationPreparePage counting: state: Peony::FileOperationProgressPage &More Details From: To: Peony::FileOperationProgressWizard File Manager &Cancel Preparing... Handling... Clearing... Rollbacking... File Operation A file operation is running backend... %1 files, %2 %1 done, %2 total, %3 of %4. clearing: %1, %2 of %3 copying... Syncing... Peony::FilePreviewPage File Name: File Type: Time Access: Time Modified: Children Count: Size: Image resolution: color model: usershare %1x%2 %1 total, %2 hidden Peony::FileRenameOperation Rename file Dosyayı yeniden isimlendir File Rename error Invalid file name %1%2%3 . File Rename warning The file %1%2%3 will be hidden when you refresh or change directory! Rename file error Peony::FileTrashOperation trash:/// Trash file error Invalid Operation! Can not trash "%1". Can not trash Can not trash files more than 10GB, would you like to delete it permanently? Can not trash this file, would you like to delete it permanently? Trash file Çöp dosyası Peony::FileUntrashOperation Untrash file Dosyayı geri al Untrash file error Peony::GlobalSettings yyyy/MM/dd HH:mm:ss AP hh:mm:ss yyyy-MM-dd Peony::LocationBar Search "%1" in "%2" File System Open In New Tab Open In New Window Copy Directory ">Dizini Kopyala Peony::MountOperation Operation Cancelled Peony::NavigationToolBar Go Back Go Forward History Clear History Cd Up Refresh Peony::NewFileLaunchDialog Choose new application Choose an Application to open this file apply now OK Cancel لغو Peony::OpenWithPropertiesPage How do you want to open %1%2 files ? Default open with: Other: Choose other application Go to application center Peony::PathEdit Go To Peony::PermissionsPropertiesPage User or Group Type Target: %1 Read Write Executable Can not get the permission info. (Me) Others Owner Group Other You can not change the access of this file. Me User کاربر Peony::PropertiesWindow Trash Recent Selected %1 Files usershare Properties Ok تأیید Cancel لغو Close Kapat Peony::RecentAndTrashPropertiesPage Show confirm dialog while trashing. Origin Path: Deletion Date: Size: Original Location: Peony::SearchBar Input the search key of files you would like to find. Input search key... advance search clear record Peony::SearchBarContainer Clear all file folder image video text file audio others wps file Peony::SideBarFavoriteItem Favorite Peony::SideBarFileSystemItem Data Peony::SideBarMenu &Properties Özellikler P&roperties Özellikler Properties Delete Symbolic Unmount Eject format فرمت Peony::SideBarModel Network Peony::SideBarPersonalItem Personal Peony::SideBarSeparatorItem (No Sub Directory) Peony::StatusBar ; %1 folders ; %1 files, %2 total ; %1 folder ; %1 file, %2 %1 selected Peony::SyncThread notify Peony::ToolBar Open in new &Window Yeni Pencerede Aç Sort Type File Name File Type File Size Modified Date Open in New window Open in new Tab Ascending Descending Copy Paste Cut Trash Clean Trash Delete file Warning Dosyayı Sil Uyarısı Delete Permanently حذف همیشگی Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Restore Options Forbid Thumbnail Show Hidden Resident in Backend Let the program still run after closing the last window. This will reduce the time for the next launch, but it will also consume resources in backend. &Help &About... Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019, Tianjin KYLIN Information Technology Co., Ltd. Peony::VolumeManager Error خطا ProgressBar starting ... canceling ... sync ... Cancel لغو QObject Icon View Simge Görünümü Show the folder children as icons. List View Liste Görünümü Show the folder children as rows in a list. Basic Show the basic file properties, and allow you to modify the access and name. Permissions Show and modify file's permission, owner and group. Can not trash Can not trash these files. You can delete them permanently. Are you sure doing that? Can not trash files more than 10GB, would you like to delete it permanently? Delete Permanently حذف همیشگی Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Computer Properties Show the computer properties or items in computer. Trash and Recent Show the file properties or items in trash or recent. eject device failed Aygıtı çıkarma başarısız oldu Please check whether the device is occupied and then eject the device again Lütfen cihazın dolu olup olmadığını kontrol edin ve ardından cihazı tekrar çıkarın Format failed YES Formatting successful! But failed to set the device name. qmesg_notify Format operation has been finished successfully. عملیات فرمت‌کردن با موفقیت به پایان رسید. Sorry, the format operation is failed! متأسفانه عملیات فرمت‌کردن انجام نشد! Formatting this volume will erase all data on it. Please backup all retained data before formatting. Do you want to continue ? format فرمت begin format آغاز فرمت‌کردن close لغو File Manager Default search vfs of peony Force unmount failed Error: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Not authorized to perform operation. Unable to unmount it, you may need to close some programs, such as: GParted etc. Eject failed Cancel لغو The device has been mount successfully! Data synchronization is complete and the device can be safely unplugged! Error: %1 Do you want to unmount forcely? Details Mark mark this file. Open With open with. permission denied file not found It need to synchronize before operating the device,place wait! favorite Share Data Operation not supported Virtual file directories do not support move and copy operations The virtual file system does not support folder creation Can not create a symbolic file for vfs location Symbolic Link Can not create symbolic file here, %1 The virtual file system cannot be opened Default favorite vfs of peony duplicate data Failed to open file "%1": insufficient permissions. File “%1” does not exist. Please check whether the file has been deleted. Computer File System peony-4.0.0.1/translations/peony-qt-desktop/0000755000175000017500000000000014605456067017405 5ustar fengfengpeony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_zh_CN.ts0000664000175000017500000004706014605456067024272 0ustar fengfeng Peony::DesktopIconView Desktop Icon View 桌面图标视图 New Folder 新建文件夹 set background 设置背景 Delete file Warning 删除文件警告 Open failed 打开失败 Open directory failed, you have no permission! 打开文件夹失败,您没有该目录的权限! Open Link failed 打开快捷方式失败 File not exist, do you want to delete the link file? 目标文件夹不存在,是否删除该无效快捷方式? Peony::DesktopItemModel Computer 计算机 Trash 回收站 My Document 我的文档 Peony::DesktopMenu &Open in new Window 在新窗口中打开(&N) Select &All 全选(&A) &Open "%1" 打开 "%1"(&O) Open "%1" &with... 打开方式(&W)... &More applications... 更多应用(&M)... Open "%1" with... 打开方式... &Open 打开(&O) Open &with... 打开方式(&W)... &Open %1 selected files 打开%1个选中文件(&O) Reverse Select 反选 &New... 新建(&N) New... 新建... Empty &File 空文件(&E) &Folder 文件夹(&F) New Folder 新建文件夹 View Type... 视图类型... &Small 小图标(&S) &Normal 中图标(&N) &Large 大图标(&L) &Huge 超大图标(&H) Open in new Window 在新窗口中打开 Select All 全选 Open 打开 Can not open path "%1",permission denied. 无法打开路径 "%1", 权限被拒绝。 Open with... 打开方式 More applications... 更多应用 Open %1 selected files 打开%1个选中文件 New 新建 Empty File 空文本 Folder 文件夹 View Type 视图类型 Small 小图标 Normal 中图标 Large 大图标 Huge 超大图标 Sort By 排序方式 Sort By... 排序方式... Name 文件名称 File Type 文件类型 File Size 文件大小 Clean the trash 清空回收站 Copy 复制 Delete to trash 删除到回收站 Error 错误 Can not show trash properties with other files together! 不能将回收站与其他文件一起查看属性! Modified Date 修改日期 Delete file Warning 删除文件警告 Cut 剪切 &Delete to trash 删除到回收站(&D) Delete forever 永久删除 Rename 重命名 Paste 粘贴 Refresh 刷新 Properties 属性 P&roperties 属性(&R) Sort Order... 排列顺序... Ascending Order 升序 Descending Order 降序 Zoom &In 放大(&I) Zoom &Out 缩小(&O) &Restore all 恢复全部(&R) &Clean the trash 清空回收站(&C) Delete Permanently 永久删除 Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 &Copy 复制(&C) Cu&t 剪切(&T) &Delete 删除(&D) &Rename 重命名(&R) &Paste 粘贴(&P) &Refresh 刷新(&R) &Properties 属性(&P) Peony::DesktopModeFactory desktop icon mode 桌面图标模式 Peony::DesktopWindow Desktop 桌面 set background 设置壁纸 New Folder 新建文件夹 Peony::StudyCenterMode math 数学 english 英语 chinese 语文 other 其他 PeonyDesktopApplication Close the peony-qt desktop window 关闭桌面并退出 peony-qt-desktop 桌面 Peony-Qt Desktop 桌面 Desktop 桌面 Close the peony desktop window 关闭桌面程序 Take over the dbus service. 接管DBus服务。 Take over the desktop displaying 接管桌面 Setup backgrounds Setup backgrounds Clear standard icons Clear standard icons Open learning center. 打开学习中心 set background 设置背景 QObject set background 设置背景 display settings 显示设置 set resolution 设置分辨率 Error 错误 StudyStatusWidget 学情中心 学情中心 STATISTICS 统计数据 今日使用时长 今日使用时长 本周使用时长 本周使用时长 本月使用时长 本月使用时长 最常使用 (本周累计) 最常使用 (本周累计) TabletMenu Uninstall 卸载 TabletPluginWidget Search 搜索 peony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_bo_CN.ts0000644000175000017500000002224214555331352024233 0ustar fengfeng Peony::DesktopIconView New Folder ཡིག་ཁུག་གསར་འཛུགས། Open Link failed མྱུར་ལམ་རི་མོ་ཁ་ཕྱེ་བ་ཕམ་ཉེས་བྱུང་། Open failed ཁ་ཕྱེ་བ་ཕམ་པ། Open directory failed, you have no permission! ཡིག་ཆ་ཁ་ཕྱེ་་བ་ཕམ་ཉེས་བྱུང་། ཁྱེད་ལ་དཀར་ཆག་འདིའི་དབང་ཚད་མི་འདུག File not exist, do you want to delete the link file? དམིགས་བཟུང་ཡིག་ཁུག་བསྡད་མི་འདུག ཕན་མེད་མྱུར་ལམ་རི་མོ་འདི་གསུབ་རྒྱུ་ཡིན་ནམ། set background རྒྱབ་ལྗོངས་འདེམ་པ། Desktop Icon View སྒྲོག་ངོས་རྟགས་རིས་མཐོང་རིས། Peony::DesktopItemModel Computer རྩིས་འཁོར། Trash ཚུར་བསྡུའི་ས་ཚིགས་ Peony::DesktopMenu Cut དྲས་གཏུབ། Copy འདྲ་ཕབ། Huge རྒྱ་ཆེ། Name མིང་། Open ཁ་འབྱེད། More applications... ཉེར་སྤྱོད་སྔར་ལས་མང་བ། Large ཆེ། Paste སྦྱར་བ། Small ཡིག་གཟུགས་ཆུང་བ། Delete forever གཏན་དུ་སུབ་པ། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། Delete to trash སྙིགས་སྣོད་དུ་དོར་བ། New Folder ཡིག་ཁུག་གསར་འཛུགས། Folder ཡིག་ཁུག New... གསར་འཛུགས།... Normal སྤྱིར་བཏང་། Rename མིང་བསྐྱར་འདོགས། Delete Permanently བརྟན་འདོར།(_D) Sort By... རིམ་སྒྲིག་བྱེད་སྟངས། Properties ངོ་བོ། Refresh /གསར་སྒྱུར། Reverse Select ཕྱིར་འདེམ། Open with... 'ཁ་འབྱེད་སྟངས་...' Open %1 selected files གདམ་ཟིནཡིག་ཆ%1ཁ་ཕྱེ་བ། Select All ཡོད་ཚད་འདེམ་པ། Empty File ཡིག་རྐྱང་ཡིག་ཚགས།།(_E) Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། Clean the trash སྙིགས་སྣོད་གཙང་སེལ། Open in new Window སྒེའུ་ཁུང་གསར་པའི་ཁྲོད་ཁ་ཕྱེ་བ། Modified Date ཟླ་ཚེས་བཅོས་བསྒྱུར། View Type... མཐོང་རིས་རིགས་རྣམ། New View Type Sort By Peony::DesktopWindow Desktop ཅོག་ངོས་ཁོར་ཡུག PeonyDesktopApplication Close the peony desktop window སྒྲོག་ངོས་ཀྱི་རིམ་སྒྲིག་སྒོ་གཏན་པ། Take over the dbus service. Dbusཞབས་ཞུ་བདག་དམ་བླངས། Take over the desktop displaying སྒྲོག་ངོས་བདག་དམ་བླངས། set background རྒྱབ་ལྗོངས་འདེམ་པ། peony-qt-desktop སྒྲོག་ངོས། Setup backgrounds རྒྱབ་ལྗོངས་འཛུགས་པ། Clear standard icons དྭངས་གཙང་ཚད་གཞི་རིས་རྟགས་ QObject set background རྒྱབ་ལྗོངས་འཛུགས་པ། display settings བཀོད་སྒྲིག་བྱས་ཚུལ་གསལ་པོར་མངོན་པ། peony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_cs.ts0000664000175000017500000003071014605456067023670 0ustar fengfeng Peony::DesktopIconView Desktop Icon View New Folder Yeni Klasör set background Open Link failed File not exist, do you want to delete the link file? Open failed Open directory failed, you have no permission! Peony::DesktopItemModel Computer Trash Peony::DesktopMenu Reverse Select &New... &Yeni... New Folder Yeni Klasör Name File Type File Size Modified Date Open in new Window Select All Open Open with... More applications... Open %1 selected files New Empty File Folder View Type Small Normal Large Huge Sort By Clean the trash Copy Cut Delete to trash Delete forever Kalıcı olarak sil Rename Paste Refresh Properties P&roperties Özellikler Sort Order... Sıralama Düzeni... Ascending Order Artan Düzen Descending Order Azalan Düzen Zoom &In Yakınlaştır Zoom &Out Uzaklaştır Cu&t Kes &Delete Sil &Rename Yeniden Adlandır &Properties Özellikler Peony::DesktopWindow Desktop Masaüstü New Folder Yeni Klasör PeonyDesktopApplication Close the peony-qt desktop window Masaüstünü kapatın ve çıkın peony-qt-desktop Masaüstü Peony-Qt Desktop Masaüstü Desktop Masaüstü Close the peony desktop window Take over the dbus service. Take over the desktop displaying Setup backgrounds Clear standard icons QObject set background display settings peony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_fa.ts0000644000175000017500000003224014551627337023647 0ustar fengfeng Peony::DesktopIconView Desktop Icon View نمایش آیکون‌های میز کار New Folder پوشۀ جدید set background انتخاب پس‌زمینه Delete file Warning Dosyayı Sil Uyarısı Open Link failed لینک باز نشد File not exist, do you want to delete the link file? فایل موجود نیست، آیا تمایل دارید که لینک حذف شود؟ Open failed باز نشد Open directory failed, you have no permission! پوشه باز نشد، اجازه‌ی دسترسی وجود ندارد! Peony::DesktopMenu &Open in new Window &بازکردن در پنجرۀ جدید Select &All انتخاب &همه &Open "%1" &بازکردن "%1" Open "%1" &with... بازکردن "%1" به &وسیلۀ... &More applications... &نرم‌افزارهای بیشتر... Open "%1" with... بازکردن "%1" به وسیلۀ... &Open &بازکردن &Open %1 selected files &بازکردن %1 فایل‌های انتخاب‌شده Reverse Select معکوس‌کردن انتخاب‌ها &New... &Yeni... New... جدید... Empty &File &فایل خالی &Folder &پوشه New Folder پوشهٔ جدید View Type... نحوۀ نمایش... &Small &کوچک &Normal &متوسط &Large ب&زرگ &Huge &خیلی بزرگ Sort By... مرتب‌کردن بر اساس... Name نام File Type نوع فایل File Size حجم فایل Modified Date تاریخ ایجاد تغییر Delete file Warning Dosyayı Sil Uyarısı Cut بریدن &Delete to trash &حذف (به سطل زباله) Delete forever Kalıcı olarak sil Rename تغییر نام Properties مشخصات P&roperties Özellikler Sort Order... Sıralama Düzeni... Ascending Order Artan Düzen Descending Order Azalan Düzen Zoom &In Yakınlaştır Zoom &Out Uzaklaştır &Restore all Tümünü Onar &Clean the trash &خالی‌کردن سطل زباله Delete Permanently حذف همیشگی Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. آیا از حذف این فایل‌ها اطمینان دارید؟ پس از حذف، امکان بازگرداندن آن‌ها وجود ندارد. &Copy &کپی‌کردن Cu&t Kes &Delete Sil &Rename Yeniden Adlandır &Paste &چسباندن &Refresh &تازه‌کردن &Properties Özellikler Peony::DesktopWindow Desktop میز کار set background انتخاب پس‌زمینه New Folder Yeni Klasör PeonyDesktopApplication Close the peony-qt desktop window Masaüstünü kapatın ve çıkın peony-qt-desktop Masaüstü Peony-Qt Desktop Masaüstü Desktop Masaüstü Close the peony desktop window بستن پنجرۀ میز کار پینی Take over the dbus service. به عهده‌گرفتن خدمات DBus. Take over the desktop displaying به عهده‌گرفتن نمایش میز کار peony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_tr.ts0000664000175000017500000004146014605456067023714 0ustar fengfeng Peony::DesktopIconView Desktop Icon View Masaüstü Simgelerini Göster New Folder Yeni Klasör set background Arkaplanı Değiştir Delete file Warning Dosyayı Sil Uyarısı Open Link failed Bağlantı Açılamadı File not exist, do you want to delete the link file? Dosya mevcut değil, bağlantı dosyasını silmek istiyor musunuz? Open failed Açma hatalı Open directory failed, you have no permission! Dizin açılamadı, izniniz yok! Peony::DesktopItemModel Computer Trash Peony::DesktopMenu &Open in new Window Yeni Pencerede Aç Select &All Tümünü Seç &Open "%1" "%1" Aç Open "%1" &with... "%1" &ile aç... &More applications... &Daha fazla uygulama... Open "%1" with... "%1" ile aç... &Open &Aç &Open %1 selected files Seçilen %1 dosyasını aç Reverse Select Seçimi Ters Çevir &New... &Yeni... New... Yeni... Empty &File &Boş Dosya &Folder &Klasör New Folder Yeni Klasör View Type... Görünüm Türü... &Small &Küçük &Normal &Normal &Large &Büyük &Huge &Daha Büyük Open in new Window Select All Open Open with... More applications... Open %1 selected files New Empty File Folder View Type Small Normal Large Huge Sort By Sort By... Sırala... Name İsim File Type Dosya Türü File Size Dosya Boyutu Clean the trash Copy Delete to trash Modified Date Düzenleme Tarihi Delete file Warning Dosyayı Sil Uyarısı Cut Kes &Delete to trash Çöp Kutusuna Taşı Delete forever Kalıcı olarak sil Rename Yeniden Adlandır Paste Refresh Properties Özellikler P&roperties Özellikler Sort Order... Sıralama Düzeni... Ascending Order Artan Düzen Descending Order Azalan Düzen Zoom &In Yakınlaştır Zoom &Out Uzaklaştır &Restore all Tümünü Onar &Clean the trash Çöpü Temizle Delete Permanently Kalıcı Olarak Sil Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. &Copy &Kopyala Cu&t Kes &Delete Sil &Rename Yeniden Adlandır &Paste Yapıştır &Refresh Yenile &Properties Özellikler Peony::DesktopWindow Desktop Masaüstü set background Arkaplanı Değiştir New Folder Yeni Klasör PeonyDesktopApplication Close the peony-qt desktop window Masaüstünü kapatın ve çıkın peony-qt-desktop Masaüstü Peony-Qt Desktop Masaüstü Desktop Masaüstü Close the peony desktop window Peony masaüstü penceresini kapat Take over the dbus service. Dbus servisini al Take over the desktop displaying Masaüstü görüntülemeyi al Setup backgrounds Clear standard icons set background Arkaplanı Değiştir QObject set background Arkaplanı Değiştir display settings peony-4.0.0.1/translations/peony-qt-desktop/peony-qt-desktop_fr.ts0000644000175000017500000003151314551637202023662 0ustar fengfeng Peony::DesktopIconView Desktop Icon View Affichage des icônes du bureau New Folder Nouveau dossier set background Définir l'arrière-plan Delete file Warning Dosyayı Sil Uyarısı Open Link failed Échec de l'ouverture du lien File not exist, do you want to delete the link file? Le fichier n'existe pas, voulez-vous supprimer le fichier de lien ? Open failed Échec de l'ouverture Open directory failed, you have no permission! L'ouverture du répertoire a échoué, vous n'avez aucune permission ! Peony::DesktopMenu &Open in new Window &Ouvrir dans une nouvelle fenêtre Select &All &Tout sélectionner &Open "%1" &Ouvrir "%1" Open "%1" &with... Ouvrir "%1" &avec... &More applications... &Plus d'applications... Open "%1" with... Ouvrir "%1" avec... &Open &Ouvrir &Open %1 selected files &Ouvrir %1 fichiers sélectionnés Reverse Select Sélection inverse &New... &Yeni... New... Nouveau... Empty &File Fichier vide &Folder &Dossier New Folder Nouveau dossier View Type... Type de vue... &Small &Petit &Normal &Normal &Large &Large &Huge &Énorme Sort By... Trier par... Name Nom File Type Type de fichier File Size Taille du fichier Modified Date Date modifiée Delete file Warning Dosyayı Sil Uyarısı Cut Couper &Delete to trash &Supprimer vers la corbeille Delete forever Kalıcı olarak sil Rename Renommer Properties Propriétés P&roperties Özellikler Sort Order... Sıralama Düzeni... Ascending Order Artan Düzen Descending Order Azalan Düzen Zoom &In Yakınlaştır Zoom &Out Uzaklaştır &Restore all Tümünü Onar &Clean the trash &Nettoyer la corbeille Delete Permanently Supprimer définitivement Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Êtes-vous sûr de vouloir supprimer ces fichiers ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. &Copy &Copier Cu&t Kes &Delete Sil &Rename Yeniden Adlandır &Paste &Coller &Refresh &Rafraîchir &Properties Özellikler Peony::DesktopWindow Desktop Bureau set background définir l'arrière-plan New Folder Yeni Klasör PeonyDesktopApplication Close the peony-qt desktop window Masaüstünü kapatın ve çıkın peony-qt-desktop Masaüstü Peony-Qt Desktop Masaüstü Desktop Masaüstü Close the peony desktop window Fermer la fenêtre peony du bureau Take over the dbus service. Reprendre le service dbus. Take over the desktop displaying Reprendre l'affichage du bureau peony-4.0.0.1/translations/peony-qt/0000755000175000017500000000000014605456067015736 5ustar fengfengpeony-4.0.0.1/translations/peony-qt/peony-qt_zh_CN.ts0000664000175000017500000014765514605456067021167 0ustar fengfeng AboutDialog Dialog 窗口 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html> TextLabel 标签 Offical Website: 官方网站: Service & Technology Support: 服务与技术支持: Service & Support: 服务与支持团队: Peony 文件管理器 peony 文件管理器 Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. 文件管理器是一款帮助用户管理系统文件的图形化的软件,为用户提供常用的文件操作功能,比如文件查看,文件复制、粘贴、剪切、删除、重命名,文件打开方式选择,文件搜索,文件排序,文件预览等,方便用户在界面上直观地管理系统文件。 Hot Service: 服务热线: File Manager 文件管理器 Version number: %1 版本号: %1 File manager is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. 文件管理器是一款帮助用户管理系统文件的图形化的软件,为用户提供常用的文件操作功能,比如文件查看,文件复制、粘贴、剪切、删除、重命名,文件打开方式选择,文件搜索,文件排序,文件预览等,方便用户在界面上直观地管理系统文件。 none FileLabelBox Rename 重命名 Edit Color 编辑颜色 Delete 删除标记 Create New Label 创建标记 HeaderBar Create Folder 新建文件夹 Open Terminal 打开终端 Go Back 后退 Go Forward 前进 Search 搜索 View Type 视图类型 Sort Type 排序类型 Option 选项 Operate Tips 操作提示 Go Up 上一级 Details 详情 &Copy 复制 Copy 复制 &Cut 剪切 Cut 剪切 &Select All 全选 Select All 全选 Deselect All 取消全选 &Delete to trash 删除到回收站 Delete to trash 删除到回收站 Don't find any terminal, please install at least one terminal! 没有找到任何终端插件,请确认您至少安装了一个! Select All Item 全部选择 Select 选择 Restore 还原 Maximize 最大化 Select Done 完成 MoveTo 移动到 CopyTo 复制到 Delete 删除 Select path 选择路径 Minimize 最小化 Close 关闭 HeaderBarContainer Minimize 最小化 Maximize/Restore 最大化/还原 Restore 还原 Maximize 最大化 Close 关闭 Intel::NavigationSideBar Open In &New Window 在新窗口中打开(&N) Open In New &Tab 在新标签页中打开(&T) Intel::TitleLabel Files 文件 MainWindow File Manager 文件管理器 Undo 撤销 Redo 重做 warn 警告 This operation is not supported. 不支持此操作。 Search 搜索 Tips info 温馨提示 Trash has no file need to be cleaned. 回收站没有文件需要被清空! Delete file Warning 删除文件警告 Delete Permanently 永久删除 Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 Peony Qt 文件管理器 New Folder 新建文件夹 NavigationSideBar All tags... 所有标记... Open In &New Window 在新窗口中打开(&N) warn 警告 This operation is not supported. 不支持此操作。 Tips 提示 The device is in busy state, please perform this operation later. 设备正忙, 请稍后执行此操作. This is an abnormal Udisk, please fix it or format it 这是个异常U盘,请将其修复或格式化 This is an empty drive, please insert a Disc. 这是一个空光驱, 请插入光盘. Open In New Window 在新窗口中打开 Can not open %1, %2 无法打开%1, %2 Open In New Tab 在新标签页中打开 Open In New &Tab 在新标签页中打开(&T) NavigationSideBarContainer All tags... 所有标记... NavigationTabBar Computer 计算机 Search "%1" in "%2" 在%2中搜索%1 OperationMenu Advance Search 高级搜索 Keep Allow 置顶窗口 Show Hidden 显示隐藏文件 Show File Extension 显示文件扩展名 Forbid thumbnailing 禁用缩略图 Resident in Backend 常驻后台 Parallel Operations 允许操作并行 Set samba password 设置samba共享密码 Tips 提示 The user already has a samba password, do you need to reset the samba password? 用户已经设置了samba共享密码, 是否希望重新设置? Samba set user password 设置samba共享密码 Samba password: Samba密码: Warning 警告 Samba set password failed, Please re-enter! 设置Samba密码失败, 请重新输入! Shared configuration service exception, please confirm if there is an ongoing shared configuration operation, or please reset the share! 共享配置服务异常, 请确认是否有已经存在的共享设置操作, 或者重新设置共享! Help 帮助 About 关于 OperationMenuEditWidget Edit 编辑 copy 复制 paste 粘贴 cut 剪切 trash 删除 Peony::Intel::SideBarCloudItem CloudStorage 云存储 CloudFile 云文件 Peony::Intel::SideBarFavoriteItem Favorites 快速访问 Peony::Intel::SideBarFileSystemItem Computer 计算机 文件系统 文件系统 System Disk 系统盘 Peony::Intel::SideBarMenu Properties 属性 Delete Symbolic 删除链接 Unmount 卸载 Eject 弹出 format 格式化 Peony::Intel::SideBarPersonalItem Personal 个人 Peony::Intel::SideBarSeparatorItem (No Sub Directory) (无子目录) Peony::Intel::SideBarUserDiskItem User Disk 用户盘 Peony::Intel::TabletSideBarFactory Intel Side Bar Intel侧边栏 Peony::SearchWidget Search 搜索 Peony::TrashWarnDialog Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. 您确定要删除这些文件吗?一旦开始删除,这些文件将不可再恢复。 Delete 删除 Cancel 取消 PeonyApplication Peony-Qt 文件管理器 peony-qt 文件管理器 Files or directories to open 需要打开的文件或文件夹 [FILE1, FILE2,...] [文件1,文件2...] Warning 警告 Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. 文件管理器无法获取系统图标主题,可能的原因是: 1.正在以管理员用户运行文件管理器,虽然这意味着你拥有更高的权限,但是你必须了解你同时也失去了一些在普通用户下才能够拥有的特征,例如“我的电脑”以及系统主题。如果不是特殊情况,请不要使用管理员用户打开文件管理器。 2.你使用的系统主题不是qt默认支持的主题,并且你没有安装相关的平台插件。如果你正在使用Gtk主题作为系统主题,尝试安装qt5-gtk2-platformtheme以解决此问题。 Peony Qt 文件管理器 Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2020, 麒麟软件有限公司. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,麒麟软件有限公司. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,麒麟软件有限公司. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,麒麟软件有限公司. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. 作者: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> 版权所有(C): 2019-2020,天津麒麟信息技术有限公司. Close all peony-qt windows and quit 关闭所有窗口并退出 Show items 打开文件所在目录并选中它们 Show folders 显示文件夹下的内容 Show properties 打开文件属性窗口 QObject Error 错误 Can not open %1. 无法打开 %1. Force unmount failed 强制卸载失败 Error: %1 错误:%1 Data synchronization is complete,the device has been unmount successfully! 数据同步完成,设备已经安全卸载! Unmount failed 卸载失败 Unable to unmount it, you may need to close some programs, such as: GParted etc. 无法卸载设备,可以尝试先关闭一些应用程序,比如GParted等。 Error: %1 Do you want to unmount forcely? 错误:%1 您确定要强制卸载吗? Eject failed 弹出失败 Cancel 取消 Eject Anyway 强制弹出 Data synchronization is complete and the device can be safely unplugged! 数据同步完成,设备可以安全移除了! Unable to eject %1 无法弹出 %1 PeonyNotify 文件管理器消息 File Manager 文件管理器 SortTypeMenu File Name 文件名称 File Size 文件大小 Original Path 原始路径 Use global sorting 使用全局排序 File Type 文件类型 Modified Date 修改日期 Modified Data 修改日期 Ascending 升序 Descending 降序 TabStatusBar Current path has: 当前路径包含: %1 folders, %2 files %1 文件夹,%2 文件 %1 folders %1 文件夹 %1 files %1 文件 ; %1 folders ; %1 个文件夹 ; %1 files, %2 total ; %1 个文件, 共%2 ; %1 folder ; %1 个文件夹 ; %1 file, %2 ; %1 个文件, %2 %1 selected 选中%1个 Search "%1" in "%2" 在%2中搜索%1 %1 items %1 个项目 selected%1%2 选中%1%2 selected %1 items %2 选中 %1 个项目 %2 %1 items selected %2 items %1 项 选中 %2 项 selected %1 items 选中 %1 个项目 TabWidget Trash 回收站 Clear 清空 Recover 还原 Computer 计算机 Close Filter. 关闭筛选。 Filter 筛选 Select Path 选择路径 Open failed 打开失败 Open directory failed, you have no permission! 打开文件夹失败,您没有该目录的权限! Close advance search. 关闭高级搜索。 Search 搜索 Choose other path to search. 选择其他搜索路径。 Search recursively 递归搜索 more options 更多选项 Show/hide advance search 显示/隐藏高级搜索 Select path 选择路径 is Please input key words... 请输入关键词... Please input kay words... 请输入关键词... contains 包含 name 名称 type 类型 modify time 修改时间 file size 文件大小 all 全部 file folder 文件夹 image 图片 video 视频 text file 文本文档 audio 音频 others 其他 wps file WPS文件 today 今天 this week 本周 this month 本月 this year 今年 year ago 一年前 tiny(0-16K) 极小(0-16K) small(16k-1M) 很小(16k-1M) empty(0K) 空(0K) medium(1M-128M) 中等(1M-128M) big(128M-1G) 大(128M-1G) large(1-4G) 巨大(1-4G) great(>4G) 极大(>4G) medium(1M-100M) 中等(1M-100M) big(100M-1G) 很大(100M-1G) large(>1G) 极大(>1G) TitleLabel Peony 文件管理器 TopMenuBar Option 选项 Minimize 最小化 Close 关闭 peony-4.0.0.1/translations/peony-qt/peony-qt_fa.ts0000644000175000017500000006560414551627337020543 0ustar fengfeng AboutDialog Dialog <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:11pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> TextLabel Service & Support: Peony Version number: %1 Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. none FileLabelBox Rename تغییر نام Edit Color تغییر رنگ Delete حذف Create New Label ایجاد برچسب جدید HeaderBar Create Folder ایجاد پوشه Open Terminal باز‌کردن ترمینال Go Back بازگشت به عقب Go Forward رفتن به جلو Search جستجو View Type نحوۀ نمایش Sort Type نحوۀ مرتب‌سازی Option Operate Tips Don't find any terminal, please install at least one terminal! Minimize Küçült Close Kapat HeaderBarContainer Minimize Küçült Maximize/Restore Restore Onar Maximize Büyüt Close بستن MainWindow File Manager Dosya Yöneticisi Undo واگرد Redo از نو Tips info Trash has no file need to be cleaned. Delete file Warning Dosya Silme Uyarısı Delete Permanently حذف همیشگی Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. آیا از حذف این فایل‌ها اطمینان دارید؟ پس از حذف، امکان بازگرداندن فایل‌ها وجود ندارد. Peony Qt Peony Qt New Folder پوشۀ جدید NavigationSideBar All tags... Tüm etiketler... Open In New Window Can not open %1, %2 Open In New Tab NavigationSideBarContainer All tags... Tüm etiketler... NavigationTabBar Search "%1" in "%2" OperationMenu Advance Search Gelişmiş Arama Keep Allow Show Hidden نمایش موارد پنهان Forbid thumbnailing Resident in Backend Parallel Operations عملیات‌های موازی Help راهنما About OperationMenuEditWidget Edit تغییر copy paste cut trash PeonyApplication Peony-Qt Dosya Yöneticisi peony-qt Dosya Yöneticisi Files or directories to open [FILE1, FILE2,...] Warning هشدار Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. Peony Qt Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif Hakkı(C): 2019-2020, KYLIN Software Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Close all peony-qt windows and quit Show items نمایش موارد Show folders نمایش پوشه‌ها Show properties نمایش مشخصات SortTypeMenu File Name نام فایل File Size حجم فایل File Type نوع فایل Modified Date Modified Data Düzenlenen Veri Ascending افزایشی Descending کاهشی TabStatusBar ; %1 folders ; %1 files, %2 total ; %1 folder ; %1 file, %2 %1 selected Search "%1" in "%2" TabWidget Trash Clear Recover بازگرداندن Close advance search. بستن جستجوی پیشرفته Search جستجو Choose other path to search. مسیر جستجوی دیگری را انتخاب کنید. Search recursively more options گزینه‌های بیشتر Show/hide advance search نمایش/پنهان‌کردن جستجوی پیشرفته Select path is Please input key words... لطفاً کلمات کلیدی را وارد نمایید... Please input kay words... Lütfen anahtar kelimeler girin ... contains name نام type نوع modify time file size حجم فایل all همه file folder image تصویر video ویدیو text file فایل متنی audio صدا others سایر wps file فایل WPS today امروز this week این هفته this month این ماه this year امسال year ago tiny(0-16K) small(16k-1M) medium(1M-100M) big(100M-1G) large(>1G) peony-4.0.0.1/translations/peony-qt/peony-qt_tr.ts0000664000175000017500000014131714605456067020600 0ustar fengfeng AboutDialog Dialog <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html> TextLabel Service & Support: Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. File Manager Dosya Yöneticisi Peony Version number: %1 FileLabelBox Rename Yeniden Adlandır Edit Color Rengi Düzenle Delete Sil Create New Label Yeni Etiket Oluştur HeaderBar Create Folder Klasör Oluştur Open Terminal Uçbirim Aç Go Back Geri Go Forward İleri Search Ara View Type Görünüm Türü Sort Type Sıralama Türü Option Seçenek Operate Tips İşlet İpuçları Go Up Details &Copy Copy &Cut Cut &Select All Select All Deselect All &Delete to trash Delete to trash Don't find any terminal, please install at least one terminal! Herhangi bir uçbirim bulunamadı, lütfen en az bir uçbirim kurun! Select All Item Select Restore Onar Maximize Büyüt Select Done MoveTo CopyTo Delete Sil Select path Yol seç Minimize Küçült Close Kapat HeaderBarContainer Minimize Küçült Maximize/Restore Büyüt/Onar Restore Onar Maximize Büyüt Close Kapat Intel::NavigationSideBar Open In &New Window Yeni Pencerede Aç Open In New &Tab Yeni Sekmede Aç Intel::TitleLabel Files MainWindow File Manager Dosya Yöneticisi Undo Geri Redo İleri warn This operation is not supported. Search Ara Delete file Warning Dosya Silme Uyarısı Delete Permanently Kalıcı Olarak Sil Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Peony Qt Peony Qt New Folder Yeni Klasör NavigationSideBar All tags... Tüm etiketler... Open In &New Window Yeni Pencerede Aç warn This operation is not supported. Tips The device is in busy state, please perform this operation later. This is an abnormal Udisk, please fix it or format it This is an empty drive, please insert a Disc. Open In New Window Can not open %1, %2 Open In New Tab Open In New &Tab Yeni Sekmede Aç NavigationSideBarContainer All tags... Tüm etiketler... NavigationTabBar Search "%1" in "%2" "%2" de "%1" ara OperationMenu Advance Search Gelişmiş Arama Keep Allow İzin Ver Show Hidden Gizlileri Göster Show File Extension Forbid thumbnailing Küçük Resimleri Yasakla Resident in Backend Arka Uçta Yerleşik Parallel Operations Paralel İşlemler Set samba password Tips The user already has a samba password, do you need to reset the samba password? Samba set user password Samba password: Warning Uyarı Samba set password failed, Please re-enter! Shared configuration service exception, please confirm if there is an ongoing shared configuration operation, or please reset the share! Help Yardım About Hakkında OperationMenuEditWidget Edit Düzenle copy Kopyala paste Yapıştır cut Kes trash Çöp Peony::Intel::SideBarCloudItem CloudStorage CloudFile Peony::Intel::SideBarFavoriteItem Favorites Peony::Intel::SideBarFileSystemItem Computer 文件系统 System Disk Peony::Intel::SideBarMenu Properties Delete Symbolic Unmount Eject format Peony::Intel::SideBarPersonalItem Personal Peony::Intel::SideBarSeparatorItem (No Sub Directory) Peony::Intel::SideBarUserDiskItem User Disk Peony::Intel::TabletSideBarFactory Intel Side Bar Peony::SearchWidget Search Ara Peony::TrashWarnDialog Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Bu dosyaları silmek istediğinizden emin misiniz? Bir silme işlemini başlattığınızda, silinen dosyalar bir daha geri yüklenmeyecektir. Delete Sil Cancel PeonyApplication Peony-Qt Dosya Yöneticisi peony-qt Dosya Yöneticisi Files or directories to open Açılacak dosyalar veya dizinler [FILE1, FILE2,...] [DOSYA1, DOSYA2,...] Warning Uyarı Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. Peony-Qt sistem simgesi teması alınamıyor. Bu soruna yol açabilecek 2 neden vardır: 1. Peony-Qt root olarak çalışıyor olabilir, bu da daha yüksek izne sahip olduğunuz ve normalde yasak olan bazı şeyleri yapabileceğiniz anlamına gelir. Ancak, eğer root iseniz, sanal dosya sisteminin Bilgisayarımı kullanamayacağınız gibi bazı özellikleri kaybedeceğini, temanın ve simgelerin de yanlış gidebileceğini öğrenmelisiniz. Yani, bir root olarak Peony-qt çalıştırmak önerilmez. 2. Sisteminiz için qt olmayan bir tema kullanıyorsunuz ancak qt uygulamaları için platform tema eklentisini yüklemediniz. Gtk-theme kullanıyorsanız, bu sorunu çözmek için qt5-gtk2-platformtheme paketini yüklemeyi deneyin. Peony Qt Dosya Yöneticisi Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif Hakkı (C): 2020, KylinSoft Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif Hakkı(C): 2019-2020, KYLIN Software Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Close all peony-qt windows and quit Tüm peony-qt pencerelerini kapatın ve çıkın Show items Öğeleri göster Show folders Klasörleri göster Show properties Seçenekleri göster QObject Force unmount failed Error: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Unable to unmount it, you may need to close some programs, such as: GParted etc. Error: %1 Do you want to unmount forcely? Eject failed Cancel Eject Anyway Data synchronization is complete and the device can be safely unplugged! Unable to eject %1 PeonyNotify File Manager Dosya Yöneticisi SortTypeMenu File Name Dosya Adı File Size Dosya Boyutu Original Path Use global sorting File Type Dosya Türü Modified Date Düzenleme Tarihi Modified Data Düzenlenen Veri Ascending Artan Descending Azalan TabStatusBar ; %1 folders ; %1 klasör ; %1 files, %2 total ; %1 dosya, %2 toplam ; %1 folder ; %1 klasör ; %1 file, %2 ; %1 dosya, %2 %1 selected %1 seçildi Search "%1" in "%2" %1 de %1 bul %1 items selected%1%2 selected %1 items %2 %1 items selected %2 items TabWidget Trash Çöp Clear Temizle Recover Geri Yükle Computer Select Path Open failed Open directory failed, you have no permission! Close advance search. Gelişmiş aramayı kapat. Search Ara Choose other path to search. Aramak için başka bir yol seçin. Search recursively Yinelemeli olarak ara more options Daha fazla seçenek Show/hide advance search Gelişmiş aramayı göster/gizle Select path Yol seç is de Please input key words... Lütfen anahtar kelimeler girin ... Please input kay words... Lütfen anahtar kelimeler girin ... contains İçerik name İsim type Tür modify time Değiştirme Zamanı file size Dosya Boyutu all Tümü file folder Dosya klasör image Resim video Video text file Metin dosyası audio Ses others Diğer wps file Wps Dosyası today Bugün this week Bu hafta this month Bu ay this year Bu yıl year ago Geçen yıl tiny(0-16K) Çok küçük(0-16K) small(16k-1M) Küçük(16k-1M) empty(0K) medium(1M-128M) Orta(1M-100M) {1M?} {128M?} big(128M-1G) Büyük(100M-1G) {128M?} {1G?} large(1-4G) great(>4G) medium(1M-100M) Orta(1M-100M) big(100M-1G) Büyük(100M-1G) large(>1G) Daha büyük(>1G) TitleLabel Peony TopMenuBar Option Seçenek Minimize Küçült Close Kapat peony-4.0.0.1/translations/peony-qt/peony-qt_cs.ts0000664000175000017500000013054514605456067020561 0ustar fengfeng AboutDialog Dialog <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html> TextLabel Service & Support: Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. Version number: %1 Peony FileLabelBox Rename Edit Color Delete Create New Label HeaderBar Go Back Go Forward View Type Sort Type Option Operate Tips Go Up Details &Copy Copy &Cut Cut &Select All Select All Deselect All &Delete to trash Delete to trash Don't find any terminal, please install at least one terminal! Select All Item Select Restore Onar Maximize Büyüt Select Done MoveTo CopyTo Delete Select path Minimize Küçült Close Kapat HeaderBarContainer Minimize Küçült Restore Onar Maximize Büyüt Close Kapat Intel::NavigationSideBar Open In &New Window Open In New &Tab Intel::TitleLabel Files MainWindow Undo Redo warn This operation is not supported. Search File Manager Peony Qt Peony Qt New Folder NavigationSideBar All tags... Tüm etiketler... warn This operation is not supported. Tips The device is in busy state, please perform this operation later. This is an abnormal Udisk, please fix it or format it This is an empty drive, please insert a Disc. Open In New Window Can not open %1, %2 Open In New Tab NavigationSideBarContainer All tags... Tüm etiketler... NavigationTabBar Search "%1" in "%2" OperationMenu Advance Search Gelişmiş Arama Keep Allow Show Hidden Show File Extension Forbid thumbnailing Resident in Backend Parallel Operations Set samba password Tips The user already has a samba password, do you need to reset the samba password? Samba set user password Samba password: Warning Samba set password failed, Please re-enter! Shared configuration service exception, please confirm if there is an ongoing shared configuration operation, or please reset the share! Help About OperationMenuEditWidget Edit copy paste cut trash Peony::Intel::SideBarCloudItem CloudStorage CloudFile Peony::Intel::SideBarFavoriteItem Favorites Peony::Intel::SideBarFileSystemItem Computer 文件系统 System Disk Peony::Intel::SideBarMenu Properties Delete Symbolic Unmount Eject format Peony::Intel::SideBarPersonalItem Personal Peony::Intel::SideBarSeparatorItem (No Sub Directory) Peony::Intel::SideBarUserDiskItem User Disk Peony::Intel::TabletSideBarFactory Intel Side Bar Peony::SearchWidget Search Peony::TrashWarnDialog Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Delete Cancel PeonyApplication Peony-Qt Dosya Yöneticisi peony-qt Dosya Yöneticisi Files or directories to open [FILE1, FILE2,...] Warning Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. Peony Qt Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif Hakkı(C): 2019-2020, KYLIN Software Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Close all peony-qt windows and quit Show items Show folders Show properties QObject Force unmount failed Error: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Unable to unmount it, you may need to close some programs, such as: GParted etc. Error: %1 Do you want to unmount forcely? Eject failed Cancel Eject Anyway Data synchronization is complete and the device can be safely unplugged! Unable to eject %1 PeonyNotify File Manager SortTypeMenu File Name File Size Original Path Use global sorting File Type Modified Date Modified Data Düzenlenen Veri Ascending Descending TabStatusBar %1 items selected%1%2 Search "%1" in "%2" selected %1 items %2 %1 items selected %2 items TabWidget Trash Clear Recover Search Computer Select Path is Please input key words... Open failed Open directory failed, you have no permission! Please input kay words... Lütfen anahtar kelimeler girin ... contains name type modify time file size all file folder image video text file audio others wps file today this week this month this year year ago tiny(0-16K) small(16k-1M) empty(0K) medium(1M-128M) big(128M-1G) large(1-4G) great(>4G) TitleLabel Peony TopMenuBar Option Minimize Küçült Close Kapat peony-4.0.0.1/translations/peony-qt/peony-qt_bo_CN.ts0000664000175000017500000010753414605456067021136 0ustar fengfeng AboutDialog none མེད། Peony ཡིག་ཆ་དོ་དམ་ཆས། Dialog གླེང་སྒྲོམ། Version number: %1 པར་གཞིའི་ཨང་རྟགས།%1 Service & Support: ཞབས་ཞུ་དང་རྒྱབ་སྐྱོར་ཚོགས་པ།: Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. ཡིག་ཆ་དོ་དམ་ཆས་ནི་སྤྱོད་མཁན་ལ་རྒྱུད་ཁོངས་ཡིག་ཆ་དོ་དམ་ལ་རོགས་སྐྱོར་བྱེད་པའི་རིས་གཟུགས་མཉེན་ཆས་ཞིག་ཡིན། སྤྱོད་མཁན་ལ་རྒྱུན་བཀོལ་གྱི་ཡིག་ཆ་བཀོལ་སྤྱོད་ནུས་པ་འདོན་སྤྲོད་བྱེད། དཔེར་ན་ཡིག་ཆ་བཤེར་ལྟ་བྱ་དགོས་ན། ཡིག་ཆ་པར་སློག སྦྱར་བ། དྲས་གཏུབ། གསུབ་པ། མིང་བསྐྱར་འདོགས། ཡིག་ཁ་འབྱེད་ཐབས་གདམ་གསེས། ཡིག་ཆ་འཚོལ་བཤེར། ཡིག་ཆ་རིམ་སྒྲིག ཡིག་ཆ་སྔོན་ལྟ་བཅས་སྤྱོད་མཁན་ལ་སྟབས་བདེ་བསྐྲུན་ཡོད། TextLabel ཡིག་རྐྱང་ཕྲེང་བ། <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p></body></html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html> <head> <meta name="qrichtext" content="1" /> <style type="text/css"> p, li {དཀར་པོའི་བར་སྟོང་། སྔོན་ཚུད་ནས་ཐུམ་སྒྲིལ།} </style> </head> <body style=" font-family:'Noto Sans CJK SC'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"> <br /> </p> </body> </html> FileLabelBox Create New Label མཚོན་རྟགས་གསར་སྐྲུན། Delete བསུབ་པ། Rename མིང་བསྐྱར་འདོགས། Edit Color རྩོམ་སྒྲིག་ཁ་དོག HeaderBar Don't find any terminal, please install at least one terminal! མཐའ་སྣེར་བསྒར་ཡིག་ཅི་ཡང་མེད། ཁྱོད་ཀྱིས་མ་མཐའ་གཅིག་སྒྲིག་འཇུག་ཁག་ཐེག་བྱེད་རོགས། Option འདེམས་ཚན། Search འཚོལ་བ། Sort Type རིམ་སྒྲིག་རིགས་གྲས། View Type གཟུགས་རིས་རིགས་རྣམ། Go Forward མདུན་སྐྱོད། Go Back ཕྱིར་ལོག Operate Tips གསལ་བརྡ། Restore སླར་གསོ་བྱེད་པ། Maximize ཚད་གཞི་མཐོ་ཤོས་ཀྱི་སྒོ་ནས Go Up Details &Copy Copy &Cut Cut &Select All Select All &Delete to trash Delete to trash Select Select Done MoveTo CopyTo Select path རྒྱུ་ལམ་གདམ་གསེས། Minimize ཆེས་ཆུང་འགྱུར། Close ཁ་རྒྱག་པ། Deselect All Select All Item Delete བསུབ་པ། HeaderBarContainer Close ཁ་རྒྱག་པ། Minimize ཆེས་ཆུང་འགྱུར། Maximize/Restore ཆེས་ཆེ་བ/སླར་གསོ། Intel::NavigationSideBar Open In &New Window Open In New &Tab Intel::TitleLabel Files MainWindow Redo བསྐྱར་བཟོ། Undo འདོར་བ། Trash has no file need to be cleaned. སྙིགས་སྣོད་དུ་གཙང་སེལ་བྱེད་དགོས་པའི་ཡིག་ཆ་མེད། New Folder ཡིག་ཁུག་གསར་འཛུགས། Search འཚོལ་བ། Delete Permanently བརྟན་འདོར།(_D) Tips info ལྷག་བསམ་གསལ་འདེབས། File Manager ཡིག་ཆ་དོ་དམ་ཆས། Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། warn ཉེན་བརྡ་བཏང་བ། This operation is not supported. གཤགས་བཅོས་འདི་ལ་རྒྱབ་སྐྱོར་མི་བྱེད། NavigationSideBar Open In New Tab དོང་འཛར་གསར་པའི་ཁ་འབྱེད་པ། Can not open %1, %2 %1, %2ཁ་ཕྱེ་ཐུབ་མེད། Open In New Window སྒེའུ་ཁུང་གསར་བའི་ཁྲོད་ཁ་ཕྱེ་བ། Tips གསལ་འདེབས་བྱེད་ཐབས། This is an abnormal Udisk, please fix it or format it འདི་ནི་རྒྱུན་ལྡན་མིན་པའི་Udiskཡིན་པས་ཞིག་གསོ་བྱེད་རོགས། This is an empty drive, please insert a Disc. འདི་ནི་སྟོང་བའི་སྒུལ་ཤུགས་ཤིག་རེད། ཁྱེད་ཀྱིས་འོད་སྡེར་ཞིག་འཇོག་རོགས། warn ཉེན་བརྡ་བཏང་བ། This operation is not supported. གཤགས་བཅོས་འདི་ལ་རྒྱབ་སྐྱོར་མི་བྱེད། The device is in busy state, please perform this operation later. NavigationSideBarContainer All tags... མཚོན་རྟགས་ཡོངས་རྫོགས། NavigationTabBar Search "%1" in "%2" %2ཁྲོད་%1འཚོལ་ཞིབ། OperationMenu Help རོགས་རམ། About འབྲེལ་ཡོད། Keep Allow སྒེའུ་ཁུང་འགོ་འཇོག Show Hidden སྦས་པའི་ཡིག་ཆ་མངོན་པ། Resident in Backend རྒྱུན་སྡོད་རྒྱབ་སྟེགས། Parallel Operations བཀོལ་སྤྱོད་བྱེད་ཆོག Forbid thumbnailing བསྡུས་རིས་བཀོལ་མི་ཆོག Show File Extension ཡིག་ཆ་ཁྱབ་གདལ་དུ་གཏོང་བའི Set samba password Tips གསལ་འདེབས་བྱེད་ཐབས། The user already has a samba password, do you need to reset the samba password? Samba set user password Samba password: Warning ཉེན་བརྡ། Samba set password failed, Please re-enter! Shared configuration service exception, please confirm if there is an ongoing shared configuration operation, or please reset the share! OperationMenuEditWidget cut དྲས་གཏུབ་རྣམ་པ། Edit རྩོམ་སྒྲིག copy འདྲ་བཤུས། paste སྦྱར་བ། trash སྙིགས་སྒམ། Peony::Intel::SideBarCloudItem CloudStorage CloudFile Peony::Intel::SideBarFavoriteItem Favorites Peony::Intel::SideBarFileSystemItem Computer 文件系统 System Disk Peony::Intel::SideBarMenu Properties Delete Symbolic Unmount Eject format Peony::Intel::SideBarPersonalItem Personal Peony::Intel::SideBarSeparatorItem (No Sub Directory) Peony::Intel::SideBarUserDiskItem User Disk Peony::Intel::TabletSideBarFactory Intel Side Bar Peony::SearchWidget Search འཚོལ་བ། Peony::TrashWarnDialog Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. ཁྱོད་ཀྱིས་ཡིག་ཆ་འདི་དག་གསུབ་རྒྱུ་ཡིན་ནམ། གལ་ཏར་སུབ་ཚར་ན། ཡིག་ཆ་འདི་དག་ནམ་ཡང་སླར་གསོ་མི་ཐུབ། Delete བསུབ་པ། Cancel PeonyApplication Show properties ཡིག་ཆའི་རང་གཤིས་སྒེའུ་ཁུང་ཁ་ཕྱེ་བ། Close all peony-qt windows and quit སྒེའུ་ཁུང་ཐམས་ཅད་སྒོ་བརྒྱབ་ནས་ཕྱིར་འབུད། Show items ཡིག་ཆ་ཡོད་པའི་དཀར་ཆག་ཁ་ཕྱེ་བ་དང་ཁོ་ཚོ་འདེམ་དགོས། Show folders ཡིག་ཁུག་གི་ནང་དོན་མངོན་དགོས། Peony Qt ཡིག་ཆ་དོ་དམ་ཆས། peony-qt ཡིག་ཆ་དོ་དམ་ཆས། Files or directories to open ཡིག་ཆའམ་ཡིག་ཁུག་ཁ་ཕྱེ་དགོས། Warning ཉེན་བརྡ། [FILE1, FILE2,...] ཡིག་ཆ༡ ཡིག་ཆ༢ Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. ཡིག་ཆ་དོ་དམ་ཆས་ཀྱིས་རྒྱུད་ཁོངས་པར་རྟགས་བརྗོད་གཞི་རྙེད་མ་ཐུབ་པའི་རྒྱུ་རྐྱེན་ནི། ༡ དོ་དམ་པའི་སྤྱོད་མཁན་གྱིས་ཡིག་ཆ་དོ་དམ་ཆས་སྤྱོད་པའི་སྐབས་ལ་འཁེལ་བ། འདི་ལས་ཁྱེད་ཀྱི་དབང་ཚད་གཞན་ལས་མཐོ་བ་མཚོན་མོང། འོན་ཀྱང་ཁྱེད་ཀྱིས་ངེས་པར་རང་ཉིད་ཀྱིས་སྤྱོད་མཁན་ཕལ་བའི་དབང་ཚད་འགའ་ཤས་ཤོར་བ་འང་ངོས་ཟིན་ཐུབ་དགོས། དཔེར་ན། བདག་གི་རྩིས་འཁོརའམ་རྒྱུད་ཁོངས་བརྗོད་གཞི། གལ་ཏེ་གནས་ཚུལ་ཁྱད་པར་ཅན་མིན་ན། ཁྱོད་ཀྱིས་དོ་དམ་པའི་སྤྱོད་མཁན་གྱིས་ཡིག་ཆ་དོ་དམ་ཆས་ཁ་མ་འབྱེད། ༢ ཁྱོད་ཀྱིས་བཀོལ་བའི་རྒྱུད་ཁོངས་བརྗོད་གཞིར་qtསོར་བཞག་བརྗོད་གཞིས་རྒྱབ་སྐྱོར་མི་བྱེད་པ་དང་། ཁྱོད་ལ་གཞན་གྱི་འབྲེལ་ཡོད་སྟེགས་བུ་ནང་འཇུག་བྱས་མེད་ན། གལ་སྲིད་ཁྱོས་Gtkབརྗོད་གཞི་རྒྱུད་ཁོངས་ཀྱི་བརྗོད་གཞིར་བེད་སྤྱོད་བྱེད་བཞིན་ཡོད་ན། qt5-gtk2-platformthemeསྒྲིག་འཇུག་བྱས་ན་གནད་དོན་ཐག་གཅོད་བྱེད་ཐུབ། Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. རྩོམ་པ་པོ། Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> པར་དབང་ཡོད་ཚད (C): 2020 ཆི་ལིན་མཉེན་ཆས་ཚད་ཡོད་ཀུང་ཟི། QObject Force unmount failed Error: %1 Data synchronization is complete,the device has been unmount successfully! Unmount failed Unable to unmount it, you may need to close some programs, such as: GParted etc. Error: %1 Do you want to unmount forcely? Eject failed Cancel Eject Anyway Data synchronization is complete and the device can be safely unplugged! Unable to eject %1 PeonyNotify File Manager ཡིག་ཆ་དོ་དམ་ཆས། SortTypeMenu File Name ཡིག་ཆའི་མིང་། File Size ཡིག་ཆའི་ཆེ་ཆུང་། File Type ཡིག་ཆའི་རིགས་གྲས། Descending རིམ་འབེབས། Ascending འཕེལ་རིམ། Modified Date ཟླ་ཚེས་བཅོས་བསྒྱུར། Use global sorting གོ་ལ་ཧྲིལ་པོའི་རིགས་འབྱེད་ Original Path ཐོག་མའི་འགྲོ་ལམ། TabStatusBar %1 items %1རྣམ་གྲངས་སྒེར། selected %1 items %1རྣམ་གྲངས་སྒེར་འདེམ་པ། selected %1 items %2 %1རྣམ་གྲངས་སྒེར་འདེམ་པ། %2 selected%1%2 Search "%1" in "%2" %2ཁྲོད་%1འཚོལ་ཞིབ། %1 items selected %2 items TabWidget is ཡིན། all ཚང་མ། name མིང་། type རིགས་རྣམ། Clear གཙང་སེལ། this year ད་ལོ། this week གཟའ་འདི། Trash སྙིགས་སྒམ། audio སྒྲ་ཟློས། image པར་རིས།། today དེ་རིང་། video བརྙན་ལམ། file size ཡིག་ཆའི་ཆེ་ཆུང་། big(128M-1G) ཆེ(128M-1G) Filter གནད་ཡིག medium(1M-128M) འབྲིང་(1M-128M) this month ཟླ་འདི། contains ཚུད་པ། Search recursively རིམ་ལོག་འཚོལ་བཤེར། file folder ཡིག་ཁུག Close Filter. གདམ་གསེས་སྒོ་རྒྱག་པ། wps file WPSཡིག་ཆ། others གཞན་དག empty(0K) སྟོང་པ(0K) large(1-4G) ཆེན་པོ(1-4G) great(>4G) ཧ་ཅང་ཆེན་པོ།(>4G) Recover སླར་གསོ། Select path རྒྱུ་ལམ་གདམ་གསེས། Choose other path to search. གཞན་གྱི་འཚོལ་བཤེར་བརྒྱུད་ལམ་འདེམ་པ། tiny(0-16K) ཆེས་ཆུང(0-16K) year ago ལོ་གཅིག་གི་སྔོན། modify time ཆུ་ཚོད་བཅོས་བསྒྱུར། Please input key words... གནད་ཚིག་ནང་འཇུག་བྱེད་རོགས། small(16k-1M) ཆུང་ཆུང་(16k-1M text file ཡིག་རྐྱང་ཡིག་ཆ། Select Path ལམ་ཕྲན་བདམས་པ། Open failed སྒོ་ཕྱེ་ནས་ཕམ་ཉེས་བྱུང་བ། Open directory failed, you have no permission! ཁ་ཕྱེ་བའི་དཀར་ཆག་ལ་ཕམ་ཉེས་བྱུང་ན་ཁྱེད་ལ་ཆོག་མཆན་མ་ཐོབ། Search འཚོལ་བ། Computer TitleLabel Peony ཡིག་ཆ་དོ་དམ་ཆས། TopMenuBar Option འདེམས་ཚན། Minimize ཆེས་ཆུང་འགྱུར། Close ཁ་རྒྱག་པ། peony-4.0.0.1/translations/peony-qt/peony-qt_fr.ts0000644000175000017500000006766314551637202020563 0ustar fengfeng AboutDialog Dialog <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:11pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> TextLabel Service & Support: Peony Version number: %1 Peony is a graphical software to help users manage system files. It provides common file operation functions for users, such as file viewing, file copy, paste, cut, delete, rename, file selection, application opening, file search, file sorting, file preview, etc. it is convenient for users to manage system files intuitively on the interface. none FileLabelBox Rename Renommer Edit Color Modifier la couleur Delete Effacer Create New Label Créer une nouvelle étiquette HeaderBar Create Folder Créer le dossier Open Terminal Terminal ouvert Go Back Retourner Go Forward Aller en avant Search Chercher View Type Type de vue Sort Type Type de tri Option Option Operate Tips Conseils d'utilisation Don't find any terminal, please install at least one terminal! Aucun terminal trouvé, veuillez installer au moins un terminal ! Minimize Küçült Close Kapat HeaderBarContainer Minimize Minimiser Maximize/Restore Agrandir/restaurer Restore Onar Maximize Büyüt Close Fermer MainWindow File Manager Dosya Yöneticisi Undo Annuler Redo Rétablir Tips info Trash has no file need to be cleaned. Delete file Warning Dosya Silme Uyarısı Delete Permanently Supprimer définitivement Are you sure that you want to delete these files? Once you start a deletion, the files deleting will never be restored again. Êtes-vous sûr de vouloir supprimer ces fichiers ? Une fois que vous avez commencé une suppression, les fichiers supprimés ne seront plus jamais restaurés. Peony Qt Peony Qt New Folder Nouveau dossier NavigationSideBar All tags... Tüm etiketler... Open In &New Window Ouvrir dans une &nouvelle fenêtre Open In New &Tab Ouvrir dans un nouvel onglet Open In New Window Can not open %1, %2 Open In New Tab NavigationSideBarContainer All tags... Toutes les balises... NavigationTabBar Search "%1" in "%2" Rechercher "%1" dans "%2" OperationMenu Advance Search Gelişmiş Arama Keep Allow Garder la permission Show Hidden Afficher masqué Forbid thumbnailing Interdire la vignette Resident in Backend Résident dans l'arrière-plan Parallel Operations Opérations parallèles Help Aide About À propos OperationMenuEditWidget Edit Éditer copy copier paste coller cut couper trash corbeille PeonyApplication Peony-Qt Dosya Yöneticisi peony-qt Dosya Yöneticisi Files or directories to open Fichiers ou répertoires à ouvrir [FILE1, FILE2,...] [FILE1, FILE2,...] Warning Attention Peony-Qt can not get the system's icon theme. There are 2 reasons might lead to this problem: 1. Peony-Qt might be running as root, that means you have the higher permission and can do some things which normally forbidden. But, you should learn that if you were in a root, the virtual file system will lose some featrue such as you can not use "My Computer", the theme and icons might also went wrong. So, run peony-qt in a root is not recommended. 2. You are using a non-qt theme for your system but you didn't install the platform theme plugin for qt's applications. If you are using gtk-theme, try installing the qt5-gtk2-platformtheme package to resolve this problem. Peony-Qt ne peut pas obtenir le thème d'icônes du système. Il y a 2 raisons qui peuvent conduire à ce problème : 1. Peony-Qt peut fonctionner en tant que root, cela signifie que vous avez la permission la plus élevée et que vous pouvez faire certaines choses qui sont normalement interdites. Mais, vous devez savoir que si vous étiez dans une racine, le système de fichiers virtuel perdra une certaine fonction telle que vous ne pouvez pas utiliser "Poste de travail", le thème et les icônes pourraient également mal tourner. Donc, exécuter peony-qt dans une racine n'est pas recommandé. 2. Vous utilisez un thème non-qt pour votre système mais vous n'avez pas installé le plugin de thème de plate-forme pour qt applications. Si vous utilisez gtk-theme, essayez d'installer le package qt5-gtk2-platformtheme pour résoudre ce problème. Peony Qt Peony Qt Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2020, KylinSoft Co., Ltd. Auteurs : Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C) : 2020, KylinSoft Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif Hakkı(C): 2019-2020, KYLIN Software Co., Ltd. Author: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, KYLIN Software Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, KYLIN Software Co., Ltd. Authour: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Copyright (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Yazar: Yue Lan <lanyue@kylinos.cn> Meihong He <hemeihong@kylinos.cn> Telif (C): 2019-2020, Tianjin KYLIN Information Technology Co., Ltd. Close all peony-qt windows and quit Fermer toutes les fenêtres de peony-qt et quitter Show items Afficher les éléments Show folders Afficher les dossiers Show properties Afficher les propriétés SortTypeMenu File Name Nom de fichier File Size Taille du fichier File Type Type de fichier Modified Date Date modifiée Modified Data Düzenlenen Veri Ascending Ascendant Descending Descendant TabStatusBar ; %1 folders ; %1 dossiers ; %1 files, %2 total ; %1 fichiers, %2 total ; %1 folder ; %1 dossier ; %1 file, %2 ; %1 fichier, %2 %1 selected %1 sélectionné Search "%1" in "%2" Rechercher "%1" dans "%2" TabWidget Trash Corbeille Clear Nettoyer Recover Récupérer Close advance search. Fermer la recherche avancée. Search Chercher Choose other path to search. Choisir un autre chemin de recherche. Search recursively Rechercher récursivement more options plus d'options Show/hide advance search Afficher/masquer la recherche avancée Select path Sélectionner le chemin is est Please input key words... Veuillez saisir les mots clés... Please input kay words... Lütfen anahtar kelimeler girin ... contains contient name Nom type type modify time modifier l'heure file size taille du fichier all tout file folder dossier de fichiers image image video vidéo text file fichier texte audio audio others autres wps file fichier wps today aujourd'hui this week cette semaine this month ce mois-ci this year cette année year ago il y'a un an tiny(0-16K) minuscule (0-16K) small(16k-1M) petit (16k-1M) medium(1M-100M) moyen (1M-100M) big(100M-1G) grand (100M-1G) large(>1G) large (>1G) peony-4.0.0.1/doxygen/0000755000175000017500000000000014551627337013116 5ustar fengfengpeony-4.0.0.1/doxygen/Doxyfile.in0000644000175000017500000033427214551627337015244 0ustar fengfeng# Doxyfile 1.8.17 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single 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 configuration # 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 # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "Peony Qt" # 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 = "Poeny Qt 是基于qt前端和gio后端的文件管理器,除了peony-qt文件管理本身,它也将提供一个libpeony-qt的文件管理器开发包用于文件管理器的二次开发。整个项目开源,目前项目地址为:https://github.com/ukui/peony。注:peony-qt基于GPLv3发布,而libpeony-qt基于LGPLv3发布。" # With the PROJECT_LOGO tag one can specify a logo or an 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) path # into which the generated documentation will be written. 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 = ./out # 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 causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = YES # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = YES # 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. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = Chinese # The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all generated output in the proper direction. # Possible values are: None, LTR, RTL and Context. # The default value is: None. OUTPUT_TEXT_DIRECTION = None # If the BRIEF_MEMBER_DESC tag is set to YES, 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. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, 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. # The default value is: YES. 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 and the. ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # 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. # The default value is: NO. 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. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, 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 # The default value is: YES. FULL_PATH_NAMES = YES # 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. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. 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 list of 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 is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. 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-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be # interpreted by doxygen. # The default value is: NO. JAVADOC_BANNER = NO # 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 Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = YES # 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 behavior. 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 behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = YES # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. 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. # The default value is: NO. 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. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act 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 (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. # When you need a literal { or } or , in the value part of an alias you have to # escape them by means of a backslash (\), this can lead to conflicts with the # commands \{ and \} for these it is advised to use the version @{ and @} or use # a double escape (\\{ and \\}) ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # 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. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. 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. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice # sources only. Doxygen will then generate output that is more tailored for that # language. For instance, namespaces will be presented as modules, types will be # separated into more groups, etc. # The default value is: NO. OPTIMIZE_OUTPUT_SLICE = 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, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, # Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the # default for Fortran type files), VHDL, tcl. 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: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 5. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # 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); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) 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. # The default value is: NO. 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 will make # doxygen to 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. # The default value is: YES. 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. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES 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. # The default value is: YES. 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). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag 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. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_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 respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = YES # If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual # methods of a class will be included in the documentation. # The default value is: NO. EXTRACT_PRIV_VIRTUAL = YES # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = YES # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. 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. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If 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, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = YES # 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 namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO 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. # The default value is: NO. 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, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. 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, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. 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 then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = YES # 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 # (including Cygwin) ands Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # 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. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES 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. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = YES # 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 constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: 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 group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = YES # 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 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. # The default value is: NO. SORT_BY_SCOPE_NAME = YES # 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. # The default value is: NO. 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. # The default value is: YES. 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. # The default value is: YES. 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. # The default value is: YES. 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. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have 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 value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. 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. # The default value is: YES. SHOW_USED_FILES = YES # 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 value 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 value 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. For an example see the documentation. 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. To 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. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag 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. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag 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. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This 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, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. If # EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. # The default value is: NO. WARN_AS_ERROR = 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) # The default value is: $file:$line: $text. 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 standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is 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. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = ../ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: https://www.gnu.org/software/libiconv/) for the list of # possible encodings. # The default value is: UTF-8. 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 patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), # *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen # C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f, *.for, *.tcl, *.vhd, # *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.idl \ *.ddl \ *.odl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.cs \ *.d \ *.php \ *.php4 \ *.php5 \ *.phtml \ *.inc \ *.m \ *.markdown \ *.md \ *.mm \ *.dox \ *.py \ *.pyw \ *.f90 \ *.f95 \ *.f03 \ *.f08 \ *.f \ *.for \ *.tcl \ *.vhd \ *.vhdl \ *.ucf \ *.qsf # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # 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. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. 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 # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */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. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be 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: # # # # where is the value of the INPUT_FILTER tag, and 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. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. 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 information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. 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 tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # 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 that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # entity all documented functions referencing it will be listed. # The default value is: NO. 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. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES 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. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = 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 https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES 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. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_OPTIONS = # If clang assisted parsing is enabled you can provide the clang parser with the # path to the compilation database (see: # http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files # were built. This is equivalent to specifying the "-p" option to a clang tool, # such as clang-check. These options will then be passed to the parser. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse_libclang=ON option for CMake. CLANG_DATABASE_PATH = #--------------------------------------------------------------------------- # 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. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. 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 a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. 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. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. 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). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. 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 left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_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. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # https://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. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. 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 YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have JavaScript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # 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 (see: https://developer.apple.com/xcode/), 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 https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset 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. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # 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. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_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. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # 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. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # 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. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # 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). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # 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. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. 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 Qt Help Project / Virtual # Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # 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. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. 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. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # 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. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values 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. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # 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. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. 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. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANSPARENT 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 directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. FORMULA_MACROFILE = # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered 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 may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # 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 # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. # The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # 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. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /