Skip to content

Commit 78fe20d

Browse files
committed
Merge branch 'dev' of github.com:freesurfer/freesurfer into dev
2 parents c772afc + 3e881bc commit 78fe20d

File tree

192 files changed

+6306
-2618
lines changed

Some content is hidden

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

192 files changed

+6306
-2618
lines changed

CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ if(BUILD_GUIS)
253253

254254
# -------- qt --------
255255

256+
if(NOT Qt6_DIR)
256257
if(NOT Qt5_DIR)
257258
if(HOST_OS MATCHES "CentOS7" OR HOST_OS MATCHES "CentOS8" OR HOST_OS MATCHES "CentOS8stream")
258259
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.12.11_LTS_cos7/lib/cmake/Qt5 CACHE PATH "Qt5 install directory")
@@ -263,9 +264,15 @@ if(BUILD_GUIS)
263264
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.12.11_LTS_cos7/lib/cmake/Qt5 CACHE PATH "Qt5 install directory")
264265
endif()
265266
endif()
267+
endif()
266268

267269
find_package(QT)
268-
message(STATUS "For HOST_OS=${HOST_OS} Qt5_DIR=${Qt5_DIR}")
270+
271+
if(Qt6_DIR)
272+
message(STATUS "For HOST_OS=${HOST_OS} Qt6_DIR=${Qt6_DIR}")
273+
elseif(Qt5_DIR)
274+
message(STATUS "For HOST_OS=${HOST_OS} Qt5_DIR=${Qt5_DIR}")
275+
endif()
269276

270277
endif()
271278

@@ -548,6 +555,7 @@ add_subdirectories(
548555
mris_left_right_register
549556
mris_make_surfaces
550557
mris_register
558+
mris_skeletonize
551559
mris_smooth
552560
mris_sphere
553561
mris_surface_stats
@@ -558,6 +566,7 @@ add_subdirectories(
558566
mrisp_paint
559567
python
560568
samseg
569+
samsegmesh2surf
561570
talairach_afd
562571
scripts
563572
tkregister2
@@ -834,3 +843,5 @@ if(BUILD_DNG)
834843
add_subdirectory(dngtester)
835844
endif()
836845

846+
# add wrapper for slicedelay
847+
install_pyscript(./scripts/slicedelay)

cmake/FindQT.cmake

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# Qt Find Module
22

3-
if(NOT Qt5_DIR)
4-
# default search path
5-
if(EXISTS ${FS_PACKAGES_DIR}/qt/5.11/lib/cmake/Qt5)
6-
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.11/lib/cmake/Qt5)
7-
elseif(EXISTS ${FS_PACKAGES_DIR}/qt/5.6/lib/cmake/Qt5)
8-
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.6/lib/cmake/Qt5)
9-
endif()
3+
if(NOT Qt6_DIR)
4+
if(NOT Qt5_DIR)
5+
# default search path
6+
if(EXISTS ${FS_PACKAGES_DIR}/qt/5.11/lib/cmake/Qt5)
7+
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.11/lib/cmake/Qt5)
8+
elseif(EXISTS ${FS_PACKAGES_DIR}/qt/5.6/lib/cmake/Qt5)
9+
set(Qt5_DIR ${FS_PACKAGES_DIR}/qt/5.6/lib/cmake/Qt5)
10+
endif()
11+
endif()
1012
endif()
1113

1214
# find Qt components
@@ -15,11 +17,30 @@ if(NOT APPLE)
1517
set(_qt_components ${_qt_components} X11Extras)
1618
endif()
1719

18-
find_package(Qt5 COMPONENTS ${_qt_components})
20+
if(Qt6_DIR)
21+
find_package(Qt6 COMPONENTS ${_qt_components})
22+
elseif(Qt5_DIR)
23+
find_package(Qt5 COMPONENTS ${_qt_components})
24+
endif()
1925

2026
# cmake doesn't easily provide us with a cross-platform path to
2127
# root qt install directory, so we'll use the hidden QtCore prefix
22-
set(Qt5_INSTALL_DIR ${_qt5Core_install_prefix})
28+
if(Qt6_DIR)
29+
set(Qt6_INSTALL_DIR ${_qt6Core_install_prefix})
30+
if(APPLE)
31+
# find_package function fails to set _qt_components with Qt6 (but not Qt5), so set Qt6 paths based upon Qt6_DIR.
32+
# The bug for Qt6 being unable to find modules was supposed to have been fixed in 6.4, but still did not work for me.
33+
# So the cmake command line needs to set both Qt6_DIR and Qt6GuiTools_DIR. A relative path for Qt6_INSTALL_DIR does work.
34+
set(Qt6_INSTALL_DIR ${Qt6_DIR}/../../..)
35+
# set(Qt6GuiTools_DIR ${Qt6_DIR}GuiTools)
36+
set(MAC_QT_INSTALL_DIR ${Qt6_INSTALL_DIR})
37+
endif()
38+
elseif(Qt5_DIR)
39+
set(Qt5_INSTALL_DIR ${_qt5Core_install_prefix})
40+
if(APPLE)
41+
set(MAC_QT_INSTALL_DIR ${Qt5_INSTALL_DIR})
42+
endif()
43+
endif()
2344

2445
# install the shared libraries to the freesurfer lib directory
2546
if(Qt5_FOUND AND NOT APPLE)

cmake/functions.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ function(mac_deploy_qt)
120120
# run the qt deployment script
121121
install(CODE "
122122
message(STATUS \"Deploying ${APP_BUNDLE}\")
123-
execute_process(COMMAND bash -c \"${CMAKE_SOURCE_DIR}/qt/mac_deploy ${Qt5_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE}\" RESULT_VARIABLE retcode)
123+
message(STATUS \"${CMAKE_SOURCE_DIR}/qt/mac_deploy ${MAC_QT_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE}\")
124+
execute_process(COMMAND bash -c \"${CMAKE_SOURCE_DIR}/qt/mac_deploy ${MAC_QT_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX}/${APP_BUNDLE}\" RESULT_VARIABLE retcode)
124125
if(NOT \${retcode} STREQUAL 0)
125126
message(FATAL_ERROR \"Could not deploy ${APP_TARGET}\")
126127
endif()"

diffusion_tool/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
project(diffusion_tool)
22

3-
if(BUILD_GUIS AND Qt5_FOUND)
3+
if(BUILD_GUIS)
44

55
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
66

77
set(CMAKE_AUTOUIC ON)
88
set(CMAKE_AUTOMOC ON)
99

1010
add_executable(diffusion_tool main.cpp configurationfileform.cpp)
11-
target_link_libraries(diffusion_tool Qt5::Core Qt5::Widgets)
11+
12+
if(Qt6_DIR)
13+
target_link_libraries(diffusion_tool Qt6::Core Qt6::Widgets)
14+
elseif(Qt5_DIR)
15+
target_link_libraries(diffusion_tool Qt5::Core Qt5::Widgets)
16+
endif()
17+
1218

1319
endif()
1420

diffusion_tool/configurationfileform.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <QTextStream>
44
#include <QFileDialog>
55
#include <QMessageBox>
6-
#include <QRegExp>
6+
#include <QRegularExpression>
77

88
#include "configurationfileform.h"
99

@@ -895,8 +895,9 @@ void ConfigurationFileForm::matcher(QDir directory, QString pattern, QVector<QSt
895895
QFileInfoList directory_contents = directory.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
896896
// QTextStream(stdout) << "about to peep " << directory.absolutePath() << " and its length is " << directory_contents.length() << endl;
897897
QDir* temp = NULL;
898-
QRegExp rx(pattern);
899-
rx.setPatternSyntax(QRegExp::Wildcard);
898+
QString wc_exp = QRegularExpression::wildcardToRegularExpression(pattern);
899+
QRegularExpression rx(QRegularExpression::anchoredPattern(wc_exp),
900+
QRegularExpression::CaseInsensitiveOption);
900901
QString subject_name;
901902
int temp_index;
902903

@@ -914,7 +915,7 @@ void ConfigurationFileForm::matcher(QDir directory, QString pattern, QVector<QSt
914915
else
915916
{
916917
// QTextStream(stdout) << "about to peep the contents of " << directory_contents[i].absoluteFilePath() << endl;
917-
if (rx.exactMatch(directory_contents[i].absoluteFilePath()))
918+
if (rx.match(directory_contents[i].absoluteFilePath()).hasMatch())
918919
{
919920
vector.append(directory_contents[i].absoluteFilePath());
920921

dissection_photo/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
project(dissection_photo)
22

33
set(CMAKE_INCLUDE_CURRENT_DIR ON)
4-
if(BUILD_GUIS AND Qt5_FOUND)
4+
if(BUILD_GUIS)
55

66
set(CMAKE_AUTOUIC ON)
77
set(CMAKE_AUTOMOC ON)
88
set(CMAKE_AUTORCC ON)
9-
set(QT_LIBRARIES Qt5::Core Qt5::Widgets)
9+
10+
if(Qt6_DIR)
11+
set(QT_LIBRARIES Qt6::Core Qt6::Widgets)
12+
elseif(Qt5_DIR)
13+
set(QT_LIBRARIES Qt5::Core Qt5::Widgets)
14+
endif()
1015

1116
add_compile_options(-Wno-deprecated -Wno-reorder -Wno-uninitialized -Wno-unused-variable -Wno-sign-compare
1217
-Wno-overloaded-virtual -Wno-inconsistent-missing-override -Wno-deprecated-declarations)

dissection_photo/WidgetImageView.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <QDebug>
55
#include "math.h"
66
#include "exif.h"
7+
#include <QFile>
78

89
WidgetImageView::WidgetImageView(QWidget *parent)
910
: QWidget(parent), m_dScale(1.0), m_ptOffset(QPoint(0,0)), m_bPanning(false), m_bZooming(false), m_bDrawing(false),

dissection_photo/connected_components/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project(connected_components)
22

3-
if(BUILD_GUIS AND Qt5_FOUND)
3+
if(BUILD_GUIS)
44

55
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
66

dissection_photo/connected_components/MainWindow.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
#include <QFileInfo>
99
#include <QMessageBox>
1010
#include <QSettings>
11-
#include <QDesktopWidget>
1211
#include "CommonDef.h"
1312
#include <QTemporaryDir>
13+
#include <QScreen>
1414

1515
#define WND_TITLE "Connected Components"
1616

@@ -49,15 +49,15 @@ MainWindow::MainWindow(QWidget *parent)
4949
setWindowTitle(WND_TITLE);
5050
QSettings s;
5151
QRect rc = s.value("MainWindow/Geometry").toRect();
52-
if (rc.isValid() && QApplication::desktop()->screenGeometry(this).contains(rc))
52+
if (rc.isValid() && QGuiApplication::primaryScreen()->geometry().contains(rc))
5353
setGeometry(rc);
5454

5555
m_proc = new QProcess(this);
5656
connect(m_proc, SIGNAL(started()), SLOT(OnProcessStarted()));
5757
connect(m_proc, SIGNAL(readyReadStandardOutput()), SLOT(OnProcessOutputMessage()));
5858
connect(m_proc, SIGNAL(readyReadStandardError()), SLOT(OnProcessErrorMessage()));
5959
connect(m_proc, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(OnProcessFinished()));
60-
connect(m_proc, SIGNAL(error(QProcess::ProcessError)), SLOT(OnProcessError(QProcess::ProcessError)));
60+
connect(m_proc, SIGNAL(errorOccurred(QProcess::ProcessError)), SLOT(OnProcessError(QProcess::ProcessError)));
6161
}
6262

6363
MainWindow::~MainWindow()
@@ -184,8 +184,8 @@ void MainWindow::LoadImage(int n)
184184
if (!rects.isEmpty())
185185
{
186186
QList<QPoint> pts;
187-
foreach (RECT_REGION r, rects)
188-
pts << r.first << r.second;
187+
for (int i = 0; i < rects.size(); i++)
188+
pts << rects[i].first << rects[i].second;
189189
m_maskProcessor.LoadSelections(pts);
190190
ui->widgetImageView->SetOverlay(m_maskProcessor.GetMaskImage(m_listStockColors));
191191
ui->pushButtonNext->setEnabled(true);

dissection_photo/fiducials_calibration/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project(fiducials_calibration)
22

3-
if(BUILD_GUIS AND Qt5_FOUND)
3+
if(BUILD_GUIS)
44

55
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
66

dissection_photo/fiducials_calibration/MainWindow.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <QMessageBox>
77
#include <QSettings>
88
#include <QDebug>
9-
#include <QDesktopWidget>
9+
#include <QScreen>
1010
#include <QFileDialog>
1111
#include "DialogWelcome.h"
1212
#include <QTimer>
@@ -45,15 +45,15 @@ MainWindow::MainWindow(QWidget *parent)
4545
QSettings s;
4646
QRect rc = s.value("MainWindow/Geometry").toRect();
4747
m_strLastDir = s.value("LastDir").toString();
48-
if (rc.isValid() && QApplication::desktop()->screenGeometry(this).contains(rc))
48+
if (rc.isValid() && QGuiApplication::primaryScreen()->geometry().contains(rc))
4949
setGeometry(rc);
5050

5151
m_proc = new QProcess(this);
5252
connect(m_proc, SIGNAL(started()), SLOT(OnProcessStarted()));
5353
connect(m_proc, SIGNAL(readyReadStandardOutput()), SLOT(OnProcessOutputMessage()));
5454
connect(m_proc, SIGNAL(readyReadStandardError()), SLOT(OnProcessErrorMessage()));
5555
connect(m_proc, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(OnProcessFinished()));
56-
connect(m_proc, SIGNAL(error(QProcess::ProcessError)), SLOT(OnProcessError(QProcess::ProcessError)));
56+
connect(m_proc, SIGNAL(errorOccurred(QProcess::ProcessError)), SLOT(OnProcessError(QProcess::ProcessError)));
5757
}
5858

5959
MainWindow::~MainWindow()

dissection_photo/fiducials_correction/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project(fiducials_correction)
22

3-
if(BUILD_GUIS AND Qt5_FOUND)
3+
if(BUILD_GUIS)
44

55
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
66

dissection_photo/fiducials_correction/MainWindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
#include <QSettings>
66
#include <QFileInfo>
77
#include <QMessageBox>
8-
#include <QDesktopWidget>
98
#include <QTimer>
109
#include <QFileDialog>
10+
#include <QScreen>
1111
#include <QDebug>
1212

1313
#define WND_TITLE "Correction With Fiducials"
@@ -28,7 +28,7 @@ MainWindow::MainWindow(QWidget *parent)
2828

2929
QSettings s;
3030
QRect rc = s.value("MainWindow/Geometry").toRect();
31-
if (rc.isValid() && QApplication::desktop()->screenGeometry(this).contains(rc))
31+
if (rc.isValid() && QGuiApplication::primaryScreen()->geometry().contains(rc))
3232
setGeometry(rc);
3333

3434
m_proc = new QProcess(this);

dissection_photo/py_scripts/func_fiducials_correction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ def fiducials_correction(args):
4242
size=point[2],
4343
angle=point[3],
4444
response=point[4],
45-
octave=point[5],
46-
class_id=point[6],
45+
octave=int(point[5]),
46+
class_id=int(point[6]),
4747
)
4848
kp_template.append(temp)
4949

dissection_photo/retrospective_correction/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project(retrospective_correction)
22

3-
if(BUILD_GUIS AND Qt5_FOUND)
3+
if(BUILD_GUIS)
44

55
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
66

dissection_photo/retrospective_correction/MainWindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include <QFileInfo>
99
#include <QMessageBox>
1010
#include <QSettings>
11-
#include <QDesktopWidget>
11+
#include <QScreen>
1212
#include "CommonDef.h"
1313
#include <QTemporaryDir>
1414

@@ -25,7 +25,7 @@ MainWindow::MainWindow(QWidget *parent)
2525

2626
QSettings s;
2727
QRect rc = s.value("MainWindow/Geometry").toRect();
28-
if (rc.isValid() && QApplication::desktop()->screenGeometry(this).contains(rc))
28+
if (rc.isValid() && QGuiApplication::primaryScreen()->geometry().contains(rc))
2929
setGeometry(rc);
3030

3131
SetupScriptPath();

0 commit comments

Comments
 (0)