Skip to content

Commit c73e58c

Browse files
committed
Patch-B
1 parent c742520 commit c73e58c

File tree

30 files changed

+529
-108
lines changed

30 files changed

+529
-108
lines changed

develnext-doc/src/ide/doc/commands/DocCommand.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
namespace ide\doc\commands;
33

44
use ide\editors\AbstractEditor;
5+
use ide\Ide;
56
use ide\misc\AbstractCommand;
67
use ide\systems\FileSystem;
8+
use ide\ui\Notifications;
79
use php\gui\UXSeparator;
810

911
class DocCommand extends AbstractCommand
@@ -28,16 +30,20 @@ public function getIcon()
2830
return 'icons/help16.png';
2931
}
3032

31-
/*public function makeUiForHead()
33+
public function makeUiForRightHead()
3234
{
33-
$button = parent::makeGlyphButton();
34-
$button->text = 'Документация';
35+
$button = $this->makeGlyphButton();
36+
$button->text = $this->getName();
3537

36-
return [$button, new UXSeparator('VERTICAL')];
37-
} */
38+
return $button;
39+
}
3840

3941
public function onExecute($e = null, AbstractEditor $editor = null)
4042
{
41-
FileSystem::open('~doc');
43+
if (Ide::get()->isDevelopment()) {
44+
FileSystem::open('~doc');
45+
} else {
46+
Notifications::show('В разработке', 'Данная функция находится в разработке...', 'INFORMATION');
47+
}
4248
}
4349
}

develnext/build.gradle

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import java.sql.Date
2-
31
apply plugin: 'application'
42

53
project.version = '1.0'
@@ -22,10 +20,8 @@ manifest {
2220
}
2321

2422
task distPatchZip(type: Zip, dependsOn: ['clean', 'distPatch']) {
25-
def ver = new Date(System.currentTimeMillis()).format("yyyyMMddhh");
26-
2723
from "$project.buildDir/install/$project.name"
28-
archiveName "DevelNext.Patch.${ver}.zip"
24+
archiveName "DevelNext.Patch.zip"
2925

3026
doLast {
3127
def uploadPath = System.getProperty("uploadPath", "E:/Upload")
@@ -35,11 +31,6 @@ task distPatchZip(type: Zip, dependsOn: ['clean', 'distPatch']) {
3531
from distPatchZip.archivePath
3632
into "$uploadPath/YandexDisk"
3733
}
38-
39-
copy {
40-
from distIdeZip.archivePath
41-
into "$uploadPath/mega"
42-
}
4334
}
4435
}
4536
}
@@ -158,4 +149,4 @@ task distIdeLinuxSetup(type: Tar, dependsOn: ['distIdeLinux']) {
158149
}
159150
}
160151
}
161-
}
152+
}

develnext/launcher/DevelNext.exe

0 Bytes
Binary file not shown.

develnext/misc/history.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@ Patch-B
44
- Добавлена возможность использовать ранее созданный объект в конструкторе событий, тип "объект", значение "созданный объект".
55
- Исправлена работа события "Выбор элемента" у списка, оно не работало.
66
- Добавлена возможность изменять тип уже добавленного события в редакторе форм и модулей.
7-
- Добавлена возможность удалить событие в редакторе через контекстное меню (ПКМ).
8-
- Добавлен диалог подтверждения при удалении события в редакторе.
9-
- Доработано контекстное меню в редакторе форм и модулей, исправлены не частые графический дефекты, пункты недоступны, если их невозможно применить к объекту.
7+
- Добавлена возможность манипулировать событиями в редакторе через контекстное меню (ПКМ).
8+
- Добавлен диалог подтверждения при удалении событий в редакторе.
9+
- Доработано контекстное меню в редакторе форм и модулей, исправлены редкие графический дефекты; пункты недоступны, если их невозможно применить к объекту.
1010
- Доработано: теперь заблокированные объекты через редактор форм сохраняют свой статус блокировки после переоткрытия в редакторе.
11+
- Исправлен баг, когда после изменения размеров формы в редакторе выделенные объекты сбрасывались.
12+
- В диалоге открытия проекта список проектов из библиотеки был разделен на демо-проекты и проекты, который пользователь сохранил в библиотеку.
13+
- Добавлены в UI элементы для открытия документации, но пока она в разработке.
14+
- Доработано, теперь многие диалоги для файлов сохраняют ранее открытую папку.
15+
- Доработано сохранение в библиотеку проектов, теперь среда запоминает нахождение проекта в библиотеке и не записывает его как новый при смене названия.
1116

1217
Patch-A
1318
------------

develnext/src/.dn/extensions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ide\IdeStandardExtension

develnext/src/.forms/MainForm.fxml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<?import java.lang.*?>
88
<?import javafx.scene.layout.*?>
99

10-
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="688.0" prefWidth="988.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
10+
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="688.0" prefWidth="988.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
1111
<children>
1212
<VBox layoutX="-86.0" layoutY="-52.0" prefHeight="151.0" prefWidth="1055.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
1313
<children>
@@ -28,6 +28,9 @@
2828
<padding>
2929
<Insets bottom="6.0" left="6.0" right="6.0" top="6.0" />
3030
</padding>
31+
<children>
32+
<HBox id="headRightPane" alignment="CENTER_RIGHT" prefHeight="100.0" prefWidth="200.0" HBox.hgrow="ALWAYS" />
33+
</children>
3134
</HBox>
3235
<AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" VBox.vgrow="ALWAYS">
3336
<children>

develnext/src/.forms/OpenProjectForm.fxml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,24 @@
3939
</AnchorPane>
4040
</content>
4141
</Tab>
42-
<Tab text="Библиотека проектов">
42+
<Tab text="Демо-проекты">
4343
<content>
4444
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
4545
<children>
46-
<ListView id="libraryList" layoutX="26.0" layoutY="35.0" prefHeight="214.0" prefWidth="548.0" AnchorPane.bottomAnchor="3.0" AnchorPane.leftAnchor="3.0" AnchorPane.rightAnchor="3.0" AnchorPane.topAnchor="3.0" />
46+
<ListView id="embeddedLibraryList" layoutX="26.0" layoutY="35.0" prefHeight="214.0" prefWidth="548.0" AnchorPane.bottomAnchor="3.0" AnchorPane.leftAnchor="3.0" AnchorPane.rightAnchor="3.0" AnchorPane.topAnchor="3.0" />
4747
</children>
4848
</AnchorPane>
4949
</content>
5050
</Tab>
51+
<Tab text="Библиотека проектов">
52+
<content>
53+
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
54+
<children>
55+
<ListView id="libraryList" layoutX="26.0" layoutY="35.0" prefHeight="214.0" prefWidth="548.0" AnchorPane.bottomAnchor="3.0" AnchorPane.leftAnchor="3.0" AnchorPane.rightAnchor="3.0" AnchorPane.topAnchor="3.0" />
56+
</children>
57+
</AnchorPane>
58+
</content>
59+
</Tab>
5160
</tabs>
5261
</TabPane>
5362
<HBox alignment="CENTER_LEFT" layoutX="32.0" layoutY="76.0" prefHeight="28.0" prefWidth="617.0" spacing="10.0" AnchorPane.leftAnchor="32.0" AnchorPane.rightAnchor="32.0">

develnext/src/ide/Ide.php

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,16 @@ public function unregisterCommand($commandClass, $ignoreAlways = true)
583583
}
584584
}
585585

586+
if ($data['headRightUi']) {
587+
if (is_array($data['headRightUi'])) {
588+
foreach ($data['headRightUi'] as $ui) {
589+
$mainForm->getHeadRightPane()->remove($ui);
590+
}
591+
} else {
592+
$mainForm->getHeadRightPane()->remove($data['headRightUi']);
593+
}
594+
}
595+
586596
if ($data['menuItem']) {
587597
/** @var UXMenu $menu */
588598
$menu = $mainForm->{'menu' . Str::upperFirst($command->getCategory())};
@@ -677,7 +687,33 @@ public function registerCommand(AbstractCommand $command, $category = null)
677687
$ui->paddingRight = 2;
678688
}
679689

680-
$mainForm->getHeadPane()->add($ui);
690+
$mainForm->getHeadPane()->children->insert($mainForm->getHeadPane()->children->count - 1, $ui);
691+
}
692+
});
693+
}
694+
695+
$headRightUi = $command->makeUiForRightHead();
696+
697+
if ($headRightUi) {
698+
$data['headRightUi'] = $headRightUi;
699+
700+
$this->afterShow(function () use ($headRightUi) {
701+
/** @var MainForm $mainForm */
702+
$mainForm = $this->getMainForm();
703+
704+
if (!is_array($headRightUi)) {
705+
$headRightUi = [$headRightUi];
706+
}
707+
708+
foreach ($headRightUi as $ui) {
709+
if ($ui instanceof UXButton) {
710+
$ui->padding = 8;
711+
} else if ($ui instanceof UXSeparator) {
712+
$ui->paddingLeft = 4;
713+
$ui->paddingRight = 2;
714+
}
715+
716+
$mainForm->getHeadRightPane()->add($ui);
681717
}
682718
});
683719
}
@@ -1088,7 +1124,7 @@ public function getInternalList($resourceName)
10881124
while ($scanner->hasNextLine()) {
10891125
$line = Str::trim($scanner->nextLine());
10901126

1091-
if ($line) {
1127+
if ($line && !str::startsWith($line, '#')) {
10921128
$result[] = $line;
10931129
}
10941130
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
namespace ide;
3+
4+
use ide\systems\DialogSystem;
5+
6+
class IdeStandardExtension extends AbstractExtension
7+
{
8+
public function onRegister()
9+
{
10+
DialogSystem::registerDefaults();
11+
}
12+
13+
public function onIdeStart()
14+
{
15+
}
16+
17+
public function onIdeShutdown()
18+
{
19+
}
20+
}

develnext/src/ide/commands/SaveProjectForLibraryCommand.php

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
use ide\editors\AbstractEditor;
55
use ide\editors\menu\AbstractMenuCommand;
66
use ide\forms\MessageBoxForm;
7+
use ide\forms\OpenProjectForm;
78
use ide\forms\SaveProjectForLibraryForm;
89
use ide\Ide;
910
use ide\library\IdeLibraryProjectResource;
@@ -15,7 +16,7 @@ class SaveProjectForLibraryCommand extends AbstractProjectCommand
1516
{
1617
public function getName()
1718
{
18-
return 'Сохранить проект в библиотеке';
19+
return 'Добавить проект в библиотеку';
1920
}
2021

2122
public function getIcon()
@@ -38,14 +39,26 @@ public function onExecute($e = null, AbstractEditor $editor = null)
3839
$project = Ide::project();
3940

4041
if ($project) {
41-
$dialog = new SaveProjectForLibraryForm();
42+
$resource = $oldResource = null;
43+
44+
$oldResourcePath = $project->getIdeLibraryConfig()->get('resource');
45+
if (\Files::isFile($oldResourcePath)) {
46+
$resource = Ide::get()->getLibrary()->findResource('projects', $oldResourcePath);
47+
$oldResource = $resource;
48+
}
49+
50+
$dialog = new SaveProjectForLibraryForm($resource);
4251

4352
retry:
4453
$dialog->setResult($project);
4554

4655
if ($dialog->showDialog()) {
4756
$result = $dialog->getResult();
4857

58+
if ($oldResource) {
59+
Ide::get()->getLibrary()->delete($oldResource);
60+
}
61+
4962
/** @var IdeLibraryProjectResource $resource */
5063
$resource = Ide::get()->getLibrary()->makeResource('projects', $result['name'] . ".zip");
5164

@@ -62,14 +75,22 @@ public function onExecute($e = null, AbstractEditor $editor = null)
6275
}
6376

6477
if ($resource) {
78+
uiLater(function () use ($resource) {
79+
$openDialog = new OpenProjectForm('library');
80+
$openDialog->show();
81+
$openDialog->selectLibraryResource($resource);
82+
$openDialog->toast('Проект был успешно сохранен в библиотеке');
83+
});
84+
85+
$project->getIdeLibraryConfig()->set('resource', $resource->getPath());
86+
6587
$resource->setName($result['name']);
6688
$resource->setDescription($result['description']);
6789
$project->export($resource->getPath());
6890
$resource->save();
91+
$project->save();
6992

7093
Ide::get()->getLibrary()->update();
71-
72-
Ide::toast('Проект был успешно сохранен в библиотеке');
7394
} else {
7495
Ide::toast('Ошибка, невозможно сохранить проект в библиотеке!');
7596
}

0 commit comments

Comments
 (0)