diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp
index aa5b38e97..b74d30a13 100644
--- a/src/bittorrent.cpp
+++ b/src/bittorrent.cpp
@@ -1565,7 +1565,7 @@ void Bittorrent::addConsoleMessage(QString msg, QString) {
if(consoleMessages.size() > 100) {
consoleMessages.removeFirst();
}
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
msg = msg.replace("/", "\\");
#endif
consoleMessages.append(QString::fromUtf8("")+ QDateTime::currentDateTime().toString(QString::fromUtf8("dd/MM/yyyy hh:mm:ss")) + QString::fromUtf8(" - ") + msg + QString::fromUtf8(""));
diff --git a/src/createtorrent_imp.cpp b/src/createtorrent_imp.cpp
index b82554e6e..2d1ad25de 100644
--- a/src/createtorrent_imp.cpp
+++ b/src/createtorrent_imp.cpp
@@ -82,7 +82,7 @@ createtorrent::~createtorrent() {
void createtorrent::on_addFolder_button_clicked(){
QString dir = QFileDialog::getExistingDirectory(this, tr("Select a folder to add to the torrent"), QDir::homePath(), QFileDialog::ShowDirsOnly);
if(!dir.isEmpty()) {
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
dir = dir.replace("/", "\\");
#endif
textInputPath->setText(dir);
@@ -92,7 +92,7 @@ void createtorrent::on_addFolder_button_clicked(){
void createtorrent::on_addFile_button_clicked(){
QString file = QFileDialog::getOpenFileName(this, tr("Select a file to add to the torrent"), QDir::homePath());
if(!file.isEmpty()) {
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
file = file.replace("/", "\\");
#endif
textInputPath->setText(file);
diff --git a/src/options_imp.cpp b/src/options_imp.cpp
index f7da11867..9ece8e313 100644
--- a/src/options_imp.cpp
+++ b/src/options_imp.cpp
@@ -366,13 +366,13 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
// Downloads preferences
settings.beginGroup("Downloads");
QString save_path = getSavePath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("\\", "/");
#endif
settings.setValue(QString::fromUtf8("SavePath"), save_path);
settings.setValue(QString::fromUtf8("TempPathEnabled"), isTempPathEnabled());
QString temp_path = getTempPath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
temp_path = temp_path.replace("\\", "/");
#endif
settings.setValue(QString::fromUtf8("TempPath"), temp_path);
@@ -386,7 +386,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
ScanFoldersModel::instance()->makePersistent(settings);
addedScanDirs.clear();
QString export_dir = getExportDir();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
export_dir = export_dir.replace("\\", "/");
#endif
Preferences::setExportDir(export_dir);
@@ -476,7 +476,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
settings.setValue(QString::fromUtf8("Enabled"), isFilteringEnabled());
if(isFilteringEnabled()){
QString filter_path = textFilterPath->text();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
filter_path = filter_path.replace("\\", "/");
#endif
settings.setValue(QString::fromUtf8("File"), filter_path);
@@ -588,7 +588,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
// End General preferences
// Downloads preferences
QString save_path = Preferences::getSavePath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("/", "\\");
#endif
textSavePath->setText(save_path);
@@ -599,7 +599,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
checkTempFolder->setChecked(false);
}
QString temp_path = Preferences::getTempPath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
temp_path = temp_path.replace("/", "\\");
#endif
textTempPath->setText(temp_path);
@@ -618,7 +618,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
} else {
// enable
checkExportDir->setChecked(true);
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
strValue = strValue.replace("/", "\\");
#endif
textExportDir->setText(strValue);
@@ -973,7 +973,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
QString options_imp::getSavePath() const{
if(textSavePath->text().trimmed().isEmpty()){
QString save_path = Preferences::getSavePath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("/", "\\");
#endif
textSavePath->setText(save_path);
@@ -1307,7 +1307,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
dir = QFileDialog::getExistingDirectory(this, tr("Choose export directory"), QDir::homePath());
}
if(!dir.isNull()){
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
dir = dir.replace("/", "\\");
#endif
textExportDir->setText(dir);
@@ -1324,7 +1324,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
ipfilter = QFileDialog::getOpenFileName(this, tr("Choose an ip filter file"), QDir::homePath(), tr("Filters")+QString(" (*.dat *.p2p *.p2b)"));
}
if(!ipfilter.isNull()){
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
ipfilter = ipfilter.replace("/", "\\");
#endif
textFilterPath->setText(ipfilter);
@@ -1342,7 +1342,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
dir = QFileDialog::getExistingDirectory(this, tr("Choose a save directory"), QDir::homePath());
}
if(!dir.isNull()){
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
dir = dir.replace("/", "\\");
#endif
textSavePath->setText(dir);
@@ -1359,7 +1359,7 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
dir = QFileDialog::getExistingDirectory(this, tr("Choose a save directory"), QDir::homePath());
}
if(!dir.isNull()){
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
dir = dir.replace("/", "\\");
#endif
textTempPath->setText(dir);
diff --git a/src/propertieswidget.cpp b/src/propertieswidget.cpp
index 96f1865ab..574deb242 100644
--- a/src/propertieswidget.cpp
+++ b/src/propertieswidget.cpp
@@ -213,7 +213,7 @@ void PropertiesWidget::updateSavePath(QTorrentHandle& _h) {
QString p = TorrentPersistentData::getSavePath(h.hash());
if(p.isEmpty())
p = h.save_path();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
p = p.replace("/", "\\");
#endif
save_path->setText(p);
@@ -240,7 +240,7 @@ void PropertiesWidget::loadTorrentInfos(QTorrentHandle &_h) {
QString p = TorrentPersistentData::getSavePath(h.hash());
if(p.isEmpty())
p = h.save_path();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
p = p.replace("/", "\\");
#endif
save_path->setText(p);
@@ -763,7 +763,7 @@ void PropertiesWidget::renameSelectedFile() {
h.move_storage(savePath.absolutePath());
// Update save_path in dialog
QString display_path = savePath.absolutePath();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
display_path = display_path.replace("/", "\\");
#endif
save_path->setText(display_path);
diff --git a/src/qbittorrent_os2.ico b/src/qbittorrent_os2.ico
new file mode 100644
index 000000000..caf387921
Binary files /dev/null and b/src/qbittorrent_os2.ico differ
diff --git a/src/qbittorrent_os2.rc b/src/qbittorrent_os2.rc
new file mode 100644
index 000000000..3781f15e6
--- /dev/null
+++ b/src/qbittorrent_os2.rc
@@ -0,0 +1 @@
+ICON 1 DISCARDABLE "qbittorrent_os2.ico"
diff --git a/src/qtsingleapp/qtlocalpeer.cpp b/src/qtsingleapp/qtlocalpeer.cpp
index dab21e0eb..b329e9147 100644
--- a/src/qtsingleapp/qtlocalpeer.cpp
+++ b/src/qtsingleapp/qtlocalpeer.cpp
@@ -58,6 +58,9 @@ static PProcessIdToSessionId pProcessIdToSessionId = 0;
#if defined(Q_OS_UNIX)
#include
#endif
+#if defined(Q_OS_OS2)
+#include
+#endif
#include
diff --git a/src/src.pro b/src/src.pro
index de8675ae0..c9e016e81 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -12,7 +12,7 @@ CONFIG += qt \
# Update this VERSION for each release
os2 {
- DEFINES += VERSION=\'\"v2.3.0beta3\'\"
+ DEFINES += VERSION=\'\"v2.3.0beta3\"\'
} else {
DEFINES += VERSION=\\\"v2.3.0beta3\\\"
}
@@ -191,12 +191,16 @@ win32 {
}
-os2:LIBS += -ltorrent-rasterbar \
+os2 {
+ LIBS += -ltorrent-rasterbar \
-lboost_thread \
-lboost_system \
-lboost_filesystem \
-lssl -lcrypto -lidn -lpthread
+ RC_FILE = qbittorrent_os2.rc
+}
+
!contains(DEFINES, DISABLE_GUI) {
win32 {
DEFINES += WITH_GEOIP_EMBEDDED
diff --git a/src/torrentadditiondlg.cpp b/src/torrentadditiondlg.cpp
index bab70ddc3..d91d30582 100644
--- a/src/torrentadditiondlg.cpp
+++ b/src/torrentadditiondlg.cpp
@@ -53,7 +53,7 @@ torrentAdditionDialog::torrentAdditionDialog(GUI *parent, Bittorrent* _BTSession
defaultSavePath = Preferences::getSavePath();
appendLabelToSavePath = Preferences::appendTorrentLabel();
QString display_path = defaultSavePath;
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
display_path = display_path.replace("/", "\\");
#endif
savePathTxt->setText(display_path);
@@ -196,7 +196,7 @@ void torrentAdditionDialog::showLoad(QString filePath, QString from_url) {
}
QString root_folder = misc::truncateRootFolder(t);
QString save_path = savePathTxt->text();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("/", "\\");
#endif
if(!save_path.endsWith(QDir::separator()))
@@ -208,7 +208,7 @@ void torrentAdditionDialog::showLoad(QString filePath, QString from_url) {
if(nbFiles == 1) {
// single file torrent
QString single_file_relpath = misc::toQStringU(t->file_at(0).path.string());
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
single_file_relpath = single_file_relpath.replace("/", "\\");
#endif
savePathTxt->setText(save_path+single_file_relpath);
@@ -425,7 +425,7 @@ void torrentAdditionDialog::renameSelectedFile() {
void torrentAdditionDialog::on_browseButton_clicked(){
QString new_path;
QString save_path = savePathTxt->text();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("\\", "/");
#endif
save_path = misc::expandPath(save_path);
@@ -440,7 +440,7 @@ void torrentAdditionDialog::renameSelectedFile() {
}
}
if(!new_path.isEmpty()){
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
new_path = new_path.replace("/", "\\");
#endif
savePathTxt->setText(new_path);
@@ -467,7 +467,7 @@ void torrentAdditionDialog::renameSelectedFile() {
return;
}
QString save_path = savePathTxt->text();
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
save_path = save_path.replace("\\", "/");
#endif
save_path = misc::expandPath(save_path);