/* 构造函数 */ FileWidget::FileWidget(QWidget* parent) : QWidget(parent) { fileListWidget = new FileListWidget; fileListWidget->setFrameShape(QListWidget::NoFrame);//无边框 uploadButton = new QPushButton(tr("上传")); lastFolderButton = new QPushButton(tr("上一级目录")); rootFolderButton = new QPushButton(tr("根目录")); currentFolderLabel = new QLabel(tr("> /")); connect(uploadButton,SIGNAL(clicked()),this,SLOT(ShowUpFileDialog())); setContextMenuPolicy(Qt::DefaultContextMenu); QHBoxLayout *topLayout = new QHBoxLayout; topLayout->addWidget(uploadButton); topLayout->addWidget(lastFolderButton); topLayout->addWidget(rootFolderButton); topLayout->addWidget(currentFolderLabel); topLayout->addStretch(); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topLayout); mainLayout->addWidget(fileListWidget); setLayout(mainLayout); connect(fileListWidget,SIGNAL(EnterFolderSig(QString)),this,SLOT(SetCurrentFolder(QString))); }
void CRemoteFileDialog::OnUpOneLevel() { if (!(m_dwOptions & RFD_NONAVIGATE)) { SetCurrentFolder(_T("..")); } }
void CRemoteFileDialog::OnDblclkFilelist(NMHDR* /*pNMHDR*/, LRESULT* pResult) { int nSel = GetFirstSelectedItem(); if (nSel != -1) { int nType = GetItemType(nSel); switch (nType) { case RFDT_FILE: if (!FolderSelect()) { OnOK(); } break; case RFDT_FOLDER: CString sFolder = m_lcFiles.GetItemText(nSel, 0); SetCurrentFolder(sFolder); break; } } *pResult = 0; }
void SelectTreeViewFolder(int folder_id) { HWND hTreeView = GetTreeView(); HTREEITEM hti; TVITEM tvi; hti = TreeView_GetRoot(hTreeView); while (hti != NULL) { HTREEITEM hti_next; tvi.hItem = hti; tvi.mask = TVIF_PARAM; TreeView_GetItem(hTreeView,&tvi); if (((LPTREEFOLDER)tvi.lParam)->m_nFolderId == folder_id) { TreeView_SelectItem(hTreeView,tvi.hItem); SetCurrentFolder((LPTREEFOLDER)tvi.lParam); return; } hti_next = TreeView_GetChild(hTreeView,hti); if (hti_next == NULL) { hti_next = TreeView_GetNextSibling(hTreeView,hti); if (hti_next == NULL) { hti_next = TreeView_GetParent(hTreeView,hti); if (hti_next != NULL) hti_next = TreeView_GetNextSibling(hTreeView,hti_next); } } hti = hti_next; } // could not find folder to select // make sure we select something tvi.hItem = TreeView_GetRoot(hTreeView); tvi.mask = TVIF_PARAM; TreeView_GetItem(hTreeView,&tvi); TreeView_SelectItem(hTreeView,tvi.hItem); SetCurrentFolder((LPTREEFOLDER)tvi.lParam); }
void CFolderDlg::OnInitDialog(HWND hDlg) { CTempStr str(IDS_ROOT_FOLDER_NAME); ShellInitDialog(hDlg); HWND hTreeView = GetDlgItem(hDlg, IDC_TREE_FOLDER); m_bRefresh = FALSE; m_hImageList = NULL; HICON hIcon; //イメージリスト作成 m_hImageList = ImageList_Create(SCALEX(16), SCALEY(16), ILC_COLOR|ILC_MASK, 1, 2); hIcon = (HICON)LoadImage(GetInst(), (LPCTSTR)IDI_ROOT, IMAGE_ICON, SCALEX(16), SCALEY(16), 0); ImageList_AddIcon(m_hImageList, hIcon); DeleteObject(hIcon); SHFILEINFO shfi; SHGetFileInfo(_T("\\Windows"), NULL, &shfi, sizeof(shfi), SHGFI_SMALLICON | SHGFI_ICON); ImageList_AddIcon(m_hImageList, shfi.hIcon); TreeView_SetImageList(hTreeView, m_hImageList, TVSIL_NORMAL); SetWindowLong(hTreeView, GWL_STYLE, GetWindowLong(hTreeView, GWL_STYLE)|TVS_HASBUTTONS|TVS_HASLINES|TVS_SHOWSELALWAYS); //フォルダ読み込み HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT)); TVINSERTSTRUCT tvis; tvis.hParent = NULL; tvis.hInsertAfter = TVI_SORT; tvis.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN; tvis.item.pszText = str; tvis.item.iImage = 0; tvis.item.iSelectedImage = 0; tvis.item.cChildren = 1; HTREEITEM hRoot = TreeView_InsertItem(hTreeView, &tvis); TreeView_Expand(hTreeView, hRoot, TVE_EXPAND); //カレントフォルダをセット SetCurrentFolder(hTreeView, m_pszPath); if (m_bSubFolder) SendMessage(GetDlgItem(hDlg, IDC_CHECK_SUBFOLDER), BM_SETCHECK, 1, 0); SetCursor(hCursor); }
void CRemoteFileDialog::PostCreate() { if (m_toolbar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE)) { UINT nStyle = m_toolbar.GetBarStyle(); nStyle &= ~(CCS_NORESIZE | CCS_NOPARENTALIGN | CBRS_BORDER_ANY); nStyle |= (CBRS_SIZE_FIXED | CBRS_TOOLTIPS | CBRS_FLYBY); m_toolbar.SetBarStyle(nStyle); m_toolbar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS); int iImage = m_toolbar.GetToolBarCtrl().SendMessage(TB_LOADIMAGES, IDB_VIEW_SMALL_COLOR, (LPARAM)HINST_COMMCTRL); // add 'up folder' item TBBUTTON tbbUp = { iImage + VIEW_PARENTFOLDER, ID_UPONELEVEL, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 }; m_toolbar.GetToolBarCtrl().InsertButton(0, &tbbUp); // add 'view' item with drop menu TBBUTTON tbbView = { iImage + VIEW_LIST, ID_VIEWMENU, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN, 0, 0 }; m_toolbar.GetToolBarCtrl().InsertButton(1, &tbbView); // move to topright corner CDlgUnits dlu(*this); CRect rToolbar, rButton; GetClientRect(rToolbar); m_toolbar.GetItemRect(1, rButton); rToolbar.top += dlu.ToPixelsY(4); rToolbar.right -= dlu.ToPixelsX(7); rToolbar.left = rToolbar.right - rButton.right; rToolbar.bottom = rToolbar.top + rButton.Height(); m_toolbar.MoveWindow(rToolbar); CRect rCtrl = OffsetCtrl(IDC_CURRENTFOLDER); ResizeCtrl(IDC_CURRENTFOLDER, rToolbar.left - rCtrl.right - 4, 0); } // restore size DWORD dwSize = AfxGetApp()->GetProfileInt(_T("RemoteSettings"), _T("LastSize"), -1); if (dwSize != -1) { int nWidth = LOWORD(dwSize); int nHeight = HIWORD(dwSize); // centre on current position CRect rWindow; GetWindowRect(rWindow); rWindow.InflateRect((nWidth - rWindow.Width()) / 2, (nHeight - rWindow.Height()) / 2); MoveWindow(rWindow); } // restore last view int nView = AfxGetApp()->GetProfileInt(_T("RemoteSettings"), _T("LastView"), LVS_LIST); OnChangeView(VIEWIDS[nView]); // init resize icon GetDlgItem(IDC_GRIPPER)->ModifyStyle(0, SBS_SIZEGRIP | SBS_SIZEBOXTOPLEFTALIGN); // and fill the file list SetCurrentFolder(m_sCurFolder); }