Merge pull request #3053 from shun-iwasawa/delete_unused_styles
Revert Delete Unused Styles right-click command
This commit is contained in:
commit
0ef650c288
8 changed files with 180 additions and 131 deletions
|
@ -35,6 +35,7 @@ public:
|
|||
void clear();
|
||||
TPalette *getPalette(ToonzScene *scene);
|
||||
void savePalette(ToonzScene *scene);
|
||||
bool isFullColorPalette(TPalette *palette) { return m_palette == palette; }
|
||||
};
|
||||
|
||||
#endif // FULLCOLOR_PALETTE
|
||||
|
|
|
@ -82,6 +82,7 @@ protected:
|
|||
TPaletteHandle *m_paletteHandle;
|
||||
TFrameHandle *m_frameHandle;
|
||||
TXsheetHandle *m_xsheetHandle;
|
||||
TXshLevelHandle *m_levelHandle;
|
||||
|
||||
QScrollArea *m_pageViewerScrollArea;
|
||||
PaletteViewerGUI::PageViewer *m_pageViewer;
|
||||
|
@ -128,6 +129,7 @@ protected:
|
|||
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
|
||||
void showEvent(QShowEvent *) override;
|
||||
void hideEvent(QHideEvent *) override;
|
||||
|
|
|
@ -113,6 +113,7 @@ public:
|
|||
|
||||
ViewMode getViewMode() const { return m_viewMode; }
|
||||
void setViewMode(ViewMode mode);
|
||||
NameDisplayMode getNameDisplayMode() const { return m_nameDisplayMode; }
|
||||
void setNameDisplayMode(NameDisplayMode mode);
|
||||
|
||||
PaletteViewerGUI::PaletteViewType getViewType() const { return m_viewType; }
|
||||
|
|
|
@ -85,7 +85,7 @@ public:
|
|||
void pasteStylesColor();
|
||||
void pasteStylesName();
|
||||
void deleteStyles();
|
||||
void eraseUnsedStyle();
|
||||
void eraseUnusedStyle();
|
||||
void blendStyles();
|
||||
void toggleLink();
|
||||
void eraseToggleLink();
|
||||
|
|
|
@ -91,7 +91,7 @@ bool isStyleUsed(const TVectorImageP vi, int styleId) {
|
|||
int regionCount = vi->getRegionCount();
|
||||
for (i = 0; i < regionCount; i++) {
|
||||
TRegion *region = vi->getRegion(i);
|
||||
if (region || region->getStyle() != styleId) return true;
|
||||
if (region && region->getStyle() == styleId) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "toonzqt/dvdialog.h"
|
||||
#include "toonzqt/dvscrollwidget.h"
|
||||
#include "toonzqt/studiopaletteviewer.h"
|
||||
#include "toonzqt/styleselection.h"
|
||||
#include "palettedata.h"
|
||||
|
||||
// TnzLib includes
|
||||
|
@ -19,6 +20,7 @@
|
|||
#include "toonz/sceneproperties.h"
|
||||
#include "toonz/studiopalette.h"
|
||||
#include "toonz/tframehandle.h"
|
||||
#include "toonz/fullcolorpalette.h"
|
||||
|
||||
// TnzCore includes
|
||||
#include "tconvert.h"
|
||||
|
@ -187,7 +189,7 @@ PaletteViewer::~PaletteViewer() { delete m_changeStyleCommand; }
|
|||
void PaletteViewer::setPaletteHandle(TPaletteHandle *paletteHandle) {
|
||||
if (m_paletteHandle == paletteHandle) return;
|
||||
|
||||
bool ret = true;
|
||||
bool ret = true;
|
||||
if (m_paletteHandle) ret = ret && disconnect(m_paletteHandle, 0, this, 0);
|
||||
|
||||
m_paletteHandle = paletteHandle;
|
||||
|
@ -238,8 +240,8 @@ void PaletteViewer::setXsheetHandle(TXsheetHandle *xsheetHandle) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*!for clearing level cache after "paste style" command called from style
|
||||
* selection
|
||||
*/
|
||||
* selection
|
||||
*/
|
||||
void PaletteViewer::setLevelHandle(TXshLevelHandle *levelHandle) {
|
||||
m_pageViewer->setLevelHandle(levelHandle);
|
||||
}
|
||||
|
@ -281,7 +283,7 @@ void PaletteViewer::enableSaveAction(bool enable) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Create tab bar to select palette page.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::createTabBar() {
|
||||
m_pagesBar = new PaletteTabBar(this, m_hasPageCommand);
|
||||
|
||||
|
@ -295,7 +297,7 @@ void PaletteViewer::createTabBar() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Create right part of button bar.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::createPaletteToolBar() {
|
||||
m_paletteToolBar->clear();
|
||||
m_paletteToolBar->setMovable(false);
|
||||
|
@ -356,52 +358,48 @@ void PaletteViewer::createPaletteToolBar() {
|
|||
viewModeButton->setIcon(viewModeIcon);
|
||||
QMenu *viewMode = new QMenu(QString("Options"), viewModeButton);
|
||||
viewMode->setToolTip(tr("Options"));
|
||||
viewMode->setLayoutDirection(Qt::LeftToRight);
|
||||
|
||||
QActionGroup *viewModeGroup = new QActionGroup(viewMode);
|
||||
viewModeGroup->setExclusive(true);
|
||||
connect(viewModeGroup, SIGNAL(triggered(QAction *)), this,
|
||||
SLOT(onViewMode(QAction *)));
|
||||
|
||||
QAction *smallThumbAct =
|
||||
new QAction(tr("&Small Thumbnails View"), viewModeButton);
|
||||
smallThumbAct->setData(PageViewer::SmallChips);
|
||||
QAction *mediumThumbAct =
|
||||
new QAction(tr("&Medium Thumbnails View"), viewModeButton);
|
||||
mediumThumbAct->setData(PageViewer::MediumChips);
|
||||
QAction *largeThumbAct =
|
||||
new QAction(tr("&Large Thumbnails View"), viewModeButton);
|
||||
largeThumbAct->setData(PageViewer::LargeChips);
|
||||
auto addViewAction = [&](const QString &label, PageViewer::ViewMode mode) {
|
||||
QAction *viewAction = new QAction(label, viewMode);
|
||||
viewAction->setData(mode);
|
||||
viewAction->setCheckable(true);
|
||||
if (m_pageViewer->getViewMode() == mode) viewAction->setChecked(true);
|
||||
viewModeGroup->addAction(viewAction);
|
||||
viewMode->addAction(viewAction);
|
||||
};
|
||||
|
||||
QAction *listAct = new QAction(tr("&List View"), viewModeButton);
|
||||
listAct->setData(PageViewer::List);
|
||||
addViewAction(tr("&Small Thumbnails View"), PageViewer::SmallChips);
|
||||
addViewAction(tr("&Medium Thumbnails View"), PageViewer::MediumChips);
|
||||
addViewAction(tr("&Large Thumbnails View"), PageViewer::LargeChips);
|
||||
addViewAction(tr("&List View"), PageViewer::List);
|
||||
|
||||
viewModeGroup->addAction(smallThumbAct);
|
||||
viewModeGroup->addAction(mediumThumbAct);
|
||||
viewModeGroup->addAction(largeThumbAct);
|
||||
viewModeGroup->addAction(listAct);
|
||||
|
||||
QAction *styleDisplayAct = new QAction(tr("Style Name"), viewModeButton);
|
||||
styleDisplayAct->setData(PageViewer::Style);
|
||||
QAction *originalDisplayAct =
|
||||
new QAction(tr("StudioPalette Name"), viewModeButton);
|
||||
originalDisplayAct->setData(PageViewer::Original);
|
||||
QAction *bothDisplayAct = new QAction(tr("Both Names"), viewModeButton);
|
||||
bothDisplayAct->setData(PageViewer::StyleAndOriginal);
|
||||
viewMode->addSeparator();
|
||||
|
||||
QActionGroup *nameDisplayModeGroup = new QActionGroup(viewMode);
|
||||
nameDisplayModeGroup->setExclusive(true);
|
||||
connect(nameDisplayModeGroup, SIGNAL(triggered(QAction *)), this,
|
||||
SLOT(onNameDisplayMode(QAction *)));
|
||||
nameDisplayModeGroup->addAction(styleDisplayAct);
|
||||
nameDisplayModeGroup->addAction(originalDisplayAct);
|
||||
nameDisplayModeGroup->addAction(bothDisplayAct);
|
||||
|
||||
viewMode->addAction(smallThumbAct);
|
||||
viewMode->addAction(mediumThumbAct);
|
||||
viewMode->addAction(largeThumbAct);
|
||||
viewMode->addAction(listAct);
|
||||
viewMode->addSeparator();
|
||||
viewMode->addAction(styleDisplayAct);
|
||||
viewMode->addAction(originalDisplayAct);
|
||||
viewMode->addAction(bothDisplayAct);
|
||||
auto addNameDisplayAction = [&](const QString &label,
|
||||
PageViewer::NameDisplayMode mode) {
|
||||
QAction *nameDisplayAction = new QAction(label, viewMode);
|
||||
nameDisplayAction->setData(mode);
|
||||
nameDisplayAction->setCheckable(true);
|
||||
if (m_pageViewer->getNameDisplayMode() == mode)
|
||||
nameDisplayAction->setChecked(true);
|
||||
nameDisplayModeGroup->addAction(nameDisplayAction);
|
||||
viewMode->addAction(nameDisplayAction);
|
||||
};
|
||||
|
||||
addNameDisplayAction(tr("Style Name"), PageViewer::Style);
|
||||
addNameDisplayAction(tr("StudioPalette Name"), PageViewer::Original);
|
||||
addNameDisplayAction(tr("Both Names"), PageViewer::StyleAndOriginal);
|
||||
|
||||
viewModeButton->setMenu(viewMode);
|
||||
|
||||
|
@ -492,7 +490,7 @@ void PaletteViewer::createSavePaletteToolBar() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Update page tab bar adding or removing tab in accord with viewer palette.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::updateTabBar() {
|
||||
int tabCount = m_pagesBar->count();
|
||||
int i;
|
||||
|
@ -518,8 +516,8 @@ void PaletteViewer::updateTabBar() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Update right button bar, enable its action if current viewer palette is
|
||||
* empty.
|
||||
*/
|
||||
* empty.
|
||||
*/
|
||||
void PaletteViewer::updatePaletteToolBar() {
|
||||
if (!m_paletteToolBar) return;
|
||||
QList<QAction *> actions;
|
||||
|
@ -544,8 +542,8 @@ void PaletteViewer::updatePaletteToolBar() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Update left button bar, enable its action if current viewer palette is
|
||||
* empty.
|
||||
*/
|
||||
* empty.
|
||||
*/
|
||||
void PaletteViewer::updateSavePaletteToolBar() {
|
||||
if (!m_savePaletteToolBar) return;
|
||||
QList<QAction *> actions;
|
||||
|
@ -567,7 +565,7 @@ void PaletteViewer::updateSavePaletteToolBar() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Resize the widget and its child.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::resizeEvent(QResizeEvent *event) {
|
||||
QWidget::resizeEvent(event);
|
||||
if (m_pageViewer) m_pageViewer->computeSize();
|
||||
|
@ -585,7 +583,7 @@ void PaletteViewer::setChangeStyleCommand(
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Create and open the Right-click menu.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::contextMenuEvent(QContextMenuEvent *event) {
|
||||
m_indexPageToDelete = -1;
|
||||
QPoint pos = event->pos();
|
||||
|
@ -619,11 +617,29 @@ void PaletteViewer::contextMenuEvent(QContextMenuEvent *event) {
|
|||
menu->addAction(CommandManager::instance()->getAction("MI_SavePaletteAs"));
|
||||
}
|
||||
|
||||
if (m_viewType == LEVEL_PALETTE && !getPalette()->isLocked() &&
|
||||
m_isSaveActionEnabled &&
|
||||
!FullColorPalette::instance()->isFullColorPalette(getPalette())) {
|
||||
menu->addSeparator();
|
||||
menu->addAction(
|
||||
CommandManager::instance()->getAction("MI_EraseUnusedStyles"));
|
||||
}
|
||||
|
||||
menu->exec(event->globalPos());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void PaletteViewer::mousePressEvent(QMouseEvent *event) {
|
||||
QFrame::mousePressEvent(event);
|
||||
if (event->button() == Qt::RightButton) {
|
||||
m_pageViewer->getSelection()->makeCurrent();
|
||||
m_pageViewer->updateCommandLocks();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void PaletteViewer::showEvent(QShowEvent *) {
|
||||
onPaletteSwitched();
|
||||
changeWindowTitle();
|
||||
|
@ -711,7 +727,7 @@ void PaletteViewer::dragEnterEvent(QDragEnterEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Execute drop event.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::dropEvent(QDropEvent *event) {
|
||||
if (m_viewType == CLEANUP_PALETTE) return;
|
||||
const QMimeData *mimeData = event->mimeData();
|
||||
|
@ -792,7 +808,7 @@ void PaletteViewer::dropEvent(QDropEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Start drag and drop; if current page exist set drag and drop event data.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::startDragDrop() {
|
||||
TRepetitionGuard guard;
|
||||
if (!guard.hasLock()) return;
|
||||
|
@ -818,7 +834,7 @@ void PaletteViewer::clearStyleSelection() { m_pageViewer->clearSelection(); }
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Set current view page to \b currentIndexPage
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::setPageView(int currentIndexPage) {
|
||||
TPalette *palette = getPalette();
|
||||
TPalette::Page *page = palette ? palette->getPage(currentIndexPage) : 0;
|
||||
|
@ -857,7 +873,7 @@ void PaletteViewer::addNewColor() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Emit a signal to delete a page of current palette viewer.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::deletePage() {
|
||||
TPalette *palette = getPalette();
|
||||
if (!palette || palette->isLocked()) return;
|
||||
|
@ -944,7 +960,7 @@ void PaletteViewer::saveStudioPalette() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! If current color switched update current page view.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::onColorStyleSwitched() {
|
||||
TPalette *palette = getPalette();
|
||||
|
||||
|
@ -978,7 +994,7 @@ void PaletteViewer::onColorStyleSwitched() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Update view. Remember current page bar index.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::onPaletteChanged() {
|
||||
int index = m_pagesBar->currentIndex();
|
||||
updateTabBar();
|
||||
|
@ -1002,7 +1018,7 @@ void PaletteViewer::onPaletteSwitched() {
|
|||
if (palette) {
|
||||
int currentStyleId = palette->getCurrentStyleId();
|
||||
TPalette::Page *page = palette->getStylePage(currentStyleId);
|
||||
if (page) pageIndex = page->getIndex();
|
||||
if (page) pageIndex = page->getIndex();
|
||||
}
|
||||
}
|
||||
onSwitchToPage(pageIndex);
|
||||
|
@ -1038,7 +1054,7 @@ void PaletteViewer::onFrameSwitched() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Set a new name to palette page of index \b tabIndex.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::onTabTextChanged(int tabIndex) {
|
||||
if (!m_paletteHandle) return;
|
||||
QString newName = m_pagesBar->tabText(tabIndex);
|
||||
|
@ -1048,7 +1064,7 @@ void PaletteViewer::onTabTextChanged(int tabIndex) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Change page style view mode.
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::onViewMode(QAction *action) {
|
||||
int viewMode = action->data().toInt();
|
||||
m_pageViewer->setViewMode((PageViewer::ViewMode)viewMode);
|
||||
|
@ -1056,7 +1072,7 @@ void PaletteViewer::onViewMode(QAction *action) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Change name display mode on the style chips
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::onNameDisplayMode(QAction *action) {
|
||||
int nameDisplayMode = action->data().toInt();
|
||||
m_pageViewer->setNameDisplayMode(
|
||||
|
@ -1108,8 +1124,8 @@ void PaletteViewer::changeWindowTitle() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Move palette view page from \b srcIndex page index to \b dstIndex page
|
||||
* index.
|
||||
*/
|
||||
* index.
|
||||
*/
|
||||
void PaletteViewer::movePage(int srcIndex, int dstIndex) {
|
||||
PaletteCmd::movePalettePage(m_paletteHandle, srcIndex, dstIndex);
|
||||
onSwitchToPage(dstIndex);
|
||||
|
@ -1117,7 +1133,7 @@ void PaletteViewer::movePage(int srcIndex, int dstIndex) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Process when the lock button toggled
|
||||
*/
|
||||
*/
|
||||
void PaletteViewer::setIsLocked(bool lock) {
|
||||
if (m_viewType == CLEANUP_PALETTE) return;
|
||||
|
||||
|
|
|
@ -194,7 +194,7 @@ TXsheetHandle *PageViewer::getXsheetHandle() const {
|
|||
//-----------------------------------------------------------------------------
|
||||
/*! for clearing the cache when executing paste style command from
|
||||
* StyleSelection
|
||||
*/
|
||||
*/
|
||||
void PageViewer::setLevelHandle(TXshLevelHandle *levelHandle) {
|
||||
m_styleSelection->setLevelHandle(levelHandle);
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ int PageViewer::getCurrentStyleIndex() const {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Set current page to \b page and update view.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::setPage(TPalette::Page *page) {
|
||||
m_page = page;
|
||||
computeSize();
|
||||
|
@ -237,7 +237,7 @@ void PageViewer::setPage(TPalette::Page *page) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Return chip count contained in current page.
|
||||
*/
|
||||
*/
|
||||
int PageViewer::getChipCount() const {
|
||||
return m_page ? m_page->getStyleCount() : 0;
|
||||
}
|
||||
|
@ -245,7 +245,7 @@ int PageViewer::getChipCount() const {
|
|||
//-----------------------------------------------------------------------------
|
||||
/*! Set current view mode \b PaletteViewerGUI::PageViewer::ViewMode to \b
|
||||
* viewMode and update view.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::setViewMode(ViewMode viewMode) {
|
||||
if (m_viewMode == viewMode) return;
|
||||
m_viewMode = viewMode;
|
||||
|
@ -286,7 +286,7 @@ QRect PageViewer::getItemRect(int index) const {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Return rect of color area of chip identified by \b index.
|
||||
*/
|
||||
*/
|
||||
QRect PageViewer::getColorChipRect(int index) const {
|
||||
QRect rect = getItemRect(index);
|
||||
if (rect.isNull()) return rect;
|
||||
|
@ -299,7 +299,7 @@ QRect PageViewer::getColorChipRect(int index) const {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Return rect of chip identified by \b index name. (Not in \b SmallChips).
|
||||
*/
|
||||
*/
|
||||
QRect PageViewer::getColorNameRect(int index) const {
|
||||
QRect rect = getItemRect(index);
|
||||
if (rect.isNull()) return rect;
|
||||
|
@ -317,7 +317,7 @@ QRect PageViewer::getColorNameRect(int index) const {
|
|||
//-----------------------------------------------------------------------------
|
||||
/*! Add color to current page; if indexInPage == -1 add color at the bottom of
|
||||
* page.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::drop(int dstIndexInPage, const QMimeData *mimeData) {
|
||||
assert(m_page);
|
||||
TPalette *palette = m_page->getPalette();
|
||||
|
@ -325,7 +325,7 @@ void PageViewer::drop(int dstIndexInPage, const QMimeData *mimeData) {
|
|||
int dstPageIndex = m_page->getIndex();
|
||||
if ((m_page->getStyleId(0) == 0 || m_page->getStyleId(1) == 1) &&
|
||||
dstIndexInPage < 2)
|
||||
dstIndexInPage = 2;
|
||||
dstIndexInPage = 2;
|
||||
if (dstIndexInPage < 0) dstIndexInPage = m_page->getStyleCount();
|
||||
|
||||
const PaletteData *paletteData = dynamic_cast<const PaletteData *>(mimeData);
|
||||
|
@ -387,7 +387,7 @@ void PageViewer::drop(int dstIndexInPage, const QMimeData *mimeData) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Create an empty page to receive drop.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::createDropPage() {
|
||||
if (m_dropPageCreated) return;
|
||||
m_dropPageCreated = true;
|
||||
|
@ -403,7 +403,7 @@ void PageViewer::clearSelection() { m_styleSelection->selectNone(); }
|
|||
//-----------------------------------------------------------------------------
|
||||
/*! Return page chip size, it depend from current \b
|
||||
* PaletteViewerGUI::PageViewer::ViewMode.
|
||||
*/
|
||||
*/
|
||||
QSize PageViewer::getChipSize() const {
|
||||
if (m_viewMode == SmallChips || m_viewMode == SmallChipsWithName)
|
||||
return QSize(48, 33);
|
||||
|
@ -417,7 +417,7 @@ QSize PageViewer::getChipSize() const {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Draw a single chip style \b style in \b chipRect.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::drawColorChip(QPainter &p, QRect &chipRect,
|
||||
TColorStyle *style) {
|
||||
// draw with MainColor for TSolidColorStyle(3), TColorCleanupStyle(2001)
|
||||
|
@ -439,7 +439,7 @@ void PageViewer::drawColorChip(QPainter &p, QRect &chipRect,
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Draw style \b style name in \b nameRect.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::drawColorName(QPainter &p, QRect &nameRect, TColorStyle *style,
|
||||
int styleIndex) {
|
||||
if (m_viewMode == SmallChips && style->getFlags() == 0) return;
|
||||
|
@ -488,15 +488,15 @@ void PageViewer::drawColorName(QPainter &p, QRect &nameRect, TColorStyle *style,
|
|||
}
|
||||
|
||||
if (m_viewMode == LargeChips) {
|
||||
QString index = QString::number(styleIndex);
|
||||
QFont font = p.font();
|
||||
int fontSize = font.pointSize();
|
||||
QString index = QString::number(styleIndex);
|
||||
QFont font = p.font();
|
||||
int fontSize = font.pointSize();
|
||||
if (fontSize == -1) fontSize = font.pixelSize();
|
||||
int length = index.length() * fontSize;
|
||||
int w = (length > 11) ? (length) : 11;
|
||||
int h = 11;
|
||||
int x0 = nameRect.right() - w + 1;
|
||||
int y0 = nameRect.top() - h - 1;
|
||||
int length = index.length() * fontSize;
|
||||
int w = (length > 11) ? (length) : 11;
|
||||
int h = 11;
|
||||
int x0 = nameRect.right() - w + 1;
|
||||
int y0 = nameRect.top() - h - 1;
|
||||
p.drawText(nameRect.adjusted(6, 1, -6, -1), name);
|
||||
QRect indexRect(x0, y0, w, h);
|
||||
p.fillRect(indexRect, QBrush(Qt::white));
|
||||
|
@ -528,7 +528,7 @@ void PageViewer::drawColorName(QPainter &p, QRect &nameRect, TColorStyle *style,
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Draw the toggle to know if \b style is linked to a studio palette.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::drawToggleLink(QPainter &p, QRect &chipRect,
|
||||
TColorStyle *style) {
|
||||
std::wstring globalName = style->getGlobalName();
|
||||
|
@ -556,7 +556,7 @@ void PageViewer::drawToggleLink(QPainter &p, QRect &chipRect,
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Pain current page styles using current view mode.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::paintEvent(QPaintEvent *e) {
|
||||
QPainter p(this);
|
||||
if (m_chipPerRow == 0) {
|
||||
|
@ -569,10 +569,10 @@ void PageViewer::paintEvent(QPaintEvent *e) {
|
|||
if (!palette) return;
|
||||
|
||||
// [i0,i1] = range celle visibili
|
||||
QRect visibleRect = e->rect();
|
||||
int i0 = posToIndex(visibleRect.topLeft());
|
||||
if (i0 < 0) i0 = 0;
|
||||
int i1 = posToIndex(visibleRect.bottomRight());
|
||||
QRect visibleRect = e->rect();
|
||||
int i0 = posToIndex(visibleRect.topLeft());
|
||||
if (i0 < 0) i0 = 0;
|
||||
int i1 = posToIndex(visibleRect.bottomRight());
|
||||
if (i1 >= getChipCount()) i1 = getChipCount() - 1;
|
||||
|
||||
if (m_viewMode == List) {
|
||||
|
@ -879,7 +879,7 @@ void PageViewer::paintEvent(QPaintEvent *e) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Recall computeSize().
|
||||
*/
|
||||
*/
|
||||
void PageViewer::resizeEvent(QResizeEvent *) { computeSize(); }
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -957,7 +957,7 @@ void PageViewer::mousePressEvent(QMouseEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! If left botton is pressed start drag.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::mouseMoveEvent(QMouseEvent *event) {
|
||||
if (!m_page) return;
|
||||
if (m_viewType == CLEANUP_PALETTE) return;
|
||||
|
@ -1057,7 +1057,7 @@ void PageViewer::addNewPage() {
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
/*! Create and open the Right-click menu in page.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::contextMenuEvent(QContextMenuEvent *event) {
|
||||
QMenu menu(this);
|
||||
|
||||
|
@ -1144,19 +1144,13 @@ void PageViewer::contextMenuEvent(QContextMenuEvent *event) {
|
|||
connect(newPage, SIGNAL(triggered()), SLOT(addNewPage()));
|
||||
}
|
||||
|
||||
/*
|
||||
if (m_viewType != STUDIO_PALETTE) {
|
||||
menu.addAction(cmd->getAction(MI_EraseUnusedStyles));
|
||||
}
|
||||
*/
|
||||
|
||||
menu.exec(event->globalPos());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Accept drag enter event if evant data ha format \b
|
||||
* TStyleSelection::getMimeType().
|
||||
*/
|
||||
*/
|
||||
void PageViewer::dragEnterEvent(QDragEnterEvent *event) {
|
||||
if (!m_page) return;
|
||||
const PaletteData *paletteData =
|
||||
|
@ -1176,7 +1170,7 @@ void PageViewer::dragEnterEvent(QDragEnterEvent *event) {
|
|||
if (index < 0)
|
||||
index = 0;
|
||||
else if (index > m_page->getStyleCount())
|
||||
index = m_page->getStyleCount();
|
||||
index = m_page->getStyleCount();
|
||||
m_dropPositionIndex = index;
|
||||
update();
|
||||
event->acceptProposedAction();
|
||||
|
@ -1196,7 +1190,7 @@ void PageViewer::dragMoveEvent(QDragMoveEvent *event) {
|
|||
if (index < 0)
|
||||
index = 0;
|
||||
else if (index > m_page->getStyleCount())
|
||||
index = m_page->getStyleCount();
|
||||
index = m_page->getStyleCount();
|
||||
m_dropPositionIndex = index;
|
||||
update();
|
||||
event->acceptProposedAction();
|
||||
|
@ -1205,7 +1199,7 @@ void PageViewer::dragMoveEvent(QDragMoveEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! If event data has correct format drop it in current drop position index.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::dropEvent(QDropEvent *event) {
|
||||
int dstIndexInPage = m_dropPositionIndex;
|
||||
m_dropPositionIndex = -1;
|
||||
|
@ -1217,7 +1211,7 @@ void PageViewer::dropEvent(QDropEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Set to -1 drag position index and update view.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::dragLeaveEvent(QDragLeaveEvent *event) {
|
||||
m_dropPositionIndex = -1;
|
||||
update();
|
||||
|
@ -1225,7 +1219,7 @@ void PageViewer::dragLeaveEvent(QDragLeaveEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Start drag and drop; if current page exist set drag and drop event data.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::startDragDrop() {
|
||||
TRepetitionGuard guard;
|
||||
if (!guard.hasLock()) return;
|
||||
|
@ -1272,9 +1266,8 @@ void PageViewer::keyPressEvent(QKeyEvent *e) {
|
|||
if (key ==
|
||||
cManager->getKeyFromShortcut(cManager->getShortcutFromId(V_ZoomIn)))
|
||||
zoomInChip();
|
||||
else if (key ==
|
||||
cManager->getKeyFromShortcut(
|
||||
cManager->getShortcutFromId(V_ZoomOut)))
|
||||
else if (key == cManager->getKeyFromShortcut(
|
||||
cManager->getShortcutFromId(V_ZoomOut)))
|
||||
zoomOutChip();
|
||||
else
|
||||
e->ignore();
|
||||
|
@ -1301,7 +1294,7 @@ void PageViewer::hideEvent(QHideEvent *) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Manage page tooltip.
|
||||
*/
|
||||
*/
|
||||
bool PageViewer::event(QEvent *e) {
|
||||
if (m_page && e->type() == QEvent::ToolTip) {
|
||||
QHelpEvent *helpEvent = dynamic_cast<QHelpEvent *>(e);
|
||||
|
@ -1383,8 +1376,8 @@ void PageViewer::select(int indexInPage, QMouseEvent *event) {
|
|||
}
|
||||
|
||||
bool isStyleChanged = false;
|
||||
if (on) selected = true;
|
||||
int styleIndex = m_page->getStyleId(indexInPage);
|
||||
if (on) selected = true;
|
||||
int styleIndex = m_page->getStyleId(indexInPage);
|
||||
if (selected) {
|
||||
setCurrentStyleIndex(styleIndex);
|
||||
|
||||
|
@ -1402,7 +1395,7 @@ void PageViewer::select(int indexInPage, QMouseEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Compute page size in regard to chip count.
|
||||
*/
|
||||
*/
|
||||
void PageViewer::computeSize() {
|
||||
if (!m_page) {
|
||||
m_chipPerRow = 0;
|
||||
|
@ -1428,7 +1421,7 @@ void PageViewer::onFrameChanged() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Rename current style and update its view in current page.
|
||||
*/
|
||||
*/
|
||||
// recall from m_renameTextField
|
||||
void PageViewer::onStyleRenamed() {
|
||||
m_renameTextField->hide();
|
||||
|
@ -1482,7 +1475,7 @@ PaletteTabBar::PaletteTabBar(QWidget *parent, bool hasPageCommand)
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Hide rename text field and recall \b QTabBar::mousePressEvent().
|
||||
*/
|
||||
*/
|
||||
void PaletteTabBar::mousePressEvent(QMouseEvent *event) {
|
||||
m_renameTextField->hide();
|
||||
QTabBar::mousePressEvent(event);
|
||||
|
@ -1513,7 +1506,7 @@ void PaletteTabBar::mouseMoveEvent(QMouseEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Set a text field with focus in event position to edit tab name.
|
||||
*/
|
||||
*/
|
||||
void PaletteTabBar::mouseDoubleClickEvent(QMouseEvent *event) {
|
||||
if (!m_hasPageCommand) return;
|
||||
if (m_pageViewer->getPage()->getPalette()->isLocked()) return;
|
||||
|
@ -1531,7 +1524,7 @@ void PaletteTabBar::mouseDoubleClickEvent(QMouseEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! If event data is a paletteData accept drag event; otherwise return.
|
||||
*/
|
||||
*/
|
||||
void PaletteTabBar::dragEnterEvent(QDragEnterEvent *event) {
|
||||
if (!m_hasPageCommand) return;
|
||||
const PaletteData *paletteData =
|
||||
|
@ -1569,7 +1562,7 @@ void PaletteTabBar::dragMoveEvent(QDragMoveEvent *event) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! Recall PageViewer::drop().
|
||||
*/
|
||||
*/
|
||||
void PaletteTabBar::dropEvent(QDropEvent *event) {
|
||||
if (!m_hasPageCommand) return;
|
||||
if (!dynamic_cast<const PaletteData *>(event->mimeData())) return;
|
||||
|
@ -1695,7 +1688,7 @@ void PageViewer::setNameDisplayMode(NameDisplayMode mode) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! lock the commands when the styleSelection set to current
|
||||
*/
|
||||
*/
|
||||
void PageViewer::updateCommandLocks() {
|
||||
if (!m_page) return;
|
||||
// iwasawa
|
||||
|
@ -1713,4 +1706,5 @@ void PageViewer::updateCommandLocks() {
|
|||
cmd->getAction("MI_GetColorFromStudioPalette")->setEnabled(!isLocked);
|
||||
cmd->getAction("MI_ToggleLinkToStudioPalette")->setEnabled(!isLocked);
|
||||
cmd->getAction("MI_RemoveReferenceToStudioPalette")->setEnabled(!isLocked);
|
||||
cmd->getAction("MI_EraseUnusedStyles")->setEnabled(!isLocked);
|
||||
}
|
||||
|
|
|
@ -169,7 +169,7 @@ void deleteStylesWithoutUndo(TPalette *palette, TPaletteHandle *pltHandle,
|
|||
int pageIndex, std::set<int> *styleIndicesInPage,
|
||||
int fir = 0) {
|
||||
if (!palette) palette = pltHandle->getPalette();
|
||||
int n = styleIndicesInPage->size();
|
||||
int n = styleIndicesInPage->size();
|
||||
if (n == 0) return;
|
||||
TPalette::Page *page = palette->getPage(pageIndex);
|
||||
assert(page);
|
||||
|
@ -510,7 +510,7 @@ void TStyleSelection::enableCommands() {
|
|||
}
|
||||
}
|
||||
enableCommand(this, MI_Clear, &TStyleSelection::deleteStyles);
|
||||
enableCommand(this, MI_EraseUnusedStyles, &TStyleSelection::eraseUnsedStyle);
|
||||
enableCommand(this, MI_EraseUnusedStyles, &TStyleSelection::eraseUnusedStyle);
|
||||
enableCommand(this, MI_BlendColors, &TStyleSelection::blendStyles);
|
||||
}
|
||||
|
||||
|
@ -694,7 +694,7 @@ void TStyleSelection::deleteStyles() {
|
|||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
void TStyleSelection::eraseUnsedStyle() {
|
||||
void TStyleSelection::eraseUnusedStyle() {
|
||||
std::set<TXshSimpleLevel *> levels;
|
||||
int row, column, i, j;
|
||||
TPalette *palette = m_paletteHandle->getPalette();
|
||||
|
@ -728,26 +728,59 @@ void TStyleSelection::eraseUnsedStyle() {
|
|||
}
|
||||
}
|
||||
|
||||
TUndoManager::manager()->beginBlock();
|
||||
|
||||
// check if there are styles to be erased
|
||||
QMap<int, std::set<int>> styleIndicesInPageMap;
|
||||
QString indicesStr;
|
||||
int count = 0;
|
||||
// Butto gli stili non usati
|
||||
for (i = 0; i < pageCount; i++) {
|
||||
// Variabili usate per l'undo
|
||||
std::set<int> styleIndicesInPage;
|
||||
StyleData *data = new StyleData();
|
||||
TPalette::Page *page = palette->getPage(i);
|
||||
assert(page);
|
||||
for (j = 0; j < page->getStyleCount(); j++) {
|
||||
int styleId = page->getStyleId(j);
|
||||
if (usedStyleIds[styleId]) continue;
|
||||
styleIndicesInPage.insert(j);
|
||||
data->addStyle(styleId, page->getStyle(j)->clone());
|
||||
if (count < 10) indicesStr.append(QString::number(styleId) + ", ");
|
||||
count++;
|
||||
}
|
||||
// Se styleIndicesInPage e' vuoto ci sono stili da cancellare.
|
||||
if (styleIndicesInPage.empty()) {
|
||||
delete data;
|
||||
continue;
|
||||
if (!styleIndicesInPage.empty())
|
||||
styleIndicesInPageMap.insert(i, styleIndicesInPage);
|
||||
}
|
||||
|
||||
if (styleIndicesInPageMap.isEmpty()) {
|
||||
DVGui::error(QObject::tr("There are no unused styles."));
|
||||
return;
|
||||
}
|
||||
if (count <= 10)
|
||||
indicesStr.chop(2);
|
||||
else
|
||||
indicesStr.append(
|
||||
QObject::tr("and %1 more styles.").arg(QString::number(count - 10)));
|
||||
// open confirmation popup
|
||||
QString question =
|
||||
QObject::tr(
|
||||
"Erasing unused styles with following indices. Are you sure?\n\n%1")
|
||||
.arg(indicesStr);
|
||||
int ret =
|
||||
DVGui::MsgBox(question, QObject::tr("Erase"), QObject::tr("Cancel"), 0);
|
||||
if (ret == 2 || ret == 0) return;
|
||||
|
||||
TUndoManager::manager()->beginBlock();
|
||||
|
||||
QMap<int, std::set<int>>::const_iterator styleMapItr =
|
||||
styleIndicesInPageMap.constBegin();
|
||||
while (styleMapItr != styleIndicesInPageMap.constEnd()) {
|
||||
int pageIndex = styleMapItr.key();
|
||||
std::set<int> styleIndicesInPage = styleMapItr.value();
|
||||
StyleData *data = new StyleData();
|
||||
TPalette::Page *page = palette->getPage(pageIndex);
|
||||
for (auto indexInPage : styleIndicesInPage) {
|
||||
int styleId = page->getStyleId(indexInPage);
|
||||
data->addStyle(styleId, page->getStyle(indexInPage)->clone());
|
||||
}
|
||||
|
||||
// Cancello gli stili
|
||||
std::set<int>::reverse_iterator it;
|
||||
for (it = styleIndicesInPage.rbegin(); it != styleIndicesInPage.rend();
|
||||
|
@ -755,9 +788,11 @@ void TStyleSelection::eraseUnsedStyle() {
|
|||
page->removeStyle(*it);
|
||||
// Undo
|
||||
DeleteStylesUndo *undo = new DeleteStylesUndo(this, data);
|
||||
undo->setPageIndex(i);
|
||||
undo->setPageIndex(pageIndex);
|
||||
undo->setStyleIndicesInPage(styleIndicesInPage);
|
||||
TUndoManager::manager()->add(undo);
|
||||
|
||||
++styleMapItr;
|
||||
}
|
||||
TUndoManager::manager()->endBlock();
|
||||
m_paletteHandle->setStyleIndex(1);
|
||||
|
@ -1436,7 +1471,7 @@ void TStyleSelection::toggleLink() {
|
|||
name[0] = name[0] == L'-' ? L'+' : L'-';
|
||||
cs->setGlobalName(name);
|
||||
if (name[0] == L'+') somethingHasBeenLinked = true;
|
||||
somethingChanged = true;
|
||||
somethingChanged = true;
|
||||
}
|
||||
undo->setColorStyle(index, oldCs, name);
|
||||
|
||||
|
@ -1594,7 +1629,7 @@ public:
|
|||
//-----------------------------------------------------------------------------
|
||||
/*! remove link from studio palette. Delete the global and the orginal names.
|
||||
* return true if something changed
|
||||
*/
|
||||
*/
|
||||
void TStyleSelection::removeLink() {
|
||||
TPalette *palette = getPalette();
|
||||
if (!palette || m_pageIndex < 0) return;
|
||||
|
@ -1709,7 +1744,7 @@ public:
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! get the color from the linked style of the studio palette
|
||||
*/
|
||||
*/
|
||||
void TStyleSelection::getBackOriginalStyle() {
|
||||
TPalette *palette = getPalette();
|
||||
if (!palette || m_pageIndex < 0) return;
|
||||
|
@ -1792,7 +1827,7 @@ void TStyleSelection::getBackOriginalStyle() {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
/*! return true if there is at least one linked style in the selection
|
||||
*/
|
||||
*/
|
||||
|
||||
bool TStyleSelection::hasLinkedStyle() {
|
||||
TPalette *palette = getPalette();
|
||||
|
|
Loading…
Reference in a new issue