Browse Source

可配置使用Enter/Cmd(Ctrl)+Enter发送

rankuser不再保存交谈0次的用户
tags/v1.0
chenyong 8 years ago
parent
commit
984736e8ff
8 changed files with 61 additions and 15 deletions
  1. +18
    -7
      mainwindow.cpp
  2. +1
    -4
      mainwindow.ui
  3. +1
    -1
      plugin/rankuser.cpp
  4. +1
    -0
      readme.md
  5. +28
    -0
      sendtextedit.cpp
  6. +9
    -0
      sendtextedit.h
  7. +2
    -2
      settings.cpp
  8. +1
    -1
      settings.h

+ 18
- 7
mainwindow.cpp View File

@@ -21,6 +21,14 @@ MainWindow::MainWindow(QWidget *parent) :
qRegisterMetaType<shared_ptr<ViewEvent>>("ViewEventSharedPtr"); qRegisterMetaType<shared_ptr<ViewEvent>>("ViewEventSharedPtr");


connect(this, SIGNAL(showErrorAndQuit(QString)), this, SLOT(onShowErrorAndQuit(QString))); connect(this, SIGNAL(showErrorAndQuit(QString)), this, SLOT(onShowErrorAndQuit(QString)));

//加载配置
auto settingFilePath = QDir::home().filePath(".feiq_setting.ini");
mSettings = new Settings(settingFilePath, QSettings::IniFormat);
mSettings->setIniCodec(QTextCodec::codecForName("UTF-8"));
mTitle = mSettings->value("app/title", "mac飞秋").toString();
setWindowTitle(mTitle);

//初始化搜索对话框 //初始化搜索对话框
mSearchFellowDlg = new SearchFellowDlg(this); mSearchFellowDlg = new SearchFellowDlg(this);
connect(mSearchFellowDlg, SIGNAL(onFellowSelected(const Fellow*)), connect(mSearchFellowDlg, SIGNAL(onFellowSelected(const Fellow*)),
@@ -48,6 +56,16 @@ MainWindow::MainWindow(QWidget *parent) :
//初始化发送文本框 //初始化发送文本框
mSendTextEdit = ui->sendEdit; mSendTextEdit = ui->sendEdit;
connect(mSendTextEdit, SIGNAL(acceptDropFiles(QList<QFileInfo>)), this, SLOT(sendFiles(QList<QFileInfo>))); connect(mSendTextEdit, SIGNAL(acceptDropFiles(QList<QFileInfo>)), this, SLOT(sendFiles(QList<QFileInfo>)));
if (mSettings->value("app/send_by_enter", true).toBool())
{
connect(mSendTextEdit, SIGNAL(enterPressed()), this, SLOT(sendText()));
connect(mSendTextEdit, SIGNAL(ctrlEnterPressed()), mSendTextEdit, SLOT(newLine()));
}
else
{
connect(mSendTextEdit, SIGNAL(ctrlEnterPressed()), this, SLOT(sendText()));
connect(mSendTextEdit, SIGNAL(enterPressed()), mSendTextEdit, SLOT(newLine()));
}


//初始化Emoji对话框 //初始化Emoji对话框
mChooseEmojiDlg = new ChooseEmojiDlg(this); mChooseEmojiDlg = new ChooseEmojiDlg(this);
@@ -62,13 +80,6 @@ MainWindow::MainWindow(QWidget *parent) :
connect(ui->actionSendKnock, SIGNAL(triggered(bool)), this, SLOT(sendKnock())); connect(ui->actionSendKnock, SIGNAL(triggered(bool)), this, SLOT(sendKnock()));
connect(ui->actionSendFile, SIGNAL(triggered(bool)), this, SLOT(sendFile())); connect(ui->actionSendFile, SIGNAL(triggered(bool)), this, SLOT(sendFile()));


//加载配置
auto settingFilePath = QDir::home().filePath(".feiq_setting.ini");
mSettings = new Settings(settingFilePath, QSettings::IniFormat);
mSettings->setIniCodec(QTextCodec::codecForName("UTF-8"));
mTitle = mSettings->value("app/title", "mac飞秋").toString();
setWindowTitle(mTitle);

//初始化飞秋引擎 //初始化飞秋引擎
connect(this, SIGNAL(feiqViewEvent(shared_ptr<ViewEvent>)), this, SLOT(handleFeiqViewEvent(shared_ptr<ViewEvent>))); connect(this, SIGNAL(feiqViewEvent(shared_ptr<ViewEvent>)), this, SLOT(handleFeiqViewEvent(shared_ptr<ViewEvent>)));




+ 1
- 4
mainwindow.ui View File

@@ -146,9 +146,6 @@
<property name="text"> <property name="text">
<string>查找</string> <string>查找</string>
</property> </property>
<property name="shortcut">
<string>Ctrl+S</string>
</property>
</action> </action>
<action name="actionSettings"> <action name="actionSettings">
<property name="text"> <property name="text">
@@ -168,7 +165,7 @@
<string>发送文本消息</string> <string>发送文本消息</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+Return</string>
<string/>
</property> </property>
</action> </action>
<action name="actionSendKnock"> <action name="actionSendKnock">


+ 1
- 1
plugin/rankuser.cpp View File

@@ -43,5 +43,5 @@ QString RankUser::fellowKey(const Fellow &f)


int RankUser::weightOfFellow(const Fellow &f) int RankUser::weightOfFellow(const Fellow &f)
{ {
return mFeiq->settings()->value(fellowKey(f), "0").toInt();
return mFeiq->settings()->value(fellowKey(f), "0", false).toInt();
} }

+ 1
- 0
readme.md View File

@@ -26,6 +26,7 @@ host = Niubility Macbook ;设置主机名


[app] [app]
title = Feiq by CompileLife ;设置一个高端大气上档次的窗口标题名称,亮瞎围观你飞秋的人 title = Feiq by CompileLife ;设置一个高端大气上档次的窗口标题名称,亮瞎围观你飞秋的人
send_by_enter=0 ;0:cmd/ctrl+enter发送;enter回车; 1:相反


[network] [network]
custom_group=192.168.74.|192.168.82. ;设置一些广播包无法触及的子网,点号结束一个网段的定义,竖线分隔各个网段 custom_group=192.168.74.|192.168.82. ;设置一些广播包无法触及的子网,点号结束一个网段的定义,竖线分隔各个网段


+ 28
- 0
sendtextedit.cpp View File

@@ -3,11 +3,18 @@
#include <QDropEvent> #include <QDropEvent>
#include <QMimeData> #include <QMimeData>
#include <QFileInfo> #include <QFileInfo>
#include <QDebug>


SendTextEdit::SendTextEdit(QWidget *parent) SendTextEdit::SendTextEdit(QWidget *parent)
:QTextEdit(parent) :QTextEdit(parent)
{ {
setAcceptDrops(true); setAcceptDrops(true);
installEventFilter(this);
}

void SendTextEdit::newLine()
{
append("");
} }


void SendTextEdit::dragEnterEvent(QDragEnterEvent *e) void SendTextEdit::dragEnterEvent(QDragEnterEvent *e)
@@ -48,3 +55,24 @@ void SendTextEdit::dropEvent(QDropEvent *e)
QTextEdit::dropEvent(e); QTextEdit::dropEvent(e);
} }
} }

bool SendTextEdit::eventFilter(QObject *, QEvent * e)
{
if (e->type() == QEvent::KeyPress)
{
auto keyEvent = static_cast<QKeyEvent*>(e);
auto enter = keyEvent->key() == Qt::Key_Return;
auto ctrl = keyEvent->modifiers() == Qt::ControlModifier;
if (enter && ctrl)
{
emit ctrlEnterPressed();
return true;
}
else if (enter)
{
emit enterPressed();
return true;
}
}
return false;
}

+ 9
- 0
sendtextedit.h View File

@@ -13,10 +13,19 @@ public:


signals: signals:
void acceptDropFiles(QList<QFileInfo>); void acceptDropFiles(QList<QFileInfo>);
void ctrlEnterPressed();
void enterPressed();

public slots:
void newLine();


protected: protected:
virtual void dragEnterEvent(QDragEnterEvent *e) override; virtual void dragEnterEvent(QDragEnterEvent *e) override;
virtual void dropEvent(QDropEvent *e) override; virtual void dropEvent(QDropEvent *e) override;
virtual bool eventFilter(QObject *, QEvent *e) override;

private:
bool mCtrlDown =false;
}; };


#endif // SENDTEXTEDIT_H #endif // SENDTEXTEDIT_H

+ 2
- 2
settings.cpp View File

@@ -6,10 +6,10 @@ Settings::Settings(const QString &fileName, QSettings::Format format, QObject *p


} }


QVariant Settings::value(const QString &key, const QVariant &defaultValue)
QVariant Settings::value(const QString &key, const QVariant &defaultValue, bool cacheDefault)
{ {
//如果配置中没有该项,则以默认值创建,方便用户知道有那些配置项可用 //如果配置中没有该项,则以默认值创建,方便用户知道有那些配置项可用
if (!contains(key))
if (!contains(key) && cacheDefault)
{ {
if (!defaultValue.isValid() || defaultValue.isNull()) if (!defaultValue.isValid() || defaultValue.isNull())
setValue(key, "");//防止非法值 setValue(key, "");//防止非法值


+ 1
- 1
settings.h View File

@@ -10,7 +10,7 @@ public:
Settings(const QString &fileName, Format format, QObject *parent = Q_NULLPTR); Settings(const QString &fileName, Format format, QObject *parent = Q_NULLPTR);
public: public:
//QSettings::value不是虚函数,这里并非多态重载,使用时需注意以Settings指针调用,而非QSettings调用 //QSettings::value不是虚函数,这里并非多态重载,使用时需注意以Settings指针调用,而非QSettings调用
QVariant value(const QString &key, const QVariant &defaultValue = QVariant());
QVariant value(const QString &key, const QVariant &defaultValue = QVariant(), bool cacheDefault=true);


}; };




Loading…
Cancel
Save