Пример #1
0
/* 构造函数 */
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)));
}
Пример #2
0
void CRemoteFileDialog::OnUpOneLevel()
{
	if (!(m_dwOptions & RFD_NONAVIGATE))
	{
		SetCurrentFolder(_T(".."));
	}
}
Пример #3
0
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;
}
Пример #4
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);

}
Пример #5
0
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);
}
Пример #6
0
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);
}