Skip to content

Commit

Permalink
feat: 增加一些特性
Browse files Browse the repository at this point in the history
  • Loading branch information
mhduiy committed Oct 1, 2023
1 parent 9f4e083 commit 70d007d
Show file tree
Hide file tree
Showing 12 changed files with 172 additions and 64 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"vector": "cpp",
"string_view": "cpp",
"initializer_list": "cpp",
"qinputmethodevent": "cpp"
"qinputmethodevent": "cpp",
"new": "cpp"
}
}
11 changes: 8 additions & 3 deletions src/customComponents/MDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ MDialog::MDialog(QWidget *parent) : QDialog(parent){
initUI();
}
void MDialog::initUI() {
auto *layout = new QVBoxLayout(this);
m_vLayout = new QVBoxLayout(this);
auto *btnLayout = new QHBoxLayout();
mainLayout = new QGridLayout();

Expand All @@ -20,8 +20,8 @@ void MDialog::initUI() {
btnLayout->addWidget(cancelBtn);
btnLayout->addWidget(confirmBtn);

layout->addLayout(mainLayout);
layout->addLayout(btnLayout);
m_vLayout->addLayout(mainLayout);
m_vLayout->addLayout(btnLayout);

setMinimumWidth(300);

Expand Down Expand Up @@ -102,6 +102,11 @@ void MDialog::on_cancelBtn_clicked() {
this->reject();
}

void MDialog::addWidget(QWidget *widget)
{
m_vLayout->insertWidget(0, widget);
}

QWidget *MDialog::findMainWindow(QObject *obj) {
if(obj == nullptr) {
return nullptr;
Expand Down
10 changes: 10 additions & 0 deletions src/customComponents/MDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
#include <QLabel>
#include <QLineEdit>
#include <QLayout>
#include <DDialog>
#include "customComponents/MButton.h"

DWIDGET_USE_NAMESPACE

class MDialog : public QDialog{
Q_OBJECT
public:
Expand All @@ -38,6 +41,11 @@ class MDialog : public QDialog{
* @return 获取指定label文字的输入框数据
*/
QString getItemInfo(const QString& label);
/**
* 添加一个控件到dialog中
* @param widget 添加的小控件
*/
void addWidget(QWidget *widget = nullptr);

void setLabelById(const QString& label, int id = 0);
void setDefaultStrById(const QString& defaultStr, int id = 0);
Expand All @@ -59,6 +67,8 @@ class MDialog : public QDialog{
QWidget *mainWindow = nullptr;
QGridLayout *mainLayout = nullptr;

QVBoxLayout *m_vLayout = nullptr;

MButton *cancelBtn = nullptr;
MButton *confirmBtn = nullptr;
};
Expand Down
8 changes: 7 additions & 1 deletion src/customComponents/MLineEdit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ MLineEdit::MLineEdit(QWidget *parent)
,m_placeholderFontSizeAni(new QPropertyAnimation(this, "m_placeholderFontSize", this))
,m_backgroundColorAni(new QPropertyAnimation(this, "m_backGroundColor", this))
{
setFixedSize(200, 50);
setFixedHeight(50);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
initUI();
}

Expand Down Expand Up @@ -160,6 +161,11 @@ bool MLineEdit::eventFilter(QObject *obj, QEvent *event)
}
return QWidget::eventFilter(obj, event);
}
void MLineEdit::resizeEvent(QResizeEvent *event)
{
setTipText(m_placeholderText);
return QWidget::resizeEvent(event);
}

double MLineEdit::placeHolderFontSize()
{
Expand Down
1 change: 1 addition & 0 deletions src/customComponents/MLineEdit.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class MLineEdit : public QWidget {
bool eventFilter(QObject *obj, QEvent *event) override;
void focusInEvent(QFocusEvent *event) override;
void focusOutEvent(QFocusEvent *event) override;
void resizeEvent(QResizeEvent *event) override;

private:
void initUI();
Expand Down
4 changes: 2 additions & 2 deletions src/customComponents/MTabSwitchButton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ void MTabSwitchButton::initUI()
{
setFixedHeight(40);

m_aniSliderPos->setDuration(300);
m_aniSliderPos->setEasingCurve(QEasingCurve::OutCubic);
m_aniSliderPos->setDuration(400);
m_aniSliderPos->setEasingCurve(QEasingCurve::InOutCirc);
}

void MTabSwitchButton::paintEvent(QPaintEvent *event)
Expand Down
Empty file removed src/fastApp/FastAppAddWoker.cpp
Empty file.
34 changes: 0 additions & 34 deletions src/fastApp/FastAppEditWoker.h

This file was deleted.

82 changes: 82 additions & 0 deletions src/fastApp/FastAppWoker.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#include "FastAppWoker.h"

FastAppWorker::FastAppWorker(QObject *parent)
:QObject(parent)
,m_dialog(new MDialog())
,m_dialogWidget(new QWidget())
,m_tabSwitchButton(new MTabSwitchButton())
,m_appIcon(new QLabel())
,m_appNameEdit(new MLineEdit())
,m_appDescribtionEdit(new MLineEdit())
,m_appWidget(new QWidget())
,m_appPathEdit(new MLineEdit())
,m_appArgsEdit(new MLineEdit())
,m_cmdWidget(new QWidget())
,m_cmdEdit(new MLineEdit())
,m_dbusWidget(new QWidget())
,m_stackedWidget(new QStackedWidget())
{
m_tabSwitchButton->addItem("启动应用");
m_tabSwitchButton->addItem("执行命令");
m_tabSwitchButton->addItem("运行Dbus");

m_appNameEdit->setTipText("快捷应用名称");
m_appDescribtionEdit->setTipText("描述");
m_appPathEdit->setTipText("可执行文件路径");
m_appArgsEdit->setTipText("启动参数");
m_cmdEdit->setTipText("执行命令");

auto *mainLayout = new QVBoxLayout(m_dialogWidget);

auto *appLayout = new QVBoxLayout(m_appWidget);
auto *cmdLayout = new QVBoxLayout(m_cmdWidget);
auto *dbusLayout = new QVBoxLayout(m_dbusWidget);

auto *tabHLayout = new QHBoxLayout();
tabHLayout->setAlignment(Qt::AlignHCenter);
tabHLayout->setSpacing(0);
tabHLayout->setMargin(0);
tabHLayout->addWidget(m_tabSwitchButton);

mainLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
mainLayout->setSpacing(0);
mainLayout->setMargin(0);

appLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
appLayout->setSpacing(0);
appLayout->setMargin(0);

cmdLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
cmdLayout->setSpacing(0);
cmdLayout->setMargin(0);

dbusLayout->setAlignment(Qt::AlignTop | Qt::AlignHCenter);
dbusLayout->setSpacing(0);
dbusLayout->setMargin(0);

appLayout->addWidget(m_appPathEdit);
appLayout->addWidget(m_appArgsEdit);

cmdLayout->addWidget(m_cmdEdit);

dbusLayout->addWidget(new QLabel("开发中..."));

m_stackedWidget->addWidget(m_appWidget);
m_stackedWidget->addWidget(m_cmdWidget);
m_stackedWidget->addWidget(m_dbusWidget);

mainLayout->addLayout(tabHLayout);;
mainLayout->addWidget(m_appIcon);
mainLayout->addWidget(m_appNameEdit);
mainLayout->addWidget(m_appDescribtionEdit);
mainLayout->addWidget(m_stackedWidget);

m_dialog->addWidget(m_dialogWidget);

connect(m_tabSwitchButton, QOverload<int>::of(&MTabSwitchButton::currentIndexChanged), m_stackedWidget, &QStackedWidget::setCurrentIndex);
}

void FastAppWorker::showDialog()
{
m_dialog->exec();
}
56 changes: 56 additions & 0 deletions src/fastApp/FastAppWoker.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#ifndef FASTAPPWOKER_H
#define FASTAPPWOKER_H

#include <QObject>
#include <dtkwidget_global.h>
#include <QStackedWidget>
#include "customComponents/MDialog.h"
#include "customComponents/MLineEdit.h"
#include "customComponents/MTabSwitchButton.h"

DWIDGET_USE_NAMESPACE

enum SettingType {DBUS, APP};

struct SettingInfo {
SettingType type;

QString headIconPath;
QString headTitleName;

QString appPath;
QStringList args;

QString dbusInterface;
};

class FastAppWorker : public QObject{
Q_OBJECT
public:
explicit FastAppWorker(QObject *parent = nullptr);
void editFastAppInfo(int id);
void addFastAppInfo(int id);
void showDialog();
private:
MDialog *m_dialog = nullptr;

QWidget *m_dialogWidget = nullptr;
MTabSwitchButton *m_tabSwitchButton = nullptr;

QLabel *m_appIcon = nullptr;
MLineEdit *m_appNameEdit = nullptr;
MLineEdit *m_appDescribtionEdit = nullptr;

QWidget *m_appWidget = nullptr;
MLineEdit *m_appPathEdit = nullptr;
MLineEdit *m_appArgsEdit = nullptr;

QWidget *m_cmdWidget = nullptr;
MLineEdit *m_cmdEdit = nullptr;

QWidget *m_dbusWidget = nullptr;

QStackedWidget *m_stackedWidget = nullptr;
};

#endif
24 changes: 1 addition & 23 deletions src/fastApp/fastAppWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,6 @@ FastAppWidget::FastAppWidget(QWidget *parent)
ll->setAlignment(Qt::AlignHCenter);

mainLayout->addLayout(ll);
auto *ld1 = new MLineEdit();
auto *ld2 = new MLineEdit();
auto *ld3 = new MLineEdit();
auto *ld4 = new MLineEdit();

ld1->setTipText("用户名");
ld2->setTipText("密码");
ld3->setTipText("家庭住址");
ld4->setTipText("电话号码");

mainLayout->addWidget(ld1);
mainLayout->addWidget(ld2);
mainLayout->addWidget(ld3);
mainLayout->addWidget(ld4);

connect(tabSwitchBtn, QOverload<int, int>::of(&MTabSwitchButton::currentIndexChanged), this, [](int preIndex, int curIndex){
qWarning() << "切换tab" << preIndex << "->" << curIndex;
Expand All @@ -61,14 +47,6 @@ FastAppWidget::FastAppWidget(QWidget *parent)

mainLayout->addWidget(m_mainWidget);



// mainLayout->addLayout(main1);
// mainLayout->addLayout(main2);
// mainLayout->addLayout(main3);
// mainLayout->addWidget(m_editFastAppBtn);
// mainLayout->addWidget(m_addFastAppBtn);

m_editFastAppBtn->raise();
m_addFastAppBtn->raise();

Expand Down Expand Up @@ -118,5 +96,5 @@ void FastAppWidget::onEditFastAppBtnClicked()

void FastAppWidget::onAddFastAppBtnClicked()
{

worker.showDialog();
}
3 changes: 3 additions & 0 deletions src/fastApp/fastAppWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <dsuggestbutton.h>
#include <DFloatingButton>
#include "FlowLayoutWidget.h"
#include "FastAppWoker.h"

class FastAppWidget : public QWidget{
Q_OBJECT
Expand All @@ -31,6 +32,8 @@ class FastAppWidget : public QWidget{
DFloatingButton *m_editFastAppBtn;
DFloatingButton *m_addFastAppBtn;
FlowLayoutWidget *m_mainWidget = nullptr;

FastAppWorker worker;
};


Expand Down

0 comments on commit 70d007d

Please sign in to comment.