revert room edit feature
This commit is contained in:
parent
6cd606de62
commit
b05ca51266
3 changed files with 258 additions and 59 deletions
|
@ -370,10 +370,10 @@ MainWindow::MainWindow(const QString &argumentLayoutFileName, QWidget *parent, Q
|
||||||
changeWindowTitle();
|
changeWindowTitle();
|
||||||
|
|
||||||
//Connetto i comandi che sono in RoomTabWidget
|
//Connetto i comandi che sono in RoomTabWidget
|
||||||
//connect(roomTabWidget, SIGNAL(indexSwapped(int , int )), SLOT(onIndexSwapped(int ,int )));
|
connect(roomTabWidget, SIGNAL(indexSwapped(int , int )), SLOT(onIndexSwapped(int ,int )));
|
||||||
//connect(roomTabWidget, SIGNAL(insertNewTabRoom()), SLOT(insertNewRoom()));
|
connect(roomTabWidget, SIGNAL(insertNewTabRoom()), SLOT(insertNewRoom()));
|
||||||
//connect(roomTabWidget, SIGNAL(deleteTabRoom(int)), SLOT(deleteRoom(int)));
|
connect(roomTabWidget, SIGNAL(deleteTabRoom(int)), SLOT(deleteRoom(int)));
|
||||||
//connect(roomTabWidget, SIGNAL(renameTabRoom(int, const QString)), SLOT(renameRoom(int, const QString)));
|
connect(roomTabWidget, SIGNAL(renameTabRoom(int, const QString)), SLOT(renameRoom(int, const QString)));
|
||||||
|
|
||||||
setCommandHandler("MI_Quit", this, &MainWindow::onQuit);
|
setCommandHandler("MI_Quit", this, &MainWindow::onQuit);
|
||||||
setCommandHandler("MI_Undo", this, &MainWindow::onUndo);
|
setCommandHandler("MI_Undo", this, &MainWindow::onUndo);
|
||||||
|
@ -651,6 +651,7 @@ void MainWindow::writeSettings()
|
||||||
rooms.push_back(room);
|
rooms.push_back(room);
|
||||||
room->save();
|
room->save();
|
||||||
}
|
}
|
||||||
|
writeRoomList(rooms);
|
||||||
|
|
||||||
//Current room settings
|
//Current room settings
|
||||||
Tofstream os(ToonzFolder::getMyModuleDir() + currentRoomFileName);
|
Tofstream os(ToonzFolder::getMyModuleDir() + currentRoomFileName);
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
|
#include <QCheckBox>
|
||||||
|
|
||||||
void UrlOpener::open()
|
void UrlOpener::open()
|
||||||
{
|
{
|
||||||
|
@ -46,6 +47,160 @@ void UrlOpener::open()
|
||||||
UrlOpener dvHome(QUrl("http://www.toonz.com/"));
|
UrlOpener dvHome(QUrl("http://www.toonz.com/"));
|
||||||
UrlOpener manual(QUrl("file:///C:/gmt/butta/M&C in EU.pdf"));
|
UrlOpener manual(QUrl("file:///C:/gmt/butta/M&C in EU.pdf"));
|
||||||
|
|
||||||
|
TEnv::IntVar LockRoomTabToggle("LockRoomTabToggle", 0);
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
// RoomTabWidget
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
RoomTabWidget::RoomTabWidget(QWidget *parent)
|
||||||
|
: QTabBar(parent)
|
||||||
|
, m_clickedTabIndex(-1)
|
||||||
|
, m_tabToDeleteIndex(-1)
|
||||||
|
, m_renameTabIndex(-1)
|
||||||
|
, m_renameTextField(new DVGui::LineEdit(this))
|
||||||
|
, m_isLocked( LockRoomTabToggle != 0 )
|
||||||
|
{
|
||||||
|
m_renameTextField->hide();
|
||||||
|
connect(m_renameTextField, SIGNAL(editingFinished()), this, SLOT(updateTabName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
RoomTabWidget::~RoomTabWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::swapIndex(int firstIndex, int secondIndex)
|
||||||
|
{
|
||||||
|
QString firstText = tabText(firstIndex);
|
||||||
|
removeTab(firstIndex);
|
||||||
|
insertTab(secondIndex, firstText);
|
||||||
|
emit indexSwapped(firstIndex, secondIndex);
|
||||||
|
|
||||||
|
setCurrentIndex(secondIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
m_renameTextField->hide();
|
||||||
|
if (event->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
|
m_clickedTabIndex = tabAt(event->pos());
|
||||||
|
if (m_clickedTabIndex<0) return;
|
||||||
|
setCurrentIndex(m_clickedTabIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::mouseMoveEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if (m_isLocked) return;
|
||||||
|
if (event->buttons())
|
||||||
|
{
|
||||||
|
int tabIndex = tabAt(event->pos());
|
||||||
|
if (tabIndex == m_clickedTabIndex ||
|
||||||
|
tabIndex<0 || tabIndex >= count() ||
|
||||||
|
m_clickedTabIndex<0)
|
||||||
|
return;
|
||||||
|
swapIndex(m_clickedTabIndex, tabIndex);
|
||||||
|
m_clickedTabIndex = tabIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::mouseReleaseEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
m_clickedTabIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/*! Set a text field with focus in event position to edit tab name.
|
||||||
|
*/
|
||||||
|
void RoomTabWidget::mouseDoubleClickEvent(QMouseEvent * event)
|
||||||
|
{
|
||||||
|
if (m_isLocked) return;
|
||||||
|
int index = tabAt(event->pos());
|
||||||
|
if (index<0) return;
|
||||||
|
m_renameTabIndex = index;
|
||||||
|
DVGui::LineEdit *fld = m_renameTextField;
|
||||||
|
fld->setText(tabText(index));
|
||||||
|
fld->setGeometry(tabRect(index));
|
||||||
|
fld->show();
|
||||||
|
fld->selectAll();
|
||||||
|
fld->setFocus(Qt::OtherFocusReason);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::contextMenuEvent(QContextMenuEvent *event)
|
||||||
|
{
|
||||||
|
if (m_isLocked) return;
|
||||||
|
m_tabToDeleteIndex = -1;
|
||||||
|
QMenu *menu = new QMenu(this);
|
||||||
|
QAction* newRoom = menu->addAction(tr("New Room"));
|
||||||
|
connect(newRoom, SIGNAL(triggered()), SLOT(addNewTab()));
|
||||||
|
|
||||||
|
int index = tabAt(event->pos());
|
||||||
|
if (index != currentIndex() && index >= 0)
|
||||||
|
{
|
||||||
|
m_tabToDeleteIndex = index;
|
||||||
|
QAction* deleteRoom = menu->addAction(tr("Delete Room %1").arg(tabText(index)));
|
||||||
|
connect(deleteRoom, SIGNAL(triggered()), SLOT(deleteTab()));
|
||||||
|
}
|
||||||
|
menu->exec(event->globalPos());
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::updateTabName()
|
||||||
|
{
|
||||||
|
int index = m_renameTabIndex;
|
||||||
|
if (index<0) return;
|
||||||
|
m_renameTabIndex = -1;
|
||||||
|
QString newName = m_renameTextField->text();
|
||||||
|
setTabText(index, newName);
|
||||||
|
m_renameTextField->hide();
|
||||||
|
emit renameTabRoom(index, newName);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::addNewTab()
|
||||||
|
{
|
||||||
|
insertTab(0, tr("Room"));
|
||||||
|
emit insertNewTabRoom();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::deleteTab()
|
||||||
|
{
|
||||||
|
assert(m_tabToDeleteIndex != -1);
|
||||||
|
|
||||||
|
QString question(tr("Are you sure you want to remove room %1").arg(tabText(m_tabToDeleteIndex)));
|
||||||
|
int ret = DVGui::MsgBox(question, QObject::tr("Yes"), QObject::tr("No"));
|
||||||
|
if (ret == 0 || ret == 2) return;
|
||||||
|
|
||||||
|
emit deleteTabRoom(m_tabToDeleteIndex);
|
||||||
|
removeTab(m_tabToDeleteIndex);
|
||||||
|
m_tabToDeleteIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void RoomTabWidget::setIsLocked(bool lock)
|
||||||
|
{
|
||||||
|
m_isLocked = lock;
|
||||||
|
LockRoomTabToggle = (lock) ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// StackedMenuBar
|
// StackedMenuBar
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -63,31 +218,30 @@ void StackedMenuBar::createMenuBarByName(const QString &roomName)
|
||||||
std::cout << "create " << roomName.toStdString() << std::endl;
|
std::cout << "create " << roomName.toStdString() << std::endl;
|
||||||
#if defined(_WIN32) || defined(_CYGWIN_)
|
#if defined(_WIN32) || defined(_CYGWIN_)
|
||||||
if (roomName == "Cleanup")
|
if (roomName == "Cleanup")
|
||||||
createCleanupMenuBar();
|
addWidget(createCleanupMenuBar());
|
||||||
else if (roomName == "PltEdit")
|
else if (roomName == "PltEdit")
|
||||||
createPltEditMenuBar();
|
addWidget(createPltEditMenuBar());
|
||||||
else if (roomName == "InknPaint")
|
else if (roomName == "InknPaint")
|
||||||
createInknPaintMenuBar();
|
addWidget(createInknPaintMenuBar());
|
||||||
else if (roomName == "Xsheet" || roomName == "Schematic" || roomName == "QAR" || roomName == "Flip")
|
else if (roomName == "Xsheet" || roomName == "Schematic" || roomName == "QAR" || roomName == "Flip")
|
||||||
createXsheetMenuBar();
|
addWidget(createXsheetMenuBar());
|
||||||
else if (roomName == "Batches")
|
else if (roomName == "Batches")
|
||||||
createBatchesMenuBar();
|
addWidget(createBatchesMenuBar());
|
||||||
else if (roomName == "Browser")
|
else if (roomName == "Browser")
|
||||||
createBrowserMenuBar();
|
addWidget(createBrowserMenuBar());
|
||||||
else /*-- どれにもあてはまらない場合は全てのコマンドの入ったメニューバーを作る --*/
|
else /*-- どれにもあてはまらない場合は全てのコマンドの入ったメニューバーを作る --*/
|
||||||
createFullMenuBar();
|
addWidget(createFullMenuBar());
|
||||||
#else
|
#else
|
||||||
/* OSX では stacked menu が動いていないのでとりあえず full のみ作成する */
|
/* OSX では stacked menu が動いていないのでとりあえず full のみ作成する */
|
||||||
createFullMenuBar();
|
addWidget(createFullMenuBar());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createCleanupMenuBar()
|
QMenuBar* StackedMenuBar::createCleanupMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *cleanupMenuBar;
|
QMenuBar *cleanupMenuBar = new QMenuBar(this);
|
||||||
cleanupMenuBar = new QMenuBar(this);
|
|
||||||
//----Files Menu
|
//----Files Menu
|
||||||
QMenu *filesMenu = addMenu(tr("Files"), cleanupMenuBar);
|
QMenu *filesMenu = addMenu(tr("Files"), cleanupMenuBar);
|
||||||
addMenuItem(filesMenu, MI_LoadLevel);
|
addMenuItem(filesMenu, MI_LoadLevel);
|
||||||
|
@ -205,15 +359,14 @@ void StackedMenuBar::createCleanupMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), cleanupMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), cleanupMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(cleanupMenuBar);
|
return cleanupMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createPltEditMenuBar()
|
QMenuBar* StackedMenuBar::createPltEditMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *pltEditMenuBar;
|
QMenuBar *pltEditMenuBar = new QMenuBar(this);
|
||||||
pltEditMenuBar = new QMenuBar(this);
|
|
||||||
|
|
||||||
//---Files Menu
|
//---Files Menu
|
||||||
QMenu *filesMenu = addMenu(tr("Files"), pltEditMenuBar);
|
QMenu *filesMenu = addMenu(tr("Files"), pltEditMenuBar);
|
||||||
|
@ -369,15 +522,14 @@ void StackedMenuBar::createPltEditMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), pltEditMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), pltEditMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(pltEditMenuBar);
|
return pltEditMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createInknPaintMenuBar()
|
QMenuBar* StackedMenuBar::createInknPaintMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *inknPaintMenuBar;
|
QMenuBar *inknPaintMenuBar = new QMenuBar(this);
|
||||||
inknPaintMenuBar = new QMenuBar(this);
|
|
||||||
|
|
||||||
//---Files Menu
|
//---Files Menu
|
||||||
QMenu *filesMenu = addMenu(tr("Files"), inknPaintMenuBar);
|
QMenu *filesMenu = addMenu(tr("Files"), inknPaintMenuBar);
|
||||||
|
@ -543,15 +695,14 @@ void StackedMenuBar::createInknPaintMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), inknPaintMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), inknPaintMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(inknPaintMenuBar);
|
return inknPaintMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createXsheetMenuBar()
|
QMenuBar* StackedMenuBar::createXsheetMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *xsheetMenuBar;
|
QMenuBar *xsheetMenuBar = new QMenuBar(this);
|
||||||
xsheetMenuBar = new QMenuBar(this);
|
|
||||||
//----Xsheet Menu
|
//----Xsheet Menu
|
||||||
QMenu *xsheetMenu = addMenu(tr("Xsheet"), xsheetMenuBar);
|
QMenu *xsheetMenu = addMenu(tr("Xsheet"), xsheetMenuBar);
|
||||||
addMenuItem(xsheetMenu, MI_LoadScene);
|
addMenuItem(xsheetMenu, MI_LoadScene);
|
||||||
|
@ -722,15 +873,14 @@ void StackedMenuBar::createXsheetMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), xsheetMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), xsheetMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(xsheetMenuBar);
|
return xsheetMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createBatchesMenuBar()
|
QMenuBar* StackedMenuBar::createBatchesMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *batchesMenuBar;
|
QMenuBar *batchesMenuBar = new QMenuBar(this);
|
||||||
batchesMenuBar = new QMenuBar(this);
|
|
||||||
|
|
||||||
//---Files Menu
|
//---Files Menu
|
||||||
QMenu *filesMenu = addMenu(tr("Files"), batchesMenuBar);
|
QMenu *filesMenu = addMenu(tr("Files"), batchesMenuBar);
|
||||||
|
@ -759,15 +909,14 @@ void StackedMenuBar::createBatchesMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), batchesMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), batchesMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(batchesMenuBar);
|
return batchesMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createBrowserMenuBar()
|
QMenuBar* StackedMenuBar::createBrowserMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *browserMenuBar;
|
QMenuBar * browserMenuBar = new QMenuBar(this);
|
||||||
browserMenuBar = new QMenuBar(this);
|
|
||||||
|
|
||||||
//---Files Menu
|
//---Files Menu
|
||||||
QMenu *filesMenu = addMenu(tr("Files"), browserMenuBar);
|
QMenu *filesMenu = addMenu(tr("Files"), browserMenuBar);
|
||||||
|
@ -798,12 +947,12 @@ void StackedMenuBar::createBrowserMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), browserMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), browserMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(browserMenuBar);
|
return browserMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|
||||||
void StackedMenuBar::createFullMenuBar()
|
QMenuBar* StackedMenuBar::createFullMenuBar()
|
||||||
{
|
{
|
||||||
QMenuBar *fullMenuBar = new QMenuBar(this);
|
QMenuBar *fullMenuBar = new QMenuBar(this);
|
||||||
//Menu' FILE
|
//Menu' FILE
|
||||||
|
@ -1083,7 +1232,7 @@ void StackedMenuBar::createFullMenuBar()
|
||||||
QMenu *helpMenu = addMenu(tr("Help"), fullMenuBar);
|
QMenu *helpMenu = addMenu(tr("Help"), fullMenuBar);
|
||||||
addMenuItem(helpMenu, MI_About);
|
addMenuItem(helpMenu, MI_About);
|
||||||
|
|
||||||
addWidget(fullMenuBar);
|
return fullMenuBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -1106,6 +1255,32 @@ void StackedMenuBar::addMenuItem(QMenu *menu, const char *cmdId)
|
||||||
menu->addAction(action);
|
menu->addAction(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void StackedMenuBar::onIndexSwapped(int firstIndex, int secondIndex)
|
||||||
|
{
|
||||||
|
assert(firstIndex >= 0 && secondIndex >= 0);
|
||||||
|
QWidget* menuBar = widget(firstIndex);
|
||||||
|
removeWidget(menuBar);
|
||||||
|
insertWidget(secondIndex, menuBar);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void StackedMenuBar::insertNewMenuBar()
|
||||||
|
{
|
||||||
|
insertWidget(0, createFullMenuBar());
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void StackedMenuBar::deleteMenuBar(int index)
|
||||||
|
{
|
||||||
|
QWidget* menuBar = widget(index);
|
||||||
|
removeWidget(menuBar);
|
||||||
|
delete menuBar;
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// DvTopBar
|
// DvTopBar
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -1119,12 +1294,16 @@ TopBar::TopBar(QWidget *parent)
|
||||||
setObjectName("TopBar");
|
setObjectName("TopBar");
|
||||||
|
|
||||||
m_containerFrame = new QFrame(this);
|
m_containerFrame = new QFrame(this);
|
||||||
m_roomTabBar = new QTabBar(this);
|
m_roomTabBar = new RoomTabWidget(this);
|
||||||
m_stackedMenuBar = new StackedMenuBar(this);
|
m_stackedMenuBar = new StackedMenuBar(this);
|
||||||
|
m_lockRoomCB = new QCheckBox(this);
|
||||||
|
|
||||||
m_containerFrame->setObjectName("TopBarTabContainer");
|
m_containerFrame->setObjectName("TopBarTabContainer");
|
||||||
m_roomTabBar->setObjectName("TopBarTab");
|
m_roomTabBar->setObjectName("TopBarTab");
|
||||||
m_roomTabBar->setDrawBase(false);
|
m_roomTabBar->setDrawBase(false);
|
||||||
|
m_lockRoomCB->setObjectName("EditToolLockButton");
|
||||||
|
m_lockRoomCB->setToolTip(tr("Lock Rooms Tab"));
|
||||||
|
m_lockRoomCB->setChecked(m_roomTabBar->isLocked());
|
||||||
|
|
||||||
QHBoxLayout *mainLayout = new QHBoxLayout();
|
QHBoxLayout *mainLayout = new QHBoxLayout();
|
||||||
mainLayout->setSpacing(0);
|
mainLayout->setSpacing(0);
|
||||||
|
@ -1141,10 +1320,19 @@ TopBar::TopBar(QWidget *parent)
|
||||||
mainLayout->addLayout(menuLayout);
|
mainLayout->addLayout(menuLayout);
|
||||||
mainLayout->addStretch(1);
|
mainLayout->addStretch(1);
|
||||||
mainLayout->addWidget(m_roomTabBar, 0);
|
mainLayout->addWidget(m_roomTabBar, 0);
|
||||||
|
mainLayout->addSpacing(2);
|
||||||
|
mainLayout->addWidget(m_lockRoomCB, 0);
|
||||||
}
|
}
|
||||||
m_containerFrame->setLayout(mainLayout);
|
m_containerFrame->setLayout(mainLayout);
|
||||||
addWidget(m_containerFrame);
|
addWidget(m_containerFrame);
|
||||||
|
|
||||||
connect(m_roomTabBar, SIGNAL(currentChanged(int)),
|
bool ret = true;
|
||||||
|
ret = ret && connect(m_roomTabBar, SIGNAL(currentChanged(int)),
|
||||||
m_stackedMenuBar, SLOT(setCurrentIndex(int)));
|
m_stackedMenuBar, SLOT(setCurrentIndex(int)));
|
||||||
|
|
||||||
|
ret = ret && connect(m_roomTabBar, SIGNAL(indexSwapped(int, int)), m_stackedMenuBar, SLOT(onIndexSwapped(int, int)));
|
||||||
|
ret = ret && connect(m_roomTabBar, SIGNAL(insertNewTabRoom()), m_stackedMenuBar, SLOT(insertNewMenuBar()));
|
||||||
|
ret = ret && connect(m_roomTabBar, SIGNAL(deleteTabRoom(int)), m_stackedMenuBar, SLOT(deleteMenuBar(int)));
|
||||||
|
ret = ret && connect(m_lockRoomCB, SIGNAL(toggled(bool)), m_roomTabBar, SLOT(setIsLocked(bool)));
|
||||||
|
assert(ret);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,9 +23,10 @@ class TFilePath;
|
||||||
class QPainterEvent;
|
class QPainterEvent;
|
||||||
class QHBoxLayout;
|
class QHBoxLayout;
|
||||||
class SubXsheetRoomTabContainer;
|
class SubXsheetRoomTabContainer;
|
||||||
|
class QCheckBox;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/*
|
|
||||||
class RoomTabWidget : public QTabBar
|
class RoomTabWidget : public QTabBar
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -34,12 +35,13 @@ class RoomTabWidget : public QTabBar
|
||||||
int m_tabToDeleteIndex;
|
int m_tabToDeleteIndex;
|
||||||
int m_renameTabIndex;
|
int m_renameTabIndex;
|
||||||
DVGui::LineEdit* m_renameTextField;
|
DVGui::LineEdit* m_renameTextField;
|
||||||
|
bool m_isLocked;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RoomTabWidget(QWidget *parent);
|
RoomTabWidget(QWidget *parent);
|
||||||
~RoomTabWidget();
|
~RoomTabWidget();
|
||||||
|
|
||||||
void drawContextMenu(QContextMenuEvent *event);
|
bool isLocked(){ return m_isLocked; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void swapIndex(int firstIndex, int secondIndex);
|
void swapIndex(int firstIndex, int secondIndex);
|
||||||
|
@ -48,11 +50,13 @@ protected:
|
||||||
void mouseMoveEvent(QMouseEvent *event);
|
void mouseMoveEvent(QMouseEvent *event);
|
||||||
void mouseReleaseEvent(QMouseEvent *event);
|
void mouseReleaseEvent(QMouseEvent *event);
|
||||||
void mouseDoubleClickEvent(QMouseEvent * event);
|
void mouseDoubleClickEvent(QMouseEvent * event);
|
||||||
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void updateTabName();
|
void updateTabName();
|
||||||
void addNewTab();
|
void addNewTab();
|
||||||
void deleteTab();
|
void deleteTab();
|
||||||
|
void setIsLocked(bool lock);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void indexSwapped(int firstIndex, int secondIndex);
|
void indexSwapped(int firstIndex, int secondIndex);
|
||||||
|
@ -62,7 +66,7 @@ signals:
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
class SubSheetBar : public QFrame
|
class SubSheetBar : public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -137,13 +141,13 @@ class StackedMenuBar : public QStackedWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
void createCleanupMenuBar();
|
QMenuBar* createCleanupMenuBar();
|
||||||
void createPltEditMenuBar();
|
QMenuBar* createPltEditMenuBar();
|
||||||
void createInknPaintMenuBar();
|
QMenuBar* createInknPaintMenuBar();
|
||||||
void createXsheetMenuBar();
|
QMenuBar* createXsheetMenuBar();
|
||||||
void createBatchesMenuBar();
|
QMenuBar* createBatchesMenuBar();
|
||||||
void createBrowserMenuBar();
|
QMenuBar* createBrowserMenuBar();
|
||||||
void createFullMenuBar();
|
QMenuBar* createFullMenuBar();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
StackedMenuBar(QWidget *parent);
|
StackedMenuBar(QWidget *parent);
|
||||||
|
@ -153,6 +157,11 @@ public:
|
||||||
|
|
||||||
QMenu *addMenu(const QString &, QMenuBar *);
|
QMenu *addMenu(const QString &, QMenuBar *);
|
||||||
void addMenuItem(QMenu *, const char *);
|
void addMenuItem(QMenu *, const char *);
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void onIndexSwapped(int firstIndex, int secondIndex);
|
||||||
|
void insertNewMenuBar();
|
||||||
|
void deleteMenuBar(int index);
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -162,8 +171,9 @@ class TopBar : public QToolBar
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
QFrame *m_containerFrame;
|
QFrame *m_containerFrame;
|
||||||
QTabBar *m_roomTabBar;
|
RoomTabWidget *m_roomTabBar;
|
||||||
StackedMenuBar *m_stackedMenuBar;
|
StackedMenuBar *m_stackedMenuBar;
|
||||||
|
QCheckBox* m_lockRoomCB;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TopBar(QWidget *parent);
|
TopBar(QWidget *parent);
|
||||||
|
|
Loading…
Reference in a new issue