Files
create/src/Gui/TaskPanelView.cpp

179 lines
6.8 KiB
C++

/***************************************************************************
* Copyright (c) 2009 Jürgen Riegel <juergen.riegel@web.de> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library 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 Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
/// Here the FreeCAD includes sorted by Base,App,Gui......
#include "TaskPanelView.h"
#include "BitmapFactory.h"
#include "iisTaskPanel/include/iisTaskPanel"
#include <Base/Console.h>
using namespace Gui;
using namespace Gui::DockWnd;
/* TRANSLATOR Gui::DockWnd::TaskPanelView */
TaskPanelView::TaskPanelView(Gui::Document* pcDocument, QWidget *parent)
: DockWindow(pcDocument,parent)
{
#if QT_VERSION <= 0x040104
// tmp. disable the file logging to suppress some bothering warnings related
// to Qt 4.1 because it will really pollute the log file with useless stuff
Base::Console().SetEnabledMsgType("File", ConsoleMsgType::MsgType_Wrn, false);
Base::Console().SetEnabledMsgType("File", ConsoleMsgType::MsgType_Log, false);
#endif
setWindowTitle(tr( "Task View"));
QGridLayout* gridLayout = new QGridLayout(this);
iisTaskPanel *taskPanel = new iisTaskPanel(this);
iisTaskBox *tb1 = new iisTaskBox(
Gui::BitmapFactory().pixmap("document-new"),QLatin1String("Group of Tasks"),true, this);
taskPanel->addWidget(tb1);
gridLayout->addWidget(taskPanel, 0, 0, 2, 1);
iisIconLabel *i1 = new iisIconLabel(
Gui::BitmapFactory().pixmap("view-zoom-in"), QLatin1String("Do Task 1"), tb1);
tb1->addIconLabel(i1);
//connect(i1, SIGNAL(activated()), this, SLOT(task1()));
iisIconLabel *i2 = new iisIconLabel(
Gui::BitmapFactory().pixmap("view-zoom-out"), QLatin1String("Do Task 2"), tb1);
tb1->addIconLabel(i2);
QHBoxLayout *hbl = new QHBoxLayout();
tb1->groupLayout()->addLayout(hbl);
iisIconLabel *i3 = new iisIconLabel(
Gui::BitmapFactory().pixmap("edit-copy"), QLatin1String("Do Task 3"), tb1);
tb1->addIconLabel(i3, false);
hbl->addWidget(i3);
iisIconLabel *i4 = new iisIconLabel(
Gui::BitmapFactory().pixmap("edit-cut"), QLatin1String("Do Task 4"), tb1);
tb1->addIconLabel(i4, false);
hbl->addWidget(i4);
i4->setColors(Qt::red, Qt::green, Qt::gray);
i4->setFocusPen(QPen());
iisIconLabel *i5 = new iisIconLabel(
Gui::BitmapFactory().pixmap("edit-paste"), QLatin1String("Do Task 5"), tb1);
tb1->addIconLabel(i5);
iisTaskBox *tb2 = new iisTaskBox(
Gui::BitmapFactory().pixmap("document-print"), QLatin1String("Non-expandable Group"), false, this);
taskPanel->addWidget(tb2);
iisIconLabel *i21 = new iisIconLabel(
Gui::BitmapFactory().pixmap("document-new"), QLatin1String("Do Task 2.1"), tb2);
tb2->addIconLabel(i21);
iisIconLabel *i22 = new iisIconLabel(
Gui::BitmapFactory().pixmap("document-open"), QLatin1String("Do Task 2.2"), tb2);
tb2->addIconLabel(i22);
i22->setEnabled(false);
iisIconLabel *i23 = new iisIconLabel(
Gui::BitmapFactory().pixmap("document-save"), QLatin1String("Do Task 2.3"), tb2);
tb2->addIconLabel(i23);
iisTaskBox *tb3 = new iisTaskBox(QPixmap(), QLatin1String("Group without Icons"), true, this);
taskPanel->addWidget(tb3);
iisIconLabel *i31 = new iisIconLabel(QPixmap(), QLatin1String("Do Task 3.1"), tb3);
tb3->addIconLabel(i31);
iisIconLabel *i32 = new iisIconLabel(QPixmap(), QLatin1String("Do Task 3.2"), tb3);
tb3->addIconLabel(i32);
tb3->groupLayout()->addWidget(new QLabel(QLatin1String("Widgets also allowed:"), this));
tb3->groupLayout()->addWidget(new QPushButton(QLatin1String("A Button"), this));
// Other widgets can be also added to the panel
QLabel *l1 = new QLabel(QLatin1String("A group without header"), this);
taskPanel->addWidget(l1);
iisTaskGroup *tb4 = new iisTaskGroup(this);
taskPanel->addWidget(tb4);
iisIconLabel *i41 = new iisIconLabel(
Gui::BitmapFactory().pixmap("system-log-out"), QLatin1String("Do Task 4.1"), tb4);
tb4->addIconLabel(i41);
iisIconLabel *i42 = new iisIconLabel(QPixmap(), QLatin1String("Do Task 4.2"), tb4);
tb4->addIconLabel(i42);
taskPanel->addStretch();
taskPanel->setScheme(iisWinXPTaskPanelScheme::defaultScheme());
//tb1->setScheme(iisWinXPTaskPanelScheme::defaultScheme());
tb2->setScheme(iisWinXPTaskPanelScheme2::defaultScheme());
tb3->setScheme(iisWinXPTaskPanelScheme2::defaultScheme());
//tb4->setScheme(iisWinXPTaskPanelScheme::defaultScheme());
onUpdate();
Gui::Selection().Attach(this);
#if QT_VERSION <= 0x040104
Base::Console().SetEnabledMsgType("File", ConsoleMsgType::MsgType_Wrn, true);
Base::Console().SetEnabledMsgType("File", ConsoleMsgType::MsgType_Log, true);
#endif
}
TaskPanelView::~TaskPanelView()
{
Gui::Selection().Detach(this);
}
/// @cond DOXERR
void TaskPanelView::OnChange(Gui::SelectionSingleton::SubjectType &rCaller,
Gui::SelectionSingleton::MessageType Reason)
{
/*
std::string temp;
if (Reason.Type == SelectionChanges::AddSelection) {
}
else if (Reason.Type == SelectionChanges::ClrSelection) {
}
else if (Reason.Type == SelectionChanges::RmvSelection) {
}
*/
}
void TaskPanelView::onUpdate(void)
{
}
bool TaskPanelView::onMsg(const char* pMsg,const char** ppReturn)
{
return false;
}
/// @endcond
#include "moc_TaskPanelView.cpp"