Skip to content

Commit 6cd608c

Browse files
committed
SKETCH-2795: Enable monomer sketcher in 26-4 (#375)"
This reverts commit 9a15800.
1 parent aa32a38 commit 6cd608c

10 files changed

Lines changed: 9 additions & 44 deletions

File tree

include/schrodinger/sketcher/sketcher_widget.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ class SKETCHER_API SketcherWidget : public QWidget
7979
Q_OBJECT
8080

8181
public:
82-
SketcherWidget(
83-
QWidget* parent = nullptr,
84-
const InterfaceTypeType interface_type = InterfaceType::ATOMISTIC);
82+
SketcherWidget(QWidget* parent = nullptr,
83+
const InterfaceTypeType interface_type =
84+
InterfaceType::ATOMISTIC_OR_MONOMERIC);
8585
~SketcherWidget();
8686

8787
/**

src/app/main.cpp

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include "crash_handler.h"
1212
#endif
1313

14-
#include <cstring>
1514
#include <stdexcept>
1615

1716
#include <QAbstractButton>
@@ -79,15 +78,10 @@ bool sketcher_has_monomers()
7978
return schrodinger::rdkit_extensions::isMonomeric(*mol);
8079
}
8180

82-
// Note: allow_monomeric should not be set to false if the workspace
83-
// contains monomers.
84-
void sketcher_allow_monomeric(bool allow_monomeric)
81+
// Retained as a no-op for backwards compatibility with external callers;
82+
// ATOMISTIC_OR_MONOMERIC is now the default interface type (SKETCH-2735).
83+
void sketcher_allow_monomeric(bool /* allow_monomeric */)
8584
{
86-
auto& sk = get_sketcher_instance();
87-
return sk.setInterfaceType(
88-
allow_monomeric
89-
? schrodinger::sketcher::InterfaceType::ATOMISTIC_OR_MONOMERIC
90-
: schrodinger::sketcher::InterfaceType::ATOMISTIC);
9185
}
9286

9387
void sketcher_load_custom_monomers(const std::string& json)
@@ -279,10 +273,5 @@ int main(int argc, char** argv)
279273
#endif
280274

281275
sk.show();
282-
// check for the command line option to enable the monomeric tools
283-
if (argc >= 2 && strcmp(argv[1], "--allow-monomeric") == 0) {
284-
sk.setInterfaceType(
285-
schrodinger::sketcher::InterfaceType::ATOMISTIC_OR_MONOMERIC);
286-
}
287276
return application.exec();
288277
}

src/schrodinger/sketcher/model/sketcher_model.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ void SketcherModel::reset()
256256
{ModelKey::DNA_NUCLEOBASE, QVariant::fromValue(StdNucleobase::A)},
257257
{ModelKey::CUSTOM_NUCLEOTIDE,
258258
QVariant::fromValue(MonomericNucleotide("R", "N", "P"))},
259-
{ModelKey::INTERFACE_TYPE, InterfaceType::ATOMISTIC},
259+
{ModelKey::INTERFACE_TYPE, InterfaceType::ATOMISTIC_OR_MONOMERIC},
260260
{ModelKey::TOOL_SET, QVariant::fromValue(ToolSet::ATOMISTIC)},
261261
{ModelKey::MOLECULE_TYPE, QVariant::fromValue(MoleculeType::EMPTY)},
262262
};

src/schrodinger/sketcher/widget/sketcher_side_bar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void SketcherSideBar::updateWidgetsEnabled()
107107
auto interface_type = model->getInterfaceType();
108108
bool show_atom_mono_buttons =
109109
interface_type == InterfaceType::ATOMISTIC_OR_MONOMERIC;
110-
ui->atomistic_or_monomeric_widget->setVisible(show_atom_mono_buttons);
110+
ui->atomistic_or_monomeric_widget->setEnabled(show_atom_mono_buttons);
111111
if (!show_atom_mono_buttons) {
112112
// only one type of interface is allowed, so switch to that one
113113
if (interface_type == InterfaceType::ATOMISTIC) {

test/schrodinger/sketcher/model/test_sketcher_model.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE(get_set_signal)
101101
{ModelKey::CUSTOM_NUCLEOTIDE,
102102
QVariant::fromValue(std::tuple<std::string, std::string, std::string>(
103103
"Tho", "I", "PS"))},
104-
{ModelKey::INTERFACE_TYPE, InterfaceType::ATOMISTIC_OR_MONOMERIC},
104+
{ModelKey::INTERFACE_TYPE, InterfaceType::ATOMISTIC},
105105
{ModelKey::TOOL_SET, QVariant::fromValue(ToolSet::MONOMERIC)},
106106
{ModelKey::MOLECULE_TYPE,
107107
QVariant::fromValue(MoleculeType::ATOMISTIC)}};
1.19 KB
Loading

test/wasm/e2e/analog.test.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
waitForSketcherReady,
44
getDrawingAreaCenter,
55
getExportedHelm,
6-
enableMonomericMode,
76
selectAll,
87
clickWidget,
98
clickPopupButton,
@@ -15,7 +14,6 @@ test.beforeEach(async ({ page }) => {
1514

1615
test.describe('Amino Acid Analog Tests', () => {
1716
test('HELM round-trip preserves non-natural analog symbols', async ({ page }) => {
18-
await enableMonomericMode(page);
1917
await clickWidget(page, 'monomeric_btn');
2018

2119
// Import HELM with non-natural analog symbols (brackets required for
@@ -31,7 +29,6 @@ test.describe('Amino Acid Analog Tests', () => {
3129
});
3230

3331
test('select analog via popup and draw', async ({ page }) => {
34-
await enableMonomericMode(page);
3532
await clickWidget(page, 'monomeric_btn');
3633
await clickWidget(page, 'amino_monomer_btn');
3734

@@ -50,7 +47,6 @@ test.describe('Amino Acid Analog Tests', () => {
5047
});
5148

5249
test('mutate non-natural analogs to standard amino acid', async ({ page }) => {
53-
await enableMonomericMode(page);
5450
await clickWidget(page, 'monomeric_btn');
5551
await clickWidget(page, 'amino_monomer_btn');
5652

test/wasm/e2e/e2e_helpers.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,6 @@ export async function getExportedHelm(page) {
7070
return page.evaluate(() => Module.sketcher_export_text(Module.Format.HELM));
7171
}
7272

73-
/**
74-
* Enable monomeric (peptide/nucleic acid) mode on the sketcher.
75-
*/
76-
export async function enableMonomericMode(page) {
77-
await page.evaluate(() => Module.sketcher_allow_monomeric(true));
78-
}
79-
8073
/**
8174
* Select all items on the canvas via Cmd+A / Ctrl+A.
8275
*/

test/wasm/e2e/monomer_mutation.test.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
waitForSketcherReady,
44
focusCanvas,
55
getExportedHelm,
6-
enableMonomericMode,
76
selectAll,
87
clickWidget,
98
} from './e2e_helpers.js';
@@ -14,7 +13,6 @@ test.beforeEach(async ({ page }) => {
1413

1514
test.describe('Monomer Mutation', () => {
1615
test('mutate selected peptide monomers to cysteine', async ({ page }) => {
17-
await enableMonomericMode(page);
1816
await clickWidget(page, 'monomeric_btn');
1917
await clickWidget(page, 'amino_monomer_btn');
2018

@@ -30,7 +28,6 @@ test.describe('Monomer Mutation', () => {
3028
});
3129

3230
test('mutate selected nucleic acid bases only', async ({ page }) => {
33-
await enableMonomericMode(page);
3431
await clickWidget(page, 'monomeric_btn');
3532
await clickWidget(page, 'nucleic_monomer_btn');
3633

@@ -51,7 +48,6 @@ test.describe('Monomer Mutation', () => {
5148
});
5249

5350
test('clicking disabled incompatible monomer button does not mutate', async ({ page }) => {
54-
await enableMonomericMode(page);
5551
await clickWidget(page, 'monomeric_btn');
5652
await clickWidget(page, 'amino_monomer_btn');
5753

@@ -74,7 +70,6 @@ test.describe('Monomer Mutation', () => {
7470
});
7571

7672
test('undo restores original monomers after mutation', async ({ page }) => {
77-
await enableMonomericMode(page);
7873
await clickWidget(page, 'monomeric_btn');
7974
await clickWidget(page, 'amino_monomer_btn');
8075

test/wasm/wasm_api.test.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ test.describe('WASM Sketcher API', () => {
6363
if (!importUnsupported) {
6464
const importSuccessful = await page.evaluate((exportedText) => {
6565
Module.sketcher_clear();
66-
Module.sketcher_allow_monomeric(true);
6766
Module.sketcher_import_text(exportedText);
6867
return !Module.sketcher_is_empty();
6968
}, exportedText);
@@ -101,7 +100,6 @@ test.describe('WASM Sketcher API', () => {
101100

102101
const hasMonomersAfterHelmImport = await page.evaluate(() => {
103102
Module.sketcher_clear();
104-
Module.sketcher_allow_monomeric(true);
105103
Module.sketcher_import_text('PEPTIDE1{A.S.D.F.G.H.W}$$$$V2.0');
106104
return Module.sketcher_has_monomers();
107105
});
@@ -228,7 +226,6 @@ test.describe('Custom Monomer DB', () => {
228226

229227
const result = await page.evaluate((sql) => {
230228
Module.sketcher_load_custom_monomers_from_sql(sql);
231-
Module.sketcher_allow_monomeric(true);
232229
Module.sketcher_clear();
233230
Module.sketcher_import_text('PEPTIDE1{A.[SqlMon].G}$$$$V2.0');
234231
return !Module.sketcher_is_empty();
@@ -246,7 +243,6 @@ test.describe('Custom Monomer DB', () => {
246243

247244
await page.evaluate((sql) => {
248245
Module.sketcher_load_custom_monomers_from_sql(sql);
249-
Module.sketcher_allow_monomeric(true);
250246
}, sql1);
251247

252248
// Verify Sql1 works
@@ -301,7 +297,6 @@ test.describe('Custom Monomer DB', () => {
301297
// Load first and verify Mon1 works
302298
await page.evaluate((json) => {
303299
Module.sketcher_load_custom_monomers(json);
304-
Module.sketcher_allow_monomeric(true);
305300
}, monomer1);
306301

307302
const mon1Works = await page.evaluate(() => {
@@ -318,7 +313,6 @@ test.describe('Custom Monomer DB', () => {
318313

319314
// Both custom monomers should be usable in a HELM import
320315
const result = await page.evaluate(() => {
321-
Module.sketcher_allow_monomeric(true);
322316
Module.sketcher_clear();
323317
Module.sketcher_import_text('PEPTIDE1{[Mon1].[Mon2].A}$$$$V2.0');
324318
return !Module.sketcher_is_empty();
@@ -343,7 +337,6 @@ test.describe('Custom Monomer DB', () => {
343337

344338
const result = await page.evaluate((json) => {
345339
Module.sketcher_load_custom_monomers(json);
346-
Module.sketcher_allow_monomeric(true);
347340
Module.sketcher_clear();
348341
Module.sketcher_import_text('PEPTIDE1{A.[Sar].G}$$$$V2.0');
349342
return !Module.sketcher_is_empty();
@@ -421,7 +414,6 @@ test.describe('Custom Monomer DB', () => {
421414
// Load custom monomer, verify it works, then reset
422415
const worksBeforeReset = await page.evaluate((json) => {
423416
Module.sketcher_load_custom_monomers(json);
424-
Module.sketcher_allow_monomeric(true);
425417
Module.sketcher_clear();
426418
Module.sketcher_import_text('PEPTIDE1{A.[TmpMon].G}$$$$V2.0');
427419
return !Module.sketcher_is_empty();

0 commit comments

Comments
 (0)