提交 29b27ba6 编写于 作者: D dev

Merge branch 'qt6' of git@gitcode.net:coloreaglestdio/taskbus.git into qt6

...@@ -52,6 +52,7 @@ set(PRJ_HEADERS_CORE ...@@ -52,6 +52,7 @@ set(PRJ_HEADERS_CORE
) )
set(PRJ_HEADERS_GUI set(PRJ_HEADERS_GUI
gui/taskbusplatformfrm.h gui/taskbusplatformfrm.h
gui/handbookview.h
gui/pdesignerview.h gui/pdesignerview.h
gui/taskmodule.h gui/taskmodule.h
gui/tgraphicstaskitem.h gui/tgraphicstaskitem.h
...@@ -72,6 +73,7 @@ set(PRJ_SOURCES_GUI ...@@ -72,6 +73,7 @@ set(PRJ_SOURCES_GUI
gui/taskbusplatformfrm_project.cpp gui/taskbusplatformfrm_project.cpp
gui/dlgabout.cpp gui/dlgabout.cpp
gui/pdesignerview.cpp gui/pdesignerview.cpp
gui/handbookview.cpp
gui/taskmodule.cpp gui/taskmodule.cpp
gui/tgraphicstaskitem.cpp gui/tgraphicstaskitem.cpp
gui/custom_item_editor.cpp gui/custom_item_editor.cpp
...@@ -79,6 +81,7 @@ set(PRJ_SOURCES_GUI ...@@ -79,6 +81,7 @@ set(PRJ_SOURCES_GUI
) )
set(PRJ_FORMS set(PRJ_FORMS
gui/taskbusplatformfrm.ui gui/taskbusplatformfrm.ui
gui/handbookview.ui
gui/pdesignerview.ui gui/pdesignerview.ui
gui/dlgabout.ui gui/dlgabout.ui
......
...@@ -359,6 +359,21 @@ QString taskCell::function_tooltip(const QString & func ) const ...@@ -359,6 +359,21 @@ QString taskCell::function_tooltip(const QString & func ) const
return func; return func;
return m_mainBlock[func]["name"]["name"].toString(); return m_mainBlock[func]["name"]["name"].toString();
} }
QString taskCell::set_function_tooltip(const QString & func , const QString & tooltip)
{
QString old_name = function_tooltip(func);
if (m_mainBlock.contains(func) == false)
return old_name;
if (m_mainBlock[func].contains("name")==false)
return old_name;
if (m_mainBlock[func]["name"].contains("name")==false)
return old_name;
m_mainBlock[func]["name"]["name"] = tooltip;
return old_name;
}
unsigned int taskCell::set_function_instance(const QString & func, unsigned int taskCell::set_function_instance(const QString & func,
unsigned int instance) unsigned int instance)
{ {
......
...@@ -104,6 +104,8 @@ public: ...@@ -104,6 +104,8 @@ public:
, unsigned int instance) ; , unsigned int instance) ;
//获取模块功能的友好信息 Get friendly information on module functions //获取模块功能的友好信息 Get friendly information on module functions
virtual QString function_tooltip(const QString & func ) const; virtual QString function_tooltip(const QString & func ) const;
//获取模块功能的友好信息 Get friendly information on module functions
virtual QString set_function_tooltip(const QString & func , const QString & tooltip);
//获取模块功能的可执行文件路径 Get the executable file path for module //获取模块功能的可执行文件路径 Get the executable file path for module
virtual QString function_exec(const QString & func ) const; virtual QString function_exec(const QString & func ) const;
//设置模块功能的可执行文件路径 Set the executable file path for module //设置模块功能的可执行文件路径 Set the executable file path for module
......
#include "dlgabout.h" #include "dlgabout.h"
#include "ui_dlgabout.h" #include "ui_dlgabout.h"
#include <QUrl> #include <QUrl>
#include <QDateTime>
DlgAbout::DlgAbout(QWidget *parent) : DlgAbout::DlgAbout(QWidget *parent) :
QDialog(parent), QDialog(parent),
ui(new Ui::DlgAbout) ui(new Ui::DlgAbout)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->textBrowser_About-> ui->textBrowser_About->
setText("Taskbus is a cross-platform" setText(tr("Taskbus is a cross-platform"
" multi-process cooperation framework for non-professional " " multi-process cooperation framework for non-professional "
"developers, with four features of process based, " "developers, with four features of process based, "
"language independent, compiler independent, and architecture Independent.\n" "language independent, compiler independent, and architecture Independent.\n"
"by goldenhawking@163.com, Colored Eagle Studio, 2016,2017,2018,2019"); "by Colored Eagle Studio, 2016~%1").arg(QDateTime::currentDateTime().date().year()));
} }
DlgAbout::~DlgAbout() DlgAbout::~DlgAbout()
......
#include "handbookview.h"
#include "ui_handbookview.h"
HandbookView::HandbookView(QWidget *parent) :
QWidget(parent),
ui(new Ui::HandbookView)
{
ui->setupUi(this);
connect (ui->textBrowser_help, &QTextBrowser::backwardAvailable,ui->pushButton_backward,&QPushButton::setEnabled);
connect (ui->textBrowser_help, &QTextBrowser::forwardAvailable,ui->pushButton_forward,&QPushButton::setEnabled);
connect (ui->pushButton_forward,&QPushButton::pressed,ui->textBrowser_help, &QTextBrowser::forward);
connect (ui->pushButton_backward,&QPushButton::pressed,ui->textBrowser_help, &QTextBrowser::backward);
connect (ui->textBrowser_help, &QTextBrowser::sourceChanged,[&](QUrl u){
ui->lineEdit_url->setText(u.toDisplayString());
});
}
HandbookView::~HandbookView()
{
delete ui;
}
void HandbookView::setUrl(QString urlstr,QString FailedString)
{
if (urlstr.length())
{
QUrl u = QUrl::fromLocalFile(urlstr);
ui->textBrowser_help->setSource(u,QTextDocument::MarkdownResource);
}
else
{
ui->textBrowser_help->setMarkdown(
"# Documents Does NOT Exist\r\n\r\n"
"You can write documents with markdown in any place below:\r\n\r\n"
+FailedString
);
}
}
#ifndef HANDBOOKVIEW_H
#define HANDBOOKVIEW_H
#include <QWidget>
namespace Ui {
class HandbookView;
}
class HandbookView : public QWidget
{
Q_OBJECT
public:
explicit HandbookView(QWidget *parent = nullptr);
~HandbookView();
public:
void setUrl(QString urlstr, QString FailedString = "");
private:
Ui::HandbookView *ui;
};
#endif // HANDBOOKVIEW_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HandbookView</class>
<widget class="QWidget" name="HandbookView">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_backward">
<property name="text">
<string>Backward</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_forward">
<property name="text">
<string>Forward</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>URL</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_url">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser_help">
<property name="autoFormatting">
<set>QTextEdit::AutoNone</set>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <QJsonObject> #include <QJsonObject>
#include <QEasingCurve> #include <QEasingCurve>
#include <QToolBar> #include <QToolBar>
#include <QInputDialog>
#include "core/tasknode.h" #include "core/tasknode.h"
#include "taskbusplatformfrm.h" #include "taskbusplatformfrm.h"
#include "taskmodule.h" #include "taskmodule.h"
...@@ -65,6 +66,7 @@ PDesignerView::PDesignerView(taskBusPlatformFrm * pMainfrm,QWidget *parent) : ...@@ -65,6 +66,7 @@ PDesignerView::PDesignerView(taskBusPlatformFrm * pMainfrm,QWidget *parent) :
bar->addAction(ui->actionPaste); addAction(ui->actionPaste); bar->addAction(ui->actionPaste); addAction(ui->actionPaste);
bar->addAction(ui->actionUndo); addAction(ui->actionUndo); bar->addAction(ui->actionUndo); addAction(ui->actionUndo);
bar->addAction(ui->actionRedo); addAction(ui->actionRedo); bar->addAction(ui->actionRedo); addAction(ui->actionRedo);
bar->addAction(ui->action_rename); addAction(ui->action_rename);
addAction(bar->addSeparator()); addAction(bar->addSeparator());
bar->setOrientation(Qt::Vertical); bar->setOrientation(Qt::Vertical);
ui->horizontalLayout->insertWidget(1,bar); ui->horizontalLayout->insertWidget(1,bar);
...@@ -902,3 +904,22 @@ void PDesignerView::savedUndoState() ...@@ -902,3 +904,22 @@ void PDesignerView::savedUndoState()
set_modified(false); set_modified(false);
m_savedPos = m_undoPos; m_savedPos = m_undoPos;
} }
void PDesignerView::on_action_rename_triggered()
{
int sz = m_vec_gitems.size();
const int node = selectedNode();
if (node>=0 && node < sz)
{
QString func = project()->vec_cells()[node]->function_firstname();
QString tooltip = project()->vec_cells()[node]->function_tooltip(func);
bool ok;
QString newtip = QInputDialog::getText(this,tr("Set Friendly Name"),tr("Tooltip"),QLineEdit::Normal,
tooltip,&ok);
if (ok && newtip.size())
project()->vec_cells()[node]->set_function_tooltip(func,newtip);
}
ui->graphicsView_main->scale(0.5,1);
ui->graphicsView_main->scale(2,1);
appendUndoList();
}
...@@ -132,6 +132,7 @@ private slots: ...@@ -132,6 +132,7 @@ private slots:
void on_actionNiceDown_triggered(); void on_actionNiceDown_triggered();
void on_actionUndo_triggered(); void on_actionUndo_triggered();
void on_actionRedo_triggered(); void on_actionRedo_triggered();
void on_action_rename_triggered();
}; };
#endif // PDESIGNERVIEW_H #endif // PDESIGNERVIEW_H
...@@ -298,6 +298,18 @@ ...@@ -298,6 +298,18 @@
<string>Ctrl+Shift+Z</string> <string>Ctrl+Shift+Z</string>
</property> </property>
</action> </action>
<action name="action_rename">
<property name="icon">
<iconset resource="../taskbusplatform.qrc">
<normaloff>:/icons/taskbusplatform.ico</normaloff>:/icons/taskbusplatform.ico</iconset>
</property>
<property name="text">
<string>&amp;rename</string>
</property>
<property name="shortcut">
<string>Ctrl+R</string>
</property>
</action>
</widget> </widget>
<resources> <resources>
<include location="../taskbusplatform.qrc"/> <include location="../taskbusplatform.qrc"/>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <QSettings> #include <QSettings>
#include <QDateTime> #include <QDateTime>
#include "pdesignerview.h" #include "pdesignerview.h"
#include "handbookview.h"
#include "watchdog/tbwatchdog.h" #include "watchdog/tbwatchdog.h"
#include "dlgabout.h" #include "dlgabout.h"
...@@ -323,23 +324,21 @@ void taskBusPlatformFrm::on_actionhideWindow_toggled(bool arg1) ...@@ -323,23 +324,21 @@ void taskBusPlatformFrm::on_actionhideWindow_toggled(bool arg1)
void taskBusPlatformFrm::on_listView_modules_doubleClicked(const QModelIndex &index) void taskBusPlatformFrm::on_listView_modules_doubleClicked(const QModelIndex &index)
{ {
QMdiSubWindow * sub = ui->mdiArea->activeSubWindow(); if (ui->listView_modules->model())
if (sub)
{ {
PDesignerView * dv = qobject_cast<PDesignerView *>(sub->widget()); taskModule * mod = qobject_cast<taskModule *>(ui->listView_modules->model());
if (dv) if (!mod)
{ return;
if (ui->listView_modules->model()) int r = index.row();
{ QStringList functions = mod->function_names();
QModelIndexList lst; if (r<0 || r>=functions.size())
lst<<index; return;
QMimeData * d = ui->listView_modules->model()->mimeData(lst); QString func = functions.at(r);
if (d) QString exe = mod->function_exec(func);
dv->addCell(d); load_doucment(func,exe);
}
}
} }
} }
void taskBusPlatformFrm::on_checkBox_showCmd_stateChanged(int /*arg1*/) void taskBusPlatformFrm::on_checkBox_showCmd_stateChanged(int /*arg1*/)
...@@ -358,3 +357,55 @@ void taskBusPlatformFrm::slot_cmd_show(QMap<QString,QVariant> cmd) ...@@ -358,3 +357,55 @@ void taskBusPlatformFrm::slot_cmd_show(QMap<QString,QVariant> cmd)
m_pCmdViewModel->removeRows(0,m_pCmdViewModel->rowCount()-keepRows); m_pCmdViewModel->removeRows(0,m_pCmdViewModel->rowCount()-keepRows);
ui->listView_commands->scrollToBottom(); ui->listView_commands->scrollToBottom();
} }
void taskBusPlatformFrm::load_doucment(QString func,QString exe)
{
//OpenDocuments
QFileInfo info(exe);
QString baseName = info.path()+"/"+
info.completeBaseName();
QString urlstr;
QString FailedString;
FailedString += exe+".md" + "\n\n";
FailedString += baseName+".md" + "\n\n";
FailedString += baseName+".documents/index.md" + "\n\n";
if (QFileInfo::exists(exe+".md"))
urlstr = exe+".md";
else if (QFileInfo::exists(baseName+".md"))
urlstr = baseName+".md";
else if (QFileInfo::exists(baseName+".documents/index.md"))
urlstr = baseName+".documents/index.md";
QList<QMdiSubWindow *> AllSubWnds = ui->mdiArea->subWindowList();
QString title = tr("DOC:") + func;
//Find existing window
QMdiSubWindow * wnd = nullptr;
foreach (QMdiSubWindow * w, AllSubWnds)
{
if (w->windowTitle()==title)
{
wnd = w;
ui->mdiArea->setActiveSubWindow(w);
break;
}
}
if (!wnd )
{
HandbookView * view = new HandbookView(this);
if (view)
{
view->setWindowTitle(title);
wnd = ui->mdiArea->addSubWindow(view);
view->show();
view->setUrl(urlstr,FailedString);
wnd->setWindowTitle(title);
}
}
}
void taskBusPlatformFrm::on_action_Help_triggered()
{
load_doucment("taskBus",QCoreApplication::applicationFilePath());
}
...@@ -43,6 +43,8 @@ private slots: ...@@ -43,6 +43,8 @@ private slots:
void on_listView_modules_doubleClicked(const QModelIndex &index); void on_listView_modules_doubleClicked(const QModelIndex &index);
void on_checkBox_showCmd_stateChanged(int arg1); void on_checkBox_showCmd_stateChanged(int arg1);
void on_action_Help_triggered();
signals: signals:
void showSplash(QString msg,Qt::Alignment, QColor); void showSplash(QString msg,Qt::Alignment, QColor);
void hideSplash(); void hideSplash();
...@@ -51,6 +53,7 @@ protected: ...@@ -51,6 +53,7 @@ protected:
void closeEvent(QCloseEvent * event) override; void closeEvent(QCloseEvent * event) override;
void load_modules(QStringList lstNames); void load_modules(QStringList lstNames);
void save_default_modules(); void save_default_modules();
void load_doucment(QString func,QString exeFile);
private: private:
Ui::taskBus *ui; Ui::taskBus *ui;
QSystemTrayIcon * m_pTrayIcon = nullptr; QSystemTrayIcon * m_pTrayIcon = nullptr;
......
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>800</width> <width>800</width>
<height>25</height> <height>22</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menu_Application"> <widget class="QMenu" name="menu_Application">
...@@ -125,6 +125,7 @@ ...@@ -125,6 +125,7 @@
<string>&amp;Help</string> <string>&amp;Help</string>
</property> </property>
<addaction name="action_About"/> <addaction name="action_About"/>
<addaction name="action_Help"/>
</widget> </widget>
<addaction name="menu_Moudles"/> <addaction name="menu_Moudles"/>
<addaction name="menu_Application"/> <addaction name="menu_Application"/>
...@@ -172,9 +173,6 @@ ...@@ -172,9 +173,6 @@
<height>524287</height> <height>524287</height>
</size> </size>
</property> </property>
<property name="features">
<set>QDockWidget::AllDockWidgetFeatures</set>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Mod&amp;ules</string> <string>Mod&amp;ules</string>
</property> </property>
...@@ -251,9 +249,6 @@ ...@@ -251,9 +249,6 @@
<height>103</height> <height>103</height>
</size> </size>
</property> </property>
<property name="features">
<set>QDockWidget::AllDockWidgetFeatures</set>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>P&amp;roperties</string> <string>P&amp;roperties</string>
</property> </property>
...@@ -317,9 +312,6 @@ ...@@ -317,9 +312,6 @@
<property name="floating"> <property name="floating">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="features">
<set>QDockWidget::AllDockWidgetFeatures</set>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Messa&amp;ges</string> <string>Messa&amp;ges</string>
</property> </property>
...@@ -545,6 +537,11 @@ ...@@ -545,6 +537,11 @@
<string>Save Project &amp;As...</string> <string>Save Project &amp;As...</string>
</property> </property>
</action> </action>
<action name="action_Help">
<property name="text">
<string>&amp;Help</string>
</property>
</action>
<zorder>dockWidget_message</zorder> <zorder>dockWidget_message</zorder>
<zorder>dockWidget_watch</zorder> <zorder>dockWidget_watch</zorder>
<zorder>dockWidget_cmd</zorder> <zorder>dockWidget_cmd</zorder>
......
...@@ -36,9 +36,9 @@ void taskBusPlatformFrm::on_action_Save_Project_triggered() ...@@ -36,9 +36,9 @@ void taskBusPlatformFrm::on_action_Save_Project_triggered()
if (sub) if (sub)
{ {
PDesignerView * dv = qobject_cast<PDesignerView *>(sub->widget()); PDesignerView * dv = qobject_cast<PDesignerView *>(sub->widget());
QString oldfm = dv->fullFileName();
if (dv) if (dv)
{ {
QString oldfm = dv->fullFileName();
QSettings settings(inifile(),QSettings::IniFormat); QSettings settings(inifile(),QSettings::IniFormat);
QString strLastModuleDir = settings.value("history/strLastSaveDir","./").toString(); QString strLastModuleDir = settings.value("history/strLastSaveDir","./").toString();
QString dirstr = strLastModuleDir; QString dirstr = strLastModuleDir;
...@@ -89,9 +89,9 @@ void taskBusPlatformFrm::on_action_Save_Project_As_triggered() ...@@ -89,9 +89,9 @@ void taskBusPlatformFrm::on_action_Save_Project_As_triggered()
if (sub) if (sub)
{ {
PDesignerView * dv = qobject_cast<PDesignerView *>(sub->widget()); PDesignerView * dv = qobject_cast<PDesignerView *>(sub->widget());
QString oldfm = dv->fullFileName();
if (dv) if (dv)
{ {
QString oldfm = dv->fullFileName();
QSettings settings(inifile(),QSettings::IniFormat); QSettings settings(inifile(),QSettings::IniFormat);
QString strLastModuleDir = settings.value("history/strLastSaveDir","./").toString(); QString strLastModuleDir = settings.value("history/strLastSaveDir","./").toString();
QString dirstr = strLastModuleDir; QString dirstr = strLastModuleDir;
......
...@@ -54,6 +54,7 @@ SOURCES += \ ...@@ -54,6 +54,7 @@ SOURCES += \
gui/dlgabout.cpp \ gui/dlgabout.cpp \
gui/main.cpp \ gui/main.cpp \
gui/pdesignerview.cpp \ gui/pdesignerview.cpp \
gui/handbookview.cpp \
gui/taskmodule.cpp \ gui/taskmodule.cpp \
gui/tgraphicstaskitem.cpp \ gui/tgraphicstaskitem.cpp \
core/process_prctl.cpp \ core/process_prctl.cpp \
...@@ -66,6 +67,7 @@ HEADERS += \ ...@@ -66,6 +67,7 @@ HEADERS += \
core/tasknode.h \ core/tasknode.h \
core/taskcell.h \ core/taskcell.h \
core/taskproject.h \ core/taskproject.h \
gui/handbookview.h \
gui/taskbusplatformfrm.h \ gui/taskbusplatformfrm.h \
gui/pdesignerview.h \ gui/pdesignerview.h \
gui/taskmodule.h \ gui/taskmodule.h \
...@@ -82,6 +84,7 @@ HEADERS += \ ...@@ -82,6 +84,7 @@ HEADERS += \
FORMS += \ FORMS += \
gui/taskbusplatformfrm.ui \ gui/taskbusplatformfrm.ui \
gui/handbookview.ui \
gui/pdesignerview.ui \ gui/pdesignerview.ui \
gui/dlgabout.ui gui/dlgabout.ui
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册