Example #1
0
QWidget * KisToolDyna::createOptionWidget()
{

    QWidget * optionWidget = KisToolFreehand::createOptionWidget();
    optionWidget->setObjectName(toolId() + "option widget");

    QLabel* initWidthLbl = new QLabel(i18n("Initial width:"), optionWidget);
    QLabel* massLbl = new QLabel(i18n("Mass:"), optionWidget);
    QLabel* dragLbl = new QLabel(i18n("Drag:"), optionWidget);
    QLabel* xAngleLbl = new QLabel(i18n("X angle:"), optionWidget);
    QLabel* yAngleLbl = new QLabel(i18n("Y angle:"), optionWidget);
    QLabel* widthRangeLbl = new QLabel(i18n("Width range:"), optionWidget);

    m_chkFixedAngle = new QCheckBox(i18n("Fixed angle:"), optionWidget);
    m_chkFixedAngle->setChecked(false);
    connect(m_chkFixedAngle, SIGNAL(toggled(bool)), this, SLOT(slotSetFixedAngle(bool)));

    m_initWidthSPBox = new QDoubleSpinBox(optionWidget);
    m_initWidthSPBox->setValue(1.5);
    connect(m_initWidthSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetDynaWidth(double)));
    m_massSPBox = new QDoubleSpinBox(optionWidget);
    m_massSPBox->setValue(0.5);
    connect(m_massSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetMass(double)));
    m_dragSPBox = new QDoubleSpinBox(optionWidget);
    m_dragSPBox->setValue(0.15);
    connect(m_dragSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetDrag(double)));
    m_xAngleSPBox = new QDoubleSpinBox(optionWidget);
    m_xAngleSPBox->setValue(0.6);
    connect(m_xAngleSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetXangle(double)));
    m_yAngleSPBox = new QDoubleSpinBox(optionWidget);
    m_yAngleSPBox->setValue(0.2);
    connect(m_yAngleSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetYangle(double)));
    m_widthRangeSPBox = new QDoubleSpinBox(optionWidget);
    m_widthRangeSPBox->setValue(0.05);
    connect(m_widthRangeSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetWidthRange(double)));

    m_optionLayout = new QGridLayout(optionWidget);
    Q_CHECK_PTR(m_optionLayout);

    m_optionLayout->setMargin(0);
    m_optionLayout->setSpacing(2);

    KisToolFreehand::addOptionWidgetLayout(m_optionLayout);
    m_optionLayout->addWidget(initWidthLbl, 5, 0);
    m_optionLayout->addWidget(m_initWidthSPBox, 5, 1, 1, 2);
    m_optionLayout->addWidget(massLbl, 6, 0);
    m_optionLayout->addWidget(m_massSPBox, 6, 1, 1, 2);
    m_optionLayout->addWidget(dragLbl, 7, 0);
    m_optionLayout->addWidget(m_dragSPBox, 7, 1, 1, 2);
    m_optionLayout->addWidget(m_chkFixedAngle, 8, 0);
    m_optionLayout->addWidget(xAngleLbl, 9, 0);
    m_optionLayout->addWidget(m_xAngleSPBox, 9, 1, 1, 2);
    m_optionLayout->addWidget(yAngleLbl, 10, 0);
    m_optionLayout->addWidget(m_yAngleSPBox, 10, 1, 1, 2);
    m_optionLayout->addWidget(widthRangeLbl, 11, 0);
    m_optionLayout->addWidget(m_widthRangeSPBox, 11, 1, 1, 2);

    return optionWidget;
}
Example #2
0
QList<QPointer<QWidget> >  KoToolBase::createOptionWidgets()
{
    QList<QPointer<QWidget> > ow;
    if (QWidget *widget = createOptionWidget()) {
        if (widget->objectName().isEmpty()) {
            widget->setObjectName(toolId());
        }
        ow.append(widget);
    }
    return ow;
}
Example #3
0
void ToolManager::addJSTool(UserCore::Item::ItemInfo* item, uint32 branchId, gcString name, gcString exe, gcString args, gcString res)
{
	if (!item)
		return;

	UserCore::Item::BranchInfoI* branch = item->getBranchById(branchId);

	if (!branch)
		return;

	UserCore::Item::BranchInfo* realBranch = dynamic_cast<UserCore::Item::BranchInfo*>(branch);

	if (!realBranch)
		return;

	bool found = false;


	JSToolInfo* jsinfo = nullptr;

	BaseManager<ToolInfo>::for_each([&](ToolInfo* info)
	{
		auto temp = dynamic_cast<JSToolInfo*>(info);

		if (!temp)
			return;

		if (item->getId() == temp->getItemId() && name == info->getName() && temp->getBranchId() == branchId)
		{
			jsinfo = temp;
			found = true;
		}
	});

	if (found)
	{
		if (!jsinfo->isRealyInstalled())
			jsinfo->setExePath(exe.c_str());

		return;
	}


	DesuraId toolId(m_iLastCustomToolId, DesuraId::TYPE_TOOL);
	m_iLastCustomToolId--;

	JSToolInfo* tool = new JSToolInfo(item->getId(), realBranch->getBranchId(), toolId, name, exe, args, res);
	realBranch->addJSTool(toolId);
	addItem(tool);
}
void ToolManager::addJSTool(gcRefPtr<UserCore::Item::ItemInfo> item, uint32 branchId, gcString name, gcString exe, gcString args, gcString res)
{
	if (!item)
		return;

	auto branch = item->getBranchById(branchId);

	if (!branch)
		return;

	auto realBranch = gcRefPtr<UserCore::Item::BranchInfo>::dyn_cast(branch);

	if (!realBranch)
		return;

	bool found = false;


	gcRefPtr<JSToolInfo> jsinfo;

	BaseManager<ToolInfo>::for_each([&](gcRefPtr<ToolInfo> info)
	{
		auto temp = gcRefPtr<JSToolInfo>::dyn_cast(info);

		if (!temp)
			return;

		if (item->getId() == temp->getItemId() && name == info->getName() && temp->getBranchId() == branchId)
		{
			jsinfo = temp;
			found = true;
		}
	});

	if (found)
	{
		if (!jsinfo->isRealyInstalled())
			jsinfo->setExePath(exe.c_str());

		return;
	}


	DesuraId toolId(m_iLastCustomToolId, DesuraId::TYPE_TOOL);
	m_iLastCustomToolId--;

	auto tool = gcRefPtr<JSToolInfo>::create(item->getId(), realBranch->getBranchId(), toolId, name, exe, args, res);
	realBranch->addJSTool(toolId);
	addItem(tool);
}
void ToolManager::addJSTool(UserCore::Item::ItemInfo* item, uint32 branchId, gcString name, gcString exe, gcString args, gcString res)
{
	if (!item)
		return;

	UserCore::Item::BranchInfoI* branch = item->getBranchById(branchId);

	if (!branch)
		return;

	UserCore::Item::BranchInfo* realBranch = dynamic_cast<UserCore::Item::BranchInfo*>(branch);

	if (!realBranch)
		return;

	bool found = false;

	BaseManager<ToolInfo>::for_each([&](ToolInfo* info)
	{
		JSToolInfo* jsinfo = dynamic_cast<JSToolInfo*>(info);

		if (!jsinfo)
			return;

		if (item->getId() == jsinfo->getItemId() && name == info->getName() && jsinfo->getBranchId() == branchId)
			found = true;
	});

	if (found)
		return;

	DesuraId toolId(m_iLastCustomToolId, DesuraId::TYPE_TOOL);
	m_iLastCustomToolId--;

	JSToolInfo* tool = new JSToolInfo(item->getId(), realBranch->getBranchId(), toolId, name, exe, args, res);
	realBranch->addJSTool(toolId);
	addItem(tool);
}
Example #6
0
void KisToolDyna::activate(ToolActivation toolActivation, const QSet<KoShape*> &shapes)
{
    KisToolPaint::activate(toolActivation, shapes);
    m_configGroup =  KSharedConfig::openConfig()->group(toolId());
}
Example #7
0
QWidget * KisToolDyna::createOptionWidget()
{

    QWidget * optionsWidget = KisToolFreehand::createOptionWidget();
    optionsWidget->setObjectName(toolId() + "option widget");

    m_optionLayout = new QGridLayout(optionsWidget);
    Q_CHECK_PTR(m_optionLayout);

    m_optionLayout->setMargin(0);
    m_optionLayout->setSpacing(2);
    KisToolFreehand::addOptionWidgetLayout(m_optionLayout);

    QLabel* massLbl = new QLabel(i18n("Mass:"), optionsWidget);
    m_massSPBox = new KisDoubleSliderSpinBox(optionsWidget);
    m_massSPBox->setRange(0.0,1.0,2);  
    connect(m_massSPBox, SIGNAL(valueChanged(qreal)), this, SLOT(slotSetMass(qreal)));
    KisToolFreehand::addOptionWidgetOption(m_massSPBox,massLbl);

    QLabel* dragLbl = new QLabel(i18n("Drag:"), optionsWidget);
    m_dragSPBox = new KisDoubleSliderSpinBox(optionsWidget);
    m_dragSPBox->setRange(0.0,1.0,2);
    connect(m_dragSPBox, SIGNAL(valueChanged(qreal)), this, SLOT(slotSetDrag(qreal)));
    KisToolFreehand::addOptionWidgetOption(m_dragSPBox,dragLbl);

    //NOTE: so far unused, waiting for the changes to propagate rotation/pressure to freehand tool
    // fixed angle might be for 2.4, but the later one for 2.5
    m_chkFixedAngle = new QCheckBox(i18n("Fixed angle:"), optionsWidget);
    m_chkFixedAngle->setEnabled(false);
    connect(m_chkFixedAngle, SIGNAL(toggled(bool)), this, SLOT(slotSetFixedAngle(bool)));

    m_angleDSSBox = new KisDoubleSliderSpinBox(optionsWidget);
    m_angleDSSBox->setRange(0,360,0);
    m_angleDSSBox->setSuffix(QChar(Qt::Key_degree));
    m_angleDSSBox->setEnabled(false);
    connect(m_angleDSSBox, SIGNAL(valueChanged(qreal)), this, SLOT(slotSetAngle(qreal)));

    KisToolFreehand::addOptionWidgetOption(m_angleDSSBox,m_chkFixedAngle);

    // read settings in from config
    m_massSPBox->setValue(m_configGroup.readEntry("massAmount", 0.01));
    m_dragSPBox->setValue(m_configGroup.readEntry("dragAmount", .98));
    m_chkFixedAngle->setChecked((bool)m_configGroup.readEntry("useFixedAngle", false));
    m_angleDSSBox->setValue(m_configGroup.readEntry("angleAmount", 20));


#if 0
    QLabel* initWidthLbl = new QLabel(i18n("Initial width:"), optionWidget);
    m_initWidthSPBox = new QDoubleSpinBox(optionWidget);   
    connect(m_initWidthSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetDynaWidth(double)));
    KisToolFreehand::addOptionWidgetOption(m_initWidthSPBox,initWidthLbl);

    QLabel* widthRangeLbl = new QLabel(i18n("Width range:"), optionWidget);
    m_widthRangeSPBox = new QDoubleSpinBox(optionWidget);
    connect(m_widthRangeSPBox, SIGNAL(valueChanged(double)), this, SLOT(slotSetWidthRange(double)));
    //KisToolFreehand::addOptionWidgetOption(m_widthRangeSPBox,widthRangeLbl);

    m_initWidthSPBox->setValue(m_configGroup.readEntry("initWidth", 10));
    m_widthRangeSPBox->setValue(m_configGroup.readEntry("initWidthRange", 20));


#endif

    return optionsWidget;
}