//=========================================== // Lumina-DE source code // Copyright (c) 2014, Ken Moore // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== #include "LPlugins.h" #include LPlugins::LPlugins(){ LoadPanelPlugins(); LoadDesktopPlugins(); LoadMenuPlugins(); LoadColorItems(); } LPlugins::~LPlugins(){ } //Plugin lists QStringList LPlugins::panelPlugins(){ QStringList pan = PANEL.keys(); pan.sort(); return pan; } QStringList LPlugins::desktopPlugins(){ QStringList desk = DESKTOP.keys(); desk.sort(); return desk; } QStringList LPlugins::menuPlugins(){ QStringList men = MENU.keys(); men.sort(); return men; } QStringList LPlugins::colorItems(){ return COLORS.keys(); } //Information on individual plugins LPI LPlugins::panelPluginInfo(QString plug){ if(PANEL.contains(plug)){ return PANEL[plug]; } else{ return LPI(); } } LPI LPlugins::desktopPluginInfo(QString plug){ if(DESKTOP.contains(plug)){ return DESKTOP[plug]; } else{ return LPI(); } } LPI LPlugins::menuPluginInfo(QString plug){ if(MENU.contains(plug)){ return MENU[plug]; } else{ return LPI(); } } LPI LPlugins::colorInfo(QString item){ if(COLORS.contains(item)){ return COLORS[item]; } else{ return LPI(); } } //=================== // PLUGINS //=================== // PANEL PLUGINS void LPlugins::LoadPanelPlugins(){ PANEL.clear(); //User Button LPI info; info.name = QObject::tr("User Menu"); info.description = QObject::tr("Start menu alternative focusing on the user's files, directories, and favorites."); info.ID = "userbutton"; info.icon = "user-identity"; PANEL.insert(info.ID, info); //Application Menu info = LPI(); //clear it info.name = QObject::tr("Application Menu"); info.description = QObject::tr("Start menu alternative which focuses on launching applications."); info.ID = "appmenu"; info.icon = "format-list-unordered"; PANEL.insert(info.ID, info); //Desktop Bar info = LPI(); //clear it info.name = QObject::tr("Desktop Bar"); info.description = QObject::tr("This provides shortcuts to everything in the desktop folder - allowing easy access to all your favorite files/applications."); info.ID = "desktopbar"; info.icon = "user-desktop"; PANEL.insert(info.ID, info); //Spacer info = LPI(); //clear it info.name = QObject::tr("Spacer"); info.description = QObject::tr("Invisible spacer to separate plugins."); info.ID = "spacer"; info.icon = "transform-move"; PANEL.insert(info.ID, info); //Line info = LPI(); //clear it info.name = QObject::tr("Line"); info.description = QObject::tr("Simple line to provide visual separation between items."); info.ID = "line"; info.icon = "insert-horizontal-rule"; PANEL.insert(info.ID, info); //Desktop Switcher info = LPI(); //clear it info.name = QObject::tr("Workspace Switcher"); info.description = QObject::tr("Controls for switching between the various virtual desktops."); info.ID = "desktopswitcher"; info.icon = "format-view-carousel"; PANEL.insert(info.ID, info); //Battery info = LPI(); //clear it info.name = QObject::tr("Battery Monitor"); info.description = QObject::tr("Keep track of your battery status."); info.ID = "battery"; info.icon = "battery-charging"; PANEL.insert(info.ID, info); //Clock info = LPI(); //clear it info.name = QObject::tr("Time/Date"); info.description = QObject::tr("View the current time and date."); info.ID = "clock"; info.icon = "preferences-system-time"; PANEL.insert(info.ID, info); //System Dachboard plugin info = LPI(); //clear it info.name = QObject::tr("System Dashboard"); info.description = QObject::tr("View or change system settings (audio volume, screen brightness, battery life, virtual desktops)."); info.ID = "systemdashboard"; info.icon = "arrow-down-drop-circle"; PANEL.insert(info.ID, info); //Task Manager info = LPI(); //clear it info.name = QObject::tr("Task Manager"); info.description = QObject::tr("View and control any running application windows (group similar windows under a single button)."); info.ID = "taskmanager"; info.icon = "preferences-system-windows"; PANEL.insert(info.ID, info); //Task Manager info = LPI(); //clear it info.name = QObject::tr("Task Manager (No Groups)"); info.description = QObject::tr("View and control any running application windows (every individual window has a button)"); info.ID = "taskmanager-nogroups"; info.icon = "preferences-system-windows"; PANEL.insert(info.ID, info); //System Tray info = LPI(); //clear it info.name = QObject::tr("System Tray"); info.description = QObject::tr("Display area for dockable system applications"); info.ID = "systemtray"; info.icon = "preferences-system-windows-actions"; PANEL.insert(info.ID, info); //Home Button info = LPI(); //clear it info.name = QObject::tr("Show Desktop"); info.description = QObject::tr("Hide all open windows and show the desktop"); info.ID = "homebutton"; info.icon = "user-desktop"; PANEL.insert(info.ID, info); //Start Menu info = LPI(); //clear it info.name = QObject::tr("Start Menu"); info.description = QObject::tr("Unified system access and application launch menu."); info.ID = "systemstart"; info.icon = "Lumina-DE"; PANEL.insert(info.ID, info); //Application Launcher info = LPI(); //clear it info.name = QObject::tr("Application Launcher"); info.description = QObject::tr("Pin an application shortcut directly to the panel"); info.ID = "applauncher"; info.icon = "quickopen"; PANEL.insert(info.ID, info); //Audio Player Plugin info = LPI(); //clear it info.name = QObject::tr("Audio Player"); info.description = QObject::tr("Play through lists of audio files"); info.ID = "audioplayer"; info.icon = "media-playback-start"; PANEL.insert(info.ID, info); //JSON Menu Scripts info = LPI(); //clear it info.name = QObject::tr("Menu Script"); info.description = QObject::tr("Run an external script to generate a user defined menu"); info.ID = "jsonmenu"; info.icon = "text-x-script"; PANEL.insert(info.ID, info); } // DESKTOP PLUGINS void LPlugins::LoadDesktopPlugins(){ DESKTOP.clear(); //Calendar Plugin LPI info; info.name = QObject::tr("Calendar"); info.description = QObject::tr("Display a calendar on the desktop"); info.ID = "calendar"; info.icon = "view-calendar"; DESKTOP.insert(info.ID, info); //Application Launcher Plugin info = LPI(); //clear it info.name = QObject::tr("Application Launcher"); info.description = QObject::tr("Desktop button for launching an application"); info.ID = "applauncher"; info.icon = "quickopen"; DESKTOP.insert(info.ID, info); //Desktop View Plugin info = LPI(); //clear it info.name = QObject::tr("Desktop Icons View"); info.description = QObject::tr("Configurable area for automatically showing desktop icons"); info.ID = "desktopview"; info.icon = "preferences-desktop-icons"; DESKTOP.insert(info.ID, info); //Notepad Plugin info = LPI(); //clear it info.name = QObject::tr("Note Pad"); info.description = QObject::tr("Keep simple text notes on your desktop"); info.ID = "notepad"; info.icon = "text-enriched"; DESKTOP.insert(info.ID, info); //Audio Player Plugin info = LPI(); //clear it info.name = QObject::tr("Audio Player"); info.description = QObject::tr("Play through lists of audio files"); info.ID = "audioplayer"; info.icon = "media-playback-start"; DESKTOP.insert(info.ID, info); //System Monitor Plugin info = LPI(); //clear it info.name = QObject::tr("System Monitor"); info.description = QObject::tr("Keep track of system statistics such as CPU/Memory usage and CPU temperatures."); info.ID = "systemmonitor"; info.icon = "cpu"; DESKTOP.insert(info.ID, info); //RSS Reader Plugin info = LPI(); //clear it info.name = QObject::tr("RSS Reader"); info.description = QObject::tr("Monitor RSS Feeds (Requires internet connection)"); info.ID = "rssreader"; info.icon = "application-rss+xml"; DESKTOP.insert(info.ID, info); //Available QtQuick scripts /*QStringList quickID = LUtils::listQuickPlugins(); for(int i=0; i