⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filedialog.cpp

📁 天使工具,e6手机专用,大家都知道吧,狠狠好地东西,直接编译即可
💻 CPP
字号:
#include "xptext.h"#include "filedialog.h"#include "filebrowser.h"#include "xptools.h"//ezx#include <zapplication.h>#include <zscrollview.h>#include <zmultilineedit.h>#include <ezxutilcst.h>#include <zpushbutton.h>#include <zglobal.h>#include <ezxres.h>#include <zmessagebox.h>//qt#include <qvbox.h>#include <qlabel.h>#include <qfile.h>#include <qdir.h>#include <qpixmap.h>QString ChineseAndEnglish(const char*ChineseString); FileDialog::FileDialog(bool editable,char const *buttontext, bool editmode, QWidget *parent, char const *name, unsigned int flags)    : ZMainWidget(editmode, parent, name, flags/*(flags|WType_Modal)*/){    m_editable = editable;    in_loop = FALSE;    QString current = buttontext;    //set own content widget 设置自已的窗口内容    QVBox *cw = new QVBox(this);    setContentWidget(cw);        //get the content widget 获得窗口内容    QVBox *vb = (QVBox*)getContentWidget(0);    setGeometry(0,0,240,320);    //--don't create on open mode, we need wider space    if (m_editable) {         ZScrollView *sv = new ZScrollView(vb);        sv->setMinimumSize(QSize(width(), ZGlobal::getLineHeight() * 3));        sv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));                QString txt = ChineseAndEnglish("文件名:");        QLabel *nlb = new QLabel(txt, sv->viewport());//设置凹痕线        int lbw = QFontMetrics(qApp->font()).width(txt) + 3;        nlb->setMinimumSize(lbw, ZGlobal::getLineHeight());        sv->addChild(nlb, 0, 0, true);            mLineEdit = new ZMultiLineEdit(sv->viewport(), TRUE, 3);        mLineEdit->setIndent(lbw);        //don't accept line feed, carriage return, ?, /, <, >, \, :, ", and * characters 不能输入回车,换行,等        mLineEdit->setFilter(QRegExp("[^\\n\\r?/<>\\\\:\"*]"), TRUE);        sv->addChild(mLineEdit, 0, 0, true);    }       //           mBrowser = new FileBrowser("* *.cfg *.dhm *.ini *.lin *.phm *.sh *.txt *.htm *.html *.xml config installedDB PlugCardDB", vb, "browser");    mBrowser->setDir("/mmc/mmca1");    mBrowser->setFrameShape(QFrame::NoFrame);    mBrowser->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));        QObject::connect(mBrowser, SIGNAL(isFilePicked(bool)), SLOT(filePicked(bool)));        UTIL_CST *cst = new UTIL_CST(this,ChineseAndEnglish("保存"));    setCSTWidget(cst);    mMiddleBtn = cst->getMidBtn();    mMiddleBtn->setEnabled(FALSE);   //mMiddleBtn->setText(buttontext);    mMiddleBtn->setText(ChineseAndEnglish(current));    QObject::connect(mMiddleBtn, SIGNAL(clicked()), SLOT(accept()));        //--    if (m_editable)        QObject::connect(mLineEdit, SIGNAL(textChanged()), SLOT(textChanged()));    else        QObject::connect(mBrowser, SIGNAL(isFilePicked(bool)), mMiddleBtn, SLOT(setEnabled(bool)));    //--        mBackBtn = cst->getRightBtn();    mBackBtn->setResourceID("CST_Back");          QObject::connect(mBackBtn, SIGNAL(clicked()), this, SLOT(reject()));        mPopup = new QPopupMenu(cst, NULL);         mPopup->insertSeparator(SeparatorItem);    mPopup->insertItem(ChineseAndEnglish("系统目录"), SystemItem, SystemItem);    mPopup->insertItem(ChineseAndEnglish("电话目录"), PhoneItem, PhoneItem);    mPopup->insertItem(ChineseAndEnglish("SD卡目录"), SDMMCItem, SDMMCItem);    mPopup->insertItem(ChineseAndEnglish("设置目录"), SetupItem, SetupItem);    mPopup->insertSeparator(SeparatorItem2);            mPopup->setItemEnabled(DeleteItem, FALSE);          QObject::connect(mPopup, SIGNAL(activated(int)), SLOT(selectMenu(int)));    vb->resize(240,288);    mBackBtn = cst->getLeftBtn();    mBackBtn->setPopup(mPopup);}FileDialog::~FileDialog(){ }int FileDialog::exec(){    setResult(0);    show();    if (!in_loop) {        in_loop = TRUE;        qApp->enter_loop();    }        return result();}void FileDialog::done( int r ){    //hide();        if (in_loop) {        in_loop = FALSE;        qApp->exit_loop();    }        setResult(r);}void FileDialog::accept(){   done(Accepted);         }void FileDialog::reject(){    done(Rejected);}void FileDialog::closeEvent(QCloseEvent *e){    e->accept();    reject();}void FileDialog::selectMenu(int idx){         if (idx == PhoneItem) {        mBrowser->setDir("/ezxlocal/download/mystuff");    } else if (idx == SystemItem) {        mBrowser->setDir("/ezxlocal");    } else if (idx == SDMMCItem) {        mBrowser->setDir("/mmc/mmca1");    } else if (idx == SetupItem) {        mBrowser->setDir("/ezxlocal/download/appwrite/setup");    }}void FileDialog::filePicked(bool b){    if (m_editable) {        if (b)             mLineEdit->setText(mBrowser->currentText());        else             mLineEdit->setText("");    }        mPopup->setItemEnabled(DeleteItem, b);}void FileDialog::textChanged(){    if (m_editable) //not needed, only to prevent bad coding        mMiddleBtn->setEnabled(!mLineEdit->text().isEmpty());}void FileDialog::setDir(const QString &path){    mBrowser->setDir(path);}QString FileDialog::getFileName() {    if (m_editable)        return (mBrowser->getFilePath() + "/" + mLineEdit->text().simplifyWhiteSpace());    else        return mBrowser->getFileName();}QString FileDialog::getFilePath(){    return mBrowser->getFilePath();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -