blob: 7830d0c98cbab6fac296d0a7645b26406f2bc1cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// copyright : (C) 2008 by Eran Ifrah
// file name : newworkspacedlg.cpp
//
// -------------------------------------------------------------------------
// A
// _____ _ _ _ _
// / __ \ | | | | (_) |
// | / \/ ___ __| | ___| | _| |_ ___
// | | / _ \ / _ |/ _ \ | | | __/ _ )
// | \__/\ (_) | (_| | __/ |___| | || __/
// \____/\___/ \__,_|\___\_____/_|\__\___|
//
// F i l e
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#include "newworkspacedlg.h"
#include "windowattrmanager.h"
#include "globals.h"
#include "wx/msgdlg.h"
#include "wx/dirdlg.h"
#include "wx/filename.h"
NewWorkspaceDlg::NewWorkspaceDlg( wxWindow* parent )
:
NewWorkspaceBase( parent )
{
m_textCtrlWorkspacePath->SetValue(wxGetCwd());
m_textCtrlWorkspaceName->SetFocus();
WindowAttrManager::Load(this, wxT("NewWorkspaceDlgAttr"), NULL);
Centre();
}
NewWorkspaceDlg::~NewWorkspaceDlg()
{
WindowAttrManager::Save(this, wxT("NewWorkspaceDlgAttr"), NULL);
}
void NewWorkspaceDlg::OnWorkspacePathUpdated( wxCommandEvent& event )
{
//update the static text control with the actual path
wxString workspacePath;
workspacePath << m_textCtrlWorkspacePath->GetValue();
workspacePath = workspacePath.Trim().Trim(false);
wxString tmpSep( wxFileName::GetPathSeparator() );
if ( !workspacePath.EndsWith(tmpSep) && workspacePath.IsEmpty() == false ) {
workspacePath << wxFileName::GetPathSeparator();
}
if( m_textCtrlWorkspaceName->GetValue().Trim().Trim(false).IsEmpty() ) {
m_staticTextWorkspaceFileName->SetLabel(wxEmptyString);
return;
}
if( m_checkBoxCreateSeparateDir->IsChecked() ) {
workspacePath << m_textCtrlWorkspaceName->GetValue();
workspacePath << wxFileName::GetPathSeparator();
}
workspacePath << m_textCtrlWorkspaceName->GetValue();
workspacePath << wxT(".workspace");
m_staticTextWorkspaceFileName->SetLabel( workspacePath );
}
void NewWorkspaceDlg::OnWorkspaceDirPicker( wxCommandEvent& event )
{
const wxString& dir = wxDirSelector(wxT("Choose a folder:"));
if ( !dir.empty() ) {
m_textCtrlWorkspacePath->SetValue( dir );
}
}
void NewWorkspaceDlg::OnButtonCreate( wxCommandEvent& event )
{
//validate that the path part is valid
m_workspacePath = m_staticTextWorkspaceFileName->GetLabel();
wxFileName fn(m_workspacePath);
if( m_checkBoxCreateSeparateDir->IsChecked() ){
// dont test the result
fn.Mkdir(fn.GetPath(), 0777, wxPATH_MKDIR_FULL);
}
if ( !wxDirExists(fn.GetPath()) ) {
wxMessageBox(_("Invalid path: ") + fn.GetPath(), wxT("Error"), wxOK | wxICON_HAND);
return;
}
EndModal(wxID_OK);
}
|