📄 xptools.cpp
字号:
#include "xptools.h"#include "xptext.h"#include "filedialog.h"#include "filebrowser.h"#include "back.h"#include "output.h"#include "dirview.h"#include "sysinfo.h"#include "dropin/config.h"#include "xpconfig.h"#include "login.h"//ezx#include <zapplication.h>#include <ezxres.h>#include <zmessagebox.h>#include "view.h"//qt#include <qvbox.h>#include <qfile.h>#include <qdir.h>#include <qpixmap.h>#include <qwallpaper.h>#include <qpushbutton.h>#include <qfont.h>#include <qmovie.h>#include <qtextstream.h>//#include <stddef.h>//#include <stdio.h>#include <stdlib.h>/*调用可执行文件用到的头文件*///#include <sys/types.h>//#include <sys/wait.h>//#include <sys/ioctl.h>//#include <sys/socket.h>#include <unistd.h>#include <fcntl.h>//mooviewQString ChineseAndEnglish(const char*ChineseString); XpTools::XpTools(const QString& fileName, QWidget *parent, char const *name, unsigned int flags) : ZMainWidget(false,fileName, parent, name, flags/*(flags|WType_Modal)*/){ /* if (QFile::exists("wallpaper.jpg")) { QWallpaper wpp; QPixmap *pix = new QPixmap("wallpaper.jpg"); wpp.setAppWallpaperMode(QWallpaper::UseAppWallpaper); wpp.setAppWallpaper(pix); // I can make E680i user confuse 加入背景;) //wpp.setSysWallpaper(pix); delete pix; } */ getTitleBarWidget()->setText(ChineseAndEnglish("高级文件管理"));//窗口菜单 current1 = fileName; RES_ICON_Reader ir; UTIL_PushButton* quit = new UTIL_PushButton(ir.getIcon("Call_Delete_Digit_Acti.gif",1),ir.getIcon("Call_Delete_Digit_Nor.gif",1), ChineseAndEnglish(""), this, 0, 30, 24); quit->move(208, 1); quit->show(); connect(quit, SIGNAL(clicked()), this, SLOT(cdUp())); in_loop = FALSE; QVBox *cw = new QVBox(this); setContentWidget(cw); QVBox *vb = (QVBox*)getContentWidget(0); currentItem=0; mBrowser = new FileBrowser("* 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))); QObject::connect(mBrowser, SIGNAL(isDirPicked(bool)), SLOT(dirPicked(bool))); QObject::connect(mBrowser, SIGNAL(isFileClicked(bool)), SLOT(fileClicked(bool))); QObject::connect(mBrowser, SIGNAL(mouseEvent1(const QString &dirName)), SLOT(mouseEventClicked(const QString &dirName))); UTIL_CST *cst = new UTIL_CST(this,ChineseAndEnglish("操作")); setCSTWidget(cst); mMiddleBtn = cst->getMidBtn(); pp = new QPopupMenu(cst, NULL); QObject::connect(pp, SIGNAL(activated(int)), SLOT(menuSelect(int))); //m_movefile = pp->insertItem(ChineseAndEnglish("移动文件"),0,0); m_save_menu_id = pp->insertItem(ChineseAndEnglish("使用编辑器"),0,0); m_save_id = pp->insertItem(ChineseAndEnglish("复制到..."),1,1); m_renamefile = pp->insertItem(ChineseAndEnglish("重命名..."),2,2); m_movefile= pp->insertItem(ChineseAndEnglish("移动到..."),3,3); m_addfromrca_menu_id = pp->insertItem(ChineseAndEnglish("解压文件"),4,4); m_addfromrcm_menu_id = pp->insertItem(ChineseAndEnglish("压缩文件"),5,5); pp->indexOf(5); mMiddleBtn->setPopup(pp); mpp= new QPopupMenu(cst, NULL); mpp ->insertItem(ChineseAndEnglish("系统设置"),passwordItem, passwordItem); mpp->insertItem(ChineseAndEnglish("备份恢复"), backItem, backItem); mpp->insertItem(ChineseAndEnglish("系统信息"), systeminfoItem, systeminfoItem); //mpp->insertItem(ChineseAndEnglish("JAVA破解"), menuItem, menuItem); mpp->insertItem(ChineseAndEnglish("操作说明"), readmeItem, readmeItem); QObject::connect(mpp, SIGNAL(activated(int)), SLOT(selectMenu1(int))); /* rotmp= new QPopupMenu(cst, NULL); rotmp ->insertItem(ChineseAndEnglish("不旋转"),1,1); rotmp->insertItem(ChineseAndEnglish("90度"), 2,2); rotmp ->insertItem(ChineseAndEnglish("180度"),3,3); rotmp->insertItem(ChineseAndEnglish("270度"), 4,4); QObject::connect(rotmp, SIGNAL(activated(int)), SLOT(selectMenurotmp(int))); */ mPopup = new QPopupMenu(cst, NULL); //insert menu item with unique id and index 输入菜单条有唯一的ID mPopup->insertItem(ChineseAndEnglish("删除文件"), DeleteItem, DeleteItem); mPopup->insertItem(ChineseAndEnglish("删除目录"), DelDirectoryItem, DelDirectoryItem); mPopup->insertItem(ChineseAndEnglish("新建目录"), newDirectoryitem, newDirectoryitem); mPopup->insertItem(ChineseAndEnglish("全屏"), showMaximizedItem, showMaximizedItem); mPopup->insertSeparator(SeparatorItem); // mPopup->insertItem(ChineseAndEnglish("手机内存"), PhoneItem, PhoneItem); //mPopup->insertItem(ChineseAndEnglish("SD目录"), SDMMCItem, SDMMCItem); //mPopup->insertItem(ChineseAndEnglish("图片方向"),rotmp,SetupItem, SetupItem); mPopup->insertItem(ChineseAndEnglish("控制面板"),mpp, cmItem,cmItem); mPopup->insertSeparator(SeparatorItem2); mPopup->insertItem(ChineseAndEnglish("关于..."), AboutItem, AboutItem); mPopup->setItemEnabled(DeleteItem, FALSE); mPopup->setItemEnabled(DelDirectoryItem, FALSE); QObject::connect(mPopup, SIGNAL(activated(int)), SLOT(selectMenu(int))); mPopup->indexOf(1); mBackBtn = cst->getLeftBtn(); mpop = new QPopupMenu(cst, NULL); mpop->insertItem(ChineseAndEnglish("系统目录"), SystemItem, SystemItem); mpop->insertItem(ChineseAndEnglish("手机内存"), PhoneItem, PhoneItem); mpop->insertItem(ChineseAndEnglish("SD目录"), SDMMCItem, SDMMCItem); mpop->insertItem(ChineseAndEnglish("设置目录"),SetupItem, SetupItem); mpop->insertItem(ChineseAndEnglish("根目录"),bootItem, bootItem); QObject::connect(mpop, SIGNAL(activated(int)), SLOT(selectMenupop(int))); ZPushButton *bt1 = new ZPushButton(cst, 1, 0, 0); ZPushButton *bt2 = new ZPushButton(cst, 1, 0, 0); ZPushButton *bt3 = new ZPushButton(cst, 1, 0, 0); ZPushButton *bt4 = new ZPushButton(cst, 1, 0, 0); bt1->setGeometry(ZGlobal::mapFromGlobalR(bt1, ZGlobal::getCst4b_1R())); bt1->setResourceID("CST_Menu"); bt2->setGeometry(ZGlobal::mapFromGlobalR(bt2, ZGlobal::getCst4b_2R())); bt2->setText(ChineseAndEnglish("浏览")); bt3->setGeometry(ZGlobal::mapFromGlobalR(bt3, ZGlobal::getCst4b_3R())); bt3->setText(ChineseAndEnglish("操作")); bt4->setGeometry(ZGlobal::mapFromGlobalR(bt4, ZGlobal::getCst4b_4R())); bt4->setResourceID("CST_Exit"); bt1->setPopup(mPopup); bt2->setPopup(mpop); //QObject::connect(bt3, SIGNAL(clicked()), this, SLOT(showMainPopup())); bt3->setPopup(pp); QObject::connect(bt4, SIGNAL(clicked()), this, SLOT(close())); Config cfg (current1+"/xptools.conf"); cfg.setGroup("Settings"); /* if(!cfg.readBoolEntry("allowRotation")){ rotmp->setItemChecked(1,TRUE); }else{ if (cfg.readNumEntry("rotation")==1){ rotmp->setItemChecked(2,true); }else if (cfg.readNumEntry("rotation")==2){ rotmp->setItemChecked(3,true); }else if (cfg.readNumEntry("rotation")==3){ rotmp->setItemChecked(4,true); } } */ cfg.setGroup( QString::number(1) ); if(cfg.readBoolEntry("showMaximized")){ showMaximized(); mPopup->setItemChecked(showMaximizedItem,true); }else{ showNormal(); mPopup->setItemChecked(showMaximizedItem,false); } }XpTools::~XpTools(){ }int XpTools::exec(){ setResult(0); show(); if (!in_loop) { in_loop = TRUE; qApp->enter_loop(); } return result();}void XpTools::done( int r ){ hide(); if (in_loop) { in_loop = FALSE; qApp->exit_loop(); } setResult(r);}void XpTools::accept(){ done(Accepted); }void XpTools::reject(){ done(Rejected);}void XpTools::closeEvent(QCloseEvent *e){ e->accept(); reject();}void XpTools::sltfwd(){ int i=mBrowser->count(); currentItem = currentItem +1 ; for( ;currentItem <i ; ++currentItem) { mBrowser->setCurrentItem(currentItem); QString fileName = mBrowser->getFileName(); if (QFileInfo(fileName).extension( FALSE ).upper()=="PNG"||QFileInfo(fileName).extension( FALSE ).upper()=="GIF"||QFileInfo(fileName).extension( FALSE ).upper()=="BMP"||QFileInfo(fileName).extension( FALSE ).upper()=="JPG"||QFileInfo(fileName).extension( FALSE ).upper()=="JPEG") { ViewpicDialog *mEdit = new ViewpicDialog(fileName,this); mEdit->show(); currentItem=mBrowser->currentItem(); QObject::connect(mEdit, SIGNAL(keyup()), this, SLOT(sltrew())); QObject::connect(mEdit, SIGNAL(keydown()), this, SLOT(sltfwd())); return; } } }void XpTools::sltrew(){ //int i=mBrowser->count(); currentItem = currentItem -1 ; for( ;currentItem >0 ; --currentItem) { mBrowser->setCurrentItem(currentItem); QString fileName = mBrowser->getFileName(); if (QFileInfo(fileName).extension( FALSE ).upper()=="PNG"||QFileInfo(fileName).extension( FALSE ).upper()=="GIF"||QFileInfo(fileName).extension( FALSE ).upper()=="BMP"||QFileInfo(fileName).extension( FALSE ).upper()=="JPG"||QFileInfo(fileName).extension( FALSE ).upper()=="JPEG") { ViewpicDialog *mEdit = new ViewpicDialog(fileName,this); mEdit->show(); currentItem=mBrowser->currentItem(); QObject::connect(mEdit, SIGNAL(keyup()), this, SLOT(sltrew())); QObject::connect(mEdit, SIGNAL(keydown()), this, SLOT(sltfwd())); return; } } }/*void XpTools::selectMenurotmp(int idx){ Config config(current1+"/xptools.conf"); config.setGroup("Settings"); if (idx == 1) { rotmp->setItemChecked(1,TRUE); rotmp->setItemChecked(2,FALSE); rotmp->setItemChecked(3,FALSE); rotmp->setItemChecked(4,FALSE); config.writeEntry("allowRotation",false); } else if (idx == 2) { rotmp->setItemChecked(1,false); rotmp->setItemChecked(2,true); rotmp->setItemChecked(3,FALSE); rotmp->setItemChecked(4,FALSE); config.writeEntry("allowRotation", true); config.writeEntry("rotation", 1); }else if (idx == 3) { rotmp->setItemChecked(1,false); rotmp->setItemChecked(2,FALSE); rotmp->setItemChecked(3,true); rotmp->setItemChecked(4,FALSE); config.writeEntry("allowRotation", true); config.writeEntry("rotation", 2); }else if (idx == 4) { rotmp->setItemChecked(1,false); rotmp->setItemChecked(2,FALSE); rotmp->setItemChecked(3,FALSE); rotmp->setItemChecked(4,true); config.writeEntry("allowRotation", true); config.writeEntry("rotation",3); } }*/void XpTools::selectMenu(int idx){ Config cfg (current1+"/xptools.conf"); cfg.setGroup( QString::number(1) ); if (idx == AboutItem){ showAboutDialog(); } else if (idx == DeleteItem) { deleteFile(); } else if (idx == DelDirectoryItem) { DelDirectory(); }else if (idx == newDirectoryitem){ newDirectory(); }else if (idx==showMaximizedItem){ if(cfg.readBoolEntry("showMaximized")){ showNormal(); mPopup->setItemChecked(showMaximizedItem,false); cfg.writeEntry("showMaximized",0); }else{ showMaximized(); mPopup->setItemChecked(showMaximizedItem,true); cfg.writeEntry("showMaximized",1); } } }void XpTools::selectMenu1(int idx){RES_ICON_Reader ir; Config cfg (current1+"/xptools.conf"); cfg.setGroup( QString::number(1) );if (idx == backItem){ showNormal(); //切换到非全屏 mPopup->setItemChecked(showMaximizedItem,false); cfg.writeEntry("showMaximized",0); Back *mEdit = new Back(this);//备份 mEdit->show(); }else if (idx == passwordItem){ showNormal(); mPopup->setItemChecked(showMaximizedItem,false); cfg.writeEntry("showMaximized",0); ConfigWidget *mit = new ConfigWidget(current1,this);//设置 mit->show(); }else if(idx==systeminfoItem){ showNormal(); mPopup->setItemChecked(showMaximizedItem,false); cfg.writeEntry("showMaximized",0); SystemInfo *systeminfo=new SystemInfo(); systeminfo->show(); /* }else if(idx==menuItem){//JAVA破解 MenuDialog*fileDlg; fileDlg = new MenuDialog(this,tr("hhh"),true,0); fileDlg->setjava(); fileDlg->exec(); if( fileDlg->result() == 1) { QString filename = fileDlg->MView->currentItem()->text(2 ); int err=system("/bin/cp -rf \""+current1+"\"/permfile.txt \""+filename+"/\""); if (err==0){ ZMessageBox::timerMessage(this, ir.getIcon(RES_ICON_DLG_COMPLETE,1), ChineseAndEnglish("软件成功破解..."), 2); setDir(mBrowser->getFilePath()); }else { ZMessageBox::timerMessage(this, ir.getIcon(RES_ICON_DLG_COMPLETE,1), ChineseAndEnglish("软件没有破解成功..."), 2); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -