fancytasks_1.0.94/000755 001750 001750 00000000000 11436144324 012237 5ustar00000000 000000 fancytasks_1.0.94/COPYING000644 001750 001750 00000035427 11436144324 013305 0ustar00000000 000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS fancytasks_1.0.94/CMakeLists.txt000644 001750 001750 00000000152 11436144323 014774 0ustar00000000 000000 find_package(KDE4 REQUIRED) include(KDE4Defaults) add_subdirectory(applet) add_subdirectory(containment) fancytasks_1.0.94/INSTALL000644 001750 001750 00000000744 11436144324 013275 0ustar00000000 000000 To install plasmoid check if you have installed needed header files (kdelibs, kdebase-workspace, konq), unpack archive, go to it's main directory (applet/) and execute install.sh script. Alternatively you can run following commands: mkdir build cd build cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` make su make install exit kbuildsycoca4 After that plasmoid should show up in add widgets dialog. If not, you can try to execute: kquitapp plasma-desktop plasma-desktop fancytasks_1.0.94/applet/000755 001750 001750 00000000000 11436144324 013524 5ustar00000000 000000 fancytasks_1.0.94/applet/CMakeLists.txt000644 001750 001750 00000003677 11436144324 016301 0ustar00000000 000000 project(fancytasks) find_package(KDE4 REQUIRED) include(KDE4Defaults) add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) if(X11_Xcomposite_FOUND AND X11_Xrender_FOUND AND X11_Xfixes_FOUND) set(FANCYTASKS_HAVE_COMPOSITING 1) endif(X11_Xcomposite_FOUND AND X11_Xrender_FOUND AND X11_Xfixes_FOUND) set(fancytasks_SRCS FancyTasksApplet.cpp FancyTasksIcon.cpp FancyTasksLight.cpp FancyTasksSeparator.cpp FancyTasksDropZone.cpp FancyTasksMenu.cpp FancyTasksTask.cpp FancyTasksLauncher.cpp FancyTasksJob.cpp FancyTasksConfiguration.cpp FancyTasksActionDelegate.cpp) add_subdirectory(po) kde4_add_ui_files(fancytasks_SRCS ui/general.ui ui/appearance.ui ui/arrangement.ui ui/actions.ui ui/findApplication.ui ui/group.ui) kde4_add_plugin(plasma_applet_fancytasks ${fancytasks_SRCS}) target_link_libraries(plasma_applet_fancytasks ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS} ${KDE4_KUTILS_LIBS} ${KDE4_KIO_LIBS} taskmanager konq ) if(X11_FOUND) target_link_libraries(plasma_applet_fancytasks ${X11_LIBRARIES} ) endif(X11_FOUND) if(FANCYTASKS_HAVE_COMPOSITING) target_link_libraries(plasma_applet_fancytasks ${X11_Xcomposite_LIB} ${X11_Xrender_LIB} ${X11_Xfixes_LIB} ) endif(FANCYTASKS_HAVE_COMPOSITING) configure_file(config-fancytasks.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-fancytasks.h) install(TARGETS plasma_applet_fancytasks DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES plasma-applet-fancytasks.desktop DESTINATION ${SERVICES_INSTALL_DIR}) install(FILES theme/fancytasks.svgz DESTINATION ${DATA_INSTALL_DIR}/desktoptheme/default/widgets/) fancytasks_1.0.94/applet/FancyTasksIcon.h000644 001750 001750 00000013536 11436144324 016564 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSICON_HEADER #define FANCYTASKSICON_HEADER #include "FancyTasksApplet.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace FancyTasks { using TaskManager::GroupPtr; using TaskManager::TaskPtr; using TaskManager::StartupPtr; using TaskManager::AbstractGroupableItem; using TaskManager::GroupManager; using TaskManager::TaskItem; using TaskManager::TaskGroup; class Applet; class Task; class Launcher; class Job; class Light; class Icon : public QGraphicsWidget { Q_OBJECT public: Icon(AbstractGroupableItem *abstractItem, Launcher *launcher,Job *job, Applet *parent); ~Icon(); ItemType itemType() const; QPointer task(); QPointer launcher(); QList > jobs(); QString title() const; QString description() const; QPainterPath shape() const; KIcon icon(); qreal factor() const; bool isVisible() const; bool demandsAttention() const; public slots: void show(); void hide(); void activate(); void updateSize(); void updateIcon(); void setFactor(qreal factor); void setSize(qreal size); void setThumbnail(const KFileItem &item = KFileItem(), const QPixmap thumbnail = QPixmap()); void startAnimation(AnimationType animationType, int duration, bool repeat); void stopAnimation(); void progressAnimation(int progress); void changeGlow(bool enable, qreal radius); void publishGeometry(TaskManager::TaskItem *task); void taskChanged(ItemChanges changes); void launcherChanged(ItemChanges changes); void jobChanged(ItemChanges changes); void jobDemandsAttention(); void setTask(AbstractGroupableItem *abstractItem); void setLauncher(Launcher *launcher); void addJob(Job *job); void removeJob(Job *job); void addWindow(WId window); void removeWindow(WId window); void windowPreviewActivated(WId window, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint &point); void performAction(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Task *task = NULL); void performAction(IconAction action, Task *task = NULL); void toolTipAboutToShow(); void toolTipHidden(); void updateToolTip(); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void focusInEvent(QFocusEvent *event); void focusOutEvent(QFocusEvent *event); void hoverEnterEvent(QGraphicsSceneHoverEvent *event); void hoverMoveEvent(QGraphicsSceneHoverEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); void dragEnterEvent(QGraphicsSceneDragDropEvent *event); void dragMoveEvent(QGraphicsSceneDragDropEvent *event); void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); void dropEvent(QGraphicsSceneDragDropEvent *event); void mouseMoveEvent(QGraphicsSceneMouseEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); void keyPressEvent(QKeyEvent *event); void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); void timerEvent(QTimerEvent *event); private: QPointer m_applet; QPointer m_task; QPointer m_launcher; QPointer m_glowEffect; QList > m_jobs; QHash > m_windowLights; QGraphicsLinearLayout *m_layout; QTimeLine *m_animationTimeLine; QTimeLine *m_jobAnimationTimeLine; ItemType m_itemType; QPixmap m_visualizationPixmap; QPixmap m_thumbnailPixmap; AnimationType m_animationType; qreal m_size; qreal m_factor; qreal m_animationProgress; int m_jobsProgress; int m_jobsAnimationProgress; int m_dragTimer; int m_highlightTimer; bool m_menuVisible; bool m_demandsAttention; bool m_jobsRunning; bool m_isVisible; bool m_isPressed; signals: void sizeChanged(qreal size); void colorChanged(QColor color); void hoverMoved(QGraphicsWidget *item, qreal across); void hoverLeft(); }; } #endif fancytasks_1.0.94/applet/FancyTasksApplet.h000644 001750 001750 00000020212 11436144324 017106 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSAPPLET_HEADER #define FANCYTASKSAPPLET_HEADER #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using TaskManager::GroupPtr; using TaskManager::TaskPtr; using TaskManager::StartupPtr; using TaskManager::AbstractGroupableItem; using TaskManager::GroupManager; using TaskManager::TaskItem; using TaskManager::TaskGroup; namespace FancyTasks { enum TitleLabelMode { NoLabel = 0, LabelOnMouseOver, LabelForActiveIcon, AlwaysShowLabel }; enum CloseJobMode { InstantClose, DelayedClose, ManualClose }; enum IconAction { ActivateItem, ActivateTask, ActivateLauncher, ShowMenu, ShowChildrenList, ShowWindows, CloseTask }; enum AnimationType { NoAnimation = 0, ZoomAnimation, JumpAnimation, RotateAnimation, BounceAnimation, BlinkAnimation, GlowAnimation, SpotlightAnimation, FadeAnimation }; enum ActiveIconIndication { NoIndication = 0, ZoomIndication, GlowIndication, FadeIndication }; enum ItemChange { NoChanges = 0, TextChanged, IconChanged, WindowsChanged, StateChanged, OtherChanges, EveythingChanged = (TextChanged | IconChanged | WindowsChanged | StateChanged | OtherChanges) }; enum ItemType { TypeOther = 0, TypeLauncher, TypeJob, TypeStartup, TypeTask, TypeGroup }; Q_DECLARE_FLAGS(ItemChanges, ItemChange) class Icon; class Job; class Launcher; class DropZone; class Applet : public Plasma::Applet { Q_OBJECT public: Applet(QObject *parent, const QVariantList &args); ~Applet(); void init(); void itemDropped(Icon *icon, int index); void itemDragged(Icon *icon, const QPointF &position, const QMimeData *mimeData); KMenu* contextMenu(); Launcher* launcherForUrl(KUrl url); Launcher* launcherForTask(TaskManager::TaskItem *task); Icon* iconForMimeData(const QMimeData *mimeData); TaskManager::GroupManager* groupManager(); Plasma::Svg* theme(); QStringList arrangement() const; TitleLabelMode titleLabelMode() const; ActiveIconIndication activeIconIndication() const; AnimationType moveAnimation() const; AnimationType demandsAttentionAnimation() const; AnimationType startupAnimation() const; QHash > iconActions() const; QList contextualActions(); QPixmap lightPixmap(); WId window() const; qreal initialFactor() const; qreal itemSize() const; bool parabolicMoveAnimation() const; bool useThumbnails() const; bool paintReflections() const; static void setActiveWindow(WId window); static WId activeWindow(); static QPixmap windowPreview(WId window, int size); public slots: void configChanged(); void updateConfiguration(); void insertItem(int index, QGraphicsLayoutItem *item); void addTask(AbstractGroupableItem *abstractItem); void removeTask(AbstractGroupableItem *abstractItem); void changeTaskPosition(AbstractGroupableItem *abstractItem); void addLauncher(Launcher *launcher, int index); void removeLauncher(Launcher *launcher); void addJob(const QString &source); void removeJob(const QString &source, bool force = false); void showJob(); void cleanupRemovedStartups(); void itemHoverMoved(QGraphicsWidget *item, qreal across); void hoverLeft(); void moveAnimation(int progress); void focusIcon(bool next, bool activateWindow = false); void needsVisualFocus(); void showMenu(); void showDropZone(int index); void hideDropZone(); void updateSize(); void urlChanged(const KUrl &oldUrl, KUrl &newUrl); void requestFocus(); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void createConfigurationInterface(KConfigDialog *parent); void constraintsEvent(Plasma::Constraints constraints); void resizeEvent(QGraphicsSceneResizeEvent *event); void dragMoveEvent(QGraphicsSceneDragDropEvent *event); void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); void dropEvent(QGraphicsSceneDragDropEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event); void wheelEvent(QGraphicsSceneWheelEvent *event); void focusInEvent(QFocusEvent *event); bool focusNextPrevChild(bool next); private: QGraphicsLinearLayout *m_layout; GroupManager *m_groupManager; QQueue > m_jobsQueue; QList m_visibleItems; QList > m_launchers; QHash > m_jobs; QHash > m_launcherIcons; QHash > m_jobIcons; QHash > m_taskIcons; QHash > m_launcherTaskIcons; QHash m_removedStartups; QHash > m_iconActions; QDateTime m_lastAttentionDemand; QPixmap m_lightPixmap; QSize m_size; Plasma::FrameSvg *m_theme; Plasma::FrameSvg *m_background; DropZone *m_dropZone; TaskManager::GroupManager::TaskGroupingStrategy m_groupingStrategy; TaskManager::GroupManager::TaskSortingStrategy m_sortingStrategy; QString m_customBackgroundImage; QStringList m_arrangement; QTimeLine *m_animationTimeLine; TitleLabelMode m_titleLabelMode; CloseJobMode m_jobCloseMode; ActiveIconIndication m_activeIconIndication; AnimationType m_moveAnimation; AnimationType m_demandsAttentionAnimation; AnimationType m_startupAnimation; qreal m_appletMaximumWidth; qreal m_appletMaximumHeight; qreal m_initialFactor; qreal m_across; qreal m_itemSize; int m_activeItem; int m_focusedItem; bool m_useThumbnails; bool m_parabolicMoveAnimation; bool m_showOnlyCurrentDesktop; bool m_showOnlyCurrentScreen; bool m_showOnlyMinimized; bool m_showOnlyTasksWithLaunchers; bool m_connectJobsWithTasks; bool m_groupJobs; bool m_paintReflections; static WId m_activeWindow; signals: void sizeChanged(qreal size); void locationChanged(); }; } #endif fancytasks_1.0.94/applet/FancyTasksIcon.cpp000644 001750 001750 00000143174 11436144324 017121 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #define PI 3.141592653 #include "FancyTasksIcon.h" #include "FancyTasksTask.h" #include "FancyTasksLauncher.h" #include "FancyTasksJob.h" #include "FancyTasksLight.h" #include "FancyTasksMenu.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace FancyTasks { Icon::Icon(TaskManager::AbstractGroupableItem *abstractItem, Launcher *launcher, Job *job, Applet *parent) : QGraphicsWidget(parent), m_applet(parent), m_task(NULL), m_launcher(NULL), m_glowEffect(NULL), m_layout(new QGraphicsLinearLayout(this)), m_animationTimeLine(new QTimeLine(1000, this)), m_jobAnimationTimeLine(NULL), m_itemType(TypeOther), m_factor(parent->initialFactor()), m_animationProgress(-1), m_jobsProgress(0), m_jobsAnimationProgress(0), m_dragTimer(0), m_highlightTimer(0), m_menuVisible(false), m_demandsAttention(false), m_jobsRunning(false), m_isVisible(true), m_isPressed(false) { setObjectName("FancyTasksIcon"); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); setAcceptsHoverEvents(true); setAcceptDrops(true); setFocusPolicy(Qt::StrongFocus); setFlag(QGraphicsItem::ItemIsFocusable); setLayout(m_layout); m_visualizationPixmap = NULL; m_thumbnailPixmap = NULL; m_animationTimeLine->setFrameRange(0, 100); m_animationTimeLine->setUpdateInterval(50); m_animationTimeLine->setCurveShape(QTimeLine::LinearCurve); m_layout->setOrientation((m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge)?Qt::Vertical:Qt::Horizontal); m_layout->addStretch(); m_layout->addStretch(); if (abstractItem) { setTask(abstractItem); } else if (launcher) { setLauncher(launcher); } else if (job) { addJob(job); } connect(this, SIGNAL(destroyed()), m_applet, SLOT(updateSize())); connect(this, SIGNAL(hoverMoved(QGraphicsWidget*, qreal)), m_applet, SLOT(itemHoverMoved(QGraphicsWidget*, qreal))); connect(this, SIGNAL(hoverLeft()), m_applet, SLOT(hoverLeft())); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SLOT(setSize(qreal))); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SIGNAL(sizeChanged(qreal))); connect(m_animationTimeLine, SIGNAL(finished()), this, SLOT(stopAnimation())); connect(m_animationTimeLine, SIGNAL(frameChanged(int)), this, SLOT(progressAnimation(int))); } Icon::~Icon() { qDeleteAll(m_windowLights); } void Icon::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) if (!m_isVisible) { return; } qreal visualizationSize = (m_size * ((m_applet->moveAnimation() == ZoomAnimation)?m_factor:((m_applet->moveAnimation() == JumpAnimation)?m_applet->initialFactor():1))); if (m_isPressed) { visualizationSize *= 0.95; } if (visualizationSize < 1) { return; } QPixmap visualizationPixmap; QPixmap spotlightPixmap; qreal xOffset = 0; qreal yOffset = 0; qreal size = 0; qreal width = 0; qreal height = 0; switch (m_applet->location()) { case Plasma::LeftEdge: xOffset = (m_size / 4); break; case Plasma::RightEdge: xOffset = (m_size - visualizationSize); break; case Plasma::TopEdge: yOffset = (m_size / 4); break; default: yOffset = (m_size - visualizationSize); break; } if (m_visualizationPixmap.isNull()) { if (icon().isNull()) { QTimer::singleShot(250, this, SLOT(updateIcon())); return; } QPixmap visualizationPixmap; visualizationPixmap = QPixmap(ceil(m_size), ceil(m_size)); visualizationPixmap.fill(Qt::transparent); QPainter pixmapPainter(&visualizationPixmap); pixmapPainter.setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing | QPainter::TextAntialiasing); if (m_applet->useThumbnails() && !m_thumbnailPixmap.isNull() && m_itemType != TypeGroup) { QPixmap thumbnail = ((m_thumbnailPixmap.width() > m_thumbnailPixmap.height())?m_thumbnailPixmap.scaledToWidth(m_size, Qt::SmoothTransformation):m_thumbnailPixmap.scaledToHeight(m_size, Qt::SmoothTransformation)); qreal iconSize = (m_size * 0.3); pixmapPainter.drawPixmap(((m_size - thumbnail.width()) / 2), ((m_size - thumbnail.height()) / 2), thumbnail); pixmapPainter.drawPixmap((m_size - iconSize), (m_size - iconSize), iconSize, iconSize, icon().pixmap(iconSize)); } else { pixmapPainter.drawPixmap(0, 0, m_size, m_size, icon().pixmap(m_size)); } pixmapPainter.end(); m_visualizationPixmap = visualizationPixmap; } painter->setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing | QPainter::TextAntialiasing); QPixmap target = QPixmap(ceil(boundingRect().width()), ceil(boundingRect().height())); target.fill(Qt::transparent); QPainter targetPainter(&target); targetPainter.setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing | QPainter::TextAntialiasing); if (m_animationProgress >= 0) { visualizationPixmap = QPixmap(ceil(m_size), ceil(m_size)); visualizationPixmap.fill(Qt::transparent); QPainter pixmapPainter(&visualizationPixmap); pixmapPainter.setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing); switch (m_animationType) { case ZoomAnimation: size = ((m_size * 0.75) + (m_size * ((cos(2 * PI * m_animationProgress) + 0.5) / 8))); if (size > 1) { pixmapPainter.drawPixmap(QRectF(((m_size - size) / 2), ((m_size - size) / 2), size, size), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); } break; case RotateAnimation: size = (m_size * (0.5 + (((m_animationProgress < 0.5)?m_animationProgress:(1 - m_animationProgress)) * 0.2))); if (size > 1) { pixmapPainter.translate((m_size / 2), (m_size / 2)); pixmapPainter.rotate(360 * m_animationProgress); pixmapPainter.drawPixmap(QRectF(-(size / 2), -(size / 2), size, size), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); } break; case BounceAnimation: width = (m_size * ((m_animationProgress < 0.5)?((m_animationProgress * 0.5) + 0.5):(1 - (m_animationProgress / 2)))); height = (m_size * ((m_animationProgress < 0.5)?(1 - (m_animationProgress / 2)):((m_animationProgress * 0.5) + 0.5))); if (width > 1 && height > 1) { pixmapPainter.drawPixmap(QRectF(((m_size - width) / 2), ((m_size - height) / 2), width, height), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); } break; case JumpAnimation: pixmapPainter.drawPixmap(QRectF(0, 0, m_size, m_size), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); if (m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::TopEdge) { size = ((sin(2 * PI * m_animationProgress) + 1) / 2); } else { size = ((cos(2 * PI * m_animationProgress) + 1) / 2); } switch (m_applet->location()) { case Plasma::LeftEdge: xOffset += (size * (m_size / 4)); break; case Plasma::RightEdge: xOffset *= size; break; case Plasma::TopEdge: yOffset += (size * (m_size / 4)); break; default: yOffset *= size; break; } break; case BlinkAnimation: pixmapPainter.setOpacity(0.2 + ((cos(2 * PI * m_animationProgress) + 0.5) / 4)); pixmapPainter.drawPixmap(QRectF(0, 0, m_size, m_size), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); break; case GlowAnimation: changeGlow(true, m_animationProgress); break; case SpotlightAnimation: spotlightPixmap = m_applet->theme()->pixmap("spotlight").scaled(m_size, m_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); if (m_itemType == TypeGroup && m_task->color().isValid()) { spotlightPixmap = KIconLoader::global()->iconEffect()->apply(spotlightPixmap, KIconEffect::Colorize, 1, m_task->color(), true); } pixmapPainter.setOpacity((cos(2 * PI * m_animationProgress) + 1) / 4); pixmapPainter.drawPixmap(0, 0, spotlightPixmap); pixmapPainter.setOpacity(0.5); pixmapPainter.drawPixmap(0, 0, m_visualizationPixmap); break; default: pixmapPainter.drawPixmap(QRectF(0, 0, m_size, m_size), m_visualizationPixmap, QRectF(0, 0, m_size, m_size)); break; } pixmapPainter.end(); } else { visualizationPixmap = m_visualizationPixmap; } if (hasFocus()) { targetPainter.drawPixmap(xOffset, yOffset, m_applet->theme()->pixmap("focus").scaled(visualizationSize, visualizationSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); } if (m_task && m_task->isActive() && m_applet->activeIconIndication() == GlowIndication && m_applet->moveAnimation() != GlowAnimation) { changeGlow(true, 1); visualizationSize *= 0.8; xOffset += (visualizationSize * 0.15); yOffset += (visualizationSize * 0.15); } switch (m_applet->moveAnimation()) { case ZoomAnimation: if (isUnderMouse() || hasFocus()) { visualizationPixmap = KIconLoader::global()->iconEffect()->apply(visualizationPixmap, KIconLoader::Desktop, KIconLoader::ActiveState); } break; case GlowAnimation: changeGlow(true, m_factor); if (isUnderMouse() || hasFocus()) { visualizationPixmap = KIconLoader::global()->iconEffect()->apply(visualizationPixmap, KIconLoader::Desktop, KIconLoader::ActiveState); } break; case SpotlightAnimation: if (m_factor > 0) { spotlightPixmap = m_applet->theme()->pixmap("spotlight").scaled(visualizationSize, visualizationSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); targetPainter.setOpacity(m_factor); targetPainter.drawPixmap(0, 0, ((m_itemType == TypeGroup && m_task->color().isValid())?KIconLoader::global()->iconEffect()->apply(spotlightPixmap, KIconEffect::Colorize, 1, m_task->color().isValid(), true):spotlightPixmap)); targetPainter.setOpacity(0.85); } break; case FadeAnimation: targetPainter.setOpacity(m_factor + 0.25); break; default: break; } if (m_task && m_task->isActive() && m_applet->activeIconIndication() == FadeIndication) { visualizationPixmap = KIconLoader::global()->iconEffect()->apply(visualizationPixmap, KIconLoader::Desktop, KIconLoader::ActiveState); } targetPainter.drawPixmap(QRectF(xOffset, yOffset, visualizationSize, visualizationSize), visualizationPixmap, visualizationPixmap.rect()); if (m_jobsRunning && m_jobs.count()) { qreal rotation = 0; QPixmap progressPixmap = m_applet->theme()->pixmap("progress").scaled((visualizationSize * 0.8), (visualizationSize * 0.8), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); targetPainter.save(); targetPainter.translate(QPointF((xOffset + (visualizationSize * 0.5)), (yOffset + (visualizationSize * 0.5)))); if (m_jobsProgress < 100) { rotation = (m_jobsProgress?(3.6 * m_jobsProgress):m_jobsAnimationProgress); targetPainter.rotate(rotation); } targetPainter.drawPixmap(QRectF(-(visualizationSize * 0.4), -(visualizationSize * 0.4), progressPixmap.width(), progressPixmap.width()), progressPixmap, progressPixmap.rect()); targetPainter.restore(); } if (m_applet->titleLabelMode() != NoLabel && !title().isEmpty() && (m_applet->titleLabelMode() == AlwaysShowLabel || (m_task && m_task->isActive() && m_applet->titleLabelMode() == LabelForActiveIcon) || (isUnderMouse() && m_applet->titleLabelMode() == LabelOnMouseOver))) { QFont font = targetPainter.font(); font.setPixelSize(visualizationSize * 0.2); targetPainter.setFont(font); qreal textLength = (targetPainter.fontMetrics().width(title()) + (3 * targetPainter.fontMetrics().width(' '))); qreal textFieldWidth = ((textLength > (visualizationSize * 0.9))?(visualizationSize * 0.9):textLength); QRectF textField = QRectF(QPointF((((visualizationSize - textFieldWidth) / 2) + xOffset), ((target.height() * 0.55))), QSizeF(textFieldWidth, (visualizationSize * 0.25))); QPainterPath textFieldPath; textFieldPath.addRoundedRect(textField, 3, 3); targetPainter.setOpacity(0.6); targetPainter.fillPath(textFieldPath, QBrush(Plasma::Theme::defaultTheme()->color(Plasma::Theme::BackgroundColor))); targetPainter.setPen(QPen(Plasma::Theme::defaultTheme()->color(Plasma::Theme::BackgroundColor).darker())); targetPainter.drawRoundedRect(textField, 3, 3); targetPainter.setPen(QPen(Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor))); targetPainter.setOpacity(0.9); targetPainter.drawText(textField, ((textLength > textFieldWidth)?((QApplication::layoutDirection() == Qt::LeftToRight)?Qt::AlignLeft:Qt::AlignRight):Qt::AlignCenter), ((textLength > textFieldWidth)?(' ' + title()):title())); if (textLength > textFieldWidth) { QLinearGradient alphaGradient(0, 0, 1, 0); alphaGradient.setCoordinateMode(QGradient::ObjectBoundingMode); if (QApplication::layoutDirection() == Qt::LeftToRight) { alphaGradient.setColorAt(0, QColor(0, 0, 0, 255)); alphaGradient.setColorAt(0.8, QColor(0, 0, 0, 255)); alphaGradient.setColorAt(1, QColor(0, 0, 0, 25)); } else { alphaGradient.setColorAt(0, QColor(0, 0, 0, 25)); alphaGradient.setColorAt(0.2, QColor(0, 0, 0, 255)); alphaGradient.setColorAt(1, QColor(0, 0, 0, 255)); } targetPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); targetPainter.fillPath(textFieldPath, alphaGradient); targetPainter.setCompositionMode(QPainter::CompositionMode_SourceOver); } } if (m_applet->paintReflections()) { QPointF reflectionPoint; QPixmap reflectionPixmap; QLinearGradient reflectionGradient; switch (m_applet->location()) { case Plasma::LeftEdge: reflectionPoint = QPointF(0, 0); reflectionPixmap = target.copy((target.width() * 0.2), 0, (target.width() * 0.2), target.height()); reflectionPixmap = reflectionPixmap.transformed(QTransform(-1, 0, 0, 0, 1, 0, 0, 0, 1), Qt::SmoothTransformation); reflectionGradient = QLinearGradient(QPointF(reflectionPixmap.width(), 0), QPointF(0, 0)); break; case Plasma::RightEdge: reflectionPoint = QPointF((target.width() * 0.7), 0); reflectionPixmap = target.copy((target.width() * 0.5), 0, (target.width() * 0.2), target.height()); reflectionPixmap = reflectionPixmap.transformed(QTransform(-1, 0, 0, 0, 1, 0, 0, 0, 1), Qt::SmoothTransformation); reflectionGradient = QLinearGradient(QPointF(0, 0), QPointF(reflectionPixmap.width(), 0)); break; case Plasma::TopEdge: reflectionPoint = QPointF(0, 0); reflectionPixmap = target.copy(0, (m_size / 4), target.width(), (target.height() * 0.2)); reflectionPixmap = reflectionPixmap.transformed(QTransform(1, 0, 0, 0, -1, 0, 0, 0, 1), Qt::SmoothTransformation); reflectionGradient = QLinearGradient(QPointF(0, reflectionPixmap.height()), QPointF(0, 0)); break; default: reflectionPoint = QPointF(0, (target.height() * 0.7)); reflectionPixmap = target.copy(0, (target.height() * 0.5), target.width(), (target.height() * 0.2)); reflectionPixmap = reflectionPixmap.transformed(QTransform(1, 0, 0, 0, -1, 0, 0, 0, 1), Qt::SmoothTransformation); reflectionGradient = QLinearGradient(QPointF(0, 0), QPointF(0, reflectionPixmap.height())); break; } reflectionGradient.setColorAt(0, QColor(0, 0, 0, 200)); reflectionGradient.setColorAt(0.6, QColor(0, 0, 0, 70)); reflectionGradient.setColorAt(0.9, Qt::transparent); QPainter reflectionPainter(&reflectionPixmap); reflectionPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); reflectionPainter.fillRect(0, 0, reflectionPixmap.width(), reflectionPixmap.height(), reflectionGradient); reflectionPainter.end(); targetPainter.drawPixmap(reflectionPoint, reflectionPixmap); } painter->drawPixmap(0, 0, target); } void Icon::focusInEvent(QFocusEvent *event) { Q_UNUSED(event) update(); } void Icon::focusOutEvent(QFocusEvent *event) { Q_UNUSED(event) update(); } void Icon::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) update(); m_highlightTimer = startTimer(500); if (m_applet->moveAnimation() == JumpAnimation) { startAnimation(JumpAnimation, 500, false); } } void Icon::hoverMoveEvent(QGraphicsSceneHoverEvent *event) { emit hoverMoved(this, (qreal) (((m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge)?event->pos().y():event->pos().x()) / m_size)); } void Icon::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) killTimer(m_highlightTimer); if (m_task && Plasma::WindowEffects::isEffectAvailable(Plasma::WindowEffects::HighlightWindows)) { Plasma::WindowEffects::highlightWindows(m_applet->window(), QList()); } m_isPressed = false; update(); emit hoverLeft(); } void Icon::dragEnterEvent(QGraphicsSceneDragDropEvent *event) { if (event->mimeData()->hasFormat("windowsystem/winid") || event->mimeData()->hasFormat("windowsystem/multiple-winids")) { event->acceptProposedAction(); return; } killTimer(m_dragTimer); if (m_itemType == TypeTask || m_itemType == TypeGroup) { update(); m_dragTimer = startTimer(300); } if (m_itemType != TypeLauncher) { event->ignore(); } } void Icon::dragMoveEvent(QGraphicsSceneDragDropEvent *event) { m_applet->itemDragged(this, event->pos(), event->mimeData()); } void Icon::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) { QTimer::singleShot(500, m_applet, SLOT(hideDropZone())); if (m_itemType != TypeLauncher) { event->ignore(); } update(); killTimer(m_dragTimer); } void Icon::dropEvent(QGraphicsSceneDragDropEvent *event) { m_applet->hideDropZone(); if (m_applet->groupManager()->groupingStrategy() == TaskManager::GroupManager::ManualGrouping && (event->mimeData()->hasFormat("windowsystem/winid") || event->mimeData()->hasFormat("windowsystem/multiple-winids")) && (m_itemType == TypeTask || m_itemType == TypeGroup)) { TaskManager::ItemList items; Icon *droppedIcon = m_applet->iconForMimeData(event->mimeData()); if (droppedIcon) { if (event->mimeData()->hasFormat("windowsystem/winid")) { items.append(droppedIcon->task()->abstractItem()); } else { items.append(droppedIcon->task()->group()->members()); } m_task->dropItems(items); event->accept(); return; } } else if (m_itemType == TypeLauncher && KUrl::List::canDecode(event->mimeData())) { m_launcher->dropUrls(KUrl::List::fromMimeData(event->mimeData()), event->modifiers()); event->accept(); return; } event->ignore(); } void Icon::mousePressEvent(QGraphicsSceneMouseEvent *event) { Applet::setActiveWindow(KWindowSystem::activeWindow()); m_isPressed = true; update(); if (m_demandsAttention) { stopAnimation(); m_demandsAttention = false; } if (m_itemType == TypeTask) { publishGeometry(m_task->task()); } event->accept(); } void Icon::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if (QPoint(event->screenPos() - event->buttonDownScreenPos(Qt::LeftButton)).manhattanLength() < QApplication::startDragDistance() || m_itemType == TypeStartup || (m_itemType == TypeLauncher && m_applet->immutability() != Plasma::Mutable)) { return; } QMimeData *mimeData = new QMimeData; if (m_launcher) { m_launcher->launcherUrl().populateMimeData(mimeData); } if (m_itemType == TypeTask || m_itemType == TypeGroup) { m_task->abstractItem()->addMimeData(mimeData); } else if (m_itemType != TypeLauncher) { return; } QDrag *drag = new QDrag(event->widget()); drag->setMimeData(mimeData); drag->setPixmap(m_visualizationPixmap.scaled(32, 32, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); drag->exec(); } void Icon::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { if (m_isPressed) { m_isPressed = false; update(); } performAction(event->button(), event->modifiers()); event->ignore(); } void Icon::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Escape) { Plasma::ToolTipManager::self()->hide(this); } else if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { performAction(ActivateItem); } else { QGraphicsWidget::keyPressEvent(event); } } void Icon::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { performAction(ShowMenu); event->accept(); } void Icon::timerEvent(QTimerEvent *event) { if (event->timerId() == m_dragTimer && isUnderMouse()) { if (m_itemType == TypeTask) { m_task->activateWindow(); } else if (m_itemType == TypeGroup) { performAction(ShowChildrenList); } } else if (event->timerId() == m_highlightTimer && Plasma::WindowEffects::isEffectAvailable(Plasma::WindowEffects::HighlightWindows) && (m_itemType == TypeTask || m_itemType == TypeGroup)) { Plasma::WindowEffects::highlightWindows(m_applet->window(), m_task->windows()); } killTimer(event->timerId()); } void Icon::show() { m_isVisible = true; if (m_itemType == TypeOther) { return; } updateSize(); m_applet->updateSize(); m_visualizationPixmap = NULL; update(); } void Icon::hide() { if (m_task) { return; } m_isVisible = false; updateSize(); m_applet->updateSize(); } void Icon::activate() { QList windows; switch (m_itemType) { case TypeLauncher: performAction(ActivateLauncher); break; case TypeTask: performAction(ActivateTask); break; case TypeGroup: performAction(ShowChildrenList); break; default: break; } } void Icon::updateSize() { if (!m_isVisible) { setPreferredSize(0, 0); return; } const qreal factor = ((m_applet->moveAnimation() == ZoomAnimation)?m_factor:((m_applet->moveAnimation() == JumpAnimation)?m_applet->initialFactor():1)); const qreal width = (m_size * (factor + 0.1)); const qreal height = (m_size * 1.4); if (m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge) { setPreferredSize(height, width); } else { setPreferredSize(width, height); } } void Icon::updateIcon() { update(); } void Icon::setFactor(qreal factor) { if (factor == m_factor) { return; } m_factor = factor; if (m_applet->moveAnimation() == ZoomAnimation) { if (m_applet->activeIconIndication() == ZoomIndication && m_task && m_task->isActive()) { m_factor = 1; } updateSize(); } if (!m_isVisible) { return; } update(); } void Icon::setSize(qreal size) { size *= 0.8; if (!m_isVisible) { m_size = size; } if (size == m_size) { return; } m_size = size; switch (m_applet->location()) { case Plasma::LeftEdge: m_layout->setContentsMargins(0, 0, m_size, 0); break; case Plasma::RightEdge: m_layout->setContentsMargins(m_size, 0, 0, 0); break; case Plasma::TopEdge: m_layout->setContentsMargins(0, 0, 0, m_size); break; default: m_layout->setContentsMargins(0, m_size, 0, 0); break; } setThumbnail(); updateSize(); m_visualizationPixmap = NULL; update(); } void Icon::setThumbnail(const KFileItem &item, const QPixmap thumbnail) { Q_UNUSED(item) if (!m_applet->useThumbnails() || (m_itemType != TypeTask && (m_itemType != TypeLauncher || thumbnail.isNull()))) { return; } if (m_itemType == TypeTask && m_task->windows().count() > 0) { m_thumbnailPixmap = Applet::windowPreview(m_task->windows().at(0), ((200 > m_size)?200:m_size)); } else { m_thumbnailPixmap = thumbnail; } m_visualizationPixmap = NULL; update(); } void Icon::startAnimation(AnimationType animationType, int duration, bool repeat) { m_animationType = animationType; m_animationTimeLine->setDuration(duration); m_animationTimeLine->setLoopCount(repeat?0:1); m_animationTimeLine->stop(); m_animationTimeLine->start(); } void Icon::stopAnimation() { m_animationTimeLine->stop(); setOpacity(1); m_animationProgress = -1; m_animationType = NoAnimation; update(); } void Icon::progressAnimation(int progress) { if (sender() == m_animationTimeLine) { m_animationProgress = ((qreal) progress / 100); } else if (sender() == m_jobAnimationTimeLine) { m_jobsAnimationProgress = progress; } update(); } void Icon::changeGlow(bool enabled, qreal radius) { if (enabled && !m_glowEffect) { m_glowEffect = new QGraphicsDropShadowEffect(this); m_glowEffect->setOffset(0); setGraphicsEffect(m_glowEffect); } m_glowEffect->setEnabled(enabled); m_glowEffect->setBlurRadius(radius * 25); m_glowEffect->setColor((m_itemType == TypeGroup && m_task->color().isValid())?m_task->color():Plasma::Theme::defaultTheme()->color(Plasma::Theme::HighlightColor)); } void Icon::publishGeometry(TaskManager::TaskItem *task) { if (!task || !task->task()) { return; } QRect iconGeometry = shape().controlPointRect().toRect(); if (scene() && iconGeometry.isValid()) { QGraphicsView *parentView = NULL; QGraphicsView *possibleParentView = NULL; foreach (QGraphicsView *view, scene()->views()) { if (view->sceneRect().intersects(sceneBoundingRect()) || view->sceneRect().contains(scenePos())) { if (view->isActiveWindow()) { parentView = view; break; } else { possibleParentView = view; } } } if (!parentView) { parentView = possibleParentView; } if (parentView) { iconGeometry = parentView->mapFromScene(mapToScene(iconGeometry)).boundingRect().adjusted(0, 0, 1, 1); iconGeometry.moveTopLeft(parentView->mapToGlobal(iconGeometry.topLeft())); } } task->task()->publishIconGeometry(iconGeometry); } void Icon::taskChanged(ItemChanges changes) { if (!m_task) { return; } if (changes & OtherChanges) { if (m_task->taskType() == Task::TypeGroup) { emit colorChanged(m_task->color()); } if (m_itemType == TypeStartup && m_task->taskType() != Task::TypeStartup) { stopAnimation(); } if (m_task->taskType() == Task::TypeStartup) { m_itemType = TypeStartup; } else if (m_task->taskType() == Task::TypeTask) { m_itemType = TypeTask; setLauncher(m_applet->launcherForTask(m_task->task())); } else if (m_task->taskType() == Task::TypeGroup) { m_itemType = TypeGroup; } } if (changes & StateChanged) { if (m_task->abstractItem()->demandsAttention()) { if (!m_demandsAttention) { m_applet->needsVisualFocus(); } if (m_applet->demandsAttentionAnimation() != NoAnimation) { startAnimation(m_applet->demandsAttentionAnimation(), 1000, true); m_demandsAttention = true; } } else if (m_demandsAttention && !m_task->abstractItem()->demandsAttention()) { stopAnimation(); m_demandsAttention = false; } } if (changes & StateChanged && m_applet->activeIconIndication() == ZoomIndication && m_applet->moveAnimation() == ZoomAnimation) { setFactor(m_task->isActive()?1:m_applet->initialFactor()); } if (changes & WindowsChanged && m_itemType == TypeTask) { QTimer::singleShot(200, this, SLOT(setThumbnail())); } if (changes & WindowsChanged || changes & TextChanged || changes & IconChanged) { updateToolTip(); } if (changes & IconChanged) { m_visualizationPixmap = NULL; } update(); } void Icon::launcherChanged(ItemChanges changes) { if (!m_launcher || m_itemType != TypeLauncher) { return; } if (!m_launcher->isServiceGroup() && !KDesktopFile::isDesktopFile(m_launcher->targetUrl().toLocalFile())) { KFileItemList items; items.append(KFileItem(m_launcher->targetUrl(), m_launcher->mimeType()->name(), KFileItem::Unknown)); QStringList plugins; qreal size = ((m_applet->itemSize() > 200)?m_applet->itemSize():200); KIO::PreviewJob *job = KIO::filePreview(items, size, size, 0, 0, true, true, &plugins); connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)), this, SLOT(setThumbnail(const KFileItem&, const QPixmap&))); } if (changes & IconChanged) { m_visualizationPixmap = NULL; } update(); updateToolTip(); } void Icon::jobChanged(ItemChanges changes) { Q_UNUSED(changes) int amount = 0; int percentage = 0; m_jobsRunning = false; if (m_jobs.count() > 0) { for (int i = 0; i < m_jobs.count(); ++i) { if (!m_jobs.at(i)) { m_jobs.removeAt(i); --i; continue; } if (m_jobs.at(i)->state() != Job::Finished && !m_jobs.at(i)->state() != Job::Error) { ++amount; m_jobsRunning = true; percentage += ((m_jobs.at(i)->percentage() >= 0)?m_jobs.at(i)->percentage():0); } } } if (percentage) { percentage /= amount; } else if (m_jobsRunning) { if (!m_jobAnimationTimeLine) { m_jobAnimationTimeLine = new QTimeLine(5000, this); m_jobAnimationTimeLine->setLoopCount(0); m_jobAnimationTimeLine->setFrameRange(0, 359); m_jobAnimationTimeLine->setCurveShape(QTimeLine::LinearCurve); connect(m_jobAnimationTimeLine, SIGNAL(frameChanged(int)), this, SLOT(progressAnimation(int))); } if (m_jobAnimationTimeLine->state() != QTimeLine::Running) { m_jobAnimationTimeLine->start(); } } if (!m_jobsRunning && m_jobAnimationTimeLine && m_jobAnimationTimeLine->state() == QTimeLine::Running) { m_jobAnimationTimeLine->stop(); m_jobAnimationTimeLine->deleteLater(); m_jobAnimationTimeLine = NULL; m_jobsAnimationProgress = 0; } m_jobsProgress = percentage; update(); updateToolTip(); } void Icon::jobDemandsAttention() { if (!m_demandsAttention) { m_applet->needsVisualFocus(); } if (m_applet->demandsAttentionAnimation() != NoAnimation) { startAnimation(m_applet->demandsAttentionAnimation(), 1000, true); m_demandsAttention = true; } jobChanged(StateChanged); } void Icon::setLauncher(Launcher *launcher) { if (m_launcher && m_itemType != TypeLauncher) { m_launcher->removeItem(this); } m_launcher = launcher; if (m_launcher) { if (m_itemType == TypeOther) { m_itemType = TypeLauncher; } if (m_itemType != TypeLauncher) { m_launcher->addItem(this); } launcherChanged(EveythingChanged); if (m_itemType == TypeLauncher) { connect(m_launcher, SIGNAL(hide()), this, SLOT(hide())); connect(m_launcher, SIGNAL(show()), this, SLOT(show())); } else { disconnect(m_launcher, SIGNAL(hide()), this, SLOT(hide())); disconnect(m_launcher, SIGNAL(show()), this, SLOT(show())); } connect(m_launcher, SIGNAL(changed(ItemChanges)), this, SLOT(launcherChanged(ItemChanges))); } } void Icon::addJob(Job *job) { if (m_jobs.indexOf(job) > -1) { return; } if (m_itemType == TypeOther) { m_itemType = TypeJob; } m_jobs.append(job); jobChanged(StateChanged); connect(job, SIGNAL(changed(ItemChanges)), this, SLOT(jobChanged(ItemChanges))); connect(job, SIGNAL(demandsAttention()), this, SLOT(jobDemandsAttention())); connect(job, SIGNAL(close(FancyTasksJob*)), this, SLOT(removeJob(FancyTasksJob*))); } void Icon::removeJob(Job *job) { m_jobs.removeAll(job); if (m_itemType == TypeJob && !m_jobs.count()) { deleteLater(); return; } jobChanged(StateChanged); } void Icon::addWindow(WId window) { if (m_windowLights.contains(window) || !KWindowSystem::hasWId(window) || m_windowLights.count() > 3) { return; } Light *taskLight = new Light(window, m_applet, this); taskLight->setSize(m_size); m_layout->insertItem(1, taskLight); m_layout->setAlignment(taskLight, (Qt::AlignBottom | Qt::AlignHCenter)); m_windowLights[window] = taskLight; connect(this, SIGNAL(sizeChanged(qreal)), taskLight, SLOT(setSize(qreal))); connect(this, SIGNAL(colorChanged(QColor)), taskLight, SLOT(setColor(QColor))); } void Icon::removeWindow(WId window) { if (m_windowLights.contains(window)) { m_windowLights[window]->deleteLater(); m_windowLights.remove(window); } if (m_task && m_task->windows().count() > m_windowLights.count()) { QList windows = m_task->windows(); for (int i = 0; i < windows.count(); ++i) { addWindow(windows.at(i)); } } } void Icon::setTask(TaskManager::AbstractGroupableItem *abstractItem) { if (abstractItem && !abstractItem->isGroupItem() && !static_cast(abstractItem)->startup().isNull()) { if (m_applet->startupAnimation() != NoAnimation) { startAnimation(m_applet->startupAnimation(), 1000, true); QTimer::singleShot(30000, this, SLOT(stopAnimation())); } if (m_task) { return; } } if (!abstractItem) { if (m_task) { if (m_jobs.count()) { m_itemType = TypeJob; } else if (m_launcher) { m_itemType = TypeLauncher; setLauncher(m_launcher); } else { m_itemType = TypeOther; } m_task->deleteLater(); m_task = NULL; m_thumbnailPixmap = NULL; qDeleteAll(m_windowLights); m_windowLights.clear(); updateToolTip(); update(); } return; } m_task = new Task(abstractItem, m_applet->groupManager()); QList windowList = m_task->windows(); for (int i = 0; i < windowList.count(); ++i) { addWindow(windowList.at(i)); } taskChanged(EveythingChanged); connect(m_task, SIGNAL(changed(ItemChanges)), this, SLOT(taskChanged(ItemChanges))); connect(m_task, SIGNAL(publishGeometry(TaskManager::TaskItem*)), this, SLOT(publishGeometry(TaskManager::TaskItem*))); connect(m_task, SIGNAL(windowAdded(WId)), this, SLOT(addWindow(WId))); connect(m_task, SIGNAL(windowRemoved(WId)), this, SLOT(removeWindow(WId))); } void Icon::windowPreviewActivated(WId window, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint &point) { Q_UNUSED(point) TaskManager::TaskPtr taskPointer = TaskManager::TaskManager::self()->findTask(window); Plasma::ToolTipManager::self()->hide(this); if (!taskPointer) { return; } TaskManager::GroupManager *groupManager = new TaskManager::GroupManager(this); Task *task = new Task(new TaskManager::TaskItem(groupManager, taskPointer), groupManager); performAction(buttons, modifiers, task); delete task; delete groupManager; } void Icon::performAction(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Task *task) { QHash > iconActions = m_applet->iconActions(); QHash >::iterator actionsIterator; for (actionsIterator = iconActions.begin(); actionsIterator != iconActions.end(); ++actionsIterator) { if (actionsIterator.value().first == Qt::NoButton) { continue; } if (buttons == actionsIterator.value().first && (actionsIterator.value().second == Qt::UNICODE_ACCEL || modifiers & actionsIterator.value().second)) { performAction(actionsIterator.key(), task); break; } } } void Icon::performAction(IconAction action, Task *task) { if (!task) { task = m_task; } switch (action) { case ActivateItem: activate(); break; case ActivateTask: if (task) { task->activate(); } break; case ActivateLauncher: if (m_launcher) { if (m_launcher->isServiceGroup()) { m_menuVisible = true; KMenu* menu = m_launcher->serviceMenu(); menu->exec(m_applet->containment()->corona()->popupPosition(this, menu->sizeHint(), Qt::AlignCenter)); delete menu; m_menuVisible = false; } else { m_launcher->activate(); } } break; case ShowMenu: if (m_itemType == TypeLauncher || m_itemType == TypeJob || m_itemType == TypeTask || m_itemType == TypeGroup) { KMenu *menu; if ((m_itemType == TypeTask || m_itemType == TypeGroup) && task) { menu = task->contextMenu(); if (m_launcher) { KMenu *launcherMenu = m_launcher->contextMenu(); menu->addSeparator(); menu->addMenu(launcherMenu); connect(menu, SIGNAL(destroyed()), launcherMenu, SLOT(deleteLater())); } } else if (m_launcher) { menu = m_launcher->contextMenu(); } else if (m_itemType == TypeJob && m_jobs.count() == 1) { menu = m_jobs.at(0)->contextMenu(); } else { menu = new KMenu; } m_menuVisible = true; if (m_task == task && m_jobs.count() && (m_itemType != TypeJob || m_jobs.count() > 1)) { if (menu->actions().count()) { menu->addSeparator(); } for (int i = 0; i < m_jobs.count(); ++i) { QAction *action = menu->addAction(m_jobs.at(i)->icon(), m_jobs.at(i)->title()); action->setMenu(m_jobs.at(i)->contextMenu()); } } if (menu->actions().count()) { if (m_task == task) { menu->addTitle(icon(), title().left(20), menu->actions().at(0)); } else { menu->addTitle(task->icon(), task->title().left(20), menu->actions().at(0)); } menu->exec(m_applet->containment()->corona()->popupPosition(this, menu->sizeHint(), Qt::AlignCenter)); } delete menu; m_menuVisible = false; } break; case ShowChildrenList: if (!m_menuVisible && task) { m_menuVisible = true; Applet::setActiveWindow(KWindowSystem::activeWindow()); Menu *groupMenu = new Menu(task->windows()); groupMenu->addSeparator(); groupMenu->addAction(KIcon("process-stop"), i18nc("@action:inmenu", "Cancel")); groupMenu->exec(m_applet->containment()->corona()->popupPosition(this, groupMenu->sizeHint(), Qt::AlignCenter)); delete groupMenu; m_menuVisible = false; } break; case ShowWindows: if (m_itemType == TypeGroup && task && Plasma::WindowEffects::isEffectAvailable(Plasma::WindowEffects::PresentWindowsGroup)) { Plasma::WindowEffects::presentWindows(m_applet->window(), task->windows()); } break; case CloseTask: if ((m_itemType == TypeTask || m_itemType == TypeGroup) && task) { task->close(); } break; default: break; } } void Icon::toolTipAboutToShow() { updateToolTip(); connect(Plasma::ToolTipManager::self(), SIGNAL(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint)), this, SLOT(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint))); } void Icon::toolTipHidden() { disconnect(Plasma::ToolTipManager::self(), SIGNAL(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint)), this, SLOT(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint))); } void Icon::updateToolTip() { if (m_itemType == TypeOther) { return; } QString progress; if (m_jobs.count()) { if (m_jobsRunning && m_jobsProgress > 0) { progress.append(" color(Plasma::Theme::HighlightColor).name() + ";\">"); int bar = floor(m_jobsProgress * 0.2); for (int i = 0; i < 20; ++i) { progress.append("|"); if (bar == i) { progress.append(""); } } if (!progress.contains("")) { progress.append(""); } progress.append(QChar(' ') + QString::number(m_jobsProgress) + "%"); } } Plasma::ToolTipContent data; data.setMainText(title() + progress); data.setSubText(description()); data.setImage(icon()); data.setClickable(KWindowSystem::compositingActive()); data.setHighlightWindows(true); if (m_itemType == TypeTask || m_itemType == TypeGroup) { data.setWindowsToPreview(m_task->windows()); } Plasma::ToolTipManager::self()->setContent(this, data); } ItemType Icon::itemType() const { return m_itemType; } QPointer Icon::task() { return m_task; } QPointer Icon::launcher() { return m_launcher; } QList > Icon::jobs() { return m_jobs; } QString Icon::title() const { switch (m_itemType) { case TypeStartup: case TypeTask: case TypeGroup: return m_task->title(); break; case TypeLauncher: return m_launcher->title(); case TypeJob: if (m_jobs.count() > 1) { return i18np("1 job", "%1 jobs", m_jobs.count()); } else if (m_jobs.count() == 1) { return m_jobs.at(0)->title(); } else { return QString(); } break; default: return QString(); break; } } QString Icon::description() const { QString description; switch (m_itemType) { case TypeStartup: case TypeTask: case TypeGroup: return m_task->description(); break; case TypeLauncher: return m_launcher->description(); case TypeJob: if (m_jobs.count() > 0) { for (int i = 0; i < m_jobs.count(); ++i) { if (!m_jobs.at(i)) { continue; } description.append(m_jobs.at(i)->information() + ((i < (m_jobs.count() - 1))?"
":QString())); } } if (m_jobs.count() == 1) { description = m_jobs.at(0)->description(); } return description; break; default: return QString(); break; } } QPainterPath Icon::shape() const { QRectF rectangle; const qreal size = (m_size * ((m_applet->moveAnimation() == ZoomAnimation)?m_factor:((m_applet->moveAnimation() == JumpAnimation)?m_applet->initialFactor():1))); switch (m_applet->location()) { case Plasma::LeftEdge: rectangle = QRectF((boundingRect().width() - m_size), 0, size, boundingRect().height()); break; case Plasma::RightEdge: rectangle = QRectF((m_size - size), 0, size, boundingRect().height()); break; case Plasma::TopEdge: rectangle = QRectF(0, (boundingRect().height() - m_size), boundingRect().width(), size); break; default: rectangle = QRectF(0, (m_size - size), boundingRect().width(), size); break; } QPainterPath path; path.addRect(rectangle); return path; } KIcon Icon::icon() { switch (m_itemType) { case TypeStartup: case TypeTask: case TypeGroup: return (m_task?m_task->icon():KIcon()); break; case TypeLauncher: return (m_launcher?m_launcher->icon():KIcon()); case TypeJob: return m_jobs.at(0)->icon(); break; default: return KIcon(); break; } } qreal Icon::factor() const { return m_factor; } bool Icon::isVisible() const { return m_isVisible; } bool Icon::demandsAttention() const { return m_demandsAttention; } } fancytasks_1.0.94/applet/FancyTasksTask.cpp000644 001750 001750 00000022405 11436144324 017124 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksTask.h" #include #include #include #include #include namespace FancyTasks { Task::Task(TaskManager::AbstractGroupableItem *abstractItem, TaskManager::GroupManager *groupManager) : QObject(groupManager), m_abstractItem(NULL), m_groupManager(groupManager), m_taskType(TypeInvalid) { setTask(abstractItem); } void Task::setTask(TaskManager::AbstractGroupableItem *abstractItem) { m_abstractItem = abstractItem; if (m_abstractItem->isGroupItem()) { m_group = static_cast(abstractItem); m_taskType = TypeGroup; QList windowList = windows(); for (int i = 0; i < windowList.count(); ++i) { emit windowAdded(windowList.at(i)); } connect(m_group, SIGNAL(changed(::TaskManager::TaskChanges)), this, SLOT(taskChanged(::TaskManager::TaskChanges))); connect(m_group, SIGNAL(groupEditRequest()), this, SLOT(showPropertiesDialog())); connect(m_group, SIGNAL(itemAdded(AbstractGroupableItem*)), this, SLOT(addItem(AbstractGroupableItem*))); connect(m_group, SIGNAL(itemRemoved(AbstractGroupableItem*)), this, SLOT(removeItem(AbstractGroupableItem*))); } else { m_task = static_cast(abstractItem); m_taskType = (m_task->task().isNull()?TypeStartup:TypeTask); if (m_taskType == TypeTask) { emit windowAdded(windows().at(0)); } connect(m_task, SIGNAL(changed(::TaskManager::TaskChanges)), this, SLOT(taskChanged(::TaskManager::TaskChanges))); } if (m_taskType == TypeStartup) { connect(m_task, SIGNAL(gotTaskPointer()), this, SLOT(setTaskPointer())); } else { QTimer::singleShot(1000, this, SLOT(publishIconGeometry())); } emit changed(EveythingChanged); } void Task::setTaskPointer() { setTask(m_abstractItem); } void Task::close() { m_abstractItem->close(); } void Task::activate() { if (m_taskType == TypeTask && m_task->task()) { const bool isActive = (Applet::activeWindow() == m_task->task()->window()); if (!isActive || m_task->task()->isIconified()) { m_task->task()->activate(); } else if (!isActive && !m_task->task()->isOnTop()) { m_task->task()->raise(); } else { m_task->task()->setIconified(true); } } } void Task::activateWindow() { if (m_taskType == TypeTask && m_task->task()) { m_task->task()->activateRaiseOrIconify(); } } void Task::publishIconGeometry() { if (m_taskType == TypeTask) { emit publishGeometry(m_task); } } void Task::dropItems(TaskManager::ItemList items) { if (m_taskType == TypeStartup || m_groupManager->groupingStrategy() != TaskManager::GroupManager::ManualGrouping) { return; } if (m_taskType == TypeTask) { items.append(m_abstractItem); } else { items.append(m_group->members()); } m_groupManager->manualGroupingRequest(items); } void Task::showPropertiesDialog() { if (m_taskType == TypeGroup && m_groupManager->taskGrouper()->editableGroupProperties() & TaskManager::AbstractGroupingStrategy::Name) { QWidget *groupWidget = new QWidget; m_groupUi.setupUi(groupWidget); m_groupUi.icon->setIcon(m_group->icon()); m_groupUi.name->setText(m_group->name()); m_groupUi.color->setColor(m_group->color()); KDialog *groupDialog = new KDialog; groupDialog->setMainWidget(groupWidget); groupDialog->setButtons(KDialog::Cancel | KDialog::Ok); connect(groupDialog, SIGNAL(okClicked()), this, SLOT(setProperties())); groupDialog->setWindowTitle(i18n("%1 Settings", m_group->name())); groupDialog->show(); } } void Task::setProperties() { m_group->setIcon(KIcon(m_groupUi.icon->icon())); m_group->setName(m_groupUi.name->text()); m_group->setColor(m_groupUi.color->color()); } void Task::taskChanged(::TaskManager::TaskChanges changes) { ItemChanges taskChanges; if (changes & TaskManager::NameChanged || changes & TaskManager::DesktopChanged) { taskChanges |= TextChanged; } if (changes & TaskManager::IconChanged) { taskChanges |= IconChanged; } if (changes & TaskManager::StateChanged) { taskChanges |= StateChanged; } if (changes & TaskManager::GeometryChanged || changes & TaskManager::WindowTypeChanged || changes & TaskManager::ActionsChanged || changes & TaskManager::TransientsChanged) { taskChanges |= WindowsChanged; } if (changes & TaskManager::ColorChanged) { taskChanges |= OtherChanges; } emit changed(taskChanges); } void Task::addItem(AbstractGroupableItem *abstractItem) { if (!abstractItem->isGroupItem()) { TaskManager::TaskItem *task = static_cast(abstractItem); if (!task->task().isNull()) { emit windowAdded(task->task()->window()); } } emit changed(WindowsChanged); } void Task::removeItem(AbstractGroupableItem *abstractItem) { if (!abstractItem->isGroupItem()) { TaskManager::TaskItem *task = static_cast(abstractItem); if (!task->task().isNull()) { emit windowRemoved(task->task()->window()); } } emit changed(WindowsChanged); } KMenu* Task::contextMenu() { KMenu *menu = new KMenu; TaskManager::BasicMenu *taskMenu; QList actions; if (m_taskType == TypeGroup) { taskMenu = new TaskManager::BasicMenu(NULL, m_group, m_groupManager, actions); } else { taskMenu = new TaskManager::BasicMenu(NULL, m_task, m_groupManager, actions); } menu->addActions(taskMenu->actions()); connect(menu, SIGNAL(destroyed()), taskMenu, SLOT(deleteLater())); return menu; } Task::TaskType Task::taskType() const { return m_taskType; } AbstractGroupableItem* Task::abstractItem() { return m_abstractItem; } TaskItem* Task::task() { return m_task; } TaskGroup* Task::group() { return m_group; } KIcon Task::icon() { switch (m_taskType) { case TypeStartup: return ((m_task && m_task->startup())?KIcon(m_task->startup()->icon()):KIcon()); break; case TypeTask: return ((m_task && m_task->task())?KIcon(m_task->task()->icon()):KIcon()); break; case TypeGroup: return (m_group?KIcon(m_group->icon()):KIcon()); break; default: return KIcon(); break; } } QColor Task::color() const { return ((m_taskType == TypeGroup)?m_group->color():QColor()); } QString Task::title() const { QString title = ((m_taskType == TypeGroup && m_group)?m_group->name():((m_taskType == TypeTask && m_task->task())?m_task->task()->visibleName():(m_task->startup()?m_task->startup()->text():QString()))); if (title.isEmpty()) { if (m_taskType == TypeGroup) { title = static_cast(m_group->members().at(0))->task()->visibleName(); m_group->setName(title); } else { title = i18n("Application"); } } return title; } QString Task::description() const { return ((m_taskType == TypeStartup)?i18n("Starting application..."):(m_abstractItem->isOnAllDesktops()?i18n("On all desktops"):i18nc("Which virtual desktop a window is currently on", "On %1", KWindowSystem::desktopName(m_abstractItem->desktop())))); } QList Task::windows() { QList windows; if (m_taskType == TypeTask && m_task->task()) { windows.append(m_task->task()->window()); } else if (m_taskType == TypeGroup && m_group) { TaskManager::ItemList tasks = m_group->members(); for (int i = 0; i < tasks.count(); ++i) { windows.append(static_cast(tasks.at(i))->task()->window()); } } return windows; } bool Task::isActive() const { return m_abstractItem->isActive(); } bool Task::demandsAttention() const { return m_abstractItem->demandsAttention(); } } fancytasks_1.0.94/applet/FancyTasksConfiguration.h000644 001750 001750 00000004550 11436144324 020477 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSCONFIGURATION_HEADER #define FANCYTASKSCONFIGURATION_HEADER #include #include #include "ui_general.h" #include "ui_appearance.h" #include "ui_arrangement.h" #include "ui_actions.h" #include "ui_findApplication.h" namespace FancyTasks { class Applet; class Configuration : public QObject { Q_OBJECT public: Configuration(Applet *applet, KConfigDialog *parent); bool eventFilter(QObject *object, QEvent *event); public slots: void accepted(); void moveAnimationTypeChanged(int option); void availableActionsCurrentItemChanged(int row); void currentActionsCurrentItemChanged(int row); void removeItem(); void addItem(); void moveUpItem(); void moveDownItem(); void addLauncher(); void addLauncher(const QString &url); void addMenu(QAction *action); void setServiceMenu(); void findApplication(const QString &query); void closeFindApplicationDialog(); private: QPointer m_applet; KDialog *m_findApplicationDialog; Ui::general m_generalUi; Ui::appearance m_appearanceUi; Ui::arrangement m_arrangementUi; Ui::actions m_actionsUi; Ui::findApplication m_findApplicationUi; signals: void finished(); }; } #endif fancytasks_1.0.94/applet/FancyTasksDropZone.cpp000644 001750 001750 00000007415 11436144324 017766 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksDropZone.h" #include "FancyTasksApplet.h" #include "FancyTasksIcon.h" #include #include #include #include namespace FancyTasks { DropZone::DropZone(Applet *applet) : QGraphicsWidget(applet), m_applet(applet), m_index(-1), m_visible(false) { setObjectName("FancyTasksDropZone"); setAcceptDrops(true); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); setPreferredSize(0, 0); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SLOT(setSize(qreal))); } void DropZone::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) if (!m_visible) { return; } QPainterPath path = Plasma::PaintUtils::roundedRectangle(contentsRect().adjusted(1, 1, -2, -2), 4); QColor color = Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor); color.setAlphaF(0.3); painter->setRenderHint(QPainter::Antialiasing); painter->fillPath(path, color); } void DropZone::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) { Q_UNUSED(event) QTimer::singleShot(1500, this, SLOT(hide())); } void DropZone::dropEvent(QGraphicsSceneDragDropEvent *event) { if (event->mimeData()->hasFormat("windowsystem/winid") || event->mimeData()->hasFormat("windowsystem/multiple-winids")) { m_applet->itemDropped(m_applet->iconForMimeData(event->mimeData()), m_index); event->accept(); } else if (KUrl::List::canDecode(event->mimeData()) && m_applet->immutability() == Plasma::Mutable) { KUrl::List droppedUrls = KUrl::List::fromMimeData(event->mimeData()); for (int i = 0; i < droppedUrls.count(); ++i) { m_applet->urlChanged(KUrl(), droppedUrls[i]); } event->accept(); } else { event->ignore(); } hide(true); } void DropZone::setSize(qreal size) { m_size = size; } void DropZone::show(int index) { m_index = index; QTimer::singleShot(3000, this, SLOT(hide())); if (m_visible) { return; } if (m_applet->formFactor() == Plasma::Vertical) { setPreferredSize(m_size, (m_size / 2)); } else { setPreferredSize((m_size / 2), m_size); } m_visible = true; m_applet->updateSize(); } void DropZone::hide(bool force) { if (!m_visible) { return; } if (!force && isUnderMouse()) { QTimer::singleShot(1000, this, SLOT(hide())); return; } m_visible = false; setPreferredSize(0, 0); m_applet->updateSize(); } int DropZone::index() const { return (m_visible?m_index:-1); } bool DropZone::isVisible() const { return m_visible; } } fancytasks_1.0.94/applet/FancyTasksLight.cpp000644 001750 001750 00000011716 11436144324 017274 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksLight.h" #include "FancyTasksApplet.h" #include "FancyTasksIcon.h" #include "FancyTasksTask.h" #include #include #include #include #include namespace FancyTasks { Light::Light(WId window, Applet *applet, Icon *icon) : QGraphicsWidget(icon), m_applet(applet), m_icon(icon), m_task(NULL), m_window(window), m_dragTimer(0), m_highlightTimer(0) { setAcceptsHoverEvents(true); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); setFlag(QGraphicsItem::ItemIsFocusable); Plasma::ToolTipManager::self()->registerWidget(this); TaskManager::TaskPtr task = TaskManager::TaskManager::self()->findTask(m_window); if (!task) { deleteLater(); } m_task = new Task(new TaskManager::TaskItem(this, task), new TaskManager::GroupManager(this)); } void Light::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) QPixmap pixmap = m_applet->lightPixmap(); if (m_color.isValid()) { pixmap = KIconLoader::global()->iconEffect()->apply(pixmap, KIconEffect::Colorize, 1, m_color, true); } painter->setRenderHints(QPainter::SmoothPixmapTransform); painter->drawPixmap(boundingRect().toRect(), pixmap); } void Light::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) QList windows; windows.append(m_window); Plasma::ToolTipContent data; data.setMainText(m_task->title()); data.setSubText(m_task->description()); data.setImage(m_task->icon()); data.setClickable(true); data.setWindowsToPreview(windows); Plasma::ToolTipManager::self()->setContent(this, data); m_highlightTimer = startTimer(500); setOpacity(0.7); } void Light::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) killTimer(m_highlightTimer); setOpacity(1); if (Plasma::WindowEffects::isEffectAvailable(Plasma::WindowEffects::HighlightWindows)) { Plasma::WindowEffects::highlightWindows(m_applet->window(), QList()); } } void Light::dragEnterEvent(QGraphicsSceneDragDropEvent *event) { Q_UNUSED(event) killTimer(m_dragTimer); m_dragTimer = startTimer(300); } void Light::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) { Q_UNUSED(event) killTimer(m_dragTimer); } void Light::mousePressEvent(QGraphicsSceneMouseEvent *event) { event->accept(); } void Light::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { if (m_icon && m_task) { m_icon->performAction(event->button(), event->modifiers(), m_task); } event->accept(); } void Light::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { if (m_icon && m_task) { m_icon->performAction(ShowMenu); } event->accept(); } void Light::timerEvent(QTimerEvent *event) { if (event->timerId() == m_dragTimer && isUnderMouse()) { m_task->activateWindow(); } else if (event->timerId() == m_highlightTimer && Plasma::WindowEffects::isEffectAvailable(Plasma::WindowEffects::HighlightWindows)) { Plasma::WindowEffects::highlightWindows(m_applet->window(), m_task->windows()); } killTimer(event->timerId()); } void Light::toolTipAboutToShow() { connect(Plasma::ToolTipManager::self(), SIGNAL(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint)), m_icon, SLOT(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint))); } void Light::toolTipHidden() { disconnect(Plasma::ToolTipManager::self(), SIGNAL(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint)), m_icon, SLOT(windowPreviewActivated(WId, Qt::MouseButtons, Qt::KeyboardModifiers, QPoint))); } void Light::setSize(qreal size) { size *= 0.1; setPreferredSize(size, size); } void Light::setColor(QColor color) { m_color = color; update(); } } fancytasks_1.0.94/applet/FancyTasksLight.h000644 001750 001750 00000005201 11436144324 016731 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSLIGHT_HEADER #define FANCYTASKSLIGHT_HEADER #include #include #include #include #include #include #include #include #include #include #include #include #include namespace FancyTasks { class Applet; class Icon; class Task; class Light : public QGraphicsWidget { Q_OBJECT public: Light(WId window, Applet *applet, Icon *icon); public slots: void toolTipAboutToShow(); void toolTipHidden(); void setSize(qreal size); void setColor(QColor color); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void hoverEnterEvent(QGraphicsSceneHoverEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); void dragEnterEvent(QGraphicsSceneDragDropEvent *event); void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); void timerEvent(QTimerEvent *event); private: QPointer m_applet; QPointer m_icon; QPointer m_task; QColor m_color; WId m_window; int m_dragTimer; int m_highlightTimer; }; } #endif fancytasks_1.0.94/applet/FancyTasksTask.h000644 001750 001750 00000006524 11436144324 016575 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSTASK_HEADER #define FANCYTASKSTASK_HEADER #include "FancyTasksApplet.h" #include #include #include #include #include #include #include #include #include #include "ui_group.h" using TaskManager::GroupPtr; using TaskManager::TaskPtr; using TaskManager::StartupPtr; using TaskManager::AbstractGroupableItem; using TaskManager::GroupManager; using TaskManager::TaskItem; using TaskManager::TaskGroup; namespace FancyTasks { class Task : public QObject { Q_OBJECT public: enum TaskType { TypeInvalid = 0, TypeStartup, TypeTask, TypeGroup }; Task(TaskManager::AbstractGroupableItem *abstractItem, TaskManager::GroupManager *groupManager); void dropItems(TaskManager::ItemList items); TaskType taskType() const; AbstractGroupableItem* abstractItem(); TaskItem* task(); TaskGroup* group(); KMenu* contextMenu(); KIcon icon(); QColor color() const; QString title() const; QString description() const; QList windows(); bool isActive() const; bool demandsAttention() const; public slots: void setTask(TaskManager::AbstractGroupableItem *abstractItem); void setTaskPointer(); void close(); void activate(); void activateWindow(); void publishIconGeometry(); void showPropertiesDialog(); void setProperties(); void taskChanged(::TaskManager::TaskChanges changes); void addItem(AbstractGroupableItem *abstractItem); void removeItem(AbstractGroupableItem *abstractItem); private: QPointer m_abstractItem; QPointer m_task; QPointer m_group; TaskManager::GroupManager *m_groupManager; TaskType m_taskType; Ui::group m_groupUi; signals: void changed(ItemChanges changes); void publishGeometry(TaskManager::TaskItem *task); void windowAdded(WId window); void windowRemoved(WId window); }; } #endif fancytasks_1.0.94/applet/config-fancytasks.h.cmake000644 001750 001750 00000000107 11436144324 020363 0ustar00000000 000000 #cmakedefine FANCYTASKS_HAVE_COMPOSITING @FANCYTASKS_HAVE_COMPOSITING@ fancytasks_1.0.94/applet/FancyTasksSeparator.cpp000644 001750 001750 00000007247 11436144324 020171 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksSeparator.h" #include "FancyTasksApplet.h" namespace FancyTasks { Separator::Separator(Plasma::Svg *svg, Applet *applet) : Plasma::SvgWidget(svg, "separator", applet), m_applet(applet), m_isVisible(true) { setObjectName("FancyTasksSeparator"); setAcceptsHoverEvents(true); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); updateOrientation(); connect(this, SIGNAL(hoverMoved(QGraphicsWidget*, qreal)), m_applet, SLOT(itemHoverMoved(QGraphicsWidget*, qreal))); connect(this, SIGNAL(hoverLeft()), m_applet, SLOT(hoverLeft())); connect(m_applet, SIGNAL(sizeChanged(qreal)), this, SLOT(setSize(qreal))); connect(m_applet, SIGNAL(locationChanged()), this, SLOT(updateOrientation())); } void Separator::hoverMoveEvent(QGraphicsSceneHoverEvent *event) { emit hoverMoved(this, (qreal) (((m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge)?event->pos().y():event->pos().x()) / m_size)); } void Separator::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) emit hoverLeft(); } void Separator::setSize(qreal size) { m_size = size; if (m_isVisible) { if (m_applet->location() == Plasma::LeftEdge || m_applet->location() == Plasma::RightEdge) { setPreferredSize(m_size, (m_size / 4)); } else { setPreferredSize((m_size / 4), m_size); } } } void Separator::updateOrientation() { setElementID((m_applet->location() == Plasma::LeftEdge)?"separator-west":((m_applet->location() == Plasma::RightEdge)?"separator-east":((m_applet->location() == Plasma::TopEdge)?"separator-north":"separator"))); } void Separator::show() { m_isVisible = true; setSize(m_size); } void Separator::hide() { m_isVisible = false; setPreferredSize(0, 0); } QPainterPath Separator::shape() const { QPainterPath path; QRectF rectangle; switch (m_applet->location()) { case Plasma::LeftEdge: rectangle = QRectF((boundingRect().width() * 0.2), 0, boundingRect().width(), boundingRect().height()); break; case Plasma::RightEdge: rectangle = QRectF(0, 0, (boundingRect().width() * 0.8), boundingRect().height()); break; case Plasma::TopEdge: rectangle = QRectF(0, (boundingRect().height() * 0.2), boundingRect().width(), boundingRect().height()); break; default: rectangle = QRectF(0, 0, boundingRect().width(), (boundingRect().height() * 0.8)); break; } path.addRect(rectangle); return path; } bool Separator::isVisible() const { return m_isVisible; } } fancytasks_1.0.94/applet/FancyTasksMenu.h000644 001750 001750 00000003634 11436144324 016576 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSMENU_HEADER #define FANCYTASKSMENU_HEADER #include "FancyTasksApplet.h" #include namespace FancyTasks { class Menu : public KMenu { Q_OBJECT public: Menu(QList windows = QList(), QWidget *parent = NULL); QAction* addAction(WId window); QAction* addAction(const QIcon &icon, const QString &text, WId window = 0); protected: void dragEnterEvent(QDragEnterEvent *event); void dragMoveEvent(QDragMoveEvent *event); void dragLeaveEvent(QDragLeaveEvent *event); void dropEvent(QDropEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void contextMenuEvent(QContextMenuEvent *event); private: QPoint m_dragStartPosition; QAction *m_currentAction; }; } #endif fancytasks_1.0.94/applet/FancyTasksLauncher.cpp000644 001750 001750 00000040072 11436144324 017763 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksLauncher.h" #include "FancyTasksIcon.h" #include #include #include #include #include #include #include #include #include #include namespace FancyTasks { Launcher::Launcher(const KUrl &url, Applet *parent) : QObject(parent), m_applet(parent), m_serviceGroup(NULL), m_mimeType(NULL), m_trashLister(NULL), m_launcherUrl(url), m_isExecutable(false), m_isServiceGroup(false) { setUrl(url); } Launcher::~Launcher() { for (int i = 0; i < m_items.count(); ++i) { Icon *icon = qobject_cast(m_items.at(i)); if (icon) { icon->setLauncher(NULL); } } } void Launcher::setUrl(const KUrl &url) { m_targetUrl = m_launcherUrl = url; m_serviceGroup = NULL; m_isServiceGroup = false; if (url.scheme() == "menu") { m_serviceGroup = KServiceGroup::group(url.path()); if (m_serviceGroup && m_serviceGroup->isValid()) { m_executable = QString(); m_isExecutable = false; m_isServiceGroup = true; m_title = m_serviceGroup->caption(); m_description = m_serviceGroup->comment(); m_icon = KIcon(m_serviceGroup->icon()); return; } else { m_serviceGroup = NULL; } } m_mimeType = KMimeType::findByUrl(m_launcherUrl); if (m_launcherUrl.isLocalFile() && KDesktopFile::isDesktopFile(m_launcherUrl.toLocalFile())) { KDesktopFile desktopFile(m_launcherUrl.toLocalFile()); KConfigGroup config = desktopFile.desktopGroup(); m_executable = config.readPathEntry("Exec", QString()); m_title = (desktopFile.readName().isEmpty()?m_launcherUrl.fileName():desktopFile.readName()); m_description = (desktopFile.readGenericName().isEmpty()?(desktopFile.readComment().isEmpty()?m_launcherUrl.path():desktopFile.readComment()):desktopFile.readGenericName()); m_icon = KIcon(desktopFile.readIcon()); if (m_executable.isEmpty()) { QString filePath = desktopFile.readUrl(); if (filePath.isEmpty()) { filePath = desktopFile.readPath(); } m_targetUrl = KUrl(filePath); m_mimeType = KMimeType::findByUrl(KUrl(m_targetUrl)); } if (!m_trashLister && m_targetUrl == KUrl("trash:/")) { m_trashLister = new KDirLister(this); connect(m_trashLister, SIGNAL(completed()), this, SLOT(updateTrash())); connect(m_trashLister, SIGNAL(clear()), this, SLOT(updateTrash())); connect(m_trashLister, SIGNAL(deleteItem(const KFileItem&)), this, SLOT(updateTrash())); m_trashLister->setAutoUpdate(true); m_trashLister->openUrl(m_targetUrl); updateTrash(); } else if (m_trashLister && m_targetUrl != KUrl("trash:/")) { delete m_trashLister; m_trashLister = NULL; } } else { m_title = m_launcherUrl.fileName(); m_description = m_launcherUrl.path(); m_icon = KIcon(KMimeType::iconNameForUrl(url)); if (m_title.isEmpty()) { if (m_launcherUrl.isLocalFile()) { m_title = m_launcherUrl.directory(); } else { m_title = m_launcherUrl.protocol(); } } } m_isExecutable = (m_launcherUrl.isLocalFile() && (m_mimeType->is("application/x-executable") || m_mimeType->is("application/x-shellscript") || KDesktopFile::isDesktopFile(m_launcherUrl.toLocalFile()))); ItemChanges changes = TextChanged; changes |= IconChanged; emit changed(changes); } void Launcher::setBrowseMenu() { KMenu *menu = qobject_cast(sender()); if (menu->actions().count() > 2) { return; } QString url = menu->actions()[0]->data().toString(); QDir dir(url); const QStringList entries = dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot, QDir::LocaleAware | QDir::DirsFirst); foreach (const QString &entry, entries) { QString path = url; if (!path.endsWith('/')) { path.append('/'); } path += entry; QString iconName = KMimeType::iconNameForUrl(KUrl(path)); if (!QFileInfo(path).isFile()) { KMenu *subMenu = new KMenu(menu); QAction *action = subMenu->addAction(KIcon("document-open"), i18n("Open")); action->setData(path); subMenu->addSeparator(); action = menu->addAction(KIcon(iconName), entry); action->setMenu(subMenu); connect(subMenu, SIGNAL(aboutToShow()), this, SLOT(setBrowseMenu())); } else { QAction *action = menu->addAction(KIcon(iconName), entry); action->setData(path); } } } void Launcher::setServiceMenu() { KMenu *menu = qobject_cast(sender()); if (menu->actions().count() > 1) { return; } KServiceGroup::Ptr rootGroup = KServiceGroup::group(menu->actions()[0]->data().toString()); if (!rootGroup || !rootGroup->isValid() || rootGroup->noDisplay()) { return; } KServiceGroup::List list = rootGroup->entries(true, true, true, true); for (int i = 0; i < list.count(); ++i) { if (list.at(i)->isType(KST_KService)) { const KService::Ptr service = KService::Ptr::staticCast(list.at(i)); QAction *action = menu->addAction(KIcon(service->icon()), service->name()); action->setData(service->entryPath()); action->setToolTip(service->genericName()); } else if (list.at(i)->isType(KST_KServiceGroup)) { const KServiceGroup::Ptr group = KServiceGroup::Ptr::staticCast(list.at(i)); if (group->noDisplay() || group->childCount() == 0) { continue; } KMenu *subMenu = new KMenu(menu); QAction *action = subMenu->addAction(QString()); action->setData(group->relPath()); action->setVisible(false); action = menu->addAction(KIcon(group->icon()), group->caption()); action->setMenu(subMenu); connect(subMenu, SIGNAL(aboutToShow()), this, SLOT(setServiceMenu())); } else if (list.at(i)->isType(KST_KServiceSeparator)) { menu->addSeparator(); } } } void Launcher::activate() { new KRun(m_launcherUrl, NULL); } void Launcher::dropUrls(const KUrl::List &urls, Qt::KeyboardModifiers modifiers) { if (m_serviceGroup || !urls.count()) { return; } if (m_mimeType->is("inode/directory")) { Qt::DropAction dropAction = Qt::CopyAction; if ((modifiers & Qt::ShiftModifier && modifiers & Qt::ControlModifier) || modifiers & Qt::AltModifier) { dropAction = Qt::LinkAction; } else if (modifiers & Qt::ShiftModifier) { dropAction = Qt::MoveAction; } else if (modifiers & Qt::ControlModifier) { dropAction = Qt::CopyAction; } else { KMenu *menu = new KMenu; QAction *moveAction = menu->addAction(KIcon("go-jump"), i18nc("@action:inmenu", "&Move Here\t%1", QKeySequence(Qt::ShiftModifier).toString())); QAction *copyAction = menu->addAction(KIcon("edit-copy"), i18nc("@action:inmenu", "&Copy Here\t%1", QKeySequence(Qt::ControlModifier).toString())); QAction *linkAction = menu->addAction(KIcon("insert-link"), i18nc("@action:inmenu", "&Link Here\t%1", QKeySequence(Qt::ControlModifier + Qt::ShiftModifier).toString())); menu->addSeparator(); menu->addAction(KIcon("process-stop"), i18nc("@action:inmenu", "Cancel")); QAction *activatedAction = menu->exec(QCursor::pos()); delete menu; if (activatedAction == moveAction) { dropAction = Qt::MoveAction; } else if (activatedAction == copyAction) { dropAction = Qt::CopyAction; } else if (activatedAction == linkAction) { dropAction = Qt::LinkAction; } else { return; } } switch (dropAction) { case Qt::MoveAction: KIO::move(urls, m_targetUrl); break; case Qt::CopyAction: KIO::copy(urls, m_targetUrl); break; case Qt::LinkAction: KIO::link(urls, m_targetUrl); break; default: return; } } else if (m_isExecutable) { QString arguments; QString command; for (int i = 0; i < urls.count(); ++i) { arguments += ' ' + KShell::quoteArg(urls[i].isLocalFile()?urls[i].path():urls[i].prettyUrl()); } if (KDesktopFile::isDesktopFile(m_launcherUrl.toLocalFile())) { KDesktopFile desktopFile(m_launcherUrl.toLocalFile()); KConfigGroup config = desktopFile.desktopGroup(); command = config.readPathEntry("Exec", QString()); if (command.isEmpty()) { command = KShell::quoteArg(m_launcherUrl.path()); } } else { command = KShell::quoteArg(m_launcherUrl.path()); } KRun::runCommand(command + ' ' + arguments, NULL); } } void Launcher::openUrl(QAction *action) { if (!action->data().isNull()) { new KRun(KUrl(action->data().toString()), NULL); } } void Launcher::startMenuEditor() { KProcess::execute("kmenuedit"); } void Launcher::emptyTrash() { QWidget *widget = new QWidget; if (KMessageBox::warningContinueCancel(widget, i18nc("@info", "Do you really want to empty the trash? All items will be deleted."), QString(), KGuiItem(i18nc("@action:button", "Empty Trash"), KIcon("user-trash"))) == KMessageBox::Continue) { KonqOperations::emptyTrash(widget); } delete widget; } void Launcher::updateTrash() { int amount = m_trashLister->items(KDirLister::AllItems).count(); m_title = i18n("Trash"); m_description = (amount?i18np("One item", "%1 items", amount):i18n("Empty")); m_icon = KIcon(amount?"user-trash-full":"user-trash"); ItemChanges changes = TextChanged; changes |= IconChanged; emit changed(changes); } void Launcher::showPropertiesDialog() { KPropertiesDialog *propertiesDialog = new KPropertiesDialog(m_launcherUrl); propertiesDialog->setWindowModality(Qt::NonModal); propertiesDialog->setWindowTitle(i18n("%1 Settings", m_title)); propertiesDialog->show(); connect(propertiesDialog, SIGNAL(saveAs(const KUrl&, KUrl&)), m_applet, SLOT(urlChanged(const KUrl&, KUrl&))); } void Launcher::addItem(QObject *object) { if (!m_items.contains(object)) { m_items.append(object); connect(object, SIGNAL(destroyed(QObject*)), this, SLOT(removeItem(QObject*))); } if (m_items.count() == 1) { emit hide(); } } void Launcher::removeItem(QObject *object) { m_items.removeAll(object); if (!m_items.count()) { emit show(); } } KMimeType::Ptr Launcher::mimeType() { return m_mimeType; } KMenu* Launcher::contextMenu() { KMenu *menu = new KMenu; if (m_isServiceGroup) { if (KService::serviceByStorageId("kde4-kmenuedit.desktop")) { menu->addAction(i18n("Menu Editor"), this, SLOT(startMenuEditor())); menu->setTitle(i18n("Menu")); } } else { menu->addAction(KIcon("system-run"), i18n("Run"), this, SLOT(activate())); if (m_mimeType->is("inode/directory")) { KMenu *browseMenu = new KMenu(menu); QAction *action = browseMenu->addAction(KIcon("document-open"), i18n("Open")); action->setData(m_launcherUrl.path()); browseMenu->addSeparator(); action = menu->addAction(KIcon("document-preview"), i18n("Browse")); action->setMenu(browseMenu); connect(browseMenu, SIGNAL(aboutToShow()), this, SLOT(setBrowseMenu())); connect(browseMenu, SIGNAL(triggered(QAction*)), this, SLOT(openUrl(QAction*))); } if (m_targetUrl == KUrl("trash:/")) { menu->addAction(KIcon("trash-empty"), i18n("&Empty Trashcan"), this, SLOT(emptyTrash()))->setEnabled(m_trashLister->items(KDirLister::AllItems).count()); } menu->addSeparator(); menu->addAction(KIcon("document-edit"), i18n("Edit"), this, SLOT(showPropertiesDialog())); menu->setTitle(i18n("Launcher")); } return menu; } KMenu* Launcher::serviceMenu() { KMenu *menu = new KMenu; if (!m_serviceGroup || !m_serviceGroup->isValid() || m_serviceGroup->noDisplay()) { return menu; } KServiceGroup::List list = m_serviceGroup->entries(true, true, true, true); for (int i = 0; i < list.count(); ++i) { if (list.at(i)->isType(KST_KService)) { const KService::Ptr service = KService::Ptr::staticCast(list.at(i)); QAction *action = menu->addAction(KIcon(service->icon()), service->name()); action->setData(service->entryPath()); action->setToolTip(service->genericName()); } else if (list.at(i)->isType(KST_KServiceGroup)) { const KServiceGroup::Ptr group = KServiceGroup::Ptr::staticCast(list.at(i)); if (group->noDisplay() || group->childCount() == 0) { continue; } KMenu *subMenu = new KMenu(menu); QAction *action = subMenu->addAction(QString()); action->setData(group->relPath()); action->setVisible(false); action = menu->addAction(KIcon(group->icon()), group->caption()); action->setMenu(subMenu); connect(subMenu, SIGNAL(aboutToShow()), this, SLOT(setServiceMenu())); } else if (list.at(i)->isType(KST_KServiceSeparator)) { menu->addSeparator(); } } connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(openUrl(QAction*))); return menu; } KIcon Launcher::icon() { return m_icon; } KUrl Launcher::launcherUrl() const { return m_launcherUrl; } KUrl Launcher::targetUrl() const { return m_targetUrl; } QString Launcher::title() const { return m_title; } QString Launcher::description() const { return m_description; } QString Launcher::executable() const { return m_executable; } int Launcher::itemsAmount() const { return m_items.count(); } bool Launcher::isExecutable() const { return m_isExecutable; } bool Launcher::isServiceGroup() const { return m_isServiceGroup; } } fancytasks_1.0.94/applet/FancyTasksDropZone.h000644 001750 001750 00000003513 11436144324 017426 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSDROPZONE_HEADER #define FANCYTASKSDROPZONE_HEADER #include #include #include namespace FancyTasks { class Applet; class DropZone : public QGraphicsWidget { Q_OBJECT public: DropZone(Applet *applet); int index() const; bool isVisible() const; protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); void dropEvent(QGraphicsSceneDragDropEvent *event); public slots: void setSize(qreal size); void show(int index); void hide(bool force = false); private: QPointer m_applet; qreal m_size; int m_index; bool m_visible; }; } #endif fancytasks_1.0.94/applet/FancyTasksMenu.cpp000644 001750 001750 00000012170 11436144324 017124 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksMenu.h" #include "FancyTasksTask.h" #include #include namespace FancyTasks { Menu::Menu(QList windows, QWidget *parent) : KMenu(parent), m_currentAction(NULL) { setAcceptDrops(true); for (int i = 0; i < windows.count(); ++i) { addAction(windows.at(i)); } } void Menu::dragEnterEvent(QDragEnterEvent *event) { event->acceptProposedAction(); } void Menu::dragMoveEvent(QDragMoveEvent *event) { event->acceptProposedAction(); QAction *action = actionAt(event->pos()); if (action && action->data().toULongLong() && action != m_currentAction) { m_currentAction = action; TaskManager::TaskPtr taskPointer = TaskManager::TaskManager::self()->findTask(action->data().toULongLong()); if (taskPointer) { TaskManager::GroupManager *groupManager = new TaskManager::GroupManager(this); Task *task = new Task(new TaskManager::TaskItem(groupManager, taskPointer), groupManager); task->activateWindow(); delete task; delete groupManager; } } } void Menu::dragLeaveEvent(QDragLeaveEvent *event) { Q_UNUSED(event) close(); } void Menu::dropEvent(QDropEvent *event) { Q_UNUSED(event) close(); } void Menu::mousePressEvent(QMouseEvent *event) { m_dragStartPosition = event->pos(); KMenu::mousePressEvent(event); } void Menu::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton && (event->pos() - m_dragStartPosition).manhattanLength() >= QApplication::startDragDistance() && activeAction() && activeAction()->data().type() == QVariant::ULongLong) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QByteArray data; WId window = activeAction()->data().toULongLong(); data.resize(sizeof(WId)); memcpy(data.data(), &window, sizeof(WId)); mimeData->setData("windowsystem/winid", data); drag->setMimeData(mimeData); drag->setPixmap(activeAction()->icon().pixmap(32, 32)); close(); drag->exec(); } KMenu::mouseMoveEvent(event); } void Menu::mouseReleaseEvent(QMouseEvent *event) { QAction *action = actionAt(event->pos()); if (action && action->data().type() == QVariant::ULongLong) { TaskManager::TaskPtr taskPointer = TaskManager::TaskManager::self()->findTask(action->data().toULongLong()); if (taskPointer) { TaskManager::GroupManager *groupManager = new TaskManager::GroupManager(this); Task *task = new Task(new TaskManager::TaskItem(groupManager, taskPointer), groupManager); if (event->button() == Qt::LeftButton) { task->activate(); } else if (event->button() == Qt::MidButton) { task->close(); } delete task; delete groupManager; } } KMenu::mouseReleaseEvent(event); } void Menu::contextMenuEvent(QContextMenuEvent *event) { QAction *action = actionAt(event->pos()); if (action && action->data().type() == QVariant::ULongLong) { TaskManager::TaskPtr taskPointer = TaskManager::TaskManager::self()->findTask(action->data().toULongLong()); if (taskPointer) { TaskManager::GroupManager *groupManager = new TaskManager::GroupManager(this); Task *task = new Task(new TaskManager::TaskItem(groupManager, taskPointer), groupManager); KMenu *menu = task->contextMenu(); menu->exec(event->globalPos()); delete task; delete groupManager; delete menu; } } } QAction* Menu::addAction(WId window) { return addAction(QIcon(KWindowSystem::icon(window)), KWindowSystem::windowInfo(window, NET::WMVisibleName).visibleName(), window); } QAction* Menu::addAction(const QIcon &icon, const QString &text, WId window) { QAction *action = QMenu::addAction(icon, text); if (window) { action->setData(QVariant((qulonglong)window)); } return action; } } fancytasks_1.0.94/applet/FancyTasksActionDelegate.cpp000644 001750 001750 00000013233 11436144324 021071 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksActionDelegate.h" #include #include #include #include #include namespace FancyTasks { ActionDelegate::ActionDelegate(QObject *parent) : QStyledItemDelegate(parent) { } void ActionDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_UNUSED(index) editor->setGeometry(option.rect); } void ActionDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QStringList action = index.data(Qt::EditRole).toString().split('+', QString::KeepEmptyParts); KComboBox *buttonComboBox = static_cast(editor->layout()->itemAt(0)->widget()); buttonComboBox->setCurrentIndex(0); KComboBox *modifierComboBox = static_cast(editor->layout()->itemAt(1)->widget()); modifierComboBox->setCurrentIndex(0); if (action.count() > 0 && !action.at(0).isEmpty()) { if (action.at(0) == "left") { buttonComboBox->setCurrentIndex(1); } else if (action.at(0) == "middle") { buttonComboBox->setCurrentIndex(2); } else if (action.at(0) == "right") { buttonComboBox->setCurrentIndex(3); } if (action.count() > 1) { if (action.at(1) == "ctrl") { modifierComboBox->setCurrentIndex(1); } else if (action.at(1) == "shift") { modifierComboBox->setCurrentIndex(2); } else if (action.at(1) == "alt") { modifierComboBox->setCurrentIndex(3); } } } } void ActionDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { KComboBox *buttonComboBox = static_cast(editor->layout()->itemAt(0)->widget()); KComboBox *modifierComboBox = static_cast(editor->layout()->itemAt(1)->widget()); QStringList buttons; buttons << QString() << "left" << "middle" << "right"; QStringList modifiers; modifiers << QString() << "ctrl" << "shift" << "alt"; if (buttonComboBox->currentIndex() > 0) { QString action = buttons.at(buttonComboBox->currentIndex()); action.append('+'); if (modifierComboBox->currentIndex() > 0) { action.append(modifiers.at(modifierComboBox->currentIndex())); } model->setData(index, action, Qt::EditRole); } else { model->setData(index, QString('+'), Qt::EditRole); } } QWidget* ActionDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_UNUSED(option) QWidget *editor = new QWidget(parent); KComboBox *buttonComboBox = new KComboBox(editor); buttonComboBox->setToolTip(i18n("Mouse Button")); buttonComboBox->addItem(i18n("Disabled")); buttonComboBox->addItem(i18n("Left")); buttonComboBox->addItem(i18n("Middle")); buttonComboBox->addItem(i18n("Right")); KComboBox *modifierComboBox = new KComboBox(editor); modifierComboBox->setToolTip(i18n("Modifier Key")); modifierComboBox->addItem(i18n("None")); modifierComboBox->addItem("Ctrl"); modifierComboBox->addItem("Shift"); modifierComboBox->addItem("Alt"); QHBoxLayout *layout = new QHBoxLayout(editor); layout->addWidget(buttonComboBox); layout->addWidget(modifierComboBox); setEditorData(editor, index); return editor; } QString ActionDelegate::displayText(const QVariant &value, const QLocale &locale) const { Q_UNUSED(locale) if (!value.toString().contains('+')) { return value.toString(); } QStringList action = value.toString().split('+'); QString text; if (action.count() > 0 && !action.at(0).isEmpty()) { if (action.at(0) == "left") { text = i18n("Left mouse button"); } else if (action.at(0) == "middle") { text = i18n("Middle mouse button"); } else if (action.at(0) == "right") { text = i18n("Right mouse button"); } if (action.count() > 1 && !action.at(1).isEmpty()) { text.append(" + "); if (action.at(1) == "ctrl") { text.append(i18n("Ctrl modifier")); } else if (action.at(1) == "shift") { text.append(i18n("Shift modifier")); } else if (action.at(1) == "alt") { text.append(i18n("Alt modifier")); } } } return text; } } fancytasks_1.0.94/applet/FancyTasksActionDelegate.h000644 001750 001750 00000003337 11436144324 020542 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSACTIONDELEGATE_H #define FANCYTASKSACTIONDELEGATE_H #include namespace FancyTasks { class ActionDelegate : public QStyledItemDelegate { Q_OBJECT public: ActionDelegate(QObject *parent = NULL); void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor, const QModelIndex &index) const; void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; QString displayText(const QVariant &value, const QLocale &locale) const; }; } #endif fancytasks_1.0.94/applet/FancyTasksSeparator.h000644 001750 001750 00000003553 11436144324 017632 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSSEPARATOR_HEADER #define FANCYTASKSSEPARATOR_HEADER #include #include #include namespace FancyTasks { class Applet; class Separator : public Plasma::SvgWidget { Q_OBJECT public: Separator(Plasma::Svg *svg, Applet *applet); QPainterPath shape() const; bool isVisible() const; protected: void hoverMoveEvent(QGraphicsSceneHoverEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); public slots: void setSize(qreal size); void updateOrientation(); void show(); void hide(); private: QPointer m_applet; qreal m_size; bool m_isVisible; signals: void hoverMoved(QGraphicsWidget *item, qreal across); void hoverLeft(); }; } #endif fancytasks_1.0.94/applet/FancyTasksConfiguration.cpp000644 001750 001750 00000064352 11436144324 021040 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksConfiguration.h" #include "FancyTasksActionDelegate.h" #include "FancyTasksApplet.h" #include "FancyTasksLauncher.h" #include #include #include #include #include #include #include #include #include #include #include namespace FancyTasks { Configuration::Configuration(Applet *applet, KConfigDialog *parent) : QObject(parent), m_applet(applet) { KConfigGroup configuration = m_applet->config(); KMenu* addLauncherMenu = new KMenu(parent); QWidget* generalWidget = new QWidget; QWidget* appearanceWidget = new QWidget; QWidget* arrangementWidget = new QWidget; QWidget* actionsWidget = new QWidget; QWidget* findApplicationWidget = new QWidget; QAction* addLauncherApplicationAction = addLauncherMenu->addAction(KIcon("application-x-executable"), i18n("Add Application...")); QAction* addLauncherFromFileAction = addLauncherMenu->addAction(KIcon("inode-directory"), i18n("Add File or Directory...")); QAction* addMenuLauncher = addLauncherMenu->addAction(KIcon("start-here"), i18n("Add Menu")); KMenu* addMenuLauncherMenu = new KMenu(addLauncherMenu); addMenuLauncher->setMenu(addMenuLauncherMenu); QAction *action = addMenuLauncherMenu->addAction(QString()); action->setData("/"); action->setVisible(false); m_generalUi.setupUi(generalWidget); m_appearanceUi.setupUi(appearanceWidget); m_arrangementUi.setupUi(arrangementWidget); m_actionsUi.setupUi(actionsWidget); m_findApplicationUi.setupUi(findApplicationWidget); m_findApplicationDialog = new KDialog(parent); m_findApplicationDialog->setCaption(i18n("Find Application")); m_findApplicationDialog->setMainWidget(findApplicationWidget); m_findApplicationDialog->setButtons(KDialog::Close); m_arrangementUi.addLauncherButton->setMenu(addLauncherMenu); m_generalUi.groupingStrategy->addItem(i18n("Do Not Group"), QVariant(TaskManager::GroupManager::NoGrouping)); m_generalUi.groupingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualGrouping)); m_generalUi.groupingStrategy->addItem(i18n("By Program Name"), QVariant(TaskManager::GroupManager::ProgramGrouping)); m_generalUi.groupingStrategy->setCurrentIndex(m_generalUi.groupingStrategy->findData(QVariant(configuration.readEntry("groupingStrategy", static_cast(TaskManager::GroupManager::NoGrouping))))); m_generalUi.sortingStrategy->addItem(i18n("Do Not Sort"), QVariant(TaskManager::GroupManager::NoSorting)); m_generalUi.sortingStrategy->addItem(i18n("Manually"), QVariant(TaskManager::GroupManager::ManualSorting)); m_generalUi.sortingStrategy->addItem(i18n("Alphabetically"), QVariant(TaskManager::GroupManager::AlphaSorting)); m_generalUi.sortingStrategy->addItem(i18n("By Desktop"), QVariant(TaskManager::GroupManager::DesktopSorting)); m_generalUi.sortingStrategy->setCurrentIndex(m_generalUi.sortingStrategy->findData(QVariant(configuration.readEntry("sortingStrategy", static_cast(TaskManager::GroupManager::ManualSorting))))); m_generalUi.showOnlyCurrentDesktop->setChecked(configuration.readEntry("showOnlyCurrentDesktop", false)); m_generalUi.showOnlyCurrentScreen->setChecked(configuration.readEntry("showOnlyCurrentScreen", false)); m_generalUi.showOnlyMinimized->setChecked(configuration.readEntry("showOnlyMinimized", false)); m_generalUi.showOnlyTasksWithLaunchers->setChecked(configuration.readEntry("showOnlyTasksWithLaunchers", false)); m_generalUi.connectJobsWithTasks->setChecked(configuration.readEntry("connectJobsWithTasks", false)); m_generalUi.groupJobs->setChecked(configuration.readEntry("groupJobs", true)); m_generalUi.jobCloseMode->addItem(i18n("Instantly"), QVariant(InstantClose)); m_generalUi.jobCloseMode->addItem(i18n("After delay"), QVariant(DelayedClose)); m_generalUi.jobCloseMode->addItem(i18n("Manually"), QVariant(ManualClose)); m_generalUi.jobCloseMode->setCurrentIndex(m_generalUi.jobCloseMode->findData(QVariant(configuration.readEntry("jobCloseMode", static_cast(DelayedClose))))); QStringList moveAnimationNames; moveAnimationNames << i18n("None") << i18n("Zoom") << i18n("Jump") << i18n("Spotlight") << i18n("Glow") << i18n("Fade"); QList moveAnimationIds; moveAnimationIds << NoAnimation << ZoomAnimation << JumpAnimation << SpotlightAnimation << GlowAnimation << FadeAnimation; for (int i = 0; i < moveAnimationIds.count(); ++i) { m_appearanceUi.moveAnimation->addItem(moveAnimationNames.at(i), QVariant(moveAnimationIds.at(i))); } QStringList iconAnimationNames; iconAnimationNames << i18n("None") << i18n("Bounce") << i18n("Zoom") << i18n("Blink") << i18n("Spotlight") << i18n("Rotate") << i18n("Glow"); QList iconAnimationIds; iconAnimationIds << NoAnimation << BounceAnimation << ZoomAnimation << BlinkAnimation << SpotlightAnimation << RotateAnimation << GlowAnimation; for (int i = 0; i < iconAnimationIds.count(); ++i) { m_appearanceUi.demandsAttentionAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); m_appearanceUi.startupAnimation->addItem(iconAnimationNames.at(i), QVariant(iconAnimationIds.at(i))); } m_appearanceUi.titleLabelMode->addItem(i18n("Never"), QVariant(NoLabel)); m_appearanceUi.titleLabelMode->addItem(i18n("On mouse-over"), QVariant(LabelOnMouseOver)); m_appearanceUi.titleLabelMode->addItem(i18n("For active icon"), QVariant(LabelForActiveIcon)); m_appearanceUi.titleLabelMode->addItem(i18n("Always"), QVariant(AlwaysShowLabel)); m_appearanceUi.titleLabelMode->setCurrentIndex(m_appearanceUi.titleLabelMode->findData(QVariant(configuration.readEntry("titleLabelMode", static_cast(NoLabel))))); m_appearanceUi.activeIconIndication->addItem(i18n("No indication"), QVariant(NoIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Zoom"), QVariant(ZoomIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Glow"), QVariant(GlowIndication)); m_appearanceUi.activeIconIndication->addItem(i18n("Fade"), QVariant(FadeIndication)); m_appearanceUi.activeIconIndication->setCurrentIndex(m_appearanceUi.activeIconIndication->findData(QVariant(configuration.readEntry("activeIconIndication", static_cast(FadeIndication))))); m_appearanceUi.useThumbnails->setChecked(configuration.readEntry("useThumbnails", false)); m_appearanceUi.customBackgroundImage->setUrl(KUrl(configuration.readEntry("customBackgroundImage", QString()))); m_appearanceUi.customBackgroundImage->setFilter("image/svg+xml image/svg+xml-compressed"); m_appearanceUi.moveAnimation->setCurrentIndex(moveAnimationIds.indexOf(static_cast(configuration.readEntry("moveAnimation", static_cast(ZoomAnimation))))); m_appearanceUi.parabolicMoveAnimation->setChecked(configuration.readEntry("parabolicMoveAnimation", true)); m_appearanceUi.demandsAttentionAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast(configuration.readEntry("demandsAttentionAnimation", static_cast(BlinkAnimation))))); m_appearanceUi.startupAnimation->setCurrentIndex(iconAnimationIds.indexOf(static_cast(configuration.readEntry("startupAnimation", static_cast(BounceAnimation))))); m_arrangementUi.removeButton->setIcon(KIcon("go-previous")); m_arrangementUi.addButton->setIcon(KIcon("go-next")); m_arrangementUi.moveUpButton->setIcon(KIcon("go-up")); m_arrangementUi.moveDownButton->setIcon(KIcon("go-down")); m_arrangementUi.availableActionsListWidget->addItem(i18n("--- separator ---")); QStringList arrangement = configuration.readEntry("arrangement", QStringList("tasks")); if (!arrangement.contains("tasks")) { m_arrangementUi.availableActionsListWidget->addItem(i18n("--- tasks area ---")); } if (!arrangement.contains("jobs")) { m_arrangementUi.availableActionsListWidget->addItem(i18n("--- jobs area ---")); } for (int i = 0; i < arrangement.count(); ++i) { QListWidgetItem *item; if (arrangement.at(i) == "tasks") { item = new QListWidgetItem(i18n("--- tasks area ---"), m_arrangementUi.currentActionsListWidget); } else if (arrangement.at(i) == "jobs") { item = new QListWidgetItem(i18n("--- jobs area ---"), m_arrangementUi.currentActionsListWidget); } else if (arrangement.at(i) == "separator") { item = new QListWidgetItem(i18n("--- separator ---"), m_arrangementUi.currentActionsListWidget); } else { Launcher *launcher = m_applet->launcherForUrl(KUrl(arrangement.at(i))); if (!launcher) { continue; } item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); } m_arrangementUi.currentActionsListWidget->addItem(item); } QStringList actionNames; actionNames << i18n("Activate Item") << i18n("Activate Task") << i18n("Activate Launcher") << i18n("Show Item Menu") << i18n("Show Item Children List") << i18n("Show Item Windows") << i18n("Close Task"); QStringList actionOptions; actionOptions << "activateItem" << "activateTask" << "activateLauncher" << "showItemMenu" << "showItemChildrenList" << "showItemWindows" << "closeTask"; QStringList actionDefaults; actionDefaults << "left+" << QString('+') << "middle+" << QString('+') << QString('+') << "middle+shift" << "left+shift"; m_actionsUi.actionsTableWidget->setRowCount(actionNames.count()); m_actionsUi.actionsTableWidget->setItemDelegate(new ActionDelegate(this)); for (int i = 0; i < actionOptions.count(); ++i) { QTableWidgetItem *descriptionItem = new QTableWidgetItem(actionNames.at(i)); descriptionItem->setToolTip(actionNames.at(i)); descriptionItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QTableWidgetItem *editingItem = new QTableWidgetItem(configuration.readEntry((actionOptions.at(i) + "Action"), actionDefaults.at(i))); editingItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); m_actionsUi.actionsTableWidget->setItem(i, 0, descriptionItem); m_actionsUi.actionsTableWidget->setItem(i, 1, editingItem); } moveAnimationTypeChanged(m_appearanceUi.moveAnimation->currentIndex()); parent->addPage(generalWidget, i18n("General"), "go-home"); parent->addPage(appearanceWidget, i18n("Appearance"), "preferences-desktop-theme"); parent->addPage(arrangementWidget, i18n("Arrangement"), "format-list-unordered"); parent->addPage(actionsWidget, i18n("Actions"), "configure-shortcuts"); connect(parent, SIGNAL(okClicked()), this, SLOT(accepted())); connect(m_appearanceUi.moveAnimation, SIGNAL(currentIndexChanged(int)), this, SLOT(moveAnimationTypeChanged(int))); connect(m_arrangementUi.availableActionsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(availableActionsCurrentItemChanged(int))); connect(m_arrangementUi.currentActionsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(currentActionsCurrentItemChanged(int))); connect(m_arrangementUi.removeButton, SIGNAL(clicked()), this, SLOT(removeItem())); connect(m_arrangementUi.addButton, SIGNAL(clicked()), this, SLOT(addItem())); connect(m_arrangementUi.moveUpButton, SIGNAL(clicked()), this, SLOT(moveUpItem())); connect(m_arrangementUi.moveDownButton, SIGNAL(clicked()), this, SLOT(moveDownItem())); connect(m_findApplicationUi.query, SIGNAL(textChanged(QString)), this, SLOT(findApplication(QString))); connect(addLauncherApplicationAction, SIGNAL(triggered()), m_findApplicationDialog, SLOT(show())); connect(addLauncherApplicationAction, SIGNAL(triggered()), m_findApplicationUi.query, SLOT(setFocus())); connect(addLauncherFromFileAction, SIGNAL(triggered()), this, SLOT(addLauncher())); connect(addMenuLauncherMenu, SIGNAL(aboutToShow()), this, SLOT(setServiceMenu())); connect(addMenuLauncherMenu, SIGNAL(triggered(QAction*)), this, SLOT(addMenu(QAction*))); connect(m_findApplicationDialog, SIGNAL(finished()), this, SLOT(closeFindApplicationDialog())); } void Configuration::accepted() { KConfigGroup configuration = m_applet->config(); QStringList arrangement; for (int i = 0; i < m_arrangementUi.currentActionsListWidget->count(); ++i) { if (!m_arrangementUi.currentActionsListWidget->item(i)->toolTip().isEmpty()) { arrangement.append(m_arrangementUi.currentActionsListWidget->item(i)->toolTip()); } else if (m_arrangementUi.currentActionsListWidget->item(i)->text() == i18n("--- tasks area ---")) { arrangement.append("tasks"); } else if (m_arrangementUi.currentActionsListWidget->item(i)->text() == i18n("--- jobs area ---")) { arrangement.append("jobs"); } else { arrangement.append("separator"); } } QStringList actionOptions; actionOptions << "activateItem" << "activateTask" << "activateLauncher" << "showItemMenu" << "showItemChildrenList" << "showItemWindows" << "closeTask"; for (int i = 0; i < actionOptions.count(); ++i) { configuration.writeEntry((actionOptions.at(i) + "Action"), m_actionsUi.actionsTableWidget->item(i, 1)->data(Qt::EditRole).toString()); } configuration.writeEntry("moveAnimation", m_appearanceUi.moveAnimation->itemData(m_appearanceUi.moveAnimation->currentIndex()).toInt()); configuration.writeEntry("parabolicMoveAnimation", m_appearanceUi.parabolicMoveAnimation->isChecked()); configuration.writeEntry("demandsAttentionAnimation", m_appearanceUi.demandsAttentionAnimation->itemData(m_appearanceUi.demandsAttentionAnimation->currentIndex()).toInt()); configuration.writeEntry("startupAnimation", m_appearanceUi.startupAnimation->itemData(m_appearanceUi.startupAnimation->currentIndex()).toInt()); configuration.writeEntry("useThumbnails", m_appearanceUi.useThumbnails->isChecked()); configuration.writeEntry("activeIconIndication", m_appearanceUi.activeIconIndication->itemData(m_appearanceUi.activeIconIndication->currentIndex()).toInt()); configuration.writeEntry("titleLabelMode", m_appearanceUi.titleLabelMode->itemData(m_appearanceUi.titleLabelMode->currentIndex()).toInt()); configuration.writeEntry("customBackgroundImage", (m_appearanceUi.customBackgroundImage->url().isValid()?m_appearanceUi.customBackgroundImage->url().path():QString())); configuration.writeEntry("showOnlyCurrentDesktop", m_generalUi.showOnlyCurrentDesktop->isChecked()); configuration.writeEntry("showOnlyCurrentScreen", m_generalUi.showOnlyCurrentScreen->isChecked()); configuration.writeEntry("showOnlyMinimized", m_generalUi.showOnlyMinimized->isChecked()); configuration.writeEntry("showOnlyTasksWithLaunchers", m_generalUi.showOnlyTasksWithLaunchers->isChecked()); configuration.writeEntry("connectJobsWithTasks", m_generalUi.connectJobsWithTasks->isChecked()); configuration.writeEntry("groupJobs", m_generalUi.groupJobs->isChecked()); configuration.writeEntry("groupingStrategy", m_generalUi.groupingStrategy->itemData(m_generalUi.groupingStrategy->currentIndex()).toInt()); configuration.writeEntry("sortingStrategy", m_generalUi.sortingStrategy->itemData(m_generalUi.sortingStrategy->currentIndex()).toInt()); configuration.writeEntry("jobCloseMode", m_generalUi.jobCloseMode->itemData(m_generalUi.jobCloseMode->currentIndex()).toInt()); configuration.writeEntry("arrangement", arrangement); emit finished(); } void Configuration::moveAnimationTypeChanged(int option) { m_appearanceUi.parabolicMoveAnimation->setEnabled(option != 0 && m_appearanceUi.moveAnimation->itemData(option).toInt() != static_cast(JumpAnimation)); } void Configuration::availableActionsCurrentItemChanged(int row) { m_arrangementUi.addButton->setEnabled(row >= 0); if (row >= 0) { m_arrangementUi.descriptionLabel->setText(m_arrangementUi.availableActionsListWidget->currentItem()->text()); } } void Configuration::currentActionsCurrentItemChanged(int row) { m_arrangementUi.removeButton->setEnabled(row >= 0); m_arrangementUi.moveUpButton->setEnabled(row > 0); m_arrangementUi.moveDownButton->setEnabled(row >= 0 && row < (m_arrangementUi.currentActionsListWidget->count() - 1)); if (row >= 0) { m_arrangementUi.descriptionLabel->setText(m_arrangementUi.currentActionsListWidget->currentItem()->text()); } } void Configuration::removeItem() { if (m_arrangementUi.currentActionsListWidget->currentRow() >= 0) { QListWidgetItem *currentItem = m_arrangementUi.currentActionsListWidget->takeItem(m_arrangementUi.currentActionsListWidget->currentRow()); if (currentItem->text() != i18n("--- separator ---")) { m_arrangementUi.availableActionsListWidget->addItem(currentItem); } else { delete currentItem; } m_arrangementUi.currentActionsListWidget->setCurrentItem(NULL); m_arrangementUi.availableActionsListWidget->setCurrentItem(NULL); } } void Configuration::addItem() { if (m_arrangementUi.availableActionsListWidget->currentRow() >= 0) { QListWidgetItem *currentItem = m_arrangementUi.availableActionsListWidget->takeItem(m_arrangementUi.availableActionsListWidget->currentRow()); if (currentItem->text() == i18n("--- separator ---")) { m_arrangementUi.availableActionsListWidget->insertItem(0, currentItem->clone()); } m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), currentItem); m_arrangementUi.currentActionsListWidget->setCurrentItem(currentItem); m_arrangementUi.availableActionsListWidget->setCurrentItem(NULL); } } void Configuration::moveUpItem() { const int currentRow = m_arrangementUi.currentActionsListWidget->currentRow(); if (currentRow > 0) { QListWidgetItem *currentItem = m_arrangementUi.currentActionsListWidget->takeItem(currentRow); m_arrangementUi.currentActionsListWidget->insertItem((currentRow - 1), currentItem); m_arrangementUi.currentActionsListWidget->setCurrentItem(currentItem); } } void Configuration::moveDownItem() { const int currentRow = m_arrangementUi.currentActionsListWidget->currentRow(); if (currentRow < (m_arrangementUi.currentActionsListWidget->count() - 1)) { QListWidgetItem *currentItem = m_arrangementUi.currentActionsListWidget->takeItem(currentRow); m_arrangementUi.currentActionsListWidget->insertItem((currentRow + 1), currentItem); m_arrangementUi.currentActionsListWidget->setCurrentItem(currentItem); } } void Configuration::addLauncher() { KFileDialog dialog(KUrl("~"), "", NULL); dialog.setWindowModality(Qt::NonModal); dialog.setMode(KFile::File | KFile::Directory); dialog.setOperationMode(KFileDialog::Opening); dialog.exec(); if (!dialog.selectedUrl().isEmpty()) { Launcher* launcher = new Launcher(dialog.selectedUrl(), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } } void Configuration::addLauncher(const QString &url) { if (!url.isEmpty()) { for (int i = 0; i < m_arrangementUi.currentActionsListWidget->count(); ++i) { if (m_arrangementUi.currentActionsListWidget->item(i)->toolTip() == url) { KMessageBox::sorry(static_cast(parent()), i18n("Launcher with this URL was already added.")); return; } } Launcher* launcher = new Launcher(KUrl(url), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } } void Configuration::addMenu(QAction *action) { if (!action->data().isNull()) { Launcher* launcher = new Launcher(KUrl("menu:" + action->data().toString()), m_applet); QListWidgetItem *item = new QListWidgetItem(launcher->icon(), launcher->title(), m_arrangementUi.currentActionsListWidget); item->setToolTip(launcher->launcherUrl().pathOrUrl()); m_arrangementUi.currentActionsListWidget->insertItem((m_arrangementUi.currentActionsListWidget->currentRow() + 1), item); delete launcher; } } void Configuration::setServiceMenu() { KMenu *menu = qobject_cast(sender()); if (menu->actions().count() > 1) { return; } KServiceGroup::Ptr rootGroup = KServiceGroup::group(menu->actions()[0]->data().toString()); if (!rootGroup || !rootGroup->isValid() || rootGroup->noDisplay()) { return; } KServiceGroup::List list = rootGroup->entries(true, true, true, true); QAction *action = menu->addAction(KIcon("list-add"), i18n("Add This Menu")); action->setData(rootGroup->relPath()); menu->addSeparator(); for (int i = 0; i < list.count(); ++i) { if (list.at(i)->isType(KST_KService)) { const KService::Ptr service = KService::Ptr::staticCast(list.at(i)); action = menu->addAction(KIcon(service->icon()), service->name()); action->setEnabled(false); } else if (list.at(i)->isType(KST_KServiceGroup)) { const KServiceGroup::Ptr group = KServiceGroup::Ptr::staticCast(list.at(i)); if (group->noDisplay() || group->childCount() == 0) { continue; } KMenu *subMenu = new KMenu(menu); QAction *action = subMenu->addAction(QString()); action->setData(group->relPath()); action->setVisible(false); action = menu->addAction(KIcon(group->icon()), group->caption()); action->setMenu(subMenu); connect(subMenu, SIGNAL(aboutToShow()), this, SLOT(setServiceMenu())); } else if (list.at(i)->isType(KST_KServiceSeparator)) { menu->addSeparator(); } } } void Configuration::findApplication(const QString &query) { for (int i = (m_findApplicationUi.resultsLayout->count() - 1); i >= 0; --i) { m_findApplicationUi.resultsLayout->takeAt(i)->widget()->deleteLater(); m_findApplicationUi.resultsLayout->removeItem(m_findApplicationUi.resultsLayout->itemAt(i)); } if (query.length() < 3) { m_findApplicationDialog->adjustSize(); return; } KService::List services = KServiceTypeTrader::self()->query("Application", QString("exist Exec and ( (exist Keywords and '%1' ~subin Keywords) or (exist GenericName and '%1' ~~ GenericName) or (exist Name and '%1' ~~ Name) )").arg(query)); if (!services.isEmpty()) { foreach (const KService::Ptr &service, services) { if (!service->noDisplay() && service->property("NotShowIn", QVariant::String) != "KDE") { Launcher* launcher = new Launcher(KUrl(service->entryPath()), m_applet); QWidget* entryWidget = new QWidget(static_cast(parent())); QLabel* iconLabel = new QLabel(entryWidget); QLabel* textLabel = new QLabel(QString("%1
%3").arg(launcher->title()).arg(launcher->description()), entryWidget); iconLabel->setPixmap(launcher->icon().pixmap(32, 32)); textLabel->setFixedSize(240, 40); QHBoxLayout* entryWidgetLayout = new QHBoxLayout(entryWidget); entryWidgetLayout->addWidget(iconLabel); entryWidgetLayout->addWidget(textLabel); entryWidgetLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); entryWidget->setToolTip(QString("%1
%2").arg(launcher->title()).arg(launcher->description())); entryWidget->setLayout(entryWidgetLayout); entryWidget->setFixedSize(300, 40); entryWidget->setObjectName(service->entryPath()); entryWidget->installEventFilter(this); entryWidget->setCursor(QCursor(Qt::PointingHandCursor)); m_findApplicationUi.resultsLayout->addWidget(entryWidget); delete launcher; } } } m_findApplicationDialog->adjustSize(); } void Configuration::closeFindApplicationDialog() { findApplication(QString()); m_findApplicationUi.query->setText(QString()); } bool Configuration::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::MouseButtonPress) { addLauncher(object->objectName()); } return QObject::eventFilter(object, event); } } fancytasks_1.0.94/applet/FancyTasksApplet.cpp000644 001750 001750 00000153372 11436144324 017457 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #define PI 3.141592653 #include "config-fancytasks.h" #include "FancyTasksApplet.h" #include "FancyTasksConfiguration.h" #include "FancyTasksIcon.h" #include "FancyTasksTask.h" #include "FancyTasksLauncher.h" #include "FancyTasksJob.h" #include "FancyTasksSeparator.h" #include "FancyTasksDropZone.h" #include "FancyTasksMenu.h" #include #include #include #include #include #include #include #include #include #include #include #ifdef Q_WS_X11 #include #include #include #endif #ifdef FANCYTASKS_HAVE_COMPOSITING #include #include #include #endif K_EXPORT_PLASMA_APPLET(fancytasks, FancyTasks::Applet) namespace FancyTasks { WId Applet::m_activeWindow = 0; Applet::Applet(QObject *parent, const QVariantList &args) : Plasma::Applet(parent, args), m_groupManager(new TaskManager::GroupManager(this)), m_size(500, 100), m_dropZone(new DropZone(this)), m_animationTimeLine(new QTimeLine(100, this)), m_appletMaximumHeight(100), m_initialFactor(0), m_focusedItem(-1) { setObjectName("FancyTasksApplet"); KGlobal::locale()->insertCatalog("fancytasks"); setBackgroundHints(NoBackground); setHasConfigurationInterface(true); setAcceptDrops(true); setFlag(QGraphicsItem::ItemIsFocusable); m_animationTimeLine->setFrameRange(0, 100); m_animationTimeLine->setUpdateInterval(40); m_theme = new Plasma::FrameSvg(this); m_theme->setImagePath("widgets/fancytasks"); m_theme->setEnabledBorders(Plasma::FrameSvg::AllBorders); m_background = m_theme; m_layout = new QGraphicsLinearLayout; m_layout->setContentsMargins(2, 2, 2, 2); m_layout->setSpacing(0); setLayout(m_layout); resize(100, 100); } Applet::~Applet() { qDeleteAll(m_launcherTaskIcons); qDeleteAll(m_taskIcons); qDeleteAll(m_jobIcons); qDeleteAll(m_launchers); } void Applet::init() { KConfigGroup configuration = config(); configChanged(); if (!configuration.hasKey("arrangement")) { KConfig kickoffConfiguration("kickoffrc", KConfig::NoGlobals); KConfigGroup favoritesGroup(&kickoffConfiguration, "Favorites"); m_arrangement = favoritesGroup.readEntry("FavoriteURLs", QStringList()); if (m_arrangement.count()) { m_arrangement.append("separator"); } m_arrangement.append("tasks"); configuration.writeEntry("arrangement", m_arrangement); emit configNeedsSaving(); } if (!m_customBackgroundImage.isEmpty() && KUrl(m_customBackgroundImage).isValid()) { m_background = new Plasma::FrameSvg(this); m_background->setImagePath(m_customBackgroundImage); m_background->setEnabledBorders(Plasma::FrameSvg::AllBorders); } connect(this, SIGNAL(activate()), this, SLOT(showMenu())); connect(m_groupManager->rootGroup(), SIGNAL(itemAdded(AbstractGroupableItem*)), this, SLOT(addTask(AbstractGroupableItem*))); connect(m_groupManager->rootGroup(), SIGNAL(itemRemoved(AbstractGroupableItem*)), this, SLOT(removeTask(AbstractGroupableItem*))); connect(m_groupManager->rootGroup(), SIGNAL(itemPositionChanged(AbstractGroupableItem*)), this, SLOT(changeTaskPosition(AbstractGroupableItem*))); m_groupManager->reconnect(); QGraphicsWidget *leftMargin = new QGraphicsWidget(this); leftMargin->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); QGraphicsWidget *rightMargin = new QGraphicsWidget(this); rightMargin->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); m_layout->addItem(leftMargin); m_layout->addItem(rightMargin); m_layout->addItem(m_dropZone); int index = 1; for (int i = 0; i < m_arrangement.count(); ++i) { if (m_arrangement.at(i) == "separator") { if (i > 0 && !m_arrangement.at(i - 1).isEmpty()) { Separator *separator = new Separator(m_theme, this); separator->setSize(m_itemSize); insertItem(index, separator); ++index; } } else if (m_arrangement.at(i) != "tasks" && m_arrangement.at(i) != "jobs") { addLauncher(launcherForUrl(m_arrangement.at(i)), index); ++index; } } if (m_arrangement.contains("tasks") || m_showOnlyTasksWithLaunchers) { foreach (TaskManager::AbstractGroupableItem* abstractItem, m_groupManager->rootGroup()->members()) { addTask(abstractItem); } } if (m_arrangement.contains("jobs")) { const QStringList jobs = dataEngine("applicationjobs")->sources(); for (int i = 0; i < jobs.count(); ++i) { addJob(jobs.at(i)); } connect(dataEngine("applicationjobs"), SIGNAL(sourceAdded(const QString)), this, SLOT(addJob(const QString))); connect(dataEngine("applicationjobs"), SIGNAL(sourceRemoved(const QString)), this, SLOT(removeJob(const QString))); } constraintsEvent(Plasma::LocationConstraint); connect(m_animationTimeLine, SIGNAL(frameChanged(int)), this, SLOT(moveAnimation(int))); } void Applet::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) painter->fillRect(rect(), Qt::transparent); if (config().readEntry("paintBackground", true) && formFactor() != Plasma::Horizontal && formFactor() != Plasma::Vertical) { painter->setRenderHint(QPainter::Antialiasing); painter->setCompositionMode(QPainter::CompositionMode_Source); m_background->resizeFrame(boundingRect().size()); m_background->paintFrame(painter); } } void Applet::createConfigurationInterface(KConfigDialog *parent) { Configuration *configuration = new Configuration(this, parent); connect(configuration, SIGNAL(finished()), this, SLOT(updateConfiguration())); } void Applet::constraintsEvent(Plasma::Constraints constraints) { if (constraints & Plasma::LocationConstraint) { m_layout->setOrientation((location() == Plasma::LeftEdge || location() == Plasma::RightEdge)?Qt::Vertical:Qt::Horizontal); m_background->setElementPrefix(location()); updateSize(); emit locationChanged(); } setBackgroundHints(NoBackground); } void Applet::resizeEvent(QGraphicsSceneResizeEvent *event) { qreal height = 0; if (location() == Plasma::LeftEdge || location() == Plasma::RightEdge) { height = event->newSize().width(); } else { height = event->newSize().height(); if (location() != Plasma::TopEdge && location() != Plasma::BottomEdge) { setPos(QPointF((pos().x() + ((event->oldSize().width() - event->newSize().width()) / 2)), pos().y())); } } if (height < m_appletMaximumHeight || height > (m_appletMaximumHeight * 1.3)) { m_appletMaximumHeight = height; QTimer::singleShot(100, this, SLOT(updateSize())); } } void Applet::dragMoveEvent(QGraphicsSceneDragDropEvent *event) { if (immutability() == Plasma::Mutable && KUrl::List::canDecode(event->mimeData())) { int index = 0; if (location() == Plasma::LeftEdge || location() == Plasma::RightEdge) { if (event->pos().y() > (boundingRect().height() / 2)) { index = (m_layout->count() - 1); } } else if (event->pos().x() > (boundingRect().width() / 2)) { index = (m_layout->count() - 1); } if (m_dropZone->index() != index || !m_dropZone->isVisible()) { m_dropZone->show(index); } } } void Applet::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) { Q_UNUSED(event) QTimer::singleShot(500, m_dropZone, SLOT(hide())); } void Applet::dropEvent(QGraphicsSceneDragDropEvent *event) { if (!KUrl::List::canDecode(event->mimeData())) { event->ignore(); return; } KUrl::List droppedUrls = KUrl::List::fromMimeData(event->mimeData()); for (int i = 0; i < droppedUrls.count(); ++i) { new KRun(droppedUrls[i], NULL); } } void Applet::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) hoverLeft(); } void Applet::mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_UNUSED(event) if (!hasFocus()) { requestFocus(); } } void Applet::wheelEvent(QGraphicsSceneWheelEvent *event) { int steps = (event->delta() / 120); const bool next = ((steps >= 0)?true:false); steps = abs(steps); for (int i = 0; i < steps; ++i) { focusIcon(next, !(event->modifiers() & Qt::ControlModifier)); } event->accept(); } void Applet::focusInEvent(QFocusEvent *event) { Q_UNUSED(event) m_focusedItem = -1; int itemNumber = -1; for (int i = 0; i < m_visibleItems.count(); ++i) { if (m_visibleItems.at(i)->objectName() != "FancyTasksIcon") { continue; } Icon *icon = static_cast(m_visibleItems.at(i)); if (!m_visibleItems.at(i) || !m_visibleItems.at(i)->isVisible()) { continue; } if (icon && icon->task() && icon->task()->isActive()) { m_focusedItem = itemNumber; break; } ++itemNumber; } focusNextPrevChild(true); } void Applet::configChanged() { KConfigGroup configuration = config(); m_iconActions.clear(); QList actionIds; actionIds << ActivateItem << ActivateTask << ActivateLauncher << ShowMenu << ShowChildrenList << ShowWindows << CloseTask; QStringList actionOptions; actionOptions << "activateItem" << "activateTask" << "activateLauncher" << "showItemMenu" << "showItemChildrenList" << "showItemWindows" << "closeTask"; QStringList actionDefaults; actionDefaults << "left+" << QString('+') << "middle+" << QString('+') << QString('+') << "middle+shift" << "left+shift"; for (int i = 0; i < actionOptions.count(); ++i) { QStringList action = configuration.readEntry((actionOptions.at(i) + "Action"), actionDefaults.at(i)).split('+', QString::KeepEmptyParts); QPair actionPair; actionPair.first = Qt::NoButton; actionPair.second = Qt::UNICODE_ACCEL; if (action.count() > 0 && !action.at(0).isEmpty()) { if (action.at(0) == "left") { actionPair.first = Qt::LeftButton; } else if (action.at(0) == "middle") { actionPair.first = Qt::MidButton; } else if (action.at(0) == "right") { actionPair.first = Qt::RightButton; } if (action.count() > 1) { if (action.at(1) == "ctrl") { actionPair.second = Qt::CTRL; } else if (action.at(1) == "shift") { actionPair.second = Qt::SHIFT; } else if (action.at(1) == "alt") { actionPair.second = Qt::ALT; } } } m_iconActions[actionIds.at(i)] = actionPair; } m_jobCloseMode = static_cast(configuration.readEntry("jobCloseMode", static_cast(DelayedClose))); m_activeIconIndication = static_cast(configuration.readEntry("activeIconIndication", static_cast(FadeIndication))); m_moveAnimation = static_cast(configuration.readEntry("moveAnimation", static_cast(ZoomAnimation))); m_parabolicMoveAnimation = configuration.readEntry("parabolicMoveAnimation", true); m_demandsAttentionAnimation = static_cast(configuration.readEntry("demandsAttentionAnimation", static_cast(BlinkAnimation))); m_startupAnimation = static_cast(configuration.readEntry("startupAnimation", static_cast(BounceAnimation))); m_useThumbnails = configuration.readEntry("useThumbnails", false); m_titleLabelMode = static_cast(configuration.readEntry("titleLabelMode", static_cast(NoLabel))); m_customBackgroundImage = configuration.readEntry("customBackgroundImage", QString()); m_showOnlyCurrentDesktop = configuration.readEntry("showOnlyCurrentDesktop", false); m_showOnlyCurrentScreen = configuration.readEntry("showOnlyCurrentScreen", false); m_showOnlyMinimized = configuration.readEntry("showOnlyMinimized", false); m_showOnlyTasksWithLaunchers = configuration.readEntry("showOnlyTasksWithLaunchers", false); m_connectJobsWithTasks = configuration.readEntry("connectJobsWithTasks", false); m_groupJobs = configuration.readEntry("groupJobs", true); m_groupingStrategy = static_cast(configuration.readEntry("groupingStrategy", static_cast(TaskManager::GroupManager::NoGrouping))); m_sortingStrategy = static_cast(configuration.readEntry("sortingStrategy", static_cast(TaskManager::GroupManager::ManualSorting))); m_arrangement = configuration.readEntry("arrangement", QStringList("tasks")); m_initialFactor = ((m_moveAnimation == ZoomAnimation)?configuration.readEntry("initialZoomLevel", 0.7):((m_moveAnimation == JumpAnimation)?0.7:0)); m_paintReflections = configuration.readEntry("paintReflections", true); m_groupManager->setGroupingStrategy(m_groupingStrategy); m_groupManager->setSortingStrategy(m_sortingStrategy); m_groupManager->setShowOnlyCurrentDesktop(m_showOnlyCurrentDesktop); m_groupManager->setShowOnlyCurrentScreen(m_showOnlyCurrentScreen); m_groupManager->setShowOnlyMinimized(m_showOnlyMinimized); if (containment()) { m_groupManager->setScreen(containment()->screen()); } m_groupManager->reconnect(); } void Applet::updateConfiguration() { KConfigGroup configuration = config(); QStringList arrangement = configuration.readEntry("arrangement", QStringList("tasks")); QString customBackgroundImage = configuration.readEntry("customBackgroundImage", ""); TaskManager::GroupManager::TaskSortingStrategy sortingStrategy = static_cast(configuration.readEntry("sortingStrategy", static_cast(TaskManager::GroupManager::ManualSorting))); const bool showOnlyTasksWithLaunchers = configuration.readEntry("showOnlyTasksWithLaunchers", false); const bool addTasks = ((!m_arrangement.contains("tasks") && arrangement.contains("tasks")) || m_showOnlyTasksWithLaunchers != showOnlyTasksWithLaunchers); const bool addJobs = (!m_arrangement.contains("jobs") && arrangement.contains("jobs")); const bool disconnectlauncherTaskIcons = (m_sortingStrategy == TaskManager::GroupManager::NoSorting && sortingStrategy != m_sortingStrategy); if (!m_customBackgroundImage.isEmpty() && (customBackgroundImage.isEmpty() || !KUrl(customBackgroundImage).isValid())) { m_background = m_theme; update(); } else if (!customBackgroundImage.isEmpty() && KUrl(customBackgroundImage).isValid()) { if (m_background == m_theme) { m_background = new Plasma::FrameSvg(this); m_background->setEnabledBorders(Plasma::FrameSvg::AllBorders); } m_background->setImagePath(customBackgroundImage); update(); } if (arrangement != m_arrangement || m_showOnlyTasksWithLaunchers != showOnlyTasksWithLaunchers) { if ((m_arrangement.contains("tasks") && !arrangement.contains("tasks")) || showOnlyTasksWithLaunchers) { QHash >::iterator tasksIterator; for (tasksIterator = m_taskIcons.begin(); tasksIterator != m_taskIcons.end(); ++tasksIterator) { m_layout->removeItem(tasksIterator.value().data()); tasksIterator.value().data()->deleteLater(); } m_taskIcons.clear(); QHash >::iterator launcherTaskIconsIterator; for (launcherTaskIconsIterator = m_launcherTaskIcons.begin(); launcherTaskIconsIterator != m_launcherTaskIcons.end(); ++launcherTaskIconsIterator) { if (launcherTaskIconsIterator.value()) { launcherTaskIconsIterator.value()->setTask(NULL); } } m_launcherTaskIcons.clear(); } if (m_arrangement.contains("jobs") && !arrangement.contains("jobs")) { disconnect(dataEngine("applicationjobs"), SIGNAL(sourceAdded(const QString)), this, SLOT(addJob(const QString))); disconnect(dataEngine("applicationjobs"), SIGNAL(sourceRemoved(const QString)), this, SLOT(removeJob(const QString))); } m_arrangement = arrangement; for (int i = 0; i < m_layout->count(); ++i) { QObject *object = dynamic_cast(m_layout->itemAt(i)->graphicsItem()); if (object && (object->objectName() == "FancyTasksIcon" || object->objectName() == "FancyTasksSeparator")) { if (object->objectName() == "FancyTasksIcon") { QPointer icon = dynamic_cast(m_layout->itemAt(i)->graphicsItem()); if (icon && icon->itemType() != TypeLauncher) { continue; } m_launcherIcons.remove(icon->launcher()); } m_layout->removeItem(m_layout->itemAt(i)); delete object; --i; } } int index = 1; for (int i = 0; i < arrangement.count(); ++i) { if (arrangement.at(i) == "separator") { Separator *separator = new Separator(m_theme, this); separator->setSize(m_itemSize); insertItem((index + ((m_arrangement.contains("tasks") && i >= m_arrangement.indexOf("tasks"))?m_taskIcons.count():0) + ((m_arrangement.contains("jobs") && i >= m_arrangement.indexOf("jobs"))?m_jobs.count():0)), separator); ++index; } else if (arrangement.at(i) != "tasks" && arrangement.at(i) != "jobs") { addLauncher(launcherForUrl(arrangement.at(i)), index); ++index; } } if (addTasks) { foreach (TaskManager::AbstractGroupableItem *abstractItem, m_groupManager->rootGroup()->members()) { addTask(abstractItem); } } if (addJobs) { QStringList jobs = dataEngine("applicationjobs")->sources(); for (int i = 0; i < jobs.count(); ++i) { addJob(jobs.at(i)); } connect(dataEngine("applicationjobs"), SIGNAL(sourceAdded(const QString)), this, SLOT(addJob(const QString))); connect(dataEngine("applicationjobs"), SIGNAL(sourceRemoved(const QString)), this, SLOT(removeJob(const QString))); } } configChanged(); if (disconnectlauncherTaskIcons) { QList > launcherTaskIcons = m_launcherTaskIcons.values(); m_launcherTaskIcons.clear(); for (int i = 0; i < launcherTaskIcons.count(); ++i) { if (launcherTaskIcons.at(i) && launcherTaskIcons.at(i)->task()) { addTask(launcherTaskIcons.at(i)->task()->abstractItem()); launcherTaskIcons.at(i)->setTask(NULL); } } } updateSize(); emit configNeedsSaving(); } void Applet::insertItem(int index, QGraphicsLayoutItem *item) { if (index >= (m_layout->count() - 1)) { index = (m_layout->count() - 2); } if (index < 1) { index = 1; } m_layout->insertItem(index, item); } void Applet::addTask(AbstractGroupableItem *abstractItem) { if ((!m_arrangement.contains("tasks") && !m_showOnlyTasksWithLaunchers) || !abstractItem || m_groupManager->rootGroup()->members().indexOf(abstractItem) < 0) { return; } QPointer icon = NULL; TaskManager::TaskItem *task = NULL; TaskManager::TaskGroup *group = NULL; if (abstractItem->isGroupItem() && m_groupManager->groupingStrategy() != TaskManager::GroupManager::ManualGrouping) { group = static_cast(abstractItem); if (group->name().isEmpty()) { group->setName(static_cast(group->members().at(0))->task()->visibleName()); } } else if (!abstractItem->isGroupItem()) { task = static_cast(abstractItem); } QString title = (task?(task->task().isNull()?task->startup()->text():task->task()->visibleName()):(group?group->name():abstractItem->name())); if (m_groupManager->sortingStrategy() == TaskManager::GroupManager::NoSorting || m_showOnlyTasksWithLaunchers) { if (m_groupManager->groupingStrategy() == TaskManager::GroupManager::ProgramGrouping && task && !task->task().isNull()) { QHash >::iterator launcherTaskIconsIterator; for (launcherTaskIconsIterator = m_launcherTaskIcons.begin(); launcherTaskIconsIterator != m_launcherTaskIcons.end(); ++launcherTaskIconsIterator) { if (launcherTaskIconsIterator.value()->task() && launcherTaskIconsIterator.value()->task()->group() && launcherTaskIconsIterator.value()->task()->group()->members().indexOf(abstractItem)) { launcherTaskIconsIterator.value()->setTask(abstractItem); m_launcherTaskIcons[abstractItem] = launcherTaskIconsIterator.value(); m_launcherTaskIcons.remove(launcherTaskIconsIterator.key()); return; } } } QString className; WId window = ((!task || task->task().isNull())?0:task->task()->window()); if (window) { className = KWindowSystem::windowInfo(window, 0, NET::WM2WindowClass).windowClassName(); } QHash >::iterator launcherIconsIterator; for (launcherIconsIterator = m_launcherIcons.begin(); launcherIconsIterator != m_launcherIcons.end(); ++launcherIconsIterator) { if (!launcherIconsIterator.key()->isExecutable() || m_launcherTaskIcons.key(launcherIconsIterator.value(), NULL) || (launcherIconsIterator.value()->task() && m_groupManager->groupingStrategy() == TaskManager::GroupManager::NoGrouping)) { continue; } if ((!className.isEmpty() && (launcherIconsIterator.key()->title().contains(className, Qt::CaseInsensitive) || launcherIconsIterator.key()->executable().contains(className, Qt::CaseInsensitive))) || title.contains(launcherIconsIterator.key()->title(), Qt::CaseInsensitive) || launcherIconsIterator.key()->executable().contains(title, Qt::CaseInsensitive)) { if (group && launcherIconsIterator.value()->task()) { m_launcherTaskIcons.remove(launcherIconsIterator.value()->task()->abstractItem()); m_launcherTaskIcons[abstractItem] = launcherIconsIterator.value(); } else if (task && !launcherIconsIterator.value()->task()) { m_launcherTaskIcons[abstractItem] = launcherIconsIterator.value(); } launcherIconsIterator.value()->setTask(abstractItem); return; } } if (m_showOnlyTasksWithLaunchers) { return; } } if (!abstractItem->name().isEmpty()) { QHash::iterator removedStartupsIterator; for (removedStartupsIterator = m_removedStartups.begin(); removedStartupsIterator != m_removedStartups.end(); ++removedStartupsIterator) { if (title.contains(removedStartupsIterator.key()->title(), Qt::CaseInsensitive) && removedStartupsIterator.key()->itemType() == TypeStartup) { icon = removedStartupsIterator.key(); icon->setTask(abstractItem); m_removedStartups.erase(removedStartupsIterator); break; } } } if (!icon) { int index = (((m_groupManager->sortingStrategy() == TaskManager::GroupManager::NoSorting)?m_taskIcons.count():m_groupManager->rootGroup()->members().indexOf(abstractItem)) + m_arrangement.indexOf("tasks") + 1); icon = new Icon(abstractItem, launcherForTask(task), NULL, this); icon->setSize(m_itemSize); icon->setFactor(m_initialFactor); if (m_arrangement.contains("jobs") && m_arrangement.indexOf("tasks") > m_arrangement.indexOf("jobs")) { index += m_jobs.count(); } insertItem(index, icon); updateSize(); } m_taskIcons[abstractItem] = icon; } void Applet::removeTask(AbstractGroupableItem *abstractItem) { if (m_launcherTaskIcons.contains(abstractItem)) { if (m_launcherTaskIcons[abstractItem]) { m_launcherTaskIcons[abstractItem]->setTask(NULL); } m_launcherTaskIcons.remove(abstractItem); return; } if (!m_taskIcons.contains(abstractItem)) { return; } QPointer icon = m_taskIcons[abstractItem]; if (icon && icon->itemType() == TypeStartup) { m_removedStartups[icon] = QDateTime::currentDateTime(); QTimer::singleShot(2000, this, SLOT(cleanupRemovedStartups())); return; } m_taskIcons.remove(abstractItem); if (!icon) { return; } m_layout->removeItem(icon); icon->deleteLater(); } void Applet::changeTaskPosition(AbstractGroupableItem *abstractItem) { if (m_groupManager->sortingStrategy() == TaskManager::GroupManager::NoSorting || !m_arrangement.contains("tasks")) { return; } Icon *icon = m_taskIcons[abstractItem]; if (!icon || !icon->task() || !icon->task()->abstractItem()) { return; } int index = (m_groupManager->rootGroup()->members().indexOf(abstractItem) + m_arrangement.indexOf("tasks") + 1); m_layout->removeItem(icon); insertItem(index, icon); } void Applet::addLauncher(Launcher *launcher, int index) { if (!launcher || m_launcherIcons.contains(launcher)) { return; } if (m_arrangement.contains("tasks") && index >= m_arrangement.indexOf("tasks")) { index += m_taskIcons.count(); } if (m_arrangement.contains("jobs") && index >= m_arrangement.indexOf("jobs")) { index += m_jobs.count(); } Icon *icon = new Icon(NULL, launcher, NULL, this); icon->setSize(m_itemSize); icon->setFactor(m_initialFactor); m_launcherIcons[launcher] = icon; insertItem(index, icon); updateSize(); } void Applet::removeLauncher(Launcher *launcher) { if (!m_launcherIcons.contains(launcher)) { return; } if (launcher) { m_launchers.removeAll(launcher); } Icon *icon = m_launcherIcons[launcher]; m_launcherIcons.remove(launcher); if (!icon) { return; } m_layout->removeItem(icon); icon->deleteLater(); } void Applet::addJob(const QString &source) { if (!m_arrangement.contains("jobs") || m_jobs.contains(source)) { return; } Job *job = new Job(source, this); m_jobsQueue.enqueue(job); m_jobs[source] = job; QTimer::singleShot(1500, this, SLOT(showJob())); } void Applet::removeJob(const QString &source, bool force) { QPointer job = m_jobs[source]; if (!job) { m_jobIcons.remove(m_jobs[source]); m_jobs.remove(source); return; } if (!force && !dataEngine("applicationjobs")->sources().contains(source)) { job->setFinished(true); } if (job->closeOnFinish() || m_jobCloseMode == InstantClose) { if (m_jobCloseMode == DelayedClose && !force) { QTimer::singleShot(5000, job, SLOT(close())); } else if (job->state() != Job::Error) { force = true; } } if (!force) { return; } m_jobIcons.remove(m_jobs[source]); m_jobs.remove(source); if (!job) { return; } job->destroy(); } void Applet::showJob() { QPointer job = m_jobsQueue.dequeue(); if (!job) { return; } if (job->state() == Job::Finished) { job->close(); return; } QString className; if (m_jobCloseMode != ManualClose) { job->setCloseOnFinish(true); } if (m_connectJobsWithTasks) { QHash >::iterator tasksIterator; for (tasksIterator = m_taskIcons.begin(); tasksIterator != m_taskIcons.end(); ++tasksIterator) { if (!tasksIterator.value()) { continue; } if (tasksIterator.key()->isGroupItem() && m_groupManager->groupingStrategy() != TaskManager::GroupManager::ManualGrouping) { TaskManager::TaskGroup *group = static_cast(tasksIterator.key()); if (!group || !group->members().count()) { continue; } if (group->name().isEmpty()) { className = KWindowSystem::windowInfo(static_cast(group->members().at(0))->task()->window(), 0, NET::WM2WindowClass).windowClassName(); } } else if (!tasksIterator.key()->isGroupItem()) { className = KWindowSystem::windowInfo(static_cast(tasksIterator.key())->task()->window(), 0, NET::WM2WindowClass).windowClassName(); } if (job->application().contains(className, Qt::CaseInsensitive)) { tasksIterator.value()->addJob(job); return; } } } if (m_groupJobs) { QHash >::iterator jobsIterator; for (jobsIterator = m_jobIcons.begin(); jobsIterator != m_jobIcons.end(); ++jobsIterator) { if (!jobsIterator.value()) { continue; } if (job->application() == jobsIterator.key()->application()) { jobsIterator.value()->addJob(job); return; } } } Icon *icon = new Icon(NULL, NULL, job, this); icon->setSize(m_itemSize); icon->setFactor(m_initialFactor); int index = (m_arrangement.indexOf("jobs") + m_jobs.count() - 1); if (m_arrangement.contains("tasks") && m_arrangement.indexOf("jobs") > m_arrangement.indexOf("tasks")) { index += m_taskIcons.count(); } insertItem(index, icon); updateSize(); m_jobIcons[job] = icon; } void Applet::cleanupRemovedStartups() { QMutableHashIterator iterator(m_removedStartups); while (iterator.hasNext()) { iterator.next(); if (iterator.value().secsTo(QDateTime::currentDateTime()) > 1 && iterator.key()->itemType() == TypeStartup) { iterator.key()->deleteLater(); iterator.remove(); } } } void Applet::itemHoverMoved(QGraphicsWidget *item, qreal across) { m_activeItem = m_visibleItems.indexOf(item); m_across = across; moveAnimation(100); } void Applet::hoverLeft() { m_animationTimeLine->stop(); m_activeItem = -1; m_animationTimeLine->start(); } void Applet::moveAnimation(int progress) { qreal factor; qreal animationProgres = ((qreal) progress / 100); for (int i = 0; i < m_visibleItems.count(); ++i) { if (m_visibleItems.at(i)->objectName() != "FancyTasksIcon") { continue; } Icon *icon = static_cast(m_visibleItems.at(i)); if (!icon || !icon->isVisible()) { continue; } if (i == m_activeItem) { factor = 1; } else if (!m_parabolicMoveAnimation || m_activeItem < 0 || i < (m_activeItem - 3) || i > (m_activeItem + 3)) { factor = m_initialFactor; } else if (i < m_activeItem) { factor = (m_initialFactor + ((1 - m_initialFactor) * (cos(((i - m_activeItem - m_across + 1) / 3) * PI) + 1)) / 2); } else { factor = (m_initialFactor + ((1 - m_initialFactor) * (cos(((i - m_activeItem - m_across) / 3) * PI) + 1)) / 2); } if (icon->factor() != factor) { icon->setFactor(icon->factor() + ((factor - icon->factor()) * animationProgres)); } } } void Applet::needsVisualFocus() { m_lastAttentionDemand = QDateTime::currentDateTime(); emit activate(); } void Applet::focusIcon(bool next, bool activateWindow) { Icon *firstIcon = NULL; Icon *currentIcon = NULL; int currentItem = -1; bool found = false; if (next) { m_focusedItem = ((m_focusedItem < 0)?0:(m_focusedItem + 1)); } else { --m_focusedItem; if (m_focusedItem < 0) { m_focusedItem = m_layout->count(); } } for (int i = 0; i < m_visibleItems.count(); ++i) { if (m_visibleItems.at(i)->objectName() == "FancyTasksIcon") { currentIcon = static_cast(m_visibleItems.at(i)); if (!currentIcon || !currentIcon->isVisible()) { continue; } if (!firstIcon) { firstIcon = currentIcon; } ++currentItem; if (currentItem == m_focusedItem) { found = true; break; } } } if (!found) { if (next) { currentItem = 0; if (firstIcon) { currentIcon = firstIcon; found = true; } } else if (currentIcon) { found = true; } } m_focusedItem = currentItem; if (found && currentIcon) { currentIcon->setFocus(); if (activateWindow && currentIcon->task()) { currentIcon->task()->activateWindow(); } } } void Applet::showMenu() { KMenu* menu = contextMenu(); if (menu->actions().count()) { menu->exec(QCursor::pos()); } delete menu; } void Applet::showDropZone(int index) { if (m_dropZone->index() != index) { m_layout->removeItem(m_dropZone); m_layout->insertItem(index, m_dropZone); m_dropZone->show(index); } } void Applet::hideDropZone() { if (!m_dropZone->isUnderMouse()) { m_dropZone->hide(true); m_layout->removeItem(m_dropZone); m_layout->insertItem((m_layout->count() - 1), m_dropZone); } } void Applet::updateSize() { QList items; QPointer lastSeparator = NULL; QSize size; int separatorsGap = -1; int iconNumber = 0; m_itemSize = m_appletMaximumHeight; if (location() == Plasma::Floating || (containment() && containment()->objectName() == "FancyPanel")) { m_appletMaximumWidth = (m_background->marginSize(Plasma::LeftMargin) + m_background->marginSize(Plasma::RightMargin)); } else { m_appletMaximumWidth = 0; } for (int i = 0; i < m_layout->count(); ++i) { QObject *object = dynamic_cast(m_layout->itemAt(i)); if (!object) { continue; } if (object->objectName() == "FancyTasksDropZone") { if (m_dropZone->isVisible()) { m_appletMaximumWidth += (m_itemSize / 2); } continue; } if (object->objectName() == "FancyTasksSeparator") { Separator *separator = dynamic_cast(m_layout->itemAt(i)->graphicsItem()); if (!separator) { continue; } items.append(separator); lastSeparator = separator; if (separatorsGap == 0) { if (separator->isVisible()) { separator->hide(); } } else { if (!separator->isVisible()) { separator->show(); } m_appletMaximumWidth += (m_itemSize / 4); separatorsGap = 0; } continue; } if (object->objectName() == "FancyTasksIcon") { Icon *icon = static_cast(m_layout->itemAt(i)->graphicsItem()); if (!icon || !icon->isVisible()) { continue; } items.append(icon); if (separatorsGap >= 0) { ++separatorsGap; } if (m_moveAnimation != JumpAnimation && (m_moveAnimation != ZoomAnimation || (!m_parabolicMoveAnimation && iconNumber == 0) || (m_parabolicMoveAnimation && iconNumber < 6))) { m_appletMaximumWidth += m_itemSize; } else { m_appletMaximumWidth += (m_initialFactor * m_itemSize); } ++iconNumber; } } if (!separatorsGap && lastSeparator && lastSeparator->isVisible()) { lastSeparator->hide(); } m_visibleItems = items; m_appletMaximumWidth *= 0.9; if (location() == Plasma::LeftEdge || location() == Plasma::RightEdge) { size = QSize(m_appletMaximumHeight, m_appletMaximumWidth); setPreferredHeight(m_appletMaximumWidth); setMinimumHeight(m_appletMaximumWidth); } else { size = QSize(m_appletMaximumWidth, m_appletMaximumHeight); setPreferredWidth(m_appletMaximumWidth); setMinimumWidth(m_appletMaximumWidth); } if (size == m_size) { return; } m_size = size; m_lightPixmap = QPixmap(m_theme->elementSize("task")); m_lightPixmap.fill(Qt::transparent); QPainter pixmapPainter(&m_lightPixmap); pixmapPainter.setRenderHints(QPainter::SmoothPixmapTransform); m_theme->paint(&pixmapPainter, m_lightPixmap.rect(), "task"); pixmapPainter.end(); if (location() != Plasma::Floating) { emit sizeHintChanged(Qt::PreferredSize); emit sizeHintChanged(Qt::MinimumSize); } resize(size); update(); emit sizeChanged(m_itemSize); } void Applet::urlChanged(const KUrl &oldUrl, KUrl &newUrl) { KConfigGroup configuration = config(); if (newUrl.url().isEmpty()) { if (m_arrangement.contains(oldUrl.url())) { m_arrangement.removeAll(oldUrl.url()); removeLauncher(launcherForUrl(oldUrl)); } } else if (oldUrl.url().isEmpty()) { if (!m_arrangement.contains(newUrl.url())) { m_arrangement.append(newUrl.url()); addLauncher(launcherForUrl(newUrl), 0); } } else if (m_arrangement.contains(oldUrl.url())) { m_arrangement.replace(m_arrangement.indexOf(oldUrl.url()), newUrl.url()); for (int i = 0; i < m_launchers.count(); ++i) { if (m_launchers.at(i)->launcherUrl() == oldUrl) { m_launchers.at(i)->setUrl(newUrl); break; } } } configuration.writeEntry("arrangement", m_arrangement); emit configNeedsSaving(); } void Applet::itemDropped(Icon *icon, int index) { if (!icon) { return; } if ((icon->itemType() == TypeTask || icon->itemType() == TypeGroup) && icon->task() && icon->task()->abstractItem()) { index -= (m_arrangement.indexOf("tasks") + 1); if (index < 0) { index = 0; } m_groupManager->manualSortingRequest(icon->task()->abstractItem(), index); return; } if (immutability() != Plasma::Mutable) { return; } KConfigGroup configuration = config(); QStringList arrangement; if (m_arrangement.contains("tasks") && index >= m_arrangement.indexOf("tasks") && index <= (m_arrangement.indexOf("tasks") + m_taskIcons.count())) { index = 1; } m_layout->removeItem(icon); insertItem(index, icon); for (int i = 0; i < m_layout->count(); ++i) { QString objectName = dynamic_cast(m_layout->itemAt(i)->graphicsItem())->objectName(); if (objectName == "FancyTasksIcon") { Icon *icon = static_cast(m_layout->itemAt(i)->graphicsItem()); if (icon && icon->itemType() == TypeLauncher) { arrangement.append(icon->launcher()->launcherUrl().pathOrUrl()); } else if (!arrangement.contains("tasks")) { arrangement.append("tasks"); } } else if (objectName == "FancyTasksSeparator") { arrangement.append("separator"); } } m_arrangement = arrangement; configuration.writeEntry("arrangement", m_arrangement); emit configNeedsSaving(); } void Applet::itemDragged(Icon *icon, const QPointF &position, const QMimeData *mimeData) { if (((mimeData->hasFormat("windowsystem/winid") || mimeData->hasFormat("windowsystem/multiple-winids")) && m_groupManager->sortingStrategy() == TaskManager::GroupManager::ManualSorting && icon && icon->task()) || (KUrl::List::canDecode(mimeData) && immutability() == Plasma::Mutable && !mimeData->hasFormat("windowsystem/winid") && !mimeData->hasFormat("windowsystem/multiple-winids"))) { int index = 0; for (int i = 0; i < m_layout->count(); ++i) { QObject *object = dynamic_cast(m_layout->itemAt(i)->graphicsItem()); if (!object || (object->objectName() != "FancyTasksIcon" && object->objectName() != "FancyTasksSeparator")) { continue; } if (object == icon) { break; } ++index; } if (location() == Plasma::LeftEdge || location() == Plasma::RightEdge) { if (position.y() > (icon->boundingRect().height() / 2)) { ++index; } } else if (position.x() > (icon->boundingRect().width() / 2)) { ++index; } showDropZone(index + 1); } } void Applet::requestFocus() { KWindowSystem::forceActiveWindow(window()); setFocus(); QTimer::singleShot(250, this, SLOT(setFocus())); } KMenu* Applet::contextMenu() { KMenu *menu = new KMenu; if (m_lastAttentionDemand.isValid() && m_lastAttentionDemand.secsTo(QDateTime::currentDateTime()) < 1) { return menu; } for (int i = 0; i < m_visibleItems.count(); ++i) { if (m_visibleItems.at(i)->objectName() == "FancyTasksSeparator") { if (m_visibleItems.at(i) && m_visibleItems.at(i)->isVisible()) { menu->addSeparator(); } continue; } if (m_visibleItems.at(i)->objectName() != "FancyTasksIcon") { continue; } Icon *icon = static_cast(m_visibleItems.at(i)); if (!m_visibleItems.at(i) || !m_visibleItems.at(i)->isVisible()) { continue; } QAction *action = menu->addAction(icon->icon(), icon->title()); QFont font = QFont(action->font()); if (icon->itemType() == TypeLauncher) { font.setItalic(true); } else if (icon->demandsAttention()) { font.setBold(true); } if (icon->itemType() == TypeGroup) { Menu *groupMenu = new Menu(icon->task()->windows()); action->setMenu(groupMenu); connect(menu, SIGNAL(destroyed()), groupMenu, SLOT(deleteLater())); } else if (icon->itemType() == TypeLauncher && icon->launcher()->isServiceGroup()) { KMenu *launcherMenu = icon->launcher()->serviceMenu(); action->setMenu(launcherMenu); connect(menu, SIGNAL(destroyed()), launcherMenu, SLOT(deleteLater())); } else if (icon->itemType() == TypeJob) { KMenu *jobMenu = icon->jobs().at(0)->contextMenu(); action->setMenu(jobMenu); connect(menu, SIGNAL(destroyed()), jobMenu, SLOT(deleteLater())); } else { connect(action, SIGNAL(triggered()), icon, SLOT(activate())); } action->setFont(font); } return menu; } Launcher* Applet::launcherForUrl(KUrl url) { Launcher *launcher = NULL; if (!url.isValid()) { return launcher; } for (int i = 0; i < m_launchers.count(); ++i) { if (m_launchers.at(i)->launcherUrl() == url) { launcher = m_launchers.at(i); break; } } if (!launcher) { launcher = new Launcher(url, this); m_launchers.append(launcher); } return launcher; } Launcher* Applet::launcherForTask(TaskManager::TaskItem *task) { if (!task || task->task().isNull()) { return (NULL); } QString className; WId window = task->task()->window(); if (window) { className = KWindowSystem::windowInfo(window, 0, NET::WM2WindowClass).windowClassName(); } for (int i = 0; i < m_launchers.count(); ++i) { if (!m_launchers.at(i)->isExecutable()) { continue; } if ((!className.isEmpty() && (m_launchers.at(i)->title().contains(className, Qt::CaseInsensitive) || m_launchers.at(i)->executable().contains(className, Qt::CaseInsensitive))) || task->name().contains(m_launchers.at(i)->title(), Qt::CaseInsensitive)) { return (m_launchers.at(i)); } } return (NULL); } Icon* Applet::iconForMimeData(const QMimeData *mimeData) { Icon *icon = NULL; if (!mimeData->hasFormat("windowsystem/winid") && !mimeData->hasFormat("windowsystem/multiple-winids")) { return icon; } QList sourceWindows; QByteArray data; WId window; if (mimeData->hasFormat("windowsystem/winid")) { data = mimeData->data("windowsystem/winid"); if (data.size() != sizeof(WId)) { return icon; } memcpy(&window, data.data(), sizeof(WId)); sourceWindows.append(window); } else { data = mimeData->data("windowsystem/multiple-winids"); if ((unsigned int) data.size() < (sizeof(int) + sizeof(WId))) { return icon; } int count = 0; memcpy(&count, data.data(), sizeof(int)); if (count < 1 || (unsigned int) data.size() < (sizeof(int) + (sizeof(WId) * count))) { return icon; } for (int i = 0; i < count; ++i) { memcpy(&window, (data.data() + sizeof(int) + (sizeof(WId) * i)), sizeof(WId)); sourceWindows.append(window); } } qSort(sourceWindows); QHash >::iterator iterator; for (iterator = m_taskIcons.begin(); iterator != m_taskIcons.end(); ++iterator) { if (!iterator.value() || (iterator.value()->itemType() != TypeTask && iterator.value()->itemType() != TypeGroup)) { continue; } QList targetWindows = iterator.value()->task()->windows(); qSort(targetWindows); if (sourceWindows == targetWindows) { return iterator.value(); } } return icon; } TaskManager::GroupManager* Applet::groupManager() { return m_groupManager; } Plasma::Svg* Applet::theme() { return m_theme; } QStringList Applet::arrangement() const { return m_arrangement; } TitleLabelMode Applet::titleLabelMode() const { return m_titleLabelMode; } ActiveIconIndication Applet::activeIconIndication() const { return m_activeIconIndication; } AnimationType Applet::moveAnimation() const { return m_moveAnimation; } AnimationType Applet::demandsAttentionAnimation() const { return m_demandsAttentionAnimation; } AnimationType Applet::startupAnimation() const { return m_startupAnimation; } QHash > Applet::iconActions() const { return m_iconActions; } QList Applet::contextualActions() { QList actions; QAction *action = new QAction(KIcon("system-run"), i18n("Entries"), this); action->setMenu(contextMenu()); actions.append(action); return actions; } QPixmap Applet::lightPixmap() { return m_lightPixmap; } WId Applet::window() const { if (scene()) { QGraphicsView *parentView = NULL; QGraphicsView *possibleParentView = NULL; foreach (QGraphicsView *view, scene()->views()) { if (view->sceneRect().intersects(sceneBoundingRect()) || view->sceneRect().contains(scenePos())) { if (view->isActiveWindow()) { parentView = view; break; } else { possibleParentView = view; } } } if (!parentView) { parentView = possibleParentView; } if (parentView) { return parentView->winId(); } } return 0; } qreal Applet::initialFactor() const { return m_initialFactor; } qreal Applet::itemSize() const { return m_itemSize; } bool Applet::focusNextPrevChild(bool next) { focusIcon(next); return true; } bool Applet::parabolicMoveAnimation() const { return m_parabolicMoveAnimation; } bool Applet::useThumbnails() const { return m_useThumbnails; } bool Applet::paintReflections() const { return m_paintReflections; } void Applet::setActiveWindow(WId window) { m_activeWindow = window; } WId Applet::activeWindow() { return m_activeWindow; } QPixmap Applet::windowPreview(WId window, int size) { QPixmap thumbnail; #ifdef FANCYTASKS_HAVE_COMPOSITING if (KWindowSystem::compositingActive()) { Display *display = QX11Info::display(); XWindowAttributes attributes; XCompositeRedirectWindow(display, window, CompositeRedirectAutomatic); XGetWindowAttributes(display, window, &attributes); XRenderPictFormat *format = XRenderFindVisualFormat(display, attributes.visual); if (format) { bool hasAlpha = (format->type == PictTypeDirect && format->direct.alphaMask); int x = attributes.x; int y = attributes.y; int width = attributes.width; int height = attributes.height; XRenderPictureAttributes pictureAttributes; pictureAttributes.subwindow_mode = IncludeInferiors; Picture picture = XRenderCreatePicture(display, window, format, CPSubwindowMode, &pictureAttributes); XserverRegion region = XFixesCreateRegionFromWindow(display, window, WindowRegionBounding); XFixesTranslateRegion(display, region, -x, -y); XFixesSetPictureClipRegion(display, picture, 0, 0, region); XFixesDestroyRegion(display, region); XShapeSelectInput(display, window, ShapeNotifyMask); thumbnail = QPixmap(width, height); thumbnail.fill(Qt::transparent); XRenderComposite(display, (hasAlpha?PictOpOver:PictOpSrc), picture, None, thumbnail.x11PictureHandle(), 0, 0, 0, 0, 0, 0, width, height); } } #endif if (thumbnail.isNull() && KWindowSystem::windowInfo(window, NET::XAWMState).mappingState() == NET::Visible) { thumbnail = QPixmap::grabWindow(QApplication::desktop()->winId()).copy(KWindowSystem::windowInfo(window, NET::WMGeometry | NET::WMFrameExtents).frameGeometry()); } if (!thumbnail.isNull()) { if (thumbnail.width() > thumbnail.height()) { thumbnail = thumbnail.scaledToWidth(size, Qt::SmoothTransformation); } else { thumbnail = thumbnail.scaledToHeight(size, Qt::SmoothTransformation); } } return thumbnail; } } #include "FancyTasksApplet.moc" fancytasks_1.0.94/applet/ui/000755 001750 001750 00000000000 11436144323 014140 5ustar00000000 000000 fancytasks_1.0.94/applet/ui/appearance.ui000644 001750 001750 00000011332 11436144324 016577 0ustar00000000 000000 appearance 0 0 371 336 300 0 Appearance Appearance Use thumbnails instead of icons Show title label: titleLabelMode Custom background image: customBackgroundImage Indication for active icon: activeIconIndication Animations Moving between icons: moveAnimation Tasks needing attention: demandsAttentionAnimation Parabolic Starting tasks: startupAnimation Qt::Vertical 20 0 KUrlRequester QFrame
kurlrequester.h
KComboBox QComboBox
kcombobox.h
fancytasks_1.0.94/applet/ui/findApplication.ui000644 001750 001750 00000004607 11436144323 017612 0ustar00000000 000000 findApplication 0 0 330 300 330 300 16777215 300 Find Application Search... true true 0 0 316 255 0 0 0 Qt::Vertical QSizePolicy::MinimumExpanding 0 0 KLineEdit QLineEdit
klineedit.h
fancytasks_1.0.94/applet/ui/actions.ui000644 001750 001750 00000004424 11436144323 016143 0ustar00000000 000000 actions 0 0 300 204 300 0 Actions QAbstractItemView::AllEditTriggers true QAbstractItemView::SingleSelection QAbstractItemView::SelectRows 2 150 true false false true 150 Action Activation Qt::Vertical QSizePolicy::Minimum 20 0 fancytasks_1.0.94/applet/ui/group.ui000644 001750 001750 00000005402 11436144323 015634 0ustar00000000 000000 group 0 0 309 130 Group settings 0 0 64 64 64 64 Group icon Group color: color Group name: name Qt::Vertical 20 40 KColorButton QPushButton
kcolorbutton.h
KIconButton QPushButton
kicondialog.h
KLineEdit QLineEdit
klineedit.h
fancytasks_1.0.94/applet/ui/arrangement.ui000644 001750 001750 00000007306 11436144323 017010 0ustar00000000 000000 arrangement 0 0 400 300 Arrangement Available actions: Current actions: Add launcher false false Qt::Horizontal QSizePolicy::Minimum 0 20 false false Qt::Vertical 20 40 Qt::Vertical 20 40 fancytasks_1.0.94/applet/ui/general.ui000644 001750 001750 00000010375 11436144323 016122 0ustar00000000 000000 general 0 0 386 406 300 0 General Grouping and sorting Grouping: groupingStrategy Sorting: sortingStrategy Filters Only show tasks from the current desktop Only show tasks from the current screen Only show tasks that are minimized Only show tasks that have launchers Jobs Close jobs: jobCloseMode Connect jobs with tasks Group similar jobs Qt::Vertical 20 0 KComboBox QComboBox
kcombobox.h
fancytasks_1.0.94/applet/plasma-applet-fancytasks.desktop000644 001750 001750 00000004453 11436144324 022031 0ustar00000000 000000 [Desktop Entry] Name=Fancy Tasks Name[da]=Fancy Tasks Name[en_GB]=Fancy Tasks Name[es]=Tareas elegantes Name[et]=Vahvad ülesanded Name[fr]=Fancy Tasks Name[hr]=Fensi zadaće Name[km]=ភារកិច្ចល្អ​ Name[nds]=Smuck Opgaven Name[pt]=Tarefas Bonitas Name[pt_BR]=Tarefas Bonitas Name[ro]=Sarcini extravagante Name[sv]=Snygga uppgifter Name[tr]=Zevkli Görevler Name[uk]=Красиві завдання Name[x-test]=xxFancy Tasksxx Comment=Plasmoid providing a fancy representation of your tasks and launchers. Comment[da]=Plasmoid som giver en flot repræsentation af dine opgaver og programstartere. Comment[en_GB]=Plasmoid providing a fancy representation of your tasks and launchers. Comment[es]=Plasmoide que representa de manera elaborada sus tareas y lanzadores Comment[et]=Sinu ülesandeid ja käivitajaid vahvalt esitav plasmoid. Comment[fr]=Plasmoïde fournissant une agréable représentation de vos tâches et lanceurs Comment[hr]=Plasmoid koji prikazuje ukrašene predstavnike Vaših zadaća i pokretača. Comment[km]=Plasmoid ផ្ដល់​នូវ​ការ​បង្ហាញ​ដ៏ល្អ​​នៃកិច្ចការ និង​កម្មវិធី​ចាប់ផ្ដើម​របស់​អ្នក ។ Comment[nds]=Plasma-Lüttprogramm, dat en smuck Weddergaav vun Dien Opgaven und Opropers praatstellt. Comment[pt]=Um plasmóide que oferece uma representação bonita das suas tarefas e lançadores. Comment[pt_BR]=Um plasmóide que oferece uma representação bonita das suas tarefas e lançadores. Comment[sv]=Plasmoid för snygg representation av uppgifter och startprogram. Comment[uk]=Плазмоїд для форматованого представлення ваших завдань і інструментів запуску. Comment[x-test]=xxPlasmoid providing a fancy representation of your tasks and launchers.xx Icon=view-pim-tasks Type=Service ServiceTypes=Plasma/Applet X-KDE-Library=plasma_applet_fancytasks X-KDE-PluginInfo-Author=Michał Dutkiewicz aka Emdek X-KDE-PluginInfo-Email=emdeck@gmail.com X-KDE-PluginInfo-Name=fancytasks X-KDE-PluginInfo-Version=1.0.94 X-KDE-PluginInfo-Website=http://emdek.cba.pl/ X-KDE-PluginInfo-Category=Windows and Tasks X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true fancytasks_1.0.94/applet/FancyTasksJob.h000644 001750 001750 00000005030 11436144324 016374 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSJOB_HEADER #define FANCYTASKSJOB_HEADER #include "FancyTasksApplet.h" #include #include #include #include namespace FancyTasks { class Applet; class Job : public QObject { Q_OBJECT public: enum JobState { Unknown = 0, Running, Suspended, Finished, Error }; Job(const QString &job, Applet *applet); JobState state() const; KMenu* contextMenu(); KIcon icon(); QString title() const; QString description() const; QString application() const; QString information() const; int percentage() const; bool closeOnFinish() const; public slots: void dataUpdated(const QString &name, const Plasma::DataEngine::Data &data); void setFinished(bool finished); void setCloseOnFinish(bool close); void suspend(); void resume(); void stop(); void close(); void destroy(); private: QPointer m_applet; QString m_job; QString m_title; QString m_description; QString m_information; QString m_application; QString m_iconName; JobState m_state; int m_percentage; bool m_closeOnFinish; bool m_killable; bool m_suspendable; signals: void changed(ItemChanges changes); void demandsAttention(); void close(Job*); }; } #endif fancytasks_1.0.94/applet/FancyTasksJob.cpp000644 001750 001750 00000014452 11436144324 016737 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid for fancy representing your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyTasksJob.h" namespace FancyTasks { Job::Job(const QString &job, Applet *applet) : QObject(applet), m_applet(applet), m_job(job), m_state(Unknown), m_percentage(-1), m_closeOnFinish(false) { m_applet->dataEngine("applicationjobs")->connectSource(m_job, this, 250, Plasma::NoAlignment); dataUpdated("", m_applet->dataEngine("applicationjobs")->query(m_job)); } void Job::dataUpdated(const QString &source, const Plasma::DataEngine::Data &data) { Q_UNUSED(source) ItemChanges changes = TextChanged; if (m_iconName.isEmpty()) { m_iconName = data["appIconName"].toString(); changes |= IconChanged; } m_title = data["infoMessage"].toString(); m_application = data["appName"].toString(); m_percentage = (data.contains("percentage")?data["percentage"].toInt():-1); m_suspendable = data["suspendable"].toBool(); m_killable = data["killable"].toBool(); QString state = data["state"].toString(); JobState previousState = m_state; if (!data["error"].toString().isEmpty()) { m_title = data["error"].toString(); if (m_state != Error) { emit demandsAttention(); } m_state = Error; } else if (state == "running" && m_percentage > 0) { m_state = Running; } else if (state == "suspended") { m_state = Suspended; } else if (state == "stopped") { m_state = Finished; } QString description; if (m_state == Running || m_state == Suspended || m_state == Unknown) { m_title = ((m_state == Suspended)?i18n("%1 [Paused]", m_title):m_title); if (data["eta"].toUInt() > 0) { description.append(i18n("%1 (%2 remaining) ", data["speed"].toString(), KGlobal::locale()->prettyFormatDuration(data["eta"].toUInt())) + "
"); } } else { setFinished(true); } m_description.clear(); m_description.append(description); int i = 0; while (data.contains(QString("label%1").arg(i))) { m_description.append(data[QString("labelName%1").arg(i)].toString() + ": " + data[QString("label%1").arg(i)].toString() + "
"); ++i; } m_description = m_description.left(m_description.size() - 4); m_information = QString("%1 %2").arg(m_percentage?QString("%1 %2%").arg(m_title).arg(m_percentage):m_title).arg(description); if (previousState != m_state) { changes |= StateChanged; } emit changed(changes); } void Job::setFinished(bool finished) { if (finished) { m_title = i18n("%1 [Finished]", m_title); m_information = QString("%1").arg(m_title); m_state = Finished; } emit demandsAttention(); } void Job::setCloseOnFinish(bool close) { m_closeOnFinish = close; } void Job::suspend() { Plasma::Service *service = m_applet->dataEngine("applicationjobs")->serviceForSource(m_job); service->startOperationCall(service->operationDescription("suspend")); } void Job::resume() { Plasma::Service *service = m_applet->dataEngine("applicationjobs")->serviceForSource(m_job); service->startOperationCall(service->operationDescription("resume")); } void Job::stop() { Plasma::Service *service = m_applet->dataEngine("applicationjobs")->serviceForSource(m_job); service->startOperationCall(service->operationDescription("stop")); } void Job::close() { m_applet->removeJob(m_job, true); } void Job::destroy() { emit close(this); deleteLater(); } KMenu* Job::contextMenu() { KMenu *menu = new KMenu; if (m_state == Finished || m_state == Error) { menu->addAction(KIcon("window-close"), i18n("Close Job"), this, SLOT(close())); } else { if (m_suspendable && m_state != Unknown) { if (m_state == Running) { menu->addAction(KIcon("media-playback-pause"), i18n("Pause Job"), this, SLOT(suspend())); } else { menu->addAction(KIcon("media-playback-start"), i18n("Resume Job"), this, SLOT(resume())); } } if (m_killable) { if (m_state != Unknown) { menu->addSeparator(); } menu->addAction(KIcon("media-playback-stop"), i18n("Cancel Job"), this, SLOT(stop()))->setEnabled(m_state != Finished && m_state != Error); } } menu->addSeparator(); QAction *closeOnFinishAction = menu->addAction(i18n("Close on Finish")); closeOnFinishAction->setCheckable(true); closeOnFinishAction->setChecked(m_closeOnFinish && m_state != Error); closeOnFinishAction->setEnabled(m_state != Finished && m_state != Error); connect(closeOnFinishAction, SIGNAL(toggled(bool)), this, SLOT(setCloseOnFinish(bool))); return menu; } Job::JobState Job::state() const { return m_state; } KIcon Job::icon() { return KIcon(m_iconName); } QString Job::title() const { return m_title; } QString Job::description() const { return m_description; } QString Job::information() const { return m_information; } QString Job::application() const { return m_application; } int Job::percentage() const { return m_percentage; } bool Job::closeOnFinish() const { return m_closeOnFinish; } } fancytasks_1.0.94/applet/po/000755 001750 001750 00000000000 11436144323 014141 5ustar00000000 000000 fancytasks_1.0.94/applet/po/CMakeLists.txt000644 001750 001750 00000001532 11436144323 016702 0ustar00000000 000000 find_package(Gettext REQUIRED) if(NOT GETTEXT_MSGFMT_EXECUTABLE) message(FATAL_ERROR "Please install the msgfmt binary") endif(NOT GETTEXT_MSGFMT_EXECUTABLE) file(GLOB _po_files *.po) set(_gmoFiles) foreach(_current_PO_FILE ${_po_files}) get_filename_component(_lang ${_current_PO_FILE} NAME_WE) set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) add_custom_command(OUTPUT ${_gmoFile} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DEPENDS ${_current_PO_FILE} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES/ RENAME plasma_applet_fancytasks.mo) list(APPEND _gmoFiles ${_gmoFile}) endforeach(_current_PO_FILE) add_custom_target(pofiles ALL DEPENDS ${_gmoFiles}) fancytasks_1.0.94/applet/po/sv.po000644 001750 001750 00000036105 11436144323 015136 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Swedish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Stefan Asserhäll , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-10-28 19:45+0100\n" "Last-Translator: Stefan Asserhäll \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Ingen" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Poster" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Lägg till program..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Lägg till fil eller katalog..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Lägg till meny" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Sök program" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Gruppera inte" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manuellt" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Enligt programnamn" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Sortera inte" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabetiskt" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Enligt skrivbord" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Omedelbart" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Efter fördröjning" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Zooma" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Gå till" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Spotlight" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Glöd" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Tona" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Studsa" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Blinka" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Rotera" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Aldrig" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "När musen hålls över" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "För aktiv ikon" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Alltid" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Ingen indikering" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- åtskiljare ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- aktivitetsfält ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- jobbfält ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Startprogram" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Startprogram" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Startprogram" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Stäng jobb:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Allmänt" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Utseende" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Arrangemang" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animeringar" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Lägg till denna meny" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Avbryt" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "1 jobb" msgstr[1] "%1 jobb" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Paus]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (%2 återstår) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Klar]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Stäng jobb" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Gör paus i jobb" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Återuppta jobb" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Avbryt jobb" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Stäng vid avslutning" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Öppna" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Flytta hit\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Kopiera hit\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Länka hit\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" "Vill du verkligen tömma papperskorgen. Alla objekt kommer att tas bort." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Töm papperskorgen" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Flytta till papperskorgen" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Ett objekt" msgstr[1] "%1 objekt" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Tom" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Inställning av %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Menyeditor" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Meny" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Kör" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Bläddra" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "&Töm papperskorgen" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Redigera" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Startprogram" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Program" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Startar program..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "På alla skrivbord" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "På %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Program" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animeringar" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Använd miniatyrbilder istället för ikoner" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Visa rubrik:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Egen bakgrundsbild:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Indikering av aktiv ikon" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animeringar" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Förflyttning mellan ikoner:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Aktiviteter som behöver uppmärksamhet:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabolisk" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Startar aktiviteter:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Tillgängliga åtgärder:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Aktuella åtgärder:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Lägg till startprogram" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Sök..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Gruppering och sortering" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Gruppering:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sortering:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filter" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Visa bara aktiviteter på nuvarande skrivbord" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Visa bara aktiviteter från nuvarande skärm" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Visa bara aktiviteter som är minimerade" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Visa bara aktiviteter som är minimerade" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Jobb" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Stäng jobb:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Anslut jobb till aktiviteter" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Gruppera liknande jobb" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Gruppinställningar" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Gruppikon" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Gruppfärg:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Gruppnamn:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Gruppnamn:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Använd standardverktygstips" #~ msgid "Add this application" #~ msgstr "Lägg till detta program" fancytasks_1.0.94/applet/po/uk.po000644 001750 001750 00000046032 11436144323 015125 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Ukrainian # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Yuri Chornoivan , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-12-25 07:41+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Немає" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Записи" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Додати програму..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Додати файл або каталог..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Додати меню" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Знайти програму" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Не групувати" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Вручну" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "За назвою програми" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Не впорядковувати" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "За абеткою" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "За стільницею" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Негайно" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "З затримкою" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Масштаб" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Перехід" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Прожектор" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Заграва" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Згасання" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Відскакування" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Блимання" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Обертання" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Ніколи" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "При наведенні вказівника" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Для активної піктограми" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Завжди" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Без позначення" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- роздільник ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- область завдань ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- область завдань ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Інструмент запуску" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Інструмент запуску" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Інструмент запуску" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Закрити завдання:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Загальне" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Вигляд" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Компонування" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Анімація" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "Пункт запуску з цією адресою вже було додано." #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Додати це меню" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Скасувати" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "%1 задача" msgstr[1] "%1 задачі" msgstr[2] "%1 задач" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Призупинено]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (лишилося %2) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Завершено]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Закрити задачу" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Призупинити задачу" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Поновити задачу" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Скасувати задачу" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Закрити по завершенню" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Відкрити" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "П&ересунути сюди\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Копіювати сюди\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "С&творити тут посилання\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "Ви справді бажаєте спорожнити смітник? Весь його вміст буде втрачено." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Спорожнити смітник" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Смітник" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "%1 об’єкт" msgstr[1] "%1 об’єкти" msgstr[2] "%1 об’єктів" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Порожній" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Налаштувати віджет «%1»" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Редактор меню" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Меню" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Запустити" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Навігація" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "С&порожнити смітник" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Змінити" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Інструмент запуску" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Програма" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Запуск програми..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "На всіх стільницях" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "На %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Програма" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Анімація" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Використовувати мініатюри замість піктограм" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Показувати мітку з назвою:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Нетипове зображення тла:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Позначення для активної піктограми:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Анімація" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Пересування між піктограмами:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Завдання, що потребують уваги:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Параболічне" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Завдання, що запускаються:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Можливі дії:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Поточні дії:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Додати інструмент запуску" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Шукати..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Групування і впорядкування" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Групування:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Впорядкування:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Фільтри" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Показувати тільки завдання з поточної стільниці" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Показувати тільки завдання з поточного екрана" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Показувати лише мінімізовані завдання" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Показувати лише мінімізовані завдання" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Завдання" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Закрити завдання:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "З’єднати задачі з завданнями" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Групувати подібні задачі" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Параметри групи" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Піктограма групи" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Колір групи:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Назва групи:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Назва групи:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Використовувати типові підказки" #~ msgid "Add this application" #~ msgstr "Додати цю програму" #~ msgid "Highlight" #~ msgstr "Підсвічування" #~ msgid "Remove" #~ msgstr "Вилучити" #~ msgid "Only show launchers" #~ msgstr "Показувати лише інструменти запуску" #~ msgid "Draw reflections" #~ msgstr "Малювати віддзеркалення" #~ msgid "Pre-allocate space" #~ msgstr "Попереднє виділення простору" #~ msgid "Advanced" #~ msgstr "Додатково" #~ msgid "Delay of activation when dragging files:" #~ msgstr "Затримка активації під час перетягування файли:" #~ msgid "" #~ "Delay after which the window of a task will be raised to allow dragging " #~ "onto it." #~ msgstr "Затримка підняття вікна завдання для перетягування до нього." #~ msgid " ms" #~ msgstr " мс" #~ msgid "Preview size:" #~ msgstr "Розмір мініатюри вмісту:" #~ msgid "Size of the window and file previews in the tool-tip." #~ msgstr "Розмір вікна і мініатюр вмісту файлів у підказках." #~ msgid " px" #~ msgstr " пк" #~ msgid "Draw icon overlay on thumbnails" #~ msgstr "Накладати піктограму на мініатюри" #~ msgid "Draw applet background" #~ msgstr "Малювати тло аплетів" #~ msgid "This file must be compatible with Plasma themes." #~ msgstr "Цей файл має бути сумісним з темами Плазми." #~ msgid "Maximum icon size:" #~ msgstr "Максимальний розмір піктограм:" #~ msgid "" #~ "This size will be used if available, but if the containment is too small " #~ "it will shrink to fit in." #~ msgstr "" #~ "Цьому розміру надаватиметься перевага, але якщо контейнер буде замалим, " #~ "його буде зменшено." #~ msgid "" #~ "This label will only be shown when an icon is big enough to make it " #~ "readable." #~ msgstr "" #~ "Цю мітку буде показано, лише якщо піктограма буде досить великою, щоб " #~ "мітку можна було побачити." fancytasks_1.0.94/applet/po/tr.po000644 001750 001750 00000036174 11436144323 015141 0ustar00000000 000000 # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Serdar Soytetir , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-10-28 16:30+0200\n" "Last-Translator: Serdar Soytetir \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Hiçbiri" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Girdiler" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Uygulama Ekle..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Dosya veya Dizin Bul..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Menü Ekle" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Uygulama Bul" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Gruplandırma" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Elle" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Uygulama Adına Göre" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Sıralama" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabetik olarak" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Masaüstüne Göre" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Hemen" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Gecikmeden sonra" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Büyüt" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Atla" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "spot Işığı" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Parlama" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Soldur" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Kabarcık" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Parlat" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Döndür" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Asla" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Etkin simge için" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Her zaman" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Gösterge Yok" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- ayraç ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- görev alanı ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Başlatıcı" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Başlatıcı" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Başlatıcı" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Görevleri kapat:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Genel" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Görünüm" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Yerleşim" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Canlandırmalar" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Bu Menüyü Ekle" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "İptal" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "%1 görev" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Duraklatıldı]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (%2 kaldı) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Tamamlandı]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Görevi Kapat" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Görevi Duraklat" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Görevi Devam Ettir" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Görevi İptal Et" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Tamamlandığında Kapat" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Aç" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "Buraya &Taşı\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "Buraya &Kopyala\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "Buraya &Bağ Koy\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" "Çöp Kutusunu boşaltmak istediğinizden emin misiniz? Tüm ögeler silinecek." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Çöp Kutusunu Boşalt" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Çöpe Gönder" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "%1 öge" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Boşalt" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 Ayarları" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Menü Düzenleyici" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menü" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Çalıştır" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Gözat" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "Çöp Kutusunu &Boşalt" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Düzenle" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Başlatıcı" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Uygulama" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Uygulama başlatılıyor..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Tüm masaüstlerinde" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "%1 Üzerinde" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Uygulama" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Canlandırmalar" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Simgeler yerine küçük resimler göster" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Başlık etiketini göster:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Özel arkaplan resmi:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Canlandırmalar" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Görev dikkat istiyor:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabolik" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Görevler başlatılıyor:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Kullanılabilir eylemler:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Geçerli eylemler:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Başlatıcı ekle" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Ara..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Gruplama ve sıralama" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Gruplama:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sıralama:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtreler" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Sadece geçerli masaüstündeki görevleri göster" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Sadece geçerli ekrandaki görevleri göster" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Sadece küçültülmüş görevleri göster" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Sadece küçültülmüş görevleri göster" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Görevler" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Görevleri kapat:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Benzer görevleri grupla" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Grup ayarları" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Grup simgesi" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Grup rengi:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Grup ismi:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Grup ismi:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Öntanımlı ipuçlarını kullan" #~ msgid "Add this application" #~ msgstr "Bu uygulamayı ekle" #~ msgid "Highlight" #~ msgstr "Vurgulama" #~ msgid "Remove" #~ msgstr "Sil" #~ msgid "Only show launchers" #~ msgstr "Sadece başlatıcıları göster" #~ msgid "Draw reflections" #~ msgstr "Yansımaları göster" fancytasks_1.0.94/applet/po/nds.po000644 001750 001750 00000034527 11436144323 015300 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Low Saxon # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Manfred Wiese , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-05-28 07:18+0200\n" "Last-Translator: Manfred Wiese \n" "Language-Team: Low Saxon \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Keen" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "" #: FancyTasksConfiguration.cpp:53 #, fuzzy msgid "Add Application..." msgstr "Programm" #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "" #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 #, fuzzy msgid "Find Application" msgstr "Programm" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Nich tosamenkoppeln" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Vun Hand" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Na Programmnaam" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Nich sorteren" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabeetsch" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Na Schriefdisch" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Ansichtgrött" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Jump" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Lichtstrahler" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Naglöhen" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Dreihen" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Nienich" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "Bi't Anrögen mit de Muus" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Jümmers" #: FancyTasksConfiguration.cpp:129 #, fuzzy msgid "No indication" msgstr "Programm" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Starter" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Starter" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Starter" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Allmeen" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Utsehn" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Programm" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Afbreken" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "" msgstr[1] "" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "" #: FancyTasksJob.cpp:199 #, fuzzy msgid "Cancel Job" msgstr "Afbreken" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Opmaken" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "Hierhen &verschuven\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "Hierhen &koperen\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "Hierhen ver&linken\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "" msgstr[1] "" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 instellen" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Utföhren" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Dörkieken" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Bewerken" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Starter" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Programm" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Programm warrt start..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Op all Schriefdischen" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Op %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Programm" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Programm" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Titelnaam wiesen:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 #, fuzzy msgid "Add launcher" msgstr "Starter" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "" #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Tosamenkoppeln un sorteren" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Tosamenkoppeln:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sorteren:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Bloots Programmen vun den aktuellen Schriefdisch wiesen" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Bloots Programmen vun den aktuellen Schirm wiesen" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Bloots minimeert Programmen wiesen" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Bloots minimeert Programmen wiesen" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Koppelinstellen" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Koppelnaam:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Koppelnaam:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #, fuzzy #~| msgid "Application" #~ msgid "Add this application" #~ msgstr "Programm" #~ msgid "Highlight" #~ msgstr "Markeren" #~ msgid "Remove" #~ msgstr "Wegmaken" #~ msgid "Draw reflections" #~ msgstr "Torüchstrahlen wiesen" fancytasks_1.0.94/applet/po/Messages.sh000755 001750 001750 00000003542 11436144323 016253 0ustar00000000 000000 #!/bin/sh BASEDIR="../" # root of translatable sources PROJECT="plasma_applet_fancytasks" # project name BUGADDR="emdeck@gmail.com" # MSGID-Bugs WDIR=`pwd` # working dir add_list() { LIST=$1 if [ -z "$LIST" ] then echo ">>ERR<< add_list() - missing parameter LIST - exiting" return fi if [ -f "$LIST" ] then cat $LIST | while read ROW do echo "tr2i18n(\"${ROW}\")" >> ${WDIR}/rc.cpp done else echo ">>ERR<< add_list() - file $LIST does not exist." fi } echo "Preparing rc files" cd ${BASEDIR} # we use simple sorting to make sure the lines do not jump around too much from system to system find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | sort > ${WDIR}/rcfiles.list xargs --arg-file=${WDIR}/rcfiles.list extractrc > ${WDIR}/rc.cpp # additional string for KAboutData echo 'i18nc("NAME OF TRANSLATORS", "Your names");' >> ${WDIR}/rc.cpp echo 'i18nc("EMAIL OF TRANSLATORS", "Your emails");' >> ${WDIR}/rc.cpp cd ${WDIR} echo "Done preparing rc files" echo "Extracting messages" cd ${BASEDIR} # see above on sorting find . -name '*.cpp' -o -name '*.h' -o -name '*.c' | sort > ${WDIR}/infiles.list echo "rc.cpp" >> ${WDIR}/infiles.list cd ${WDIR} xgettext --from-code=UTF-8 -C -kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 \ -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \ --msgid-bugs-address="${BUGADDR}" \ --files-from=infiles.list -D ${BASEDIR} -D ${WDIR} -o ${PROJECT}.pot || { echo "error while calling xgettext. aborting."; exit 1; } echo "Done extracting messages" echo "Merging translations" catalogs=`find . -name '*.po'` for cat in $catalogs; do echo $cat msgmerge -o $cat.new $cat ${PROJECT}.pot mv $cat.new $cat done echo "Done merging translations" echo "Cleaning up" cd ${WDIR} rm rcfiles.list rm infiles.list rm rc.cpp echo "Done" fancytasks_1.0.94/applet/po/en_GB.po000644 001750 001750 00000040644 11436144323 015463 0ustar00000000 000000 # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Andrew Coles , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-12-28 17:47+0000\n" "Last-Translator: Andrew Coles \n" "Language-Team: British English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "None" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Entries" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Add Application..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Add File or Directory..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Add Menu" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Find Application" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Do Not Group" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manually" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "By Program Name" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Do Not Sort" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alphabetically" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "By Desktop" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Instantly" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "After delay" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Zoom" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Jump" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Spotlight" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Glow" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Fade" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Bounce" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Blink" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Rotate" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Never" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "On mouse-over" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "For active icon" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Always" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "No indication" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- separator ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- tasks area ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- jobs area ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Launcher" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Launcher" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Launcher" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Close jobs:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "General" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Appearance" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Arrangement" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animations" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "Launcher with this URL was already added." #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Add This Menu" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Cancel" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "1 job" msgstr[1] "%1 jobs" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Paused]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (%2 remaining) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Finished]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Close Job" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Pause Job" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Resume Job" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Cancel Job" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Close on Finish" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Open" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Move Here\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Copy Here\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Link Here\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "Do you really want to empty the wastebin? All items will be deleted." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Empty Wastebin" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Wastebin" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "One item" msgstr[1] "%1 items" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Empty" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 Settings" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Menu Editor" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menu" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Run" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Browse" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "&Empty Wastebin" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Edit" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Launcher" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Application" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Starting application..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "On all desktops" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "On %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Application" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animations" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Use thumbnails instead of icons" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Show title label:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Custom background image:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Indication for active icon:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animations" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Moving between icons:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Tasks needing attention:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabolic" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Starting tasks:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Available actions:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Current actions:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Add launcher" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Search..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Grouping and sorting" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Grouping:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sorting:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filters" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Only show tasks from the current desktop" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Only show tasks from the current screen" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Only show tasks that are minimised" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Only show tasks that are minimised" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Jobs" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Close jobs:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Connect jobs with tasks" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Group similar jobs" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Group settings" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Group icon" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Group colour:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Group name:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Group name:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Use default tool tips" #~ msgid "Add this application" #~ msgstr "Add this application" #~ msgid "Highlight" #~ msgstr "Highlight" #~ msgid "Remove" #~ msgstr "Remove" #~ msgid "Only show launchers" #~ msgstr "Only show launchers" #~ msgid "Draw reflections" #~ msgstr "Draw reflections" #~ msgid "Pre-allocate space" #~ msgstr "Pre-allocate space" #~ msgid "Advanced" #~ msgstr "Advanced" #~ msgid "Delay of activation when dragging files:" #~ msgstr "Delay of activation when dragging files:" #~ msgid "" #~ "Delay after which the window of a task will be raised to allow dragging " #~ "onto it." #~ msgstr "" #~ "Delay after which the window of a task will be raised to allow dragging " #~ "onto it." #~ msgid " ms" #~ msgstr " ms" #~ msgid "Preview size:" #~ msgstr "Preview size:" #~ msgid "Size of the window and file previews in the tool-tip." #~ msgstr "Size of the window and file previews in the tool-tip." #~ msgid " px" #~ msgstr " px" #~ msgid "Draw icon overlay on thumbnails" #~ msgstr "Draw icon overlay on thumbnails" #~ msgid "Draw applet background" #~ msgstr "Draw applet background" #~ msgid "This file must be compatible with Plasma themes." #~ msgstr "This file must be compatible with Plasma themes." #~ msgid "Maximum icon size:" #~ msgstr "Maximum icon size:" #~ msgid "" #~ "This size will be used if available, but if the containment is too small " #~ "it will shrink to fit in." #~ msgstr "" #~ "This size will be used if available, but if the containment is too small " #~ "it will shrink to fit in." #~ msgid "" #~ "This label will only be shown when an icon is big enough to make it " #~ "readable." #~ msgstr "" #~ "This label will only be shown when an icon is big enough to make it " #~ "readable." fancytasks_1.0.94/applet/po/pt.po000644 001750 001750 00000035704 11436144323 015135 0ustar00000000 000000 msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-09-10 15:31+0100\n" "Last-Translator: José Nuno Coelho Pires \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POFile-SpellExtra: ms\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Nenhum" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Elementos" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Adicionar uma Aplicação..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Adicionar um Ficheiro ou Pasta..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Adicionar um Menu" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Procurar uma Aplicação" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Não Agrupar" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manualmente" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Pelo Nome do Programa" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Não Ordenar" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabeticamente" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Por Ecrã" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Instantaneamente" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Ao fim de algum tempo" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Ampliação" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Salto" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Foco Luminoso" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Brilho" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Desvanecer" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Saltos" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Piscar" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Rodar" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Nunca" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "À passagem do rato" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Para o ícone activo" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Sempre" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Sem indicação" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- separador ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- área de tarefas ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- área de tarefas ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Lançador" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Lançador" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Lançador" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Fechar as tarefas:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Geral" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Aparência" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Disposição" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animações" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Adicionar Este Menu" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Cancelar" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "1 tarefa" msgstr[1] "%1 tarefas" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Pausa]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (faltam %2) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Terminada]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Fechar a Tarefa" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Pausar a Tarefa" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Prosseguir a Tarefa" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Cancelar a Tarefa" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Fechar ao Terminar" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Abrir" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Mover para Aqui\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Copiar para Aqui\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Criar uma Ligação Aqui\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "Deseja mesmo esvaziar o Lixo? Todos os itens serão removidos." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Esvaziar o Lixo" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Lixo" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Um item" msgstr[1] "%1 itens" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Vazio" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Configuração do %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Editor do Menu" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menu" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Executar" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Escolher" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "&Esvaziar o Lixo" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Editar" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Lançador" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Aplicação" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "A iniciar a aplicação..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Em todos os ecrãs" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Em %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Aplicação" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animações" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Usar miniaturas em vez de ícones" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Mostrar a legenda do título:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Imagem de fundo personalizada:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Indicação do ícone activo:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animações" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Movimento entre ícones:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Tarefas que necessitam de atenção:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabólico" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Tarefas a iniciar:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Acções disponíveis:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Acções actuais:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Adicionar um lançador" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Procurar..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Agrupamento e ordenação" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Agrupamento:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Ordenação:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtros" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Mostrar apenas as tarefas do ecrã actual" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Mostrar apenas as tarefas do ecrã actual" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Mostrar apenas as tarefas minimizadas" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Mostrar apenas as tarefas minimizadas" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Tarefas" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Fechar as tarefas:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Ligar as tarefas às acções" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Agrupar as tarefas semelhantes" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Configuração do grupo" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Ícone do grupo" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Cor do grupo:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Nome do grupo:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Nome do grupo:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Usar as dicas predefinidas" #~ msgid "Add this application" #~ msgstr "Adicionar esta aplicação" fancytasks_1.0.94/applet/po/de.po000644 001750 001750 00000034624 11436144323 015102 0ustar00000000 000000 msgid "" msgstr "" "Project-Id-Version: Fancy Tasks 0.4\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: \n" "Last-Translator: Jan Gerrit \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 #, fuzzy msgid "Right" msgstr "Hervorheben" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Nichts" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "" #: FancyTasksConfiguration.cpp:53 #, fuzzy msgid "Add Application..." msgstr "Animationen" #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "" #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 #, fuzzy msgid "Find Application" msgstr "Animationen" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Nicht gruppieren" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manuell" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Nach Programname" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Nicht sortieren" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alphabetisch" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Nach Arbeitsfläche" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Zoom" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Springen" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Anstrahlen" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Transparenz ändern" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Hüpfen" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Blinken" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Drehen" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Niemals" #: FancyTasksConfiguration.cpp:124 #, fuzzy msgid "On mouse-over" msgstr "Bei Mausberührung" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Immer" #: FancyTasksConfiguration.cpp:129 #, fuzzy msgid "No indication" msgstr "Animationen" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Animationen" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Animationen" #: FancyTasksConfiguration.cpp:194 msgid "Activate Launcher" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Erscheinungsbild" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animationen" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Zurück" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "" msgstr[1] "" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "" #: FancyTasksJob.cpp:199 #, fuzzy msgid "Cancel Job" msgstr "Zurück" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Öffnen" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "An diese Stelle &verschieben\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "An diese Stelle &kopieren\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "Hiermit ver&knüpfen\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "" msgstr[1] "" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 Einstellungen" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Bearbeiten" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "" #: FancyTasksTask.cpp:325 #, fuzzy msgid "Application" msgstr "Animationen" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Starte Anwendung..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Auf allen Arbeitsflächen" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Auf %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Animationen" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animationen" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 #, fuzzy msgid "Use thumbnails instead of icons" msgstr "Vorschaubilder anstatt Symbolen benutzen" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Zeige Fenstertitel:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animationen" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 #, fuzzy msgid "Moving between icons:" msgstr "Animation beim Symbolwechsel" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 #, fuzzy msgid "Tasks needing attention:" msgstr "Animation für Anwendungen, die Aufmerksamkeit brauchen:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Halbkreisförmig" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 #, fuzzy msgid "Starting tasks:" msgstr "Animation für startende Anwendungen:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "" #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Gruppieren:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sortieren:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filter" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Nur Fenster der momentanen Arbeitsfläche anzeigen" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Nur Fenster des momentanten Bildschirms anzeigen" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Nur minimierte Einträge anzeigen" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Nur minimierte Einträge anzeigen" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 #, fuzzy msgid "Group settings" msgstr "Gruppieren:" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 #, fuzzy msgid "Group icon" msgstr "Gruppieren:" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 #, fuzzy msgid "Group name:" msgstr "Gruppieren:" #: po/rc.cpp:112 rc.cpp:112 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Jan Gerrit" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "jangerrit@weiler-marker.com" #, fuzzy #~ msgid "Add this application" #~ msgstr "Animationen" #, fuzzy #~ msgid "Pre-allocate space" #~ msgstr "Platz für Größenveränderungen von den Symbolen vorbelegen" #~ msgid "Remove" #~ msgstr "Löschen" #, fuzzy #~ msgid "Draw reflections" #~ msgstr "Reflektionen benutzen" fancytasks_1.0.94/applet/po/et.po000644 001750 001750 00000036065 11436144323 015123 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Estonian # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Marek Laane , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-12-21 19:37+0200\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Puudub" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Kirjed" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Lisa rakendus..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Lisa fail või kataloog..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Lisa menüü" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Rakenduse otsimine" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Ei rühmitata" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Käsitsi" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Rakenduse nime järgi" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Ei sorteerita" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Tähestiku järgi" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Töölaua järgi" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Otsekohe" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Pärast viivitust" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Suurendus" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Hüppa" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Valgusvihk" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Helendus" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Hajumine" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Tagasipõrge" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Vilkumine" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Pööramine" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Mitte kunagi" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "Hiire all" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Aktiivse ikooni korral" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Alati" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Tähistuseta" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- eraldaja ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- ülesannete ala ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- tööde ala ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Käivitaja" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Käivitaja" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Käivitaja" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Suletud tööd:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Üldine" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Välimus" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Paigutus" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animatsioonid" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Lisa see menüü" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Loobu" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "1 töö" msgstr[1] "%1 tööd" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [paus]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (%2 jäänud) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [lõpetatud]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Sulge töö" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Peata töö" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Jätka tööd" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Katkesta töö" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Sulge lõpetamisel" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Ava" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "Lii&guta siia\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Kopeeri siia\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Lingi siia\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "Kas tõesti tühjendada prügikast? Kõik elemendid kustutatakse." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Tühjenda prügikast" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Prügikast" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Üks element" msgstr[1] "%1 elementi" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Tühi" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 seadistused" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Menüüredaktor" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menüü" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Käivita" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Sirvi" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "Tühj&enda prügikast" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Muuda" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Käivitaja" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Rakendus" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Rakenduse käivitamine..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Kõigil töölaudadel" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Töölaual %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Rakendus" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animatsioonid" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Pisipiltide kasutamine ikoonide asemel" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Pealkirja näitamine:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Kohandatud taustapilt:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Aktiivse ikooni tähistamine:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animatsioonid" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Ikoonide vahel liikumine:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Tähelepanu vajavad ülesanded:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Paraboolne" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Algusülesanded:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Saadaolevad toimingud:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Praegused toimingud:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Lisa käivitaja" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Otsi..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Rühmitamine ja sortimine" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Rühmitamine:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sorteerimine:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtrid" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Ainult aktiivse töölaua tegumite näitamine" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Ainult aktiivse ekraani tegumite näitamine" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Ainult minimeeritud tegumite näitamine" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Ainult minimeeritud tegumite näitamine" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Tööd" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Suletud tööd:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Tööde ühendamine ülesannetega" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Sarnaste tööde rühmitamine" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Rühma seadistused" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Rühma ikoon" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Rühma värv:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Rühma nimi:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Rühma nimi:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Vaikimisi kohtspikrite kasutamine" #~ msgid "Add this application" #~ msgstr "Lisa see rakendus" fancytasks_1.0.94/applet/po/km.po000644 001750 001750 00000041320 11436144323 015110 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Khmer # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Khoem Sokhem , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-06-22 16:16+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=1; plural=0;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "គ្មាន" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "" #: FancyTasksConfiguration.cpp:53 #, fuzzy msgid "Add Application..." msgstr "កម្មវិធី" #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "" #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 #, fuzzy msgid "Find Application" msgstr "កម្មវិធី" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "កុំ​ដាក់​ជា​ក្រុម" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "ដោយ​ដៃ" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "តាម​ឈ្មោះ​កម្មវិធី" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "កុំ​តម្រៀប" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "តាម​អក្ខរក្រម" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "តាម​ផ្ទៃតុ" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "ពង្រីក" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "លោត" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "ភ្លើង​បញ្ចាំង" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "ស្រមោល" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "ក្រុម" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "លោត​ភ្លឹបភ្លែត" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "បង្វិល" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "កុំ" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "ពេល​ដាក់កណ្ដុរ​លើ" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "ជា​និច្ច" #: FancyTasksConfiguration.cpp:129 #, fuzzy msgid "No indication" msgstr "កម្មវិធី" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "កម្មវិធី​ចាប់ផ្ដើម" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "កម្មវិធី​ចាប់ផ្ដើម" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "កម្មវិធី​ចាប់ផ្ដើម" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "ទូទៅ" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "រូបរាង" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "ចលនា" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "បោះបង់" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "" #: FancyTasksJob.cpp:199 #, fuzzy msgid "Cancel Job" msgstr "បោះបង់" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "បើក" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "ផ្លាស់ទី​នៅ​ទីនេះ\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "ចម្លង​​នៅ​ទីនេះ\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "បង្កើត​តំណ​នៅ​ទីនេះ\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "ការ​កំណត់ %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "រត់" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "រកមើល" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "កែសម្រួល" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "កម្មវិធី​ចាប់ផ្ដើម" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "កម្មវិធី" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "កំពុង​ចាប់ផ្ដើម​កម្មវិធី..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "នៅ​លើ​ផ្ទៃតុ​ទាំងអស់" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "នៅលើ %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "កម្មវិធី" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "ចលនា" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 #, fuzzy msgid "Use thumbnails instead of icons" msgstr "ប្រើ​រូបភាព​តូចៗ​ជំនួស​ឲ្យ​រូបតំណាង​នៅពេល​ដែល​អាច" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "បង្ហាញ​ស្លាក​ចំណង​ជើង ៖" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "ចលនា" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "ផ្លាស់ទី​រវាង​រូបតំណាង ៖" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "ភារកិច្ច​ត្រូវការ​ការ​យកចិត្តទុកដាក់ ៖" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabolic" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "ភារកិច្ច​ចាប់ផ្ដើម ៖" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 #, fuzzy msgid "Add launcher" msgstr "កម្មវិធី​ចាប់ផ្ដើម" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "" #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "ការ​ដាក់​ជា​ក្រុម និង​តម្រៀប" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "ការ​ដាក់​ជា​ក្រុម ៖" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "ការ​តម្រៀប ៖" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "តម្រង" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "បង្ហាញ​តែ​ភារកិច្ច​ពី​ផ្ទៃតុ​បច្ចុប្បន្ន​ប៉ុណ្ណោះ" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "បង្ហាញតែ​ភារកិច្ច​ពី​អេក្រង់​បច្ចុប្បន្ន​ប៉ុណ្ណោះ" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "បង្ហាញតែ​ភារកិច្ច​ដែល​ត្រូវ​បាន​បង្រួម​អប្បបរមា​ប៉ុណ្ណោះ" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "បង្ហាញតែ​ភារកិច្ច​ដែល​ត្រូវ​បាន​បង្រួម​អប្បបរមា​ប៉ុណ្ណោះ" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "ការ​កំណត់​ក្រុម" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "រូបតំណាង​ក្រុម" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "ពណ៌​ក្រុម ៖" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "ឈ្មោះក្រុម ៖" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "ឈ្មោះក្រុម ៖" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #, fuzzy #~| msgid "Application" #~ msgid "Add this application" #~ msgstr "កម្មវិធី" #~ msgid "Highlight" #~ msgstr "បន្លិច" #~ msgid "Remove" #~ msgstr "យកចេញ" #~ msgid "Only show launchers" #~ msgstr "បង្ហាញ​តែ​កម្មវិធី​ចាប់ផ្ដើម​ប៉ុណ្ណោះ" #~ msgid "Draw reflections" #~ msgstr "គូរ​ការ​ឆ្លុះ" #~ msgid "Pre-allocate space" #~ msgstr "បម្រុង​ទុក​ចន្លោះជា​មុន" fancytasks_1.0.94/applet/po/fr.po000644 001750 001750 00000036612 11436144323 015120 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Français # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Joëlle Cornavin , 2009. # Joëlle Cornavin , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-10-29 21:34+0100\n" "Last-Translator: Joëlle Cornavin \n" "Language-Team: Français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Aucun" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Éléments" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Ajouter une application..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Ajouter un fichier ou un dossier..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Ajouter un menu" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Chercher une application" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Ne pas grouper" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manuellement" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Par nom de programme" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Ne pas trier" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alphabétiquement" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Par bureau" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Instantanément" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Après un délai" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Zoom" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Aller directement" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Spotlight" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Brillant" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Fondu" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Rebond" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Clignotement" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Rotation" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Jamais" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "Au survol de la souris" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Pour l'icône active" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Toujours" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Pas d'indication" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- séparateur ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- zone des tâches ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- zone de travail ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Lanceur" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Lanceur" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Lanceur" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Fermer les tâches :" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Général" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Apparence" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Arrangement" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animations" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Ajouter ce menu" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Annuler" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "1 tâche" msgstr[1] "%1 tâches" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [En pause]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (%2 restant) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Terminé]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Fermer la tâche" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Mettre la tâche en pause" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Reprendre la tâche" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Annuler la tâche" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Fermer lorsque vous avez terminé" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Ouvrir" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Déplacer ici\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Copier ici\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Lier ici\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" "Voulez-vous vraiment vider la corbeille ? Tous les éléments seront supprimés." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Vider la corbeille" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Corbeille" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Un élément" msgstr[1] "%1 éléments" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Vider" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Configuration de %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Éditeur de menus" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menu" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Exécuter" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Parcourir" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "&Vider la poubelle automatique" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Modifier" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Lanceur" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Application" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Démarrage de l'application..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Sur tous les bureaux" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Sur %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Application" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animations" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Utiliser des miniatures plutôt que des icônes" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Afficher l'étiquette des titres :" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Personnaliser l'image de fond :" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Indication pour l'icône active :" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animations" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Déplacement entre icônes :" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Tâches nécessitant de l'attention :" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Parabolique" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Tâches de démarrage :" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Actions disponibles :" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Actions actuelles :" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Ajouter un lanceur" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Chercher..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Groupement et tri" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Groupement :" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Tri :" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtres" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Afficher uniquement les tâches depuis le bureau actuel" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Afficher uniquement les tâches depuis l'écran actuel" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Afficher uniquement les tâches minimisées" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Afficher uniquement les tâches minimisées" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Tâches" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Fermer les tâches :" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Connecter les travaux et les tâches" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Grouper les travaux similaires" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Configuration du groupe" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Icône du groupe" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Couleur du groupe :" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Nom du groupe :" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Nom du groupe :" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Utiliser les infobulles par défaut" #~ msgid "Add this application" #~ msgstr "Ajouter cette application" fancytasks_1.0.94/applet/po/pl.po000644 001750 001750 00000036153 11436144323 015124 0ustar00000000 000000 # , 2010. msgid "" msgstr "" "Project-Id-Version: Fancy Tasks 0.4\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2010-02-25 18:01+0100\n" "Last-Translator: Michał D. aka Emdek \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Polish\n" "X-Poedit-Country: POLAND\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "Przycisk myszy" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "Wyłączony" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "Lewy" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "Środkowy" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "Prawy" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "Klawisz modyfikujący" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Brak" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "Lewy przycisk myszy" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "Środkowy przycisk myszy" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "Prawy przycisk myszy" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "Modyfikator Ctrl" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "Modyfikator Shift" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "Modyfikator Alt" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Pozycje" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Dodaj aplikację..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Dodaj plik lub folder..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Dodaj menu" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Znajdź aplikację" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Nie grupuj" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Ręcznie" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Według nazwy programu" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Nie sortuj" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabetycznie" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Według pulpitu" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Natychmiast" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Z opóźnieniem" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Powiększenie" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Podskok" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Podświetlenie spodu" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "Jarzenie" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Blaknięcie" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Odbijanie się" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Mruganie" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Obracanie się" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Nigdy" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "Po najechaniu myszką" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Dla aktywnej ikony" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Zawsze" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Brak wyróżnienia" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- separator ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- strefa zadań ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- strefa prac ---" #: FancyTasksConfiguration.cpp:194 msgid "Activate Item" msgstr "Aktywuj element" #: FancyTasksConfiguration.cpp:194 msgid "Activate Task" msgstr "Aktywuj zadanie" #: FancyTasksConfiguration.cpp:194 msgid "Activate Launcher" msgstr "Aktywuj aktywator" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "Pokaż menu elementu" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "Pokaż listę dzieci elementu" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "Pokaż okna elementu" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "Zamknij zadanie" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Ogólne" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Wygląd" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Ułożenie" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 msgid "Actions" msgstr "Działania" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "Aktywator z takim URL został już dodany." #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Dodaj to menu" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Anuluj" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "%1 praca" msgstr[1] "%1 prace" msgstr[2] "%1 prac" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Zawieszona]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (pozostało %2)" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Zakończona]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Zamknij pracę" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Wstrzymaj pracę" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Wznów pracę" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Anuluj pracę" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Zamknij po zakończeniu" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Otwórz" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Przenieś tutaj\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Kopiuj tutaj\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Dowiąż tutaj\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "Czy opróżnić kosz? Zostaną z niego usunięte wszystkie elementy." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Opróżnij kosz" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Kosz" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Jeden element" msgstr[1] "%1 elementów" msgstr[2] "%1 elementów" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Pusty" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Ustawienia dla %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Edytor menu" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menu" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Uruchom" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Przeglądaj" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "Opróżnij kosz" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Edytuj" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Aktywator" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Aplikacja" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Startująca aplikacja..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "Na wszytskich pulpitach" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "Na %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 msgid "Action" msgstr "Działanie" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 msgid "Activation" msgstr "Aktywacja" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Używaj miniatur zamiast ikon" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Pokazuj tytuł:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Własny obrazek tła:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Wyróżnienie dla aktywnej ikony:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animacje" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Przechodzenie pomiędzy ikonami:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Zadania wymagające uwagi:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Paraboliczna" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Startujące zadania:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Dostępne działania:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Aktualne działania:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Dodaj aktywator" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Szukaj..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Grupowanie i sortowanie" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Grupowanie:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Sortowanie:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtry" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Pokaż tylko zadania z bieżącego pulpitu" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Pokaż tylko zadania z bieżącego ekranu" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Pokaż tylko zadania zminimalizowane" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 msgid "Only show tasks that have launchers" msgstr "Pokaż tylko zadania posiadające aktywatory" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Prace" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Zamykaj prace:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Łącz prace z zadaniami" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Grupuj podobne prace" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Ustawienia grupy" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Ikona grupy" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Kolor grupy:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Nazwa grupy:" #: po/rc.cpp:112 rc.cpp:112 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Michał Dutkiewicz" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "emdeck@gmail.com" fancytasks_1.0.94/applet/po/es.po000644 001750 001750 00000036040 11436144323 015113 0ustar00000000 000000 # translation of plasma_applet_fancytasks.po to Spanish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Eloy Cuadra , 2009. msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-12-14 10:21-0000\n" "Last-Translator: Cristina Yenyxe González García \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "Entradas" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "Añadir aplicación..." #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "Añadir archivo o carpeta..." #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "Añadir menú" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "Buscar aplicación" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "No agrupar" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Manualmente" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "Por nombre de programa" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "No ordenar" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "Alfabéticamente" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "Por escritorio" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "Instantáneamente" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "Después de un tiempo" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Nunca" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "Al pasar el ratón" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "Para el icono activo" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Siempre" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "Sin indicación" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "--- separador ---" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "--- área de tareas ---" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "--- área de trabajos ---" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Lanzador" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Lanzador" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Lanzador" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Close Task" msgstr "Cerrar trabajos:" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "General" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Apariencia" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "Colocación" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Animaciones" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "Añadir este menú" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Cancelar" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "%1 trabajo" msgstr[1] "%1 trabajos" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "%1 [Pausado]" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "%1 (quedan %2) " #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "%1 [Terminado]" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "Cerrar trabajo" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "Pausar trabajo" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "Retomar trabajo" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "Cancelar trabajo" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "Cerrar al terminar" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Abrir" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Mover aquí\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Copiar aquí\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" "¿Seguro que desea vaciar la papelera? Se eliminarán todos los elementos." #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "Vaciar la papelera" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "Papelera" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "Un elemento" msgstr[1] "%1 elementos" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "Vacía" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "Preferencias de %1" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "Editor de menú" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "Menú" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Ejecutar" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Explorar" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "&Vaciar papelera" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Editar" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Lanzador" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Aplicación" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Iniciando aplicación..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "En todos los escritorios" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "En %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Aplicación" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Animaciones" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "Usar miniaturas en lugar de iconos" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Mostrar etiqueta de título:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "Imagen de fondo personalizada:" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "Indicación de icono activo:" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Animaciones" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Tareas que requieren atención:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 #, fuzzy msgid "Parabolic" msgstr "Parabólica" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Iniciando tareas:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "Acciones disponibles:" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "Acciones actuales:" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "Añadir lanzador" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "Buscar..." #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Agrupación y orden" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Agrupación:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Orden:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Filtros" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Mostrar solo las tareas del escritorio actual" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Mostrar solo las tareas de la pantalla actual" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Mostrar solo las tareas minimizadas" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Mostrar solo las tareas minimizadas" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "Trabajos" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "Cerrar trabajos:" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "Conectar trabajos con tareas" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "Agrupar trabajos similares" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Preferencias de grupo" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Icono del grupo" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Color del grupo:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Nombre del grupo:" #: po/rc.cpp:112 rc.cpp:112 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Nombre del grupo:" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #~ msgid "Use default tool tips" #~ msgstr "Usar sugerencias por defecto:" #~ msgid "Add this application" #~ msgstr "Añadir esta aplicación" fancytasks_1.0.94/applet/po/ru.po000644 001750 001750 00000036705 11436144323 015142 0ustar00000000 000000 msgid "" msgstr "" "Project-Id-Version: plasma_applet_fancytasks\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: 2009-04-17 07:03+0400\n" "Last-Translator: Ritt K. \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 #, fuzzy msgid "Right" msgstr "Подсвечивание" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "Нет" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "" #: FancyTasksConfiguration.cpp:53 #, fuzzy msgid "Add Application..." msgstr "Приложение" #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "" #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 #, fuzzy msgid "Find Application" msgstr "Приложение" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "Не группировать" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "Вручную" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "По имени программы" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "Не сортировать" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "По алфавиту" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "По рабочим столам" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "Масштабирование" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "Прыжок" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "Вспышка" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "Затухание" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "Подпрыгивание" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "Мигание" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "Вращение" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "Никогда" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "При наведении" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "Всегда" #: FancyTasksConfiguration.cpp:129 #, fuzzy msgid "No indication" msgstr "Приложение" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Item" msgstr "Запуск" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Task" msgstr "Запуск" #: FancyTasksConfiguration.cpp:194 #, fuzzy msgid "Activate Launcher" msgstr "Запуск" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "Параметры" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "Внешний вид" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 #, fuzzy msgid "Actions" msgstr "Анимация" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "Отмена" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "" #: FancyTasksJob.cpp:199 #, fuzzy msgid "Cancel Job" msgstr "Отмена" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "Открыть" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "&Переместить сюда\t%1" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "&Копировать сюда\t%1" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "&Ссылка сюда\t%1" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "%1 настройки" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "Запуск" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "Просмотр" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "Правка" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "Запуск" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "Приложение" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "Запуск приложения..." #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "На всех рабочих столах" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "На %1" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 #, fuzzy msgid "Action" msgstr "Приложение" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 #, fuzzy msgid "Activation" msgstr "Анимация" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 #, fuzzy msgid "Use thumbnails instead of icons" msgstr "Использовать снимки окон вместо иконок, когда это возможно" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "Показывать заголовок:" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "Анимация" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "Перемещение над иконками:" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "Задачи, требующие внимания:" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "Параболическое" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "Запускающиеся задачи:" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 #, fuzzy msgid "Add launcher" msgstr "Запуск" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "" #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "Группировка и сортировка" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "Группировка:" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "Сортировка:" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "Фильтры" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "Показывать задачи только с текущего рабочего стола" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "Показывать задачи только с текущего экрана" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "Показывать только свёрнутые задачи" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 #, fuzzy msgid "Only show tasks that have launchers" msgstr "Показывать только свёрнутые задачи" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "Настройки группировки" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "Иконка группировки" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "Цвет группировки:" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "Название группировки:" #: po/rc.cpp:112 rc.cpp:112 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Константин Ритт" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "angry-kasyan@narod.ru" #, fuzzy #~ msgid "Add this application" #~ msgstr "Приложение" #, fuzzy #~ msgid "Pre-allocate space" #~ msgstr "Выделять пространство" #~ msgid "Remove" #~ msgstr "Удалить" #~ msgid "Only show launchers" #~ msgstr "Показывать только запускаемые" #~ msgid "Draw reflections" #~ msgstr "Рисовать отражения" fancytasks_1.0.94/applet/po/plasma_applet_fancytasks.pot000644 001750 001750 00000032237 11436144323 021744 0ustar00000000 000000 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2010-04-27 16:49+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: FancyTasksActionDelegate.cpp:122 msgid "Mouse Button" msgstr "" #: FancyTasksActionDelegate.cpp:123 msgid "Disabled" msgstr "" #: FancyTasksActionDelegate.cpp:124 msgid "Left" msgstr "" #: FancyTasksActionDelegate.cpp:125 msgid "Middle" msgstr "" #: FancyTasksActionDelegate.cpp:126 msgid "Right" msgstr "" #: FancyTasksActionDelegate.cpp:129 msgid "Modifier Key" msgstr "" #: FancyTasksActionDelegate.cpp:130 FancyTasksConfiguration.cpp:101 #: FancyTasksConfiguration.cpp:112 msgid "None" msgstr "" #: FancyTasksActionDelegate.cpp:160 msgid "Left mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:164 msgid "Middle mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:168 msgid "Right mouse button" msgstr "" #: FancyTasksActionDelegate.cpp:177 msgid "Ctrl modifier" msgstr "" #: FancyTasksActionDelegate.cpp:181 msgid "Shift modifier" msgstr "" #: FancyTasksActionDelegate.cpp:185 msgid "Alt modifier" msgstr "" #: FancyTasksApplet.cpp:1849 msgid "Entries" msgstr "" #: FancyTasksConfiguration.cpp:53 msgid "Add Application..." msgstr "" #: FancyTasksConfiguration.cpp:54 msgid "Add File or Directory..." msgstr "" #: FancyTasksConfiguration.cpp:55 msgid "Add Menu" msgstr "" #. i18n: file: ui/findApplication.ui:26 #. i18n: ectx: property (windowTitle), widget (QWidget, findApplication) #: FancyTasksConfiguration.cpp:71 po/rc.cpp:57 rc.cpp:57 msgid "Find Application" msgstr "" #: FancyTasksConfiguration.cpp:77 msgid "Do Not Group" msgstr "" #: FancyTasksConfiguration.cpp:78 FancyTasksConfiguration.cpp:83 #: FancyTasksConfiguration.cpp:97 msgid "Manually" msgstr "" #: FancyTasksConfiguration.cpp:79 msgid "By Program Name" msgstr "" #: FancyTasksConfiguration.cpp:82 msgid "Do Not Sort" msgstr "" #: FancyTasksConfiguration.cpp:84 msgid "Alphabetically" msgstr "" #: FancyTasksConfiguration.cpp:85 msgid "By Desktop" msgstr "" #: FancyTasksConfiguration.cpp:95 msgid "Instantly" msgstr "" #: FancyTasksConfiguration.cpp:96 msgid "After delay" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:130 msgid "Zoom" msgstr "" #: FancyTasksConfiguration.cpp:101 msgid "Jump" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 msgid "Spotlight" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:112 #: FancyTasksConfiguration.cpp:131 msgid "Glow" msgstr "" #: FancyTasksConfiguration.cpp:101 FancyTasksConfiguration.cpp:132 msgid "Fade" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Bounce" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Blink" msgstr "" #: FancyTasksConfiguration.cpp:112 msgid "Rotate" msgstr "" #: FancyTasksConfiguration.cpp:123 msgid "Never" msgstr "" #: FancyTasksConfiguration.cpp:124 msgid "On mouse-over" msgstr "" #: FancyTasksConfiguration.cpp:125 msgid "For active icon" msgstr "" #: FancyTasksConfiguration.cpp:126 msgid "Always" msgstr "" #: FancyTasksConfiguration.cpp:129 msgid "No indication" msgstr "" #: FancyTasksConfiguration.cpp:147 FancyTasksConfiguration.cpp:175 #: FancyTasksConfiguration.cpp:330 FancyTasksConfiguration.cpp:350 msgid "--- separator ---" msgstr "" #: FancyTasksConfiguration.cpp:153 FancyTasksConfiguration.cpp:167 #: FancyTasksConfiguration.cpp:253 msgid "--- tasks area ---" msgstr "" #: FancyTasksConfiguration.cpp:158 FancyTasksConfiguration.cpp:171 #: FancyTasksConfiguration.cpp:257 msgid "--- jobs area ---" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Activate Item" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Activate Task" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Activate Launcher" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Menu" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Children List" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Show Item Windows" msgstr "" #: FancyTasksConfiguration.cpp:194 msgid "Close Task" msgstr "" #. i18n: file: ui/general.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, general) #: FancyTasksConfiguration.cpp:220 po/rc.cpp:63 rc.cpp:63 msgid "General" msgstr "" #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #. i18n: file: ui/appearance.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, appearance) #. i18n: file: ui/appearance.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, appearanceGroupBox) #: FancyTasksConfiguration.cpp:221 po/rc.cpp:12 po/rc.cpp:15 rc.cpp:12 #: rc.cpp:15 msgid "Appearance" msgstr "" #. i18n: file: ui/arrangement.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, arrangement) #: FancyTasksConfiguration.cpp:222 po/rc.cpp:45 rc.cpp:45 msgid "Arrangement" msgstr "" #. i18n: file: ui/actions.ui:20 #. i18n: ectx: property (windowTitle), widget (QWidget, actions) #: FancyTasksConfiguration.cpp:223 po/rc.cpp:3 rc.cpp:3 msgid "Actions" msgstr "" #: FancyTasksConfiguration.cpp:417 msgid "Launcher with this URL was already added." msgstr "" #: FancyTasksConfiguration.cpp:467 msgid "Add This Menu" msgstr "" #: FancyTasksIcon.cpp:1545 FancyTasksLauncher.cpp:303 msgctxt "@action:inmenu" msgid "Cancel" msgstr "" #: FancyTasksIcon.cpp:1666 msgid "1 job" msgid_plural "%1 jobs" msgstr[0] "" msgstr[1] "" #: FancyTasksJob.cpp:88 msgid "%1 [Paused]" msgstr "" #: FancyTasksJob.cpp:92 msgid "%1 (%2 remaining) " msgstr "" #: FancyTasksJob.cpp:127 msgid "%1 [Finished]" msgstr "" #: FancyTasksJob.cpp:176 msgid "Close Job" msgstr "" #: FancyTasksJob.cpp:184 msgid "Pause Job" msgstr "" #: FancyTasksJob.cpp:188 msgid "Resume Job" msgstr "" #: FancyTasksJob.cpp:199 msgid "Cancel Job" msgstr "" #: FancyTasksJob.cpp:205 msgid "Close on Finish" msgstr "" #: FancyTasksLauncher.cpp:194 FancyTasksLauncher.cpp:472 msgid "Open" msgstr "" #: FancyTasksLauncher.cpp:298 msgctxt "@action:inmenu" msgid "&Move Here\t%1" msgstr "" #: FancyTasksLauncher.cpp:299 msgctxt "@action:inmenu" msgid "&Copy Here\t%1" msgstr "" #: FancyTasksLauncher.cpp:300 msgctxt "@action:inmenu" msgid "&Link Here\t%1" msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@info" msgid "Do you really want to empty the trash? All items will be deleted." msgstr "" #: FancyTasksLauncher.cpp:390 msgctxt "@action:button" msgid "Empty Trash" msgstr "" #: FancyTasksLauncher.cpp:402 msgid "Trash" msgstr "" #: FancyTasksLauncher.cpp:403 msgid "One item" msgid_plural "%1 items" msgstr[0] "" msgstr[1] "" #: FancyTasksLauncher.cpp:403 msgid "Empty" msgstr "" #: FancyTasksLauncher.cpp:416 FancyTasksTask.cpp:172 msgid "%1 Settings" msgstr "" #: FancyTasksLauncher.cpp:460 msgid "Menu Editor" msgstr "" #: FancyTasksLauncher.cpp:461 msgid "Menu" msgstr "" #: FancyTasksLauncher.cpp:466 msgid "Run" msgstr "" #: FancyTasksLauncher.cpp:477 msgid "Browse" msgstr "" #: FancyTasksLauncher.cpp:486 msgid "&Empty Trashcan" msgstr "" #: FancyTasksLauncher.cpp:490 msgid "Edit" msgstr "" #: FancyTasksLauncher.cpp:491 msgid "Launcher" msgstr "" #: FancyTasksTask.cpp:325 msgid "Application" msgstr "" #: FancyTasksTask.cpp:334 msgid "Starting application..." msgstr "" #: FancyTasksTask.cpp:334 msgid "On all desktops" msgstr "" #: FancyTasksTask.cpp:334 msgctxt "Which virtual desktop a window is currently on" msgid "On %1" msgstr "" #. i18n: file: ui/actions.ui:60 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:6 rc.cpp:6 msgid "Action" msgstr "" #. i18n: file: ui/actions.ui:65 #. i18n: ectx: property (text), widget (QTableWidget, actionsTableWidget) #: po/rc.cpp:9 rc.cpp:9 msgid "Activation" msgstr "" #. i18n: file: ui/appearance.ui:32 #. i18n: ectx: property (text), widget (QCheckBox, useThumbnails) #: po/rc.cpp:18 rc.cpp:18 msgid "Use thumbnails instead of icons" msgstr "" #. i18n: file: ui/appearance.ui:41 #. i18n: ectx: property (text), widget (QLabel, titleLabelModeLabel) #: po/rc.cpp:21 rc.cpp:21 msgid "Show title label:" msgstr "" #. i18n: file: ui/appearance.ui:54 #. i18n: ectx: property (text), widget (QLabel, customBackgroundPathLabel) #: po/rc.cpp:24 rc.cpp:24 msgid "Custom background image:" msgstr "" #. i18n: file: ui/appearance.ui:70 #. i18n: ectx: property (text), widget (QLabel, activeIconIndicationLabel) #: po/rc.cpp:27 rc.cpp:27 msgid "Indication for active icon:" msgstr "" #. i18n: file: ui/appearance.ui:85 #. i18n: ectx: property (title), widget (QGroupBox, animationsGoupBox) #: po/rc.cpp:30 rc.cpp:30 msgid "Animations" msgstr "" #. i18n: file: ui/appearance.ui:91 #. i18n: ectx: property (text), widget (QLabel, moveAnimationLabel) #: po/rc.cpp:33 rc.cpp:33 msgid "Moving between icons:" msgstr "" #. i18n: file: ui/appearance.ui:107 #. i18n: ectx: property (text), widget (QLabel, demandsAttentionAnimationLabel) #: po/rc.cpp:36 rc.cpp:36 msgid "Tasks needing attention:" msgstr "" #. i18n: file: ui/appearance.ui:117 #. i18n: ectx: property (text), widget (QCheckBox, parabolicMoveAnimation) #: po/rc.cpp:39 rc.cpp:39 msgid "Parabolic" msgstr "" #. i18n: file: ui/appearance.ui:124 #. i18n: ectx: property (text), widget (QLabel, startupAnimationLabel) #: po/rc.cpp:42 rc.cpp:42 msgid "Starting tasks:" msgstr "" #. i18n: file: ui/arrangement.ui:22 #. i18n: ectx: property (text), widget (QLabel, availableActionsLabel) #: po/rc.cpp:48 rc.cpp:48 msgid "Available actions:" msgstr "" #. i18n: file: ui/arrangement.ui:29 #. i18n: ectx: property (text), widget (QLabel, currentActionsLabel) #: po/rc.cpp:51 rc.cpp:51 msgid "Current actions:" msgstr "" #. i18n: file: ui/arrangement.ui:44 #. i18n: ectx: property (text), widget (QPushButton, addLauncherButton) #: po/rc.cpp:54 rc.cpp:54 msgid "Add launcher" msgstr "" #. i18n: file: ui/findApplication.ui:32 #. i18n: ectx: property (clickMessage), widget (KLineEdit, query) #: po/rc.cpp:60 rc.cpp:60 msgid "Search..." msgstr "" #. i18n: file: ui/general.ui:26 #. i18n: ectx: property (title), widget (QGroupBox, groupingAndSortingGroupBox) #: po/rc.cpp:66 rc.cpp:66 msgid "Grouping and sorting" msgstr "" #. i18n: file: ui/general.ui:32 #. i18n: ectx: property (text), widget (QLabel, groupingStrategyLabel) #: po/rc.cpp:69 rc.cpp:69 msgid "Grouping:" msgstr "" #. i18n: file: ui/general.ui:48 #. i18n: ectx: property (text), widget (QLabel, sortingStrategyLabel) #: po/rc.cpp:72 rc.cpp:72 msgid "Sorting:" msgstr "" #. i18n: file: ui/general.ui:61 #. i18n: ectx: property (title), widget (QGroupBox, filtersGroupBox) #: po/rc.cpp:75 rc.cpp:75 msgid "Filters" msgstr "" #. i18n: file: ui/general.ui:67 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentDesktop) #: po/rc.cpp:78 rc.cpp:78 msgid "Only show tasks from the current desktop" msgstr "" #. i18n: file: ui/general.ui:74 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyCurrentScreen) #: po/rc.cpp:81 rc.cpp:81 msgid "Only show tasks from the current screen" msgstr "" #. i18n: file: ui/general.ui:81 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyMinimized) #: po/rc.cpp:84 rc.cpp:84 msgid "Only show tasks that are minimized" msgstr "" #. i18n: file: ui/general.ui:88 #. i18n: ectx: property (text), widget (QCheckBox, showOnlyTasksWithLaunchers) #: po/rc.cpp:87 rc.cpp:87 msgid "Only show tasks that have launchers" msgstr "" #. i18n: file: ui/general.ui:98 #. i18n: ectx: property (title), widget (QGroupBox, jobsGroupBox) #: po/rc.cpp:90 rc.cpp:90 msgid "Jobs" msgstr "" #. i18n: file: ui/general.ui:106 #. i18n: ectx: property (text), widget (QLabel, jobCloseModeLabel) #: po/rc.cpp:93 rc.cpp:93 msgid "Close jobs:" msgstr "" #. i18n: file: ui/general.ui:121 #. i18n: ectx: property (text), widget (QCheckBox, connectJobsWithTasks) #: po/rc.cpp:96 rc.cpp:96 msgid "Connect jobs with tasks" msgstr "" #. i18n: file: ui/general.ui:128 #. i18n: ectx: property (text), widget (QCheckBox, groupJobs) #: po/rc.cpp:99 rc.cpp:99 msgid "Group similar jobs" msgstr "" #. i18n: file: ui/group.ui:14 #. i18n: ectx: property (windowTitle), widget (QWidget, group) #: po/rc.cpp:102 rc.cpp:102 msgid "Group settings" msgstr "" #. i18n: file: ui/group.ui:40 #. i18n: ectx: property (toolTip), widget (KIconButton, icon) #: po/rc.cpp:105 rc.cpp:105 msgid "Group icon" msgstr "" #. i18n: file: ui/group.ui:49 #. i18n: ectx: property (text), widget (QLabel, colorLabel) #: po/rc.cpp:108 rc.cpp:108 msgid "Group color:" msgstr "" #. i18n: file: ui/group.ui:65 #. i18n: ectx: property (text), widget (QLabel, nameLabel) #: po/rc.cpp:111 rc.cpp:111 msgid "Group name:" msgstr "" #: po/rc.cpp:112 rc.cpp:112 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:113 rc.cpp:113 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" fancytasks_1.0.94/applet/FancyTasksLauncher.h000644 001750 001750 00000005453 11436144324 017434 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYTASKSLAUNCHER_HEADER #define FANCYTASKSLAUNCHER_HEADER #include "FancyTasksApplet.h" #include #include #include #include #include #include #include namespace FancyTasks { class Applet; class Launcher : public QObject { Q_OBJECT public: Launcher(const KUrl &url, Applet *applet); ~Launcher(); void dropUrls(const KUrl::List &urls, Qt::KeyboardModifiers modifiers); void addItem(QObject *object); KMimeType::Ptr mimeType(); KMenu* contextMenu(); KMenu* serviceMenu(); KIcon icon(); KUrl launcherUrl() const; KUrl targetUrl() const; QString title() const; QString description() const; QString executable() const; int itemsAmount() const; bool isExecutable() const; bool isServiceGroup() const; public slots: void setUrl(const KUrl &url); void setBrowseMenu(); void setServiceMenu(); void activate(); void openUrl(QAction *action); void startMenuEditor(); void emptyTrash(); void updateTrash(); void removeItem(QObject *object); void showPropertiesDialog(); private: QPointer m_applet; KServiceGroup::Ptr m_serviceGroup; KMimeType::Ptr m_mimeType; KDirLister *m_trashLister; KUrl m_launcherUrl; KUrl m_targetUrl; KIcon m_icon; QString m_title; QString m_description; QString m_executable; QList m_items; bool m_isExecutable; bool m_isServiceGroup; signals: void changed(ItemChanges changes); void hide(); void show(); }; } #endif fancytasks_1.0.94/applet/theme/000755 001750 001750 00000000000 11436144324 014626 5ustar00000000 000000 fancytasks_1.0.94/applet/theme/fancytasks.svgz000644 001750 001750 00000065434 11436144324 017723 0ustar00000000 000000 H&zOSskLhgj֠ 7kЄ&!ʪʪcLcDHwG坍Sw?~d]ҧeW?S?\9ҨoY4ge-E)^=g\KK?||ŧrNMNvifMf<ɯ͓wmwמ/5ĬF0M lyڻ9>IuE Ϻ_[ZykNIUb~?)_~,?{f_lKgK: 3oVlzEI6?u(Xt~B _#ᯅϬ,?$,De'׋i/#B_П~*mO>H<}zr}v~_?mκF:yѯ_Rÿ#/|LlײKόR4&߷xEE6=)?([mi6M6\З_s?*K?1_WM?ÿ_?ߪ>(s}hʾ]N~c_JacF%0_lg%z9t6Z) "WRVwvGb9eO U!lh~2ggş$׏ OM?vF)vi~a[S?9sP܏eQvߩGs8)>ugr]7_|IC_HD*s;I1:`wψ`b$16k~֙O|ן Ӌ8MQȟ M7?l繿??AΫ+M`*]nU*z'v~40%Q6 A1ptQѬ5&YquXdZ7MbFϦh/7qg2&6o5!Ǣo ?zP#&+v\Y0Xpޜ9YzH6wDORC)ίa ˈrZai[zÃ3/ ] GWa ‹*)Dp^Ί}y %Y_dz*$^VVڮx$z/LxȸOrȫn"&3PD.+jq4&竂 4Cn]q.P/hiV瑿gkf;ONN;9qvU]{ډg!at| t+1ӸdVx ,ϦeIA<D|00&z'e>mV`5vuɐ$j\w!U}=ߙƞO&󝑏=Bݹ͍C^-プq8;vS\l^_qj25*$/~Ԗfr9g1Eû7˯TQV^%Y3:.Pp/:e㮉>pWfSZC{Kk$C vo hq;h]U!f.0kGyی6:E=$r;u/Sf3$R-Rۣ{G w 6L_X[yO>\v ? æm>=fv_L -Et<7Dy.a1b;jUF.n&NVHx; SܜfK4 %ΥJ 6B3E/^V9#kQ}M{ WUn u >J؇ C" v)q%21 sxYfJ%qP"8=Oʍ:orK'r\QulXY ,Ki4wm'K=bQ[w)b ]@7eV~a)Vd#H/*UOFj'o=?RM0i4mp1Q S %t%A~^BDU#.S#f+!Á`>ڡ6"v_7]kNel-W*^ 9hGR]Ue9sQ#h|T0{ 貤KJ-X2MƯBDtN9nkKă>cE%P Qh|E_ ;vC PzZc?Hr"Xp]BwyYM'9$ܨvGPGaŃCG"x\.Ӱc:"K[ *5k}g-XY^X`*r{.0tY(/nfU#cv#S;1UEuP5v0z] jm<+W*%'qF;^U&vl CSaE^Ir{`jem-sPuhǦ9J-dRu쉜0> Oi>2}F.)bfm̶6A j <^o) o_O]׏TR/J}/3#SAG\E.\׍֟OfRzMO!"/O,bgCަeǬ뀘̏{~["4`e]SBəg]2F#, 9ݦrLZIzlsk=ߋuR5Rɒ3im(KF,nib*9MմmAKEk8NYh.W C37r7UMW$!=c8g;l, ssRO$ KI+d5K?|n}x/l䥫q$^#vC/E+}B8$2؉Ye *-V* Xt^af el6vKjͷi`~ez5!s:o0Թxq1Gcb-S_Q?BVZ= &W^6i's|R0< b,꼽J¹;^ rEPkWo'w \P#)zܦ-3}NRʰmo9WWҝ*xV߬1uyQuKO)1`,;K x} VeMQN5-7$K0 P_UK@^:+ϵ3nKC KZUW:5>"js|X>ȞoԌ|liLIAw2t/C<"uZH|!~Y$Uf|Eb3Gh^\\3#4⣶8EA#?9EBg_8ſth4/5eh e|FXn ?$F(8xk6߳}O:$==oN>#(aBc_`!+Y)+G/4ȟ`LmG?z R$L뿀y1Г~ < =I~< >&Ç%_H1S0L_p;s\JA_?>UBP'+vƩrSU%з3{}l㷅TvkPA1ۮ\E2|iJ1Gk zume3R߸œM b30M(ƅU(*$u[MBNuOa1NUd:(LKֻ~LfSs%Z&L(_A(fҼ>v{ŎPղEe@qs'8vR6IA{7Y3{M9l7bw*#p3k8ѡ"xzirw!g3])ӆ oxrk3I)V]3d%|@I<&<~-9~k`_D x,acf>1z{A ]d x >Lnwr ;*6TU MUu˴ǜk=^0hX> z.Z[ {orU=| =FhfEUNmƋd"UEapjc׍J\\JxDLs%b%195_kƛWROgȖ<-jq; 4<fEJ;`sX"-lf@ j&ùzƯbK+U1;aLqKu4yM( F״^_xhvp_jMMa֡_>BLC-%ÁXٺyl(EgsvzRYp٩c2(**m;ZFīt{YTXpȊ_|-5->Uպo2Z'6N=O6 .Iw>G `o¾p HWc0dךO,R4o5u*7Oh Z/BH1ƛZ,[i'.x/`14{U6)U3yZ˸`-Kw+-'0@p~\>C#S-it3#Ө\+fM &.Eɚw]NIPܙ<8D-s{XIjUR[twjLI_G R֥c[:d2zM+Ӕ AHԀ'n\ 2 zl#3z)V.RQYY_ٔK˕-l պGҒ!$qü{+ULz( lw|d~%a 5@G]1?4L؄Ѷ =p~PDl'OS}cHL2=qѴ/`fqohxa9W舰e ZG=sy*` .1|p衐O9gMăwx{ݕ44MlOFf.?5j0d rMx\Nv+41KK)>I.=yDGYAЈԘXcR#^;*覂o.f{UFUeOeus/e$8It' ȓS^0PMhXSDP"`prquTm^L{֋D$X:A1*K'P7߂k8$3)iC ـ쯐 9"x\_vm ;}qȥG%f@fdx-nb|1m&z{$x ׅZlM]fc-V e ^<ș0+NI7X\&ɍ6^e|_p9Wιh^# |^H,] y9uMKqeG=f;6,~YEsuf'*ʡ^^az97p88;r{2sMnEWC~!Xgߍw)w;SNcܤz uj5vZ$ᒹ,vY6>/Ƙ Wm[I\Eh;sz@@lQyR%;xqb #:_ZrO] g4~PM 65S@A;+_]Ej?%Xug>~\(5db'Wq\ >xw8ؔ 7^/7pd+lE;w[pdjfMYj;4lv1ȕ.s\pU$bX>v² 'AH ^a1qb5- T>,R_%:]-fjY-\ᄬ2~&KxҬHٟu][EY;%hjB6ԍUdǛ$#y*Rױ&+*goV7905L}{ֆK;z l6-dZh>̛DUL+ykuH3ٹ]ˑșcr1:pJ_LjzjW1VHNh0l ޏMZ-\ Xmzh]2g%G,hP50|Jur7DȖlDZ²,R&%Px녮9͡=y`P2:JD2o7?&:x05 .Ƒ(je0*zY[ ƃvŬZQWyd6+.a\[ .nhn9S?ϬΛ 9`9WG3Q P 3kx? N 1*57sL~>Z* nJhI]@:FamHR2Qޢ0az1qx^QFRs)ynj,'-ҝid!]Mel.{0(f|&L9ܐFCW,z߿n#ߗ}ypnK 4I G/B[~=< Q_y08i}ʿr[ߝX~Shsi1 Bw loLt|.O1_`2;i@gXOcbr%%3 < 9"vھffA͖韅 jW.}nX|2TBB\K&f*CCLWx.zqďw܎-="-Xm hHpbg:(ei ke{ӣk17戛QjT*~SrTRv&vE><߈] ժQGYQAdmMXaT! ϼWH9:O"Wې-"-2H)j/u?fke)4rȁdY>{14i=D=ޙyf]2>I򈧑J|:L(#xOH=QTOq`mjyU GW^\cbi)څ~DzĕȫE aRZ)o PcVF:HSuȚ7,+Eli2,6_:0(I 'G뇆p9d$}2ȋ 2򍡐_K_5ﶚ~Za53~?erlpne[lB9 3(ϗMaݐ\M&Ca7dayr[n1sEDj9o )gxf%Rq3;@d(\~P[;fH;Egw]kHe&==၌oћG}5B8,q0 ʜK%W8EwN_΄P&]l,UC0Kh݋"2k ru82!61`~揗~=~/>n0= AB >0}{Bm7k]Z\2^(q68dz}5Zͩe|qP>&z2{}qkNK.*+^ƒ5ilƐǰeC3us Noj -`={QߴO9a3)O6{cf8b/;H/-LCtm4 $ Sjmb4`9WrJe9<%vv En0ta2񯪟*\GAHiGݚR@vBehdubC١N_ax !>5 @n eKURM`?z%_DVE KS6kC.a!O8AlQTkWm ^WұMAb֏t*kY;l Gb,LZ> (ghK;X%&^&n%!rBËM jzA#CVnh ~㖧wR A;%:ôf{13^5hzfḅk?TQϩwDR MqօHZdQnEBe;:{̭1 aOh֊tЫ^%h{ Xņp[ %Պ[ UA7U/b"%3"#Ȏ08m)ʨ$X*oQaqJꉗQ)Z%nCrYJQO9OC+uj"Oӫ=ŌQWn!ESn$'p g0Y BJE9'R3jO{իNftHgؔGuY5)lvar7Ի("HHԠa$N-vQ3oތ #K|\8a&bUƎ]7o8ZcT7< RDLrp=8{F;lQl>r ̝xBL߀tWqğ™#Bae:E}{rs_k1}E>; Y}UYRttxbN}|E2_QMB'B7$TLMN$Xp(Ԏ{V{kc^t^8;辝"P$$ Dngeշu|.+ǽƤ}H"!?fSs{v>lc_Rhb3pEBe=v㕊=%H;y5Y-Ecke+uY Wof\u|Wr3bt Sl`{Dh_KnTd?!' !d-/d%rv! 1#d&x+vJѷҿ` hw9W%LQ9C30.|mPnc,|)}DA { zh_מxvU.rrcQLqyYo{2Xb :ŕh{”L;Yŕ{ /ь;QUge l|bԢ0dWRB.RIlSTq𮞫d^C'526k°P1YG9ɓK|y= N6(k Fq5cfipuƕ@@_ qiLJď@ެ o;U(kɡ.EnSd2u5H|)ژ^m'd`Q:k1#xfBKWl= "%t7ã d ybȞ @系"1ft,llB(c-B$~;ԹdrTenݽXG:hh^$O~zߘ)o&=D,Ў%NN6_۴<3}*-iO O jӞb(`8~ri1>ދ$\**3GKGm7lF9xz =I.#c' 2=) \c&U4<+I%X:R5E191zoU|j0 l=)kS=a/۩/"6u0eWQBz=3zE,d  Ū{Ne>ChGjiPХٿq\- \&IU>=fO.=Vk U4L~s]vh6U[jFNk"c< =SN\#NَɷQ&blٯ-8P'Zs+uB`9|:L ޞ_~ZeTrIzMjr|B ~=,jcѤ:,><mQ+I?W0G] 9zP,+wpVɗQeI̠Yt3 ?^{DpJn}{lꖸl mjg(0͜%3 O~iiv(E!PI(}H_*xSN3e ὥ`AM5&PG]z=!N|?@ &"=:&ڳNQ [}lhZ}~ "MEGUf,gix@4TBx|}WF<kvuW9I@씖W77ʯ7HFTn_)fLӲ~:REH R>nXv wow;g_fo{~nֆ{K"kџk#w)*Q([NXj"(jW&OFSD">oI9' Bs>QJ=`z TVIz2 %ňq@h`/ NE&}e1~\Pl;$D&x*" c sO=b;|+}ayoUtBhx-G8TН$G؀|/א}V2p`]?G`[W .=xʏԏuRm, >?eWу*‘ք za Am]aOۗ\lTX1MOn$OLGA y} ȧP{˼!=n0L \A?3? ,<-4ޱ!9Sf]( k| "6YvoT4,!vfטk˳GySF?{LhǻF KZoK+/}zKEBsNF"%{B:^7iE,Ű̗`8±fS4 `v:;8+;sW ݸ~[ё{N5ym}|0l `F̂FW>+,B8o=@-']?]i9Xot,1^O1z|^7,Eaу㧽 }sscw_ X@ 2fҟR,K؜:D}_quy|Wɧ.__n G!^^s`=؃3ToS[QtKZ5Y -p {`LJ:L0,`[Xfsȹ?IN=UxESY4Y3 &xzKdQ/5pbkzl-*qϔ߈ jyS'~_)7 t8SYcOXvtloP!?tyZH;5aܻv <ڷHzHA#څqCm4M$A>;),Z̽8g4@87G' qm,LU` ar3Dz4=^$R]0B-W:,7c5x.y~S̕MX~E3q<*9R9å? k;̺&OzrKODs2ARS^^ޕ!]؍7$pȦc;8>WHGc-B`oЄ(6v5|&Y}I@`x~:*ڬgY,e A_4xMLG")GU209QA?/d(Q|YȤN=MWbt(-vMr;DKiᩈ8HYZa6:?WEK(ƴٚ8-])mt;$ѺMdeXN-c^PYo>2^t䳧Oپ /Ym`ɑ=Xр >ڂq+;@/]nZzbSՒ5۹ `洏+.,(XIt<{8ooV֊ m.U"zc43J;w~E"yHKzSNZ0?NvچRݢk%mu0+/=7cjvFmW=~-ݸx7޷Я[Pq~xUW@F]uBu5wQ٫g<٣ Pwo.z>a { *U/Wmי#op\++Ώq"HT#]eq<3@+3*A7u_޷=T3Ih4+ݪѤ >1ţi맞< er 6'__a >׵.e7Hog64-E^+TXD`;ݚwIץⱃsErq,y˾nZ:5qFiRDtxur{-a#lG콨`帓m#OlijZ{Rp Q֮?Q(vȆcc5_ZK+ ;lO5%#jƒyFe9'UVW0wܾNt- {A^LW\7 z6h5ύhM?SjdwKA]9+j~U9vNlsܣlvDJXXObJͣfomҶȩjغtM͓Etmd33X%Zsۜق;>ۤ8ݒq1`2 kVBGbfz|sXo arÅfOh 5X+t6Zs+(.Z1x\iFyZ4:]=L' +$ng^$p.B,dT[Wn5& ߋ8) w66Þ=ʾ[j7](PG# |qx(5s&XZH=IEl,y5r'6D澃q)~-&wQ+S'q!N'^6[ o`)7+-l JcmܬnmXAX!HR.:ȱ{^,ѴfX\:0^J0#Id!"3F&s{0fmH:]yk/<Jyui:&?Z,wBCx'Y*†UG`й m b?F >$3Sωqҁ*;52t2`YItMs jy*,~vsJ t;O+B"`(x014Sl 0 r^<*BxhQm"X^in@ge\*B棎OJp~b5{F]xr.WpdU"`J,KtFL7dn`'/8 IO5OUBO/̺]ґ]:K2]{=O)I X3c c]ώ}=gGRә.7^!@`Brw ,fK(L÷;QyuS trFk\0)ʇ#x$[(N\\v£]қz2dr-'Z8Ox`Ak $1Yuw5OK2*dФ{em Y2iU[e,ɲ-1~豮"g~N&9MjSȨOtLr([ xl 1Bw^Ϋcsf0Z}3회d ~g؋PƢk vzM}]n~= R=?u]䱶.kB ƔwB"N/xW`9o vSo"FO(69Q& ^| ~IK Bx-`zAwh,Q 0+ y??g{e,|]_N(sL%m?N"v'Pv_>'H1LLC u];[OƢZI KF.ެuA|dm[(\*S#rm27$2 ?A [o@?$_#RwC/yo\ ~>{" Zٓi1⽪k(x16$5_R ҙ~)tC|/,|.bv}x/})1}^ЉgB2WK/|? C-V[H*iS&vWx/" 8:E1%E4sg2Wʯ>_pϯ6sPԅ$n*5ی`n\ tM9B?0 QO)`) >e:4vop=0]@zý>M|߷a4YMڧy'ލy[w mv4 e#!>p? Ȧ-) }^*DGT~45r]gi\ >œt/ATT/p(!w6,\7xcQ4"CT|0ϴ(Ւg s}~^DK^ZÏ#4fnt~d3Z]]w%&uGPt?T77I{XGZYn0UwL2>0mY-ڍ_)c{uC'AJh~ytJz\`gL&Iű#ms_p-qC: `LE}Rf]Wg$=<Ķ>UUNʶ{_R!?>̓c=Y{ec@Ri1@m#-jT$]KLäGHVՃn;Xt[r&^:W\yȍ ,a󛚋9krAYWFzaZ׈1I!# 0I8i5ݽ'4Ѧ;ZRed œfn:f&W[g,Zj+Ѣl~ +UQ!m/{ %䉚{W0HJ%%ǩwJHERgXvӣƿ{aA p}N% >.~W1&Xz9<쾀z͒eآ3a鉿dYpEI3S20.o''IN/Z1̱*z6t#08)f|j@8B>!65$>\F-"x:f/)CbA8UpO?Woڦu?CٸPDX2FvbO YTt8V~/Fq1\LorvM鼃٣yc{ ]ؓOߦN4X/aPEKW:τ^w6'YrnJ8@)bl,K?"Tpi@|dnglː4nknbH+yg4"wS}pte*@ybarMJu\~򑶲_j[i!+$#cV4ew(s̄C܈XTRHALO| 7eXIӫO#K>ÅW8tFt$L> ?y_(C>AzR75fxkUrݥpFQZAp9=  jEݼ?dw[4͎<)Sܸ,]DnfE),aXuPKbYo-%Ggxբz.EF h񔬴7:̒e~%!^zs#KH>BsW?RM8㯠)JK|&,[Ϥ $,y;E`ױ_6d7 I,m_ݲƾa 8@1vz >>ʌ6ka ijs"0bxT33 sn{6~}$&CLiя#'W4h-x jy{{r(e Nif96vXaez.\Û'RJx Q(~t7)71,- ,G+4!LEx B捄 ߫ ߹Տ{n{[@e{1G17 8-@9yM%Tɒ\f߬.L7q55?˼ƎoTLP' FQA7Ĵ6'(d-pŵm[ǫv"{ȋ&In{N.,,46t &,X̐l]!R˱pF߻{l)|VZZL2}R-sN(x^ 6$ N>kZm{1?[cT~/ۧ|~i?gb$myߦe&lHI"mК-"/z2 {z\Tkt>!}ƚ먤k6ձN,ɩ² h Ce4ɞU战ˣ0Ҭו(Znu?oQ;rfXXNeWH:l2QMn*髆aUOw7=w I4݀sRäe@߽PNBvչGsB0+e-S*6p؎@_ûG?R(vWKL"=V^ʡ&r*D#[a4w[Ҩ\v}FZ&xx0]#YR>7.<(W蛟$wxɄGS= elOo\yU-R8["M4(Ҍ48#p :3C}, CHdfgᛞASK!u$oÓtR$M'џ׆<>s=OQ!Eޏ0H^7f>qs|?J+۫4lxC${o\Z;E?)Q49˹P #A֝>/>e9<2OΟg12\5L+B_a]_ǵw?YxS>̉㟌Y;.ᨆ,;6^Қʏ5T)mp x:2#f2#d$vHci5EHb 覈L:-[D "U[TjvП#L&,*!/Dlv92 LītEyZe&{ |fIO=F;_$;d vo5eLĻR赗Qд.Y,a|&\ʇ9&I{f;ӀpyW!VsワꗔqڔǂЬpY{i0X>F!˜xtC^0zqX/ݨ:IXp7zCQFߐ^̺2T#ڀ[&Ц'˱fkoQ9p3-pA< VN *+`3gĖE) G.jO6{E$Ki um=s\OgpITZ}z!Pؤ,,;?^Z}<]kQ=Ժ[\c`*aįAApc4pGA%Bzps{52%=רUmkDcm~I;[q^ԞUT:sݹnL!L*F6z<x׊V+DZgFH3>03Y+e_z{XH51-)l;ܯ{6R$9"/ &UoՐ>%d]LSd7܅kmr+̛M x[d%>3^Н{B %'1nJT?Fg] bQG|$]gh^ٴ(O|Lz)"cܧK?ց|aAJ>0`u)m]cOO+,3G,X]Yo%Ļ? cědCLnGUȄ;byM:y8Y}EڟQ~= DT@O! hPt''99[\/XgU$v!ydživ!xS9Ji8 mI*bڊsUp-.(×6|5_ޣ>3k`oPV0)D4!"]A׿їW0զ+:+`?3 * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #include "FancyPanel.h" #include #include #include #include #include #include K_EXPORT_PLASMA_APPLET(fancypanel, FancyPanel) FancyPanel::FancyPanel(QObject *parent, const QVariantList &args) : Containment(parent, args), m_applet(NULL) { KGlobal::locale()->insertCatalog("fancypanel"); setBackgroundHints(NoBackground); setZValue(150); setObjectName("FancyPanel"); setSize(QSize(100, 100)); } FancyPanel::~FancyPanel() { if (m_applet) { KConfigGroup panelConfiguration = config(); KConfigGroup appletConfiguration(&panelConfiguration, "Applet"); m_applet->save(appletConfiguration); } } void FancyPanel::init() { setContainmentType(Containment::PanelContainment); Containment::init(); QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); setLayout(layout); setContentsMargins(0, 0, 0, 0); setWindowFrameMargins(0, 0, 0, 0); constraintsEvent(Plasma::LocationConstraint); m_applet = Plasma::Applet::load("fancytasks"); if (m_applet) { KConfigGroup panelConfiguration = config(); KConfigGroup appletConfiguration(&panelConfiguration, "Applet"); layout->addItem(m_applet); m_applet->init(); m_applet->restore(appletConfiguration); connect(m_applet, SIGNAL(sizeChanged(QSize)), this, SLOT(setSize(QSize))); } setDrawWallpaper(false); } void FancyPanel::constraintsEvent(Plasma::Constraints constraints) { if (constraints & Plasma::LocationConstraint) { setFormFactor(Plasma::Horizontal); setLocation(Plasma::BottomEdge); } setBackgroundHints(NoBackground); enableAction("add widgets", false); enableAction("add space", false); } void FancyPanel::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { Q_UNUSED(event) KMenu *menu = new KMenu; if (m_applet) { menu->addAction(KIcon("configure"), i18n("Configure"), m_applet, SLOT(showConfigurationInterface())); } if (immutability() == Plasma::Mutable) { menu->addAction(KIcon("configure"), i18n("Configure Panel"), this, SIGNAL(toolBoxToggled())); menu->addSeparator(); menu->addAction(KIcon("edit-delete"), i18n("Remove Panel"), this, SLOT(destroy())); } if (menu->actions().count()) { menu->exec(QCursor::pos()); } delete menu; } void FancyPanel::setSize(QSize size) { if (size.width() > QApplication::desktop()->screenGeometry().size().width() || size.height() > QApplication::desktop()->screenGeometry().size().height()) { if (formFactor() == Plasma::Vertical) { size = QSize((QApplication::desktop()->screenGeometry().size().width() / 10), (QApplication::desktop()->screenGeometry().size().height() / 3)); } else { size = QSize((QApplication::desktop()->screenGeometry().size().width() / 3), (QApplication::desktop()->screenGeometry().size().height() / 10)); } } setMinimumSize(size); setMaximumSize(size); } Plasma::Applet* FancyPanel::addApplet(const QString &name, const QVariantList &args, const QRectF &geometry) { Q_UNUSED(name) Q_UNUSED(args) Q_UNUSED(geometry) return NULL; } #include "FancyPanel.moc" fancytasks_1.0.94/containment/FancyPanel.h000644 001750 001750 00000003337 11436144324 016755 0ustar00000000 000000 /*********************************************************************************** * Fancy Tasks: Plasmoid providing a fancy representation of your tasks and launchers. * Copyright (C) 2009-2010 Michal Dutkiewicz aka Emdek * * 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 2 * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***********************************************************************************/ #ifndef FANCYPANEL_HEADER #define FANCYPANEL_HEADER #include #include class FancyPanel : public Plasma::Containment { Q_OBJECT public: FancyPanel(QObject *parent, const QVariantList &args); ~FancyPanel(); void init(); Plasma::Applet* addApplet(const QString &name, const QVariantList &args = QVariantList(), const QRectF &geometry = QRectF(-1, -1, -1, -1)); public slots: void setSize(QSize size); protected: void constraintsEvent(Plasma::Constraints constraints); void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); private: Plasma::Applet *m_applet; }; #endif fancytasks_1.0.94/containment/plasma-containment-fancypanel.desktop000644 001750 001750 00000003213 11436144324 024060 0ustar00000000 000000 [Desktop Entry] Name=Fancy Panel Name[en_GB]=Fancy Panel Name[es]=Panel elegante Name[et]=Vahva paneel Name[fr]=Fancy Panel Name[hr]=Fensi ploča Name[nds]=Smuck Paneel Name[nl]=Fraai paneel Name[pa]=ਫੈਂਸੀ ਪੈਨਲ Name[pt]=Painel Bonito Name[pt_BR]=Painel Bonito Name[sv]=Snygg panel Name[tr]=Süslü Panel Name[uk]=Красива панель Name[x-test]=xxFancy Panelxx Comment=A containment for a panel Comment[de]=Ein Behältnis für eine Kontrollleiste Comment[en_GB]=A containment for a panel Comment[eo]=Panelujo Comment[es]=Un contenedor para un panel Comment[et]=Paneeli konteiner Comment[fr]=Un conteneur pour un panneau Comment[gl]=Un contedor para un panel Comment[hr]=Sadržavatelj ploče Comment[km]=ការ​ផ្ទុក​សម្រាប់​បន្ទះ Comment[nds]=En Gelaats för en Paneel Comment[nl]=Een insluiting voor een paneel Comment[pt]=Um contentor para um painel Comment[pt_BR]=Um contentor para um painel Comment[ro]=Container pentru un panou Comment[sv]=En omgivning för en panel Comment[tr]=Panel için bir tutucu Comment[uk]=Контейнер для панелі Comment[x-test]=xxA containment for a panelxx Icon= Type=Service X-KDE-ServiceTypes=Plasma/Applet,Plasma/Containment X-Plasma-ContainmentCategories=panel NoDisplay=true X-KDE-Library=plasma_containment_fancypanel X-KDE-PluginInfo-Author=Michał Dutkiewicz aka Emdek X-KDE-PluginInfo-Email=emdeck@gmail.com X-KDE-PluginInfo-Name=fancypanel X-KDE-PluginInfo-Version=0.5 X-KDE-PluginInfo-Website=http://emdek.cba.pl X-KDE-PluginInfo-Category=Containments X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true fancytasks_1.0.94/containment/po/000755 001750 001750 00000000000 11436144324 015174 5ustar00000000 000000 fancytasks_1.0.94/containment/po/CMakeLists.txt000644 001750 001750 00000001537 11436144324 017742 0ustar00000000 000000 find_package(Gettext REQUIRED) if(NOT GETTEXT_MSGFMT_EXECUTABLE) message(FATAL_ERROR "Please install the msgfmt binary") endif(NOT GETTEXT_MSGFMT_EXECUTABLE) file(GLOB _po_files *.po) set(_gmoFiles) foreach(_current_PO_FILE ${_po_files}) get_filename_component(_lang ${_current_PO_FILE} NAME_WE) set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) add_custom_command(OUTPUT ${_gmoFile} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DEPENDS ${_current_PO_FILE} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES/ RENAME plasma_containment_fancypanel.mo) list(APPEND _gmoFiles ${_gmoFile}) endforeach(_current_PO_FILE) add_custom_target(pofiles ALL DEPENDS ${_gmoFiles}) fancytasks_1.0.94/containment/po/Messages.sh000755 001750 001750 00000003547 11436144324 017313 0ustar00000000 000000 #!/bin/sh BASEDIR="../" # root of translatable sources PROJECT="plasma_containment_fancypanel" # project name BUGADDR="emdeck@gmail.com" # MSGID-Bugs WDIR=`pwd` # working dir add_list() { LIST=$1 if [ -z "$LIST" ] then echo ">>ERR<< add_list() - missing parameter LIST - exiting" return fi if [ -f "$LIST" ] then cat $LIST | while read ROW do echo "tr2i18n(\"${ROW}\")" >> ${WDIR}/rc.cpp done else echo ">>ERR<< add_list() - file $LIST does not exist." fi } echo "Preparing rc files" cd ${BASEDIR} # we use simple sorting to make sure the lines do not jump around too much from system to system find . -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | sort > ${WDIR}/rcfiles.list xargs --arg-file=${WDIR}/rcfiles.list extractrc > ${WDIR}/rc.cpp # additional string for KAboutData echo 'i18nc("NAME OF TRANSLATORS", "Your names");' >> ${WDIR}/rc.cpp echo 'i18nc("EMAIL OF TRANSLATORS", "Your emails");' >> ${WDIR}/rc.cpp cd ${WDIR} echo "Done preparing rc files" echo "Extracting messages" cd ${BASEDIR} # see above on sorting find . -name '*.cpp' -o -name '*.h' -o -name '*.c' | sort > ${WDIR}/infiles.list echo "rc.cpp" >> ${WDIR}/infiles.list cd ${WDIR} xgettext --from-code=UTF-8 -C -kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 \ -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3 \ --msgid-bugs-address="${BUGADDR}" \ --files-from=infiles.list -D ${BASEDIR} -D ${WDIR} -o ${PROJECT}.pot || { echo "error while calling xgettext. aborting."; exit 1; } echo "Done extracting messages" echo "Merging translations" catalogs=`find . -name '*.po'` for cat in $catalogs; do echo $cat msgmerge -o $cat.new $cat ${PROJECT}.pot mv $cat.new $cat done echo "Done merging translations" echo "Cleaning up" cd ${WDIR} rm rcfiles.list rm infiles.list rm rc.cpp echo "Done" fancytasks_1.0.94/containment/po/pl.po000644 001750 001750 00000002101 11436144324 016141 0ustar00000000 000000 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2009-09-09 14:47+0200\n" "PO-Revision-Date: 2009-09-09 14:50+0100\n" "Last-Translator: Michał D. aka Emdek \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Polish\n" "X-Poedit-Country: POLAND\n" "X-Poedit-SourceCharset: utf-8\n" #: FancyPanel.cpp:109 msgid "Configure" msgstr "Konfiguruj" #: FancyPanel.cpp:115 msgid "Configure Panel" msgstr "Konfiguruj panel" #: FancyPanel.cpp:121 msgid "Remove Panel" msgstr "Usuń panel" #: po/rc.cpp:1 #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Michał Dutkiewicz" #: po/rc.cpp:2 #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "emdeck@gmail.com" fancytasks_1.0.94/containment/po/plasma_containment_fancypanel.pot000644 001750 001750 00000001635 11436144324 024001 0ustar00000000 000000 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: emdeck@gmail.com\n" "POT-Creation-Date: 2009-09-09 14:47+0200\n" "PO-Revision-Date: 2009-09-09 14:48+0100\n" "Last-Translator: Michał D. aka Emdek \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: FancyPanel.cpp:109 msgid "Configure" msgstr "" #: FancyPanel.cpp:115 msgid "Configure Panel" msgstr "" #: FancyPanel.cpp:121 msgid "Remove Panel" msgstr "" #: po/rc.cpp:1 #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: po/rc.cpp:2 #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" fancytasks_1.0.94/themes/000755 001750 001750 00000000000 11436144324 013524 5ustar00000000 000000 fancytasks_1.0.94/themes/dock-white-glass.svgz000644 001750 001750 00000010755 11436144324 017614 0ustar00000000 000000 ZYH~_[2s*v" zþMOJ*ݞ{L1>v_DF~#J?)Gs/>яu "xy,ǿf|8mφgrqn< f۶0<'粎Ξ~{xl6'{y|PuuvW=8Ȃ<(FQUݻWyY4Eߵo ] eF0ÞS33>}; 04fj̽ }&xnʮ H&;C" J0PI_z*$J@9$ 3R8;o{…("̿ EC{\p {F 3ES8G`8#C Od~ JD蟎 Lە/2>#9[ql Б[E|T~en>[[VC:~y .ߐx ? ԫ9aԫ Ac4vg_y?u7B ٭o9krƀRTwf0#YPQIYnVHdh ќʵ[[ 9u>Phgme+s(e|2ZeB0Xcϸ"\?𫑣,:Ot[FX՚ z y)h7*ZkV_ȏ6kPWӒܼ~II$N̓A@fl3tF1gHӲ+26:ceg$#1Ƨ,; EWH9/0*𰟩Fsty=EZ-A&Tk0.6ю<'P΍zL(?.Ŕ#OᢻY?#6ʮ2k6AY7JOٶEF{Ifb~^VAX`2똌׭VNbKuD,#MqeB=ց3] \1dמЫ vVBX@hKW.67)R]1s2gm {&vTQ͡.oBp%7n@s RJ"[i8g;>tgtL0$Dڇ@Եcy Wq-\W'3`ˉsNsҮ0;1UҪ7Oػ4S/%IMA-j+$Xy5q7|U{yŲ6kabɵݦ+dT>Ұ"AKMKz!M k<%a6aLFp|Y=4+$~~*rjA_>H!(& m]w&8ͭJ1uhx]*J[͘,C䲾j j}Ip,Zt},R331*WXC?Ml2W߈$owJ2w8@dno NfAVo͆]zma,1QcΚ/JyDL;X,c6mKlWSA,\O 78ez29m驍qwv+Fb>+Q<|)H c _#"3ܒ?N.ņg  io-{ TxN0:+Nx%.V(SY(VAE8ce9" :Tijyrj" 0+_^{yuW^^/?~F^И).qU,zx%!Aڲ Yʊ!^e~rP,.>1 W4A<",A0Oi%i+# =f/@8$Fqw?#΁k {38΢oˀR]_<]?ћ3AWODzJj/'Y*t ˕2VNa1_h61}#aR *{$qGE_衏F8JPė$M#K!9"Bh滖)E*o.SԋH~L_`[G ~Ͻhקk7_p$AOv<_L%/Y|Q*E/@_ gJ0@=$Qؗۧk0 d?60sBTRs 8ӯ'w<# }$1No!M&~5Nqz8?D][~/ .G%? eOXˈ6· yX'Q3 95Ⱦ# $͐iGM g DEsZ?@(J`IPO`~ %8Y(:kBWb I`48$!}|hH2?VH̆G'CR>a3_\,L}> x v#_+nwxm%ЗSϲdeK3*V9iI-} nH(lqE?%pK\;% ]hg_#Pాk}@GQ; 6~ 'ɩ῞oƲh /є ES&@>$)JƟ,I@_HHۉSc !Aq H<*}w!(M=(p/%%4ξl%%/"ԧ1  #gw֢V9|B;(47_UE(@聾+.4MOGwp$s! H5e7b%F[!B#H}o0|яPb}%'H4Hn<{ O^ 1TmK Ac41`1ym2{?^~ kߞO~~7]yq^\x Ah_co+zj7GE?gD{?=[e_E:sxc7"TtN%;{ ;zO.X \\zi7}dVv3,2MRV}r,1LmkŬi2A>d\vYO*q' ĩ) J&飺$X1_b\6^7 R{>K; QA܂j}S|%$Ca/CTXB.+6OKƮ4A1stdn)rTdڐlZ\rm)#_GEC84lΗ`q28 bU-Guc 兊[2VM{(VU7x͛1=1Sfr7(q]L&Ḉaɻ@^ƺvx+G`V™WZȢ]ڭ^SY ݄CM,~&ʿVs*CzLI;jOuX ' WElQO BhuͲ"O(y{ryZJ9g04we+qܯjN4K\;jE1A#loaw咺[#% # zY $.X}_'߽ Ő,5oM{* behUB{Z%[hrl45R5.JUZȚ,r/ͪd}xi0 뉧JJ'oONU&0`m_E| NEdӱ_.cS7 "*ُsvu5MpI$KZ5HdwRsY}tt]J;;Qnѡ%Ҍ,[ҏ"g]Rʤ"ۉwVaG NJw<;F9)i "4͐ c(nԾv@#d^'4[)+om蚊sT߬3Dv:EIs;rǔJ<Bi2=MEMVM L%5f9 Fk$8.:>傋Re_mVS^'q0Szs)]E亲h*)ۍ'fUc4d Mط&A6T K+a06X+K5 `2[R9Hp#5+иK-fi(]kp9&@wb&h*Ǫ d HeY=Xd۔M7sSq]z>mycc֋=Qx _>1kG c^bؑ,E\Ӫ,m6*[c5vRdl^d!Va2IY5D[t]a6'!)+0w|XEU4s~)1G㋡/Gq~PvJ'p.cFf|°DrCMd NzTqrbmov^5NT0 - e{sz8XA&ӷ5T7|bt]] F}UP s*b:(`V&hs9SfcXcЧr@eXP<Ӊ[Q7H\qىf!zr:;r CŬ;Qb 2;@ZXz fAao{;.[@{Àn.SvɏlȄ44їxQ\At2߈%/BәJ&WyN-9b̭`s,85M 8C#:=ȕxade͵MWg]XeGKb}ITqxkyn1wKQ:aR;b:`?|-C/y>Ș4lhPkZن:TqaY:%+$ ۆxR؅gY)l@ ⑎GEn 1j^brTctƂ8 0kV hʛ{r2+={8^M\wйnNS1 >VE-K# +`7: BEma 8!nXlev&rsEPQ"]ܑ _@OrHLk@+QXJ-Ma+]8ueFy-1M6`x{BݫRA #6f -ƺz=Pl;ӱ~+=~OGh[,UϞfX1y-laSBk0p ͋Mfh.`,7MfLQa ar6VCKqxSם1TB `'ו~cF^d"~N?{{Xꍵ1:&C'<>Ti7P{#GT wR,4#~UG!Rs(V,Kw:Gr2C.!f.ܶEEziNojE^*4jSN7"@]-I=͉&3vNbwC)hм_ȅdj>5Me; 5Ǻ9Naw/rex1-Wgbryf!(O4y|=~G{ly=Mr?ߣf!$ ?H$ ?H$$*__đ '"ʟ}U$y8C$yN*gaNW^WoGv<*C.Id4镒\R$z:*2B2E1//zt3.ǍYP5Q,YՐGm!~!HC]S{{\hLG8đ~N3kkCXbv\n i e=R؞]W$wfHhNڵ*]QY74? C5aeɫxǽji^QLn ŨhG77܆:O4M嘴wp;Af,Af#MT9%W+j]X 23@I/7p8*Hb8PrUdX ΞXRn=X!L@Zfw b ،E#m5V+]Zmoƛoq8ia^Z>F:=aԹfQ9e}>›c4'T(8LC1ZT/r]Ό-`s]a ] ie y[A; cU1)pZO{ҹ^K~&DXSo+CetϹ#ީHo.W{9]yZƴ EE; G~~ts2E۵JRbzyL- =6 ҷk]B"5a;Kf9 }}mQ)w⤯7aZeU@ExuNF(7}DG{m!c*ၽ2bjTT`\BbVtPz|5b+kr>HMaq4 Ktg!)&wPsIzbo/'\s W}FFeJpX2EyJ u0B t$[ gݩ;Dznr[šMpTlx6LA~oGhxҞ=܈ ?>cO礓o8'w>?2<-zJ^,=;39B ӗ$PnE(fI8&16q.6t3\. U[1Zl4\/[M8jve`QϺI"taQr\XSzJ-"5*vB^@2ȂnЄiiM!U,lAũ8@wM v;q LC*d[zu ;q1T\܌vŠ ~ G#"8%R )V5 {;dHʛ᜴ʘO(ǁm[ 1}p"lcV-w{ ҡi- RJlD8| d7v wAqٌ j[GX*z0ܚ)$j;"f7AcV6WH) xSz*]JӕWZWz7n-w3HtbW4^bӠяl̻<@*U${/P` ҕ5zb uoJP싖J]*VskIyDI{z侞D:>j}SW?zΖ\-sy-{QޅҰ#y'3Z o7%±ocoק3{) }m_[ܳSO"Gyƻ=2(>b̧>lYO?QoK?Y >s?|xO# nBw_ =ɛ=ws#oޥݡPسOgo;0jǛN X'!ʃ)v[*7 ܪLo*O/"ޞ/Mϵ7ov.RjzK_kTUm7z!Wpwxq蕠!]/?`m~ơmW!wA{I,lzwz50fM[>9si-{Gj/y 8j^^~Z}\w& ӑypo~ >;?W$NO\zNE!/ j !,ap׫%}_s^~Ewou-NS 2woeY6՝+0I$?v]No ? !^a ^!è=oqAIH #W"QႠOd "Ȭ!'2 ӑ^a~g2~y* asR:P1ZaxyE)-kAI^!#0߿nu=׵|M_Vp ƾV }W)GM?t}^sBvGnU? z{xlB[;~2ӷoП? =z0]URv?#WJPYV (d%(G۷Ǹ O/ϴ)3D`N.FNcY{2;Qc/IbH 8Kup/y= ;42zP{:MӌG1;y޻2#0ÉOcX”I!k"(R_f]Ы]Lr̭3UcQthPHr$ƙ؈FS]O"2%^"8h 1MJv &8BzUVvV;V91bs|s*Mq9p*{]uLtisnaW֖d"n.+ |J3@Niۉыl['D$*|IAov70/829݉1qs'۶J:VLH`2'rRd ~`R>f@P/:DI8 0Iopi8ƀz\@Lś28 SEUIy=2RY2rZ?lo԰юʪ$*L*p{R@]ցvp2iz^zܚc|?L܌tv "YBgP ˖G\[%h1BݭSzQc&1 aIjw6CQ)xhfh:DdO5*1ٕr,xzqz{xe 6QeHgaO 9è-3Dl$`6 Av4\S"o>f! t;䤳^i)k$7qj7Sz`H6pXuiM`5xud1>^K|GGLj348_j9N$ ); rbϢv%ug&вx"n^u1j$*tm'qbH})DQ y{T]{G~FfJ@d&[ -5"[rmQ1sxɮbs-TSHyݞ0]]wFyW癩n֭iq/ѥPx D?9<@najabٺ @䍺nPj/}kj&sS(TdJ{Շ^BE*K0pY.x}#h82~q/遧dLn1>(2h$7Cxvvُͩ-Bߴz̷IK[&%C.62pcnOp[ci2UĝvbZ --c>jwPoYu#Ygcb >A-לm$sŧ+ AW gL[{< bEz ;4Wp'MbZj3m*8hc ՙfbXGIc-tS}01Vl}q(tRv47m] ,]7X绖a|tB#w{MJ 2|.\p*XvΘ?yO?yO?yO_Ӣ`~%0?Wdaa+O߾^Ur$(gi3$1myYqO.3:lRfOEȗX>?_ѷNk1`aGg?丧R8L>7:&Chq`y%"LrraHQ|ݻU{dش%x/s9y|j\h#)!ZmX B][rl6w4so0t+ΐq5K|) sw"@G2C3Pp*Z1k?,꒝ iCR4 ^rrr=tװ-gvW@bz1N!m0ggmI8'7K!FGmnG}os?a{*x> 6k/EH}psB)Q4O0$:-<ޤyu/;TbSmqk\W,W3*X9}PyK}>?|Λ<h%x+B)(ݝ52K,ʬp.'ankWdؘMզTS O%R!r K2{DLxPg`u9%6e:-|8l'k!vugE?_ LhA вS>UpʰlqLjOk2njֵ #~t՗798*0݂qhpT|Sk%xLF:v=ϨKc,^1xqk-)>mR""^l=KsăW8cr; z^7|59^.CsJ6+K`c~%]dâw~caX>)*zb; "؆ho? $+\R0oԃl dCc;A8 gOol1v}~ȴ.E]#wr[IQt(ᢺJ 0Q 12\X΄?rl6v 2b{%ng9/nvH}j6#9JuQ/.T9Or"иAȨJ=9mfFos$pb׋ǹc#xc丬4~9zqfX]3f#| W]>=BwSxX\@8I(q<]X,ttXQO#?<׀mfόK H)r5~Jp1|peF1t}s9+)cݾW4w B\*J1Ԝg\+9?3 TpV?-Ӟu[71#g@xrhh='Lhk\iK)vүsgդ9JE>.9{@@'|$תܭv4Wt0v!GզȰc")` !bYsC(p-2tӑ9Yꄇ~r)E6} 6ϽV4a?q".T܋{qaam*Ӥ:ҙgS\ĉuqr^i'!/J)Ǘ/M^U} x1 TK 2 a-&#AW({C.,37^' VDv{|@mm9IA,Qu=eߺ 2>ijɻql 6TOh708, iȣnH0A.lTrm{~pLqEmQ[I1Le_r:1,XҒ]΁*AP KJ\Ⱍ4mVWR %楐,5~l` Ɂ3۹T]3Y큸3F!-9YfE>Yo YƝ!4@8xP4,L5ʙ=0W iNЦћ-yYG_G,s \clTU.#{Aqtz MռTSvꋞA7.$הY˺Уgj7dER(\#kW+E!7~vB1{u{QgNʘX#nO1C^٥3i3`AC*G|a1TfJ6Rzqd*?n]hp'|R~PK2;%@3U 3i(H٤7ӿSp::{R'Ҁp4Y&qpxPs \־#ضC1o]d5_+,Yykc^FS)kZ^pG ̈N/o-\L"_62sMSUPHL_,RU{C7i]}@lzӑLj?gsBj| rO2"I=ʐIa7kpؽN,_֊JQs).rCڶ7QC^I@+Q+єmF}fqqRL[7H ,4Ieó0V Rڙ+8`ϳf.#y1Ms-s τi!)xb&w$$s`cJC (a'փ c;`JWJJ܅GHf &#*-T$Y9G&n$lc{RX1nÄ H* k +خ =tn`]شb0sn ty+ SO)B]O4 S#s^xh"Jn^ 苦oz`tѫ]h RJW Qg:cXZK]eP{zǸK@e <R>rݏ. g FV"VdrtVQ&o{"Y[[NvU& A2JJ&i|\vV1~oYe#/Z&!; -u9pA `@1|,!8 fancytasks_1.0.94/themes/dock-dark.svgz000644 001750 001750 00000016353 11436144324 016306 0ustar00000000 000000 {YH 6eF G8pǹe/WuWα#EJd`jjf`ٚƩ/7IVms>ӟi4ztmS}ß?fќZ%D}S9/[֍YDzK|__@#kv >`O~'W,隦k?1i]`B`BCo( 0tq=K]a>z^~|6u˘d12{kn[:?MY7Ol$oJhbQ YUA7@Z_>ʣo}F ۂ?woG].OM9znel׉~cw⧿32k*[ijnMOA>>74}TdS\_>׻KfsƨM푟c{̿wcWB#?׮wپu7GS9.՗OyNu͗O_' y,!#~H`$?}pIq6BQQcvۗO4p&R5Ex矡a_}c__wCe4 ȞCy_^SB_J|aMfG&;OdCywcnOx#hDpPGvs01 y<ۯl:4ٜ w썡ء5 I!wwۿ&滪ǯT+6˿_~M}[wB\NV|*:SNqlPMx|mTxPrw2(9@s3#'4-S+~k,SkyU9c\T[P=_ U?}~ЊkIMV[0ygɞ=`~43>퐻Zԉ,aTezpm}%p^^cZR"#wV&Y,ˏI@kmbb*DT vg/_"-I ǹn p*Ϫ*RGA6&.1-l soEpab : Q_'aEBJ%&):5O$sBsِJ=&zz2kvE l.E|ݺ(X?I˲ERe}Rm27 V5ЦSqVos KEцBWR@*/MWc3[>.sJ}ܓ˟dh\*(K'n&`[:‚ۇ1Ĭ4N,z:of+,p^1Q)LőMK/A7>ˀxl`UÙ{Vt4(nTTHrׂ<6jfc[ֽ@c 9++vgr67./ ,fGg5u^}q<:G(3YqMQ09%ݦ8$ʓֆhZKdQ~ӃI3+ٻ]̭q ;ɕŽ9<Ь{~ pe6W+nv*TFc}QT*E'IQE 4ǀO3j6O18h$'JPKr6-{2HyM}sBRWG*z Wϱn_N$ bU(@p)R(xϼQx4xqPiS kQ1ZH4<$n=N/vd"@\JbX(c?Jg#R4)ܼGNBT79Ux2[^Jn%<"] r[43zA9gw܇@.8*LHͨ"!<ȹ)# \&܌/uWkh׎ si q#ulb*K[wzY?SdiHؙd TU[&<`z1Z|O _m!:"WatvY> %V{*?P/|WxJ }[m/fWzX=FwKI( ~8oQzc'O?ks{+8bʇl F H Iǻc$kl+q)|:Zp+8 iʆS5hV.h[wc9BpfU,GJscjY,&U8SS Rbyĭɚ|pSr~a9M_ j& l ]S1@6*Y]<$:"j̄PEh"3HXWWmt&ytӔض`ִ=;s\P<Pp [.Yqb&b/^uxMFUEvTٛʝ`~X󧒮_fp*ϣق=p6Gk\ں"aK=׳ɭ/~]ٝsWhq`F[9wb45vVVύڔWeÿPk}QY6J}_8E t%a{4b1#h/Ԋ.8?rJWa/M): elrѿϘ&{OQU>y``+tb@+ ?6u&@Qnè7{=|g rm,lj);Eg+;8<%/ JSQk;OC; 5\ZZPA<4q]ڬVɻf JX "LP{6(-M"g}o32!@g^!r|#F9j[0 V_; 0n;c"KwiηdD+!^[duDMeV+hfA5 h$4|Y56Y](X((.ܥ RX 7>ZEY{Hx/ bk% Y.~z٢U+BʁݳGzWVsa'QЋ^EvPw-XR5jfeQӫbb^dbd- e}_a~*|h}~7zr$r!O5ˉ*RD"̳QQ~b )pʫE$Cx#iE6ht+rrrL--(m"%:^039]U`~Dڼ>p )g/y/j$4q?R;Ɗ>4] K.I+v"!,{y)]n=Yj":Iv]ιa=Q3}A3#vqa㫋_ZRdm1`Ώk<DŽe>*[DAO #13`4 k=xR˩ۼ(_6H> O^i% :_Я%rqv5=ѭ4ά%LѠfߘ-Q+Yrb:ʩu_@ b[s崱'*ԊOn\q䀺Q$^+}6vsY1. -OTΘXt[i4DVqGRɰsoutG(޲-3Ǯg'`NUɅRU8xСpX< y_ރf;|_;щt /#򪮱E?G j򇣄S-EXcƖ!"ܔUVJYLp.T*$G\ E'q*#E g_V؋\Ǵk&)\׉L 7%tn|3G`"ϳ*snD?1ﱞ ~Lv6XT[aE9\mh;IH;CV`kUTE|CwQCTݛHՂ%oɅZg`P %8Y I־_lX]*EՒy5ATR˳X%JE+t N7^ ; rѦXl晡s+1✸V5R^"Q?U &%?_D>$5䑽ڞ`4C^*cc9 酃' ,`DNsi8Eu(ЛPuAZq;DӘ=%Rvkͩ%' z%rGc"Ֆ@p̢*;8UGizwΧ{Ugv@B|%fiZMuM(T(%BGH+3-$: %q8ѿBvUA/tI'F=/J~YԽWwR2jh]P=PP `r*8 B,_t+Qf5~;8}1](_.Uт~Ọ̃ 47?k {c7([\IA7TPHp8)?Nq S8p8;H_L?:fancytasks_1.0.94/themes/dock-snow.svgz000644 001750 001750 00000155141 11436144324 016352 0ustar00000000 000000 ײX%ίHeHe»ҭKxOK_/SYU}oS3bM5k1 z/[:eWw_.~e^]m.]ǿo 7%M~˥E9/{,_@p˿7O9oxۼ_~^uj~&16iv ¿0aXҸo۾OSic7;iA~-~n{P ;f~4>=2K?;~O䟦\Imy sÏL~DXe^,w+0Ml-zߺX0 Ap I_Կ]~p4 cIw?{sk$[?K?KCK7O{[W?k(e.}N.OSt/QSNwq_/߻~폎}s?v_ogGO;F8_%qI?t{a){o{8']FߚNqx=ʶh𯿀?cMo]p-03n\ߞ8˧?ޯ̿oI;e{;wB1^!ǤvJ)&q[K4E~Sߏ9 ?4OGl=y#3~l⯿)?boB?~ _js?OmOe^v9$:??_Mo7?;>B!@70] yc?J*Ϧ8ӏjVR7˔.qJFĿ-?D㿙$l)&?/C%͚ϼg sLĤ ׁdf4 %cQyאt4+6g~, `k],X=p9)}9[R& BvdЋUkIĎk86[ä3> iNml!i\*QtbUj#hP _Ю#Wm_u##N< <J)E_d0_$UZc)ҬRvO *+b?>LTH٪(dmO-=><|FrRb SHB&Q]#@k7ݬ κ{$Ax=]y<ڊ$'_*br6W : EsX4_&94xIeU9J~Xv¼WMs5;axa-}:Rن-/g~ 0j`!yOaQ 2S6+9ÈwoC`8cWfYWS_?'}&Mn[ĚxTk +H[̞D 1,b t/k#k4fUۼUU\PnϬ !ϙ뎥 !>e[#U-S )9(b/DH~ܰ*c_]LcxMSlžYCeA(yRFo![u,*@'lF||l84MeY{:lrQ!o8d[%Ӡ&*A `LY.xBYuIo,1ZthxOB ٵ*jugJQ%~_˜2B;03 A,(y1B'޺}y_`s fm=7py[T_\ c>*X1ُٰn h'0> t] [ϔQlfgiz#$iNϳp2KrꀅǣRIJ0Ē l,; ܾ(KtZYV@\ Y0!(} P^4κĈ# HLVc%z,U0"⠷,4 5dUr$}g5GI62m 2/[  Wf/ >?w B^Wly烴:C6U聠:j,5M1~P8;7%=J<^e^ e{ QDG/cO{~w1t9r+PIU2b\=.a'4ԑ 8H-7w1Hba1meNWyydl=D1-2cRac_Jy_h%5 H'A4ޔt}"!KTF> .!DV 54@}5D9kZ(Ske>jP@%/89p-e脾-MCiߟ_r1qI]ƙ1FPwx6|X @-MM)B8;w@ j¬sD;4'ux|&UZMАr6E HoXF{i-j&DSiBc@͊Jw͸<#p9l%oKu'%`TrdvUtzպehZ9e770:q>Y2'w$hLuXN8DթީX[Q?Ua@YL/bq3阢d]c6\`#;ymfV&ju2oS^MzT;J@:T|G+#*$WFݯDb)mY(:&yT ( sK,}{U ěҙ ý-sY|z^4VI g,a!B~5M|;uߣ1z Ҙ>^w1څ8^t MSSe0{*p?ȂSjY}*pٔ /DUVs7ގ+R; rҋloQʒf`P:T*VrO¬홰2GpIbռB[Uk{Ti3#lgV Cu\aB?K#aL[8yJUlBioQK"Y'FV#M`OneW3& <:0RM8:?pXC-s,I|J .APq{s!DH×* xTnquq|[4ENp|7 8 9qzX3&%@7hbu`U)E; b Ƚ~ AbvynV,4g!Q&]$&?"'FjPJ%K 3;*) _d+~n cώ7}EW6)ۆG2ٕH>9~ma̔'w.&0 LcQJ#8$%X+e/|id܋9l w k &yP3- 0ou8-. gK}CFbެ.)Zgf%2R"!6BL>M)ob]ue]\ofRl!CDid7+9|BB7ʠO9r]iS цeN4iӾa8 7pέwf:Pr_/=}ďnNtS~w9L=fC7:A7'7K.ǭ[*ٽ/x-TqLx>#WS",opF:aL\if‹3^52!<;3!?/H-8{"hYU;m0¾ϢdA7LūV ˲>%w7ΜSLT`6+84MXay3.p]mD}ckSV'd]Ap-}n~SM-OW(H]+ v]=*WئOlu'!軩jHrj YfxYV  v~v^Q9YV|boKgNEpK,|ň](reU؅GQNZVSDF<,*xozO 8%;"j2^[#NɺY |x!r<Ɖ yQN)[ oXZյnJ;}.}/?m _4\,U4O+܊RdC@Lp~zv2p}B~ QWw?2^4 }m\v%&)Ɏ![dkXf+׮tHP0{ɎrM!i}`ޖU *EΣ"w(zpgnewHQ#>Fa`; Ε%2ȴm};~/ˏ@dA=`/37עall>cP]C7cn#3 @QT?hN5;징nf_*cD ֎䉝m:: y ߰DHxϑNZ%{@ hĹMhugo"^ -*sEp;C&l˕m{eYyY~y%d5Rx/$?a3j+rh%h2"u!d@o_d|^.r;O ,1]Y_^Րń?>AdB9,=:ڸ֞kZ_ф^ !cMkݟTx >&9NXշKpPnOmLΊ *zH.W|_"J>- lڀerAn:~rkj:{J1謾^3H,hZBΖ]PZ[0ib*ݠ,TTҾ_!>`O<0[WUZ '.Y_:PFe^6+\ ClJe#>F*A{U7Y"W*dA/DCXMV*`L5mUckEH<Ř׵icZt+ZyWE_ wY7-k_CA"ph}=1LMDZh;k5䋬H1"( 56> ﬷3)W""lnill&uOd 6xdc>۲/7~P㡙@w`:Jߡ6[!)fzD="$sq͓ǂ9dl{- @$Jwa) FB شKPڂLǕѲ ]愩VRz@*h麩{&I̘((锨XxyG dJ ?fŭ%4ERׇ4Ius}=>٘$\ZjA_KMa"wX!FTb.E;V"*i \ l-N%ޅ3H{g(l\2;iD5"Y)'3l5VGViޥ ~ |H c6U }%jא/X `+4#3@=)tM R'juP1e#Rd@DolAa3B"K2~=Fwl>7 s0<؍WzB@e>J nײ#2A &!<絤p/eWo٭;o1)# kՀ_ d< >OD?g%!e>Uv8K"4lTB2מdr0Cqjc=$UޜHxVBzo3SW Fga젖Mudq)R-Uy$uk2hja5ua1K]~`ӳ`kpR;'Ggij~yjwmZ,fB Wr:"u*ε6wj-]/x>#:Ehzӿ(mlwOM -_1DJ$pOV}* ke":}Ǚ poK/Fw2HOK/)t3O]ALe#i" $ f[6'S09o5'tS8,)@Ȓ,UhPnɭ8^oi3ړݱsLMaj vA/+3-0I<(#57Qw:ld.[)%UM{# EE4!_R a&2ZxmJsWU%; I>i׈Ki-HSeʔ9%W;YhƟ}[ɻ&YnJ%[.VG[5ag_[^h2o3ky977=rɤ-3c4 *[$LE̼3䄄Y?> G7 V<%Z>Ԕ <(Z|reL"`iFP&J^\M{/%h)ζ؇ap[W}{40-}Thw;0$ѯM0xTM[H42|} _[ ̆mÃ#Sի3ѣ+ek9(*WK +2麄zQP.xJhcӫ DRGKO-鿬Km±j;Sn(~ݽ48 $b:Bp UqI.ɳnYh_j."n<|zhV&D"%AoQY9TR&3DjqPyKu98徐]fHqZH@bD%|0l抪MUb% #@ڎRі%֒ޣWWηϸqٱ[hXyJ#I*y{T0E2s]&b>ZS)^I =mhِﱈIa8B-U7Wld@, o_Ek_Bg<{l*!%bk|779BA)&]v~|u~M^ @"/nIf%Q|vlCKNyd nH|ҽ T֜ *8 _iԩ`dVxDna'Pn!뛞~sc{0I4$ bc(ϙI#jY ư)RF[{):^EqaUڞ;ScvdxBA?Z57գדA>IY̶*םlK N+00BGf3vQ%lHy,hёS#`Ŭ ::<pP R"(;*SYQ)5R)`Hr`2,߳H0uP 3PT+bE`&7 S]Ǫ[_? Ϧ%䏿Ȕ`S8wp W~V0U]VΊq<,I4x岮Ҕanij rgmd*̹QT'ZEɌ(u1ytU1B0Uje膱ZD L$Yss00VVJ7y)`L 6&cZl`c" cͥZ^xDqS#mDfS l}&j^O׈O߮>Q R:fY FN9ql@ykt0@'mVqu~%KfO/JW֬A%l8&-7=xꮢf6O ? N6s/&:UDf"_rf&璋u_JPlmo!Ϯ0ٯfw|9:7+-k){WśyƊ[jxNz?ZACCf%6X[;5q8NmJyoI]&JNU.AAN7N? N37c(oݣst-I 1;s@sج.Hl걝iEbOO>yfC{ 4rTj˾!UV^p@fGi&ZLN}4J?bw3TO+:e%Ő3Ktm~4o&ZJIkߵEAI-+Bu[S9fjȫtoƱ|%> dG8ݖB~̀aKQ.,λyDpnK)  O= Q#I67 A!p[+ys+?ϫ \ɧHiq|ҟOz(| Lve_gol)p8E|ͽFv䇗{ 1%3¦c"|y.4̎IYm۴Re+LV:Rqkf8Qn,X< H0!f|(Qf5Ca2xRn/8oB[rN0fKYl[y-BaĊ͠-uB:akc0߈PNYaDQ֠`r+IO薂 Bii ТØ<=0Z/tQҩ}E5 'Q sCn0OEt}۲ {>U(ecXh\ ΀Q[ u`eRتv~^Rǁ͝" U,/'{pJ$:̻;u1)ȊI2Yk籜mgs$O=@~hx ymG=2RrꪉTmT+`yPqn$V+DS]* ֈzlE~ )H k/XZ, giȞY;AQ7sUSt%s7=7-Ve#Р^0d^OEɠM%[}`hk1 :BcBVMo_1=ߛTһfԀA|drUYdLKʼeJ4OCb{aCQ9%Ú$sī3(]p@"ⅵjUsDp8i;M5gcUWj%멞U)-> )|p C& áYm5F W7M`-Fͺ3D5G3d5R|# |ZˋCAPD1Zʸܲo6;F 1& EH|u?i@׆ ʚ=iiƷtg &ٟp6aDRcؗAtu~*ݩu1I_ )=ݕV{s|>fFDTjw[)DCw;q.yԴoƔTvC;6sazUZKtU~4lB2i }$ǻ>:pa?* sO 1G-rXlw$4T=O;/*f7LBe3L{a> Z{AziwfD2Q p@0Na4'Ofb^{Xn `k]Dm\UG}T ͼ%b[Ca>ϸ9Mԋd pUV MLW%(+ -!8Mf>;au_o)CUB Βmfv&Z>c?߾ YЙ-Lj(E6/;Z1g8A qu @ia#X7|o|ܱ:2YĢogQrP>3`kZ@R7ݲYf@z.SHQJ,63].Q=Lpx)^& gu Vu*)۷]Ϙ-7ȣ% Q\{T6o'zυdcQwlI@vֻYDsӡRğNgb)!ifb焞,E!{vf§Fλho~we_WA`;5,!9J ƞoo.y@P.?i:a2zlI1-._xň2v$y93>XƁzn7Ubb8Wό'ycGaMR +xJV9mc.>Gq s x-cˀf'얤4qw4K-Df/w]!g4s/bOty*y1-T;g c|ɡ)Cz/<"yO+}Ô _{t֨tW=#} 6n[k3jd:{ AWFFR:DJ,u6ވ:ɳ4,oiToSYL olcjۍ_ .**kR V*U.sII^]#G( MBySI6d2ԵvOS+\fk36-n6T|Zsra8мh3w}^؊%"n\N5 ?d,N3~ܰͬӧ%ɮױ=9N^VṘhKlO3]X͠fyjFFF;j+Ѿ2zw)/V7v '*+{fRGϩRꎳeoK)9+Ԅ٘Iǁ쪺9bX!bb+7 /$DE>?B#˱2ߘۧ d|sc7dDz* ʞyu0[Bz `H|9:oU AbI QrG9|b+7|-~U"}.ĕs^6<}Q#|vz&qOK2z&'q >K'N^iR.,OI셇놳wUC s0!TNxR]\ <ǘ-kᕭ@IFwf/563kG=ݨSۊb t@+2`۶K-mͧ`'C:3ZKz*jŷr1A"7jX_Ev݅_A0 O>CZN致ejg{xI6%\psMs`t0zwRxeZҮghF Q߈üGxOMISJhr*j7Za7ib^үx /,gfF8ߴ՝F5ˎٴ<:wMIsfE,c*74MNB9?90\=Rx-Y43aͪ*.d2HpKMuuIRS7R"<(=ڣ*5My>v= &^cԔ?U/b@㫚D $!5RdCDa|;!Ta@wI"е=Q- # W`WBf@jCbU>&>EV.;mϘrHޅ]fUKjO.-gyLA-@'ɮb5=%, 7I[6D쎝oB<~iTѨfp)vUϢlnQRwd~Gi11m_OSr:GHY8jz78pHy^-a:? 8@%G8ؔr >aͧ:V;Mo3{i˿c `~x熃*$:ؾL51+W?wy<0+ ! m)faSuү#إ:/?Nf q~O>7\\U3oV|Y#mX}Kg'&Y_qstحKSd M.rQ勄NvV[ƒ \Bb}?&CX3b,'LDQp=?:H7嫶*VV?vƾta]F{O(9{XbFB֥L[M!u`5Q Q _%v*\IUQ)D]d;zq]MP1yQ4B|0`-m76Rңv̱#=-Wf%GYq[KY*W ĚԖz@g*c-@&1dm÷ cJA4wX΀ l;myhv_7Zyor "@|ـ:B1xHK*_MN6, N ,|e8u"#^ y kg[rHKOE\V֒/<ɰMDyg/ V\E}v[vYy/HF~Y"q-g,VW!>@IjP XAm0?եKֳztiKQO(ԘNVZ5$!3!ӠТ'Һr YM}H_mUa\;pͺ8GP(yʵr[v/0 a2yÀH;&rD}ʬP5 dEn'rN?k% jw6KJvd7HPy3D+ 7] IƜ->fmj /Lt9"Ԧ DSol' )ϱ]ȝp9z/i-2&W.O'ӈwg*\+;r[BRiACEz=[T,n0έ K1Jb,ڧ] x ,_0$QSOX ~C;%KU_QO]J]Um _i得K;P9CgMv;>!zo_ӔqVJ:g)myn&)L/2F%4%pƹ[xpc`jwVTKm7Xwya@/=(YFw(Cs#QBxaiDh|RAb $XŨ{ LݽR 3a%ÝLe2NEOdE% TV5n_M|Q@ 6b|K㎺DYa&.aUyWZѢ\Bn K7̔v 8n4y~2倎T[ʉ}W=X阳9T_#nɩ?;}}t'Ȋĉ(huu$MVHGѐeKIbHڟGݘȉ@Ir]Ek 9"kϰ,2^<` /^l+r΄pvH@@~P^Hk`;4sOZS!˭8I6J=G(ޮ^)8;ϳ5i-SFyHAy پρ/f)rir4s+AdAB6<:JGpKG+o1/(S?Q5r*+&Uޡ\ SI)!d8M*KʹU{٤+B55< C孙O c̃.8:6+Ə3FZOA.( `?N;)\ `z'cDwy~!7BiXE$SYcǘ Pw0lvs1U.3cul_7BL<#0i~WeS/77@U Iۀ ghquSy̯DYS7w`oo0k1ZFS2>F"nitf72}~tѩUxy-w} 2 ̰Zz~å&g)~.C_xZ=qb~~;U| ]NH˞Ng)`>A)U}KȃN쥗7>F.pG 2zhk4M4k-h-b9a9t~e?5Dj1*~5G5. k@aHHm f?UCZo6k`5e\Z?,poC xd2[).UNY{\:s\.|+5D*&dL2.Iv׎|aNt4jY3pz<=8Y;,V:M~kވ|:j?TPֲܳ#DLӆ_Gni45EAɲ{_ U\+6 |)MZk?\4^BT#jzd]SZcm `GSY?Z$Y,K$.n%C$2_ | uyPl65 QX =[:`Esv,#S Fwx,z6᫛e ng)*=;}i[YO5G/#3WIkݼa uWSOz"jH2l5ʏ69M{:轻K|LRJ/]G+{zSqZTr% å?JkŢ> AS/l|?oH~r%Zw!IA Կwe]%ft&Uұ_ n޻iaݑ岔zVz"1} QvmυZ~/?}SʂNbxt?讨P}tnboHJ5 I\wV 2fK5ZCn-#P]4|ňo#Q[bCiT~H-yes#t1+v3>8mW q#w Zό}ňIRtv6q sإ-QJx &֤}eӜtxN&vo.-b@,u{⬺hb-3 oCA ;_?*@Vam 䍎~ =ѰDD_\QÿY4 <ss 8ʉaszCN)^_ʕrӋ~mp}mGMu8_}Pm4Y*,sOuCIgWhKs p1OuaW}Mzˈ/b߄6] ؀.Z֔,/2 %S_lUǨB"֨vEpUEK gɯyAy?~57n76rSX=9ݖUn5 >DQ65lw&g;6ZN76S93˪JP[?ķ.tt)15fxm9tM\4lbFw算E79~]e>F33]'U:wxe tѢ]pRHE=J>Nl[) "SƧ6i>#yɡ)cwsoWIFO!?7Z'"iW3("6ۜ)`a(".Jn cY#l;x dD{OPŸe?M8ch\SZF DRvqO\$y"e:)/%#{YWC@U_!4Qڻ֪t.Z1j[[ؒBƞ UJgSŨ6YZkLI40t"V3M'@9}JL[ҋ2kW݅C9Hs} &:9aܞhp Nl?ѩ+\u0$բi؟UfƳ0y%O(Ώo%mI{Ѿ3K3)2SOJϖ#"uF˹ȫb%1 =Q^K#J(]YHd&7P}[mAf-OBbyJoh*}թՇs"%!kVH$/*7 ݩYMl,ճte/wVBlQ`֍ |gad~ xt7g F[Y W+:f7.\M4.s*[6LC]9IozeXԥ*/ci`fz|RN\ii~4ϣ@W 6$/8O9(mC{&%X]dJHoq aP=j/2٢xC]RUR.Z̗JUwIP0)M*it܉1vv'?-$0c,gTWlkβzE>E_~7v,s֙K~3v|eG~c߮G@*= 2A>CP›ߟ'dObMfX'$Jp%&YD4Am\&'HQ ьDH+~Gԇ.$٢ш )>T^M|DI0oDz/~OUv9nzKX1 *KKߗKBGc_ؙS'%r#[Y^~VȚMN =Ⱦ 9QZM[DH, x]NsA5qUYe2dףeIw8YO4 SɺH<"j*I}֨]/'"DoFC;a,0Y گ=|j7&ˁ(w],w/{ \U$>&/zOcI5/7-5p/Z6DzK*[>^ˁfGj2wczD`}_zέg09qstx>)8BߩX|Q`ru 2,<+ vh5/79m .L-ϱ?(${f-B@Tx?^#^_{R_HEHi4WsJx/!(%ЬϮHx*,mcGk5ɾ{e2ؽLe#_0aT$N¬)tAs4_z,1(]W"m|y.6.I]Q/QL!#CɵcP FmU79 @o11^x^T'Sİj]xbEpqd; ?MWe*-H qDQ`9I+1ٷ?gz|H cmo![ޮ c](/OzQDj6.!st`U6Cݻ;SIW #}:%-n-xP.jBDʣkr-nD)֩#/ÎȘpd} ;lC4vx%$Fu,AM>PwC ISk8!+@ 2\kPu߭? $:0epeeԍZ %Zm1p(9$!k/cS-#%j0nYp@՚>րf%_-/UbHt[Ҵ7oZ[&BIטF.ܠЯwm -u5I#d!HI m yJ-.>?qQ?SkYD%=.L_17`{J Rf@PܺVwUYZMFlD s-?5"{LحOxJ⨉@\2[k,(- |`26 Fʴ]dEX":\j7~cYG<1nY7|HDVZjS IaDneVF|BԜoY2՜~ ))W`a"0CK6S~St`F׀pskgLWqAE]mpaJ-(#Y{#\#_maw+Y M*Nڟ f!u+@6M,U斱:|Bc|gtG `faj&v hŻWf0Ht)1Ū\Ffۻ߯TpE9U &9OѲ 8W(8S%Sqg@CAcwM& eЛ.O~أ˸*$OlGnj>oCЍ@`qb96}|H$Q"wA΅- }2SvA8E pɱ"' CڤtY}&} (o[ ~-g^E 4l`z?Crk^(Pa#KTuU6`byu)oPobxBZE=-G ʫ *&Oi48b$LM>M1}*ҷ7IK(`Xg,DD[/ǞYYI]l F3ϧۈ 27Kt:xx|78]vx*]ӏo %rEţD+L5*r %Y"gA'*H)E4QqՍ}'i9C p@q0<0ۜıOCu#Q{giH]ƝNjxT!(,0"dZ lJ5J_.vQEH6njMK .q9iq=T֌lLϋW+Z$ȇb|g|l">UV|7^7(t~7a ԑc~J 䬿o հSW:aj 2T3!A,ՅWSoJ YOOO^6v$lweC$?rkjZ6s ┴3µMc52p!9y"JǏRe'"_kg[(3!< PpϐsVU+YgmYq7ʅK P5=k(=>E'jRc7GYpqX ?wpjn֬4HקkgPr?>T}c/6Ex5䦱~sQcj5 hkn,9,oMXkފ􅛷:4zè` a\1jTFƒ[Z6]x=VLPjFKVB΢Zkz~ёu.Iá ٶ/nwA/Qt AW8Q r"U*W-;ݯc) 4t_ N ] wm37MW?X׌'ɋW!2kˢ#zf4)&lb&w:AWjPs} 2D.| NtU_˸8+q~}K?dк[OX-ae ;\&f,zxBdoPЁjyu[zj-mz~L85? m ֚!s<ɗ)ZP]#2@z0|:ǔ6+g+.ǿx|s@f+7=U:WNtWI UT#/]tjγ t3;c4yx搋(6c^+Y&RݯsA^$Og~odl*ZO $ؽ/SyBXTc\'gv"U3<dYn{O8( iY!_|JmVܠTz@^2o\׍ ueS:[ܬUN .s~P c>ԽOv6^]'-Z(|IXZ]#2NuZ NeRf>g=l_ྗqMW3GIUZQ>H);߁G/ YN{a?V(HB3h0\;4 fII l^6lO4?uCD3`[`>D+pL#X@@Ʃ~*CA}KIU&06W(Ф+"]a z˔;G- +X"v Ǡ6g78/__ i×EUJٖ\[zs_}7h'0/]@_)/UIo2qs$a k$5h'AUzΞEPùac5w@ :*ỉ wtL15t];hxOwkcVb\32D2THO0EjvW-yz(GӍЬD"B$g-e cܴ6h,EM,٥FsͦWb4,B3x.[GAD lcKRtXNѼJ`P/qVAQI'f9oY5ֆD.ø\$5K/~"[Iʤ[IY)q^"7;rS?[&F঩+jp:CyS\xSfxuS#^yp^j][3gumyx'}kB^knԴ2}x(N9X ,~A;u%.'bK;(VC!xuӅK\銤!c~PrPwQ|Z۬LQwl: B|a^υQvO7a[i`4Td4#k.&_3iik1x80ߗ% }Bt4y w d5l&7ʋc( +gAW3 0tF } 'wry]thI}Yu6SH[ZkEvxeY$/x#eh˰Q nc+[@lM9 s|{X9DWW=~7 4yP3?NzۻNUz}IqQ۪Z IQΐ'ɻKCsԗ~=6n)'UUCk9Z(;  ݕwra6X~ʞn,bc[#<ЪwDE ~'pI& Sٯ64dӔ61"Uosqt,{+PM|G^%o=7%10;}.[ b~2bN 4+]JN̬ /RgAg9&4ɫ&c*ݕD2jy噞aLpo~ɠ7bPpogeW#RI[OREl_H~ R 1@w^a^ Of=y ;`-ؙo|=$cmѫsYoaM 1#잟^A}X%XTHY|&yr[CE_}:bW՗_Z(bmw>>ِnOU6e9z# sۃ/y_i0OQjoŋPrmatUm&W!Aӑ?"6C`>ȟ6Rr@.܊;||@J[?g;=C6V 3Sj|yL rJ,A 7اő&s. z,0j7;2܅Z?A!U ]ae̘FK k]YZ^14)?OEo⻦o\ &9,ketZtwԄzZDh9]sW:()^Ģ 6_l$Ib ԊuG*vq/Z'!ms4y9k[<D-5 y JMVϽzqiGasecjsγ*nSc[OΝ ֘A0q8DєDq#_tCtB|&s}PDsj1*r=5LܴȂT[UfWu|I#aЦ u=kWhWj )cjug 8+|}g#s,MBzkq׶.%:jO Oq TT(ƒgw.wgNjohgn6U2;e7OU&&?]j ;6A9-4AOW]^C4 k‹h-uPUU 70EkRl4|y}M.m!)#hc@wk#ş8I7M Jj*lS}po-P^ҰfeHEgzp<&Qcw?UsmWC zAKoe6T^dVxr&E~K%]ov|ŰMnjCDW1_m8062،h}S87:YtW7%rEv:2^+N*W鷗B˗O\OAy=v px)hM`ERPg;^NWny>wNuX/|c`o|"8ur\[hu\x =[M^vLn3-~ʆy: zբ;t5K3 ܰ'4  qnF_FƼؤST\HNfHրZrb+˛_i|dbosNmmjB`gogggR#i1w6mmyUlskRfŲLǚn)W7R^ `Y)6pXŻ^,B^րD^ŵ%* =cRwp+r%5K#~2z(:!=]UߘχbZf\P9u~A 킈CK רy\]2uoVmiiw^}F-K@,Zqbg*|!wتgCpq?DlET?sG-Q`^b.Q:`$*6~4?ݽ=,cX9@hkՓg,Q#{Q KvCX?4}>$kH|YlLhz5aYkꖪW)w+{'mU?{AW*?%8t?R[j]/f&GW/a4 c-r %oo i=SՎ؀u:^%e,/\)a^1aCq;9  ~$Xm?[AJ§WYe8Vo5PZ^ذ*anR JB#5luz"4`M j8ї˶e6 UmrG9ۃ#oC TgOIB?DBnziRLZ^q ~w[D>fܽڔJaJgP`64\XH˄ ?QpLCT'/~emz3[x*[9DΝЁuS-w]oExgSST%|6^Г(h2C뾹4$wjS/}|c =Bo4rÒOvbqyLS lF:"/ rsFGGV%f[[fW+nxʕmιRk-/)󼨷PSUe@AuSX.lõz== FbN-4YK<< )C ԕ5(a쳇q_jM9rŅj-BS,e*;TSndFI̦>6(}lk&"}GWK\6d=LEgPsDl=xFgTcbHfriC~ʐ ~J;r /IrVZ<6vL+Z' 'H89[{w-I/Z0#'0@Iܔ&'yp`̣Z8BQ%yzZew׍wD4ohq%&ޑUWmZ `'|AZ) ]#1hE .l@ClW"? 0x* tԳyzKMR_;?I_ߏjcƎހ{.O<\քw3.%tS~?JqpI_H32|MuR'2fN@+zzMXӃ F'8ؖ}9Pϋo@X̘F}nw7f :)du%F"-JUHkCJlJ*~вx]y,1Er=JG1\Ϳhڸeț9 ZAv'bƳ*锜NrڗK Ɩ0+ * bz@ CįBObo>i  =ݿb:=9+a+'1?%*4NZ|%C^N@-e\Xܓs)JN_« 3C1criL|nUo֡V.޾cɱ[E^F$x~#! 0Uo\)x1R!O %: .Yc8;_IP>60-lA4i+TQ$spGK|^fCi#SG'έf%=$_/Ğ S)}; SrW2MCwiXO&%U= "3+1m\߇S(k.SJFn+7HLC<%GpJvQ:=qtҕ>s9(hGF?N(,#ALH?=z;eP8Q5f Y ΪQAxXG]H36mJ*f;<>Kt-@4QAsLǬXjHEzJn}7dž QCrA}ڛ u׸KrEt*ld[D.,2Ql^Ǜwrm 3U V m (osҠ R)4bbNb<=T)ۅ`e SC3v&ZQ?½ 2R-}yG略ibOUiK 3-v'C4jw)Q-FTTVm[95/dԶ [tG]0sM/E| i gÒz,p$b 7S l:~mx=~t$k5A2*y5Io*KޟSZqs8'.l "*[z݃D^i i7[w)W8u2 i}3lwF@]˘149"Wv冚j'1P(L% CzZx G> L~]?D1%-GþnPR#`[ Ab`bs~mW59drj:ޚ-]׫]57'MY`pQϬeEMˇ s݉},͊DюCb Kd Ui[#Rn]|n_sԅ9Lǻ~qD^ikӽ,2cu=m\P!{|\'grϚo0>ߒ5Q#OctPr|\;鞥ʍ109+/zKld%XYÍL5l}&, 4k'(OРIѶʫw=,p=+/_2kdg HY @˔O4KNQn*x͚3iUKf60|FTSr־PLo>g)BHTԽ+FY§q MDU7掌}DK߻^,]5"p, v.iD[ɢDo9 pRzv$GoհQq _B0?_y43W$Ң:b+= J1PG $Enl:m4>.N'64Ъ=l'Sj W] #%~d*G$ڌ՟wlNd6-PoҌ̐Elܝs߶zm]FT 1zW1AV3ab#ݽIWh^E{YLr3eHW{MmȻ"VNb@@Ռe9')4L@v>2HutGL5gͽؒWLvg䣞O, 0$Jhd[{خzPrhDjN5}b#W(=mL~! ^.ow,2q@Ϭ_P4Sn"Nw_:pΫmKĒMKFNF2j@h?&Jmo}Ӄg3wt+5X1s#& VuO/4:hlID \\yw/P)ڠ.KJ]q//XI9n, /9*5-zd*d`i +"g\3??'+ |D_aevdLaÞ^|MhV),2լ>kjξH2J,iIu7F&h'EB&i嶽u?.ӑr;oD!^ s[#WǷ\D誦A&iJ_vű%M!#_*B+jY t,(&0t] `2p6Ȁv&/Mw ALBәz;݇^;fz"_(+){uJ<6QhɍUU!ࢵK%bf(5U*,>K"ScY|0g&b1WҴU?}km/A Pl/fkLUn`@xxuNYk]Ӗ~"ʚ~[Ӭa(uIn}]2 DóT[WWA/NΆ|eWLn` a=[{pghrDv!h,_[NJAO|NOVI1z<$z+~[F yQA2ÊN>AXŸwuĮR.M&2ND"32Z',-x dxՓ>ʃVc:z\Z?QhTW)̒XpQj9׽Hպc}D^mL S {c0$S\6M)hǼJ](+\btMs~ji2g\%.;zO^S/?%1x0ׯ7^)>aztk8v`hV[H\5X]堚P~Vo. ,w'EV#@:$̚ru{1]_tpIQ%^@8)C5"RF=t XO''}m0I0>K~v_sj((Jnc>U)\QN ȹٲv3T`m\nj?7?򙙟 xCU]}g_>lҴD*VdžI fO *8(eխ=@Ĝ\gp2M4c 3eI(N></r]OMX{aеy V,4M;<*f^3%`ep89YW]s嗣4rJV lGŘZW̊νFQ]4Y%V!dcMOU7kep7R:F =S2LXJ܀ (<o9[)%T/[ AcNMf&Ƴt4"^3bWr?6;T[cM )$لqivMO׈a'PKm#)ruWG^߈1 hgv-FGci)TT ğ7J= (aDkZdau֤\* M !ZȤWbb]oI-c鹅<QP&< (:ָʧs=y͚aOA VGh tY-"uR12LOF"0)+ `kl|{^tcX&.jy+̞?NTo`ZxG95 peejBQʘBR6&"(qq񸇘uٿxWzcz]v$zI7q57ya.Y+B w(ˍ\M0l=ƿ$xwQ {bԋ U'G( &x4(Eʿ Y➼¦LNNF6Q]PIGݑb`#i;۩_aWғ~p '!݆1UxJghs- ", adI*~IWcU8Gӱ|_w*4pyWu7M%7(iʠfT]f|l$׼ Ѿ!jD׻#Bd"qM~JK3I:])ߧ PIfqP߬%JcVz,#BE_~`ñ]%Zum,6D,'Ac4tʯM:I(ZIgS~\B.A~u84 1)H]#1yKq4 ἱ+ oo*h)k ߨm@cDW2&}SBbQ: Wo>O>"&",Rj^#rd!M?o~mȤPNX`*z0/ǎO{*;;۾[Vm)GEОMxt]("nb\J ͗لPD^/@W{49Nߵd,NcX_d)UNWY4ԎPAYTJ〦0tmQ˜0MxZ;\l߶GT_i$VQI§a@cQB<: KjP-`:+qS}&q1YS#rɚmZѡvo76#4X y+/R}+m6;O{ϑɃMnn[_[oLtj(vv6^&~q$dmG$(i,}8`U0i|֫yb3J%bctN^'P/XC̎:ҹo/eAd"h_TcC8QT= v!Ґ:<-QJ穼ҟE̗SOgq00+ͪne8Ȭ "o>%cf$4; O<ȤEkg.ÝohQ"pA1X͜.ռeb)k?펟0=OY0I<ęBˀijYeCTǷ7xѧNgNS˳ud"{[Z tʏM+#j/pB`/7:i\ ^D[q%Q:dҩTԼBonɾM=hS 3D(-K21*\U&ZbO Ҕ :^ї"ciNV[ ǁ6Beo'S6ui>7M4A""\w<5S~{SًȰi~YnRVλ{sncr L[} o?NPp>Hq%TgЅ۶ȪZ@ȮPplZ+ҟ%}k}sH{L;2!~K%?#V"顫>B{CKܹJoy!*/Zy3Rȝ,f_1Ț{EY@i*lZf:P ,Ub][GaW%-ny*#)T|fnd"BID 8xe7^[t߭]M/J?΋1Ⱦm];1.Ѫ[S !57hm9(C$q,~$@&em<~޹sV}x9aBi;u'ph PZJI5:=qc~؟I7uJ2nm(@{&kIw7CFA<ĉu2jC YFU2sJ?,ұŤدEXNdzkwMhEAw>k܀Ӓi<{f6-/%^2-P3aW-oa $l@s)IW 2*ߞ*9:óP7"J*A 1ܡsC:@:'^q k0>S7efk4bXp2[6> %ԯqj;|]A aKҁ- ,Me^|F*q6?o##@#봪C ղ* iL|pS-`|:χ O3(ꧏ5D މ<Q#.[I[Ɩɖ"# 5(}#u: k9~ b iaWIɭDNg+gmRq((kU:w#ɢ٤c˿E_2?+)[}S>8]MeR3$Fp2y/v tS>{35Myxx)Ζ2AiHQkcHe0χð8I%+ ɞ=1;#|-뱈D,A0#ZseR4b ЛgkU?]It*Gs]ςLC9C^qc`HI0Gc,Moy.ᩜ,. 3,}Ea#ze"_öP0Ϊ&ns(;/_̫6ٵWn/ Xes#Jd}vX1(YW~'P>.Sɏ_oA 陫9pd}^DqlЃXoY槨Rw1Ηxuhр\Ե~=zވq k&27uP"ET#[K8  jύ.kSߡ&B||ɤK=5>~ jf `5دc#=}3e߼1#7|9Y9ȡiרKL3'Z+-K1ABB=ʗ* V۪'N1L3> wL >C$\i?@ʣ~ *259>iVw yNڷ8pIi ?Kn-Gd/]~&keÍ';\-kr| @ܒVJ޹L5X2T 0ʷ0& `35wY s l7b's;j< Nr=FjZU vȰ-gQ%o#>"|EtxUSBR >_$/%F_82(NDѹ68.)/pW@!b(d`JU7LRX~24@\GH I)RfX8@9$Un4O,C>D='#o&=VohSv*\g3"kc_) oR_+܊G /DURc3`k-!7\%h3ե v!+%į#aFK8x8s[krs} u.rAV_ *' K ` ?g|ɻWn6-a=ਤx [`pM焿~+5yI|{hg`x2Q\}b ؚl/fӹ/}i'^`m ^zriB^ngBϊ;IP ѮK=+u+` O-rm;o{]_ǻn'xNoEr&ed&};Ę֋7 bV9WlT.DYIXީр23s6< ne7#$x5DjJ6^%)  &5ƕhg>$n7wR5AζkfI@?'ǭ?nϞ7w*w<V~k7YA yYTnT`h,s*"))NCڲ@ك\Q Ñg|"taF8,tc'MGb}hAGK5ƹ2!$C{ :r{%JG#ٙ:ЋL0^$ZVvwu-kU#3 aOScȑ:N8>ljTcnMQFVcBz59mW8rT 6X)fڜYT_8n+xp!5Ovp_w9) 5VCLf2hH\rhH-N{yMӜK@sY~zj0o;+ʴCY]9."amjf YfzYZ3(aou>@kZ&CgVKlx Ƽjq.HU}9bxc1Sxo#O~]ro%`&${ΒR;ُq%? G#˱t;(M $ңM|ڊIp5{r12wP=W9ݸԪqcnh̛.RqEx; Ô ?M2;8K(udv0|p]`Q#@S\ιy< -N˙4jT Ov,`;~J ^;ao@.}&T) oExL%& ѣ ) $Mf!yHgH% |X_G9  ?t# =SԷǵQ * W{!=o|+ qV̸[_e7~Mg%YN|NRgwv?>Dez>Q}"׀dZ]b["dXhɃr}-rů$j=u4/5˓SٔHj`M׏~Jvܪ Vw; "`wx]n/Pzq-gfsoT$}Jg#9h_:j8E=LⳫd$\$OCq4 K $}sL㘴C} cCGWOP9D,υ}@-+;d$L =d+#a\Ưj>{; 9$ρ-A;[Gx;q𪿨)T]ʫG2Ҵ[oS4gɢZ@)K]͊@m`6kFשVQaN~(-CiUG$b:KU?,=ฒjen S Ug޿>wH"%}9k]Ĩ:NE /Lo_*e&΍y[l6RTÑׁWMqwYӶ|sReȢ&%{q3@aFUoBO) JдEb^cwq'd´k+YNN ?[)LvCUb/~b ,sS'k-tٓzz}7gr%cBVJ!* Vh"$9NܢH)O]`>F1ݭ\_UMZ,_W?i?·V;TbS-q#x&vxev>o#Yqo_3K/nȘw'~J1D i)k'@u?JB9.MvG6p֭m5nq4:/tT'`7cqC`-SV*~h}F=hһN;A;@Х_}ĝ]`qRM7Ƹ wzxBZN.|d> 5"{IiY8FStUTܛp,5"}J%lߤ,_ld Biu߆#;@5y5zJM]roWM3qdh51Ϧ~Ča?.Q!ID'=z&0vTD 4$w&MfMu 0[עv:OnT(p2r <_ePr)IHdE'bp\ShޜS\^z=@f'65ܘlvy!4$w,`/HПQMςM t}żOAkl8"\L]5T{~sTD" s;9jÜ;bV ԇxnc4= %17e;k|?֥lʃ wLmYm6m>OFrxyy]&_Yw9zס>á ~`"ڜF\(8LDRֈ"`Hk4h+J[z \s wϾڈ`R*[ܒ)y+t;'( z+͏T[1~ɰ.dFO2R_| ȵA\wO=01%֘Dp/\Gf!41!ӨI'EG{ q<~[>0їgEyݲ=YxU9efUPLK6-L6n4U<U\<6`O[CWSt_U'&Seϐv~>KG֬l,ÚnEz7p#LA t;sZ׏@M,pBGG5t^zkh.ۥX")8Aሪ'#TW+3P-yO{z [ '"iy eH=(-fҹ"ˑ}𷈠WFC :5wHp FF9 ' OULɏH-F^»4 =e),9[ }K~92[F(^ꟂG"ѝQqv㘬IS]rL#.,LLϲ3't|L6>RaX3cH|ҷM0>ѰFFLzZ&_E[[Ŋ+j&; c%I,sojEԘ 0_$F©8Q`A:D(Om>ànĤQu)Ї|m!NLpok؛4zKRv!`+=Mvp^iZ>Her*"XCݯf06=4B?9Xu,a,/,tktr} o2ű ƇqeCkT8 CO)[jou}ĒU$ݴ< aw1Œ#o`^;/'`w%Sju~k *ʆe :muR嗷~lWci?wW(Q>b<,8cJEd}URE(30vjYꓰ<')kˊ~hBY<ɖ/ 4[E(?E/#M/# :JFYA`t]Z+oȂ鯗lVȸ˫Dfv yy# :J=hw`Ʉy8}ul@&$δg*Z(rOkA7-?JlAWF+uWXNjmTa'<2/*n?zpf141-j$Xv?R^]Vu\nmPqH1zה0a/1u<;cP2&-a.uZQz;׸g5kACyo [҇)+ ,zdeZg2+ LWX͞JŒ=V1 #:IA+y?5AtWNQ+R$3x)voykfjnREzBԻsO68@Lj;"1'ro wXNo|.Ո5cJ޸)39?e=-Vc;0Psd 8S!~?9)&ԧf9IKS>5YEQml%VvwNy? )(`QKklo^aO}0 j1|17Xʼn s"f!\/zn%nzV A9dOTOq6rՆ(Aa ׌\ǻ[=üyY[H OCUj?:?Y1l_OR_PF S]=]-EdKߟi?jc'TwW߇yGʿO%ˊe#zGt0{v>CKxooxEƕ g>3qT9Ѩj>%C^~獺/&RP4,NBSNl;ۑ_A$Qwt\WH堂h7 V: gwN?x f+Ԅ!Fټ<}6oQP dÑ%$jNAzxPD GܯO1_XqpYÿ$œ T-tཻĬd$tcV?2Uyi0z侁 ۹Z9;MCIʹA͹ uڑ51 GH5֣xhzGτLw`H&ghL7_o⵼7-{[K136aCХ{-Tfv[XIu|@ oHu{,ڰFVI1ż+*rl-&Kb}##рP)0 XQqA.Fx)6S!Lza(K?)/S5n;rHX6MuVpoۖ3=o:Dv569 唭O_Lw{{|UI|ܜ{k]^EqW'{>I>FFuk>P)߉ \uw^/z֨83gTFBXإg| %{!AD[Un*K>;X_a|* Eg'j##a'":WYv 3 m~!Md6WGtPx˥,j?Fr:Z~mɶ8P=~7=؈k'0zֲ#񩁾.}x-ZyXE$FWNͿZţţHwS?ww0paK!ځ-0:0967_ڟ:"4(; Fƺ{o$*՗=NC"<}qa&0Kw'#܋Pы0nOl0ث`*lpOOljj'sPb7eOW) >= ۘe"-?*E#2E jrue`D\ę{$Q{LTJn^赕.k%FX!i9"̘meS Te$ pG;%m_Ƈϓ3헱, n[Cn>r/|"2|&A5 d'/yql>\=cb']r۲{3h긣SH^?P2Xض!a2!R3HR`mu*bG)t}S^|RUϋs)e;’^nF.fq5:Ar/.Zv@bzK#~νrգ Kص8+kP'Y݇EB dGXF}ʹ&\>htÁ``t_,N4.ėaȋ W_ssŋ09xwn.jkA%wr+)wt;SZ(RHj!d' k8 戂\>W7+/Nm 9rv]T6iKz٧rh5=M+΢2C|S-?VX /4|W8\ VMWU5tbAk~+-}rn%24p rE~>\b}Q@p,s#OAexеT>cԊeBb XJ.gA29-m8!L1;8NGwYD۞Rm hBؙ"V4FKsp#x8znNvIX.Zm9re5pKB67-D0cg! YO^gTN ߆ߪzjc(f[L1 -f謫xKԢVRK hщFcL:QH2ݗխGzΕLcB% ف7YATEtHH"sE /GTZS?AR)Ͼ_5j\F |9:X }d'mΟGh,W`Vć4-M6nSs23cϔ?ȒyxIWhaΕI7JDx9R1j)ݍ%||(u8sbDZ,HNf|n ګř7AW'.H!x`<<@rѬvܗȒ7J:iɺ\ρ[6jcWȶ|U޹zb_u\!XÐurOC'mDG&BN ,Sډ_MvЁNc\~/x]@߿!W}r(ft05pzvqxلrH[lw[&'+l_iׇ0]tfo\;\Q`ZL`ĺ=+3I中XUX"B:<mdrj,q219 ߕgHԙ DX&3_<ЧfUv]MAC}ߦQہ*&5@M|9^'Rwg$2cRŧH+tru#y$#aKW7td!ΰ'}&cU?ѽ~T"]>Jh&#dRfὼ^5~T*6ߺq>xdPT5n&Ii!GkH8[/DM@3P ߇aFȚŽLsmb_K[),kZl=~0қ <&Q>9tt/.A= d9д )l~ pl1L`)"ĥ$A0$$K]AOoTIlUw) 1=è9+@aڌի/L]e!OoDЦ9s;(l~T^Qݘl sSGID?Rrͅ18 8ϝlss(hcr FD'4Y`˓63ɒ `3,BIҸ\u[>K`j鵟&m Guo1gyA:Cݹߥn0 yoa5ꆫF4pnn,F +1I 4 Z '\ґL=i|eHݜx"ԉ!9q~{dc~ vo+{<7뛣Oc.\ҦHq}_C=XRԦI=%]/Qb6sG5:s,pqS@%3؅^ ZHYu(?'d_˼ƚ\P:fU0#wTz|@rhV/lVp%)Fau>ȆTzAhNJo?(PJZ4Q%fancytasks_1.0.94/TODO000644 001750 001750 00000000244 11436144322 012725 0ustar00000000 000000 - show notifications connected with tasks (?); - add new animations: zoom fade, squish and spin jump (?); - replace taskmanager by own dock management library (?). fancytasks_1.0.94/CHANGELOG000644 001750 001750 00000023775 11436144324 013467 0ustar00000000 000000 1.0.94 (28.08.2010): - use action settings also for tool tips and task indicators; - fix highlight windows effect in tool tip; - some other fixes and changes. 1.0.93 (27.04.2010): - fixed possible crash when checking for task window. 1.0.92 (25.02.2010): - fixes in icon rendering. 1.0.91 (03.02.2010): - added settings to manage how icon actions should be triggered; - initial work on option to show only tasks that have corresponding launchers; - applet tries to maintain it's center point on desktop (when unlocked); - code cleanups; - some fixes. 1.0.90 (02.02.2010): - removed custom tool tip implementation; - removed QImageBlitz dependency; - code cleanups and small fixes. 1.0.0 (01.02.2010): - first release of milestone 1.0; - small fixes. 0.9.9a (26.01.2010): - added workaround for bug that could cause applet crash on desktop containment on KDE 4.4. 0.9.9 (24.12.2009): - added new themes: Snow, Black Glass and White Glass by Tomasz Dudzik; - use middle click to toggle Present Windows effect on group (KDE 4.4); - use group menu to activate window when dragging something on it (KDE 4.4); - new group menus that allows to: - drag windows from menu to other desktops (dropping on Pager); - invoking window context menu on menu entries using right click; - activating window when dragging something over menu entry; - initial work on use new native tool tips possibilities in KDE 4.4; - when focusing applet set focus to icon of active window or group; - improved dialog for adding application launchers; - center all pop ups over icons; - fixes for icon glow; - fix for possible crash when painting task light; - code cleanups; - other small fixes. 0.9.8 (14.09.2009): - added hidden options to not paint background and icon reflections, details in README; - fixed crash when removing "tasks area"; - fixed task icons arrangement after adding "tasks area" after removing it; - fixed blink animation (caused some icons being not painted in default setup); - fixed saving and restoring configuration in testing panel; - fixed animation for unknown job progress; - fixed delayed close of jobs; - disconnect task from launchers when changing strategy from "no sorting"; - paint reflection always on screen edge when on panel; - jump animation direction now depends on applet location; - other fixes and small improvements. 0.9.7 (09.09.2009): - added possibility to add menus; - added entries menu also to contextual actions; - added possibility to control group windows using task indicator; - improved applet behavior on vertical panels; - improved testing panel; - new spotlight image by Tomasz Dudzik; - more transparent focus indicator; - code cleanups and improvements; - other fixes and changes. 0.9.6 (25.08.2009): - enabled panel controller in test panel; - added initial keyboard navigation support; - added effect for icon that has focus (artwork by Tomasz Dudzik); - added option to set effect for active icon (active task or active group); - added option to show title label for active icon; - added fall back group menu in case when default Plasma tool tips are used; - added patch to improve tool tips behavior on dual head setups (by qwertz-1); - improved trash integration; - better reflection contrast; - use Plasma tool tips by default; - preserve initial arrangement when opening configuration dialog for first time; - improved animation handling in icon class; - some code cleanups and improvements. 0.9.5 (16.08.2009): - added experimental panel for applet for testing purposes; - added option to use default Plasma tool tips; - added hidden option to set initial zoom level for zoom move animations (add entry "initialZoomLevel" in applets configuration file with value from 0 to 1); - added dialog for searching for applications to add as launchers; - add "Empty trashcan" action if launcher points to trash:/; - many improvements to icon positioning in layout; - load favorites from Kickoff as launchers as default set; - fixed previews not always shown in tool tips; - show task icon instead of launcher when no sorting; - moved configuration related methods to own class; - other improvements and fixes. 0.9.4 (09.08.2009): - added possibility to group similar (from one application type) jobs; - added possibility to connect job with task of the same application; - added option to set if job should close after finish to job context menu; - improved highlight window in tool tips, idea by Steven Blenkinsop; - improved window minimizing effects; - clicking on icon demanding attention (any button) will stop demand attention animation; - fixed showing of drop indicator when dragging over task icons; - fixed calculating of active icon. 0.9.3 (19.07.2009): - initial support for showing application jobs progress; - added job progress artwork by Tomasz Dudzik; - fixed minimizing of tasks when applet is not in panel, idea by Sandro Garcia; - code cleanups; - some other fixes and changes. 0.9.2 (15.07.2009): - new default Air theme by Tomasz Dudzik; - added alternative dark background and moved along with old background to themes directory; - readded option to set custom background; - fixed not embedded parts of theme; - fixed possible crash after canceling group settings; - code cleanups. 0.9.1 (12.07.2009): - added Portuguese translation by Sandro Garcia; - fixed painting of background on desktop; - fixed compilation bugs on some systems; - fixed possible crash when closing applet with tasks connected with launchers. 0.9 (12.07.2009): - added support for KWin Highlight Window effect; - added support for inserting separators; - added support for showing tasks not only at end of dock; - added arrangement editor; - added glow effect for previews under mouse cursor; - added title to icon context menu; - added workaround for showing hidden panel with applet when one of tasks demands attention; - added Russian translation by Ritt K.; - some theme updates by Tomasz Dudzik; - highlight icon effect replaced by glow; - use middle click to create new instance; - open launcher of task icon using middle click; - close task when using left click with Shift pressed; - improvements to drop indicator behavior; - improvements to icon animations; - improvements to text label painting; - improvements to launcher to task transition process; - always draw reflections; - draw light on reflection; - code cleanups; - many other fixes and changes. 0.8.1 (12.04.2009): - fixed performance regression; - fixed crash on applet creation in some cases. 0.8 (12.04.2009): - added dock theme element (based on Sabre Tiger Plasma theme by Eldarion); - replaced solid color dots by themed ones for marking icons with running tasks; - highlighting animations now use theme elements; - use standard active state effect for active icon; - now it is possible to adjust size using applet handles when on desktop; - always paint background when on desktop and never otherwise; - titles font size is now proportional to icon; - fixed crash when clicking on group icon before tool tip was first shown; - fixed crash occurring sometimes during startup to task transition; - next round of cleanup of configuration interface; - some other fixes and changes. 0.7 (31.03.2009): - initial support for launcher to task transition; - re size panel if not maximized and applet size changes; - make active icon slightly more transparent than rest; - added possibility drag task icons to Pager to move their windows to other desktop; - added possibility drag launcher icons and drop them like normal URLs; - added context menu for launchers on tool tip preview; - show tool tip when dragging to group icon to allow activate one of the windows; - improved alignment of previews of multiple windows; - improved manual grouping; - improved startup to task transition; - fixed high CPU usage when in not maximized panel; - code cleanups; - some other fixes and improvements. 0.6 (24.03.2009): - added visual drop indicator; - better window thumbnails with Composite; - icons are now bigger, especially when reflections are disabled and selected move animation does not involve size changes; - reuse tool tip instead of group menu; - close task using middle click on icon or tool tip preview; - added context menu for tasks on tool tip preview; - left click on file tool tip preview to open it; - split long words in tool tip texts; - keep files thumbnail aspect ratio; - many other small improvements. 0.5 (17.03.2009): - added live preview of windows (when Compositing is active and Taskbar Thumbnail plugin is enabled); - improved generation of window thumbnails; - cleanup of configuration interface (some options removed, other moved); - added simple effect for mouse press; - use theme color for highlight effects; - use generic name of desktop file if exists; - draw dots on icons with running tasks; - moved middle click preview to standard tool tip; - simplified reflection algorithm, now they don't jump anymore; - added install.sh script. 0.4 (10.03.2009): - improved filters; - added initial support for sorting and grouping; - added support for translations; - added German translation by Jan Gerrit; - added Polish translation by me; - added menu with tasks and shortcuts shown after activating keyboard shortcut; - added menu for browsing contents of directory for shortcuts of directories; - improved menus and tool tips positioning; - switch windows on mouse wheel move; - first attempt to separate visual and logical parts of icon class. 0.3 (24.02.2009): - added option to set (maximum) icon size; - added option to show only launchers; - added option to draw link overlay on launchers; - added possibility to rearrange icons by drag and drop; - added small spacing around icons; - improved reflection algorithm; - keep window thumbnail aspect ratio; - respect Plasma lock for adding and removing shortcuts. 0.2 (22.02.2009): - improved stability; - improved tasks window show and hide actions; - added option to select own background file; - added option to set delay of window activation when dragging files over icon; - implemented setting of icon geometry for KWin minimize effect; - background is now not drawn when there are no tasks. 0.1 (20.02.2009): - initial release. fancytasks_1.0.94/README000644 001750 001750 00000005062 11436144323 013121 0ustar00000000 000000 Plasmoid providing a fancy representation of your tasks and launchers for those who need full power of task manager and fresh look. Requirements: KDE4 >= 4.4 Warning! This applet uses standard libtaskmanager like other task managers in KDE, so before you report bug check if it also happens in other applets (for example Tasks). Included panel is not stable yet and has some issues, use it at own risk. Tips: - To make applet more usable you can put it on panel with enabled option "Windows can cover" or similar. - You can use theme with panel background similar to that of dock (for example Sabre Tiger) or modify current using Desktop Theme Details. - You can add launchers to applet by drag and drop of URLs and desktop files when Plasma is unlocked or using configuration dialog. - You can set "No Sorting" to make tasks show icon instead of launcher icon (not in tasks area); - To show only launchers you need to remove tasks area item from arrangement. - To show application jobs you need to add jobs area. Hidden options: You can set them in applets configuration file (usually located at "~/.kde4/share/config/plasma-desktop-appletsrc"), in group containing line "plugin=fancytasks" or "plugin=fancypanel". - "initialZoomLevel" - initial zoom level for zoom move animations (value ranging from 0 to 1, default: 0.7); - "paintBackground" - decides if background should be painted or not (true or false, default: true); - "paintReflection" - decides if icon reflection should be painted or not, note that it won't change icon size because of space allocation for drawing task indicators (true or false, default: true); Features: - manages your tasks, launchers and application jobs; - tasks filtering, grouping (including manual) and sorting; - keyboard navigation (Tab and Shift+Tab); - launcher to task transition (icons of launchers with running tasks are hidden); - preview of windows with (live previews with KWin Taskbar Thumbnail effect enabled); - dropping files on launchers runs command with parameters or gives option to move, copy or link them (if this is directory); - visual drop indicator that helps in manual tasks sorting and dropping launchers; - possibility to browse directories of directory launchers using context menu; - possibility to add application menus; - menu with list of all icons shown after activating keyboard shortcut; - configurable animations (zoom, jump, bounce, highlight, etc.) and appearance (optional thumbnails and text label); - fully animated icons (including animations of starting applications, tasks needing attention and application jobs progress).