summaryrefslogtreecommitdiff
path: root/svtools/source
diff options
context:
space:
mode:
authorSzymon Kłos <eszkadev@gmail.com>2015-06-04 18:58:11 +0200
committerSzymon Kłos <eszkadev@gmail.com>2015-07-16 09:52:47 +0200
commite881504669930cdce875b33b80ecff0e17061827 (patch)
tree32227b6ad55f2c0532dd2ae200dda89eb6b52c1b /svtools/source
parenta736dc21c53513fd7b90c217a5271316a8351407 (diff)
empty TreeListBox & splitter
Change-Id: I948b62bade41b7b7998d0e22c10c1169d78ec506
Diffstat (limited to 'svtools/source')
-rw-r--r--svtools/source/dialogs/RemoteFilesDialog.cxx91
1 files changed, 87 insertions, 4 deletions
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index f13aa2d0c2ca..5976ea61cbe8 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -17,11 +17,15 @@ class FileViewContainer : public vcl::Window
{
private:
VclPtr<SvtFileView> m_pFileView;
+ VclPtr<SvTreeListBox> m_pTreeView;
+ VclPtr<Splitter> m_pSplitter;
public:
FileViewContainer(vcl::Window *pParent)
: Window(pParent)
, m_pFileView(NULL)
+ , m_pTreeView(NULL)
+ , m_pSplitter(NULL)
{
}
@@ -33,29 +37,51 @@ class FileViewContainer : public vcl::Window
virtual void dispose() SAL_OVERRIDE
{
m_pFileView.clear();
+ m_pSplitter.clear();
vcl::Window::dispose();
}
- void init(SvtFileView* pFileView)
+ void init(SvtFileView* pFileView,
+ Splitter* pSplitter,
+ SvTreeListBox* pTreeView)
{
m_pFileView = pFileView;
+ m_pTreeView = pTreeView;
+ m_pSplitter = pSplitter;
}
virtual void Resize() SAL_OVERRIDE
{
Window::Resize();
- if(!m_pFileView)
+ if(!m_pFileView || !m_pTreeView)
return;
Size aSize = GetSizePixel();
- m_pFileView->SetSizePixel( aSize );
+ Point aPos( m_pFileView->GetPosPixel() );
+ Size aNewSize(aSize.Width() - aPos.X(), aSize.Height());
+
+ m_pFileView->SetSizePixel( aNewSize );
+
+ // Resize the Splitter to fit the height
+ Size splitterNewSize = m_pSplitter->GetSizePixel( );
+ splitterNewSize.Height() = aSize.Height();
+ m_pSplitter->SetSizePixel( splitterNewSize );
+ sal_Int32 nMinX = m_pTreeView->GetPosPixel( ).X( );
+ sal_Int32 nMaxX = m_pFileView->GetPosPixel( ).X( ) + m_pFileView->GetSizePixel( ).Width() - nMinX;
+ m_pSplitter->SetDragRectPixel( Rectangle( Point( nMinX, 0 ), Size( nMaxX, aSize.Width() ) ) );
+
+ // Resize the tree list box to fit the height of the FileView
+ Size placesNewSize(m_pTreeView->GetSizePixel());
+ placesNewSize.Height() = aSize.Height();
+ m_pTreeView->SetSizePixel( placesNewSize );
}
};
RemoteFilesDialog::RemoteFilesDialog(vcl::Window* pParent, WinBits nBits)
: ModalDialog(pParent, "RemoteFilesDialog", "svt/ui/remotefilesdialog.ui")
, m_context(comphelper::getProcessComponentContext())
+ , m_pSplitter(NULL)
, m_pFileView(NULL)
, m_pContainer(NULL)
{
@@ -98,7 +124,24 @@ RemoteFilesDialog::RemoteFilesDialog(vcl::Window* pParent, WinBits nBits)
m_pFileView->SetDoubleClickHdl( LINK( this, RemoteFilesDialog, DoubleClickHdl ) );
m_pFileView->SetSelectHdl( LINK( this, RemoteFilesDialog, SelectHdl ) );
- m_pContainer->init(m_pFileView);
+ m_pSplitter = VclPtr<Splitter>::Create( m_pContainer, WB_HSCROLL );
+ m_pSplitter->SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetFaceColor() ));
+ m_pSplitter->SetSplitHdl( LINK( this, RemoteFilesDialog, SplitHdl ) );
+ m_pSplitter->Show();
+
+ m_pTreeView = VclPtr<SvTreeListBox>::Create( m_pContainer, WB_BORDER );
+ Size aSize(100, 200);
+ m_pTreeView->set_height_request(aSize.Height());
+ m_pTreeView->set_width_request(aSize.Width());
+ m_pTreeView->SetSizePixel(aSize);
+ m_pTreeView->Show();
+
+ sal_Int32 nPosX = m_pTreeView->GetSizePixel().Width();
+ m_pSplitter->SetPosPixel(Point(nPosX, 0));
+ nPosX += m_pSplitter->GetSizePixel().Width();
+ m_pFileView->SetPosPixel(Point(nPosX, 0));
+
+ m_pContainer->init(m_pFileView, m_pSplitter, m_pTreeView);
m_pContainer->Show();
m_pAddService_btn->SetMenuMode(MENUBUTTON_MENUMODE_TIMED);
@@ -120,6 +163,8 @@ RemoteFilesDialog::~RemoteFilesDialog()
void RemoteFilesDialog::dispose()
{
+ m_pFileView->SetSelectHdl( Link<>() );
+
if(m_bIsUpdated)
{
Sequence< OUString > placesUrlsList(m_aServices.size());
@@ -139,6 +184,20 @@ void RemoteFilesDialog::dispose()
batch->commit();
}
+ m_pTreeView.disposeAndClear();
+ m_pFileView.disposeAndClear();
+ m_pSplitter.disposeAndClear();
+ m_pContainer.disposeAndClear();
+
+ m_pOpen_btn.clear();
+ m_pSave_btn.clear();
+ m_pCancel_btn.clear();
+ m_pAddService_btn.clear();
+ m_pServices_lb.clear();
+ m_pPath_ed.clear();
+ m_pFilter_lb.clear();
+ m_pName_ed.clear();
+
ModalDialog::dispose();
}
@@ -347,4 +406,28 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl )
return 1;
}
+IMPL_LINK_NOARG ( RemoteFilesDialog, SplitHdl )
+{
+ sal_Int32 nSplitPos = m_pSplitter->GetSplitPosPixel();
+
+ // Resize the tree list box
+ sal_Int32 nPlaceX = m_pTreeView->GetPosPixel( ).X();
+ Size placeSize = m_pTreeView->GetSizePixel( );
+ placeSize.Width() = nSplitPos - nPlaceX;
+ m_pTreeView->SetSizePixel( placeSize );
+
+ // Change Pos and size of the fileview
+ Point fileViewPos = m_pFileView->GetPosPixel();
+ sal_Int32 nOldX = fileViewPos.X();
+ sal_Int32 nNewX = nSplitPos + m_pSplitter->GetSizePixel().Width();
+ fileViewPos.X() = nNewX;
+ Size fileViewSize = m_pFileView->GetSizePixel();
+ fileViewSize.Width() -= ( nNewX - nOldX );
+ m_pFileView->SetPosSizePixel( fileViewPos, fileViewSize );
+
+ m_pSplitter->SetPosPixel( Point( placeSize.Width(), m_pSplitter->GetPosPixel().Y() ) );
+
+ return 1;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */