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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_DBACCESS_SOURCE_UI_INC_CURLEDIT_HXX
#define INCLUDED_DBACCESS_SOURCE_UI_INC_CURLEDIT_HXX
#include <vcl/edit.hxx>
#include <vcl/fixed.hxx>
#include <vcl/weld.hxx>
#include <dsntypes.hxx>
namespace dbaui
{
// OConnectionURLEdit
/** an edit control which may be used to edit connection URLs like
"sdbc:odbc:" or "jdbc:". It prevents the user from editing this prefix,
though it is normally shown.
*/
class OConnectionURLEdit : public Edit
{
::dbaccess::ODsnTypeCollection*
m_pTypeCollection;
VclPtr<FixedText> m_pForcedPrefix;
OUString m_sSaveValueNoPrefix;
bool m_bShowPrefix; // when <TRUE> the prefix will be visible, otherwise not
public:
OConnectionURLEdit(vcl::Window* pParent, WinBits _nBits, bool _bShowPrefix);
virtual ~OConnectionURLEdit() override;
virtual void dispose() override;
public:
// Edit overridables
virtual void SetText(const OUString& _rStr) override;
virtual void SetText(const OUString& _rStr, const Selection& _rNewSelection) override;
virtual OUString GetText() const override;
virtual void Resize() override;
/** Shows the Prefix
@param _bShowPrefix
If <TRUE/> than the prefix will be visible, otherwise not.
*/
void ShowPrefix(bool _bShowPrefix);
/// get the currently set text, excluding the prefix indicating the type
OUString GetTextNoPrefix() const;
/// set a new text, leave the current prefix unchanged
void SetTextNoPrefix(const OUString& _rText);
void SaveValueNoPrefix() { m_sSaveValueNoPrefix = GetTextNoPrefix(); }
const OUString& GetSavedValueNoPrefix() const { return m_sSaveValueNoPrefix; }
void SetTypeCollection(::dbaccess::ODsnTypeCollection* _pTypeCollection) { m_pTypeCollection = _pTypeCollection; }
};
class DBOConnectionURLEdit
{
OUString m_sSavedValue;
::dbaccess::ODsnTypeCollection* m_pTypeCollection;
OUString m_sSaveValueNoPrefix;
bool m_bShowPrefix; // when <TRUE> the prefix will be visible, otherwise not
std::unique_ptr<weld::Entry> m_xEntry;
std::unique_ptr<weld::Label> m_xForcedPrefix;
public:
DBOConnectionURLEdit(std::unique_ptr<weld::Entry> xEntry, std::unique_ptr<weld::Label> xForcedPrefix);
~DBOConnectionURLEdit();
public:
bool get_visible() const { return m_xEntry->get_visible(); }
void connect_changed(const Link<weld::Entry&, void>& rLink) { m_xEntry->connect_changed(rLink); }
void set_help_id(const OString& rName) { m_xEntry->set_help_id(rName); }
void hide()
{
m_xEntry->hide();
if (m_bShowPrefix)
m_xForcedPrefix->hide();
}
void show()
{
m_xEntry->show();
if (m_bShowPrefix)
m_xForcedPrefix->show();
}
void save_value() { m_sSavedValue = GetText(); }
bool get_value_changed_from_saved() const { return m_sSavedValue != GetText(); }
void grab_focus()
{
m_xEntry->grab_focus();
}
void set_sensitive(bool bSensitive)
{
m_xEntry->set_sensitive(bSensitive);
if (m_bShowPrefix)
m_xForcedPrefix->set_sensitive(bSensitive);
}
void connect_focus_in(const Link<weld::Widget&, void>& rLink)
{
m_xEntry->connect_focus_in(rLink);
}
void connect_focus_out(const Link<weld::Widget&, void>& rLink)
{
m_xEntry->connect_focus_out(rLink);
}
// Edit overridables
void SetText(const OUString& _rStr);
void SetText(const OUString& _rStr, const Selection& _rNewSelection);
OUString GetText() const;
/** Shows the Prefix
@param _bShowPrefix
If <TRUE/> than the prefix will be visible, otherwise not.
*/
void ShowPrefix(bool _bShowPrefix);
/// get the currently set text, excluding the prefix indicating the type
OUString GetTextNoPrefix() const;
/// set a new text, leave the current prefix unchanged
void SetTextNoPrefix(const OUString& _rText);
void SaveValueNoPrefix() { m_sSaveValueNoPrefix = GetTextNoPrefix(); }
const OUString& GetSavedValueNoPrefix() const { return m_sSaveValueNoPrefix; }
void SetTypeCollection(::dbaccess::ODsnTypeCollection* _pTypeCollection) { m_pTypeCollection = _pTypeCollection; }
};
} // namespace dbaui
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_CURLEDIT_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|