diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,10 +140,10 @@ plasma_install_package(desktoppackage org.kde.plasma.desktop shells shell) -plasma_install_package(layout-templates/org.kde.plasma.desktop.defaultPanel org.kde.plasma.desktop.defaultPanel layout-templates layout-template) - add_definitions(-DQT_NO_URL_CAST_FROM_STRING) +add_subdirectory(layout-templates) + add_subdirectory(doc) add_subdirectory(runners) add_subdirectory(containments) diff --git a/layout-templates/CMakeLists.txt b/layout-templates/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/layout-templates/CMakeLists.txt @@ -0,0 +1,2 @@ +plasma_install_package(org.kde.plasma.desktop.defaultPanel org.kde.plasma.desktop.defaultPanel layout-templates layout-template) +plasma_install_package(org.kde.plasma.desktop.emptyPanel org.kde.plasma.desktop.emptyPanel layout-templates layout-template) diff --git a/layout-templates/org.kde.plasma.desktop.emptyPanel/contents/layout.js b/layout-templates/org.kde.plasma.desktop.emptyPanel/contents/layout.js new file mode 100644 --- /dev/null +++ b/layout-templates/org.kde.plasma.desktop.emptyPanel/contents/layout.js @@ -0,0 +1,28 @@ +var panel = new Panel +var panelScreen = panel.screen +var freeEdges = {"bottom": true, "top": true, "left": true, "right": true} + +for (i = 0; i < panelIds.length; ++i) { + var tmpPanel = panelById(panelIds[i]) + if (tmpPanel.screen == panelScreen) { + // Ignore the new panel + if (tmpPanel.id != panel.id) { + freeEdges[tmpPanel.location] = false; + } + } +} + +if (freeEdges["bottom"] == true) { + panel.location = "bottom"; +} else if (freeEdges["top"] == true) { + panel.location = "top"; +} else if (freeEdges["left"] == true) { + panel.location = "left"; +} else if (freeEdges["right"] == true) { + panel.location = "right"; +} else { + // There is no free edge, so leave the default value + panel.location = "top"; +} + +panel.height = gridUnit * 2 diff --git a/layout-templates/org.kde.plasma.desktop.emptyPanel/metadata.desktop b/layout-templates/org.kde.plasma.desktop.emptyPanel/metadata.desktop new file mode 100644 --- /dev/null +++ b/layout-templates/org.kde.plasma.desktop.emptyPanel/metadata.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Empty Panel +Type=Service +ServiceTypes=Plasma/LayoutTemplate +X-Plasma-Shell=plasmashell +X-Plasma-ContainmentCategories=panel +X-KDE-PluginInfo-Author=David Edmundson +X-KDE-PluginInfo-Email=davidedmundson@kde.org +X-KDE-PluginInfo-Name=org.kde.plasma.desktop.emptyPanel +X-KDE-PluginInfo-Version=1.0 +X-KDE-PluginInfo-Website=http://plasma.kde.org/ +X-KDE-PluginInfo-Category= +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-EnabledByDefault=true