Skip to content

Commit b7d10ea

Browse files
committed
v0.3.3 Release
2 parents 956b1ac + 144cfcc commit b7d10ea

File tree

116 files changed

+3952
-1407
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+3952
-1407
lines changed

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 0.3.2.{build}
1+
version: 0.3.3.{build}
22
image: Visual Studio 2019
33

44
init:

doc/release.md renamed to doc/Create Release.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Example bat script to build release
1010

1111
```
1212
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
13-
set PATH=C:\Qt\5.15.0\msvc2019_64\bin\;C:\Qt\Tools\QtCreator\bin\;%PATH%
13+
set PATH=C:\Qt\5.15.1\msvc2019_64\bin\;C:\Qt\Tools\QtCreator\bin\;%PATH%
1414
mkdir build
1515
cd build
1616
qmake ..\src\NotepadNext.pro
@@ -23,4 +23,7 @@ mkdir installer_build
2323
cd installer_build
2424
qmake ..\installer\installer.pro
2525
jom
26+
cd ..
27+
copy build\NotepadNext*.zip .
28+
copy installer_build\NotepadNext*.exe .
2629
```
File renamed without changes.

installer/config/config.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Installer>
33
<Name>Notepad Next</Name>
4-
<Version>0.3.2</Version>
5-
<Title>Notepad Next v0.3.2</Title>
4+
<Version>0.3.3</Version>
5+
<Title>Notepad Next v0.3.3</Title>
66
<Publisher>Notepad Next</Publisher>
77
<StartMenuDir>Notepad Next</StartMenuDir>
88

installer/packages/app/meta/package.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<?xml version="1.0"?>
22
<Package>
33
<DisplayName>Notepad Next</DisplayName>
4-
<Description>Notepad Next v0.3.2</Description>
5-
<Version>0.3.2</Version>
4+
<Description>Notepad Next v0.3.3</Description>
5+
<Version>0.3.3</Version>
66
<ForcedInstallation>true</ForcedInstallation>
7-
<ReleaseDate>2020-08-29</ReleaseDate>
7+
<ReleaseDate>2020-09-08</ReleaseDate>
88
<!-- <RequiresAdminRights>true</RequiresAdminRights> -->
99
<Script>installscript.qs</Script>
1010
<UserInterfaces>

src/NotepadNext/DockedEditor.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,24 @@ void DockedEditor::dockWidgetCloseRequested()
122122

123123
ads::CDockAreaWidget * DockedEditor::currentDockArea()
124124
{
125-
foreach (ads::CDockWidget* dockWidget, m_DockManager->dockWidgetsMap()) {
125+
QMap<QString, ads::CDockWidget*> dockwidgets = m_DockManager->dockWidgetsMap();
126+
127+
if (dockwidgets.size() == 0) {
128+
return Q_NULLPTR;
129+
}
130+
else if (dockwidgets.size() == 1) {
131+
// If no dockwidget has had the focus set yet, just return the only one
132+
return dockwidgets.first()->dockAreaWidget();
133+
}
134+
135+
// Search the list for the one that has had the focus set
136+
foreach (ads::CDockWidget* dockWidget, dockwidgets) {
126137
if (dockWidget->property("focused").toBool()) {
127138
return dockWidget->dockAreaWidget();
128139
}
129140
}
130141

142+
// There was no area that had the focus
131143
return Q_NULLPTR;
132144
}
133145

src/NotepadNext/dialogs/MainWindow.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ MainWindow::MainWindow(NotepadNextApplication *app, QWidget *parent) :
144144
recentFilesListManager->addFile(buffer->fileInfo.canonicalFilePath());
145145
}
146146
});
147-
connect(app->getBufferManager(), &BufferManager::bufferCreated, [=](ScintillaBuffer *buffer) {
147+
148+
connect(dockedEditor, &DockedEditor::editorCreated, [=](ScintillaNext *editor) {
149+
ScintillaBuffer *buffer = editor->scintillaBuffer();
148150
if (buffer->isFile()) {
149151
recentFilesListManager->removeFile(buffer->fileInfo.canonicalFilePath());
150152
}

src/NotepadNext/icons/bin.png

476 Bytes
Loading

src/Version.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
# along with Notepad Next. If not, see <https://www.gnu.org/licenses/>.
1616

1717

18-
!defined(APP_VERSION, var):APP_VERSION = "0.3.2"
18+
!defined(APP_VERSION, var):APP_VERSION = "0.3.3"
1919
APP_COPYRIGHT = "Copyright 2019-2020 Justin Dailey"

src/ads/.github/workflows/linux-builds.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ jobs:
1616
run: |
1717
sudo apt-get update --fix-missing
1818
sudo apt-get install qt5-default
19+
sudo apt-get install libqt5x11extras5-dev
1920
- name: qmake
2021
run: qmake
2122
- name: make

src/ads/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,3 +382,4 @@ MigrationBackup/
382382
FodyWeavers.xsd
383383
/ build
384384
/Settings.ini
385+
.vscode/settings.json

src/ads/.travis.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ matrix:
99
os: linux
1010
dist: trusty
1111
group: stable
12+
before_install:
13+
- sudo apt-get -y install libqt5x11extras5-dev
1214
addons:
1315
apt:
1416
sources:
@@ -18,6 +20,8 @@ matrix:
1820
packages:
1921
- qt55base
2022
- qt55tools
23+
- qt55x11extras
24+
- libqt5x11extras5-dev
2125
- gcc-9
2226
- g++-9
2327
script:
@@ -35,6 +39,8 @@ matrix:
3539
services:
3640
- xvfb
3741
compiler: gcc
42+
before_install:
43+
- sudo apt-get -y install libqt5x11extras5-dev
3844
addons:
3945
apt:
4046
sources:
@@ -44,6 +50,8 @@ matrix:
4450
packages:
4551
- qt514base
4652
- qt514tools
53+
- qt514x11extras
54+
- libqt5x11extras5-dev
4755
- gcc-9
4856
- g++-9
4957
- libc6-i386
@@ -65,7 +73,9 @@ matrix:
6573
services:
6674
- xvfb
6775
compiler: gcc
68-
addons:
76+
before_install:
77+
- sudo apt-get -y install libqt5x11extras5-dev
78+
addons:
6979
apt:
7080
sources:
7181
- ubuntu-toolchain-r-test
@@ -74,6 +84,8 @@ matrix:
7484
packages:
7585
- qt514base
7686
- qt514tools
87+
- qt514x11extras
88+
- libqt5x11extras5-dev
7789
- gcc-9
7890
- g++-9
7991
- libc6-i386
@@ -95,6 +107,8 @@ matrix:
95107
services:
96108
- xvfb
97109
compiler: gcc
110+
before_install:
111+
- sudo apt-get -y install libqt5x11extras5-dev
98112
addons:
99113
apt:
100114
sources:
@@ -104,6 +118,8 @@ matrix:
104118
packages:
105119
- qt514base
106120
- qt514tools
121+
- qt514x11extras
122+
- libqt5x11extras5-dev
107123
- gcc-9
108124
- g++-9
109125
- libc6-i386
@@ -131,6 +147,8 @@ matrix:
131147
services:
132148
- xvfb
133149
compiler: gcc
150+
before_install:
151+
- sudo apt-get -y install libqt5x11extras5-dev
134152
addons:
135153
apt:
136154
sources:
@@ -140,6 +158,8 @@ matrix:
140158
packages:
141159
- qt514base
142160
- qt514tools
161+
- qt514x11extras
162+
- libqt5x11extras5-dev
143163
- gcc-9
144164
- g++-9
145165
- libc6-i386

src/ads/PyQtAds/_version.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ def get_keywords():
2323
# setup.py/versioneer.py will grep for the variable names, so they must
2424
# each be defined on a line of their own. _version.py will just call
2525
# get_keywords().
26-
git_refnames = "$Format:%d$"
27-
git_full = "$Format:%H$"
28-
git_date = "$Format:%ci$"
26+
git_refnames = " (tag: 3.6.2)"
27+
git_full = "5fad43377b318daee42666e116d6d851d7d05f75"
28+
git_date = "2020-09-25 14:40:28 +0200"
2929
keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
3030
return keywords
3131

src/ads/README.md

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Advanced Docking System for Qt
22

3-
[![Build Status](https://travis-ci.org/githubuser0xFFFF/Qt-Advanced-Docking-System.svg?branch=master)](https://travis-ci.org/githubuser0xFFFF/Qt-Advanced-Docking-System)
3+
[![Build status](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/workflows/linux-builds/badge.svg)](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/actions?query=workflow%3Alinux-builds)
44
[![Build status](https://ci.appveyor.com/api/projects/status/qcfb3cy932jw9mpy/branch/master?svg=true)](https://ci.appveyor.com/project/githubuser0xFFFF/qt-advanced-docking-system/branch/master)
55
[![License: LGPL v2.1](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](gnu-lgpl-v2.1.md)
66

@@ -15,6 +15,20 @@ integrated development environments (IDEs) such as Visual Studio.
1515

1616
## New and Noteworthy
1717

18+
The [release 3.6.0](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.6.0)
19+
adds some nice new features:
20+
21+
- support for [central widget](doc/user-guide.md#central-widget) concept
22+
23+
![Central Widget](doc/central_widget.gif)
24+
25+
- support for [native floating widgets](doc/user-guide.md#floatingcontainerforcenativetitlebar-linux-only) on Linux
26+
27+
![FloatingContainerForceNativeTitleBar true](doc/cfg_flag_FloatingContainerForceNativeTitleBar_true.png)
28+
29+
Both features are contributions from ADS users. Read the [documentation](doc/user-guide.md)
30+
to learn more about both new features.
31+
1832
The [release 3.5.0](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.5.0)
1933
adds the new [focus highlighting](doc/user-guide.md#focushighlighting) feature.
2034
This optional feature enables highlighting of the focused dock widget like you
@@ -58,6 +72,8 @@ know it from Visual Studio.
5872
- [Qt Design Studio](#qt-design-studio)
5973
- [QmixElements](#qmixelements)
6074
- [ezEditor](#ezeditor)
75+
- [D-Tect X](#d-tect-x)
76+
- [HiveWE](#hivewe)
6177

6278
### Docking everywhere - no central widget
6379

@@ -151,7 +167,7 @@ by the following people:
151167
- [Hugo Slepicka](https://github.com/hhslepicka)
152168
- [K Lauer](https://github.com/klauer)
153169

154-
Latest working version: [3.5.1](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.5.1)
170+
Latest working version: [3.5.2](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.5.2)
155171

156172
## Tested Compatible Environments
157173

@@ -311,28 +327,48 @@ If this project help you reduce time to develop or if you just like it, you can
311327
From version 4.12 on, Qt Creator uses the Advanced Docking Framework for its
312328
Qt Quick Designer. This improves the usability when using multiple screens.
313329
314-
![Qt Creator](doc/qtcreator.png)
330+
![Qt Creator](doc/showcase_qtcreator.png)
315331
316332
### [Qt Design Studio](https://www.qt.io/ui-design-tools)
317333
318334
Taken from the [Qt Blog](https://www.qt.io/blog/qt-design-studio-1.5-beta-released):
319335
320336
> The most obvious change in [Qt Design Studio 1.5](https://www.qt.io/blog/qt-design-studio-1.5-beta-released) is the integration of dock widgets using the Qt Advanced Docking System. This allows the user to fully customize the workspace and also to undock any view into its own top level window. This especially improves the usability when using multiple screens.
321337
322-
![Qt Design Studio](doc/qt_design_studio.png)
338+
![Qt Design Studio](doc/showcase_qt_design_studio.png)
323339
324340
### [QmixElements](https://www.cetoni.com/products/qmixelements/)
325341
326342
The QmixElements software from [CETONI](https://www.cetoni.com) is a comprehensive,
327343
plugin-based and modular laboratory automation software for controlling CETONI devices using a joint graphical user interface. The software features a powerful script system to automate processes. This [blog post](https://www.cetoni.com/blog/qmixelements-advanced-docking-system/) gives a nice overview about the use of the Qt
328344
Advanced Docking System in the QmixElements sofware.
329345
330-
![QmixElements](doc/qmix_elements.png)
346+
![QmixElements](doc/showcase_qmix_elements.png)
331347
332348
### [ezEditor](https://github.com/ezEngine/ezEngine)
333349
334350
The ezEditor is a full blown graphical editor used for editing scenes and
335351
importing and authoring assets for the [ezEngine](https://github.com/ezEngine/ezEngine) -
336352
an open source C++ game engine in active development.
337353
338-
![ezEditor](doc/ezEngine_editor.png)
354+
![ezEditor](doc/showcase_ezEngine_editor.png)
355+
356+
### [D-Tect X](https://www.duerr-ndt.com/products/ndt-software/d-tect-xray-inspection-software.html)
357+
358+
D-Tect X is a X-ray inspection software for industrial radiography. It is a state-of-the-art 64-bit application which supports GPU (Graphics Processing Unit) acceleration and takes full advantage of computers with multiple CPU cores. A large set of tools assist the user in image analysis and evaluation. Thanks to the Qt Advanced Docking System the flexible and intuitive user interface can be completely customized to each user’s preference.
359+
360+
[learn more...](https://www.duerr-ndt.com/products/ndt-software/d-tect-xray-inspection-software.html)
361+
362+
![D-TectX](doc/showcase_d-tect-x.jpg)
363+
364+
### [HiveWE](https://github.com/stijnherfst/HiveWE)
365+
366+
HiveWE is a Warcraft III world editor. It focusses on speed and ease of use,
367+
especially for large maps where the regular World Editor is often too slow and clunky.
368+
It has a JASS editor with syntax hightlighting, tabs, code completion and more.
369+
The JASS editor uses the Qt Advanced Docking System for the management and layout
370+
of the open editor windows.
371+
372+
[learn more...](https://github.com/stijnherfst/HiveWE)
373+
374+
![HiveWE](doc/showcase_hivewe.png)

src/ads/adsConfig.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ include(CMakeFindDependencyMacro)
22
find_dependency(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
33
find_dependency(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
44
find_dependency(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
5+
find_dependency(Qt5X11Extras ${REQUIRED_QT_VERSION} REQUIRED)
56
include("${CMAKE_CURRENT_LIST_DIR}/adsTargets.cmake")

src/ads/demo/MainWindow.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ static void appendFeaturStringToWindowTitle(ads::CDockWidget* DockWidget)
109109
static QIcon svgIcon(const QString& File)
110110
{
111111
// This is a workaround, because in item views SVG icons are not
112-
// properly scaled an look blurry or pixelate
112+
// properly scaled and look blurry or pixelate
113113
QIcon SvgIcon(File);
114114
SvgIcon.addPixmap(SvgIcon.pixmap(92));
115115
return SvgIcon;
@@ -166,6 +166,7 @@ struct MainWindowPrivate
166166
QComboBox* PerspectiveComboBox = nullptr;
167167
ads::CDockManager* DockManager = nullptr;
168168
ads::CDockWidget* WindowTitleTestDockWidget = nullptr;
169+
ads::CDockWidget* LastDockedEditor = nullptr;
169170

170171
MainWindowPrivate(CMainWindow* _public) : _this(_public) {}
171172

@@ -399,6 +400,9 @@ void MainWindowPrivate::createContent()
399400
// Test custom factory - we inject a help button into the title bar
400401
ads::CDockComponentsFactory::setFactory(new CCustomComponentsFactory());
401402
auto TopDockArea = DockManager->addDockWidget(ads::TopDockWidgetArea, FileSystemWidget);
403+
// Uncomment the next line if you would like to test the
404+
// HideSingleWidgetTitleBar functionality
405+
// TopDockArea->setDockAreaFlag(ads::CDockAreaWidget::HideSingleWidgetTitleBar, true);
402406
ads::CDockComponentsFactory::resetDefaultFactory();
403407

404408
// We create a calendar widget and clear all flags to prevent the dock area
@@ -631,6 +635,9 @@ CMainWindow::~CMainWindow()
631635
void CMainWindow::closeEvent(QCloseEvent* event)
632636
{
633637
d->saveState();
638+
// Delete dock manager here to delete all floating widgets. This ensures
639+
// that all top level windows of the dock manager are properly closed
640+
d->DockManager->deleteLater();
634641
QMainWindow::closeEvent(event);
635642
}
636643

@@ -714,7 +721,17 @@ void CMainWindow::createEditor()
714721
}
715722
else
716723
{
717-
d->DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
724+
ads::CDockAreaWidget* EditorArea = d->LastDockedEditor ? d->LastDockedEditor->dockAreaWidget() : nullptr;
725+
if (EditorArea)
726+
{
727+
d->DockManager->setConfigFlag(ads::CDockManager::EqualSplitOnInsertion, true);
728+
d->DockManager->addDockWidget(ads::RightDockWidgetArea, DockWidget, EditorArea);
729+
}
730+
else
731+
{
732+
d->DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
733+
}
734+
d->LastDockedEditor = DockWidget;
718735
}
719736
}
720737

src/ads/demo/demo.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ def create_content(self):
202202
# Test custom factory - we inject a help button into the title bar
203203
QtAds.CDockComponentsFactory.setFactory(CCustomComponentsFactory())
204204
top_dock_area = self.dock_manager.addDockWidget(QtAds.TopDockWidgetArea, file_system_widget)
205+
# Uncomment the next line if you would like to test the
206+
# HideSingleWidgetTitleBar functionality
207+
# top_dock_area.setDockAreaFlag(QtAds.CDockAreaWidget.HideSingleWidgetTitleBar, True)
205208
QtAds.CDockComponentsFactory.resetDefaultFactory()
206209

207210
# We create a calendar widget and clear all flags to prevent the dock area
@@ -310,6 +313,7 @@ def create_actions(self):
310313

311314
def closeEvent(self, event: QCloseEvent):
312315
self.save_state()
316+
self.dock_manager.deleteLater()
313317
super().closeEvent(event)
314318

315319
def on_actionSaveState_triggered(self, state: bool):

src/ads/doc/central_widget.gif

572 KB
Loading
Loading
Loading
Loading
Loading

src/ads/doc/showcase_d-tect-x.jpg

97.1 KB
Loading

src/ads/doc/showcase_hivewe.png

208 KB
Loading
File renamed without changes.

0 commit comments

Comments
 (0)