diff --git a/toolbartools/Separator.py b/toolbartools/Separator.py new file mode 100644 index 0000000..d796441 --- /dev/null +++ b/toolbartools/Separator.py @@ -0,0 +1,54 @@ +# Toolbar Tools - Falkon plugin +# Copyright (C) 2019 Juraj Oravec +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from PySide2 import QtCore, QtGui, QtWidgets + + +class Separator(QtWidgets.QWidget): + number = None + + def __init__(self, number=None, width=None): + super().__init__() + + if width: + self.setMinimumWidth(width) + else: + self.setMinimumWidth(10) + + if number: + self.number = number + else: + self.number = 1 + + def id(self): + if self.number: + return "separator_" + str(self.number) + + return "separator_1" + + def name(self): + if self.number: + return "Separator " + str(self.number) + + return "Separator 1" + + def paintEvent(self, paintEvent): + painter = QtGui.QPainter(self) + + painter.drawLine( + self.width() / 2, 0, + self.width() / 2, self.height() + ) diff --git a/toolbartools/__init__.py b/toolbartools/__init__.py index 6ac33dc..2f6405f 100644 --- a/toolbartools/__init__.py +++ b/toolbartools/__init__.py @@ -18,19 +18,23 @@ import Falkon import os from PySide2 import QtCore from toolbartools.Spacer import Spacer +from toolbartools.Separator import Separator class ToolbarTools(Falkon.PluginInterface, QtCore.QObject): spacers = None + separators = None config = None def init(self, state, settingsPath): self.spacers = {} + self.separators = {} self.config = { "settingsFile": os.path.join(settingsPath, "ToolbarTools", "settings.ini"), "spacers": 2, - "maxWidth": 150 + "maxWidth": 150, + "separators": 2 } plugins = Falkon.MainApplication.instance().plugins() @@ -58,6 +62,14 @@ class ToolbarTools(Falkon.PluginInterface, QtCore.QObject): self.spacers[window] = {} self.spacers[window][id] = spacer + for id in range(1, self.config["separators"] + 1): + separator = Separator(id) + window.navigationBar().addWidget(separator, separator.id(), separator.name()) + + if window not in self.separators: + self.separators[window] = {} + self.separators[window][id] = separator + def mainWindowDeleted(self, window): if window in self.spacers: for id, spacer in list(self.spacers[window].items()): @@ -65,5 +77,11 @@ class ToolbarTools(Falkon.PluginInterface, QtCore.QObject): del self.spacers[window][id] del self.spacers[window] + if window in self.separators: + for id, separator in list(self.separators[window].items()): + window.navigationBar().removeWidget(separator.id()) + del self.separators[window][id] + del self.separators[window] + Falkon.registerPlugin(ToolbarTools())