Skip to content

Commit

Permalink
Hamburger menu for palette dock
Browse files Browse the repository at this point in the history
Move add,copy and delete actions to the hamburger menu.
Also move the write protect toggle from widget context menu
to the new menu.
  • Loading branch information
callaa committed Feb 19, 2015
1 parent 5687037 commit 259c1fc
Show file tree
Hide file tree
Showing 7 changed files with 177 additions and 88 deletions.
29 changes: 24 additions & 5 deletions src/client/docks/colorbox.cpp
Expand Up @@ -31,6 +31,7 @@ using widgets::GroupedToolButton;

#include <QSettings>
#include <QMessageBox>
#include <QMenu>

namespace docks {

Expand Down Expand Up @@ -87,9 +88,16 @@ ColorBox::ColorBox(const QString& title, QWidget *parent)
connect(_ui->palette, SIGNAL(colorSelected(QColor)), this, SIGNAL(colorChanged(QColor)));
connect(_ui->palette, SIGNAL(colorSelected(QColor)), this, SLOT(setColor(QColor)));

connect(_ui->addpalette, SIGNAL(clicked()), this, SLOT(addPalette()));
connect(_ui->copypalette, SIGNAL(clicked()), this, SLOT(copyPalette()));
connect(_ui->delpalette, SIGNAL(clicked()), this, SLOT(deletePalette()));
QMenu *paletteMenu = new QMenu(this);
paletteMenu->addAction(tr("New"), this, SLOT(addPalette()));
paletteMenu->addAction(tr("Duplicate"), this, SLOT(copyPalette()));
_deletePalette = paletteMenu->addAction(tr("Delete"), this, SLOT(deletePalette()));
paletteMenu->addSeparator();
_writeprotectPalette = paletteMenu->addAction(tr("Write Protect"), this, SLOT(toggleWriteProtect()));
_writeprotectPalette->setCheckable(true);
_ui->paletteMenuButton->setMenu(paletteMenu);
_ui->paletteMenuButton->setStyleSheet("QToolButton::menu-indicator { image: none }");

connect(_ui->palettelist, SIGNAL(currentIndexChanged(int)), this, SLOT(paletteChanged(int)));
connect(_ui->palettelist, SIGNAL(editTextChanged(QString)), this, SLOT(paletteNameChanged(QString)));

Expand Down Expand Up @@ -157,8 +165,19 @@ void ColorBox::paletteChanged(int index)
} else {
Palette *pal = static_cast<PaletteListModel*>(_ui->palettelist->model())->getPalette(index);
_ui->palette->setPalette(pal);
_ui->delpalette->setEnabled(!pal->isReadonly());
//_ui->palettelist->setEditable(!pal->isReadonly());
_deletePalette->setEnabled(!pal->isReadonly());
_writeprotectPalette->setEnabled(!pal->isReadonly());
_writeprotectPalette->setChecked(pal->isWriteProtected());
}
}

void ColorBox::toggleWriteProtect()
{
Palette *pal = _ui->palette->palette();
if(pal) {
pal->setWriteProtected(!pal->isWriteProtected());
_writeprotectPalette->setChecked(pal->isWriteProtected());
_ui->palette->update();
}
}

Expand Down
3 changes: 3 additions & 0 deletions src/client/docks/colorbox.h
Expand Up @@ -45,6 +45,7 @@ private slots:
void addPalette();
void copyPalette();
void deletePalette();
void toggleWriteProtect();

void updateFromRgbSliders();
void updateFromRgbSpinbox();
Expand All @@ -55,6 +56,8 @@ private slots:
Ui_ColorBox *_ui;
Palette *_lastused;

QAction *_deletePalette;
QAction *_writeprotectPalette;
bool _updating;

};
Expand Down
64 changes: 6 additions & 58 deletions src/client/ui/colorbox.ui
Expand Up @@ -70,7 +70,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
<number>3</number>
</property>
<item>
<widget class="QComboBox" name="palettelist">
Expand All @@ -89,60 +89,13 @@
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>3</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="GroupedToolButton" name="addpalette">
<property name="toolTip">
<string>Add a new palette</string>
</property>
<property name="icon">
<iconset theme="list-add">
<normaloff>icons:list-add.png</normaloff>icons:list-add.png</iconset>
</property>
<property name="groupPosition">
<enum>GroupedToolButton::GroupLeft</enum>
</property>
</widget>
</item>
<item>
<widget class="GroupedToolButton" name="copypalette">
<property name="toolTip">
<string>Duplicate palette</string>
</property>
<widget class="QToolButton" name="paletteMenuButton">
<property name="icon">
<iconset theme="edit-copy">
<normaloff>icons:edit-copy.png</normaloff>icons:edit-copy.png</iconset>
<iconset resource="icons/builtin/builtin.qrc">
<normaloff>:/icons/builtin/hamburger.svg</normaloff>:/icons/builtin/hamburger.svg</iconset>
</property>
<property name="groupPosition">
<enum>GroupedToolButton::GroupCenter</enum>
</property>
</widget>
</item>
<item>
<widget class="GroupedToolButton" name="delpalette">
<property name="toolTip">
<string>Delete the palette</string>
</property>
<property name="icon">
<iconset theme="edit-delete">
<normaloff>icons:edit-delete.png</normaloff>icons:edit-delete.png</iconset>
</property>
<property name="groupPosition">
<enum>GroupedToolButton::GroupRight</enum>
<property name="popupMode">
<enum>QToolButton::InstantPopup</enum>
</property>
</widget>
</item>
Expand Down Expand Up @@ -391,11 +344,6 @@
<extends>Gradient_Slider</extends>
<header>Hue_Slider</header>
</customwidget>
<customwidget>
<class>GroupedToolButton</class>
<extends>QToolButton</extends>
<header>widgets/groupedtoolbutton.h</header>
</customwidget>
<customwidget>
<class>PaletteWidget</class>
<extends>QWidget</extends>
Expand Down
1 change: 1 addition & 0 deletions src/client/ui/icons/builtin/builtin.qrc
Expand Up @@ -7,6 +7,7 @@
<file>dock-close.svg</file>
<file>dock-detach.svg</file>
<file>drawpile.png</file>
<file>hamburger.svg</file>
<file>paintmode-hardedge.svg</file>
<file>paintmode-smoothedge.svg</file>
<file>paintmode-incremental.svg</file>
Expand Down
138 changes: 138 additions & 0 deletions src/client/ui/icons/builtin/hamburger.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 4 additions & 21 deletions src/client/widgets/palettewidget.cpp
Expand Up @@ -31,7 +31,6 @@
#include <QMenu>
#include <QDrag>
#include <QMimeData>
#include <QActionGroup>

#include <Color_Dialog>

Expand All @@ -47,14 +46,10 @@ PaletteWidget::PaletteWidget(QWidget *parent)

_outline = new QRubberBand(QRubberBand::Rectangle, this);

_paletteActions = new QActionGroup(this);
_contextmenu = new QMenu(this);
_paletteActions->addAction(_contextmenu->addAction(tr("Add"), this, SLOT(addColor())));
_paletteActions->addAction(_contextmenu->addAction(tr("Modify"), this, SLOT(editCurrentColor())));
_paletteActions->addAction(_contextmenu->addAction(tr("Remove"), this, SLOT(removeColor())));
_contextmenu->addSeparator();
_writeprotectAction = _contextmenu->addAction(tr("Write Protect"), this, SLOT(toggleWriteProtect()));
_writeprotectAction->setCheckable(true);
_contextmenu->addAction(tr("Add"), this, SLOT(addColor()));
_contextmenu->addAction(tr("Modify"), this, SLOT(editCurrentColor()));
_contextmenu->addAction(tr("Remove"), this, SLOT(removeColor()));

_scrollbar = new QScrollBar(this);
connect(_scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scroll(int)));
Expand Down Expand Up @@ -91,9 +86,6 @@ void PaletteWidget::setPalette(Palette *palette)
_columns = palette->columns();
connect(_palette, SIGNAL(colorsChanged()), this, SLOT(update()));

_writeprotectAction->setEnabled(!palette->isReadonly());
_writeprotectAction->setChecked(palette->isWriteProtected());
_paletteActions->setEnabled(!palette->isWriteProtected());
} else {
_columns = 1;
}
Expand All @@ -104,15 +96,6 @@ void PaletteWidget::setPalette(Palette *palette)
update();
}

void PaletteWidget::toggleWriteProtect()
{
if(_palette) {
_palette->setWriteProtected(!_palette->isWriteProtected());
_paletteActions->setEnabled(!_palette->isReadonly());
update();
}
}

void PaletteWidget::setSpacing(int spacing)
{
Q_ASSERT(spacing>=0);
Expand Down Expand Up @@ -348,7 +331,7 @@ void PaletteWidget::mousePressEvent(QMouseEvent *event)

void PaletteWidget::contextMenuEvent(QContextMenuEvent *event)
{
if(_palette)
if(_palette && !_palette->isWriteProtected())
_contextmenu->popup(mapToGlobal(event->pos()));
}

Expand Down
5 changes: 1 addition & 4 deletions src/client/widgets/palettewidget.h
Expand Up @@ -26,7 +26,6 @@ class Palette;
class QScrollBar;
class QRubberBand;
class QMenu;
class QActionGroup;
class Color_Dialog;

namespace widgets {
Expand All @@ -37,6 +36,7 @@ class PaletteWidget : public QWidget {
PaletteWidget(QWidget *parent);

void setPalette(Palette *palette);
Palette *palette() const { return _palette; }

void setSpacing(int spacing);

Expand Down Expand Up @@ -74,7 +74,6 @@ private slots:
void editCurrentColor();
void setCurrentColor(const QColor& color);
void dialogDone();
void toggleWriteProtect();

private:
int indexAt(const QPoint& point, bool extraPadding=false) const;
Expand All @@ -87,8 +86,6 @@ private slots:
QScrollBar *_scrollbar;
Color_Dialog *_colordlg;
QMenu *_contextmenu;
QAction *_writeprotectAction;
QActionGroup *_paletteActions;

QSize _swatchsize;
int _columns;
Expand Down

0 comments on commit 259c1fc

Please sign in to comment.